ATLAS Offline Software
Loading...
Searching...
No Matches
python.TrigConfigSvcCfg Namespace Reference

Classes

class  Tests

Functions

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

Variables

 log = logging.getLogger('TrigConfigSvcCfg')
 verbosity

Function Documentation

◆ _createJsonMenuFiles()

dict[str, int | str] python.TrigConfigSvcCfg._createJsonMenuFiles ( run,
lb,
str | None crestServer = None )
protected
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.

61def _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()

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

Definition at line 159 of file TrigConfigSvcCfg.py.

159def _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()

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

Definition at line 164 of file TrigConfigSvcCfg.py.

164def _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 )
protected

Definition at line 96 of file TrigConfigSvcCfg.py.

96def _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
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177

◆ BunchGroupCondAlgCfg()

python.TrigConfigSvcCfg.BunchGroupCondAlgCfg ( flags)

Definition at line 346 of file TrigConfigSvcCfg.py.

346def 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()

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

Definition at line 56 of file TrigConfigSvcCfg.py.

56def 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()

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

Definition at line 201 of file TrigConfigSvcCfg.py.

201def 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()

python.TrigConfigSvcCfg.generateL1Menu ( flags)

Definition at line 225 of file TrigConfigSvcCfg.py.

225def 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()

python.TrigConfigSvcCfg.getBunchGroupSetFileName ( flags)

Definition at line 193 of file TrigConfigSvcCfg.py.

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

◆ getHLTJobOptionsFileName()

python.TrigConfigSvcCfg.getHLTJobOptionsFileName ( )

Definition at line 197 of file TrigConfigSvcCfg.py.

197def getHLTJobOptionsFileName( ):
198 return 'HLTJobOptions.json'
199
200# Creates an L1 Prescale file from the menu

◆ getHLTMenuFileName()

python.TrigConfigSvcCfg.getHLTMenuFileName ( flags)

Definition at line 177 of file TrigConfigSvcCfg.py.

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

◆ getHLTMonitoringFileName()

python.TrigConfigSvcCfg.getHLTMonitoringFileName ( flags)

Definition at line 181 of file TrigConfigSvcCfg.py.

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

◆ getHLTPrescaleFolderName()

python.TrigConfigSvcCfg.getHLTPrescaleFolderName ( )

Definition at line 155 of file TrigConfigSvcCfg.py.

155def getHLTPrescaleFolderName():
156 return "/TRIGGER/HLT/PrescaleKey <tag>HEAD</tag>"
157
158

◆ getHLTPrescalesSetFileName()

python.TrigConfigSvcCfg.getHLTPrescalesSetFileName ( flags)

Definition at line 189 of file TrigConfigSvcCfg.py.

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

◆ getL1MenuFileName()

python.TrigConfigSvcCfg.getL1MenuFileName ( flags)

Definition at line 173 of file TrigConfigSvcCfg.py.

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

◆ getL1PrescaleFolderName()

python.TrigConfigSvcCfg.getL1PrescaleFolderName ( )

Definition at line 151 of file TrigConfigSvcCfg.py.

151def getL1PrescaleFolderName():
152 return "/TRIGGER/LVL1/Lvl1ConfigKey <tag>HEAD</tag>"
153
154

◆ getL1PrescalesSetFileName()

python.TrigConfigSvcCfg.getL1PrescalesSetFileName ( flags)

Definition at line 185 of file TrigConfigSvcCfg.py.

185def 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.

25def 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.

44def 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.

32def 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()

python.TrigConfigSvcCfg.getTrigConfigFromFlag ( flags)

Definition at line 87 of file TrigConfigSvcCfg.py.

87def 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()

python.TrigConfigSvcCfg.HLTConfigSvcCfg ( flags)

Definition at line 272 of file TrigConfigSvcCfg.py.

272def 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()

python.TrigConfigSvcCfg.HLTPrescaleCondAlgCfg ( flags)

Definition at line 374 of file TrigConfigSvcCfg.py.

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

python.TrigConfigSvcCfg.L1ConfigSvcCfg ( flags)

Definition at line 239 of file TrigConfigSvcCfg.py.

239def 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()

python.TrigConfigSvcCfg.l1menu_generated ( )

Definition at line 17 of file TrigConfigSvcCfg.py.

17def 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()

python.TrigConfigSvcCfg.L1PrescaleCondAlgCfg ( flags)

Definition at line 314 of file TrigConfigSvcCfg.py.

314def 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()

python.TrigConfigSvcCfg.TrigConfigSvcCfg ( flags)

Definition at line 304 of file TrigConfigSvcCfg.py.

304def 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 = logging.getLogger('TrigConfigSvcCfg')

Definition at line 13 of file TrigConfigSvcCfg.py.

◆ verbosity

python.TrigConfigSvcCfg.verbosity

Definition at line 440 of file TrigConfigSvcCfg.py.