ATLAS Offline Software
TrigConfigSvcCfg.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from typing import Any, cast
4 from AthenaCommon.Logging import logging
5 from AthenaConfiguration.ComponentFactory import CompFactory
6 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
7 from AthenaConfiguration.AccumulatorCache import AccumulatorCache
8 from TrigConfStorage.TriggerCrestUtil import TriggerCrestUtil
9 
10 from functools import cache
11 import json
12 
13 log = logging.getLogger('TrigConfigSvcCfg')
14 
15 # To avoid accidental overrwrite of the L1 JSON menu, only allow one L1 menu generation.
16 # Either via JSON conversion from Run-1&2 or native Run-3 (see ATR-24531).
18  try:
19  return l1menu_generated._hasRun # type: ignore
20  except AttributeError:
21  l1menu_generated._hasRun = True # type: ignore
22  return False
23 
24 
25 def getTrigConfFromConditions(runNumber, lumiBlock, flags) -> dict[str, int | str]:
26  if flags.Trigger.useCrest:
27  return getTrigConfFromCrest(runNumber, lumiBlock, flags.Trigger.crestServer)
28  else:
29  return getTrigConfFromCool(runNumber, lumiBlock)
30 
31 @cache
32 def getTrigConfFromCrest(runNumber, lumiBlock, crestServer) -> dict[str, int | str]:
33  trigConf = TriggerCrestUtil.getTrigConfKeys(runNumber, lumiBlock, server=crestServer)
34  log.info("Extracted the following info for run %d and lumi block %d from CREST: %r",
35  runNumber, lumiBlock, trigConf)
36  for key, value in trigConf.items():
37  if value is None:
38  msg: str = f"Did not find {key} for run {runNumber} and lumi block {lumiBlock}"
39  log.error(msg)
40  raise RuntimeError(msg)
41  return trigConf
42 
43 @cache
44 def getTrigConfFromCool(runNumber, lumiBlock) -> dict[str, int | str]:
45  from TrigConfStorage.TriggerCoolUtil import TriggerCoolUtil
46  trigConf = TriggerCoolUtil.getTrigConfKeys(runNumber, lumiBlock)
47  log.info("Extracted the following info for run %d and lumi block %d from COOL: %r",
48  runNumber, lumiBlock, trigConf)
49  for key, value in trigConf.items():
50  if value is None:
51  msg: str = f"Did not find {key} for run {runNumber} and lumi block {lumiBlock}"
52  log.error(msg)
53  raise RuntimeError(msg)
54  return trigConf
55 
56 def createJsonMenuFiles(run, lb, flags):
57  crestServer: str | None = flags.Trigger.crestServer if flags.Trigger.useCrest else None
58  return _createJsonMenuFiles(run, lb, crestServer)
59 
60 @cache
61 def _createJsonMenuFiles(run, lb, crestServer: str | None = None) -> dict[str, int | str]:
62  """Retrieve Run-2 trigger configuration from the DB and save as Run3 .JSON files
63  returns the trigger DB keys used, or None if the L1 menu has already been generated
64  """
65  import subprocess
66 
67  if l1menu_generated():
68  log.error("L1 menu has already been generated")
69  return None # type: ignore
70 
71  log.info("Configuring Run-1&2 to Run-3 configuration metadata conversion")
72  if crestServer is not None:
73  triggerDBKeys = getTrigConfFromCrest(run, lb, crestServer)
74  else:
75  triggerDBKeys = getTrigConfFromCool(run, lb)
76  triggerDBKeys['DB'] = 'TRIGGERDB' if run > 230000 else 'TRIGGERDB_RUN1'
77 
78  cmd = "TrigConfReadWrite -i {DB} {SMK},{LVL1PSK},{HLTPSK},{BGSK} -o r3json > Run3ConfigFetchJSONFiles.log".format(**triggerDBKeys)
79  log.info("Running command '%s'", cmd)
80  filesFetchStatus = subprocess.run(cmd, shell=True)
81  assert filesFetchStatus.returncode == 0, "TrigConfReadWrite failed to fetch JSON files"
82  return triggerDBKeys
83 
84 
85 # This interprets the Trigger.triggerConfig flag according to
86 # https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerConfigFlag#triggerConfig_in_Run_3
87 def getTrigConfigFromFlag( flags ):
88  flags.dump("Input", evaluate=True)
89  # run and lb are only needed if source is DB
90  run: int = flags.Input.RunNumbers[0] if flags.Input.RunNumbers else -1
91  lb: int = flags.Input.LumiBlockNumbers[0] if flags.Input.LumiBlockNumbers else 0
92  return _getTrigConfigFromFlag(triggerConfig=flags.Trigger.triggerConfig, run=run, lb=lb,
93  useCrest=flags.Trigger.useCrest, crestServer=flags.Trigger.crestServer)
94 
95 @cache
96 def _getTrigConfigFromFlag(*, triggerConfig, run, lb, useCrest, crestServer) -> dict[str, Any]:
97  log.info("Parsing trigger configuration from flag Trigger.triggerConfig='%s' for run=%d and lb=%d",
98  triggerConfig, run, lb)
99  log.info("Crest usage flags are: Trigger.useCrest=%s, Trigger.crestServer=%s", useCrest, crestServer)
100  # Pad the triggerConfig value and extract available fields:
101  dbconn: str
102  source, dbconn, keys = (triggerConfig+":::").split(":")[:3]
103  smk,l1psk,hltpsk,bgsk = (keys+",,,").split(",")[:4]
104  # Convert to int or None:
105  smk, l1psk, hltpsk, bgsk = (int(k) if k!="" else None for k in (smk, l1psk, hltpsk, bgsk))
106  source: str = source.upper()
107 
108  if source == "DB":
109  if run < 0:
110  msg: str = "Run number is required to extract trigger conditions"
111  log.error(msg)
112  raise RuntimeError(msg)
113  # If any of the keys or DB connection is missing, retrieve from conditions:
114  if useCrest:
115  trigConf: dict[str, int | str] = getTrigConfFromCrest(run, lb, crestServer)
116  else:
117  trigConf: dict[str, int | str] = getTrigConfFromCool(run, lb)
118  if dbconn == "":
119  dbconn = cast(str, trigConf["DB"])
120 
121  if dbconn in ["TRIGGERDB_RUN3", "TRIGGERDBDEV1_I8", "TRIGGERDBDEV1", "TRIGGERDBDEV2"]:
122  if smk is None:
123  smk = trigConf["SMK"]
124  if l1psk is None:
125  l1psk = trigConf['LVL1PSK']
126  if hltpsk is None:
127  hltpsk = trigConf['HLTPSK']
128  if bgsk is None:
129  bgsk = trigConf['BGSK']
130 
131  if useCrest:
132  # need to modify the DB connection alias (e.g. TRIGGERDB_RUN3) to the corresponding CREST server URL
133  crestConn = TriggerCrestUtil.getCrestConnection(dbconn)
134  if crestConn is None:
135  msg: str = f"Could not find CREST triggerdb connection from DB connection alias '{dbconn}'"
136  log.error(msg)
137  raise RuntimeError(msg)
138  dbconn = f"{crestServer}/{crestConn}"
139 
140  tcdict = {
141  "SOURCE" : source, # DB, FILE, COOL
142  "DBCONN" : dbconn, # db connection (if origin==DB or COOL) or "JOSVC" if connection is to be taken from TrigConf::IJobOptionsSvc
143  "SMK" : smk,
144  "LVL1PSK": l1psk,
145  "HLTPSK" : hltpsk,
146  "BGSK" : bgsk
147  }
148  return tcdict
149 
150 
152  return "/TRIGGER/LVL1/Lvl1ConfigKey <tag>HEAD</tag>"
153 
154 
156  return "/TRIGGER/HLT/PrescaleKey <tag>HEAD</tag>"
157 
158 
159 def _doMenuConversion(flags):
160  """Do JSON menu conversion for Run-1&2 data"""
161  return flags.Input.Files and flags.Trigger.EDMVersion in [1, 2] and not flags.Input.isMC
162 
163 
164 def _getMenuFileName(flags):
165  """Return base name for menu files"""
166  if not _doMenuConversion(flags): # menu created in this release
167  from PyUtils.Helpers import release_metadata
168  return '_'+flags.Trigger.triggerMenuSetup+'_'+release_metadata()['release']
169  else: # menu files created via JSON conversion
170  return ''
171 
172 # L1 Json file name
173 def getL1MenuFileName(flags):
174  return 'L1Menu'+_getMenuFileName(flags)+'.json'
175 
176 # HLT Json file name
177 def getHLTMenuFileName( flags ):
178  return 'HLTMenu'+_getMenuFileName(flags)+'.json'
179 
180 # HLT Monitoring set json file name
182  return 'HLTMonitoring'+_getMenuFileName(flags)+'.json'
183 
184 # L1 Prescales set json file name
186  return 'L1PrescalesSet'+_getMenuFileName(flags)+'.json'
187 
188 # HLT Prescales set json file name
190  return 'HLTPrescalesSet'+_getMenuFileName(flags)+'.json'
191 
192 # L1 Bunchgroups set json file name
194  return 'BunchGroupSet'+_getMenuFileName(flags)+'.json'
195 
196 # HLT Job options json file name
198  return 'HLTJobOptions.json'
199 
200 # Creates an L1 Prescale file from the menu
201 def createL1PrescalesFileFromMenu(flags, prescales: dict[str, float] | None = None):
202  from TriggerMenuMT.L1.Base.PrescaleHelper import getCutFromPrescale
203 
204  menuFN = getL1MenuFileName(flags)
205  with open(menuFN,'r') as fh:
206  data = json.load(fh)
207  pso = { 'filetype': 'l1prescale',
208  'name': data['name'],
209  'cutValues': {} }
210  ps = pso['cutValues']
211  for name in sorted(data['items'].keys()):
212  ps = prescales[name] if prescales and name in prescales else 1
213  pso['cutValues'][name] = {
214  'cut': getCutFromPrescale(ps),
215  'enabled': ps > 0,
216  'info': f'prescale: {ps}'
217  }
218 
219  psFN = getL1PrescalesSetFileName( flags )
220  with open(psFN, 'w') as outfile:
221  json.dump(pso, outfile, indent = 4)
222  log.info("Generated default L1 prescale set %s", outfile.name)
223 
224 # L1 menu generation
225 def generateL1Menu( flags ):
226  if l1menu_generated():
227  log.error("L1 menu has already been generated")
228  return
229 
230  log.info("Generating L1 menu %s", flags.Trigger.triggerMenuSetup)
231  from TriggerMenuMT.L1.L1MenuConfig import L1MenuConfig
232  l1cfg = L1MenuConfig(flags)
233  l1cfg.writeJSON(outputFile = getL1MenuFileName(flags),
234  bgsOutputFile = getBunchGroupSetFileName(flags))
235 
236 
237 # provide L1 config service in new JO
238 @AccumulatorCache
239 def L1ConfigSvcCfg( flags ):
240  log.info( "Setting up LVL1ConfigSvc" )
241  acc = ComponentAccumulator()
242 
243  cfg = getTrigConfigFromFlag( flags )
244 
245  # configure config svc
246  l1ConfigSvc = CompFactory.getComp("TrigConf::LVL1ConfigSvc")("LVL1ConfigSvc") # type: ignore
247 
248  if cfg["SOURCE"] == "FILE":
249  if _doMenuConversion(flags):
250  # Save the menu in JSON format
251  dbKeys = createJsonMenuFiles(run = flags.Input.RunNumbers[0],
252  lb = flags.Input.LumiBlockNumbers[0], flags=flags)
253  l1ConfigSvc.SMK = dbKeys['SMK']
254 
255  l1ConfigSvc.InputType = "FILE"
256  l1ConfigSvc.L1JsonFileName = getL1MenuFileName(flags)
257  l1ConfigSvc.HLTJsonFileName = getHLTMenuFileName(flags)
258  log.info( "Configured LVL1ConfigSvc with InputType='FILE', L1JsonFileName=%s (and HLT, used to compute SMK:%s) ", l1ConfigSvc.L1JsonFileName, l1ConfigSvc.HLTJsonFileName )
259  elif cfg["SOURCE"] == "DB":
260  l1ConfigSvc.InputType = "DB"
261  l1ConfigSvc.L1JsonFileName = ""
262  l1ConfigSvc.HLTJsonFileName = ""
263  l1ConfigSvc.TriggerDB = cfg["DBCONN"]
264  l1ConfigSvc.SMK = cfg["SMK"]
265  log.info( "Configured LVL1ConfigSvc with InputType='DB', TriggerDB='%s' and SMK %d", l1ConfigSvc.TriggerDB, cfg['SMK'] )
266 
267  acc.addService( l1ConfigSvc, create=True )
268  return acc
269 
270 # provide HLT config service in new JO
271 @AccumulatorCache
272 def HLTConfigSvcCfg( flags ):
273  log.info( "Setting up HLTConfigSvc" )
274  acc = ComponentAccumulator()
275  cfg = getTrigConfigFromFlag( flags )
276 
277  hltConfigSvc = CompFactory.getComp("TrigConf::HLTConfigSvc")("HLTConfigSvc") # type: ignore
278 
279  if cfg["SOURCE"] == "FILE":
280  if _doMenuConversion(flags):
281  # Save the menu in JSON format
282  dbKeys = createJsonMenuFiles(run = flags.Input.RunNumbers[0],
283  lb = flags.Input.LumiBlockNumbers[0], flags=flags)
284  hltConfigSvc.SMK = dbKeys['SMK']
285 
286  hltConfigSvc.InputType = "FILE"
287  hltConfigSvc.L1JsonFileName = getL1MenuFileName( flags )
288  hltConfigSvc.HLTJsonFileName = getHLTMenuFileName( flags )
289  hltConfigSvc.MonitoringJsonFileName = getHLTMonitoringFileName( flags )
290  log.info("Configured HLTConfigSvc with InputType='FILE', HLTJsonFileName=%s and MonitoringJsonFileName=%s (and L1, used to compute MC-SMK:%s)",
291  hltConfigSvc.HLTJsonFileName, hltConfigSvc.MonitoringJsonFileName, hltConfigSvc.L1JsonFileName)
292  elif cfg["SOURCE"] == "DB":
293  hltConfigSvc.InputType = "DB"
294  hltConfigSvc.L1JsonFileName = ""
295  hltConfigSvc.HLTJsonFileName = ""
296  hltConfigSvc.MonitoringJsonFileName = ""
297  hltConfigSvc.TriggerDB = cfg["DBCONN"]
298  hltConfigSvc.SMK = cfg["SMK"]
299  log.info("Configured HLTConfigSvc with InputType='DB', TriggerDB='%s' and SMK %d", hltConfigSvc.TriggerDB, cfg['SMK'])
300  acc.addService( hltConfigSvc, create=True )
301  return acc
302 
303 # provide both services in new JO
304 def TrigConfigSvcCfg( flags ):
305  acc = ComponentAccumulator()
306  acc.merge( BunchGroupCondAlgCfg( flags ) )
307  acc.merge( L1ConfigSvcCfg( flags ) )
308  acc.merge( HLTConfigSvcCfg( flags ) )
309  acc.merge( L1PrescaleCondAlgCfg( flags ) )
310  acc.merge( HLTPrescaleCondAlgCfg( flags ) )
311  return acc
312 
313 @AccumulatorCache
314 def L1PrescaleCondAlgCfg( flags ):
315  log.info("Setting up L1PrescaleCondAlg")
316  acc = ComponentAccumulator()
317  TrigConf__L1PrescaleCondAlg = CompFactory.getComp("TrigConf::L1PrescaleCondAlg")
318  l1PrescaleCondAlg = TrigConf__L1PrescaleCondAlg("L1PrescaleCondAlg") # type: ignore
319 
320  tc = getTrigConfigFromFlag( flags )
321  l1PrescaleCondAlg.Source = tc["SOURCE"]
322  if flags.Common.isOnline:
323  from IOVDbSvc.IOVDbSvcConfig import addFolders
324  acc.merge(addFolders(flags, getL1PrescaleFolderName(), "TRIGGER_ONL", className="AthenaAttributeList"))
325  log.info("Adding folder %s to CompAcc", getL1PrescaleFolderName() )
326  if tc["SOURCE"] == "COOL":
327  l1PrescaleCondAlg.TriggerDB = tc["DBCONN"]
328  elif tc["SOURCE"] == "DB":
329  l1PrescaleCondAlg.TriggerDB = tc["DBCONN"]
330  l1PrescaleCondAlg.L1Psk = tc["LVL1PSK"]
331  log.info("Configured L1PrescaleCondAlg with InputType='DB', TriggerDB='%s' and L1Psk %d",
332  l1PrescaleCondAlg.TriggerDB, l1PrescaleCondAlg.L1Psk)
333  elif tc["SOURCE"] == "FILE":
334  l1PrescaleCondAlg.Filename = getL1PrescalesSetFileName( flags )
335  if _doMenuConversion(flags):
336  # Save the menu in JSON format
337  dbKeys = createJsonMenuFiles(run = flags.Input.RunNumbers[0],
338  lb = flags.Input.LumiBlockNumbers[0], flags=flags)
339  l1PrescaleCondAlg.L1Psk = dbKeys['LVL1PSK']
340  else:
341  raise RuntimeError("trigger configuration flag 'trigConfig' starts with %s, which is not understood" % tc["SOURCE"])
342  acc.addCondAlgo(l1PrescaleCondAlg)
343  return acc
344 
345 @AccumulatorCache
346 def BunchGroupCondAlgCfg( flags ):
347  log.info("Setting up BunchGroupCondAlg")
348  acc = ComponentAccumulator()
349  TrigConf__BunchGroupCondAlg = CompFactory.getComp("TrigConf::BunchGroupCondAlg")
350  bunchGroupCondAlg = TrigConf__BunchGroupCondAlg("TrigConf__BunchGroupCondAlg") # type: ignore
351 
352  tc = getTrigConfigFromFlag( flags )
353  bunchGroupCondAlg.Source = tc["SOURCE"]
354  if tc["SOURCE"] == "COOL":
355  bunchGroupCondAlg.TriggerDB = tc["DBCONN"]
356  elif tc["SOURCE"] == "DB":
357  bunchGroupCondAlg.TriggerDB = tc["DBCONN"]
358  bunchGroupCondAlg.BGSK = tc["BGSK"]
359  log.info("Configured BunchGroupCondAlg with InputType='DB', TriggerDB='%s' and BGSK %d",
360  bunchGroupCondAlg.TriggerDB, bunchGroupCondAlg.BGSK)
361  elif tc["SOURCE"] == "FILE":
362  bunchGroupCondAlg.Filename = getBunchGroupSetFileName( flags )
363  if _doMenuConversion(flags):
364  # Save the menu in JSON format
365  dbKeys = createJsonMenuFiles(run = flags.Input.RunNumbers[0],
366  lb = flags.Input.LumiBlockNumbers[0], flags=flags)
367  bunchGroupCondAlg.BGSK = dbKeys['BGSK']
368  else:
369  raise RuntimeError("trigger configuration flag 'trigConfig' starts with %s, which is not understood" % tc["SOURCE"])
370  acc.addCondAlgo(bunchGroupCondAlg)
371  return acc
372 
373 @AccumulatorCache
375  log.info("Setting up HLTPrescaleCondAlg")
376  acc = ComponentAccumulator()
377  hltPrescaleCondAlg = CompFactory.getComp("TrigConf::HLTPrescaleCondAlg")("HLTPrescaleCondAlg") # type: ignore
378 
379  tc = getTrigConfigFromFlag( flags )
380  hltPrescaleCondAlg.Source = tc["SOURCE"]
381  if flags.Common.isOnline or tc["SOURCE"]=="COOL":
382  from IOVDbSvc.IOVDbSvcConfig import addFolders
383  acc.merge(addFolders(flags, getHLTPrescaleFolderName(), "TRIGGER_ONL",
384  className = "AthenaAttributeList",
385  extensible = flags.Trigger.Online.isPartition))
386  log.info("Adding folder %s to CompAcc", getHLTPrescaleFolderName() )
387  if tc["SOURCE"] == "COOL":
388  hltPrescaleCondAlg.TriggerDB = tc["DBCONN"]
389  elif tc["SOURCE"] == "DB":
390  hltPrescaleCondAlg.TriggerDB = tc["DBCONN"]
391  hltPrescaleCondAlg.HLTPsk = tc["HLTPSK"]
392  log.info("Configured HLTPrescaleCondAlg with InputType='DB', TriggerDB='%s' and HLTPsk %d",
393  hltPrescaleCondAlg.TriggerDB, hltPrescaleCondAlg.HLTPsk)
394  elif tc["SOURCE"] == "FILE":
395  hltPrescaleCondAlg.Filename = getHLTPrescalesSetFileName( flags )
396  if _doMenuConversion(flags):
397  # Save the menu in JSON format
398  dbKeys = createJsonMenuFiles(run = flags.Input.RunNumbers[0],
399  lb = flags.Input.LumiBlockNumbers[0], flags=flags)
400  hltPrescaleCondAlg.HLTPsk = dbKeys['HLTPSK']
401  else:
402  raise RuntimeError("trigger configuration flag 'trigConfig' starts with %s, which is not understood" % tc["SOURCE"])
403  acc.addCondAlgo(hltPrescaleCondAlg)
404  return acc
405 
406 
407 if __name__ == "__main__":
408  import unittest
409 
410  class Tests(unittest.TestCase):
411 
412  def setUp(self):
413  # Allow multiple L1 menu generations for these tests
414  l1menu_generated._hasRun = False # type: ignore
415 
416  def test_currentMenu(self):
417  from AthenaConfiguration.AllConfigFlags import initConfigFlags
418  flags = initConfigFlags()
419  flags.Trigger.EDMVersion = 3
420  from AthenaConfiguration.TestDefaults import defaultTestFiles
421  flags.Input.Files = defaultTestFiles.RAW_RUN2
422  flags.lock()
423  TrigConfigSvcCfg( flags )
424 
425  def test_legacyMenu(self):
426  from AthenaConfiguration.AllConfigFlags import initConfigFlags
427  flags = initConfigFlags()
428  from AthenaConfiguration.TestDefaults import defaultTestFiles
429  flags.Input.Files = defaultTestFiles.RAW_RUN2
430  flags.lock()
431  TrigConfigSvcCfg( flags )
432 
434  keys = _createJsonMenuFiles(run=360026, lb=151, crestServer=None)
435  assert keys is not None, "No keys returned"
436  for k,v in {"SMK" : 2749, "LVL1PSK" : 23557, "HLTPSK" : 17824, "BGSK" : 2181}.items():
437  assert k in keys, "Missing key {}".format(k)
438  assert v == keys[k], "Wrong value {}".format(v)
439 
440  unittest.main(verbosity=2)
python.TrigConfigSvcCfg.createJsonMenuFiles
def createJsonMenuFiles(run, lb, flags)
Definition: TrigConfigSvcCfg.py:56
python.TrigConfigSvcCfg.TrigConfigSvcCfg
def TrigConfigSvcCfg(flags)
Definition: TrigConfigSvcCfg.py:304
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename R::value_type > sorted(const R &r, PROJ proj={})
Helper function to create a sorted vector from an unsorted range.
python.TrigConfigSvcCfg._getMenuFileName
def _getMenuFileName(flags)
Definition: TrigConfigSvcCfg.py:164
python.TrigConfigSvcCfg._doMenuConversion
def _doMenuConversion(flags)
Definition: TrigConfigSvcCfg.py:159
python.TrigConfigSvcCfg.getHLTMenuFileName
def getHLTMenuFileName(flags)
Definition: TrigConfigSvcCfg.py:177
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:342
vtune_athena.format
format
Definition: vtune_athena.py:14
python.TrigConfigSvcCfg._createJsonMenuFiles
dict[str, int|str] _createJsonMenuFiles(run, lb, str|None crestServer=None)
Definition: TrigConfigSvcCfg.py:61
python.TrigConfigSvcCfg.getHLTPrescaleFolderName
def getHLTPrescaleFolderName()
Definition: TrigConfigSvcCfg.py:155
python.Helpers.release_metadata
def release_metadata()
Definition: Tools/PyUtils/python/Helpers.py:129
python.TrigConfigSvcCfg.getTrigConfigFromFlag
def getTrigConfigFromFlag(flags)
Definition: TrigConfigSvcCfg.py:87
python.TrigConfigSvcCfg.generateL1Menu
def generateL1Menu(flags)
Definition: TrigConfigSvcCfg.py:225
python.TrigConfigSvcCfg.getL1MenuFileName
def getL1MenuFileName(flags)
Definition: TrigConfigSvcCfg.py:173
python.TrigConfigSvcCfg.getHLTJobOptionsFileName
def getHLTJobOptionsFileName()
Definition: TrigConfigSvcCfg.py:197
python.TrigConfigSvcCfg.Tests.test_legacyMenu
def test_legacyMenu(self)
Definition: TrigConfigSvcCfg.py:425
python.TrigConfigSvcCfg.getBunchGroupSetFileName
def getBunchGroupSetFileName(flags)
Definition: TrigConfigSvcCfg.py:193
python.TrigConfigSvcCfg.getL1PrescalesSetFileName
def getL1PrescalesSetFileName(flags)
Definition: TrigConfigSvcCfg.py:185
python.TrigConfigSvcCfg.HLTPrescaleCondAlgCfg
def HLTPrescaleCondAlgCfg(flags)
Definition: TrigConfigSvcCfg.py:374
python.TrigConfigSvcCfg.getTrigConfFromCrest
dict[str, int|str] getTrigConfFromCrest(runNumber, lumiBlock, crestServer)
Definition: TrigConfigSvcCfg.py:32
python.TrigConfigSvcCfg.createL1PrescalesFileFromMenu
def createL1PrescalesFileFromMenu(flags, dict[str, float]|None prescales=None)
Definition: TrigConfigSvcCfg.py:201
python.TrigConfigSvcCfg.getTrigConfFromConditions
dict[str, int|str] getTrigConfFromConditions(runNumber, lumiBlock, flags)
Definition: TrigConfigSvcCfg.py:25
python.TrigConfigSvcCfg.getHLTMonitoringFileName
def getHLTMonitoringFileName(flags)
Definition: TrigConfigSvcCfg.py:181
python.TrigConfigSvcCfg.Tests
Definition: TrigConfigSvcCfg.py:410
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:86
python.TrigConfigSvcCfg._getTrigConfigFromFlag
dict[str, Any] _getTrigConfigFromFlag(*triggerConfig, run, lb, useCrest, crestServer)
Definition: TrigConfigSvcCfg.py:96
python.TrigConfigSvcCfg.Tests.setUp
def setUp(self)
Definition: TrigConfigSvcCfg.py:412
TrigJetMonitorAlgorithm.items
items
Definition: TrigJetMonitorAlgorithm.py:71
python.TrigConfigSvcCfg.L1PrescaleCondAlgCfg
def L1PrescaleCondAlgCfg(flags)
Definition: TrigConfigSvcCfg.py:314
python.TrigConfigSvcCfg.L1ConfigSvcCfg
def L1ConfigSvcCfg(flags)
Definition: TrigConfigSvcCfg.py:239
Trk::open
@ open
Definition: BinningType.h:40
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.TrigConfigSvcCfg.getL1PrescaleFolderName
def getL1PrescaleFolderName()
Definition: TrigConfigSvcCfg.py:151
python.L1.Base.PrescaleHelper.getCutFromPrescale
def getCutFromPrescale(prescale)
Definition: PrescaleHelper.py:24
python.TrigConfigSvcCfg.HLTConfigSvcCfg
def HLTConfigSvcCfg(flags)
Definition: TrigConfigSvcCfg.py:272
python.TrigConfigSvcCfg.getTrigConfFromCool
dict[str, int|str] getTrigConfFromCool(runNumber, lumiBlock)
Definition: TrigConfigSvcCfg.py:44
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
python.TrigConfigSvcCfg.Tests.test_currentMenu
def test_currentMenu(self)
Definition: TrigConfigSvcCfg.py:416
python.TrigConfigSvcCfg.BunchGroupCondAlgCfg
def BunchGroupCondAlgCfg(flags)
Definition: TrigConfigSvcCfg.py:346
Trk::split
@ split
Definition: LayerMaterialProperties.h:38
python.TrigConfigSvcCfg.getHLTPrescalesSetFileName
def getHLTPrescalesSetFileName(flags)
Definition: TrigConfigSvcCfg.py:189
python.TrigConfigSvcCfg.Tests.test_jsonConverter
def test_jsonConverter(self)
Definition: TrigConfigSvcCfg.py:433
python.TrigConfigSvcCfg.l1menu_generated
def l1menu_generated()
Definition: TrigConfigSvcCfg.py:17