Statistical models for CMS-SMP-24-001
Authors/Creators
Description
Introduction
This resource contains the full statistical related to the paper Measurement of inclusive and differential cross sections for \(W^+W^-\) production in proton-proton collisions at \(\sqrt{s}\) = 13.6 TeV by the CMS collaboration. The statistical model is represented in the format of Combine datacards. The instructions below include a few basic examples on how to extract the significance and signal strength measurements, for more details please consult the Combine documentation.
Datacards
While the full details of the selection can be found in the paper, a short description of the datacards contained in this repository follows.
The input directory contains datacards with the following naming conventions:
datacard_wwAnalysis1001_(20220|20221)_bin(0|1|2|3)[_isFiducial].txtrefer to the signal region in the two eras in which the 2022 datasets was split:20220and20221, also referred to a2022and2022EEwhere theEEsuffix refers to a portion of the dataset in which CMS ECAL endcap had an issue. Thebin(0|1|2|3)refers to the different categories in terms of number of reconstructed jets. The_isFiducialsuffix refers to cards that are needed to extract the fiductial cross section, differing from the nominal cards only for the treatment of some of the uncertainties.datacard_wwAnalysis1001_(20220|20221)_bin(0|1|2|3)[_isFiducial].input.rootis theROOTfiles containing the templates and the data in the signal region, for the specified data taking era and number of reconstructed jets. In this case the templates and the measurement are single bin histograms containing the number of observed events for data, and the number of expected events for each process for simulation, in the corresponding reco level rignal region bin.datacard_(wz|zz)Analysis1001_(20220|20221)_bin0.txtrefer to the \(WZ\) or \(ZZ\) control regions.datacard_(wz|zz)Analysis1001_(20220|20221)_bin0.input.txtis theROOTfile containing the templates and the data in the corresponding control region. Differentily from the signal region templates, which are single binned, the templates for the control region have 4 bin corresponding to the different number of reconstructed jets in the event.
Concerning the processes, the following naming convention is used:
Signal(0|1|2)corresponds to the quark initiated \(W^+W^-\) process with 0, 1, or \(\geq\) 2 generated jets.Signal(3|4|5)corresponds to the gluon initiated \(W^+W^-\) process with 0, 1, or \(\geq\) 2 generated jets.qqWWis the nonfiducial signal events.
The nuisance parameters corresponding to different sources of systematic uncertainties are described in the *.html files located in the input directory.
Software instructions
General installation instructions for Combine can be found in the Combine documentation.
A container image is provided to ensure reproducible results. The results in this README are obtained using v9.2.1:
A slim version of the container image is also available at gitlab-registry.cern.ch/cms-cloud/combine-standalone:v9.2.1-slim. Versions of packages in the slim container image do not match exactly with the ones in the default container, so small differences in the output of commands with respect to the ones shown below are to be expected.
You can copy files (such as the datacards and other inputs for combine) using docker cp as documented here.
For the commands below, you may require running ulimit -s unlimited; ulimit -u unlimited to avoid memory issues.
Inclusive cross section measurement
To compute the inclusive cross section the combination involved the following steps:
The combination of the cards corresponding to the different categories:
combineCards.py -P input/ \ WW_2022_0jet=datacard_wwAnalysis1001_20220_bin0.txt \ WW_2022_1jet=datacard_wwAnalysis1001_20220_bin1.txt \ WW_2022_2jet=datacard_wwAnalysis1001_20220_bin2.txt \ WW_2022_3jet=datacard_wwAnalysis1001_20220_bin3.txt \ WW_2022EE_0jet=datacard_wwAnalysis1001_20221_bin0.txt \ WW_2022EE_1jet=datacard_wwAnalysis1001_20221_bin1.txt \ WW_2022EE_2jet=datacard_wwAnalysis1001_20221_bin2.txt \ WW_2022EE_3jet=datacard_wwAnalysis1001_20221_bin3.txt \ WZ_2022=datacard_wzAnalysis1001_20220_bin0.txt \ WZ_2022EE=datacard_wzAnalysis1001_20221_bin0.txt \ ZZ_2022=datacard_zzAnalysis1001_20220_bin0.txt \ ZZ_2022EE=datacard_zzAnalysis1001_20221_bin0.txt \ > datacard_inclusive.txtThe creation of the workspace with the default parameter of interest
rscaling all the signal processes together (including the non-fiducial):Running the fit:
This will result in an output similar to the following:
<<< Combine >>>
<<< v10.0.1 >>>
>>> Random number generator seed is 123456
>>> Method used is MultiDimFit
Doing initial fit:
--- MultiDimFit ---
best fit parameter values and profile-likelihood uncertainties:
r : +0.986 -0.043/+0.044 (68%)The fitted value of r multiplied by the expected cross section (125.7 pb) gives the inclusive cross section measured.
Fiducial and differential cross section measurement
To compute the fiducial and the differential cross section as done in the paper, a parametrization is chosen with three parameters. Two options are possible:
- Option 1: the three parameters are multipliers of the expected cross section in the \(0\), \(1\), and \(\geq 2\) generator jet multiplicity bins.
- Option 2: The three parameters are: one multiplier for the expected total fiducial cross section and two multipliers for the expected cross section in two of the 3 considered generator level jet bins (the third is determined).
Option 2 has the advantage that the fiducial cross section is directly extracted from the fit.
To get from the parameters of interest of the fit (cros section multipliers) to cross sections, the following table of expected ccros sections should be used:
| bin | expected cross section (fb) |
|---|---|
| \(\geq\) 0 jets | 811.8 |
| = 0 jets | 525.8 |
| = 1 jets | 208.2 |
| \(\geq\) 2 jets | 77.8 |
Option 1:
The following steps are needed:
The combination of the cards corresponding to the different categories:
combineCards.py -P input/ \ WW_2022_0jet=datacard_wwAnalysis1001_20220_bin0_isFiducial.txt \ WW_2022_1jet=datacard_wwAnalysis1001_20220_bin1_isFiducial.txt \ WW_2022_2jet=datacard_wwAnalysis1001_20220_bin2_isFiducial.txt \ WW_2022_3jet=datacard_wwAnalysis1001_20220_bin3_isFiducial.txt \ WW_2022EE_0jet=datacard_wwAnalysis1001_20221_bin0_isFiducial.txt \ WW_2022EE_1jet=datacard_wwAnalysis1001_20221_bin1_isFiducial.txt \ WW_2022EE_2jet=datacard_wwAnalysis1001_20221_bin2_isFiducial.txt \ WW_2022EE_3jet=datacard_wwAnalysis1001_20221_bin3_isFiducial.txt \ WZ_2022=datacard_wzAnalysis1001_20220_bin0.txt \ WZ_2022EE=datacard_wzAnalysis1001_20221_bin0.txt \ ZZ_2022=datacard_zzAnalysis1001_20220_bin0.txt \ ZZ_2022EE=datacard_zzAnalysis1001_20221_bin0.txt \ > datacard_fiducial_opt1.txtThe workspace is created using the
Combineinternal physics model allowing to scale the signal in the different generator level jet bins with different multipliers:text2workspace.py -P HiggsAnalysis.CombinedLimit.PhysicsModel:multiSignalModel \ --PO 'map=.*/Signal0:r_0[1,0,3]' \ --PO 'map=.*/Signal1:r_1[1,0,3]' \ --PO 'map=.*/Signal2:r_2[1,0,3]' \ --PO 'map=.*/Signal3:r_0[1,0,3]' \ --PO 'map=.*/Signal4:r_1[1,0,3]' \ --PO 'map=.*/Signal5:r_2[1,0,3]' \ datacard_fiducial_opt1.txt -o workspace_opt1.rootThe fit is run:
combine -M MultiDimFit --algo singles workspace_opt1.root
The resulting output will be:
<<< Combine >>>
<<< v10.0.1 >>>
>>> Random number generator seed is 123456
>>> Method used is MultiDimFit
ModelConfig 'ModelConfig' defines more than one parameter of interest. This is not supported in some statistical methods.
Doing initial fit:
--- MultiDimFit ---
best fit parameter values and profile-likelihood uncertainties:
r_0 : +0.991 -0.051/+0.050 (68%)
r_1 : +0.950 -0.061/+0.062 (68%)
r_2 : +1.244 -0.133/+0.135 (68%)
Done in 0.63 min (cpu), 0.64 min (real)
The fitted values of the cross section multipliers, multiplied by the expected cross section in the corresponding jet multiplicity bins given in the table above, will yield the measured differential cross section.
Option 2
The following steps are needed:
The combination of the cards corresponding to the different categories:
combineCards.py -P input/ \ WW_2022_0jet=datacard_wwAnalysis1001_20220_bin0_isFiducial.txt \ WW_2022_1jet=datacard_wwAnalysis1001_20220_bin1_isFiducial.txt \ WW_2022_2jet=datacard_wwAnalysis1001_20220_bin2_isFiducial.txt \ WW_2022_3jet=datacard_wwAnalysis1001_20220_bin3_isFiducial.txt \ WW_2022EE_0jet=datacard_wwAnalysis1001_20221_bin0_isFiducial.txt \ WW_2022EE_1jet=datacard_wwAnalysis1001_20221_bin1_isFiducial.txt \ WW_2022EE_2jet=datacard_wwAnalysis1001_20221_bin2_isFiducial.txt \ WW_2022EE_3jet=datacard_wwAnalysis1001_20221_bin3_isFiducial.txt \ WZ_2022=datacard_wzAnalysis1001_20220_bin0.txt \ WZ_2022EE=datacard_wzAnalysis1001_20221_bin0.txt \ ZZ_2022=datacard_zzAnalysis1001_20220_bin0.txt \ ZZ_2022EE=datacard_zzAnalysis1001_20221_bin0.txt \ > datacard_fiducial_prep_opt2.txtA modification to the datacard is needed to make one of the multipliers of the per gen jet cross section dependent on the others. We provide the
datacard_add_dependent(0|1|2).patchfiles for this. For example, to achieve a parametrization in which the three parameter of interest are a global fiducial cross section modifierr, one for the \(1\) jet bin (r_1) and one for the \(\geq 2\) jets bin (r_2), do:cat datacard_fiducial_prep_opt2.txt input/datacard_add_dependent0.patch > datacard_fiducial_opt2_dependent0.txt text2workspace.py -P HiggsAnalysis.CombinedLimit.PhysicsModel:multiSignalModel \ --PO 'map=.*/Signal*:r[1,0,3]' \ datacard_fiducial_opt2_dependent0.txt -o workspace_opt2_dependent0.rootRun the fit:
combine -M MultiDimFit --algo singles --redefineSignalPOIs r,r_1,r_2 workspace_opt2_dependent0.root
The resulting output will be:
<<< Combine >>>
<<< v10.0.1 >>>
>>> Random number generator seed is 123456
>>> Method used is MultiDimFit
Doing initial fit:
--- MultiDimFit ---
best fit parameter values and profile-likelihood uncertainties:
r : +1.002 -0.043/+0.044 (68%)
r_1 : +0.947 -0.051/+0.051 (68%)
r_2 : +1.241 -0.117/+0.117 (68%)
Done in 0.70 min (cpu), 0.71 min (real)
The fiducial cross section is given by the value of r multiplied by the fiducial expected cross section in the table above.
Files
Files
(10.3 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:fc694670f0b02f92872b8fa9ec2df95d
|
10.3 MB | Download |
Additional details
Related works
- Is metadata for
- Text: arXiv:2406.05101 (arXiv)
- Text: https://inspirehep.net/literature/2796231 (URL)