• Help
    Discussion forum
    Search tips
  • About
    CERN Open Data
    ALICE
    ATLAS
    CMS
    DELPHI
    LHCb
    OPERA
    TOTEM
    Glossary

Standard Model cross-sections for CMS analyses

Documentation Guide


The number of events in the simulated datasets do not match the number of events we expect to observe for each process, so we need to normalize the simulation to correspond to some cross section. Cross sections evaluated at next-to-leading order (NLO) or next-to-next-to-leading order (NNLO) in perturbative QCD are preferred, because they are more accurate. However, leading-order simulation remains the default for many SM processes, so higher-order cross sections cannot be extracted from the simulation itself. This page documents cross sections commonly used in CMS for Run 1 and Run 2 datasets.

Run 1

Selected SM cross section values for Run 1 datasets can be found in the following tables. More details about these cross sections are available here.

Higher-order top quark cross sections are available from the LHC Physics Working Group for all LHC energies:

  • Top quark pair production at NNLO
  • Single top quark production at NLO and at NNLO

7 TeV

Process
Generator/Source
Phase space cuts
Order
Final state
Cross section (pb)
Uncertainty (pb):
Scale unc. (PDF unc.)
W+ FEWZ-- NNLOW->lv, l=e,m,t18456±233 (±850)
W- FEWZ-- NNLOW->lv, l=e,m,t12858 ±174 (±654)
Total W FEWZ-- NNLOW->lv, l=e,m,t31314 ±407 (±1504)
Z/a* (20) FEWZm(ll)>20GeV NNLOZ -> ll 4998±34 (±270)
Z/a* (50) FEWZm(ll)>50GeV NNLOZ -> ll 3048±34 (±128)
Z/a* (60-120)FEWZ60 < m(ll) < 120 GeVNNLOZ -> ll 2916±34 (±122)
W+cbar MCFM-- NLO Inclusive 1718±157
W-c MCFM-- NLO Inclusive 1910±164
Total Wc MCFM-- NLO Inclusive 3628±227
W+b bbar MCFM-- LO Inclusive 22.1±4.4
W-b bbar MCFM-- LO Inclusive 13.2±2.5
Total Wb bbarMCFM-- LO Inclusive 35.3±5.1
Z/a*b bbar MCFMm(ll) > 20 GeV LO Inclusive 67.3±18.8
W+W- MCFM-- NLO Inclusive 43 ±1.5
W+Z/a* MCFMm(ll) > 40 GeV NLO Inclusive 11.8±0.6
W-Z/a* MCFMm(ll) > 40 GeV NLO Inclusive 6.4 ±0.4
Total WZ/a* MCFMm(ll) > 40 GeV NLO Inclusive 18.2±0.7
Z/a* Z/a* MCFMm(ll) > 40 GeV NLO Inclusive 5.9 ±0.15
ttbarW -- -- NLO Inclusive 0.1473 ±0.0155
ttbarZ -- -- NLO Inclusive 0.1369 ±0.029

8 TeV

