Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-07-07 03:09:36

0001 from Configuration.PyReleaseValidation.relval_steps import *
0002 import math
0003 
0004 
0005 class WFN:
0006     def __init__(self, offset: int):
0007         self.offset = offset
0008         self.index = 1
0009         self.thousands = 0
0010         self.hundreds = 0
0011 
0012     def __call__(self) -> float:
0013         if self.index >= 100:
0014             raise ValueError("Overflow: Leading-index exceeded limit (100)")
0015         value_str = f"{self.offset}.{self.thousands}{self.hundreds}{self.index:02d}"
0016         result = float(value_str)
0017         self.index += 1
0018         return result
0019 
0020     def subnext(self) -> None:
0021         self.hundreds += 1
0022         self.index = 1
0023         if self.hundreds >= 10:
0024             raise ValueError("Overflow: Sub-index (hundreds) exceeded limit (999)")
0025 
0026     def next(self, index: int = None) -> None:
0027         if index is None:
0028             self.thousands += 1
0029             self.hundreds = 0
0030         else:
0031             if index <= self.thousands:
0032                 raise ValueError("New index must be greater than current index")
0033             self.thousands = index
0034             self.hundreds = 0
0035 
0036         if self.thousands >= 10:
0037             raise ValueError("Overflow: Sub-sub-index (thousands) exceeded limit (9999)")
0038         self.index = 1
0039 
0040 
0041 workflows = Matrix()
0042 
0043 _NANO_data = merge([{'-s': 'NANO,DQM:@nanoAODDQM',
0044                      '--process': 'NANO',
0045                      '--data': '',
0046                      '--eventcontent': 'NANOAOD,DQM',
0047                      '--datatier': 'NANOAOD,DQMIO',
0048                      '-n': '10000',
0049                      '--customise': '"Configuration/DataProcessing/Utils.addMonitoring"'
0050                      }])
0051 _HARVEST_nano = merge([{'-s': 'HARVESTING:@nanoAODDQM',
0052                         '--filetype': 'DQM',
0053                         '--filein': 'file:step2_inDQM.root',
0054                         '--conditions': 'auto:run2_data'  # this is fake for harvesting
0055                         }])
0056 _HARVEST_data = merge([_HARVEST_nano, {'--data': ''}])
0057 
0058 
0059 run2_lumis = {277168: [[1, 1708]],
0060               277194: [[913, 913], [916, 916], [919, 919], [932, 932], [939, 939]],
0061               283877: [[1, 1496]],
0062               299649: [[155, 332]],
0063               303885: [[60, 2052]],
0064               305040: [[200, 700]],
0065               305050: [[200, 700]],
0066               305234: [[1, 200]],
0067               305377: [[1, 500]],
0068               315489: [[1, 100]],
0069               320822: [[1, 200]],
0070               }
0071 run3_lumis = {}
0072 
0073 _NANO_mc = merge([{'-s': 'NANO,DQM:@nanoAODDQM',
0074                    '--process': 'NANO',
0075                    '--mc': '',
0076                    '--eventcontent': 'NANOAODSIM,DQM',
0077                    '--datatier': 'NANOAODSIM,DQMIO',
0078                    '-n': '10000',
0079                    '--customise': '"Configuration/DataProcessing/Utils.addMonitoring"'
0080                    }])
0081 _HARVEST_mc = merge([_HARVEST_nano, {'--mc': ''}])
0082 steps['HRV_NANO_mc'] = _HARVEST_mc
0083 steps['HRV_NANO_data'] = _HARVEST_data
0084 
0085 ################################################################
0086 # 10.6 INPUT and workflows
0087 steps['TTbarMINIAOD10.6_UL16v2'] = {'INPUT': InputInfo(
0088     location='STD', dataSet='/TTJets_SingleLeptFromT_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL16MiniAODv2-106X_mcRun2_asymptotic_v17-v2/MINIAODSIM')}
0089 steps['NANO_mc10.6ul16v2'] = merge([{'--era': 'Run2_2016,run2_nanoAOD_106Xv2',
0090                                    '--conditions': 'auto:run2_mc'},
0091                                     _NANO_mc])
0092 # 2017 looking Monte-Carlo: two versions in 10.6
0093 steps['TTbarMINIAOD10.6_UL17v2'] = {'INPUT': InputInfo(
0094     location='STD', dataSet='/TTJets_SingleLeptFromT_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL17MiniAODv2-106X_mc2017_realistic_v9-v2/MINIAODSIM')}
0095 steps['NANO_mc10.6ul17v2'] = merge([{'--era': 'Run2_2017,run2_nanoAOD_106Xv2',
0096                                    '--conditions': 'auto:phase1_2017_realistic'},
0097                                     _NANO_mc])
0098 
0099 steps['TTbarMINIAOD10.6_UL18v2'] = {'INPUT': InputInfo(
0100     location='STD', dataSet='/TTJets_SingleLeptFromT_TuneCP5_13TeV-madgraphMLM-pythia8/RunIISummer20UL18MiniAODv2-106X_upgrade2018_realistic_v16_L1v1-v2/MINIAODSIM')}
0101 steps['NANO_mc10.6ul18v2'] = merge([{'--era': 'Run2_2018,run2_nanoAOD_106Xv2',
0102                                    '--conditions': 'auto:phase1_2018_realistic'},
0103                                     _NANO_mc])
0104 
0105 # HIPM_UL2016_MiniAODv2 campaign is CMSSW_10_6_25
0106 steps['MuonEG2016MINIAOD10.6v2'] = {'INPUT': InputInfo(location='STD', ls=run2_lumis,
0107                                                        dataSet='/MuonEG/Run2016E-HIPM_UL2016_MiniAODv2-v2/MINIAOD')}
0108 steps['NANO_data10.6ul16v2'] = merge([{'--era': 'Run2_2016_HIPM,run2_nanoAOD_106Xv2',
0109                                      '--conditions': 'auto:run2_data'},
0110                                       _NANO_data])
0111 # UL2017_MiniAODv2 campaign is CMSSW_10_6_20
0112 steps['MuonEG2017MINIAOD10.6v2'] = {'INPUT': InputInfo(location='STD', ls=run2_lumis,
0113                                                        dataSet='/MuonEG/Run2017F-UL2017_MiniAODv2-v1/MINIAOD')}
0114 steps['NANO_data10.6ul17v2'] = merge([{'--era': 'Run2_2017,run2_nanoAOD_106Xv2',
0115                                      '--conditions': 'auto:run2_data'},
0116                                       _NANO_data])
0117 
0118 # UL2018_MiniAODv2 campaign is CMSSW_10_6_20
0119 steps['MuonEG2018MINIAOD10.6v2'] = {'INPUT': InputInfo(location='STD', ls=run2_lumis,
0120                                                        dataSet='/MuonEG/Run2018D-UL2018_MiniAODv2-v1/MINIAOD')}
0121 steps['NANO_data10.6ul18v2'] = merge([{'--era': 'Run2_2018,run2_nanoAOD_106Xv2',
0122                                      '--conditions': 'auto:run2_data'},
0123                                       _NANO_data])
0124 
0125 ################################################################
0126 # Run2UL re-MINI/NANO
0127 steps['NANO_mc_UL16APVreMINI'] = merge([{'--era': 'Run2_2016_HIPM',
0128                                          '--conditions': 'auto:run2_mc_pre_vfp'},
0129                                         _NANO_mc])
0130 steps['NANO_mc_UL16reMINI'] = merge([{'--era': 'Run2_2016',
0131                                       '--conditions': 'auto:run2_mc'},
0132                                      _NANO_mc])
0133 steps['NANO_mc_UL17reMINI'] = merge([{'--era': 'Run2_2017',
0134                                       '--conditions': 'auto:phase1_2017_realistic'},
0135                                      _NANO_mc])
0136 steps['NANO_mc_UL18reMINI'] = merge([{'--era': 'Run2_2018',
0137                                       '--conditions': 'auto:phase1_2018_realistic'},
0138                                      _NANO_mc])
0139 
0140 steps['NANO_data_UL16APVreMINI'] = merge([{'--era': 'Run2_2016_HIPM',
0141                                          '--conditions': 'auto:run2_data'},
0142                                           _NANO_data])
0143 steps['NANO_data_UL16reMINI'] = merge([{'--era': 'Run2_2016',
0144                                       '--conditions': 'auto:run2_data'},
0145                                        _NANO_data])
0146 steps['NANO_data_UL17reMINI'] = merge([{'--era': 'Run2_2017',
0147                                       '--conditions': 'auto:run2_data'},
0148                                        _NANO_data])
0149 steps['NANO_data_UL18reMINI'] = merge([{'--era': 'Run2_2018',
0150                                       '--conditions': 'auto:run2_data'},
0151                                        _NANO_data])
0152 
0153 ################################################################
0154 # 13.0 workflows
0155 steps['TTbarMINIAOD13.0'] = {'INPUT': InputInfo(
0156     location='STD', dataSet='/TTtoLNu2Q_TuneCP5_13p6TeV_powheg-pythia8/Run3Summer23MiniAODv4-130X_mcRun3_2023_realistic_v14-v2/MINIAODSIM')}
0157 
0158 steps['NANO_mc13.0'] = merge([{'--era': 'Run3,run3_nanoAOD_pre142X', '--conditions': 'auto:phase1_2023_realistic'},
0159                               _NANO_mc])
0160 
0161 
0162 # 13.0 workflows -- data
0163 steps['MuonEG2023MINIAOD13.0'] = {'INPUT': InputInfo(location='STD', ls={368489: [[46, 546]]},
0164                                                      dataSet='/MuonEG/Run2023C-22Sep2023_v4-v1/MINIAOD')}
0165 
0166 steps['ScoutingPFRun32022RAW13.0'] = {'INPUT': InputInfo(
0167     dataSet='/ScoutingPFRun3/Run2022D-v1/RAW', label='2022D', events=100000, location='STD', ls=Run2022D)}
0168 
0169 
0170 steps['NANO_data13.0'] = merge([{'--era': 'Run3,run3_nanoAOD_pre142X', '--conditions': 'auto:run3_data'},
0171                                 _NANO_data])
0172 
0173 steps['NANO_data13.0_prompt'] = merge([{'-s': 'NANO:@Prompt,DQM:@nanoAODDQM', '-n': '1000'},
0174                                        steps['NANO_data13.0']])
0175 
0176 
0177 steps['scoutingNANO_data13.0'] = merge([{'-s': 'NANO:@Scout'},
0178                                         steps['NANO_data13.0']])
0179 
0180 
0181 ################################################################
0182 # current release cycle workflows : 14.0
0183 steps['TTbarMINIAOD14.0'] = {'INPUT': InputInfo(
0184     location='STD', dataSet='/RelValTTbar_14TeV/CMSSW_14_0_0-PU_140X_mcRun3_2024_realistic_v3_STD_2024_PU-v2/MINIAODSIM')}
0185 
0186 steps['NANO_mc14.0'] = merge([{'--era': 'Run3,run3_nanoAOD_pre142X', '--conditions': 'auto:phase1_2024_realistic'},
0187                               _NANO_mc])
0188 
0189 steps['muPOGNANO_mc14.0'] = merge([{'-s': 'NANO:@MUPOG,DQM:@nanoAODDQM', '-n': '1000'},
0190                                    steps['NANO_mc14.0']])
0191 
0192 steps['EGMNANO_mc14.0'] = merge([{'-s': 'NANO:@EGM,DQM:@nanoAODDQM', '-n': '1000'},
0193                                  steps['NANO_mc14.0']])
0194 
0195 steps['BTVNANO_mc14.0'] = merge([{'-s': 'NANO:@BTV,DQM:@nanoAODDQM', '-n': '1000'},
0196                                  steps['NANO_mc14.0']])
0197 
0198 steps['lepTrackInfoNANO_mc14.0'] = merge([{'-s': 'NANO:@LepTrackInfo,DQM:@nanoAODDQM', '-n': '1000'},
0199                                           steps['NANO_mc14.0']])
0200 
0201 steps['jmeNANO_mc14.0'] = merge([{'-s': 'NANO:@JME,DQM:@nanojmeDQM', '-n': '1000'},
0202                                  steps['NANO_mc14.0']])
0203 
0204 steps['scoutingNANO_mc14.0'] = merge([{'-s': 'NANO:@Scout'},
0205                                       steps['NANO_mc14.0']])
0206 
0207 steps['scoutingNANO_withPrompt_mc14.0'] = merge([{'-s': 'NANO:@Prompt+@Scout'},
0208                                                  steps['NANO_mc14.0']])
0209 
0210 steps['SinglePionRAW14.0'] = {'INPUT': InputInfo(
0211     location='STD', dataSet='/SinglePion_E-50_Eta-0to3-pythia8-gun/Run3Winter25Digi-NoPU_142X_mcRun3_2025BOY_realistic_Candidate_2024_11_13_17_21_33-v2/GEN-SIM-RAW')}
0212 
0213 steps['hcalDPGNANO_mc14.0'] = merge([{'-s': 'RAW2DIGI,RECO,NANO:@HCALMC', '-n': '100',
0214                                       '--processName': 'NANO'},
0215                                      steps['NANO_mc14.0']])
0216 
0217 # 14.0 workflows -- data
0218 lumis_Run2024D = {380306: [[28, 273]]}
0219 steps['MuonEG2024MINIAOD14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D,
0220                                                      dataSet='/MuonEG/Run2024D-PromptReco-v1/MINIAOD')}
0221 
0222 steps['ScoutingPFRun32024RAW14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D,
0223                                                          dataSet='/ScoutingPFRun3/Run2024D-v1/HLTSCOUT')}
0224 
0225 steps['ScoutingPFMonitor2024MINIAOD14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D,
0226                                                                 dataSet='/ScoutingPFMonitor/Run2024D-PromptReco-v1/MINIAOD')}
0227 
0228 steps['ZMuSkim2024RAWRECO14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D,
0229                                                       dataSet='/Muon0/Run2024D-ZMu-PromptReco-v1/RAW-RECO')}
0230 
0231 steps['ZeroBias2024RAW14.0'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2024D,
0232                                                    dataSet='/ZeroBias/Run2024D-v1/RAW')}
0233 
0234 steps['TestEnablesEcalHcal2024RAW14.0'] = {'INPUT': InputInfo(location='STD', ls={383173: [[151, 162]]},
0235                                                               dataSet='/TestEnablesEcalHcal/Run2024F-Express-v1/RAW')}
0236 
0237 steps['NANO_data14.0'] = merge([{'--era': 'Run3_2024,run3_nanoAOD_pre142X', '--conditions': 'auto:run3_data_prompt'},
0238                                 _NANO_data])
0239 
0240 steps['NANO_data14.0_prompt'] = merge([{'-s': 'NANO:@Prompt,DQM:@nanoAODDQM', '-n': '1000'},
0241                                        steps['NANO_data14.0']])
0242 
0243 steps['muPOGNANO_data14.0'] = merge([{'-s': 'NANO:@MUPOG,DQM:@nanoAODDQM', '-n': '1000'},
0244                                      steps['NANO_data14.0']])
0245 
0246 steps['EGMNANO_data14.0'] = merge([{'-s': 'NANO:@EGM,DQM:@nanoAODDQM', '-n': '1000'},
0247                                    steps['NANO_data14.0']])
0248 
0249 steps['BTVNANO_data14.0'] = merge([{'-s': 'NANO:@BTV,DQM:@nanoAODDQM', '-n': '1000'},
0250                                    steps['NANO_data14.0']])
0251 
0252 steps['lepTrackInfoNANO_data14.0'] = merge([{'-s': 'NANO:@LepTrackInfo,DQM:@nanoAODDQM', '-n': '1000'},
0253                                            steps['NANO_data14.0']])
0254 
0255 steps['jmeNANO_data14.0'] = merge([{'-s': 'NANO:@JME,DQM:@nanojmeDQM', '-n': '1000'},
0256                                    steps['NANO_data14.0']])
0257 
0258 steps['scoutingNANO_data14.0'] = merge([{'-s': 'NANO:@Scout'},
0259                                         steps['NANO_data14.0']])
0260 
0261 steps['scoutingNANO_withPrompt_data14.0'] = merge([{'-s': 'NANO:@Prompt+@ScoutMonitor'},
0262                                                    steps['NANO_data14.0']])
0263 
0264 # DPG custom NANO
0265 steps['muDPGNANO_data14.0'] = merge([{'-s': 'RAW2DIGI,NANO:@MUDPG', '-n': '100'},
0266                                      steps['NANO_data14.0']])
0267 
0268 steps['muDPGNANOBkg_data14.0'] = merge([{'-s': 'RAW2DIGI,NANO:@MUDPGBKG', '-n': '100'},
0269                                         steps['NANO_data14.0']])
0270 
0271 steps['hcalDPGNANO_data14.0'] = merge([{'-s': 'RAW2DIGI,RECO,NANO:@HCAL', '-n': '100',
0272                                         '--processName': 'NANO'},
0273                                        steps['NANO_data14.0']])
0274 
0275 steps['hcalDPGCalibNANO_data14.0'] = merge([{'-s': 'RAW2DIGI,RECO,NANO:@HCALCalib', '-n': '100',
0276                                              '--processName': 'NANO'},
0277                                             steps['NANO_data14.0']])
0278 
0279 steps['l1DPGNANO_data14.0'] = merge([{'-s': 'RAW2DIGI,NANO:@L1DPG', '-n': '100'},
0280                                      steps['NANO_data14.0']])
0281 
0282 
0283 ################################################################
0284 # Run3 re-MINI/NANOv15 in 15.0
0285 steps['TTbar_13p6_Summer24_AOD_140X'] = {'INPUT': InputInfo(
0286     location='STD', dataSet='/TTtoLNu2Q_TuneCP5_13p6TeV_powheg-pythia8/RunIII2024Summer24DRPremix-140X_mcRun3_2024_realistic_v26-v2/AODSIM')}
0287 
0288 steps['JetMET1_Run2024H_AOD_140X'] = {'INPUT': InputInfo(
0289     location='STD', ls={385836: [[72, 166]]}, dataSet='/JetMET1/Run2024H-PromptReco-v1/AOD')}
0290 
0291 steps['NANO_mc_Summer24_reMINI'] = merge([{'--era': 'Run3_2024', '--conditions': 'auto:phase1_2024_realistic'}, _NANO_mc])
0292 
0293 steps['NANO_data_2024_reMINI'] = merge([{'--era': 'Run3_2024', '--conditions': 'auto:run3_data'}, _NANO_data])
0294 
0295 
0296 ################################################################
0297 # Run3, 15_0_X input (for 2025 data-taking)
0298 # temporarily using the Summer24 samples
0299 steps['TTbar_13p6_Summer24_MINIAOD_150X'] = {'INPUT': InputInfo(
0300     location='STD', dataSet='/TTtoLNu2Q_TuneCP5_13p6TeV_powheg-pythia8/RunIII2024Summer24MiniAODv6-150X_mcRun3_2024_realistic_v2-v2/MINIAODSIM')}
0301 
0302 steps['NANO_mc15.0'] = merge([{'--era': 'Run3_2025', '--conditions': 'auto:phase1_2025_realistic'}, _NANO_mc])
0303 
0304 steps['BPHNANO_mc15.0'] = merge([{'-s': 'NANO:@BPH,DQM:@nanoAODDQM'},
0305                                  steps['NANO_mc15.0']])
0306 
0307 steps['muPOGNANO_mc15.0'] = merge([{'-s': 'NANO:@MUPOG,DQM:@nanoAODDQM', '-n': '1000'},
0308                                    steps['NANO_mc15.0']])
0309 
0310 steps['EGMNANO_mc15.0'] = merge([{'-s': 'NANO:@EGM,DQM:@nanoAODDQM', '-n': '1000'},
0311                                  steps['NANO_mc15.0']])
0312 
0313 steps['BTVNANO_mc15.0'] = merge([{'-s': 'NANO:@BTV,DQM:@nanoAODDQM', '-n': '1000'},
0314                                  steps['NANO_mc15.0']])
0315 
0316 steps['lepTrackInfoNANO_mc15.0'] = merge([{'-s': 'NANO:@LepTrackInfo,DQM:@nanoAODDQM', '-n': '1000'},
0317                                           steps['NANO_mc15.0']])
0318 
0319 steps['jmeNANO_mc15.0'] = merge([{'-s': 'NANO:@JME,DQM:@nanojmeDQM', '-n': '1000'},
0320                                  steps['NANO_mc15.0']])
0321 
0322 steps['jmeNANO_rePuppi_mc15.0'] = merge([{'-s': 'NANO:@JMErePuppi,DQM:@nanojmeDQM', '-n': '1000'},
0323                                          steps['NANO_mc15.0']])
0324 
0325 steps['scoutingNANO_mc15.0'] = merge([{'-s': 'NANO:@Scout'},
0326                                       steps['NANO_mc15.0']])
0327 
0328 steps['scoutingNANO_withPrompt_mc15.0'] = merge([{'-s': 'NANO:@Prompt+@Scout'},
0329                                                  steps['NANO_mc15.0']])
0330 
0331 # ====== DATA ======
0332 lumis_Run2025C = {392175: [[95, 542]]}
0333 
0334 steps['JetMET1_Run2025C_MINIAOD_150X'] = {'INPUT': InputInfo(
0335     location='STD', ls=lumis_Run2025C, dataSet='/JetMET1/Run2025C-PromptReco-v1/MINIAOD')}
0336 
0337 steps['ScoutingPFRun3_Run2025C_HLTSCOUT_150X'] = {'INPUT': InputInfo(location='STD', ls=lumis_Run2025C,
0338                                                          dataSet='/ScoutingPFRun3/Run2025C-v1/HLTSCOUT')}
0339 
0340 steps['ScoutingPFMonitor_Run2025C_MINIAOD_150X'] = {'INPUT': InputInfo(
0341     location='STD', ls=lumis_Run2025C, dataSet='/ScoutingPFMonitor/Run2025C-PromptReco-v1/MINIAOD')}
0342 
0343 steps['NANO_data15.0'] = merge([{'--era': 'Run3_2025', '--conditions': 'auto:run3_data_prompt'}, _NANO_data])
0344 
0345 steps['NANO_data15.0_prompt'] = merge([{'-s': 'NANO:@Prompt,DQM:@nanoAODDQM', '-n': '1000'},
0346                                        steps['NANO_data15.0']])
0347 
0348 steps['BPHNANO_data15.0'] = merge([{'-s': 'NANO:@BPH,DQM:@nanoAODDQM'},
0349                                    steps['NANO_data15.0']])
0350 
0351 steps['muPOGNANO_data15.0'] = merge([{'-s': 'NANO:@MUPOG,DQM:@nanoAODDQM', '-n': '1000'},
0352                                      steps['NANO_data15.0']])
0353 
0354 steps['EGMNANO_data15.0'] = merge([{'-s': 'NANO:@EGM,DQM:@nanoAODDQM', '-n': '1000'},
0355                                    steps['NANO_data15.0']])
0356 
0357 steps['BTVNANO_data15.0'] = merge([{'-s': 'NANO:@BTV,DQM:@nanoAODDQM', '-n': '1000'},
0358                                    steps['NANO_data15.0']])
0359 
0360 steps['lepTrackInfoNANO_data15.0'] = merge([{'-s': 'NANO:@LepTrackInfo,DQM:@nanoAODDQM', '-n': '1000'},
0361                                            steps['NANO_data15.0']])
0362 
0363 steps['jmeNANO_data15.0'] = merge([{'-s': 'NANO:@JME,DQM:@nanojmeDQM', '-n': '1000'},
0364                                    steps['NANO_data15.0']])
0365 
0366 steps['jmeNANO_rePuppi_data15.0'] = merge([{'-s': 'NANO:@JMErePuppi,DQM:@nanojmeDQM', '-n': '1000'},
0367                                           steps['NANO_data15.0']])
0368 
0369 steps['scoutingNANO_data15.0'] = merge([{'-s': 'NANO:@Scout'},
0370                                         steps['NANO_data15.0']])
0371 
0372 steps['scoutingNANO_withPrompt_data15.0'] = merge([{'-s': 'NANO:@Prompt+@ScoutMonitor'},
0373                                                    steps['NANO_data15.0']])
0374 
0375 ################################################################
0376 # NANOGEN
0377 steps['NANOGENFromGen'] = merge([{'-s': 'NANO:@GEN,DQM:@nanogenDQM',
0378                                   '-n': 1000,
0379                                   '--conditions': 'auto:run2_mc'},
0380                                  _NANO_mc])
0381 steps['NANOGENFromMini'] = merge([{'-s': 'NANO:@GENFromMini,DQM:@nanogenDQM',
0382                                    '-n': 1000,
0383                                    '--conditions': 'auto:run2_mc'},
0384                                   _NANO_mc])
0385 
0386 ################################################################
0387 _wfn = WFN(2500)
0388 ######## 2500.0xxx ########
0389 # Run2, 10_6_X MiniAOD input (current recommendation for 2016--2018)
0390 workflows[_wfn()] = ['NANOmc106Xul16v2', ['TTbarMINIAOD10.6_UL16v2', 'NANO_mc10.6ul16v2', 'HRV_NANO_mc']]
0391 workflows[_wfn()] = ['NANOmc106Xul17v2', ['TTbarMINIAOD10.6_UL17v2', 'NANO_mc10.6ul17v2', 'HRV_NANO_mc']]
0392 workflows[_wfn()] = ['NANOmc106Xul18v2', ['TTbarMINIAOD10.6_UL18v2', 'NANO_mc10.6ul18v2', 'HRV_NANO_mc']]
0393 
0394 _wfn.subnext()
0395 workflows[_wfn()] = ['NANOdata106Xul16v2', ['MuonEG2016MINIAOD10.6v2', 'NANO_data10.6ul16v2', 'HRV_NANO_data']]
0396 workflows[_wfn()] = ['NANOdata106Xul17v2', ['MuonEG2017MINIAOD10.6v2', 'NANO_data10.6ul17v2', 'HRV_NANO_data']]
0397 workflows[_wfn()] = ['NANOdata106Xul18v2', ['MuonEG2018MINIAOD10.6v2', 'NANO_data10.6ul18v2', 'HRV_NANO_data']]
0398 
0399 # Run2, 10_6_X AOD, reMINI+reNANO
0400 _wfn.subnext()
0401 workflows[_wfn()] = ['NANOmcUL16APVreMINI', ['TTbar_13_reminiaod2016UL_preVFP_INPUT', 'REMINIAOD_mc2016UL_preVFP', 'NANO_mc_UL16APVreMINI', 'HRV_NANO_mc']]  # noqa
0402 workflows[_wfn()] = ['NANOmcUL16reMINI', ['TTbar_13_reminiaod2016UL_postVFP_INPUT', 'REMINIAOD_mc2016UL_postVFP', 'NANO_mc_UL16reMINI', 'HRV_NANO_mc']]  # noqa
0403 workflows[_wfn()] = ['NANOmcUL17reMINI', ['TTbar_13_reminiaod2017UL_INPUT', 'REMINIAOD_mc2017UL', 'NANO_mc_UL17reMINI', 'HRV_NANO_mc']]  # noqa
0404 workflows[_wfn()] = ['NANOmcUL18reMINI', ['TTbar_13_reminiaod2018UL_INPUT', 'REMINIAOD_mc2018UL', 'NANO_mc_UL18reMINI', 'HRV_NANO_mc']]  # noqa
0405 
0406 _wfn.subnext()
0407 workflows[_wfn()] = ['NANOdataUL16APVreMINI', ['RunJetHT2016E_reminiaodUL', 'REMINIAOD_data2016UL_HIPM', 'NANO_data_UL16APVreMINI', 'HRV_NANO_data']]  # noqa
0408 workflows[_wfn()] = ['NANOdataUL16reMINI', ['RunJetHT2016H_reminiaodUL', 'REMINIAOD_data2016UL', 'NANO_data_UL16reMINI', 'HRV_NANO_data']]  # noqa
0409 workflows[_wfn()] = ['NANOdataUL17reMINI', ['RunJetHT2017F_reminiaodUL', 'REMINIAOD_data2017UL', 'NANO_data_UL17reMINI', 'HRV_NANO_data']]  # noqa
0410 workflows[_wfn()] = ['NANOdataUL18reMINI', ['RunJetHT2018D_reminiaodUL', 'REMINIAOD_data2018UL', 'NANO_data_UL18reMINI', 'HRV_NANO_data']]  # noqa
0411 
0412 _wfn.next(1)
0413 ######## 2500.1xxx ########
0414 # Run3, 13_0_X input (current recommendation for 2022--2023)
0415 workflows[_wfn()] = ['NANOmc130X', ['TTbarMINIAOD13.0', 'NANO_mc13.0', 'HRV_NANO_mc']]
0416 
0417 _wfn.subnext()
0418 workflows[_wfn()] = ['NANOdata130Xrun3', ['MuonEG2023MINIAOD13.0', 'NANO_data13.0', 'HRV_NANO_data']]
0419 
0420 # POG/PAG custom NANOs, MC
0421 _wfn.subnext()
0422 
0423 # POG/PAG custom NANOs, data
0424 _wfn.subnext()
0425 workflows[_wfn()] = ['ScoutingNANOdata130Xrun3', ['ScoutingPFRun32022RAW13.0', 'scoutingNANO_data13.0']]
0426 
0427 # DPG custom NANOs, data
0428 _wfn.subnext()
0429 
0430 _wfn.next(2)
0431 ######## 2500.2xxx ########
0432 # Run3, 14_0_X input (2024 RAW/AOD)
0433 # Standard NANO, MC
0434 
0435 # Standard NANO, data
0436 _wfn.subnext()
0437 
0438 # POG/PAG custom NANOs, MC
0439 _wfn.subnext()
0440 workflows[_wfn()] = ['muPOGNANOmc140X', ['TTbarMINIAOD14.0', 'muPOGNANO_mc14.0']]
0441 workflows[_wfn()] = ['EGMNANOmc140X', ['TTbarMINIAOD14.0', 'EGMNANO_mc14.0']]
0442 workflows[_wfn()] = ['BTVNANOmc140X', ['TTbarMINIAOD14.0', 'BTVNANO_mc14.0']]
0443 workflows[_wfn()] = ['jmeNANOmc140X', ['TTbarMINIAOD14.0', 'jmeNANO_mc14.0']]
0444 _wfn() # workflows[_wfn()] = ['jmeNANOrePuppimc140X', ['TTbarMINIAOD14.0', 'jmeNANO_rePuppi_mc14.0']]
0445 workflows[_wfn()] = ['lepTrackInfoNANOmc140X', ['TTbarMINIAOD14.0', 'lepTrackInfoNANO_mc14.0']]
0446 workflows[_wfn()] = ['ScoutingNANOmc140X', ['TTbarMINIAOD14.0', 'scoutingNANO_mc14.0']]
0447 workflows[_wfn()] = ['ScoutingNANOwithPromptmc140X', ['TTbarMINIAOD14.0', 'scoutingNANO_withPrompt_mc14.0']]
0448 
0449 # POG/PAG custom NANOs, data
0450 _wfn.subnext()
0451 workflows[_wfn()] = ['muPOGNANO140Xrun3', ['MuonEG2024MINIAOD14.0', 'muPOGNANO_data14.0']]
0452 workflows[_wfn()] = ['EGMNANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'EGMNANO_data14.0']]
0453 workflows[_wfn()] = ['BTVNANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'BTVNANO_data14.0']]
0454 workflows[_wfn()] = ['jmeNANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'jmeNANO_data14.0']]
0455 _wfn()  # workflows[_wfn()] = ['jmeNANOrePuppidata140Xrun3', ['MuonEG2024MINIAOD14.0', 'jmeNANO_rePuppi_data14.0']]
0456 workflows[_wfn()] = ['lepTrackInfoNANOdata140Xrun3', ['MuonEG2024MINIAOD14.0', 'lepTrackInfoNANO_data14.0']]
0457 workflows[_wfn()] = ['ScoutingNANOdata140Xrun3', ['ScoutingPFRun32024RAW14.0', 'scoutingNANO_data14.0']]
0458 workflows[_wfn()] = ['ScoutingNANOwithPromptdata140Xrun3', ['ScoutingPFMonitor2024MINIAOD14.0', 'scoutingNANO_withPrompt_data14.0']]
0459 
0460 # DPG custom NANOs, data
0461 _wfn.subnext()
0462 workflows[_wfn()] = ['l1DPGNANO140Xrun3', ['ZMuSkim2024RAWRECO14.0', 'l1DPGNANO_data14.0']]
0463 workflows[_wfn()] = ['muDPGNANO140Xrun3', ['ZMuSkim2024RAWRECO14.0', 'muDPGNANO_data14.0']]
0464 workflows[_wfn()] = ['muDPGNANOBkg140Xrun3', ['ZeroBias2024RAW14.0', 'muDPGNANOBkg_data14.0']]
0465 workflows[_wfn()] = ['hcalDPGNANO140Xrun3', ['ZeroBias2024RAW14.0', 'hcalDPGNANO_data14.0']]
0466 workflows[_wfn()] = ['hcalDPGCalibNANO140Xrun3', ['TestEnablesEcalHcal2024RAW14.0', 'hcalDPGCalibNANO_data14.0']]
0467 
0468 # DPG custom NANOs, MC
0469 _wfn.subnext()
0470 workflows[_wfn()] = ['hcalDPGMCNANO140Xrun3', ['SinglePionRAW14.0', 'hcalDPGNANO_mc14.0']]
0471 # The above HCAL workflow is actually using data produced for 14.2
0472 # but I keep the 14.0 label for now since it's consistent with those ones
0473 # let me know if I should change this
0474 
0475 # MINIv6+NANOv15, MC
0476 _wfn.subnext()
0477 workflows[_wfn()] = ['NANOmc2024reMINI', ['TTbar_13p6_Summer24_AOD_140X', 'REMINIAOD_mc2024', 'NANO_mc_Summer24_reMINI', 'HRV_NANO_mc']]  # noqa
0478 
0479 # MINIv6+NANOv15, data
0480 _wfn.subnext()
0481 workflows[_wfn()] = ['NANOdata2024reMINI', ['JetMET1_Run2024H_AOD_140X', 'REMINIAOD_data2024', 'NANO_data_2024_reMINI', 'HRV_NANO_data']]  # noqa
0482 
0483 _wfn.next(3)
0484 ######## 2500.3xxx ########
0485 # Run3, 15_0_X input (2024 MINIv6+NANOv15 & 2025 data-taking)
0486 # Standard NANO, MC
0487 workflows[_wfn()] = ['NANOmc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'NANO_mc15.0', 'HRV_NANO_mc']]
0488 
0489 # Standard NANO, data
0490 _wfn.subnext()
0491 workflows[_wfn()] = ['NANOdata150X', ['JetMET1_Run2025C_MINIAOD_150X', 'NANO_data15.0', 'HRV_NANO_data']]
0492 workflows[_wfn()] = ['NANOdata150X', ['JetMET1_Run2025C_MINIAOD_150X', 'NANO_data15.0_prompt', 'HRV_NANO_data']]
0493 
0494 # POG/PAG custom NANOs, MC
0495 _wfn.subnext()
0496 workflows[_wfn()] = ['muPOGNANOmc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'muPOGNANO_mc15.0']]
0497 workflows[_wfn()] = ['EGMNANOmc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'EGMNANO_mc15.0']]
0498 workflows[_wfn()] = ['BTVNANOmc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'BTVNANO_mc15.0']]
0499 workflows[_wfn()] = ['jmeNANOmc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'jmeNANO_mc15.0']]
0500 workflows[_wfn()] = ['jmeNANOrePuppimc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'jmeNANO_rePuppi_mc15.0']]
0501 workflows[_wfn()] = ['lepTrackInfoNANOmc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'lepTrackInfoNANO_mc15.0']]
0502 workflows[_wfn()] = ['ScoutingNANOmc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'scoutingNANO_mc15.0']]
0503 workflows[_wfn()] = ['ScoutingNANOwithPromptmc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'scoutingNANO_withPrompt_mc15.0']]
0504 workflows[_wfn()] = ['BPHNANOmc150X', ['TTbar_13p6_Summer24_MINIAOD_150X', 'BPHNANO_mc15.0']]
0505 
0506 # POG/PAG custom NANOs, data
0507 _wfn.subnext()
0508 workflows[_wfn()] = ['muPOGNANO150Xrun3', ['JetMET1_Run2025C_MINIAOD_150X', 'muPOGNANO_data15.0']]
0509 workflows[_wfn()] = ['EGMNANOdata150Xrun3', ['JetMET1_Run2025C_MINIAOD_150X', 'EGMNANO_data15.0']]
0510 workflows[_wfn()] = ['BTVNANOdata150Xrun3', ['JetMET1_Run2025C_MINIAOD_150X', 'BTVNANO_data15.0']]
0511 workflows[_wfn()] = ['jmeNANOdata150Xrun3', ['JetMET1_Run2025C_MINIAOD_150X', 'jmeNANO_data15.0']]
0512 workflows[_wfn()] = ['jmeNANOrePuppidata150Xrun3', ['JetMET1_Run2025C_MINIAOD_150X', 'jmeNANO_rePuppi_data15.0']]
0513 workflows[_wfn()] = ['lepTrackInfoNANOdata150Xrun3', ['JetMET1_Run2025C_MINIAOD_150X', 'lepTrackInfoNANO_data15.0']]
0514 workflows[_wfn()] = ['ScoutingNANOdata150Xrun3', ['ScoutingPFRun3_Run2025C_HLTSCOUT_150X', 'scoutingNANO_data15.0']]
0515 workflows[_wfn()] = ['ScoutingNANOwithPromptdata150Xrun3', ['ScoutingPFMonitor_Run2025C_MINIAOD_150X', 'scoutingNANO_withPrompt_data15.0']]  # noqa
0516 workflows[_wfn()] = ['BPHNANOdata150Xrun3', ['JetMET1_Run2025C_MINIAOD_150X', 'BPHNANO_data15.0']]
0517 
0518 # DPG custom NANOs, data
0519 _wfn.subnext()
0520 
0521 # DPG custom NANOs, MC
0522 _wfn.subnext()
0523 
0524 
0525 _wfn.next(9)
0526 ######## 2500.9xxx ########
0527 # NANOGEN
0528 workflows[_wfn()] = ['', ['TTbarMINIAOD10.6_UL18v2', 'NANOGENFromMini']]
0529 workflows[_wfn()] = ['', ['TTbarMINIAOD14.0', 'NANOGENFromMini']]
0530 _wfn.subnext()
0531 workflows[_wfn()] = ['', ['DYToLL_M-50_13TeV_pythia8', 'NANOGENFromGen']]
0532 workflows[_wfn()] = ['', ['DYToll01234Jets_5f_LO_MLM_Madgraph_LHE_13TeV',
0533                           'Hadronizer_TuneCP5_13TeV_MLM_5f_max4j_LHE_pythia8', 'NANOGENFromGen']]
0534 workflows[_wfn()] = ['', ['TTbar_Pow_LHE_13TeV', 'Hadronizer_TuneCP5_13TeV_powhegEmissionVeto2p_pythia8', 'NANOGENFromGen']]