1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# import the definition of the steps and input files:
from Configuration.PyReleaseValidation.relval_steps import *
# here only define the workflows as a combination of the steps defined above:
workflows = Matrix()
## Here we define fixed high stats data workflows
## not to be run as default. 10k, 50k, 150k, 250k, 500k or 1M events each
offset_era = 0.1 # less than 10 eras per year (hopefully!)
offset_pd = 0.001 # less than 100 pds per year
offset_events = 0.0001 # less than 10 event setups (10k,50k,150k,250k,500k,1M)
## 2024
base_wf = 2024.0
for e_n,era in enumerate(eras_2024):
for p_n,pd in enumerate(pds_2024):
for e_key,evs in event_steps_dict.items():
wf_number = base_wf
wf_number = wf_number + offset_era * e_n
wf_number = wf_number + offset_pd * p_n
wf_number = wf_number + offset_events * evs
wf_number = round(wf_number,6)
## Here we use JetMET1 PD to run the TeVJet skims
skim = 'TeVJet' if pd == 'JetMET1' else ''
## ZeroBias have their own HARVESTING
suff = 'ZB_' if 'ZeroBias' in pd else ''
# Running C,D,E with the offline GT.
# Could be removed once 2025 wfs are in and we'll test the online GT with them
recosetup = 'RECONANORUN3_' + suff + 'reHLT_2024'
recosetup = recosetup if era[-1] > 'E' else recosetup + '_Offline'
y = str(int(base_wf))
step_name = 'Run' + pd.replace('ParkingDouble','Park2') + era.split('Run')[1] + skim + '_' + e_key
workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]]
## 2023
base_wf = 2023.0
for e_n,era in enumerate(eras_2023):
for p_n,pd in enumerate(pds_2023):
for e_key,evs in event_steps_dict.items():
wf_number = base_wf
wf_number = wf_number + offset_era * e_n
wf_number = wf_number + offset_pd * p_n
wf_number = wf_number + offset_events * evs
wf_number = round(wf_number,6)
step_name = 'Run' + pd.replace('ParkingDouble','Park2') + era.split('Run')[1] + '_' + e_key
y = str(int(base_wf)) + 'B' if '2023B' in era else str(int(base_wf))
suff = 'ZB_' if 'ZeroBias' in step_name else ''
workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]]
## 2022
base_wf = 2022.0
for e_n,era in enumerate(eras_2022_1):
for p_n,pd in enumerate(pds_2022_1):
for e_key,evs in event_steps_dict.items():
wf_number = base_wf
wf_number = wf_number + offset_era * e_n
wf_number = wf_number + offset_pd * p_n
wf_number = wf_number + offset_events * evs
wf_number = round(wf_number,6)
step_name = 'Run' + pd + era.split('Run')[1] + '_' + e_key
y = str(int(base_wf))
suff = 'ZB_' if 'ZeroBias' in step_name else ''
workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]]
# PD names changed during 2022
for e_n,era in enumerate(eras_2022_2):
for p_n,pd in enumerate(pds_2022_2):
for e_key,evs in event_steps_dict.items():
wf_number = base_wf
wf_number = wf_number + offset_era * (e_n + len(eras_2022_1))
wf_number = wf_number + offset_pd * (p_n + len(pds_2022_1))
wf_number = wf_number + offset_events * evs
wf_number = round(wf_number,6)
step_name = 'Run' + pd + era.split('Run')[1] + '_' + e_key
y = str(int(base_wf))
suff = 'ZB_' if 'ZeroBias' in step_name else ''
workflows[wf_number] = ['',[step_name,'HLTDR3_' + y,'RECONANORUN3_' + suff + 'reHLT_'+y,'HARVESTRUN3_' + suff + y]]
|