Process
Generator/Source
Phase space cuts
Order
Final state
Cross section (pb)
Uncertainty (pb):
Scale unc. (PDF unc.)
W+ FEWZ 3.1-- NNLOW->μν 7213.4 +45.3 -21.3 (±241.3)
W- FEWZ 3.1-- NNLOW->μν 5074.7 +33.8 -18.3 (±188.3)
Total W FEWZ 3.1-- NNLOW->μν 12234.4 +79.0 -39.7 (±414.7)
Z/a*(20) FEWZ 3.1m(ll)>20 GeV NNLOZ -> μμ 1966.7 +19.8 -13.7 (±87.7)
Z/a* (50) FEWZ 3.1m(ll)>50 GeV NNLOZ -> μμ 1177.3 +5.9 -3.6 (±38.8)
Z/a* (60-120) FEWZ 3.160 < m(ll) < 120 GeVNNLOZ -> μμ 1129.2 +5.5 -2.6 (±37.5)
W+cbar MCFM -- NLO Inclusive 2423.5
W+cbar MCFM -- NLO Inclusive 2624.6
Total Wc MCFM -- NLO Inclusive 5048.1
Total Wb bbar aMC@NLO -- NLO Inclusive 377.4 +19.5% -16.8%
Z/a*b bbar MCFM m(ll) > 50 GeV LO Inclusive 76.75
Total WZ/a* MCFM m(ll) > 12 GeV NLO Inclusive 33.21 (CTEQ)
33.85 (MSTW)
33.72 (NNPDF)
ttbarW MCFM -- NLO Inclusive 0.232 ±0.067 (±0.03)
ttbarZ NLO -- NLO Inclusive 0.2057 +0.019 -0.024
tqZ; q!=b aMC@NLO m(ll) > 50 GeV NLO Z->leptons 0.02450 +3.3% -2.6%
tbZ aMC@NLO m(ll) > 50 GeV NLO Z->leptons 0.0114 +3.3% -2.6%
WWW aMC@NLO -- NLO Inclusive 8.058e-02 +4.7% -3.9%
WWZ aMC@NLO -- NLO Inclusive 5.795e-02 +5.6% -4.6%
WZZ aMC@NLO -- NLO Inclusive 1.968e-02 +6.0% -4.9%
ZZZ aMC@NLO -- NLO Inclusive 5.527e-03 +2.7% -2.4%
tttt aMC@NLO -- NLO Inclusive 9.144e-04 +36.3%, -27.0%
W+ W- MCFM 6.60 NLO W->eν W->eν0.6472 ±0.0231 (±0.0266)
W+ Z/a* MCFM 6.6m(l+l-) > 12 GeV NLO W->μν Z->ee0.0748 ±0.0025 (±0.0029)
W+ Z/a* MCFM 6.6m(l+l-) > 40 GeV NLO W->μν Z->ee0.0535 ±0.0018 (±0.0028)
W- Z/a* MCFM 6.6m(l+l-) > 12 GeV NLO W->μν Z->ee0.0446 ±0.0021 (±0.0018)
W- Z/a* MCFM 6.6m(l+l-) > 40 GeV NLO W->μν Z->ee0.0305 ±0.0014 (±0.0014)
Z/a* Z/a* MCFM 6.6both dileptonic
m(l+l-) > 12 GeV
NLO Z->μμ Z->ee 0.0385 ±0.0011 (±0.0011)
Z/a* Z/a* MCFM 6.6both dileptonic
m(l+l-) > 40 GeV
NLO Z->μμ Z->ee 0.0185 ±0.0007 (±0.0007)
Z/a* Z MCFM 6.6m(l+l- from Z/a*) > 12 GeV NLO Z->ee Z->νν 0.1318 ±0.0040 (±0.0067)
Z Z MCFM 6.6both dileptonic
m(l+l-) > 1 GeV
NLO Z->ee Z->μμ 0.0173 ±0.0067 (±0.0007)


Run 2

Calculate cross sections using GenXSecAnalyzer

For Run2, the GenXSecAnalyzer tool is available to compute cross section from an existing MC sample in MiniAOD format. It retrieves information from collections called GenLumiInfoProduct and GenFilterInfo to compute averaged cross sections over all the input luminosity blocks.

Many SM simulations corresponding to Run 2 data have the output of this analyzer available on the record page.

The following instructions show how to compute a cross section from a MiniAOD sample. This example is given for a 2015 MiniAOD dataset using CMSSW_7_6_7, but the commands can be adapted for later MiniAOD samples by using the corresponding CMSSW release and updating the input file or dataset names.

Setup the CMS environment by following the instructions for MiniAOD.

Inside the CMSSW_7_6_7/src directory, fetch a configuration file for the GenXSecAnalyzer:

curl https://raw.githubusercontent.com/cms-sw/genproductions/master/Utilities/calculateXSectionAndFilterEfficiency/genXsec_cfg.py -o genXSecAnalyzer_cfg.py

