diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index e462eae2..09e51db9 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -63,7 +63,7 @@ These run automatically on PRs to `main`: 2. **repo-sanity-checks.yaml**: Checks for binary files (must use git LFS), calculates repo size delta 3. **ds-consistency-check.yaml**: Validates `config/*/samples.yaml` files with: ```bash - python3 test/checkDatasetConfigConsistency.py --exception config/dataset_exceptions.yaml Run3_2022 Run3_2022EE Run3_2023 Run3_2023BPix Run3_2024 + python3 test/checkDatasetConfigConsistency.py --exception config/dataset_exceptions.yaml Run3_2022 Run3_2022EE Run3_2023 Run3_2023BPix Run3_2024 Run3_2025 ``` 4. **trigger-flaf-integration.yaml**: Triggers GitLab integration pipeline via `@cms-flaf-bot test` comments diff --git a/.github/workflows/cross-section-check.yaml b/.github/workflows/cross-section-check.yaml index 732a7907..9c8e2060 100644 --- a/.github/workflows/cross-section-check.yaml +++ b/.github/workflows/cross-section-check.yaml @@ -47,4 +47,4 @@ jobs: - name: Check cross-sections if: ${{ steps.changed_files.outputs.has_changes == 'true' }} - run: python3 test/checkCrossSections.py Run3_2022 Run3_2022EE Run3_2023 Run3_2023BPix Run3_2024 + run: python3 test/checkCrossSections.py Run3_2022 Run3_2022EE Run3_2023 Run3_2023BPix Run3_2024 Run3_2025 diff --git a/.github/workflows/ds-consistency-check.yaml b/.github/workflows/ds-consistency-check.yaml index 0fed409c..6e2c4fa8 100644 --- a/.github/workflows/ds-consistency-check.yaml +++ b/.github/workflows/ds-consistency-check.yaml @@ -45,8 +45,8 @@ jobs: - name: Check dataset configs consistency if: ${{ steps.changed_files.outputs.has_ds_configs == 'true' }} - run: python3 test/checkDatasetConfigConsistency.py --exception config/dataset_exceptions.yaml Run3_2022 Run3_2022EE Run3_2023 Run3_2023BPix Run3_2024 + run: python3 test/checkDatasetConfigConsistency.py --exception config/dataset_exceptions.yaml Run3_2022 Run3_2022EE Run3_2023 Run3_2023BPix Run3_2024 Run3_2025 - name: Check dataset naming if: ${{ steps.changed_files.outputs.has_ds_configs == 'true' }} - run: python3 test/checkDatasetNaming.py --rules config/dataset_naming_rules.yaml Run3_2022 Run3_2022EE Run3_2023 Run3_2023BPix Run3_2024 + run: python3 test/checkDatasetNaming.py --rules config/dataset_naming_rules.yaml Run3_2022 Run3_2022EE Run3_2023 Run3_2023BPix Run3_2024 Run3_2025 diff --git a/Analysis/tasks.py b/Analysis/tasks.py index aff01635..51b3ceef 100644 --- a/Analysis/tasks.py +++ b/Analysis/tasks.py @@ -692,7 +692,7 @@ def run(self): with contextlib.ExitStack() as stack: for inp in self.input(): dataset_name = os.path.basename(inp.path) - all_datasets.append(dataset_name.strip(".root")) + all_datasets.append(dataset_name.split(".")[0]) local_inputs.append(stack.enter_context(inp.localize("r")).path) dataset_names = ",".join(smpl for smpl in all_datasets) all_outputs_merged = [] diff --git a/config/Run3_2025/global.yaml b/config/Run3_2025/global.yaml new file mode 100644 index 00000000..36e30b2b --- /dev/null +++ b/config/Run3_2025/global.yaml @@ -0,0 +1,14 @@ +era: Run3_2025 +luminosity: 110730.86 # pb-1, https://twiki.cern.ch/twiki/bin/view/CMS/PdmVRun3Analysis#DATA_AN2 brilcalc lumi -b "STABLE BEAMS" -i Cert_Collisions2025_391658_398903_Golden.json (no normtag available) +nano_version: v15 +crossSectionsFile: FLAF/config/crossSections13p6TeV.yaml +MET_flags: # https://twiki.cern.ch/twiki/bin/view/CMS/MissingETOptionalFiltersRun2#Run_3_2024_data_and_MC_Recommend + - Flag_goodVertices + - Flag_globalSuperTightHalo2016Filter + - Flag_EcalDeadCellTriggerPrimitiveFilter + - Flag_BadPFMuonFilter + - Flag_BadPFMuonDzFilter + - Flag_hfNoisyHitsFilter + - Flag_eeBadScFilter + - Flag_ecalBadCalibFilter +lumiFile: Corrections/data/golden_json/Cert_Collisions2025_391658_398903_Golden.json diff --git a/config/dataset_exceptions.yaml b/config/dataset_exceptions.yaml index 3b4a2411..224cf891 100644 --- a/config/dataset_exceptions.yaml +++ b/config/dataset_exceptions.yaml @@ -1,17 +1,34 @@ +# no MC for 2025: +# ^(A-Z)*.: +# - Run3_2025 # DY +^DYto2(E|Mu|Tau)_M_50_[012]J_amcatnloFXFX: + - Run3_2025 +^DYto2(E|Mu|Tau)_M_(10to50|50)_amcatnloFXFX: + - Run3_2025 +^DYto2(E|Mu|Tau)_MLL_*.: + - Run3_2025 +^DYto2L_M_50_PTLL_*.: + - Run3_2025 ^DYto2L_M_(10to50|50)_amcatnloFXFX: - Run3_2024 + - Run3_2025 ^DYto2L_M_50_[012]J_amcatnloFXFX: - Run3_2024 + - Run3_2025 ^DYto2(E|Mu)_M_50_PTLL_.*_amcatnloFXFX: - Run3_2024 + - Run3_2025 ^DYto2.*_M_50_amcatnloFXFX_ext1: - Run3_2023 - Run3_2023BPix - Run3_2024 ^DYto2Tau_M_50_(0|1|2)J_Filtered_amcatnloFXFX: - Run3_2024 + - Run3_2025 # H +^GluGluH*.: + - Run3_2025 GluGluHto2B_M125_ext1: - Run3_2022 - Run3_2022EE @@ -20,7 +37,8 @@ GluGluHto2B_M125_ext1: GluGluHto2Tau_M125: - Run3_2022EE - Run3_2023 - +^ggZH_.*: + - Run3_2025 ^ggZH_.*_ext1: - Run3_2023 - Run3_2023BPix @@ -30,6 +48,8 @@ GluGluHto2Tau_M125: - Run3_2024 GluGlutoContinto2Zto2Mu2Tau: - Run3_2023 +^VBFH*.: + - Run3_2025 VBFHto2B_M125_ext1: - Run3_2022 - Run3_2022EE @@ -40,6 +60,8 @@ VBFHto2B_M125_ext1: - Run3_2023 - Run3_2023BPix - Run3_2024 +^ZH.*: + - Run3_2025 ^ZH_Hto2B.*_ext1: - Run3_2023 - Run3_2023BPix @@ -56,8 +78,11 @@ QCD_PT_300_EMEnriched: - Run3_2023 - Run3_2023BPix - Run3_2022 -^^QCD_PT_.*: +^QCD_PT_.*: - Run3_2024 + - Run3_2025 +^QCD_HT.*: + - Run3_2025 # ST ^T(bar|)W.*_ext1: - Run3_2023 @@ -67,11 +92,13 @@ TT: - Run3_2022EE - Run3_2023 - Run3_2024 + - Run3_2025 TT_ext1: - Run3_2022EE - Run3_2023 - Run3_2023BPix - Run3_2024 + - Run3_2025 TTto2L2Nu_ext1: - Run3_2023 - Run3_2023BPix @@ -84,26 +111,41 @@ TTtoLNu2Q_ext1: - Run3_2023 - Run3_2023BPix - Run3_2024 - +^TTto(2L2Nu|LNu2Q|4Q): + - Run3_2025 TTZ_Zto2Q: - Run3_2023 - Run3_2023BPix + - Run3_2025 TTWZ: - Run3_2022 + - Run3_2025 ^TTZ(Z|H)_Z(Z|H)to4B: - Run3_2022 - Run3_2022EE - Run3_2023 - Run3_2023BPix + - Run3_2025 TTZZ: - Run3_2024 + - Run3_2025 TTZH: - Run3_2024 + - Run3_2025 + +^TT(WH|WW): + - Run3_2025 + +^TTHto*: + - Run3_2025 + # VBF VBFHto2Tau_M125: - Run3_2022EE # W +^W(minus|plus|to)*.: + - Run3_2025 WtoLNu_madgraphMLM_ext1: - Run3_2023 - Run3_2023BPix @@ -115,6 +157,10 @@ WtoLNu_amcatnloFXFX: ^WtoLNu_(0|1)J_amcatnloFXFX: - Run3_2024 # VV +ZZ: + - Run3_2025 +^ZZto*.: + - Run3_2025 ^WW.*_ext1: - Run3_2023 - Run3_2023BPix @@ -127,7 +173,9 @@ WtoLNu_amcatnloFXFX: - Run3_2023 - Run3_2023BPix - Run3_2024 - +# VVV +ZZZ: + - Run3_2025 # change name in W samples.. WtoENu_amcatnloFXFX: - Run3_2022 @@ -155,14 +203,27 @@ WtoTauNu_amcatnloFXFX: - Run3_2022EE - Run3_2023 - Run3_2023BPix + - Run3_2025 +^T(barB|Bbar)toL(minus|plus)Nu(B|Bbar)_s_channel_4FS: + - Run3_2025 +^T(barBQ|BbarQ)_t_channel_4FS: + - Run3_2025 + +^T(barWplus|Wminus)to(2L2Nu|4Q|LNu2Q): + - Run3_2025 ZHto2Tau_UncorrelatedDecay_UnFiltered: - - Run3_2024 # tmp missing + - Run3_2024 ^Zto2Q_HT_(400to600|600to800|800toInf|200to400): - Run3_2024 + - Run3_2025 ^Zto2Q_HT_(100to400|400to800|800to1500|1500to2500|2500toInf): - Run3_2022 - Run3_2022EE - Run3_2023 - Run3_2023BPix + - Run3_2025 + +^Zto2Nu_HT*.: + - Run3_2025 diff --git a/include/AnalysisTools.h b/include/AnalysisTools.h index 61672d98..3a4b49b0 100644 --- a/include/AnalysisTools.h +++ b/include/AnalysisTools.h @@ -32,7 +32,8 @@ enum class Period : int { Run3_2022EE = 6, Run3_2023 = 7, Run3_2023BPix = 8, - Run3_2024 = 9 + Run3_2024 = 9, + Run3_2025 = 10 }; enum class SampleType : int { diff --git a/include/HHbTagScores.h b/include/HHbTagScores.h index 57a40b61..7386964e 100644 --- a/include/HHbTagScores.h +++ b/include/HHbTagScores.h @@ -21,6 +21,8 @@ inline int PeriodToHHbTagInput(int version, Period period) { {{1, Period::Run3_2023}, 2018}, {{1, Period::Run3_2023BPix}, 2018}, {{1, Period::Run3_2024}, 2018}, + {{1, Period::Run3_2025}, 2018}, + // v2 {{2, Period::Run2_2016_HIPM}, 2016}, {{2, Period::Run2_2016}, 2016}, @@ -31,6 +33,8 @@ inline int PeriodToHHbTagInput(int version, Period period) { {{2, Period::Run3_2023}, 2018}, {{2, Period::Run3_2023BPix}, 2018}, {{2, Period::Run3_2024}, 2018}, + {{2, Period::Run3_2025}, 2018}, + // v3 {{3, Period::Run2_2016_HIPM}, 0}, {{3, Period::Run2_2016}, 0}, @@ -41,6 +45,7 @@ inline int PeriodToHHbTagInput(int version, Period period) { {{3, Period::Run3_2023}, 2}, {{3, Period::Run3_2023BPix}, 3}, {{3, Period::Run3_2024}, 3}, + {{3, Period::Run3_2025}, 3}, }; auto iter = periodHHBtag.find(std::make_pair(version, period)); if (iter == periodHHBtag.end()) { diff --git a/run_tools/mk_flaf_env.sh b/run_tools/mk_flaf_env.sh index 8e4e6713..62c74e2a 100755 --- a/run_tools/mk_flaf_env.sh +++ b/run_tools/mk_flaf_env.sh @@ -28,7 +28,7 @@ install() { echo "Installing packages in $env_base" run_cmd source $env_base/bin/activate run_cmd pip install --upgrade pip - run_cmd pip install law scinum + run_cmd pip install luigi==3.7.3 law scinum run_cmd pip install https://github.com/riga/plotlib/archive/refs/heads/master.zip run_cmd pip install fastcrc run_cmd pip install bayesian-optimization