ATLAS Offline Software
Classes | Functions | Variables
python.TrigConfigSvcCfg Namespace Reference

Classes

class  Tests
 

Functions

def l1menu_generated ()
 
dict[str, int|strgetTrigConfFromConditions (runNumber, lumiBlock, flags)
 
dict[str, int|strgetTrigConfFromCrest (runNumber, lumiBlock, crestServer)
 
dict[str, int|strgetTrigConfFromCool (runNumber, lumiBlock)
 
def createJsonMenuFiles (run, lb, flags)
 
dict[str, int|str_createJsonMenuFiles (run, lb, str|None crestServer=None)
 
def getTrigConfigFromFlag (flags)
 
dict[str, Any] _getTrigConfigFromFlag (*triggerConfig, run, lb, useCrest, crestServer)
 
def getL1PrescaleFolderName ()
 
def getHLTPrescaleFolderName ()
 
def _doMenuConversion (flags)
 
def _getMenuFileName (flags)
 
def getL1MenuFileName (flags)
 
def getHLTMenuFileName (flags)
 
def getHLTMonitoringFileName (flags)
 
def getL1PrescalesSetFileName (flags)
 
def getHLTPrescalesSetFileName (flags)
 
def getBunchGroupSetFileName (flags)
 
def getHLTJobOptionsFileName ()
 
def createL1PrescalesFileFromMenu (flags, dict[str, float]|None prescales=None)
 
def generateL1Menu (flags)
 
def L1ConfigSvcCfg (flags)
 
def HLTConfigSvcCfg (flags)
 
def TrigConfigSvcCfg (flags)
 
def L1PrescaleCondAlgCfg (flags)
 
def BunchGroupCondAlgCfg (flags)
 
def HLTPrescaleCondAlgCfg (flags)
 

Variables

 log
 
 verbosity
 

Function Documentation

◆ _createJsonMenuFiles()

dict[str, int | str] python.TrigConfigSvcCfg._createJsonMenuFiles (   run,
  lb,
str | None   crestServer = None 
)
private
Retrieve Run-2 trigger configuration from the DB and save as Run3 .JSON files
returns the trigger DB keys used, or None if the L1 menu has already been generated

Definition at line 61 of file TrigConfigSvcCfg.py.

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

◆ _doMenuConversion()

def python.TrigConfigSvcCfg._doMenuConversion (   flags)
private
Do JSON menu conversion for Run-1&2 data

Definition at line 159 of file TrigConfigSvcCfg.py.

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 

◆ _getMenuFileName()

def python.TrigConfigSvcCfg._getMenuFileName (   flags)
private
Return base name for menu files

Definition at line 164 of file TrigConfigSvcCfg.py.

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

◆ _getTrigConfigFromFlag()

dict[str, Any] python.TrigConfigSvcCfg._getTrigConfigFromFlag ( triggerConfig,
  run,
  lb,
  useCrest,
  crestServer 
)
private

Definition at line 96 of file TrigConfigSvcCfg.py.

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 

◆ BunchGroupCondAlgCfg()

def python.TrigConfigSvcCfg.BunchGroupCondAlgCfg (   flags)

Definition at line 346 of file TrigConfigSvcCfg.py.

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

◆ createJsonMenuFiles()

def python.TrigConfigSvcCfg.createJsonMenuFiles (   run,
  lb,
  flags 
)

Definition at line 56 of file TrigConfigSvcCfg.py.

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

◆ createL1PrescalesFileFromMenu()

def python.TrigConfigSvcCfg.createL1PrescalesFileFromMenu (   flags,
dict[str, float] | None   prescales = None 
)

Definition at line 201 of file TrigConfigSvcCfg.py.

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

◆ generateL1Menu()

def python.TrigConfigSvcCfg.generateL1Menu (   flags)

Definition at line 225 of file TrigConfigSvcCfg.py.

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

◆ getBunchGroupSetFileName()

def python.TrigConfigSvcCfg.getBunchGroupSetFileName (   flags)

Definition at line 193 of file TrigConfigSvcCfg.py.

193 def getBunchGroupSetFileName( flags ):
194  return 'BunchGroupSet'+_getMenuFileName(flags)+'.json'
195 
196 # HLT Job options json file name

◆ getHLTJobOptionsFileName()

def python.TrigConfigSvcCfg.getHLTJobOptionsFileName ( )

Definition at line 197 of file TrigConfigSvcCfg.py.

198  return 'HLTJobOptions.json'
199 
200 # Creates an L1 Prescale file from the menu

◆ getHLTMenuFileName()

def python.TrigConfigSvcCfg.getHLTMenuFileName (   flags)

Definition at line 177 of file TrigConfigSvcCfg.py.

177 def getHLTMenuFileName( flags ):
178  return 'HLTMenu'+_getMenuFileName(flags)+'.json'
179 
180 # HLT Monitoring set json file name

◆ getHLTMonitoringFileName()

def python.TrigConfigSvcCfg.getHLTMonitoringFileName (   flags)

Definition at line 181 of file TrigConfigSvcCfg.py.

181 def getHLTMonitoringFileName( flags ):
182  return 'HLTMonitoring'+_getMenuFileName(flags)+'.json'
183 
184 # L1 Prescales set json file name

◆ getHLTPrescaleFolderName()

def python.TrigConfigSvcCfg.getHLTPrescaleFolderName ( )

Definition at line 155 of file TrigConfigSvcCfg.py.

156  return "/TRIGGER/HLT/PrescaleKey <tag>HEAD</tag>"
157 
158 

◆ getHLTPrescalesSetFileName()

def python.TrigConfigSvcCfg.getHLTPrescalesSetFileName (   flags)

Definition at line 189 of file TrigConfigSvcCfg.py.

189 def getHLTPrescalesSetFileName( flags ):
190  return 'HLTPrescalesSet'+_getMenuFileName(flags)+'.json'
191 
192 # L1 Bunchgroups set json file name

◆ getL1MenuFileName()

def python.TrigConfigSvcCfg.getL1MenuFileName (   flags)

Definition at line 173 of file TrigConfigSvcCfg.py.

173 def getL1MenuFileName(flags):
174  return 'L1Menu'+_getMenuFileName(flags)+'.json'
175 
176 # HLT Json file name

◆ getL1PrescaleFolderName()

def python.TrigConfigSvcCfg.getL1PrescaleFolderName ( )

Definition at line 151 of file TrigConfigSvcCfg.py.

152  return "/TRIGGER/LVL1/Lvl1ConfigKey <tag>HEAD</tag>"
153 
154 

◆ getL1PrescalesSetFileName()

def python.TrigConfigSvcCfg.getL1PrescalesSetFileName (   flags)

Definition at line 185 of file TrigConfigSvcCfg.py.

185 def getL1PrescalesSetFileName( flags ):
186  return 'L1PrescalesSet'+_getMenuFileName(flags)+'.json'
187 
188 # HLT Prescales set json file name

◆ getTrigConfFromConditions()

dict[str, int | str] python.TrigConfigSvcCfg.getTrigConfFromConditions (   runNumber,
  lumiBlock,
  flags 
)

Definition at line 25 of file TrigConfigSvcCfg.py.

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

◆ getTrigConfFromCool()

dict[str, int | str] python.TrigConfigSvcCfg.getTrigConfFromCool (   runNumber,
  lumiBlock 
)

Definition at line 44 of file TrigConfigSvcCfg.py.

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 

◆ getTrigConfFromCrest()

dict[str, int | str] python.TrigConfigSvcCfg.getTrigConfFromCrest (   runNumber,
  lumiBlock,
  crestServer 
)

Definition at line 32 of file TrigConfigSvcCfg.py.

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

◆ getTrigConfigFromFlag()

def python.TrigConfigSvcCfg.getTrigConfigFromFlag (   flags)

Definition at line 87 of file TrigConfigSvcCfg.py.

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

◆ HLTConfigSvcCfg()

def python.TrigConfigSvcCfg.HLTConfigSvcCfg (   flags)

Definition at line 272 of file TrigConfigSvcCfg.py.

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

◆ HLTPrescaleCondAlgCfg()

def python.TrigConfigSvcCfg.HLTPrescaleCondAlgCfg (   flags)

Definition at line 374 of file TrigConfigSvcCfg.py.

374 def HLTPrescaleCondAlgCfg( flags ):
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 

◆ L1ConfigSvcCfg()

def python.TrigConfigSvcCfg.L1ConfigSvcCfg (   flags)

Definition at line 239 of file TrigConfigSvcCfg.py.

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

◆ l1menu_generated()

def python.TrigConfigSvcCfg.l1menu_generated ( )

Definition at line 17 of file TrigConfigSvcCfg.py.

17 def l1menu_generated():
18  try:
19  return l1menu_generated._hasRun # type: ignore
20  except AttributeError:
21  l1menu_generated._hasRun = True # type: ignore
22  return False
23 
24 

◆ L1PrescaleCondAlgCfg()

def python.TrigConfigSvcCfg.L1PrescaleCondAlgCfg (   flags)

Definition at line 314 of file TrigConfigSvcCfg.py.

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

◆ TrigConfigSvcCfg()

def python.TrigConfigSvcCfg.TrigConfigSvcCfg (   flags)

Definition at line 304 of file TrigConfigSvcCfg.py.

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

Variable Documentation

◆ log

python.TrigConfigSvcCfg.log

Definition at line 13 of file TrigConfigSvcCfg.py.

◆ verbosity

python.TrigConfigSvcCfg.verbosity

Definition at line 440 of file TrigConfigSvcCfg.py.

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.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.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.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.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.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.l1menu_generated
def l1menu_generated()
Definition: TrigConfigSvcCfg.py:17