Examine the configuration file with your preferred editor. Within the configuration file, the maxEvents setting controls the maximum number of events passed to the GenXSecAnalyzer. Set it to -1 if you would like to use all the events:

process.maxEvents = cms.untracked.PSet(
    input = cms.untracked.int32(options.maxEvents)
)

The source setting specifies the names of the root files to be used:

process.source = cms.Source ("PoolSource",
    fileNames = cms.untracked.vstring(options.inputFiles),
    secondaryFileNames = secFiles
)

You may specify inputFiles and maxEvents and run the script in command line:

cmsRun genXSecAnalyzer_cfg.py inputFiles="file:root://eospublic.cern.ch//eos/opendata/cms/mc/RunIIFall15MiniAODv2/QCDJets_flat_pythia_shifted15mmvertex/MINIAODSIM/PU25nsData2015v1_Shifted15mmCollision2015_76X_mcRun2_asymptotic_v12-v1/60000/00D4D020-59B8-E511-8D6D-A0000420FE80.root" maxEvents=10

Here we use a root file from 2015 QCD MC sample and set the maximum number of events to 10. The printout should look like this:

------------------------------------
GenXsecAnalyzer:
------------------------------------
Before Filtrer: total cross section = 1.887e+09 +- 7.281e+07 pb
Filter efficiency (taking into account weights)= (3.38384) / (3.38384) = 1.000e+00 +- 0.000e+00
Filter efficiency (event-level)= (200) / (200) = 1.000e+00 +- 0.000e+00
After filter: final cross section = 1.887e+09 +- 7.281e+07 pb

=============================================

Depending on the type of simulation, the analyzer will present different information. The most common values are: * Before matching: the cross section before jet matching and any filter. * After matching: the cross section after jet matching BUT before any filter. * Filter efficiency: the efficiency of any filter. * After filter: the cross section after jet matching and additional filters are applied. This is your final cross section.

To compute the cross section of QCDuubar_Pt-15to3000_TuneZ2star_Flat_13TeV_pythia6 for 2015 data using all the files in this sample, find the link to the filelist on this dataset's record.

In CMSSW_7_6_7/src (or CMSSW_10_6_30/src for 2016 datasets), download the filelist using its URL:

curl https://opendata.cern.ch/record/18392/files/CMS_mc_RunIIFall15MiniAODv2_QCDuubar_Pt-15to3000_TuneZ2star_Flat_13TeV_pythia6_MINIAODSIM_PU25nsData2015v1_76X_mcRun2_asymptotic_v12-v1_60000_file_index.txt -o filelist.txt

Create a python script compute_xsec.py with the following code that will read the file list and provide all the files as an argument to the analyzer:

import os

# parameters to EDIT
inputFilelist = "filelist.txt"
maxEvents = "10" # You may increase maxEvents for a better estimation (e.g. set to -1)
outfileName = "xsec_QCDuubar_Pt-15to3000.log"

# get inputFiles
filelist = open(inputFilelist, 'r').readlines()
inputFiles = ""
for rootfile in filelist:
   if('root' in rootfile):
       inputFiles += ' inputFiles='+rootfile + ' '

# compute cross section
command = 'cmsRun genXSecAnalyzer_cfg.py {} maxEvents={} 2>&1 | tee {}'.format(inputFiles, maxEvents, outfileName)
os.system(command)

In the CMS environment (make sure you have executed cmsenv if using a VM), run:

python compute_xsec.py

13 TeV higher-order cross sections

Higher order top quark cross sections are available from the LHC Physics Working Group for all LHC energies:

  • Top quark pair production at NNLO
  • Single top quark production at NLO and at NNLO

A table of further higher-order cross sections for other processes will be added when available.

ALICE experiment
ATLAS experiment
CMS experiment
DELPHI experiment
LHCb experiment
OPERA experiment
PHENIX experiment
TOTEM experiment
© CERN, 2014–2025 ·
Terms of Use ·
Privacy Policy ·
Help ·
GitHub ·
Twitter ·
Email
Powered by Invenio
Open Data Portal v0.3.0
CERN