ATLAS Offline Software
Loading...
Searching...
No Matches
Chains.py
Go to the documentation of this file.
2# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3#
4
5# NB: this file is autogenerated, do not edit directly
6
7class Chains:
8 def get_menu_dict(self):
9 d = {}
10
11 d["electron"] = {
12 "chains": [
13 'HLT_e26_idperf_loose_L1eEM26M',
14 'HLT_e26_idperf_tight_L1eEM26M',
15 'HLT_e28_idperf_loose_L1eEM28M',
16
17 'HLT_e5_idperf_tight_L1eEM5',
18 'HLT_e5_idperf_tight_nogsf_L1eEM5',
19
20 ],
21 "signature": ['Egamma'],
22 "menu": ''
23 }
24
25 d["electronTnP"] = {
26 "chains": [
27 'HLT_e26_idperf_loose_L1eEM26M',
28 'HLT_e26_lhtight_e14_idperf_tight_nogsf_probe_50invmAB130_L1eEM26M',
29 'HLT_e26_lhtight_e14_idperf_tight_probe_50invmAB130_L1eEM26M',
30 'HLT_e28_idperf_loose_L1eEM28M',
31
32 ],
33 "signature": ['Egamma'],
34 "menu": ''
35 }
36
37 d["electronLRT"] = {
38 "chains": [
39 'HLT_e20_idperf_loose_lrtloose_L1eEM18L',
40 'HLT_e26_lhtight_ivarloose_e30_lhloose_nopix_lrtmedium_probe_L1eEM26M',
41 'HLT_e26_lhtight_ivarloose_e5_idperf_loose_lrtloose_probe_L1eEM26M',
42 'HLT_e30_idperf_loose_lrtloose_L1eEM26M',
43 'HLT_e30_lhloose_nopix_lrtmedium_probe_g25_medium_L1eEM24L',
44 'HLT_e5_idperf_loose_lrtloose_probe_g25_medium_L1eEM24L',
45
46 ],
47 "signature": ['Egamma'],
48 "menu": ''
49 }
50
51 d["muon"] = {
52 "chains": [
53 'HLT_mu24_idperf_L1MU14FCH',
54 'HLT_mu26_ivarperf_L1MU14FCH',
55
56 'HLT_mu4_mu4_idperf_1invmAB5_L12MU3VF',
57 'HLT_mu6_idperf_L1MU5VF',
58
59 ],
60 "signature": ['Muon'],
61 "menu": ''
62 }
63
64 d["muonTnP"] = {
65 "chains": [
66 'HLT_mu14_mu14_idtp_idZmumu_L12MU8F',
67 'HLT_mu24_idperf_L1MU14FCH',
68
69 ],
70 "signature": ['Muon'],
71 "menu": ''
72 }
73
74 d["muonLRT"] = {
75 "chains": [
76 'HLT_mu20_LRT_idperf_L1MU14FCH',
77 'HLT_mu24_idperf_L1MU14FCH',
78
79 ],
80 "signature": ['Muon'],
81 "menu": ''
82 }
83
84 d["tau"] = {
85 "chains": [
86 'HLT_tau25_idperf_tracktwoMVA_L1cTAU20M',
87
88 ],
89 "signature": ['Tau'],
90 "menu": ''
91 }
92
93 d["tauLRT"] = {
94 "chains": [
95 'HLT_tau25_idperf_trackLRT_L1cTAU20M',
96 'HLT_tau25_idperf_tracktwoLLP_L1cTAU20M',
97
98 ],
99 "signature": ['Tau'],
100 "menu": 'Dev_pp_run3_v1'
101 }
102
103 d["FSLRT"] = {
104 "chains": [
105 'HLT_fslrt0_L1jJ160',
106
107 ],
108 "signature": ['UnconventionalTracking'],
109 "menu": 'Dev_pp_run3_v1'
110 }
111
112 d["bjet"] = {
113 "chains": [
114 'HLT_j20_roiftf_preselj20_L1RD0_FILLED',
115 'HLT_j45_0eta290_020jvt_boffperf_pf_ftf_L1jJ50',
116 'HLT_j80_0eta290_020jvt_boffperf_pf_ftf_L1jJ90',
117
118 ],
119 "signature": ["Bjet"],
120 "menu": 'Dev_pp_run3_v1'
121 }
122
123 d["fsjet"] = {
124 "chains": [
125 'HLT_j45_0eta290_020jvt_boffperf_pf_ftf_L1jJ50',
126 'HLT_j45_pf_ftf_preselj20_L1jJ40',
127 'HLT_j80_0eta290_020jvt_boffperf_pf_ftf_L1jJ90',
128
129 ],
130 "signature": ["Jet"],
131 "menu": 'Dev_pp_run3_v1'
132 }
133
134 d["minbias"] = {
135 "chains": [
136 'HLT_mb_sptrk_L1RD0_FILLED',
137
138 ],
139 "signature": ["MinBias"],
140 "menu": 'PhysicsP1_pp_lowMu_run3_v1'
141 }
142
143 d["minbiaspix"] = {
144 "chains": [
145 'HLT_mb_pixsptrk_nototpix20_q2_L1VjTE10',
146
147 ],
148 "signature": ["MinBias"],
149 "menu": 'Dev_HI_run3_v1'
150# "menu": 'PhysicsP1_HI_run3_v1'
151 }
152
153 d["cosmic"] = {
154 "chains": [
155 'HLT_mu4_cosmic_L1MU3V_EMPTY',
156
157 ],
158 "signature": ['Muon','Cosmic',],
159 "menu": 'Cosmic_run3_v1'
160 }
161
162 d["bphys"] = {
163 "chains": [
164 'HLT_2mu4_bBmumux_BsmumuPhi_L12MU3V',
165 'HLT_mu11_mu6_bBmumux_Bidperf_L1MU8VF_2MU5VF',
166
167 ],
168 "signature": ['Muon','Bphysics',],
169 "menu": ''
170 }
171
172 return d
173
174 def get_values(self, slice_names: list, prop: str) -> set:
175 values = set()
176 d = self.get_menu_dict()
177
178 for sn in slice_names:
179 if sn not in d:
180 raise RuntimeError("Undefined slice name {}".format(sn))
181 cfg = d[sn]
182
183 if prop in cfg:
184 values.update(cfg[prop])
185
186 return values
187
188 def get_flag_str(self, slice_names: list, prop: str, flag_name: str) -> str:
189 values = self.get_values(slice_names, prop)
190
191 cs = ["'{}'".format(v) for v in values]
192 return "flags.Trigger.{0}=[{1}]".format(flag_name, ",".join(cs))
193
194 def get_selectChains_flag(self, slice_names: list) -> str:
195 return self.get_flag_str(slice_names, "chains", "selectChains")
196
197 def get_enabledSignatures_flag(self, slice_names: list) -> str:
198 return self.get_flag_str(slice_names, "signature", "enabledSignatures")
199
200 def get_menu_flag(self, slice_names: list) -> str:
201 d = self.get_menu_dict()
202 values = set()
203
204 for sn in slice_names:
205 cfg = d[sn]
206
207 if(cfg["menu"] == ''):
208 continue
209
210 values.add(cfg["menu"])
211
212 if(len(values) > 1):
213 raise RuntimeError("Multiple menus specified, configured slices {0} conflict between {1}".format(slice_names, values))
214
215 if(len(values) == 0):
216 return ""
217
218 return "flags.Trigger.triggerMenuSetup='{}'".format(list(values)[0])
219
220 def get_compiled_flag_str(self, slice_names: list) -> str:
221 flags = []
222 flags.append(self.get_flag_str(slice_names, "chains", "selectChains"))
223 flags.append(self.get_flag_str(slice_names, "signature", "enabledSignatures"))
224
225 mf = self.get_menu_flag(slice_names)
226
227 if(mf != ''):
228 flags.append(mf)
229
230 extra = self.get_values(slice_names, "extra")
231 flags += extra
232
233 return ";".join(flags)
234
235if __name__ == "__main__":
236 c = Chains()
237
238 print(c.get_selectChains_flag(["muon", "cosmic"]))
239 print(c.get_enabledSignatures_flag(["muon", "cosmic"]))
240 print(c.get_menu_flag(["muon", "cosmic"]))
if(febId1==febId2)
void print(char *figname, TCanvas *c1)
str get_selectChains_flag(self, list slice_names)
Definition Chains.py:194
str get_menu_flag(self, list slice_names)
Definition Chains.py:200
str get_flag_str(self, list slice_names, str prop, str flag_name)
Definition Chains.py:188
get_menu_dict(self)
Definition Chains.py:8
set get_values(self, list slice_names, str prop)
Definition Chains.py:174
str get_compiled_flag_str(self, list slice_names)
Definition Chains.py:220
str get_enabledSignatures_flag(self, list slice_names)
Definition Chains.py:197
STL class.