ATLAS Offline Software
L1Seeds.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaCommon.Logging import logging
4 log = logging.getLogger(__name__)
5 
6 
9 from TriggerMenuMT.L1.Config.TriggerTypeDef import TT
10 rpcout_type = TT.muon | TT.phys
11 rpcin_type = TT.muon | TT.phys
12 cl_type = TT.calo | TT.phys
13 
14 
15 calo_exceptions = set([])
16 
17 
18 
22 def Lvl1ItemByTriggerType(l1object, triggertype_pattern, triggertype_bitmask):
23  """
24  The function returns those items where the items triggertype, after applying the mask, matches the pattern.
25  With this one can also select items where a certain bit is disabled
26  """
27  if triggertype_pattern<0 or triggertype_pattern>0xFF:
28  raise RuntimeError('TriggerPythonConfig.Lvl1ItemByTriggerType(triggertype_pattern,triggertype_bitmask) needs to be called with 0<=triggertype_pattern<=0xFF, ' + \
29  + 'but is called with triggertype_pattern=%i' % triggertype_pattern)
30  if triggertype_bitmask<0 or triggertype_bitmask>0xFF:
31  raise RuntimeError('TriggerPythonConfig.Lvl1ItemByTriggerType(triggertype_pattern,triggertype_bitmask) needs to be called with 0<=triggertype_bitmask<=0xFF, ' + \
32  + 'but is called with triggertype_bitmask=%i' % triggertype_bitmask)
33  itemsForMenu = [item for item in l1object if l1object[item]['ctpid'] != -1]
34  if not itemsForMenu:
35  log.error('No item defined for the L1 Menu, the TriggerConfL1 object does not contain items')
36  res = [item for item in itemsForMenu if ( (triggertype_bitmask & int(l1object[item]['triggerType'],2)) == triggertype_pattern)]
37  return res
38 
39 
43  return [
44  'L1_BCM_2A_2C_BGRP12', 'L1_BCM_2A_2C_UNPAIRED_ISO',
45  'L1_BCM_Wide_CALIB', 'L1_BCM_Wide_BGRP12', 'L1_BCM_Wide_EMPTY', 'L1_BCM_Wide_UNPAIREDB1', 'L1_BCM_Wide_UNPAIREDB2',
46  'L1_BCM_2A_CALIB', 'L1_BCM_2C_CALIB',
47  'L1_BCM_2A_EMPTY', 'L1_BCM_2C_EMPTY',
48  'L1_BCM_2A_UNPAIREDB1', 'L1_BCM_2C_UNPAIREDB1', 'L1_BCM_2A_UNPAIREDB2', 'L1_BCM_2C_UNPAIREDB2',
49  'L1_BCM_2A_FIRSTINTRAIN', 'L1_BCM_2C_FIRSTINTRAIN',
50  'L1_jJ30_UNPAIREDB1', 'L1_jJ30_UNPAIREDB2',
51  'L1_jJ30_UNPAIRED_ISO', 'L1_jJ30_UNPAIRED_NONISO',
52  'L1_jJ90_UNPAIRED_ISO', 'L1_jJ90_UNPAIRED_NONISO',
53  'L1_jJ30_EMPTY', 'L1_jJ30_FIRSTEMPTY', 'L1_jJ30_BGRP12',
54  ]
55 
56 
57 def getL1StandbySeed(l1items):
58  standby_seeds = [ x for x in l1items if \
59  "_EMPTY" not in x and "CALREQ" not in x and "ZB" not in x and \
60  "-" not in x and "CMU" not in x and "RD" not in x and \
61  "BCM" not in x and "BGRP12" not in x
62  ]
63  return standby_seeds
64 
65 
66 def getL1TopoSeed(l1items):
67  return [ x for x in l1items if "-" in x or "CMU" in x ]
68 
69 
70 def getL1CaloSeed(l1seed, l1object):
71  if ('EMPTY' in l1seed):
72  #l1calo_seeds = ','.join([ x for x in Lvl1ItemByTriggerType(l1object, cl_type, cl_type) \
73  # if (x not in calo_exceptions) ])
74  l1calo_seeds = [ x for x in Lvl1ItemByTriggerType(l1object, cl_type, cl_type) \
75  if ('EMPTY' in x and 'FIRSTEMPTY' not in x) ]
76  else:
77  l1calo_seeds = [ x for x in Lvl1ItemByTriggerType(l1object, cl_type, cl_type) if ("EMPTY" not in x or "FIRSTEMPTY" in x) \
78  and (x not in calo_exceptions) ]
79  return l1calo_seeds
80 
81 
82 def getL1TauSeed(l1items):
83  tau_seeds = [ x for x in l1items if "TAU" in x and "-" not in x and "EMPTY" not in x and "ISO" not in x]
84  return tau_seeds
85 
86 
88  return ['L1_J15','L1_3J15','L1_3J10','L1_4J10']
89 
90 def getL1JetBS():
91  return ['L1_J15','L1_3J15','L1_3J10','L1_4J10']
92 
93 
94 def getL1MuonSeed(l1seed, l1object):
95  if ('EMPTY' in l1seed): # to only get MU*_EMPTY items
96  muon_seeds_list = [ x for x in Lvl1ItemByTriggerType(l1object, rpcout_type, rpcout_type) if ('MU' in x and '_EMPTY' in x ) ]
97  muon_seeds_list = list(set(muon_seeds_list))
98  muon_seeds = muon_seeds_list
99  else: #this one does NOT include the EMPTY items
100  muon_seeds_list = [ x for x in Lvl1ItemByTriggerType(l1object, rpcout_type, rpcout_type) if ('MU' in x and 'FIRSTEMPTY' in x ) ]
101  muon_seeds_list += [ x for x in Lvl1ItemByTriggerType(l1object, rpcin_type, rpcin_type) ]
102  muon_seeds_list = list(set(muon_seeds_list))
103  muon_seeds = muon_seeds_list
104 
105  return muon_seeds
106 
107 
108 def getEBnoL1PSSeed(l1items, l1seedname):
109 
110  ebitem = l1seedname.strip('L1_').rstrip('_noPS')
111  # All of these L1 items must be PS=1 for an EB campaign
112  l1EBitems = {
113  'PhysicsHigh':
114  [
115  'L1_eEM18L_MU8F','L1_eEM26M', 'L1_eEM26T', 'L1_eEM28M','L1_2eEM10L_MU8F', 'L1_2eEM18M',
116  'L1_eEM24L_3eEM12L',
117  'L1_4jJ40', 'L1_jJ160', 'L1_jXE100','L1_gXEJWOJ100', 'L1_2jJ40_jXE110',
118  'L1_eTAU140',
119  'L1_MU8F_cTAU30M', 'L1_MU14FCH', 'L1_MU18VFCH', 'L1_MU10BOM',
120  'L1_5jJ40p0ETA25',
121  'L1_3MU5VF','L1_MU8F_2jJ40_jJ50',
122  'L1_jJ55p0ETA23_2jJ40p30ETA49', 'L1_jJ125p30ETA49', 'L1_jJ80p0ETA25_2jJ55_jJ50p30ETA49',
123  'L1_2MU5VF_3MU3V','L1_MU8VF_2MU5VF',
124  'L1_jMJJ-500-NFF', 'L1_jJ85p0ETA21_3jJ40p0ETA25', 'L1_SC111-CjJ40',
125  'L1_HT190-jJ40s5pETA21', 'L1_TAU20IM_2TAU12IM_4J12p0ETA25',
126  'L1_cTAU30M_2cTAU20M_DR-eTAU30eTAU20-jJ55',
127  ],
128  'PhysicsVeryHigh':
129  [
130  'L1_J400', 'L1_jXE500'
131  ],
132  'EMPTY':
133  [
134  'L1_jJ30_EMPTY', 'L1_MU8VF_EMPTY', 'L1_eTAU12_EMPTY', 'L1_eTAU60_EMPTY', 'L1_eEM9_EMPTY'
135  ],
136  'FIRSTEMPTY':
137  [
138  'L1_jJ30_FIRSTEMPTY', 'L1_eTAU12_FIRSTEMPTY', 'L1_eEM9_FIRSTEMPTY'
139  ],
140  'UNPAIRED_ISO':
141  [
142  'L1_jJ30_UNPAIRED_ISO', 'L1_jJ40p30ETA49_UNPAIRED_ISO',
143  'L1_MU3V_UNPAIRED_ISO', 'L1_eEM9_UNPAIRED_ISO', 'L1_eTAU12_UNPAIRED_ISO', 'L1_eTAU60_UNPAIRED_ISO'
144  ],
145  'UNPAIRED_NONISO':
146  [
147  'L1_jJ30_UNPAIRED_NONISO',
148  ],
149  'ABORTGAPNOTCALIB': [] # No more items defined in this historical bunchgroup
150  }[ebitem]
151 
152  return l1EBitems
153 
154 
156  return [
157  'L1_eEM24L',
158  'L1_2EM10VH',
159  'L1_2MU5VF', 'L1_3MU3V',
160  'L1_eEM18L_MU8F',
161  'L1_2eEM10L_MU8F',
162  'L1_TAU60', 'L1_eTAU30M_2eTAU20M_jJ55_2jJ50_3jJ30',
163  'L1_EM15HI_2TAU12IM_XE35',
164  'L1_MU8F_eTAU20M_jXE70',
165  'L1_MU8F_cTAU20M_jXE70',
166  'L1_TAU20_2TAU12_XE35',
167  'L1_eTAU30M_2eTAU20M_jXE70',
168  'L1_EM15HI_2TAU12IM', 'L1_EM15HI_2TAU12IM_J25_3J12',
169  'L1_EM15HI_TAU40_2TAU15',
170  'L1_MU8F_eTAU20M_jJ55_2jJ30',
171  'L1_MU8F_eTAU20M',
172  'L1_MU8F_cTAU20M',
173  'L1_J75', #'L1_4J15',
174  'L1_XE50', 'L1_3J25p0ETA23',
175  'L1_3J40', 'L1_2jJ40_jXE110',
176  'L1_MU5VF_jJ80', 'L1_J75p31ETA49'
177  ]
178 
179 
181 
182  return [
183  'L1_JPSI-1M5-eEM9', 'L1_JPSI-1M5-eEM15',
184  'L1_BPH-0M9-eEM9-eEM7_MU5VF', # legacy 'L1_BPH-0M9-EM7-EM5_MU5VF'
185  'L1_eEM24L_3eEM12L',
186  'L1_eEM22M_jMJJ-300', # legacy 'L1_EM18VHI_MJJ-300'
187  'L1_eEM18L_MU8F',
188  'L1_BPH-0M9-eEM9-eEM7_2MU3V', # legacy 'L1_BPH-0M9-EM7-EM5_2MU3V'
189  'L1_MU14FCH',
190  'L1_MU8F_2MU5VF',
191  'L1_MU8F_eTAU30M', # legacy 'L1_MU8F_TAU20IM'
192  'L1_MU8F_cTAU30M',
193  'L1_MU8F_eTAU20M_3jJ30', # legacy 'L1_MU8F_TAU12IM_3J12'
194  'L1_MU8F_cTAU20M_3jJ30',
195  'L1_jXE100', # legacy 'L1_XE50',
196  #'L1_eTAU60_2cTAU20M_jXE80', # legacy 'L1_TAU40_2TAU12IM_XE40', TriggerMenuMT:L1Seeds ERROR L1 item L1_eTAU60_2cTAU20M_jXE80 from L1_BKeePrimary seeds is not in current L1 menu
197  'L1_eEM18M_2cTAU20M_jXE70', # legacy 'L1_EM15VHI_2TAU12IM_XE35'
198  'L1_cTAU35M_2cTAU30M_2jJ55_3jJ50', # legacy 'L1_TAU25IM_2TAU20IM_2J25_3J20'
199  'L1_cTAU30M_2cTAU20M_4jJ30p0ETA25', # legacy 'L1_TAU20IM_2TAU12IM_4J12p0ETA25'
200  'L1_eEM18M_2cTAU20M_4jJ30', # legacy 'L1_EM15VHI_2TAU12IM_4J12'
201  'L1_jMJJ-700', # legacy 'L1_MJJ-700'
202  'L1_jMJJ-500-NFF', # legacy 'L1_MJJ-500-NFF'
203  'L1_jJ140_3jJ60', # legacy 'L1_J85_3J30',
204  'L1_jJ80p0ETA25_2jJ55_jJ50p30ETA49', # legacy 'L1_J40p0ETA25_2J25_J20p31ETA49'
205  'L1_jJ55p0ETA23_2jJ40p30ETA49', # legacy 'L1_J25p0ETA23_2J15p31ETA49'
206  'L1_jJ160', # legacy 'L1_J100'
207  'L1_4jJ40', # legacy 'L1_4J15'
208  'L1_3jJ70p0ETA23', # legacy 'L1_3J35p0ETA23'
209  # legacy 'L1_3J15p0ETA25_XE40',
210  'L1_2eEM24L',
211  'L1_eEM18','L1_2eEM18', 'L1_2eEM18M', 'L1_2eEM18L',
212  'L1_eEM26M', 'L1_eEM26L',
213  'L1_eEM28M',
214  'L1_2eEM10L_MU8F',
215  'L1_MU18VFCH',
216  'L1_eTAU80_2eTAU60',
217  'L1_cTAU30M_2cTAU20M_DR-eTAU30eTAU20-jJ55'
218  ]
219 
220 
223 
224  return [
225  'L1_JPSI-1M5-eEM9', 'L1_JPSI-1M5-eEM15',
226  'L1_BPH-0M9-eEM9-eEM7_MU5VF',
227  'L1_eEM24L_3eEM12L',
228  'L1_EM18VHI_MJJ-300',
229  'L1_eEM18L_MU8F',
230  'L1_BPH-0M9-EM7-EM5_2MU3V',
231  'L1_MU14FCH',
232  'L1_MU8F_2MU5VF',
233  'L1_MU8F_TAU20IM',
234  'L1_MU8F_TAU12IM_3J12',
235  'L1_XE50',
236  'L1_TAU60_2TAU40',
237  'L1_TAU40_2TAU12IM_XE40',
238  'L1_EM15VHI_2TAU12IM_XE35',
239  'L1_TAU25IM_2TAU20IM_2J25_3J20',
240  'L1_TAU20IM_2TAU12IM_4J12p0ETA25',
241  'L1_EM15VHI_2TAU12IM_4J12',
242  'L1_DR-TAU20ITAU12I-J25',
243  'L1_MJJ-700',
244  'L1_MJJ-500-NFF',
245  'L1_J85_3J30',
246  'L1_J40p0ETA25_2J25_J20p31ETA49',
247  'L1_J25p0ETA23_2J15p31ETA49',
248  'L1_J100',
249  #'L1_4J15',
250  'L1_3J35p0ETA23',
251  'L1_3J15p0ETA25_XE40',
252  'L1_2eEM24L',
253  'L1_eEM18','L1_2eEM18', 'L1_2eEM18M', 'L1_2eEM18L',
254  'L1_eEM26M', 'L1_eEM26L',
255  'L1_eEM28M',
256  'L1_eEM24L_3eEM12L',
257  'L1_eEM22M_jMJJ-300',
258  'L1_eEM18L_MU8F',
259  'L1_2eEM10L_MU8F',
260  'L1_BPH-0M9-eEM9-eEM7_2MU3V',
261  'L1_MU18VFCH',
262  'L1_eTAU80_2eTAU60',
263  'L1_jJ160'
264  ]
265 
266 
268 
269  return [
270  'L1_LFV-MU5VF',
271  'L1_BPH-2M9-0DR15-MU5VFMU3V',
272  'L1_BPH-2M9-0DR15-2MU3V',
273  'L1_BPH-2M9-0DR15-2MU3V',
274  'L1_BPH-0M9-eEM9-eEM7_MU5VF', # legacy 'L1_BPH-0M9-EM7-EM5_MU5VF',
275  'L1_BPH-0DR3-eEM9jJ40_MU5VF', # legacy 'L1_BPH-0DR3-EM7J15_MU5VF'
276  'L1_BPH-0DR3-eEM9jJ40_2MU3V', # legacy 'L1_BPH-0DR3-EM7J15_2MU3V'
277  'L1_JPSI-1M5-eEM9', # legacy 'L1_JPSI-1M5-EM7'
278  'L1_JPSI-1M5-eEM15', # legacy 'L1_JPSI-1M5-EM12'
279  'L1_jJ90', # legacy 'L1_J50'
280  'L1_jJ90_DETA20-jJ90J', # legacy 'L1_J50_DETA20-J50J'
281  'L1_jJ80', # legacy 'L1_J40'
282  # 'L1_3J25p0ETA23', # exist in menu, but currently not used at HLT. We may drop as CTP output
283  # 'L1_EM20VH_3J20', # exist in menu, but currently not used at HLT. We may drop as CTP output
284  # 'L1_EM18VHI_3J20', # exist in menu, but currently not used at HLT. We may drop as CTP output
285  'L1_eEM22M_3jJ50', # legacy L1_EM18VHI_3J20
286  'L1_eEM24L_3jJ50', # legacy L1_EM20VH_3J20
287  'L1_eTAU80',
288  'L1_eEM26L',
289  'L1_eEM18',
290  'L1_2eEM18L'
291  ]
292 
293 
296 
297  return [
298  'L1_LFV-MU5VF',
299  'L1_BPH-2M9-0DR15-MU5VFMU3V',
300  'L1_BPH-2M9-0DR15-2MU3V',
301  'L1_BPH-2M9-0DR15-2MU3V',
302  'L1_BPH-0M9-EM7-EM5_MU5VF',
303  'L1_BPH-0DR3-EM7J15_MU5VF',
304  'L1_BPH-0DR3-EM7J15_2MU3V',
305  'L1_JPSI-1M5-EM7',
306  'L1_JPSI-1M5-EM12',
307  'L1_TAU60',
308  'L1_J50',
309  'L1_J50_DETA20-J50J',
310  'L1_J40',
311  'L1_3J25p0ETA23', # exist in menu, but currently not used at HLT. We may drop as CTP output
312  'L1_EM20VH_3J20', # exist in menu, but currently not used at HLT. We may drop as CTP output
313  'L1_EM18VHI_3J20', # exist in menu, but currently not used at HLT. We may drop as CTP output
314  'L1_eTAU80',
315  'L1_eEM26L',
316  'L1_eEM18',
317  'L1_2eEM18L'
318  ]
319 
320 
323 
324 L1_multiseed_simple_getters = {
325  'L1_J': getL1JetBS,
326  'L1_Bkg': getL1BackgroundSeed,
327  'L1_BS': getL1BSSeed,
328  'L1_LowLumi': getL1LowLumi,
329  'L1_BKeePrimary': getL1BKeePrimary,
330  'L1_BKeePrimaryLegacy': getL1BKeePrimaryLegacy,
331  'L1_BKeePrescaled': getL1BKeePrescaled,
332  'L1_BKeePrescaledLegacy': getL1BKeePrescaledLegacy,
333 }
334 
335 valid_multiseeds = [
336  'L1_All',
337  # EnhancedBias
338  'L1_PhysicsHigh_noPS', 'L1_PhysicsVeryHigh_noPS',
339  'L1_EMPTY_noPS', 'L1_FIRSTEMPTY_noPS',
340  'L1_UNPAIRED_ISO_noPS', 'L1_UNPAIRED_NONISO_noPS', 'L1_UNPAIREDB1_noPS', 'L1_UNPAIREB2_noPS', 'L1_ABORTGAPNOTCALIB_noPS',
341  # Trigger types
342  'L1_Calo', 'L1_Calo_EMPTY',
343  'L1_Muon', 'L1_Muon_EMPTY',
344  # Other groups defined by matching
345  'L1_Standby', 'L1_Topo', 'L1_TAU'
346 ] + list(L1_multiseed_simple_getters.keys())
347 
348 def getSpecificL1Seeds(l1seedname, l1itemobject, menu_name):
349  l1items = l1itemobject.keys()
350  L1Seed = ''
351 
352  if l1seedname == '':
353  log.error('No L1item name given!')
354  raise RuntimeError('No name provided to multiseed getter')
355 
356  if l1seedname in L1_multiseed_simple_getters:
357  L1Seed = L1_multiseed_simple_getters[l1seedname]()
358  elif l1seedname == 'L1_Standby':
359  L1Seed = getL1StandbySeed(l1items)
360  elif l1seedname == 'L1_Topo':
361  L1Seed = getL1TopoSeed(l1items)
362  elif l1seedname == 'L1_TAU':
363  L1Seed = getL1TauSeed(l1items)
364  elif (l1seedname in ['L1_PhysicsHigh_noPS', 'L1_PhysicsVeryHigh_noPS', 'L1_EMPTY_noPS', 'L1_FIRSTEMPTY_noPS', 'L1_UNPAIRED_ISO_noPS', 'L1_UNPAIRED_NONISO_noPS', 'L1_UNPAIREDB1_noPS', 'L1_UNPAIREB2_noPS', 'L1_ABORTGAPNOTCALIB_noPS']):
365  L1Seed = getEBnoL1PSSeed(l1items, l1seedname)
366  elif (l1seedname in ['L1_Calo', 'L1_Calo_EMPTY']):
367  L1Seed = getL1CaloSeed(l1seedname, l1itemobject)
368  elif (l1seedname in ['L1_Muon', 'L1_Muon_EMPTY']):
369  L1Seed = getL1MuonSeed(l1seedname, l1itemobject)
370  elif (l1seedname == 'L1_All'):
371  return []
372  else:
373  log.error('Given seed %s could not be found!', l1seedname)
374  raise RuntimeError(f'Failed to retrieve L1 item list for {l1seedname}')
375 
376  # check if all the l1 background seeds given are in the current L1 menu
377  for item in L1Seed:
378  if item not in l1items:
379  log.error('L1 item %s from %s seeds is not in current L1 menu', item, l1seedname)
380 
381  L1Seed.sort()
382  L1Seed = ",".join(L1Seed)
383 
384  return L1Seed
385 
386 
389 def getInputTEfromL1Item(l1item, menu_name):
390 
391  L1Map = {
392  'L1_TAU8_EMPTY' : ['HA8'],
393  'L1_TAU8_FIRSTEMPTY' : ['HA8'],
394  'L1_TAU8_UNPAIRED_ISO' : ['HA8'],
395  'L1_TAU8_UNPAIRED_NONISO': ['HA8'],
396  'L1_TAU12_EMPTY' : ['HA12'],
397  'L1_TAU12_FIRSTEMPTY' : ['HA12'],
398  'L1_TAU12_UNPAIRED_ISO' : ['HA12'],
399  'L1_RD0_FIRSTEMPTY' : [''],
400  'L1_TAU30' : ['HA30'],
401  'L1_TAU30_EMPTY' : ['HA30'],
402  'L1_TAU30_UNPAIRED_ISO' : ['HA30'],
403  'L1_TAU40' : ['HA40'],
404  'L1_TAU60' : ['HA60'],
405  'L1_TAU100' : ['HA100'],
406  }
407 
408  L1Map['L1_CALREQ2']=['CAL2']
409 
410  if l1item in L1Map:
411  TE = L1Map[l1item]
412  log.debug('Mapped L1 input TE from %s to %s.', l1item, TE)
413  return TE
414  else:
415  TE = l1item.replace("L1_","").split("_")[0]
416  TE = TE[1:] if TE[0].isdigit() else TE
417  return TE
418 
python.HLT.Menu.L1Seeds.Lvl1ItemByTriggerType
def Lvl1ItemByTriggerType(l1object, triggertype_pattern, triggertype_bitmask)
obtain the l1 items according to the the trigger type function taken originally from TriggerPythonCon...
Definition: L1Seeds.py:22
python.HLT.Menu.L1Seeds.getEBnoL1PSSeed
def getEBnoL1PSSeed(l1items, l1seedname)
Definition: L1Seeds.py:108
python.HLT.Menu.L1Seeds.getL1BKeePrescaled
def getL1BKeePrescaled()
Definition: L1Seeds.py:267
python.HLT.Menu.L1Seeds.getL1CaloSeed
def getL1CaloSeed(l1seed, l1object)
Definition: L1Seeds.py:70
python.HLT.Menu.L1Seeds.getL1StandbySeed
def getL1StandbySeed(l1items)
Definition: L1Seeds.py:57
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.HLT.Menu.L1Seeds.getL1TopoSeed
def getL1TopoSeed(l1items)
Definition: L1Seeds.py:66
python.HLT.Menu.L1Seeds.getL1JetBS
def getL1JetBS()
Definition: L1Seeds.py:90
python.HLT.Menu.L1Seeds.getL1MuonSeed
def getL1MuonSeed(l1seed, l1object)
Definition: L1Seeds.py:94
python.HLT.Menu.L1Seeds.getL1BKeePrimary
def getL1BKeePrimary()
Definition: L1Seeds.py:180
python.HLT.Menu.L1Seeds.getL1LowLumi
def getL1LowLumi()
Definition: L1Seeds.py:155
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
python.HLT.Menu.L1Seeds.getInputTEfromL1Item
def getInputTEfromL1Item(l1item, menu_name)
map from l1item name to inputTE
Definition: L1Seeds.py:389
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:224
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.HLT.Menu.L1Seeds.getL1BackgroundSeed
def getL1BackgroundSeed()
define the various seeds
Definition: L1Seeds.py:42
python.HLT.Menu.L1Seeds.getSpecificL1Seeds
def getSpecificL1Seeds(l1seedname, l1itemobject, menu_name)
Definition: L1Seeds.py:348
python.HLT.Menu.L1Seeds.getL1TauSeed
def getL1TauSeed(l1items)
Definition: L1Seeds.py:82
python.HLT.Menu.L1Seeds.getL1BSSeed
def getL1BSSeed()
Definition: L1Seeds.py:87
python.HLT.Menu.L1Seeds.getL1BKeePrimaryLegacy
def getL1BKeePrimaryLegacy()
DO NOT EDIT IT: this function is to save L1_BKeePrimary seeds for data23, Athena,23....
Definition: L1Seeds.py:222
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
python.HLT.Menu.L1Seeds.getL1BKeePrescaledLegacy
def getL1BKeePrescaledLegacy()
DO NOT EDIT IT: this function is to save L1_BKeePrescaled seeds for data23 with Athena,...
Definition: L1Seeds.py:295