diff --git a/.github/workflows/lint_and_test.yaml b/.github/workflows/lint_and_test.yaml index 59db29f0..ca558efd 100644 --- a/.github/workflows/lint_and_test.yaml +++ b/.github/workflows/lint_and_test.yaml @@ -27,24 +27,10 @@ jobs: - name: Lint 🔍 run: | - flake8 cmsdb scripts - - collect_dirs: - runs-on: ubuntu-latest - outputs: - dirs: ${{ steps.dirs.outputs.dirs }} - steps: - - uses: actions/checkout@v4 - - id: dirs - run: echo "dirs=$(ls -d cmsdb/campaigns/*/ | jq --raw-input --slurp --compact-output 'split("\n")[:-1]')" >> ${GITHUB_OUTPUT} - + flake8 cmsdb scripts tests test: - needs: collect_dirs runs-on: ubuntu-latest - strategy: - matrix: - dir: ${{ fromJson(needs.collect_dirs.outputs.dirs) }} steps: - name: Checkout ⬇️ uses: actions/checkout@v4 @@ -63,6 +49,4 @@ jobs: pip install -r requirements_dev.txt - name: Test Campaigns 🚦 - run: python -m unittest tests/test_campaigns.py - env: - TESTMODULE: ${{ matrix.dir }} + run: python -m unittest tests diff --git a/cmsdb/campaigns/run2_2016_HIPM_nano_uhh_v12/ewk.py b/cmsdb/campaigns/run2_2016_HIPM_nano_uhh_v12/ewk.py index a31ba99f..1558f520 100644 --- a/cmsdb/campaigns/run2_2016_HIPM_nano_uhh_v12/ewk.py +++ b/cmsdb/campaigns/run2_2016_HIPM_nano_uhh_v12/ewk.py @@ -89,9 +89,9 @@ ) cpn.add_dataset( - name="dy_lep_pt100To250_amcatnlo", + name="dy_lep_pt100to250_amcatnlo", id=14342843, - processes=[procs.dy_lep_pt100To250], + processes=[procs.dy_lep_pt100to250], keys=[ "/DYJetsToLL_LHEFilterPtZ-100To250_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v2/NANOAODSIM", # noqa ], @@ -100,9 +100,9 @@ ) cpn.add_dataset( - name="dy_lep_pt250To400_amcatnlo", + name="dy_lep_pt250to400_amcatnlo", id=14346965, - processes=[procs.dy_lep_pt250To400], + processes=[procs.dy_lep_pt250to400], keys=[ "/DYJetsToLL_LHEFilterPtZ-250To400_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v2/NANOAODSIM", # noqa ], @@ -111,9 +111,9 @@ ) cpn.add_dataset( - name="dy_lep_pt50To100_amcatnlo", + name="dy_lep_pt50to100_amcatnlo", id=14335914, - processes=[procs.dy_lep_pt50To100], + processes=[procs.dy_lep_pt50to100], keys=[ "/DYJetsToLL_LHEFilterPtZ-50To100_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v2/NANOAODSIM", # noqa ], @@ -122,9 +122,9 @@ ) cpn.add_dataset( - name="dy_lep_pt0To50_amcatnlo", + name="dy_lep_pt0to50_amcatnlo", id=14339864, - processes=[procs.dy_lep_pt0To50], + processes=[procs.dy_lep_pt0to50], keys=[ "/DYJetsToLL_LHEFilterPtZ-0To50_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v2/NANOAODSIM", # noqa ], @@ -144,9 +144,9 @@ ) cpn.add_dataset( - name="dy_lep_pt400To650_amcatnlo", + name="dy_lep_pt400to650_amcatnlo", id=14350490, - processes=[procs.dy_lep_pt400To650], + processes=[procs.dy_lep_pt400to650], keys=[ "/DYJetsToLL_LHEFilterPtZ-400To650_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v2/NANOAODSIM", # noqa ], @@ -281,9 +281,9 @@ ) cpn.add_dataset( - name="w_lnu_ht70To100_madgraph", + name="w_lnu_ht70to100_madgraph", id=14300594, - processes=[procs.w_lnu_ht70To100], + processes=[procs.w_lnu_ht70to100], keys=[ "/WJetsToLNu_HT-70To100_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v1/NANOAODSIM", # noqa ], @@ -292,9 +292,9 @@ ) cpn.add_dataset( - name="w_lnu_ht100To200_madgraph", + name="w_lnu_ht100to200_madgraph", id=14221276, - processes=[procs.w_lnu_ht100To200], + processes=[procs.w_lnu_ht100to200], keys=[ "/WJetsToLNu_HT-100To200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v1/NANOAODSIM", # noqa ], @@ -303,9 +303,9 @@ ) cpn.add_dataset( - name="w_lnu_ht1200To2500_madgraph", + name="w_lnu_ht1200to2500_madgraph", id=14226935, - processes=[procs.w_lnu_ht1200To2500], + processes=[procs.w_lnu_ht1200to2500], keys=[ "/WJetsToLNu_HT-1200To2500_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v1/NANOAODSIM", # noqa ], @@ -314,9 +314,9 @@ ) cpn.add_dataset( - name="w_lnu_ht400To600_madgraph", + name="w_lnu_ht400to600_madgraph", id=14213493, - processes=[procs.w_lnu_ht400To600], + processes=[procs.w_lnu_ht400to600], keys=[ "/WJetsToLNu_HT-400To600_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v1/NANOAODSIM", # noqa ], @@ -325,9 +325,9 @@ ) cpn.add_dataset( - name="w_lnu_ht600To800_madgraph", + name="w_lnu_ht600to800_madgraph", id=14227116, - processes=[procs.w_lnu_ht600To800], + processes=[procs.w_lnu_ht600to800], keys=[ "/WJetsToLNu_HT-600To800_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v1/NANOAODSIM", # noqa ], @@ -336,9 +336,9 @@ ) cpn.add_dataset( - name="w_lnu_ht800To1200_madgraph", + name="w_lnu_ht800to1200_madgraph", id=14212489, - processes=[procs.w_lnu_ht800To1200], + processes=[procs.w_lnu_ht800to1200], keys=[ "/WJetsToLNu_HT-800To1200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v1/NANOAODSIM", # noqa ], @@ -347,9 +347,9 @@ ) cpn.add_dataset( - name="w_lnu_ht200To400_madgraph", + name="w_lnu_ht200to400_madgraph", id=14212310, - processes=[procs.w_lnu_ht200To400], + processes=[procs.w_lnu_ht200to400], keys=[ "/WJetsToLNu_HT-200To400_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16MiniAODAPVv2-106X_mcRun2_asymptotic_preVFP_v11_NanoAODv12UHH-v1/NANOAODSIM", # noqa ], diff --git a/cmsdb/campaigns/run2_2016_nano_uhh_v12/ewk.py b/cmsdb/campaigns/run2_2016_nano_uhh_v12/ewk.py index 643db35a..fadb5f53 100644 --- a/cmsdb/campaigns/run2_2016_nano_uhh_v12/ewk.py +++ b/cmsdb/campaigns/run2_2016_nano_uhh_v12/ewk.py @@ -60,9 +60,9 @@ # pt binned cpn.add_dataset( - name="dy_lep_pt0To50_amcatnlo", + name="dy_lep_pt0to50_amcatnlo", id=14338354, - processes=[procs.dy_lep_pt0To50], + processes=[procs.dy_lep_pt0to50], keys=[ "/DYJetsToLL_LHEFilterPtZ-0To50_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -71,9 +71,9 @@ ) cpn.add_dataset( - name="dy_lep_pt50To100_amcatnlo", + name="dy_lep_pt50to100_amcatnlo", id=14336830, - processes=[procs.dy_lep_pt50To100], + processes=[procs.dy_lep_pt50to100], keys=[ "/DYJetsToLL_LHEFilterPtZ-50To100_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -82,9 +82,9 @@ ) cpn.add_dataset( - name="dy_lep_pt100To250_amcatnlo", + name="dy_lep_pt100to250_amcatnlo", id=14337510, - processes=[procs.dy_lep_pt100To250], + processes=[procs.dy_lep_pt100to250], keys=[ "/DYJetsToLL_LHEFilterPtZ-100To250_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -93,9 +93,9 @@ ) cpn.add_dataset( - name="dy_lep_pt250To400_amcatnlo", + name="dy_lep_pt250to400_amcatnlo", id=14337403, - processes=[procs.dy_lep_pt250To400], + processes=[procs.dy_lep_pt250to400], keys=[ "/DYJetsToLL_LHEFilterPtZ-250To400_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -104,9 +104,9 @@ ) cpn.add_dataset( - name="dy_lep_pt400To650_amcatnlo", + name="dy_lep_pt400to650_amcatnlo", id=14338401, - processes=[procs.dy_lep_pt400To650], + processes=[procs.dy_lep_pt400to650], keys=[ "/DYJetsToLL_LHEFilterPtZ-400To650_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -143,9 +143,9 @@ # ht binned cpn.add_dataset( - name="w_lnu_ht70To100_madgraph", + name="w_lnu_ht70to100_madgraph", id=14215006, - processes=[procs.w_lnu_ht70To100], + processes=[procs.w_lnu_ht70to100], keys=[ "/WJetsToLNu_HT-70To100_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -154,9 +154,9 @@ ) cpn.add_dataset( - name="w_lnu_ht100To200_madgraph", + name="w_lnu_ht100to200_madgraph", id=14215097, - processes=[procs.w_lnu_ht100To200], + processes=[procs.w_lnu_ht100to200], keys=[ "/WJetsToLNu_HT-100To200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -165,9 +165,9 @@ ) cpn.add_dataset( - name="w_lnu_ht200To400_madgraph", + name="w_lnu_ht200to400_madgraph", id=14214993, - processes=[procs.w_lnu_ht200To400], + processes=[procs.w_lnu_ht200to400], keys=[ "/WJetsToLNu_HT-200To400_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -176,9 +176,9 @@ ) cpn.add_dataset( - name="w_lnu_ht400To600_madgraph", + name="w_lnu_ht400to600_madgraph", id=14215048, - processes=[procs.w_lnu_ht400To600], + processes=[procs.w_lnu_ht400to600], keys=[ "/WJetsToLNu_HT-400To600_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -187,9 +187,9 @@ ) cpn.add_dataset( - name="w_lnu_ht600To800_madgraph", + name="w_lnu_ht600to800_madgraph", id=14215011, - processes=[procs.w_lnu_ht600To800], + processes=[procs.w_lnu_ht600to800], keys=[ "/WJetsToLNu_HT-600To800_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -198,9 +198,9 @@ ) cpn.add_dataset( - name="w_lnu_ht800To1200_madgraph", + name="w_lnu_ht800to1200_madgraph", id=14215109, - processes=[procs.w_lnu_ht800To1200], + processes=[procs.w_lnu_ht800to1200], keys=[ "/WJetsToLNu_HT-800To1200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -209,9 +209,9 @@ ) cpn.add_dataset( - name="w_lnu_ht1200To2500_madgraph", + name="w_lnu_ht1200to2500_madgraph", id=14266357, - processes=[procs.w_lnu_ht1200To2500], + processes=[procs.w_lnu_ht1200to2500], keys=[ "/WJetsToLNu_HT-1200To2500_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -235,9 +235,9 @@ # cpn.add_dataset( - name="z_nunu_ht100To200_madgraph", + name="z_nunu_ht100to200_madgraph", id=14215073, - processes=[procs.z_nunu_ht100To200], + processes=[procs.z_nunu_ht100to200], keys=[ "/ZJetsToNuNu_HT-100To200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -246,9 +246,9 @@ ) cpn.add_dataset( - name="z_nunu_ht200To400_madgraph", + name="z_nunu_ht200to400_madgraph", id=14214912, - processes=[procs.z_nunu_ht200To400], + processes=[procs.z_nunu_ht200to400], keys=[ "/ZJetsToNuNu_HT-200To400_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -257,9 +257,9 @@ ) cpn.add_dataset( - name="z_nunu_ht400To600_madgraph", + name="z_nunu_ht400to600_madgraph", id=14281550, - processes=[procs.z_nunu_ht400To600], + processes=[procs.z_nunu_ht400to600], keys=[ "/ZJetsToNuNu_HT-400To600_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -268,9 +268,9 @@ ) cpn.add_dataset( - name="z_nunu_ht600To800_madgraph", + name="z_nunu_ht600to800_madgraph", id=14281420, - processes=[procs.z_nunu_ht600To800], + processes=[procs.z_nunu_ht600to800], keys=[ "/ZJetsToNuNu_HT-600To800_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -279,9 +279,9 @@ ) cpn.add_dataset( - name="z_nunu_ht800To1200_madgraph", + name="z_nunu_ht800to1200_madgraph", id=14281563, - processes=[procs.z_nunu_ht800To1200], + processes=[procs.z_nunu_ht800to1200], keys=[ "/ZJetsToNuNu_HT-800To1200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -290,9 +290,9 @@ ) cpn.add_dataset( - name="z_nunu_ht1200To2500_madgraph", + name="z_nunu_ht1200to2500_madgraph", id=14281209, - processes=[procs.z_nunu_ht1200To2500], + processes=[procs.z_nunu_ht1200to2500], keys=[ "/ZJetsToNuNu_HT-1200To2500_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -312,9 +312,9 @@ ) cpn.add_dataset( - name="z_qq_ht200To400_madgraph", + name="z_qq_ht200to400_madgraph", id=14285999, - processes=[procs.z_qq_ht200To400], + processes=[procs.z_qq_ht200to400], keys=[ "/ZJetsToQQ_HT-200to400_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -323,9 +323,9 @@ ) cpn.add_dataset( - name="z_qq_ht400To600_madgraph", + name="z_qq_ht400to600_madgraph", id=14343844, - processes=[procs.z_qq_ht400To600], + processes=[procs.z_qq_ht400to600], keys=[ "/ZJetsToQQ_HT-400to600_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -334,9 +334,9 @@ ) cpn.add_dataset( - name="z_qq_ht600To800_madgraph", + name="z_qq_ht600to800_madgraph", id=14255955, - processes=[procs.z_qq_ht600To800], + processes=[procs.z_qq_ht600to800], keys=[ "/ZJetsToQQ_HT-600to800_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v2/NANOAODSIM", # noqa ], @@ -422,10 +422,14 @@ n_events=13740600, ) +# looking at the generator config: +# https://raw.githubusercontent.com/cms-sw/genproductions/ce68f8a7ab05f530e0a99124088c08d1cc2bf355/bin/Powheg/production/2017/13TeV/ZZ/ZZ_2L2NU_NNPDF31_13TeV.input # noqa +# it seems that there is a lepton mass cut of 4 GeV, like in the ZZTo2Q2L channel +# therefore the corresponding process is with the "_m4" suffix cpn.add_dataset( name="zz_llnunu_powheg", id=14212205, - processes=[procs.zz_llnunu], + processes=[procs.zz_llnunu_m4], keys=[ "/ZZTo2L2Nu_TuneCP5_13TeV_powheg_pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -433,10 +437,14 @@ n_events=15928000, ) +# looking at the generator config: +# https://raw.githubusercontent.com/cms-sw/genproductions/ce68f8a7ab05f530e0a99124088c08d1cc2bf355/bin/Powheg/production/2017/13TeV/ZZ/ZZ_4L_NNPDF31_13TeV.input # noqa +# it seems that there is a lepton mass cut of 4 GeV, like in the ZZTo2Q2L channel +# therefore the corresponding process is with the "_m4" suffix cpn.add_dataset( name="zz_llll_powheg", id=14344450, - processes=[procs.zz_llll], + processes=[procs.zz_llll_m4], keys=[ "/ZZTo4L_TuneCP5_13TeV_powheg_pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], @@ -479,10 +487,14 @@ n_events=7584000, ) +# looking at the generator config: +# https://github.com/cms-sw/genproductions/blob/2422e1837f93f875c54f8ace0f02d3dc962eca41/bin/MadGraph5_aMCatNLO/cards/production/2017/13TeV/WZTo3LNu01j_5f_NLO_FXFX/WZTo3LNu01j_5f_NLO_FXFX_run_card.dat # noqa +# it seems that there is a lepton mass cut of 4 GeV for leptons from Z, like in the ZZTo2Q2L channel +# therefore the corresponding process is with the "_m4" suffix cpn.add_dataset( name="wz_lllnu_amcatnlo", id=14212844, - processes=[procs.wz_lllnu], + processes=[procs.wz_lllnu_m4], keys=[ "/WZTo3LNu_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16NanoAODv12-106X_mcRun2_asymptotic_v17-v1/NANOAODSIM", # noqa ], diff --git a/cmsdb/campaigns/run2_2017_nano_uhh_v11/ewk.py b/cmsdb/campaigns/run2_2017_nano_uhh_v11/ewk.py index 9b3d4188..e8ef6a86 100644 --- a/cmsdb/campaigns/run2_2017_nano_uhh_v11/ewk.py +++ b/cmsdb/campaigns/run2_2017_nano_uhh_v11/ewk.py @@ -196,9 +196,9 @@ # pt binned cpn.add_dataset( - name="dy_lep_pt0To50_amcatnlo", + name="dy_lep_pt0to50_amcatnlo", id=14349689, - processes=[procs.dy_lep_pt0To50], + processes=[procs.dy_lep_pt0to50], keys=[ "/DYJetsToLL_LHEFilterPtZ-0To50_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa ], @@ -207,9 +207,9 @@ ) cpn.add_dataset( - name="dy_lep_pt50To100_amcatnlo", + name="dy_lep_pt50to100_amcatnlo", id=14350659, - processes=[procs.dy_lep_pt50To100], + processes=[procs.dy_lep_pt50to100], keys=[ "/DYJetsToLL_LHEFilterPtZ-50To100_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa ], @@ -218,9 +218,9 @@ ) cpn.add_dataset( - name="dy_lep_pt100To250_amcatnlo", + name="dy_lep_pt100to250_amcatnlo", id=14353573, - processes=[procs.dy_lep_pt100To250], + processes=[procs.dy_lep_pt100to250], keys=[ "/DYJetsToLL_LHEFilterPtZ-100To250_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa ], @@ -229,9 +229,9 @@ ) cpn.add_dataset( - name="dy_lep_pt250To400_amcatnlo", + name="dy_lep_pt250to400_amcatnlo", id=14353503, - processes=[procs.dy_lep_pt250To400], + processes=[procs.dy_lep_pt250to400], keys=[ "/DYJetsToLL_LHEFilterPtZ-250To400_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa ], @@ -240,9 +240,9 @@ ) cpn.add_dataset( - name="dy_lep_pt400To650_amcatnlo", + name="dy_lep_pt400to650_amcatnlo", id=14335843, - processes=[procs.dy_lep_pt400To650], + processes=[procs.dy_lep_pt400to650], keys=[ "/DYJetsToLL_LHEFilterPtZ-400To650_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v4/NANOAODSIM", # noqa ], @@ -280,9 +280,9 @@ # ht binned cpn.add_dataset( - name="w_lnu_ht70To100_madgraph", + name="w_lnu_ht70to100_madgraph", id=14240461, - processes=[procs.w_lnu_ht70To100], + processes=[procs.w_lnu_ht70to100], keys=[ "/WJetsToLNu_HT-70To100_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -291,9 +291,9 @@ ) cpn.add_dataset( - name="w_lnu_ht100To200_madgraph", + name="w_lnu_ht100to200_madgraph", id=14196336, - processes=[procs.w_lnu_ht100To200], + processes=[procs.w_lnu_ht100to200], keys=[ "/WJetsToLNu_HT-100To200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -302,9 +302,9 @@ ) cpn.add_dataset( - name="w_lnu_ht200To400_madgraph", + name="w_lnu_ht200to400_madgraph", id=14195523, - processes=[procs.w_lnu_ht200To400], + processes=[procs.w_lnu_ht200to400], keys=[ "/WJetsToLNu_HT-200To400_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -313,9 +313,9 @@ ) cpn.add_dataset( - name="w_lnu_ht400To600_madgraph", + name="w_lnu_ht400to600_madgraph", id=14196379, - processes=[procs.w_lnu_ht400To600], + processes=[procs.w_lnu_ht400to600], keys=[ "/WJetsToLNu_HT-400To600_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -324,9 +324,9 @@ ) cpn.add_dataset( - name="w_lnu_ht600To800_madgraph", + name="w_lnu_ht600to800_madgraph", id=14196381, - processes=[procs.w_lnu_ht600To800], + processes=[procs.w_lnu_ht600to800], keys=[ "/WJetsToLNu_HT-600To800_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -335,9 +335,9 @@ ) cpn.add_dataset( - name="w_lnu_ht800To1200_madgraph", + name="w_lnu_ht800to1200_madgraph", id=14222533, - processes=[procs.w_lnu_ht800To1200], + processes=[procs.w_lnu_ht800to1200], keys=[ "/WJetsToLNu_HT-800To1200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa ], @@ -346,9 +346,9 @@ ) cpn.add_dataset( - name="w_lnu_ht1200To2500_madgraph", + name="w_lnu_ht1200to2500_madgraph", id=14197191, - processes=[procs.w_lnu_ht1200To2500], + processes=[procs.w_lnu_ht1200to2500], keys=[ "/WJetsToLNu_HT-1200To2500_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv11-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -434,10 +434,14 @@ # n_events=29521496, # ) +# # looking at the generator config: +# # https://raw.githubusercontent.com/cms-sw/genproductions/ce68f8a7ab05f530e0a99124088c08d1cc2bf355/bin/Powheg/production/2017/13TeV/ZZ/ZZ_2L2NU_NNPDF31_13TeV.input # noqa +# # it seems that there is a lepton mass cut of 4 GeV, like in the ZZTo2Q2L channel +# # therefore the corresponding process is with the "_m4" suffix # cpn.add_dataset( # name="zz_llnunu_powheg", # id=14237024, -# processes=[procs.zz_llnunu], +# processes=[procs.zz_llnunu_m4], # keys=[ # "/ZZTo2L2Nu_TuneCP5_13TeV_powheg_pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa # ], @@ -445,10 +449,14 @@ # n_events=40839000, # ) +# # looking at the generator config: +# # https://raw.githubusercontent.com/cms-sw/genproductions/ce68f8a7ab05f530e0a99124088c08d1cc2bf355/bin/Powheg/production/2017/13TeV/ZZ/ZZ_4L_NNPDF31_13TeV.input # noqa +# # it seems that there is a lepton mass cut of 4 GeV, like in the ZZTo2Q2L channel +# # therefore the corresponding process is with the "_m4" suffix # cpn.add_dataset( # name="zz_llll_powheg", # id=14243658, -# processes=[procs.zz_llll], +# processes=[procs.zz_llll_m4], # keys=[ # "/ZZTo4L_TuneCP5_13TeV_powheg_pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa # ], @@ -468,10 +476,14 @@ n_events=7889000, ) +# # looking at the generator config: +# # https://github.com/cms-sw/genproductions/blob/2422e1837f93f875c54f8ace0f02d3dc962eca41/bin/MadGraph5_aMCatNLO/cards/production/2017/13TeV/WZTo3LNu01j_5f_NLO_FXFX/WZTo3LNu01j_5f_NLO_FXFX_run_card.dat # noqa +# # it seems that there is a lepton mass cut of 4 GeV for leptons from Z, like in the ZZTo2Q2L channel +# # therefore the corresponding process is with the "_m4" suffix # cpn.add_dataset( # name="wz_lllnu_amcatnlo", # id=14253602, -# processes=[procs.wz_lllnu], +# processes=[procs.wz_lllnu_m4], # keys=[ # "/WZTo3LNu_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa # ], diff --git a/cmsdb/campaigns/run2_2017_nano_v9/ewk.py b/cmsdb/campaigns/run2_2017_nano_v9/ewk.py index 0484676b..8d84bba4 100644 --- a/cmsdb/campaigns/run2_2017_nano_v9/ewk.py +++ b/cmsdb/campaigns/run2_2017_nano_v9/ewk.py @@ -182,9 +182,9 @@ # pt binned cpn.add_dataset( - name="dy_lep_pt50To100_amcatnlo", + name="dy_lep_pt50to100_amcatnlo", id=14231159, - processes=[procs.dy_lep_pt50To100], + processes=[procs.dy_lep_pt50to100], keys=[ "/DYJetsToLL_Pt-50To100_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -193,9 +193,9 @@ ) cpn.add_dataset( - name="dy_lep_pt100To250_amcatnlo", + name="dy_lep_pt100to250_amcatnlo", id=14300156, - processes=[procs.dy_lep_pt100To250], + processes=[procs.dy_lep_pt100to250], keys=[ "/DYJetsToLL_Pt-100To250_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -204,9 +204,9 @@ ) cpn.add_dataset( - name="dy_lep_pt250To400_amcatnlo", + name="dy_lep_pt250to400_amcatnlo", id=14235259, - processes=[procs.dy_lep_pt250To400], + processes=[procs.dy_lep_pt250to400], keys=[ "/DYJetsToLL_Pt-250To400_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -215,9 +215,9 @@ ) cpn.add_dataset( - name="dy_lep_pt400To650_amcatnlo", + name="dy_lep_pt400to650_amcatnlo", id=14228178, - processes=[procs.dy_lep_pt400To650], + processes=[procs.dy_lep_pt400to650], keys=[ "/DYJetsToLL_Pt-400To650_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -255,9 +255,9 @@ # ht binned cpn.add_dataset( - name="w_lnu_ht70To100_madgraph", + name="w_lnu_ht70to100_madgraph", id=14245091, - processes=[procs.w_lnu_ht70To100], + processes=[procs.w_lnu_ht70to100], keys=[ "/WJetsToLNu_HT-70To100_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -266,9 +266,9 @@ ) cpn.add_dataset( - name="w_lnu_ht100To200_madgraph", + name="w_lnu_ht100to200_madgraph", id=14231627, - processes=[procs.w_lnu_ht100To200], + processes=[procs.w_lnu_ht100to200], keys=[ "/WJetsToLNu_HT-100To200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -277,9 +277,9 @@ ) cpn.add_dataset( - name="w_lnu_ht200To400_madgraph", + name="w_lnu_ht200to400_madgraph", id=14239255, - processes=[procs.w_lnu_ht200To400], + processes=[procs.w_lnu_ht200to400], keys=[ "/WJetsToLNu_HT-200To400_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -288,9 +288,9 @@ ) cpn.add_dataset( - name="w_lnu_ht400To600_madgraph", + name="w_lnu_ht400to600_madgraph", id=14231356, - processes=[procs.w_lnu_ht400To600], + processes=[procs.w_lnu_ht400to600], keys=[ "/WJetsToLNu_HT-400To600_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -299,9 +299,9 @@ ) cpn.add_dataset( - name="w_lnu_ht600To800_madgraph", + name="w_lnu_ht600to800_madgraph", id=14230638, - processes=[procs.w_lnu_ht600To800], + processes=[procs.w_lnu_ht600to800], keys=[ "/WJetsToLNu_HT-600To800_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -310,9 +310,9 @@ ) cpn.add_dataset( - name="w_lnu_ht800To1200_madgraph", + name="w_lnu_ht800to1200_madgraph", id=14346984, - processes=[procs.w_lnu_ht800To1200], + processes=[procs.w_lnu_ht800to1200], keys=[ "/WJetsToLNu_HT-800To1200_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v3/NANOAODSIM", # noqa ], @@ -321,9 +321,9 @@ ) cpn.add_dataset( - name="w_lnu_ht1200To2500_madgraph", + name="w_lnu_ht1200to2500_madgraph", id=14231551, - processes=[procs.w_lnu_ht1200To2500], + processes=[procs.w_lnu_ht1200to2500], keys=[ "/WJetsToLNu_HT-1200To2500_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -409,10 +409,14 @@ n_events=29521496, ) +# looking at the generator config: +# https://raw.githubusercontent.com/cms-sw/genproductions/ce68f8a7ab05f530e0a99124088c08d1cc2bf355/bin/Powheg/production/2017/13TeV/ZZ/ZZ_2L2NU_NNPDF31_13TeV.input # noqa +# it seems that there is a lepton mass cut of 4 GeV, like in the ZZTo2Q2L channel +# therefore the corresponding process is with the "_m4" suffix cpn.add_dataset( name="zz_llnunu_powheg", id=14237024, - processes=[procs.zz_llnunu], + processes=[procs.zz_llnunu_m4], keys=[ "/ZZTo2L2Nu_TuneCP5_13TeV_powheg_pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM", # noqa ], @@ -420,10 +424,14 @@ n_events=40839000, ) +# looking at the generator config: +# https://raw.githubusercontent.com/cms-sw/genproductions/ce68f8a7ab05f530e0a99124088c08d1cc2bf355/bin/Powheg/production/2017/13TeV/ZZ/ZZ_4L_NNPDF31_13TeV.input # noqa +# it seems that there is a lepton mass cut of 4 GeV, like in the ZZTo2Q2L channel +# therefore the corresponding process is with the "_m4" suffix cpn.add_dataset( name="zz_llll_powheg", id=14243658, - processes=[procs.zz_llll], + processes=[procs.zz_llll_m4], keys=[ "/ZZTo4L_TuneCP5_13TeV_powheg_pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa ], @@ -443,10 +451,14 @@ n_events=7889000, ) +# looking at the generator config: +# https://github.com/cms-sw/genproductions/blob/2422e1837f93f875c54f8ace0f02d3dc962eca41/bin/MadGraph5_aMCatNLO/cards/production/2017/13TeV/WZTo3LNu01j_5f_NLO_FXFX/WZTo3LNu01j_5f_NLO_FXFX_run_card.dat # noqa +# it seems that there is a lepton mass cut of 4 GeV for leptons from Z, like in the ZZTo2Q2L channel +# therefore the corresponding process is with the "_m4" suffix cpn.add_dataset( name="wz_lllnu_amcatnlo", id=14253602, - processes=[procs.wz_lllnu], + processes=[procs.wz_lllnu_m4], keys=[ "/WZTo3LNu_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa ], diff --git a/cmsdb/campaigns/run2_2017_nano_v9/hh2bbww.py b/cmsdb/campaigns/run2_2017_nano_v9/hh2bbww.py index a988043d..9b484d7a 100644 --- a/cmsdb/campaigns/run2_2017_nano_v9/hh2bbww.py +++ b/cmsdb/campaigns/run2_2017_nano_v9/hh2bbww.py @@ -20,6 +20,7 @@ ], n_files=26, n_events=392598, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -31,6 +32,7 @@ ], n_files=24, n_events=399994, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -42,6 +44,7 @@ ], n_files=40, n_events=399996, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -53,6 +56,7 @@ ], n_files=28, n_events=395996, + aux={"allow_uppercase_name": True}, ) # @@ -68,6 +72,7 @@ ], n_files=15, n_events=400000, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -79,6 +84,7 @@ ], n_files=23, n_events=395000, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -90,6 +96,7 @@ ], n_files=26, n_events=397398, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -101,6 +108,7 @@ ], n_files=22, n_events=399999, + aux={"allow_uppercase_name": True}, ) # @@ -116,6 +124,7 @@ ], n_files=4, n_events=396993, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -127,6 +136,7 @@ ], n_files=14, n_events=389995, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -138,6 +148,7 @@ ], n_files=7, n_events=399997, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -149,6 +160,7 @@ ], n_files=18, n_events=399993, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -160,6 +172,7 @@ ], n_files=2, n_events=399997, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -171,6 +184,7 @@ ], n_files=3, n_events=399998, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -182,6 +196,7 @@ ], n_files=1, n_events=399998, + aux={"allow_uppercase_name": True}, ) # @@ -197,6 +212,7 @@ ], n_files=20, n_events=396000, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -208,6 +224,7 @@ ], n_files=2, n_events=399999, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -219,6 +236,7 @@ ], n_files=10, n_events=395998, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -230,6 +248,7 @@ ], n_files=2, n_events=400000, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -241,6 +260,7 @@ ], n_files=7, n_events=395998, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -252,6 +272,7 @@ ], n_files=1, n_events=400000, + aux={"allow_uppercase_name": True}, ) cpn.add_dataset( @@ -263,6 +284,7 @@ ], n_files=18, n_events=397998, + aux={"allow_uppercase_name": True}, ) # diff --git a/cmsdb/campaigns/run2_2017_nano_v9/qcd.py b/cmsdb/campaigns/run2_2017_nano_v9/qcd.py index f247cd0f..3431c47e 100644 --- a/cmsdb/campaigns/run2_2017_nano_v9/qcd.py +++ b/cmsdb/campaigns/run2_2017_nano_v9/qcd.py @@ -441,9 +441,9 @@ ) cpn.add_dataset( - name="qcd_em_pt300toInf_pythia", + name="qcd_em_pt300toinf_pythia", id=14275722, - processes=[procs.qcd_em_pt300toInf], + processes=[procs.qcd_em_pt300toinf], keys=[ "/QCD_Pt-300toInf_EMEnriched_TuneCP5_13TeV-pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v2/NANOAODSIM", # noqa ], @@ -513,9 +513,9 @@ ) cpn.add_dataset( - name="qcd_bctoe_pt250toInf_pythia", + name="qcd_bctoe_pt250toinf_pythia", id=14306070, - processes=[procs.qcd_bctoe_pt250toInf], + processes=[procs.qcd_bctoe_pt250toinf], keys=[ "/QCD_Pt_250toInf_bcToE_TuneCP5_13TeV_pythia8/RunIISummer20UL17NanoAODv9-106X_mc2017_realistic_v9-v1/NANOAODSIM" # NOQA ], diff --git a/cmsdb/campaigns/run3_2022_postEE_nano_v12/hh2bbww.py b/cmsdb/campaigns/run3_2022_postEE_nano_v12/hh2bbww.py index fa36b4c4..80f00993 100644 --- a/cmsdb/campaigns/run3_2022_postEE_nano_v12/hh2bbww.py +++ b/cmsdb/campaigns/run3_2022_postEE_nano_v12/hh2bbww.py @@ -21,6 +21,7 @@ ], n_files=40, n_events=769320, + aux={"allow_uppercase_name": True}, ) # @@ -36,6 +37,7 @@ ], n_files=33, n_events=307250, + aux={"allow_uppercase_name": True}, ) # @@ -51,4 +53,5 @@ ], n_files=64, n_events=302033, + aux={"allow_uppercase_name": True}, ) diff --git a/cmsdb/campaigns/run3_2022_postEE_nano_v12/qcd.py b/cmsdb/campaigns/run3_2022_postEE_nano_v12/qcd.py index 3d644db3..f0a203ff 100644 --- a/cmsdb/campaigns/run3_2022_postEE_nano_v12/qcd.py +++ b/cmsdb/campaigns/run3_2022_postEE_nano_v12/qcd.py @@ -196,9 +196,9 @@ n_events=3542697, ) cpn.add_dataset( - name="qcd_em_pt300toInf_pythia", + name="qcd_em_pt300toinf_pythia", id=14791344, - processes=[procs.qcd_em_pt300toInf], + processes=[procs.qcd_em_pt300toinf], keys=[ "/QCD_PT-300_EMEnriched_TuneCP5_13p6TeV_pythia8/Run3Summer22EENanoAODv12-130X_mcRun3_2022_realistic_postEE_v6-v2/NANOAODSIM", # noqa ], diff --git a/cmsdb/campaigns/run3_2022_preEE_nano_v12/hh2bbww.py b/cmsdb/campaigns/run3_2022_preEE_nano_v12/hh2bbww.py index e629929b..51f72f2e 100644 --- a/cmsdb/campaigns/run3_2022_preEE_nano_v12/hh2bbww.py +++ b/cmsdb/campaigns/run3_2022_preEE_nano_v12/hh2bbww.py @@ -20,6 +20,7 @@ ], n_files=48, n_events=229178, + aux={"allow_uppercase_name": True}, ) # @@ -35,6 +36,7 @@ ], n_files=31, n_events=89899, + aux={"allow_uppercase_name": True}, ) # @@ -50,4 +52,5 @@ ], n_files=20, n_events=86800, + aux={"allow_uppercase_name": True}, ) diff --git a/cmsdb/campaigns/run3_2022_preEE_nano_v12/qcd.py b/cmsdb/campaigns/run3_2022_preEE_nano_v12/qcd.py index 8c95e0b5..79fc09e2 100644 --- a/cmsdb/campaigns/run3_2022_preEE_nano_v12/qcd.py +++ b/cmsdb/campaigns/run3_2022_preEE_nano_v12/qcd.py @@ -202,9 +202,9 @@ n_events=1007981, ) cpn.add_dataset( - name="qcd_em_pt300toInf_pythia", + name="qcd_em_pt300toinf_pythia", id=14802354, - processes=[procs.qcd_em_pt300toInf], + processes=[procs.qcd_em_pt300toinf], keys=[ "/QCD_PT-300toInf_EMEnriched_TuneCP5_13p6TeV_pythia8/Run3Summer22NanoAODv12-130X_mcRun3_2022_realistic_v5-v2/NANOAODSIM", # noqa ], diff --git a/cmsdb/processes/ewk.py b/cmsdb/processes/ewk.py index b1611330..333b5344 100644 --- a/cmsdb/processes/ewk.py +++ b/cmsdb/processes/ewk.py @@ -13,8 +13,8 @@ "dy_lep_m50_ht70to100", "dy_lep_m50_ht100to200", "dy_lep_m50_ht200to400", "dy_lep_m50_ht400to600", "dy_lep_m50_ht600to800", "dy_lep_m50_ht800to1200", "dy_lep_m50_ht1200to2500", "dy_lep_m50_ht2500", - "dy_lep_pt0To50", "dy_lep_pt50To100", "dy_lep_pt100To250", "dy_lep_pt250To400", - "dy_lep_pt400To650", "dy_lep_pt650", + "dy_lep_pt0to50", "dy_lep_pt50to100", "dy_lep_pt100to250", "dy_lep_pt250to400", + "dy_lep_pt400to650", "dy_lep_pt650", "z", "z_nunu", "z_nunu_ht100to200", "z_nunu_ht200to400", "z_nunu_ht400to600", @@ -24,19 +24,13 @@ "z_qq_ht200to400", "z_qq_ht400to600", "z_qq_ht600to800", "z_qq_ht800", "w", "w_lnu", - "w_lnu_ht70To100", "w_lnu_ht100To200", "w_lnu_ht200To400", "w_lnu_ht400To600", - "w_lnu_ht600To800", "w_lnu_ht800To1200", "w_lnu_ht1200To2500", "w_lnu_ht2500", - "z", - "z_nunu", - "z_nunu_ht100To200", "z_nunu_ht200To400", "z_nunu_ht400To600", "z_nunu_ht600To800", - "z_nunu_ht800To1200", "z_nunu_ht1200To2500", "z_nunu_ht2500", - "z_qq", - "z_qq_ht200To400", "z_qq_ht400To600", "z_qq_ht600To800", "z_qq_ht800", + "w_lnu_ht70to100", "w_lnu_ht100to200", "w_lnu_ht200to400", "w_lnu_ht400to600", + "w_lnu_ht600to800", "w_lnu_ht800to1200", "w_lnu_ht1200to2500", "w_lnu_ht2500", "ewk", "ewk_wp_lnu_m50", "ewk_wm_lnu_m50", "ewk_z_ll_m50", "vv", - "zz", "zz_qqll_m4", "zz_llnunu", "zz_llll", "zz_qqqq", "zz_nunuqq", - "wz", "wz_lllnu", "wz_qqll_m4", "wz_lnuqq", + "zz", "zz_qqll_m4", "zz_llnunu_m4", "zz_llll_m4", "zz_qqqq", "zz_nunuqq", + "wz", "wz_lllnu_m4", "wz_qqll_m4", "wz_lnuqq", "ww", "ww_lnulnu", "ww_lnuqq", "ww_qqqq", "vvv", "zzz", "wzz", "wwz", "www", @@ -67,7 +61,7 @@ ) # NNLO cross section, based on: -# https://twiki.cern.ch/twiki/bin/viewauth/CMS/StandardModelCrossSectionsat13TeV?rev=27 +# https://twiki.cern.ch/twiki/bin/viewauth/CMS/StandardModelCrossSectionsat13TeV?rev=28 # and for 13.6 TeV, based on: # https://twiki.cern.ch/twiki/bin/viewauth/CMS/MATRIXCrossSectionsat13p6TeV?rev=12 @@ -93,134 +87,226 @@ }, ) -# based on datasets DY{i}JetsToLL_M-50_MatchEWPDG20_TuneCP5_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) + +# if needed for scaling from NLO to NNLO: +# NLO cross section, based on GenXSecAnalyzer for +# DYJetsToLL_M-50_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa + +dy_lep_m50_nlo_13TeV_xsec = Number(6421.0, {"tot": 11.25}) + +# if needed for scaling from LO to NNLO: +# LO cross section, based on GenXSecAnalyzer for DYJetsToLL_M-50_TuneCP5_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa + +dy_lep_m50_lo_13TeV_xsec = Number(5395.0, {"tot": 1.858}) + +# based on GenXSecAnalyzer +# for datasets DY{i}JetsToLL_M-50_MatchEWPDG20_TuneCP5_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa dy_lep_m50_1j = dy_lep_m50.add_process( name="dy_lep_m50_1j", id=51111, - xsecs={13: Number(928.3)}, + xsecs={ + 13: Number(926.8, { + "tot": 0.3597, + }), + }, ) dy_lep_m50_2j = dy_lep_m50.add_process( name="dy_lep_m50_2j", id=51112, - xsecs={13: Number(293.6)}, + xsecs={ + 13: Number(294.5, { + "tot": 0.1223, + }), + }, ) dy_lep_m50_3j = dy_lep_m50.add_process( name="dy_lep_m50_3j", id=51113, - xsecs={13: Number(86.53)}, + xsecs={ + 13: Number(86.53, { + "tot": 0.03853, + }), + }, ) dy_lep_m50_4j = dy_lep_m50.add_process( name="dy_lep_m50_4j", id=51114, - xsecs={13: Number(41.28)}, + xsecs={ + 13: Number(41.21, { + "tot": 0.02392, + }), + }, ) -# based on datasets DYJetsToLL_{i}J_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) +# based on GenXSecAnalyzer +# for DYJetsToLL_{i}J_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa dy_lep_0j = dy_lep.add_process( name="dy_lep_0j", id=51200, - xsecs={13: Number(5129.0)}, + xsecs={ + 13: Number(5134.0, { + "tot": 5.365, + }), + }, ) dy_lep_1j = dy_lep.add_process( name="dy_lep_1j", id=51300, - xsecs={13: Number(951.5)}, + xsecs={ + 13: Number(952.7, { + "tot": 2.174, + }), + }, ) dy_lep_2j = dy_lep.add_process( name="dy_lep_2j", id=51400, - xsecs={13: Number(361.4)}, + xsecs={ + 13: Number(359.1, { + "tot": 1.533, + }), + }, ) -# based on datasets DYJetsToLL_M-50_HT-{i}to{j}_TuneCP5_PSweights_13TeV-madgraphMLM-pythia8 (Autumn18, LO) +# LO cross sections, scaled to NNLO + +# based on GenXSecAnalyzer +# for DYJetsToLL_M-50_HT-{i}to{j}_TuneCP5_PSweights_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2 -n 5000000 # noqa dy_lep_m50_ht70to100 = dy_lep_m50.add_process( name="dy_lep_m50_ht70to100", id=51121, - xsecs={13: Number(146.5)}, + xsecs={ + 13: Number(139.9, {"tot": 0.5747}) * dy_lep_m50.get_xsec(13) / dy_lep_m50_lo_13TeV_xsec, + }, ) dy_lep_m50_ht100to200 = dy_lep_m50.add_process( name="dy_lep_m50_ht100to200", id=51122, - xsecs={13: Number(160.7)}, + xsecs={ + 13: Number(140.1, {"tot": 0.5875}) * dy_lep_m50.get_xsec(13) / dy_lep_m50_lo_13TeV_xsec, + }, ) dy_lep_m50_ht200to400 = dy_lep_m50.add_process( name="dy_lep_m50_ht200to400", id=51123, - xsecs={13: Number(48.63)}, + xsecs={ + 13: Number(38.38, {"tot": 0.01628}) * dy_lep_m50.get_xsec(13) / dy_lep_m50_lo_13TeV_xsec, + }, ) dy_lep_m50_ht400to600 = dy_lep_m50.add_process( name="dy_lep_m50_ht400to600", id=51124, - xsecs={13: Number(6.993)}, + xsecs={ + 13: Number(5.212, {"tot": 0.003149}) * dy_lep_m50.get_xsec(13) / dy_lep_m50_lo_13TeV_xsec, + }, ) dy_lep_m50_ht600to800 = dy_lep_m50.add_process( name="dy_lep_m50_ht600to800", id=51125, - xsecs={13: Number(1.761)}, + xsecs={ + 13: Number(1.266, {"tot": 0.0007976}) * dy_lep_m50.get_xsec(13) / dy_lep_m50_lo_13TeV_xsec, + }, ) dy_lep_m50_ht800to1200 = dy_lep_m50.add_process( name="dy_lep_m50_ht800to1200", id=51126, - xsecs={13: Number(0.8021)}, + xsecs={ + 13: Number(0.5684, {"tot": 0.0003515}) * dy_lep_m50.get_xsec(13) / dy_lep_m50_lo_13TeV_xsec, + }, ) dy_lep_m50_ht1200to2500 = dy_lep_m50.add_process( name="dy_lep_m50_ht1200to2500", id=51127, - xsecs={13: Number(0.1937)}, + xsecs={ + 13: Number(0.1332, {"tot": 0.00009084}) * dy_lep_m50.get_xsec(13) / dy_lep_m50_lo_13TeV_xsec, + }, ) dy_lep_m50_ht2500 = dy_lep_m50.add_process( name="dy_lep_m50_ht2500", id=51128, - xsecs={13: Number(0.003514)}, + xsecs={ + 13: Number(0.002977, {"tot": 0.000003412}) * dy_lep_m50.get_xsec(13) / dy_lep_m50_lo_13TeV_xsec, + }, ) -# based on datasets DYJetsToLL_Pt-{i}To{j}_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) -dy_lep_pt0To50 = dy_lep.add_process( - name="dy_lep_pt0To50", +# based on GenXSecAnalyzer +# for DYJetsToLL_LHEFilterPtZ-{i}To{j}_MatchEWPDG20_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2 -n 5000000 # noqa +dy_lep_pt0to50 = dy_lep.add_process( + name="dy_lep_pt0to50", id=51510, - xsecs={13: Number(1.0)}, # TODO + xsecs={ + 13: Number(1494.0, { + "tot": 1.751, + }), + }, ) -dy_lep_pt50To100 = dy_lep.add_process( - name="dy_lep_pt50To100", +dy_lep_pt50to100 = dy_lep.add_process( + name="dy_lep_pt50to100", id=51520, - xsecs={13: Number(398.8)}, + xsecs={ + 13: Number(398.3, { + "tot": 0.5600, + }), + }, ) -dy_lep_pt100To250 = dy_lep.add_process( - name="dy_lep_pt100To250", +dy_lep_pt100to250 = dy_lep.add_process( + name="dy_lep_pt100to250", id=51530, - xsecs={13: Number(93.61)}, + xsecs={ + 13: Number(96.58, { + "tot": 0.1370, + }), + }, ) -dy_lep_pt250To400 = dy_lep.add_process( - name="dy_lep_pt250To400", +dy_lep_pt250to400 = dy_lep.add_process( + name="dy_lep_pt250to400", id=51540, - xsecs={13: Number(3.67)}, + xsecs={ + 13: Number(3.738, { + "tot": 0.005305, + }), + }, ) -dy_lep_pt400To650 = dy_lep.add_process( - name="dy_lep_pt400To650", +dy_lep_pt400to650 = dy_lep.add_process( + name="dy_lep_pt400to650", id=51550, - xsecs={13: Number(0.5)}, + xsecs={ + 13: Number(0.5050, { + "tot": 0.0008169, + }), + }, ) dy_lep_pt650 = dy_lep.add_process( name="dy_lep_pt650", id=51560, - xsecs={13: Number(0.04704)}, + xsecs={ + 13: Number(0.04763, { + "tot": 0.00007206, + }), + }, ) # @@ -249,11 +335,16 @@ }, ) +# 13 TeV Xsecs based on GenXSecAnalyzer +# for ZJetsToNuNu_HT-{i}To{j}_TuneCP5_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa z_nunu_ht100to200 = z_nunu.add_process( name="z_nunu_ht100to200", id=55110, xsecs={ - 13: Number(0.1), # TODO + 13: Number(266.1, { + "tot": 0.1117, + }), 13.6: Number(0.1), # TODO }, ) @@ -262,7 +353,9 @@ name="z_nunu_ht200to400", id=55120, xsecs={ - 13: Number(0.1), # TODO + 13: Number(73.00, { + "tot": 0.04408, + }), 13.6: Number(0.1), # TODO }, ) @@ -271,7 +364,9 @@ name="z_nunu_ht400to600", id=55130, xsecs={ - 13: Number(0.1), # TODO + 13: Number(9.915, { + "tot": 0.004229, + }), 13.6: Number(0.1), # TODO }, ) @@ -280,7 +375,9 @@ name="z_nunu_ht600to800", id=55140, xsecs={ - 13: Number(0.1), # TODO + 13: Number(2.409, { + "tot": 0.001678, + }), 13.6: Number(0.1), # TODO }, ) @@ -289,7 +386,9 @@ name="z_nunu_ht800to1200", id=55150, xsecs={ - 13: Number(0.1), # TODO + 13: Number(1.077, { + "tot": 0.001295, + }), 13.6: Number(0.1), # TODO }, ) @@ -298,7 +397,9 @@ name="z_nunu_ht1200to2500", id=55160, xsecs={ - 13: Number(0.1), # TODO + 13: Number(0.2495, { + "tot": 0.0007030, + }), 13.6: Number(0.1), # TODO }, ) @@ -307,13 +408,18 @@ name="z_nunu_ht2500", id=55170, xsecs={ - 13: Number(0.1), # TODO + 13: Number(0.005614, { + "tot": 0.00001616, + }), 13.6: Number(0.1), # TODO }, ) # Z -> quarks +# 13 TeV Xsecs based on GenXSecAnalyzer +# for ZJetsToQQ_HT-{i}to{j}_TuneCP5_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2 -n 5000000 # noqa z_qq = z.add_process( name="z_qq", id=55210, @@ -328,7 +434,9 @@ name="z_qq_ht200to400", id=55210, xsecs={ - 13: Number(0.1), # TODO + 13: Number(1012.0, { + "tot": 0.4260, + }), 13.6: Number(0.1), # TODO }, ) @@ -337,7 +445,9 @@ name="z_qq_ht400to600", id=55220, xsecs={ - 13: Number(0.1), # TODO + 13: Number(114.5, { + "tot": 0.04884, + }), 13.6: Number(0.1), # TODO }, ) @@ -346,7 +456,9 @@ name="z_qq_ht600to800", id=55230, xsecs={ - 13: Number(0.1), # TODO + 13: Number(25.38, { + "tot": 0.01088, + }), 13.6: Number(0.1), # TODO }, ) @@ -355,7 +467,9 @@ name="z_qq_ht800", id=55240, xsecs={ - 13: Number(0.1), # TODO + 13: Number(12.92, { + "tot": 0.005923, + }), 13.6: Number(0.1), # TODO }, ) @@ -369,7 +483,7 @@ name="w", id=6000, label="W + jets", - xsecs={13: Number(0.1)}, # TODO + xsecs={13: Number(0.1)}, # TODO, or use w.set_xsec(13, w_lnu.get_xsec(13) / const.br_w["lep"]) below? ) # NNLO cross section, based on: @@ -400,151 +514,85 @@ }, ) + +# LO cross section, needed for scaling to NNLO: +# based on GenXSecAnalyzer +# for WJetsToLNu_TuneCP5_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa + +w_lnu_lo_13TeV_xsec = Number(54070.0, {"tot": 18.32}) + # LO cross sections, scaled to NNLO -# inclusive cross section based on WJetsToLNu_TuneCP5_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) -# ht bins based on datasets WJetsToLNu_HT-{i}To{j}_TuneCP5_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) -w_lnu_ht70To100 = w_lnu.add_process( - name="w_lnu_ht70To100", + +# ht bins based on GenXSecAnalyzer +# for WJetsToLNu_HT-{i}To{j}_TuneCP5_13TeV-madgraphMLM-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa +w_lnu_ht70to100 = w_lnu.add_process( + name="w_lnu_ht70to100", id=6110, - xsecs={13: w_lnu.get_xsec(13) * 1264.0 / 53870.0}, + xsecs={ + 13: Number(1270.0, {"tot": 0.5259}) * w_lnu.get_xsec(13) / w_lnu_lo_13TeV_xsec, + }, ) -w_lnu_ht100To200 = w_lnu.add_process( - name="w_lnu_ht100To200", +w_lnu_ht100to200 = w_lnu.add_process( + name="w_lnu_ht100to200", id=6120, - xsecs={13: w_lnu.get_xsec(13) * 1256.0 / 53870.0}, + xsecs={ + 13: Number(1254.0, {"tot": 0.5274}) * w_lnu.get_xsec(13) / w_lnu_lo_13TeV_xsec, + }, ) -w_lnu_ht200To400 = w_lnu.add_process( - name="w_lnu_ht200To400", +w_lnu_ht200to400 = w_lnu.add_process( + name="w_lnu_ht200to400", id=6130, - xsecs={13: w_lnu.get_xsec(13) * 335.5 / 53870.0}, + xsecs={ + 13: Number(336.6, {"tot": 0.1528}) * w_lnu.get_xsec(13) / w_lnu_lo_13TeV_xsec, + }, ) -w_lnu_ht400To600 = w_lnu.add_process( - name="w_lnu_ht400To600", +w_lnu_ht400to600 = w_lnu.add_process( + name="w_lnu_ht400to600", id=6140, - xsecs={13: w_lnu.get_xsec(13) * 45.25 / 53870.0}, + xsecs={ + 13: Number(45.21, {"tot": 0.02966}) * w_lnu.get_xsec(13) / w_lnu_lo_13TeV_xsec, + }, ) -w_lnu_ht600To800 = w_lnu.add_process( - name="w_lnu_ht600To800", +w_lnu_ht600to800 = w_lnu.add_process( + name="w_lnu_ht600to800", id=6150, - xsecs={13: w_lnu.get_xsec(13) * 10.97 / 53870.0}, + xsecs={ + 13: Number(10.98, {"tot": 0.006997}) * w_lnu.get_xsec(13) / w_lnu_lo_13TeV_xsec, + }, ) -w_lnu_ht800To1200 = w_lnu.add_process( - name="w_lnu_ht800To1200", +w_lnu_ht800to1200 = w_lnu.add_process( + name="w_lnu_ht800to1200", id=6160, - xsecs={13: w_lnu.get_xsec(13) * 4.933 / 53870.0}, + xsecs={ + 13: Number(4.927, {"tot": 0.003229}) * w_lnu.get_xsec(13) / w_lnu_lo_13TeV_xsec, + }, ) -w_lnu_ht1200To2500 = w_lnu.add_process( - name="w_lnu_ht1200To2500", +w_lnu_ht1200to2500 = w_lnu.add_process( + name="w_lnu_ht1200to2500", id=6170, - xsecs={13: w_lnu.get_xsec(13) * 1.16 / 53870.0}, + xsecs={ + 13: Number(1.157, {"tot": 0.0007663}) * w_lnu.get_xsec(13) / w_lnu_lo_13TeV_xsec, + }, ) -# NOTE: Summer20UL16 not available in xsdb, Fall17 cross section is used instead +# this ht bin needs the command: +# ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2 -n 5000000 # noqa w_lnu_ht2500 = w_lnu.add_process( name="w_lnu_ht2500", id=6180, - xsecs={13: w_lnu.get_xsec(13) * 0.008001 / 53870.0}, -) - -# -# Z boson -# - -z = Process( - name="z", - id=6500, - label="Z + jets", - xsecs={13: Number(0.1)}, # TODO -) - -z_nunu = z.add_process( - name="z_nunu", - id=6600, - label=rf"{z.label} ($Z \rightarrow \nu\nu$)", - xsecs={13: Number(0.1)}, # TODO -) - -z_nunu_ht100To200 = z_nunu.add_process( - name="z_nunu_ht100To200", - id=6610, - xsecs={13: Number(0.1)}, # TODO -) - -z_nunu_ht200To400 = z_nunu.add_process( - name="z_nunu_ht200To400", - id=6620, - xsecs={13: Number(0.1)}, # TODO -) - -z_nunu_ht400To600 = z_nunu.add_process( - name="z_nunu_ht400To600", - id=6630, - xsecs={13: Number(0.1)}, # TODO -) - -z_nunu_ht600To800 = z_nunu.add_process( - name="z_nunu_ht600To800", - id=6640, - xsecs={13: Number(0.1)}, # TODO -) - -z_nunu_ht800To1200 = z_nunu.add_process( - name="z_nunu_ht800To1200", - id=6650, - xsecs={13: Number(0.1)}, # TODO -) - -z_nunu_ht1200To2500 = z_nunu.add_process( - name="z_nunu_ht1200To2500", - id=6660, - xsecs={13: Number(0.1)}, # TODO -) - -z_nunu_ht2500 = z_nunu.add_process( - name="z_nunu_ht2500", - id=6670, - xsecs={13: Number(0.1)}, # TODO -) - - -z_qq = z.add_process( - name="z_qq", - id=6700, - label=rf"{z.label} ($Z \rightarrow q\bar{{q}}$)", - xsecs={13: Number(0.1)}, # TODO -) - -z_qq_ht200To400 = z_qq.add_process( - name="z_qq_ht200To400", - id=6710, - xsecs={13: Number(0.1)}, # TODO -) - -z_qq_ht400To600 = z_qq.add_process( - name="z_qq_ht400To600", - id=6720, - xsecs={13: Number(0.1)}, # TODO -) - -z_qq_ht600To800 = z_qq.add_process( - name="z_qq_ht600To800", - id=6730, - xsecs={13: Number(0.1)}, # TODO -) - -z_qq_ht800 = z_qq.add_process( - name="z_qq_ht800", - id=6740, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(0.02624, {"tot": 0.00002981}) * w_lnu.get_xsec(13) / w_lnu_lo_13TeV_xsec, + }, ) - # # EWK radiations # @@ -553,25 +601,40 @@ name="ewk", id=7000, label="EWK", - xsecs={13: Number(0.1)}, # TODO + xsecs={13: Number(0.1)}, # TODO? Sum over the other? maybe with scaled w xsec to inclusive? ) +# based on GenXSecAnalyzer +# for EWKWPlus2Jets_WToLNu_M-50_TuneCP5_withDipoleRecoil_13TeV-madgraph-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa ewk_wp_lnu_m50 = ewk.add_process( name="ewk_wp_lnu_m50", id=7100, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(39.07, {"tot": 0.006454}), + }, ) +# based on GenXSecAnalyzer +# for EWKWMinus2Jets_WToLNu_M-50_TuneCP5_withDipoleRecoil_13TeV-madgraph-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa ewk_wm_lnu_m50 = ewk.add_process( name="ewk_wm_lnu_m50", id=7200, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(32.10, {"tot": 0.005308}), + }, ) +# based on GenXSecAnalyzer +# for EWKZ2Jets_ZToLL_M-50_TuneCP5_withDipoleRecoil_13TeV-madgraph-pythia8 (Summer20UL16, LO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa ewk_z_ll_m50 = ewk.add_process( name="ewk_z_ll_m50", id=7300, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(6.206, {"tot": 0.002081}), + }, ) @@ -583,105 +646,208 @@ name="vv", id=8000, label="Di-Boson", - xsecs={13: Number(0.1)}, # TODO + xsecs={13: Number(0.1)}, # updated below as the sum over WW, WZ, ZZ ) +# ZZ xsec values at NLO from https://arxiv.org/pdf/1105.0020.pdf v1 +# old value before update: +# https://cms.cern.ch/iCMS/jsp/db_notes/noteInfo.jsp?cmsnoteid=CMS%20AN-2019/197 (v3) Number(12.13) (LO) + zz = vv.add_process( name="zz", id=8100, label="ZZ", xsecs={ - # https://cms.cern.ch/iCMS/jsp/db_notes/noteInfo.jsp?cmsnoteid=CMS%20AN-2019/197 (v3) - 13: Number(12.13), + 13: Number(15.99, {"scale": (0.037j, 0.026j)}), }, ) +# based on GenXSecAnalyzer +# for ZZTo2Q2L_mllmin4p0_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2 -n 5000000 # noqa zz_qqll_m4 = zz.add_process( name="zz_qqll_m4", id=8110, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(3.697, {"tot": 0.002713}), + }, ) -zz_llnunu = zz.add_process( - name="zz_llnunu", +# looking at the generator config: +# https://raw.githubusercontent.com/cms-sw/genproductions/ce68f8a7ab05f530e0a99124088c08d1cc2bf355/bin/Powheg/production/2017/13TeV/ZZ/ZZ_2L2NU_NNPDF31_13TeV.input # noqa +# it seems that there is a lepton mass cut of 4 GeV, like in the ZZTo2Q2L channel +# therefore values from GenXSecAnalyzer +# for ZZTo2L2Nu_TuneCP5_13TeV_powheg_pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa +zz_llnunu_m4 = zz.add_process( + name="zz_llnunu_m4", id=8120, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(0.9738, {"tot": 0.0009971}), + }, ) -zz_llll = zz.add_process( - name="zz_llll", +# looking at the generator config: +# https://raw.githubusercontent.com/cms-sw/genproductions/ce68f8a7ab05f530e0a99124088c08d1cc2bf355/bin/Powheg/production/2017/13TeV/ZZ/ZZ_4L_NNPDF31_13TeV.input # noqa +# it seems that there is a lepton mass cut of 4 GeV, like in the ZZTo2Q2L channel +# therefore values from GenXSecAnalyzer +# from ZZTo4L_TuneCP5_13TeV_powheg_pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa +zz_llll_m4 = zz.add_process( + name="zz_llll_m4", id=8130, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(1.325, {"tot": 0.00122}), + }, ) +# no additional cut found in generator card in MCM: +# dataset: /ZZTo4Q_5f_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2/MINIAODSIM # noqa +# therefore, value obtained from branching ratio. +# Log for GenXSecAnalyzer of +# for ZZTo4Q_5f_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) -> value : Number(3.287, {"tot": 0.006298}) +# also available, but not used here zz_qqqq = zz.add_process( name="zz_qqqq", id=8140, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: zz.get_xsec(13) * const.br_z["qq"] * const.br_z["qq"], # value around 7.8 + }, ) +# no branching ratio Z->nunu available, so taking values from GenXSecAnalyzer +# for ZZTo2Nu2Q_5f_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2 -n 5000000 # noqa zz_nunuqq = zz.add_process( name="zz_nunuqq", id=8150, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(4.557, {"tot": 0.004843}), + }, ) +# WZ xsec values at NLO from https://arxiv.org/pdf/1105.0020.pdf v1 +# can this be used too? https://arxiv.org/pdf/2110.11231.pdf -> actual measurement, no theory prediction +wp_z_xsec = { + 13: Number(28.55, {"scale": (0.041j, 0.032j)}), +} +wm_z_xsec = { + 13: Number(18.19, {"scale": (0.041j, 0.033j)}), +} + +# old value before update: +# https://cms.cern.ch/iCMS/jsp/db_notes/noteInfo.jsp?cmsnoteid=CMS%20AN-2019/197 (v3) Number(25.56) (LO) wz = vv.add_process( name="wz", id=8200, label="WZ", xsecs={ - # https://cms.cern.ch/iCMS/jsp/db_notes/noteInfo.jsp?cmsnoteid=CMS%20AN-2019/197 (v3) - 13: Number(25.56), + # as a remark, the W cross section calculation from + # https://twiki.cern.ch/twiki/bin/viewauth/CMS/StandardModelCrossSectionsat13TeV?rev=28 + # shows a permille difference in the values calculated directly and the ones added from w+ and w- + 13: wp_z_xsec[13] + wm_z_xsec[13], }, ) -wz_lllnu = wz.add_process( - name="wz_lllnu", +# looking at the generator config: +# https://github.com/cms-sw/genproductions/blob/2422e1837f93f875c54f8ace0f02d3dc962eca41/bin/MadGraph5_aMCatNLO/cards/production/2017/13TeV/WZTo3LNu01j_5f_NLO_FXFX/WZTo3LNu01j_5f_NLO_FXFX_run_card.dat # noqa +# it seems that there is a lepton mass cut of 4 GeV for leptons from Z, like in the ZZTo2Q2L channel +# therefore values from GenXSecAnalyzer +# for WZTo3LNu_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa +wz_lllnu_m4 = wz.add_process( + name="wz_lllnu_m4", id=8210, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(5.218, {"tot": 0.00525}), + }, ) +# based on GenXSecAnalyzer +# for WZTo2Q2L_mllmin4p0_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2 -n 5000000 # noqa wz_qqll_m4 = wz.add_process( name="wz_qqll_m4", id=8220, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(6.431, {"tot": 0.007851}), + }, ) + +# no additional cut found in generator card in MCM: +# dataset: /WZTo1L1Nu2Q_4f_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2/MINIAODSIM # noqa +# therefore, value obtained from branching ratio. +# Log for GenXSecAnalyzer of +# for WZTo1L1Nu2Q_4f_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) -> value : Number(9.159, {"tot": 0.008259}) +# also available, but not used here wz_lnuqq = wz.add_process( name="wz_lnuqq", id=8230, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: wz.get_xsec(13) * const.br_w["lep"] * const.br_z["qq"], # value around 10.65 + }, ) +# NNLO QCD from https://twiki.cern.ch/twiki/bin/view/CMS/StandardModelCrossSectionsat13TeV?rev=28 +# itself from https://arxiv.org/pdf/1408.5243.pdf v1 +# old value before update: +# https://cms.cern.ch/iCMS/jsp/db_notes/noteInfo.jsp?cmsnoteid=CMS%20AN-2019/197 (v3) Number(75.91) (LO) ww = vv.add_process( name="ww", id=8300, label="WW", xsecs={ - # https://cms.cern.ch/iCMS/jsp/db_notes/noteInfo.jsp?cmsnoteid=CMS%20AN-2019/197 (v3) - 13: Number(75.91), + 13: Number(118.7, {"scale": (0.025j, 0.022j)}), }, ) +# update vv cross section +for cme in [13]: + vv.set_xsec(cme, ww.get_xsec(cme) + wz.get_xsec(cme) + zz.get_xsec(cme)) + +# no additional cut found in generator card: +# https://raw.githubusercontent.com/cms-sw/genproductions/master/bin/Powheg/production/2017/13TeV/WWTo2L2Nu_NNPDF31nnlo_13TeV/WWTo2L2Nu_NNPDF31nnlo_13TeV.input # noqa +# therefore, value obtained from branching ratio. +# Log for GenXSecAnalyzer of +# WWTo2L2Nu_TuneCP5_13TeV-powheg-pythia8 (Summer20UL16, NLO) with Number(11.09, {"tot": 0.00704}) +# also available, but not used here ww_lnulnu = ww.add_process( name="ww_lnulnu", id=8310, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: ww.get_xsec(13) * const.br_ww.dl, # value around 12.6 for comparison to GenXSecAnalyzer NLO result + }, ) +# no additional cut found in generator card in MCM: +# dataset: /WWTo1L1Nu2Q_4f_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2/MINIAODSIM # noqa +# therefore, value obtained from branching ratio. +# Log for GenXSecAnalyzer of +# for WWTo1L1Nu2Q_4f_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) -> value : Number(50.94, {"tot": 0.042}) +# also available, but not used here ww_lnuqq = ww.add_process( name="ww_lnuqq", id=8320, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: ww.get_xsec(13) * const.br_ww.sl, # value around 50.06 for comparison to GenXSecAnalyzer NLO result + }, ) +# no additional cut found in generator card in MCM: +# dataset: /WWTo4Q_4f_TuneCP5_13TeV-amcatnloFXFX-pythia8/RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v3/MINIAODSIM # noqa +# therefore, value obtained from branching ratio. +# Log for GenXSecAnalyzer of +# for WWTo4Q_4f_TuneCP5_13TeV-amcatnloFXFX-pythia8 (Summer20UL16, NLO) -> value : Number(51.53, {"tot": 0.04349}) +# also available, but not used here ww_qqqq = ww.add_process( name="ww_qqqq", id=8330, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: ww.get_xsec(13) * const.br_ww.fh, # value around 53.94 for comparison to GenXSecAnalyzer NLO result + }, ) @@ -693,29 +859,58 @@ name="vvv", id=9000, label="Triple-Boson", - xsecs={13: Number(0.1)}, # TODO + xsecs={13: Number(0.1)}, # updated below as sum over individual processes ) +# based on GenXSecAnalyzer +# for ZZZ_TuneCP5_13TeV-amcatnlo-pythia8 (Summer20UL16, NLO) +# remark: calculated xsec has lower error for sample without ext-1 as not all events were used for calculation of ext-1 +# therefore the value for the sample without ext-1 is taken +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa zzz = vvv.add_process( name="zzz", id=9100, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(0.01476, {"tot": 2.347 * 10**(-6)}), + }, ) +# based on GenXSecAnalyzer +# for WZZ_TuneCP5_13TeV-amcatnlo-pythia8 (Summer20UL16, NLO, ext-1) +# remark: calculated xsec is the same for simple sample and ext-1 sample +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17_ext1-v1 -n 5000000 # noqa wzz = vvv.add_process( name="wzz", id=9200, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(0.05709, {"tot": 6.213 * 10**(-5)}), + }, ) +# based on GenXSecAnalyzer +# for WWZ_4F_TuneCP5_13TeV-amcatnlo-pythia8 (Summer20UL16, NLO, ext-1) +# remark: calculated xsec is the same for simple sample and ext-1 sample +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17_ext1-v1 -n 5000000 # noqa wwz = vvv.add_process( name="wwz", id=9300, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(0.1707, {"tot": 0.0001757}), + }, ) +# based on GenXSecAnalyzer +# for WWW_4F_TuneCP5_13TeV-amcatnlo-pythia8 (Summer20UL16, NLO, ext-1) +# remark: calculated xsec is the same for simple sample and ext-1 sample +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17_ext1-v1 -n 5000000 # noqa www = vvv.add_process( name="www", id=9400, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(0.2158, {"tot": 0.0002479}), + }, ) + +# update vvv cross section +for cme in [13]: + vvv.set_xsec(cme, www.get_xsec(cme) + wwz.get_xsec(cme) + wzz.get_xsec(cme) + zzz.get_xsec(cme)) diff --git a/cmsdb/processes/hh2bbtautau.py b/cmsdb/processes/hh2bbtautau.py index 63d6fc23..54d1d743 100644 --- a/cmsdb/processes/hh2bbtautau.py +++ b/cmsdb/processes/hh2bbtautau.py @@ -65,12 +65,12 @@ ] from scinum import Number +import cmsdb.constants as const from cmsdb.processes.higgs import ( hh_ggf, radion_hh_ggf, graviton_hh_ggf, radion_hh_vbf, graviton_hh_vbf, ) - - +from cmsdb.xsec_bsm_nodes import calculate_xsec_node # # ggF -> H -> HH # @@ -79,91 +79,115 @@ name="hh_ggf_bbtautau", id=21100, label=r"$HH_{ggf} \rightarrow bb\tau\tau$", - xsecs={13: Number(0.1)}, # TODO + xsecs={13: hh_ggf.get_xsec(13) * const.br_hh.bbtt}, # TODO ) hh_ggf_bbtautau_node1 = hh_ggf.add_process( name="hh_ggf_bbtautau_node1", id=21101, label=f"{hh_ggf_bbtautau.label} (node 1)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=1), + }, ) hh_ggf_bbtautau_node2 = hh_ggf.add_process( name="hh_ggf_bbtautau_node2", id=21102, label=f"{hh_ggf_bbtautau.label} (node 2)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=2), + }, ) hh_ggf_bbtautau_node3 = hh_ggf.add_process( name="hh_ggf_bbtautau_node3", id=21103, label=f"{hh_ggf_bbtautau.label} (node 3)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=3), + }, ) hh_ggf_bbtautau_node4 = hh_ggf.add_process( name="hh_ggf_bbtautau_node4", id=21104, label=f"{hh_ggf_bbtautau.label} (node 4)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=4), + }, ) hh_ggf_bbtautau_node5 = hh_ggf.add_process( name="hh_ggf_bbtautau_node5", id=21105, label=f"{hh_ggf_bbtautau.label} (node 5)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=5), + }, ) hh_ggf_bbtautau_node6 = hh_ggf.add_process( name="hh_ggf_bbtautau_node6", id=21106, label=f"{hh_ggf_bbtautau.label} (node 6)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=6), + }, ) hh_ggf_bbtautau_node7 = hh_ggf.add_process( name="hh_ggf_bbtautau_node7", id=21107, label=f"{hh_ggf_bbtautau.label} (node 7)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=7), + }, ) hh_ggf_bbtautau_node8 = hh_ggf.add_process( name="hh_ggf_bbtautau_node8", id=21108, label=f"{hh_ggf_bbtautau.label} (node 8)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=8), + }, ) hh_ggf_bbtautau_node9 = hh_ggf.add_process( name="hh_ggf_bbtautau_node9", id=21109, label=f"{hh_ggf_bbtautau.label} (node 9)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=9), + }, ) hh_ggf_bbtautau_node10 = hh_ggf.add_process( name="hh_ggf_bbtautau_node10", id=21110, label=f"{hh_ggf_bbtautau.label} (node 10)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=10), + }, ) hh_ggf_bbtautau_node11 = hh_ggf.add_process( name="hh_ggf_bbtautau_node11", id=21111, label=f"{hh_ggf_bbtautau.label} (node 11)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=11), + }, ) hh_ggf_bbtautau_node12 = hh_ggf.add_process( name="hh_ggf_bbtautau_node12", id=21112, label=f"{hh_ggf_bbtautau.label} (node 12)", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: calculate_xsec_node(13, hh_ggf_bbtautau.get_xsec(13), node_number=12), + }, ) @@ -175,7 +199,7 @@ name="radion_hh_ggf_bbtautau", id=23100, label=rf"{radion_hh_ggf.label} $\rightarrow bb\tau\tau$", - xsecs={13: Number(0.1)}, # TODO + xsecs={13: radion_hh_ggf.get_xsec(13) * const.br_hh.bbtt}, # TODO ) radion_hh_ggf_bbtautau_m250 = radion_hh_ggf_bbtautau.add_process( @@ -409,7 +433,7 @@ name="graviton_hh_ggf_bbtautau", id=24100, label=rf"{graviton_hh_ggf.label} $\rightarrow bb\tau\tau$", - xsecs={13: Number(0.1)}, # TODO + xsecs={13: graviton_hh_ggf.get_xsec(13) * const.br_hh.bbtt}, # TODO ) graviton_hh_ggf_bbtautau_m250 = graviton_hh_ggf_bbtautau.add_process( @@ -571,7 +595,7 @@ name="radion_hh_vbf_bbtautau", id=25100, label=rf"{radion_hh_vbf.label} $\rightarrow bb\tau\tau$", - xsecs={13: Number(0.1)}, # TODO + xsecs={13: radion_hh_vbf.get_xsec(13) * const.br_hh.bbtt}, # TODO ) radion_hh_vbf_bbtautau_m250 = radion_hh_vbf_bbtautau.add_process( @@ -733,7 +757,7 @@ name="graviton_hh_vbf_bbtautau", id=26100, label=rf"{graviton_hh_vbf.label} $\rightarrow bb\tau\tau$", - xsecs={13: Number(0.1)}, # TODO + xsecs={13: graviton_hh_vbf.get_xsec(13) * const.br_hh.bbtt}, # TODO ) graviton_hh_vbf_bbtautau_m250 = graviton_hh_vbf_bbtautau.add_process( diff --git a/cmsdb/processes/hh2bbww.py b/cmsdb/processes/hh2bbww.py index 32933351..8753c114 100644 --- a/cmsdb/processes/hh2bbww.py +++ b/cmsdb/processes/hh2bbww.py @@ -134,6 +134,7 @@ name="ggHH_hbbhvv", id=21400, label=r"$HH_{ggf} \rightarrow bbVV$", + aux={"allow_uppercase_name": True}, ) ggHH_kl_0_kt_1_hbbhvv = ggHH_kl_0_kt_1.add_process( @@ -141,6 +142,7 @@ id=21401, label=r"$HH_{ggf}^{\kappa\lambda=0} \rightarrow bbVV$", xsecs=multiply_xsecs(ggHH_kl_0_kt_1, br_bbvv), + aux={"allow_uppercase_name": True}, ) ggHH_kl_1_kt_1_hbbhvv = ggHH_kl_1_kt_1.add_process( @@ -148,6 +150,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=1} \rightarrow bbVV$", id=21402, xsecs=multiply_xsecs(ggHH_kl_1_kt_1, br_bbvv), + aux={"allow_uppercase_name": True}, ) ggHH_kl_2p45_kt_1_hbbhvv = ggHH_kl_2p45_kt_1.add_process( @@ -155,6 +158,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=2.45} \rightarrow bbVV$", id=21403, xsecs=multiply_xsecs(ggHH_kl_2p45_kt_1, br_bbvv), + aux={"allow_uppercase_name": True}, ) ggHH_kl_5_kt_1_hbbhvv = ggHH_kl_5_kt_1.add_process( @@ -162,6 +166,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=5} \rightarrow bbVV$", id=21404, xsecs=multiply_xsecs(ggHH_kl_5_kt_1, br_bbvv), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -178,6 +183,7 @@ name="qqHH_hbbhvv", id=22400, label=r"$HH_{vbf} \rightarrow bbVV$", + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_1_hbbhvv = qqHH_CV_1_C2V_1_kl_1.add_process( @@ -185,6 +191,7 @@ label=r"$HH_{vbf}^{1,1,1} \rightarrow bbVV$", id=22401, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_1, br_bbvv), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_0_hbbhvv = qqHH_CV_1_C2V_1_kl_0.add_process( @@ -192,6 +199,7 @@ label=r"$HH_{vbf}^{1,1,0} \rightarrow bbVV$", id=22402, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_0, br_bbvv), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_2_hbbhvv = qqHH_CV_1_C2V_1_kl_2.add_process( @@ -199,6 +207,7 @@ label=r"$HH_{vbf}^{1,1,2} \rightarrow bbVV$", id=22403, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_2, br_bbvv), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_0_kl_1_hbbhvv = qqHH_CV_1_C2V_0_kl_1.add_process( @@ -206,6 +215,7 @@ label=r"$HH_{vbf}^{1,0,1} \rightarrow bbVV$", id=22404, xsecs=multiply_xsecs(qqHH_CV_1_C2V_0_kl_1, br_bbvv), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_2_kl_1_hbbhvv = qqHH_CV_1_C2V_2_kl_1.add_process( @@ -213,6 +223,7 @@ label=r"$HH_{vbf}^{1,2,1} \rightarrow bbVV$", id=22405, xsecs=multiply_xsecs(qqHH_CV_1_C2V_2_kl_1, br_bbvv), + aux={"allow_uppercase_name": True}, ) qqHH_CV_0p5_C2V_1_kl_1_hbbhvv = qqHH_CV_0p5_C2V_1_kl_1.add_process( @@ -220,6 +231,7 @@ label=r"$HH_{vbf}^{0.5,1,1} \rightarrow bbVV$", id=22406, xsecs=multiply_xsecs(qqHH_CV_0p5_C2V_1_kl_1, br_bbvv), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1p5_C2V_1_kl_1_hbbhvv = qqHH_CV_1p5_C2V_1_kl_1.add_process( @@ -227,6 +239,7 @@ label=r"$HH_{vbf}^{1.5,1,1} \rightarrow bbVV$", id=22407, xsecs=multiply_xsecs(qqHH_CV_1p5_C2V_1_kl_1, br_bbvv), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -246,6 +259,7 @@ name="ggHH_qqlnu_hbbhvv", id=21310, label=r"$HH_{ggf} \rightarrow bbVV(qql\nu)$", + aux={"allow_uppercase_name": True}, ) ggHH_kl_0_kt_1_qqlnu_hbbhvv = ggHH_kl_0_kt_1_hbbhvv.add_process( @@ -253,6 +267,7 @@ id=21311, label=r"$HH_{ggf}^{\kappa\lambda=0} \rightarrow bbVV(qql\nu)$", xsecs=multiply_xsecs(ggHH_kl_0_kt_1, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_1_kt_1_qqlnu_hbbhvv = ggHH_kl_1_kt_1_hbbhvv.add_process( @@ -260,6 +275,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=1} \rightarrow bbVV(qql\nu)$", id=21312, xsecs=multiply_xsecs(ggHH_kl_1_kt_1, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_2p45_kt_1_qqlnu_hbbhvv = ggHH_kl_2p45_kt_1_hbbhvv.add_process( @@ -267,6 +283,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=2.45} \rightarrow bbVV(qql\nu)$", id=21313, xsecs=multiply_xsecs(ggHH_kl_2p45_kt_1, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_5_kt_1_qqlnu_hbbhvv = ggHH_kl_5_kt_1_hbbhvv.add_process( @@ -274,6 +291,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=5} \rightarrow bbVV(qql\nu)$", id=21314, xsecs=multiply_xsecs(ggHH_kl_5_kt_1, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) @@ -292,6 +310,7 @@ name="qqHH_qqlnu_hbbhvv", label=r"$HH_{vbf} \rightarrow bbVV(qql\nu)$", id=22410, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_1_qqlnu_hbbhvv = qqHH_CV_1_C2V_1_kl_1_hbbhvv.add_process( @@ -299,6 +318,7 @@ label=r"$HH_{vbf}^{1,1,1} \rightarrow bbVV(qql\nu)$", id=22411, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_1, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_0_qqlnu_hbbhvv = qqHH_CV_1_C2V_1_kl_0_hbbhvv.add_process( @@ -306,6 +326,7 @@ label=r"$HH_{vbf}^{1,1,0} \rightarrow bbVV(qql\nu)$", id=22412, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_0, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_2_qqlnu_hbbhvv = qqHH_CV_1_C2V_1_kl_2_hbbhvv.add_process( @@ -313,6 +334,7 @@ label=r"$HH_{vbf}^{1,1,2} \rightarrow bbVV(qql\nu)$", id=22413, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_2, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_0_kl_1_qqlnu_hbbhvv = qqHH_CV_1_C2V_0_kl_1_hbbhvv.add_process( @@ -320,6 +342,7 @@ label=r"$HH_{vbf}^{1,0,1} \rightarrow bbVV(qql\nu)$", id=22414, xsecs=multiply_xsecs(qqHH_CV_1_C2V_0_kl_1, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_2_kl_1_qqlnu_hbbhvv = qqHH_CV_1_C2V_2_kl_1_hbbhvv.add_process( @@ -327,6 +350,7 @@ label=r"$HH_{vbf}^{1,2,1} \rightarrow bbVV(qql\nu)$", id=22415, xsecs=multiply_xsecs(qqHH_CV_1_C2V_2_kl_1, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_0p5_C2V_1_kl_1_qqlnu_hbbhvv = qqHH_CV_0p5_C2V_1_kl_1_hbbhvv.add_process( @@ -334,6 +358,7 @@ label=r"$HH_{vbf}^{0.5,1,1} \rightarrow bbVV(qql\nu)$", id=22416, xsecs=multiply_xsecs(qqHH_CV_0p5_C2V_1_kl_1, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1p5_C2V_1_kl_1_qqlnu_hbbhvv = qqHH_CV_1p5_C2V_1_kl_1_hbbhvv.add_process( @@ -341,6 +366,7 @@ label=r"$HH_{vbf}^{1.5,1,1} \rightarrow bbVV(qql\nu)$", id=22417, xsecs=multiply_xsecs(qqHH_CV_1p5_C2V_1_kl_1, br_bbvv_qqlnu), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -360,6 +386,7 @@ name="ggHH_2l2nu_hbbhvv", id=21320, label=r"$HH_{ggf} \rightarrow bbVV(2l2\nu)$", + aux={"allow_uppercase_name": True}, ) ggHH_kl_0_kt_1_2l2nu_hbbhvv = ggHH_kl_0_kt_1_hbbhvv.add_process( @@ -367,6 +394,7 @@ id=21321, label=r"$HH_{ggf}^{\kappa\lambda=0} \rightarrow bbVV(2l2\nu)$", xsecs=multiply_xsecs(ggHH_kl_0_kt_1, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_1_kt_1_2l2nu_hbbhvv = ggHH_kl_1_kt_1_hbbhvv.add_process( @@ -374,6 +402,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=1} \rightarrow bbVV(2l2\nu)$", id=21322, xsecs=multiply_xsecs(ggHH_kl_1_kt_1, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_2p45_kt_1_2l2nu_hbbhvv = ggHH_kl_2p45_kt_1_hbbhvv.add_process( @@ -381,6 +410,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=2.45} \rightarrow bbVV(2l2\nu)$", id=21323, xsecs=multiply_xsecs(ggHH_kl_2p45_kt_1, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_5_kt_1_2l2nu_hbbhvv = ggHH_kl_5_kt_1_hbbhvv.add_process( @@ -388,6 +418,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=5} \rightarrow bbVV(2l2\nu)$", id=21324, xsecs=multiply_xsecs(ggHH_kl_5_kt_1, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) @@ -406,6 +437,7 @@ name="qqHH_2l2nu_hbbhvv", label=r"$HH_{vbf} \rightarrow bbVV(2l2\nu)$", id=22420, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_1_2l2nu_hbbhvv = qqHH_CV_1_C2V_1_kl_1_hbbhvv.add_process( @@ -413,6 +445,7 @@ label=r"$HH_{vbf}^{1,1,1} \rightarrow bbVV(2l2\nu)$", id=22421, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_1, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_0_2l2nu_hbbhvv = qqHH_CV_1_C2V_1_kl_0_hbbhvv.add_process( @@ -420,6 +453,7 @@ label=r"$HH_{vbf}^{1,1,0} \rightarrow bbVV(2l2\nu)$", id=22422, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_0, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_2_2l2nu_hbbhvv = qqHH_CV_1_C2V_1_kl_2_hbbhvv.add_process( @@ -427,6 +461,7 @@ label=r"$HH_{vbf}^{1,1,2} \rightarrow bbVV(2l2\nu)$", id=22423, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_2, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_0_kl_1_2l2nu_hbbhvv = qqHH_CV_1_C2V_0_kl_1_hbbhvv.add_process( @@ -434,6 +469,7 @@ label=r"$HH_{vbf}^{1,0,1} \rightarrow bbVV(2l2\nu)$", id=22424, xsecs=multiply_xsecs(qqHH_CV_1_C2V_0_kl_1, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_2_kl_1_2l2nu_hbbhvv = qqHH_CV_1_C2V_2_kl_1_hbbhvv.add_process( @@ -441,6 +477,7 @@ label=r"$HH_{vbf}^{1,2,1} \rightarrow bbVV(2l2\nu)$", id=22425, xsecs=multiply_xsecs(qqHH_CV_1_C2V_2_kl_1, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_0p5_C2V_1_kl_1_2l2nu_hbbhvv = qqHH_CV_0p5_C2V_1_kl_1_hbbhvv.add_process( @@ -448,6 +485,7 @@ label=r"$HH_{vbf}^{0.5,1,1} \rightarrow bbVV(2l2\nu)$", id=22426, xsecs=multiply_xsecs(qqHH_CV_0p5_C2V_1_kl_1, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1p5_C2V_1_kl_1_2l2nu_hbbhvv = qqHH_CV_1p5_C2V_1_kl_1_hbbhvv.add_process( @@ -455,6 +493,7 @@ label=r"$HH_{vbf}^{1.5,1,1} \rightarrow bbVV(2l2\nu)$", id=22427, xsecs=multiply_xsecs(qqHH_CV_1p5_C2V_1_kl_1, br_bbvv_2l2nu), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -480,6 +519,7 @@ name="ggHH_hbbhww", id=21200, label=r"$HH_{ggf} \rightarrow bbww$", + aux={"allow_uppercase_name": True}, ) ggHH_kl_0_kt_1_hbbhww = ggHH_kl_0_kt_1_hbbhvv.add_process( @@ -487,6 +527,7 @@ id=21201, label=r"$HH_{ggf}^{\kappa\lambda=0} \rightarrow bbww$", xsecs=multiply_xsecs(ggHH_kl_0_kt_1, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) ggHH_kl_1_kt_1_hbbhww = ggHH_kl_1_kt_1_hbbhvv.add_process( @@ -494,6 +535,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=1} \rightarrow bbww$", id=21202, xsecs=multiply_xsecs(ggHH_kl_1_kt_1, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) ggHH_kl_2p45_kt_1_hbbhww = ggHH_kl_2p45_kt_1_hbbhvv.add_process( @@ -501,6 +543,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=2.45} \rightarrow bbww$", id=21203, xsecs=multiply_xsecs(ggHH_kl_2p45_kt_1, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) ggHH_kl_5_kt_1_hbbhww = ggHH_kl_5_kt_1_hbbhvv.add_process( @@ -508,6 +551,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=5} \rightarrow bbww$", id=21204, xsecs=multiply_xsecs(ggHH_kl_5_kt_1, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -524,6 +568,7 @@ name="qqHH_hbbhww", id=22200, label=r"$HH_{vbf} \rightarrow bbWW$", + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_1_hbbhww = qqHH_CV_1_C2V_1_kl_1_hbbhvv.add_process( @@ -531,6 +576,7 @@ label=r"$HH_{vbf}^{1,1,1} \rightarrow bbWW$", id=22201, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_1, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_0_hbbhww = qqHH_CV_1_C2V_1_kl_0_hbbhvv.add_process( @@ -538,6 +584,7 @@ label=r"$HH_{vbf}^{1,1,0} \rightarrow bbWW$", id=22202, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_0, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_2_hbbhww = qqHH_CV_1_C2V_1_kl_2_hbbhvv.add_process( @@ -545,6 +592,7 @@ label=r"$HH_{vbf}^{1,1,2} \rightarrow bbWW$", id=22203, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_2, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_0_kl_1_hbbhww = qqHH_CV_1_C2V_0_kl_1_hbbhvv.add_process( @@ -552,6 +600,7 @@ label=r"$HH_{vbf}^{1,0,1} \rightarrow bbWW$", id=22204, xsecs=multiply_xsecs(qqHH_CV_1_C2V_0_kl_1, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_2_kl_1_hbbhww = qqHH_CV_1_C2V_2_kl_1_hbbhvv.add_process( @@ -559,6 +608,7 @@ label=r"$HH_{vbf}^{1,2,1} \rightarrow bbWW$", id=22205, xsecs=multiply_xsecs(qqHH_CV_1_C2V_2_kl_1, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) qqHH_CV_0p5_C2V_1_kl_1_hbbhww = qqHH_CV_0p5_C2V_1_kl_1_hbbhvv.add_process( @@ -566,6 +616,7 @@ label=r"$HH_{vbf}^{0.5,1,1} \rightarrow bbWW$", id=22206, xsecs=multiply_xsecs(qqHH_CV_0p5_C2V_1_kl_1, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1p5_C2V_1_kl_1_hbbhww = qqHH_CV_1p5_C2V_1_kl_1_hbbhvv.add_process( @@ -573,6 +624,7 @@ label=r"$HH_{vbf}^{1.5,1,1} \rightarrow bbWW$", id=22207, xsecs=multiply_xsecs(qqHH_CV_1p5_C2V_1_kl_1, const.br_hh.bbww), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -592,6 +644,7 @@ name="ggHH_qqlnu_hbbhww", id=21210, label=r"$HH_{ggf} \rightarrow bbWW(qql\nu)$", + aux={"allow_uppercase_name": True}, ) ggHH_kl_0_kt_1_qqlnu_hbbhww = ggHH_kl_0_kt_1_qqlnu_hbbhvv.add_process( @@ -599,6 +652,7 @@ id=21211, label=r"$HH_{ggf}^{\kappa\lambda=0} \rightarrow bbWW(qql\nu)$", xsecs=multiply_xsecs(ggHH_kl_0_kt_1, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_1_kt_1_qqlnu_hbbhww = ggHH_kl_1_kt_1_qqlnu_hbbhvv.add_process( @@ -606,6 +660,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=1} \rightarrow bbWW(qql\nu)$", id=21212, xsecs=multiply_xsecs(ggHH_kl_1_kt_1, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_2p45_kt_1_qqlnu_hbbhww = ggHH_kl_2p45_kt_1_qqlnu_hbbhvv.add_process( @@ -613,6 +668,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=2.45} \rightarrow bbWW(qql\nu)$", id=21213, xsecs=multiply_xsecs(ggHH_kl_2p45_kt_1, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_5_kt_1_qqlnu_hbbhww = ggHH_kl_5_kt_1_qqlnu_hbbhvv.add_process( @@ -620,6 +676,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=5} \rightarrow bbWW(qql\nu)$", id=21214, xsecs=multiply_xsecs(ggHH_kl_5_kt_1, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -642,6 +699,7 @@ name="ggHH_2l2nu_hbbhww", id=21220, label=r"$HH_{ggf} \rightarrow bbWW(l\nu l\nu)$", + aux={"allow_uppercase_name": True}, ) ggHH_kl_0_kt_1_2l2nu_hbbhww = ggHH_kl_0_kt_1_2l2nu_hbbhvv.add_process( @@ -649,6 +707,7 @@ id=21221, label=r"$HH_{ggf}^{\kappa\lambda=0} \rightarrow bbWW(l\nu l\nu)$", xsecs=multiply_xsecs(ggHH_kl_0_kt_1, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_1_kt_1_2l2nu_hbbhww = ggHH_kl_1_kt_1_2l2nu_hbbhvv.add_process( @@ -656,6 +715,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=1} \rightarrow bbWW(l\nu l\nu)$", id=21222, xsecs=multiply_xsecs(ggHH_kl_1_kt_1, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_2p45_kt_1_2l2nu_hbbhww = ggHH_kl_2p45_kt_1_2l2nu_hbbhvv.add_process( @@ -663,6 +723,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=2.45} \rightarrow bbWW(l\nu l\nu)$", id=21223, xsecs=multiply_xsecs(ggHH_kl_2p45_kt_1, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_5_kt_1_2l2nu_hbbhww = ggHH_kl_5_kt_1_2l2nu_hbbhvv.add_process( @@ -670,6 +731,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=5} \rightarrow bbWW(l\nu l\nu)$", id=21224, xsecs=multiply_xsecs(ggHH_kl_5_kt_1, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -691,6 +753,7 @@ name="qqHH_qqlnu_hbbhww", label=r"$HH_{vbf} \rightarrow bbWW(qql\nu)$", id=22210, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_1_qqlnu_hbbhww = qqHH_CV_1_C2V_1_kl_1_qqlnu_hbbhvv.add_process( @@ -698,6 +761,7 @@ label=r"$HH_{vbf}^{1,1,1} \rightarrow bbWW(qql\nu)$", id=22211, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_1, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_0_qqlnu_hbbhww = qqHH_CV_1_C2V_1_kl_0_qqlnu_hbbhvv.add_process( @@ -705,6 +769,7 @@ label=r"$HH_{vbf}^{1,1,0} \rightarrow bbWW(qql\nu)$", id=22212, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_0, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_2_qqlnu_hbbhww = qqHH_CV_1_C2V_1_kl_2_qqlnu_hbbhvv.add_process( @@ -712,6 +777,7 @@ label=r"$HH_{vbf}^{1,1,2} \rightarrow bbWW(qql\nu)$", id=22213, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_2, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_0_kl_1_qqlnu_hbbhww = qqHH_CV_1_C2V_0_kl_1_qqlnu_hbbhvv.add_process( @@ -719,6 +785,7 @@ label=r"$HH_{vbf}^{1,0,1} \rightarrow bbWW(qql\nu)$", id=22214, xsecs=multiply_xsecs(qqHH_CV_1_C2V_0_kl_1, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_2_kl_1_qqlnu_hbbhww = qqHH_CV_1_C2V_2_kl_1_qqlnu_hbbhvv.add_process( @@ -726,6 +793,7 @@ label=r"$HH_{vbf}^{1,2,1} \rightarrow bbWW(qql\nu)$", id=22215, xsecs=multiply_xsecs(qqHH_CV_1_C2V_2_kl_1, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_0p5_C2V_1_kl_1_qqlnu_hbbhww = qqHH_CV_0p5_C2V_1_kl_1_qqlnu_hbbhvv.add_process( @@ -733,6 +801,7 @@ label=r"$HH_{vbf}^{0.5,1,1} \rightarrow bbWW(qql\nu)$", id=22216, xsecs=multiply_xsecs(qqHH_CV_0p5_C2V_1_kl_1, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1p5_C2V_1_kl_1_qqlnu_hbbhww = qqHH_CV_1p5_C2V_1_kl_1_qqlnu_hbbhvv.add_process( @@ -740,6 +809,7 @@ label=r"$HH_{vbf}^{1.5,1,1} \rightarrow bbWW(qql\nu)$", id=22217, xsecs=multiply_xsecs(qqHH_CV_1p5_C2V_1_kl_1, br_bbww_qqlnu), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -767,6 +837,7 @@ name="qqHH_2l2nu_hbbhww", label=r"$HH_{vbf} \rightarrow bbWW(l\nu l\nu)$", id=22220, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_1_2l2nu_hbbhww = qqHH_CV_1_C2V_1_kl_1_2l2nu_hbbhvv.add_process( @@ -774,6 +845,7 @@ label=r"$HH_{vbf}^{1,1,1} \rightarrow bbWW(l\nu l\nu)$", id=22221, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_1, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_0_2l2nu_hbbhww = qqHH_CV_1_C2V_1_kl_0_2l2nu_hbbhvv.add_process( @@ -781,6 +853,7 @@ label=r"$HH_{vbf}^{1,1,0} \rightarrow bbWW(l\nu l\nu)$", id=22222, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_0, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_2_2l2nu_hbbhww = qqHH_CV_1_C2V_1_kl_2_2l2nu_hbbhvv.add_process( @@ -788,6 +861,7 @@ label=r"$HH_{vbf}^{1,1,2} \rightarrow bbWW(l\nu l\nu)$", id=22223, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_2, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_0_kl_1_2l2nu_hbbhww = qqHH_CV_1_C2V_0_kl_1_2l2nu_hbbhvv.add_process( @@ -795,6 +869,7 @@ label=r"$HH_{vbf}^{1,0,1} \rightarrow bbWW(l\nu l\nu)$", id=22224, xsecs=multiply_xsecs(qqHH_CV_1_C2V_0_kl_1, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_2_kl_1_2l2nu_hbbhww = qqHH_CV_1_C2V_2_kl_1_2l2nu_hbbhvv.add_process( @@ -802,6 +877,7 @@ label=r"$HH_{vbf}^{1,2,1} \rightarrow bbWW(l\nu l\nu)$", id=22225, xsecs=multiply_xsecs(qqHH_CV_1_C2V_2_kl_1, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_0p5_C2V_1_kl_1_2l2nu_hbbhww = qqHH_CV_0p5_C2V_1_kl_1_2l2nu_hbbhvv.add_process( @@ -809,6 +885,7 @@ label=r"$HH_{vbf}^{0.5,1,1} \rightarrow bbWW(l\nu l\nu)$", id=22226, xsecs=multiply_xsecs(qqHH_CV_0p5_C2V_1_kl_1, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1p5_C2V_1_kl_1_2l2nu_hbbhww = qqHH_CV_1p5_C2V_1_kl_1_2l2nu_hbbhvv.add_process( @@ -816,6 +893,7 @@ label=r"$HH_{vbf}^{1.5,1,1} \rightarrow bbWW(l\nu l\nu)$", id=22227, xsecs=multiply_xsecs(qqHH_CV_1p5_C2V_1_kl_1, br_bbww_2l2nu), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -849,6 +927,7 @@ name="ggHH_hbbhzz", id=21300, label=r"$HH_{ggf} \rightarrow bbZZ$", + aux={"allow_uppercase_name": True}, ) ggHH_kl_0_kt_1_hbbhzz = ggHH_kl_0_kt_1_hbbhvv.add_process( @@ -856,6 +935,7 @@ id=21301, label=r"$HH_{ggf}^{\kappa\lambda=0} \rightarrow bbZZ$", xsecs=multiply_xsecs(ggHH_kl_0_kt_1, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) ggHH_kl_1_kt_1_hbbhzz = ggHH_kl_1_kt_1_hbbhvv.add_process( @@ -863,6 +943,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=1} \rightarrow bbZZ$", id=21302, xsecs=multiply_xsecs(ggHH_kl_1_kt_1, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) ggHH_kl_2p45_kt_1_hbbhzz = ggHH_kl_2p45_kt_1_hbbhvv.add_process( @@ -870,6 +951,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=2.45} \rightarrow bbZZ$", id=21303, xsecs=multiply_xsecs(ggHH_kl_2p45_kt_1, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) ggHH_kl_5_kt_1_hbbhzz = ggHH_kl_5_kt_1_hbbhvv.add_process( @@ -877,6 +959,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=5} \rightarrow bbZZ$", id=21304, xsecs=multiply_xsecs(ggHH_kl_5_kt_1, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -893,6 +976,7 @@ name="qqHH_hbbhzz", id=22300, label=r"$HH_{vbf} \rightarrow $", + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_1_hbbhzz = qqHH_CV_1_C2V_1_kl_1_hbbhvv.add_process( @@ -900,6 +984,7 @@ label=r"$HH_{vbf}^{1,1,1} \rightarrow bbZZ$", id=22301, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_1, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_0_hbbhzz = qqHH_CV_1_C2V_1_kl_0_hbbhvv.add_process( @@ -907,6 +992,7 @@ label=r"$HH_{vbf}^{1,1,0} \rightarrow bbZZ$", id=22302, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_0, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_2_hbbhzz = qqHH_CV_1_C2V_1_kl_2_hbbhvv.add_process( @@ -914,6 +1000,7 @@ label=r"$HH_{vbf}^{1,1,2} \rightarrow bbZZ$", id=22303, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_2, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_0_kl_1_hbbhzz = qqHH_CV_1_C2V_0_kl_1_hbbhvv.add_process( @@ -921,6 +1008,7 @@ label=r"$HH_{vbf}^{1,0,1} \rightarrow bbZZ$", id=22304, xsecs=multiply_xsecs(qqHH_CV_1_C2V_0_kl_1, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_2_kl_1_hbbhzz = qqHH_CV_1_C2V_2_kl_1_hbbhvv.add_process( @@ -928,6 +1016,7 @@ label=r"$HH_{vbf}^{1,2,1} \rightarrow bbZZ$", id=22305, xsecs=multiply_xsecs(qqHH_CV_1_C2V_2_kl_1, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) qqHH_CV_0p5_C2V_1_kl_1_hbbhzz = qqHH_CV_0p5_C2V_1_kl_1_hbbhvv.add_process( @@ -935,6 +1024,7 @@ label=r"$HH_{vbf}^{0.5,1,1} \rightarrow bbZZ$", id=22306, xsecs=multiply_xsecs(qqHH_CV_0p5_C2V_1_kl_1, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1p5_C2V_1_kl_1_hbbhzz = qqHH_CV_1p5_C2V_1_kl_1_hbbhvv.add_process( @@ -942,6 +1032,7 @@ label=r"$HH_{vbf}^{1.5,1,1} \rightarrow bbZZ$", id=22307, xsecs=multiply_xsecs(qqHH_CV_1p5_C2V_1_kl_1, const.br_hh.bbzz), + aux={"allow_uppercase_name": True}, ) # add process dependencies @@ -961,6 +1052,7 @@ name="ggHH_2l2nu_hbbhzz", id=21320, label=r"$HH_{ggf} \rightarrow bbZZ(ll \nu \nu)$", + aux={"allow_uppercase_name": True}, ) ggHH_kl_0_kt_1_2l2nu_hbbhzz = ggHH_kl_0_kt_1_2l2nu_hbbhvv.add_process( @@ -968,6 +1060,7 @@ id=21321, label=r"$HH_{ggf}^{\kappa\lambda=0} \rightarrow bbZZ(ll \nu \nu)$", xsecs=multiply_xsecs(ggHH_kl_0_kt_1, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_1_kt_1_2l2nu_hbbhzz = ggHH_kl_1_kt_1_2l2nu_hbbhvv.add_process( @@ -975,6 +1068,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=1} \rightarrow bbZZ(ll \nu \nu)$", id=21322, xsecs=multiply_xsecs(ggHH_kl_1_kt_1, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_2p45_kt_1_2l2nu_hbbhzz = ggHH_kl_2p45_kt_1_2l2nu_hbbhvv.add_process( @@ -982,6 +1076,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=2.45} \rightarrow bbZZ(ll \nu \nu)$", id=21323, xsecs=multiply_xsecs(ggHH_kl_2p45_kt_1, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) ggHH_kl_5_kt_1_2l2nu_hbbhzz = ggHH_kl_5_kt_1_2l2nu_hbbhvv.add_process( @@ -989,6 +1084,7 @@ label=r"$HH_{ggf}^{\kappa\lambda=5} \rightarrow bbZZ(ll \nu \nu)$", id=21324, xsecs=multiply_xsecs(ggHH_kl_5_kt_1, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) @@ -1012,6 +1108,7 @@ name="qqHH_2l2nu_hbbhzz", label=r"$HH_{vbf} \rightarrow bbZZ(ll \nu \nu)$", id=22320, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_1_2l2nu_hbbhzz = qqHH_CV_1_C2V_1_kl_1_2l2nu_hbbhvv.add_process( @@ -1019,6 +1116,7 @@ label=r"$HH_{vbf}^{1,1,1} \rightarrow bbZZ(ll \nu \nu)$", id=22321, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_1, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_0_2l2nu_hbbhzz = qqHH_CV_1_C2V_1_kl_0_2l2nu_hbbhvv.add_process( @@ -1026,6 +1124,7 @@ label=r"$HH_{vbf}^{1,1,0} \rightarrow bbZZ(ll \nu \nu)$", id=22322, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_0, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_2_2l2nu_hbbhzz = qqHH_CV_1_C2V_1_kl_2_2l2nu_hbbhvv.add_process( @@ -1033,6 +1132,7 @@ label=r"$HH_{vbf}^{1,1,2} \rightarrow bbZZ(ll \nu \nu)$", id=22323, xsecs=multiply_xsecs(qqHH_CV_1_C2V_1_kl_2, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_0_kl_1_2l2nu_hbbhzz = qqHH_CV_1_C2V_0_kl_1_2l2nu_hbbhvv.add_process( @@ -1040,6 +1140,7 @@ label=r"$HH_{vbf}^{1,0,1} \rightarrow bbZZ(ll \nu \nu)$", id=22324, xsecs=multiply_xsecs(qqHH_CV_1_C2V_0_kl_1, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_2_kl_1_2l2nu_hbbhzz = qqHH_CV_1_C2V_2_kl_1_2l2nu_hbbhvv.add_process( @@ -1047,6 +1148,7 @@ label=r"$HH_{vbf}^{1,2,1} \rightarrow bbZZ(ll \nu \nu)$", id=22325, xsecs=multiply_xsecs(qqHH_CV_1_C2V_2_kl_1, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_0p5_C2V_1_kl_1_2l2nu_hbbhzz = qqHH_CV_0p5_C2V_1_kl_1_2l2nu_hbbhvv.add_process( @@ -1054,6 +1156,7 @@ label=r"$HH_{vbf}^{0.5,1,1} \rightarrow bbZZ(ll \nu \nu)$", id=22326, xsecs=multiply_xsecs(qqHH_CV_0p5_C2V_1_kl_1, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) qqHH_CV_1p5_C2V_1_kl_1_2l2nu_hbbhzz = qqHH_CV_1p5_C2V_1_kl_1_2l2nu_hbbhvv.add_process( @@ -1061,6 +1164,7 @@ label=r"$HH_{vbf}^{1.5,1,1} \rightarrow bbZZ(ll \nu \nu)$", id=22327, xsecs=multiply_xsecs(qqHH_CV_1p5_C2V_1_kl_1, br_bbzz_2l2nu), + aux={"allow_uppercase_name": True}, ) # add process dependencies diff --git a/cmsdb/processes/higgs.py b/cmsdb/processes/higgs.py index 05637175..4f5bb1c4 100644 --- a/cmsdb/processes/higgs.py +++ b/cmsdb/processes/higgs.py @@ -21,17 +21,20 @@ from scinum import Number import cmsdb.constants as const +from cmsdb.util import multiply_xsecs # # Single Higgs # +# 13 TeV source: xsecs were given in pb, uncertainties in %, values are taken for m_H = 125 GeV +# https://twiki.cern.ch/twiki/bin/view/LHCPhysics/CERNYellowReportPageAt13TeV?rev=24 + # preliminary Higgs cross sections at 13.6 TeV taken from here: # https://cds.cern.ch/record/2886099/files/LHCHWG-2024-001.pdf?version=2 # Twiki of (currently outdated) 13.6 TeV Higgs cross sections (might be a useful source when updated): # https://twiki.cern.ch/twiki/bin/view/LHCPhysics/LHCHWG136TeVxsec_extrap?rev=5 -# TODO: h xsecs at 13 TeV h = Process( name="h", @@ -47,7 +50,11 @@ id=11000, label=r"$H_{ggf}$", xsecs={ - 13: Number(0.1), # TODO + 13: Number(4.858E+01, { + "pdf": 0.032j, + "th": (0.046j, 0.067j), + "th_gaussian": 0.039j, + }), 13.6: Number(52.23, { # value for mH=125 GeV "pdf": 0.032j, "th": (0.046j, 0.067j), @@ -56,10 +63,11 @@ }, ) + h_ggf_tautau = h_ggf.add_process( name="h_ggf_tautau", id=11100, - xsecs={ecm: h_ggf.get_xsec(ecm) * const.br_h.tt for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(h_ggf, const.br_h.tt), ) h_vbf = h.add_process( @@ -67,7 +75,10 @@ id=12000, label=r"$H_{vbf}$", xsecs={ - 13: Number(0.1), # TODO + 13: Number(3.782E+00, { + "pdf": 0.021j, + "scale": (0.004j, 0.003j), + }), 13.6: Number(4.078, { # value for mH=125 GeV "scale": (0.005j, 0.003j), "pdf": 0.021j, @@ -78,9 +89,10 @@ h_vbf_tautau = h_vbf.add_process( name="h_vbf_tautau", id=12100, - xsecs={ecm: h_vbf.get_xsec(ecm) * const.br_h.tt for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(h_vbf, const.br_h.tt), ) +# empty, no value given vh = h.add_process( name="vh", id=13000, @@ -93,7 +105,10 @@ id=13100, label="ZH", xsecs={ - 13: Number(0.1), # TODO + 13: Number(8.839E-01, { + "scale": (0.038j, 0.031j), + "pdf": 0.016j, + }), 13.6: Number(0.9439, { # value for mH=125 GeV "scale": (0.037j, 0.032j), "pdf": 0.016j, @@ -105,28 +120,31 @@ name="zh_tautau", id=13110, label=rf"{zh.label}, $H \rightarrow \tau\tau$", - xsecs={ecm: zh.get_xsec(ecm) * const.br_h.tt for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(zh, const.br_h.tt), ) zh_llbb = zh.add_process( name="zh_llbb", id=13120, label=rf"{zh.label}, $H \rightarrow bb$, $Z \rightarrow ll$", - xsecs={ecm: zh.get_xsec(ecm) * const.br_h.bb * const.br_z.clep for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(zh, const.br_h.bb * const.br_z.clep), ) zh_qqbb = zh.add_process( name="zh_qqbb", id=13121, label=rf"{zh.label}, $H \rightarrow bb$, $Z \rightarrow qq$", - xsecs={ecm: zh.get_xsec(ecm) * const.br_h.bb * const.br_z.qq for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(zh, const.br_h.bb * const.br_z.qq), ) wph = vh.add_process( name="wph", id=13200, xsecs={ - 13: Number(0.1), # TODO + 13: Number(8.400E-01, { + "pdf": 0.019j, + "scale": (0.005j, 0.007j), + }), 13.6: Number(0.8889, { # value for mH=125 GeV "scale": (0.004j, 0.007j), "pdf": 0.018j, @@ -137,36 +155,47 @@ wph_tautau = wph.add_process( name="wph_tautau", id=13210, - xsecs={ecm: wph.get_xsec(ecm) * const.br_h.tt for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(wph, const.br_h.tt), ) wmh = vh.add_process( name="wmh", id=13300, xsecs={ - 13: Number(0.1), # TODO + 13: Number(5.328E-01, { + "pdf": 0.019j, + "scale": (0.005j, 0.007j), + }), 13.6: Number(0.5677, { # value for mH=125 GeV "scale": (0.004j, 0.007j), "pdf": 0.018j, }), # TODO: only preliminary }, ) + wmh_tautau = wmh.add_process( name="wmh_tautau", id=13310, - xsecs={ecm: wmh.get_xsec(ecm) * const.br_h.tt for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(wmh, const.br_h.tt), ) ggzh = vh.add_process( name="ggzh", id=14000, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(0.1227, { + "scale": (0.251j, 0.189j), + "pdf": 0.019j, + }), + }, ) ggzh_llbb = ggzh.add_process( name="ggzh_llbb", id=14100, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: ggzh.get_xsec(13) * const.br_h.bb * const.br_z.clep, + }, # TODO ) tth = h.add_process( @@ -174,7 +203,10 @@ id=15000, label=r"$t\bar{t}H$", xsecs={ - 13: Number(0.1), # TODO + 13: Number(5.071E-01, { + "scale": (0.058j, 0.092j), + "pdf": 0.036j, + }), 13.6: Number(0.5700, { # value for mH=125 GeV "scale": (0.060j, 0.093j), "pdf": 0.035j, @@ -186,21 +218,21 @@ name="tth_tautau", id=15100, label=rf"{tth.label}, $H \rightarrow \tau\tau$", - xsecs={ecm: tth.get_xsec(ecm) * const.br_h.tt for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(tth, const.br_h.tt), ) tth_bb = tth.add_process( name="tth_bb", id=15200, label=rf"{tth.label}, $H \rightarrow bb$", - xsecs={ecm: tth.get_xsec(ecm) * const.br_h.bb for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(tth, const.br_h.bb), ) tth_nonbb = tth.add_process( name="tth_nonbb", id=15300, label=rf"{tth.label}, $H \rightarrow$ non-$bb$", - xsecs={ecm: tth.get_xsec(ecm) * (1 - const.br_h.bb) for ecm in (13, 13.6)}, + xsecs=multiply_xsecs(tth, 1 - const.br_h.bb), ) @@ -208,18 +240,28 @@ # Basic HH processes # + +# https://twiki.cern.ch/twiki/bin/view/LHCPhysics/LHCHWGHH?rev=90#Current_recommendations_for_HH_c +# scale is according to recommendation: scale + mtop unc +# pdf is according to recommendation: pdf + aS + hh = Process( name="hh", id=20000, label="HH", - xsecs={13: Number(0.1)}, # TODO -) + xsecs={13: Number(0.1)}) # TODO hh_ggf = hh.add_process( name="hh_ggf", id=21000, label=r"$HH_{ggf}$", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(31.05, { + "pdf": 0.03j, + "scale": (0.06j, 0.23j), + }), + 14: Number(34.43, + {"pdf": 0.03j, "scale": (0.06j, 0.23j)})}, # fb ) # Naming conventions, cross sections and uncertainties are based on: @@ -237,6 +279,7 @@ "mtop": (0.06j, 0.12j), }), }, + aux={"allow_uppercase_name": True}, ) ggHH_kl_1_kt_1 = hh_ggf.add_process( @@ -254,6 +297,7 @@ "mtop": (0.04j, 0.18j), }), }, + aux={"allow_uppercase_name": True}, ) ggHH_kl_2p45_kt_1 = hh_ggf.add_process( @@ -266,6 +310,7 @@ "mtop": (0.04j, 0.22j), }), }, + aux={"allow_uppercase_name": True}, ) ggHH_kl_5_kt_1 = hh_ggf.add_process( @@ -278,13 +323,23 @@ "mtop": (0.13j, 0.04j), }), }, + aux={"allow_uppercase_name": True}, ) +# Source: xsecs were given in fb but are converted to pb, +# uncertainties in %, values are taken for m_H = 125 GeV +# https://twiki.cern.ch/twiki/bin/view/LHCPhysics/LHCHWGHH?rev=90#HHjj_VBF + hh_vbf = hh.add_process( name="hh_vbf", id=22000, label=r"$HH_{vbf}$", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(1.726, { + "scale": (0.0003j, 0.0004j), + "pdf": 0.021j, + }), + }, ) qqHH_CV_1_C2V_1_kl_1 = hh_vbf.add_process( @@ -296,6 +351,7 @@ "pdf": 0.021j, }), }, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_0 = hh_vbf.add_process( @@ -307,6 +363,7 @@ "pdf": 0.021j, }), }, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_1_kl_2 = hh_vbf.add_process( @@ -318,6 +375,7 @@ "pdf": 0.021j, }), }, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_0_kl_1 = hh_vbf.add_process( @@ -329,6 +387,7 @@ "pdf": 0.021j, }), }, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1_C2V_2_kl_1 = hh_vbf.add_process( @@ -340,6 +399,7 @@ "pdf": 0.021j, }), }, + aux={"allow_uppercase_name": True}, ) qqHH_CV_0p5_C2V_1_kl_1 = hh_vbf.add_process( @@ -351,6 +411,7 @@ "pdf": 0.021j, }), }, + aux={"allow_uppercase_name": True}, ) qqHH_CV_1p5_C2V_1_kl_1 = hh_vbf.add_process( @@ -362,6 +423,7 @@ "pdf": 0.021j, }), }, + aux={"allow_uppercase_name": True}, ) # @@ -372,7 +434,8 @@ name="radion_hh_ggf", id=23000, label=r"Radion $\rightarrow HH_{ggf}$", - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(0.1)}, # TODO ) graviton_hh_ggf = hh_ggf.add_process( diff --git a/cmsdb/processes/qcd.py b/cmsdb/processes/qcd.py index a5880a7b..af8c5ddd 100644 --- a/cmsdb/processes/qcd.py +++ b/cmsdb/processes/qcd.py @@ -52,7 +52,7 @@ "qcd_em_pt80to120", "qcd_em_pt120to170", "qcd_em_pt170to300", - "qcd_em_pt300toInf", + "qcd_em_pt300toinf", "qcd_em_pt10to30", "qcd_bctoe", "qcd_bctoe_pt15to20", @@ -60,7 +60,7 @@ "qcd_bctoe_pt30to80", "qcd_bctoe_pt80to170", "qcd_bctoe_pt170to250", - "qcd_bctoe_pt250toInf", + "qcd_bctoe_pt250toinf", "qcd_doubleem", "qcd_doubleem_pt30to40_mgg80", "qcd_doubleem_pt40_mgg80", @@ -495,8 +495,8 @@ }, ) -qcd_em_pt300toInf = qcd_em.add_process( - name="qcd_em_pt300toInf", +qcd_em_pt300toinf = qcd_em.add_process( + name="qcd_em_pt300toinf", id=31208, xsecs={ 13: Number(1104.0), @@ -562,8 +562,8 @@ }, ) -qcd_bctoe_pt250toInf = qcd_bctoe.add_process( - name="qcd_bctoe_pt250toInf", +qcd_bctoe_pt250toinf = qcd_bctoe.add_process( + name="qcd_bctoe_pt250toinf", id=31306, xsecs={ 13: Number(562.5), diff --git a/cmsdb/processes/top.py b/cmsdb/processes/top.py index 11d8cc76..e6b026ea 100644 --- a/cmsdb/processes/top.py +++ b/cmsdb/processes/top.py @@ -34,8 +34,8 @@ # ttbar # (ids up to 1999) # -# https://twiki.cern.ch/twiki/bin/view/LHCPhysics/TtbarNNLO?rev=21#Recommendations_for_most_analyse -# cross sections correspond to mtop = 172.5 GeV, see +# https://twiki.cern.ch/twiki/bin/view/LHCPhysics/TtbarNNLO?rev=21#Updated_reference_cross_sections +# cross sections correspond to mtop = 172.5 GeV # https://twiki.cern.ch/twiki/bin/view/CMS/TopMonteCarloSystematics?rev=7#mtop # @@ -87,8 +87,11 @@ # # single-top # -# all st cross sections except s-channel are taken from here: -# https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SingleTopNNLORef?rev=20 +# using updated tables from 2022 +# t- and tw-channel: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SingleTopNNLORef?rev=20#Predictions_for_top_quark_produc # noqa +# s-channel: https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SingleTopRefXsec?rev=36#Single_top_s_channel_cross_secti +# for the tW-channel, the t and tbar channels contribute equally as stated in +# Ref https://twiki.cern.ch/twiki/bin/view/LHCPhysics/SingleTopRefXsec?rev=36#Single_top_Wt_channel_cross_sect # # 13 TeV s-channel cross sections from here: # https://twiki.cern.ch/twiki/bin/viewauth/CMS/SingleTopSigma?rev=12#Single_Top_Cross_sections_at_13?rev=12 @@ -130,7 +133,7 @@ scale=(1.5, 1.1), pdf=(2.1, 1.3), # includes alpha_s mtop=(1.0, 1.2), - E_beam=(0.2, 0.2), + E_beam=0.2, integration=0.1, )), 13.6: Number(145.0, dict( @@ -149,9 +152,9 @@ id=2120, xsecs={ 13: Number(80.0, dict( - scale=(1.5, 1.1), + scale=0.8, pdf=(1.6, 1.2), # includes alpha_s - mtop=(0.7, 0.7), + mtop=0.7, E_beam=(0.2, 0.1), integration=0.1, )), @@ -244,10 +247,12 @@ id=2300, label=f"{st.label}, s-channel", xsecs={ - 13: Number(11.36, dict( - scale=0.18, - pdf=(0.40, 0.45), - )), + 13: Number(10.32, { + "scale": (0.29, 0.24), + "pdf": 0.27, + "mtop": (0.23, 0.22), + "E_beam": 0.01, + }), # TODO: 13.6 TeV xsecs }, ) @@ -268,10 +273,12 @@ name="st_schannel_t", id=2310, xsecs={ - 13: Number(7.20, dict( - scale=0.13, - pdf=(0.29, 0.23), - )), + 13: Number(6.35, { + "scale": (0.18, 0.15), + "pdf": 0.14, + "mtop": (0.14, 0.13), + "E_beam": 0.01, + }), # TODO: 13.6 TeV xsecs }, ) @@ -292,10 +299,12 @@ name="st_schannel_tbar", id=2320, xsecs={ - 13: Number(4.16, dict( - scale=0.05, - pdf=(0.12, 0.23), - )), + 13: Number(3.97, { + "scale": (0.11, 0.09), + "pdf": 0.15, + "mtop": 0.09, + "E_beam": 0.01, + }), # TODO: 13.6 TeV xsecs }, ) @@ -349,10 +358,17 @@ }, ) +# based on GenXSecAnalyzer +# for TTZToLLNuNu_M-10_TuneCP5_13TeV-amcatnlo-pythia8 (Summer20UL16, NLO) +# using command ./calculateXSectionAndFilterEfficiency.sh -f datasets.txt -c RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v1 -n 5000000 # noqa ttz_llnunu_m10 = ttz.add_process( name="ttz_llnunu_m10", # non-hadronically decaying Z id=3110, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(0.2439, { + "total": 0.0002995, + }), + }, ) ttw = ttv.add_process( @@ -394,28 +410,50 @@ # # ttbar + 2 vector bosons # +# https://arxiv.org/pdf/1610.07922.pdf page 165 Table 42 +# ttvv = Process( name="ttvv", id=4000, label=f"{tt.label} + VV", - xsecs={13: Number(0.1)}, # TODO ) ttzz = ttvv.add_process( name="ttzz", id=4100, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(1982E-6, { + "scale": (0.052j, 0.090j), + "pdf": 0.026j, + }), + }, ) ttwz = ttvv.add_process( name="ttwz", id=4200, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: ( + Number(2705E-6, {"scale": (0.099j, 0.106j), "pdf": 0.027j}) + + Number(1179E-6, {"scale": 0.112j, "pdf": 0.037j}) + ), + }, ) ttww = ttvv.add_process( name="ttww", id=4300, - xsecs={13: Number(0.1)}, # TODO + xsecs={ + 13: Number(8380E-6, { # Calculation performed in 5FS + "scale": (0.332j, 0.231j), + "pdf": 0.030j, + }), + }, +) + +# define the combined ttvv cross section as the sum of the three channels +ttvv.set_xsec( + 13, + ttzz.get_xsec(13) + ttwz.get_xsec(13) + ttww.get_xsec(13), ) diff --git a/cmsdb/xsec_bsm_nodes.py b/cmsdb/xsec_bsm_nodes.py new file mode 100644 index 00000000..74698050 --- /dev/null +++ b/cmsdb/xsec_bsm_nodes.py @@ -0,0 +1,187 @@ +from __future__ import annotations + +# A_i fitparameter according to recommendation in "https://arxiv.org/pdf/1610.07922.pdf" S.201 +_a_fit_parameter = { + 13: { + "A_1": 2.09, + "A_2": 10.15, + "A_3": 0.28, + "A_4": 0.10, + "A_5": 1.33, + "A_6": -8.51, + "A_7": -1.37, + "A_8": 2.83, + "A_9": 1.46, + "A_10": -4.92, + "A_11": -0.68, + "A_12": 1.86, + "A_13": 0.32, + "A_14": -0.84, + "A_15": -0.57, + }, + 14: { + "A_1": 2.08, + "A_2": 10.20, + "A_3": 0.28, + "A_4": 0.10, + "A_5": 1.37, + "A_6": -8.49, + "A_7": -1.36, + "A_8": 2.80, + "A_9": 1.44, + "A_10": -4.90, + "A_11": -0.66, + "A_12": 1.84, + "A_13": 0.32, + "A_14": -0.83, + "A_15": -0.56, + }, +} + +# chosen EFT parameter according to "https://arxiv.org/pdf/1610.07922.pdf" S.202 +_coefficient_EFT_benchmarks = { + 1: { + "k_l": 7.5, + "k_t": 1.0, + "c_2": -1.0, + "c_g": 0.0, + "c_2_g": 0.0, + }, + 2: { + "k_l": 1.0, + "k_t": 1.0, + "c_2": 0.5, + "c_g": -0.8, + "c_2_g": 0.6, + }, + 3: { + "k_l": 1.0, + "k_t": 1.0, + "c_2": -1.5, + "c_g": 0.0, + "c_2_g": -0.8, + }, + 4: { + "k_l": -3.5, + "k_t": 1.5, + "c_2": -3.0, + "c_g": 0.0, + "c_2_g": 0.0, + }, + 5: { + "k_l": 1.0, + "k_t": 1.0, + "c_2": 0.0, + "c_g": 0.8, + "c_2_g": -1, + }, + 6: { + "k_l": 2.4, + "k_t": 1.0, + "c_2": 0.0, + "c_g": 0.2, + "c_2_g": -0.2, + }, + 7: { + "k_l": 5.0, + "k_t": 1.0, + "c_2": 0.0, + "c_g": 0.2, + "c_2_g": -0.2, + }, + 8: { + "k_l": 15.0, + "k_t": 1.0, + "c_2": 0.0, + "c_g": -1, + "c_2_g": 1, + }, + 9: { + "k_l": 1.0, + "k_t": 1.0, + "c_2": 1.0, + "c_g": -0.6, + "c_2_g": 0.6, + }, + 10: { + "k_l": 10.0, + "k_t": 1.5, + "c_2": -1.0, + "c_g": 0.0, + "c_2_g": 0.0, + }, + 11: { + "k_l": 2.4, + "k_t": 1.0, + "c_2": 0.0, + "c_g": 1, + "c_2_g": -1, + }, + 12: { + "k_l": 15.0, + "k_t": 1.0, + "c_2": 1.0, + "c_g": 0.0, + "c_2_g": 0.0, + }, + "SM": { + "k_l": 1.0, + "k_t": 1.0, + "c_2": 0.0, + "c_g": 0.0, + "c_2_g": 0.0, + }, +} + + +def calculate_r_hh(center_of_mass_energy: float, k_l: float, k_t: float, c_2: float, c_g: float, c_2_g: float): # noqa + # formula for r_hh is defined in https://arxiv.org/pdf/1610.07922.pdf S.200 + # rename fit parameter + a = _a_fit_parameter[center_of_mass_energy] + + # split calculation in parts for more readability + formular = [ + a["A_1"] * k_t ** 4, + a["A_2"] * c_2 ** 2, + a["A_3"] * k_t ** 2 * k_l ** 2, + a["A_4"] * c_g ** 2 * k_l ** 2, + a["A_5"] * c_2_g ** 2, + a["A_6"] * c_2 * k_t ** 2, + a["A_7"] * k_t * k_l * k_t ** 2, + a["A_8"] * k_t * k_l * c_2, + a["A_9"] * c_g * k_l * c_2, + a["A_10"] * c_2 * c_2_g, + a["A_11"] * c_g * k_l * k_t ** 2, + a["A_12"] * c_2_g * k_t ** 2, + a["A_13"] * k_l * c_g * k_t * k_l, + a["A_14"] * c_2_g * k_t * k_l, + a["A_15"] * c_g * c_2_g * k_l, + ] + return sum(formular) + + +def calculate_xsec_node(center_of_mass_energy: float, xsec_sm: float, node_number: int): # noqa + """ + + Formula to calculate cross section for BSM nodes in EFT in pb. + The exact procedure is described in the Yellow Pages Report 4. + https://arxiv.org/pdf/1610.07922.pdf S.200 + + For 13.6 TeV no table values are given. + TODO: maybe do an interpolation between 13 and 14 TeV? Or wait for further information + + Args: + center_of_mass_energy (float): Energy in TeV + xsec_sm (float): Cross section of the Standard Model process in pb + node_numbers int): Node number for which you want to calculate the xsec. + + Returns: + TYPE: Description + """ + if node_number not in list(range(1, 13)): + raise ValueError(f"Node number is {node_number}, but must be between 1 and 12") + + eft_coefficients = _coefficient_EFT_benchmarks[node_number] + r_hh = calculate_r_hh(center_of_mass_energy, **eft_coefficients) + xsec_bsm = xsec_sm * r_hh + return xsec_bsm diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 00000000..1a6e8b1c --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,13 @@ +# coding: utf-8 + +__all__ = [] + +# adjust the path to import cmsdb +import os +import sys +base = os.path.normpath(os.path.join(os.path.abspath(__file__), "../..")) +sys.path.append(base) + +# import all tests +from .test_processes import * # noqa +from .test_campaigns import * # noqa diff --git a/tests/run_campaign_tests_locally.sh b/tests/run_campaign_tests_locally.sh deleted file mode 100755 index 36807f23..00000000 --- a/tests/run_campaign_tests_locally.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -SCRIPT_DIR=$( cd -- "$( dirname -- "$0" )" &> /dev/null && pwd ) -# Script that runs coverage tests. - -# loop through all modules if no input arguments are given -for mod in ${@}; do - echo "testing ${mod} ..." - TESTMODULE=${mod} python -m unittest ${SCRIPT_DIR}/test_campaigns.py -done diff --git a/tests/test_campaigns.py b/tests/test_campaigns.py index c5655378..deb765d2 100644 --- a/tests/test_campaigns.py +++ b/tests/test_campaigns.py @@ -1,76 +1,63 @@ -# test_module.py +# coding: utf-8 + +__all__ = ["TestCampaigns"] + import os +import re +import importlib import unittest -import sys -from glob import glob -import importlib as imp + +import cmsdb -class TestCampaign(unittest.TestCase): - @unittest.skipIf("TESTMODULE" not in os.environ, "TESTMODULE not set") - @unittest.skipIf( - os.environ["TESTMODULE"].strip("/").endswith("run2_2016_nano_v9"), - "Tests for module 'run2_2016_nano_v9' are not implemented yet.", - ) - @unittest.skipIf( - os.environ["TESTMODULE"].strip("/").endswith("__pycache__"), - "'__pycache__' is not a valid module.", - ) +class TestCampaigns(unittest.TestCase): + @classmethod def setUpClass(cls): - modpath = os.path.realpath(os.path.dirname(os.path.dirname(__file__))) - if modpath not in sys.path: - sys.path.append(modpath) - mod = os.environ["TESTMODULE"] - to_import = os.path.relpath(mod, modpath).replace("/", ".") - # Load the module to test - cls.module = imp.import_module(to_import) + # find campaigns + campaign_dir = os.path.join(os.path.dirname(cmsdb.__file__), "campaigns") + campaign_names = [ + name + for name in os.listdir(campaign_dir) + if os.path.isdir(os.path.join(campaign_dir, name)) and re.match(r"^run\d.*v\d.*$", name) + ] - # get all submodules - all_objects = getattr(cls.module, "__all__", None) - cls.submodules = list() - if not isinstance(all_objects, list): - basename = cls.module.__name__.split(".")[-1] - object_name = f"campaign_{basename}" - cls.submodules = {object_name: getattr(cls.module, object_name)} - else: - cls.submodules = {x: getattr(cls.module, x) for x in all_objects} + # import modules and store campaign objects if present + cls.campaigns = {} + for name in campaign_names: + module = importlib.import_module(f"cmsdb.campaigns.{name}") + for attr in dir(module): + if attr.startswith("campaign_"): + cls.campaigns[name] = getattr(module, attr) def test_campaign_properties(self): - # loop through the different campaign objects in the current module - for name, submodule in self.submodules.items(): - # run the test for each submodule - with self.subTest(f"testing object {name}"): - # make sure the campaign defines a basic set of properties - self.assertTrue(hasattr(submodule, "name")) - self.assertTrue(hasattr(submodule, "id")) - self.assertTrue(hasattr(submodule, "ecm")) - self.assertTrue(hasattr(submodule, "bx")) + for campaign_inst in self.campaigns.values(): + with self.subTest(f"testing {campaign_inst.name}"): + self.assertTrue(hasattr(campaign_inst, "name")) + self.assertTrue(hasattr(campaign_inst, "id")) + self.assertTrue(hasattr(campaign_inst, "ecm")) + self.assertTrue(hasattr(campaign_inst, "bx")) def test_campaign_datasets(self): - # loop through the different campaign objects in the current module - for campaign_name, submodule in self.submodules.items(): - # run the test for each submodule - with self.subTest(f"testing dataset of object '{campaign_name}'"): + for campaign_inst in self.campaigns.values(): + with self.subTest(f"testing datasets {campaign_inst.name}"): # make sure the campaign defines datasets in the first place - self.assertTrue(hasattr(submodule, "datasets")) - datasets = submodule.datasets + self.assertTrue(hasattr(campaign_inst, "datasets")) + # loop through the datasets and test their properties - for dataset_name, _, dataset in datasets.items(): - with self.subTest(f"testing dataset {campaign_name}/{dataset_name}"): - # might want to implement naming conventions here, - # e.g. the name of the dataset is the process name + suffix - self.assertTrue(hasattr(dataset, "name")) - self.assertTrue(hasattr(dataset, "id")) - self.assertTrue(hasattr(dataset, "processes")) - self.assertTrue(len(dataset.processes) > 0) - self.assertTrue(hasattr(dataset, "keys")) - self.assertTrue(hasattr(dataset, "n_files")) - self.assertTrue(hasattr(dataset, "n_events")) + for dataset_inst in campaign_inst.datasets.values(): + with self.subTest(f"testing dataset {campaign_inst.name}/{dataset_inst.name}"): + # check existence of attributes + self.assertTrue(hasattr(dataset_inst, "name")) + self.assertTrue(hasattr(dataset_inst, "id")) + self.assertTrue(hasattr(dataset_inst, "processes")) + self.assertTrue(hasattr(dataset_inst, "keys")) + self.assertTrue(hasattr(dataset_inst, "n_files")) + self.assertTrue(hasattr(dataset_inst, "n_events")) + # check that the name is lowercase, but take into account known exceptions + if not dataset_inst.x("allow_uppercase_name", False): + self.assertEquals(dataset_inst.name, dataset_inst.name.lower()) -if __name__ == "__main__": - # Remove command line arguments before running unittest.main() - # to prevent unittest from trying to interpret them - # if cmsdb is not path of the sys path, add it - unittest.main() + # check that there is at least one process linked + self.assertTrue(len(dataset_inst.processes) > 0) diff --git a/tests/test_processes.py b/tests/test_processes.py new file mode 100644 index 00000000..47cc1bcf --- /dev/null +++ b/tests/test_processes.py @@ -0,0 +1,31 @@ +# coding: utf-8 + +__all__ = ["TestProcesses"] + +import unittest + +import order as od + +import cmsdb + + +class TestProcesses(unittest.TestCase): + + @classmethod + def setUpClass(cls): + # find processes and store them + cls.processes = { + name: process_inst + for name in dir(cmsdb.processes) + if isinstance((process_inst := getattr(cmsdb.processes, name)), od.Process) + } + + def test_process_properties(self): + for process_inst in self.processes.values(): + with self.subTest(f"testing {process_inst.name}"): + self.assertTrue(hasattr(process_inst, "name")) + self.assertTrue(hasattr(process_inst, "id")) + + # check that the name is lowercase, but take into account known exceptions + if not process_inst.x("allow_uppercase_name", False): + self.assertEquals(process_inst.name, process_inst.name.lower())