Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-06-20 01:53:04

0001 # import the definition of the steps and input files:
0002 from  Configuration.PyReleaseValidation.relval_steps import *
0003 
0004 # here only define the workflows as a combination of the steps defined above:
0005 workflows = Matrix()
0006 
0007 ## Here we define fixed high stats data workflows
0008 ## not to be run as default. 10k, 50k, 150k, 250k, 500k or 1M events each
0009 
0010 offset_era = 0.1 # less than 10 eras per year (hopefully!)
0011 offset_pd = 0.001 # less than 100 pds per year
0012 offset_events = 0.0001 # less than 10 event setups (10k,50k,150k,250k,500k,1M)
0013 
0014 ## 2025
0015 base_wf = 2025.0
0016 for e_n,era in enumerate(eras_2025):
0017     for p_n,pd in enumerate(pds_2025):
0018         for e_key,evs in event_steps_dict.items(): 
0019             wf_number = base_wf
0020             wf_number = wf_number + offset_era * e_n
0021             wf_number = wf_number + offset_pd * p_n
0022             wf_number = wf_number + offset_events * evs 
0023             wf_number = round(wf_number,6)
0024 
0025             ## ZeroBias has its own RECO and HARVESTING setup
0026             ## ScoutingPFMonitor has its own HLT, RECO and HARVESTING setup
0027             recoharv = hlt = '' 
0028             if 'ZeroBias' in pd:
0029                 recoharv = 'ZB_'
0030             elif 'ScoutingPFMonitor' in pd:
0031                 hlt = recoharv = 'ScoutingPFMonitor_'
0032             
0033             recosetup = 'RECONANORUN3_' + recoharv + 'reHLT_2025' 
0034             
0035             y = str(int(base_wf))
0036             
0037             ## this is because ParkingDouble* PDs would end up with a too long name for the submission infrastructure
0038             step_name = 'Run' + pd.replace('ParkingDouble','Park2') + era.split('Run')[1] + '_' + e_key 
0039 
0040             workflows[wf_number] = ['',[step_name,'HLTDR3_' + hlt + y,'RECONANORUN3_' + recoharv + 'reHLT_'+y,'HARVESTRUN3_' + recoharv + y]]
0041 
0042 ## 2024
0043 base_wf = 2024.0
0044 for e_n,era in enumerate(eras_2024):
0045     for p_n,pd in enumerate(pds_2024):
0046         for e_key,evs in event_steps_dict.items(): 
0047             wf_number = base_wf
0048             wf_number = wf_number + offset_era * e_n
0049             wf_number = wf_number + offset_pd * p_n
0050             wf_number = wf_number + offset_events * evs 
0051             wf_number = round(wf_number,6)
0052 
0053             ## Here we use JetMET1 PD to run the TeVJet skims
0054             skim = 'TeVJet' if pd == 'JetMET1' else ''
0055 
0056             ## ZeroBias has its own RECO and HARVESTING setup
0057             suff = 'ZB_' if 'ZeroBias' in pd else ''
0058 
0059             # Running C,D,E with the offline GT.
0060             # Could be removed once 2025 wfs are in and we'll test the online GT with them
0061             recosetup = 'RECONANORUN3_' + suff + 'reHLT_2024' 
0062             recosetup = recosetup if era[-1] > 'E' else recosetup + '_Offline'
0063             
0064             y = str(int(base_wf))
0065 
0066             ## this is because ParkingDouble* PDs would end up with a too long name for the submission infrastructure
0067             step_name = 'Run' + pd.replace('ParkingDouble','Park2') + era.split('Run')[1] + skim + '_' + e_key
0068 
0069             workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]]
0070 
0071 ## 2023
0072 base_wf = 2023.0
0073 for e_n,era in enumerate(eras_2023):
0074     for p_n,pd in enumerate(pds_2023):
0075         for e_key,evs in event_steps_dict.items():  
0076             wf_number = base_wf
0077             wf_number = wf_number + offset_era * e_n
0078             wf_number = wf_number + offset_pd * p_n
0079             wf_number = wf_number + offset_events * evs 
0080             wf_number = round(wf_number,6)
0081 
0082             ## this is because ParkingDouble* PDs would end up with a too long name for the submission infrastructure
0083             step_name = 'Run' + pd.replace('ParkingDouble','Park2') + era.split('Run')[1] + '_' + e_key
0084 
0085             y = str(int(base_wf)) + 'B' if '2023B' in era else str(int(base_wf))
0086             suff = 'ZB_' if 'ZeroBias' in step_name else ''
0087             workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]]
0088 
0089 ## 2022
0090 base_wf = 2022.0
0091 for e_n,era in enumerate(eras_2022_1):
0092     for p_n,pd in enumerate(pds_2022_1):
0093         for e_key,evs in event_steps_dict.items(): 
0094             wf_number = base_wf
0095             wf_number = wf_number + offset_era * e_n
0096             wf_number = wf_number + offset_pd * p_n
0097             wf_number = wf_number + offset_events * evs
0098             wf_number = round(wf_number,6)
0099             step_name = 'Run' + pd + era.split('Run')[1] + '_' + e_key
0100             y = str(int(base_wf))
0101             suff = 'ZB_' if 'ZeroBias' in step_name else ''
0102             workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]]
0103 
0104 # PD names changed during 2022
0105 for e_n,era in enumerate(eras_2022_2):
0106     for p_n,pd in enumerate(pds_2022_2):
0107         for e_key,evs in event_steps_dict.items(): 
0108             wf_number = base_wf
0109             wf_number = wf_number + offset_era * (e_n + len(eras_2022_1))
0110             wf_number = wf_number + offset_pd * (p_n + len(pds_2022_1))
0111             wf_number = wf_number + offset_events * evs 
0112             wf_number = round(wf_number,6)
0113             step_name = 'Run' + pd + era.split('Run')[1] + '_' + e_key
0114             y = str(int(base_wf))
0115             suff = 'ZB_' if 'ZeroBias' in step_name else ''
0116             workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]]