Published August 23, 2024 | Version v1
Model Open

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].txt refer to the signal region in the two eras in which the 2022 datasets was split: 20220 and 20221, also referred to a 2022 and 2022EE where the EE suffix refers to a portion of the dataset in which CMS ECAL endcap had an issue. The bin(0|1|2|3) refers to the different categories in terms of number of reconstructed jets. The _isFiducial suffix 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.root is the ROOT files 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.txt refer to the \(WZ\) or \(ZZ\) control regions.
  • datacard_(wz|zz)Analysis1001_(20220|20221)_bin0.input.txt is the ROOT file 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.
  • qqWW is 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:

docker run --name combine -it gitlab-registry.cern.ch/cms-cloud/combine-standalone: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:

  1. 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.txt
  2. The creation of the workspace with the default parameter of interest r scaling all the signal processes together (including the non-fiducial):

    text2workspace.py datacard_inclusive.txt -o workspace_inclusive.root
  3. Running the fit:

    combine -M MultiDimFit --algo singles workspace_inclusive.root

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:

  1. 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.txt
  2. The workspace is created using the Combine internal 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.root
  3. The 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:

  1. 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.txt
  2. A 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).patch files for this. For example, to achieve a parametrization in which the three parameter of interest are a global fiducial cross section modifier r, 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.root
  3. Run 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)

Linked records