 |
ATLAS Offline Software
|
|
| def | 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) |
| |
| 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) |
| |
◆ _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.
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
68 log.error(
"L1 menu has already been generated")
71 log.info(
"Configuring Run-1&2 to Run-3 configuration metadata conversion")
72 if crestServer
is not None:
76 triggerDBKeys[
'DB'] =
'TRIGGERDB' if run > 230000
else 'TRIGGERDB_RUN1'
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"
◆ _doMenuConversion()
| def python.TrigConfigSvcCfg._doMenuConversion |
( |
|
flags | ) |
|
|
private |
Do JSON menu conversion for Run-1&2 data
Definition at line 159 of file TrigConfigSvcCfg.py.
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
◆ _getMenuFileName()
| def python.TrigConfigSvcCfg._getMenuFileName |
( |
|
flags | ) |
|
|
private |
Return base name for menu files
Definition at line 164 of file TrigConfigSvcCfg.py.
165 """Return base name for menu files"""
167 from PyUtils.Helpers
import release_metadata
◆ _getTrigConfigFromFlag()
| dict[str, Any] python.TrigConfigSvcCfg._getTrigConfigFromFlag |
( |
* |
triggerConfig, |
|
|
|
run, |
|
|
|
lb, |
|
|
|
useCrest, |
|
|
|
crestServer |
|
) |
| |
|
private |
Definition at line 96 of file TrigConfigSvcCfg.py.
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)
102 source, dbconn, keys = (triggerConfig+
":::").
split(
":")[:3]
103 smk,l1psk,hltpsk,bgsk = (keys+
",,,").
split(
",")[:4]
105 smk, l1psk, hltpsk, bgsk = (
int(k)
if k!=
"" else None for k
in (smk, l1psk, hltpsk, bgsk))
106 source: str = source.upper()
110 msg: str =
"Run number is required to extract trigger conditions"
112 raise RuntimeError(msg)
119 dbconn = cast(str, trigConf[
"DB"])
121 if dbconn
in [
"TRIGGERDB_RUN3",
"TRIGGERDBDEV1_I8",
"TRIGGERDBDEV1",
"TRIGGERDBDEV2"]:
123 smk = trigConf[
"SMK"]
125 l1psk = trigConf[
'LVL1PSK']
127 hltpsk = trigConf[
'HLTPSK']
129 bgsk = trigConf[
'BGSK']
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}'"
137 raise RuntimeError(msg)
138 dbconn = f
"{crestServer}/{crestConn}"
◆ BunchGroupCondAlgCfg()
| def python.TrigConfigSvcCfg.BunchGroupCondAlgCfg |
( |
|
flags | ) |
|
Definition at line 346 of file TrigConfigSvcCfg.py.
347 log.info(
"Setting up BunchGroupCondAlg")
349 TrigConf__BunchGroupCondAlg = CompFactory.getComp(
"TrigConf::BunchGroupCondAlg")
350 bunchGroupCondAlg = TrigConf__BunchGroupCondAlg(
"TrigConf__BunchGroupCondAlg")
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":
366 lb = flags.Input.LumiBlockNumbers[0], flags=flags)
367 bunchGroupCondAlg.BGSK = dbKeys[
'BGSK']
369 raise RuntimeError(
"trigger configuration flag 'trigConfig' starts with %s, which is not understood" % tc[
"SOURCE"])
370 acc.addCondAlgo(bunchGroupCondAlg)
◆ createJsonMenuFiles()
| def python.TrigConfigSvcCfg.createJsonMenuFiles |
( |
|
run, |
|
|
|
lb, |
|
|
|
flags |
|
) |
| |
Definition at line 56 of file TrigConfigSvcCfg.py.
57 crestServer: str |
None = flags.Trigger.crestServer
if flags.Trigger.useCrest
else None
◆ createL1PrescalesFileFromMenu()
| def python.TrigConfigSvcCfg.createL1PrescalesFileFromMenu |
( |
|
flags, |
|
|
dict[str, float] | None |
prescales = None |
|
) |
| |
Definition at line 201 of file TrigConfigSvcCfg.py.
202 from TriggerMenuMT.L1.Base.PrescaleHelper
import getCutFromPrescale
205 with open(menuFN,
'r')
as fh:
207 pso = {
'filetype':
'l1prescale',
208 'name': data[
'name'],
210 ps = pso[
'cutValues']
212 ps = prescales[name]
if prescales
and name
in prescales
else 1
213 pso[
'cutValues'][name] = {
216 'info': f
'prescale: {ps}'
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)
◆ generateL1Menu()
| def python.TrigConfigSvcCfg.generateL1Menu |
( |
|
flags | ) |
|
Definition at line 225 of file TrigConfigSvcCfg.py.
227 log.error(
"L1 menu has already been generated")
230 log.info(
"Generating L1 menu %s", flags.Trigger.triggerMenuSetup)
231 from TriggerMenuMT.L1.L1MenuConfig
import L1MenuConfig
232 l1cfg = L1MenuConfig(flags)
◆ getBunchGroupSetFileName()
| def python.TrigConfigSvcCfg.getBunchGroupSetFileName |
( |
|
flags | ) |
|
◆ getHLTJobOptionsFileName()
| def python.TrigConfigSvcCfg.getHLTJobOptionsFileName |
( |
| ) |
|
◆ getHLTMenuFileName()
| def python.TrigConfigSvcCfg.getHLTMenuFileName |
( |
|
flags | ) |
|
◆ getHLTMonitoringFileName()
| def python.TrigConfigSvcCfg.getHLTMonitoringFileName |
( |
|
flags | ) |
|
◆ getHLTPrescaleFolderName()
| def python.TrigConfigSvcCfg.getHLTPrescaleFolderName |
( |
| ) |
|
◆ getHLTPrescalesSetFileName()
| def python.TrigConfigSvcCfg.getHLTPrescalesSetFileName |
( |
|
flags | ) |
|
◆ getL1MenuFileName()
| def python.TrigConfigSvcCfg.getL1MenuFileName |
( |
|
flags | ) |
|
◆ getL1PrescaleFolderName()
| def python.TrigConfigSvcCfg.getL1PrescaleFolderName |
( |
| ) |
|
◆ getL1PrescalesSetFileName()
| def python.TrigConfigSvcCfg.getL1PrescalesSetFileName |
( |
|
flags | ) |
|
◆ getTrigConfFromConditions()
| dict[str, int | str] python.TrigConfigSvcCfg.getTrigConfFromConditions |
( |
|
runNumber, |
|
|
|
lumiBlock, |
|
|
|
flags |
|
) |
| |
◆ getTrigConfFromCool()
| dict[str, int | str] python.TrigConfigSvcCfg.getTrigConfFromCool |
( |
|
runNumber, |
|
|
|
lumiBlock |
|
) |
| |
Definition at line 44 of file TrigConfigSvcCfg.py.
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():
51 msg: str = f
"Did not find {key} for run {runNumber} and lumi block {lumiBlock}"
53 raise RuntimeError(msg)
◆ getTrigConfFromCrest()
| dict[str, int | str] python.TrigConfigSvcCfg.getTrigConfFromCrest |
( |
|
runNumber, |
|
|
|
lumiBlock, |
|
|
|
crestServer |
|
) |
| |
Definition at line 32 of file TrigConfigSvcCfg.py.
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():
38 msg: str = f
"Did not find {key} for run {runNumber} and lumi block {lumiBlock}"
40 raise RuntimeError(msg)
◆ getTrigConfigFromFlag()
| def python.TrigConfigSvcCfg.getTrigConfigFromFlag |
( |
|
flags | ) |
|
Definition at line 87 of file TrigConfigSvcCfg.py.
88 flags.dump(
"Input", evaluate=
True)
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
93 useCrest=flags.Trigger.useCrest, crestServer=flags.Trigger.crestServer)
◆ HLTConfigSvcCfg()
| def python.TrigConfigSvcCfg.HLTConfigSvcCfg |
( |
|
flags | ) |
|
Definition at line 272 of file TrigConfigSvcCfg.py.
273 log.info(
"Setting up HLTConfigSvc" )
277 hltConfigSvc = CompFactory.getComp(
"TrigConf::HLTConfigSvc")(
"HLTConfigSvc")
279 if cfg[
"SOURCE"] ==
"FILE":
283 lb = flags.Input.LumiBlockNumbers[0], flags=flags)
284 hltConfigSvc.SMK = dbKeys[
'SMK']
286 hltConfigSvc.InputType =
"FILE"
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 )
◆ HLTPrescaleCondAlgCfg()
| def python.TrigConfigSvcCfg.HLTPrescaleCondAlgCfg |
( |
|
flags | ) |
|
Definition at line 374 of file TrigConfigSvcCfg.py.
375 log.info(
"Setting up HLTPrescaleCondAlg")
377 hltPrescaleCondAlg = CompFactory.getComp(
"TrigConf::HLTPrescaleCondAlg")(
"HLTPrescaleCondAlg")
380 hltPrescaleCondAlg.Source = tc[
"SOURCE"]
381 if flags.Common.isOnline
or tc[
"SOURCE"]==
"COOL":
382 from IOVDbSvc.IOVDbSvcConfig
import addFolders
384 className =
"AthenaAttributeList",
385 extensible = flags.Trigger.Online.isPartition))
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":
399 lb = flags.Input.LumiBlockNumbers[0], flags=flags)
400 hltPrescaleCondAlg.HLTPsk = dbKeys[
'HLTPSK']
402 raise RuntimeError(
"trigger configuration flag 'trigConfig' starts with %s, which is not understood" % tc[
"SOURCE"])
403 acc.addCondAlgo(hltPrescaleCondAlg)
◆ L1ConfigSvcCfg()
| def python.TrigConfigSvcCfg.L1ConfigSvcCfg |
( |
|
flags | ) |
|
Definition at line 239 of file TrigConfigSvcCfg.py.
240 log.info(
"Setting up LVL1ConfigSvc" )
246 l1ConfigSvc = CompFactory.getComp(
"TrigConf::LVL1ConfigSvc")(
"LVL1ConfigSvc")
248 if cfg[
"SOURCE"] ==
"FILE":
252 lb = flags.Input.LumiBlockNumbers[0], flags=flags)
253 l1ConfigSvc.SMK = dbKeys[
'SMK']
255 l1ConfigSvc.InputType =
"FILE"
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'] )
267 acc.addService( l1ConfigSvc, create=
True )
◆ l1menu_generated()
| def python.TrigConfigSvcCfg.l1menu_generated |
( |
| ) |
|
Definition at line 17 of file TrigConfigSvcCfg.py.
19 return l1menu_generated._hasRun
20 except AttributeError:
21 l1menu_generated._hasRun =
True
◆ L1PrescaleCondAlgCfg()
| def python.TrigConfigSvcCfg.L1PrescaleCondAlgCfg |
( |
|
flags | ) |
|
Definition at line 314 of file TrigConfigSvcCfg.py.
315 log.info(
"Setting up L1PrescaleCondAlg")
317 TrigConf__L1PrescaleCondAlg = CompFactory.getComp(
"TrigConf::L1PrescaleCondAlg")
318 l1PrescaleCondAlg = TrigConf__L1PrescaleCondAlg(
"L1PrescaleCondAlg")
321 l1PrescaleCondAlg.Source = tc[
"SOURCE"]
322 if flags.Common.isOnline:
323 from IOVDbSvc.IOVDbSvcConfig
import addFolders
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":
338 lb = flags.Input.LumiBlockNumbers[0], flags=flags)
339 l1PrescaleCondAlg.L1Psk = dbKeys[
'LVL1PSK']
341 raise RuntimeError(
"trigger configuration flag 'trigConfig' starts with %s, which is not understood" % tc[
"SOURCE"])
342 acc.addCondAlgo(l1PrescaleCondAlg)
◆ TrigConfigSvcCfg()
| def python.TrigConfigSvcCfg.TrigConfigSvcCfg |
( |
|
flags | ) |
|
◆ log
| python.TrigConfigSvcCfg.log |
◆ verbosity
| python.TrigConfigSvcCfg.verbosity |
def createJsonMenuFiles(run, lb, flags)
def TrigConfigSvcCfg(flags)
std::vector< typename R::value_type > sorted(const R &r, PROJ proj={})
Helper function to create a sorted vector from an unsorted range.
def _getMenuFileName(flags)
def _doMenuConversion(flags)
def getHLTMenuFileName(flags)
dict[str, int|str] _createJsonMenuFiles(run, lb, str|None crestServer=None)
def getHLTPrescaleFolderName()
def getTrigConfigFromFlag(flags)
def generateL1Menu(flags)
def getL1MenuFileName(flags)
def getHLTJobOptionsFileName()
def getBunchGroupSetFileName(flags)
def getL1PrescalesSetFileName(flags)
def HLTPrescaleCondAlgCfg(flags)
dict[str, int|str] getTrigConfFromCrest(runNumber, lumiBlock, crestServer)
def createL1PrescalesFileFromMenu(flags, dict[str, float]|None prescales=None)
dict[str, int|str] getTrigConfFromConditions(runNumber, lumiBlock, flags)
def getHLTMonitoringFileName(flags)
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
dict[str, Any] _getTrigConfigFromFlag(*triggerConfig, run, lb, useCrest, crestServer)
def L1PrescaleCondAlgCfg(flags)
def L1ConfigSvcCfg(flags)
def getL1PrescaleFolderName()
def getCutFromPrescale(prescale)
def HLTConfigSvcCfg(flags)
dict[str, int|str] getTrigConfFromCool(runNumber, lumiBlock)
def BunchGroupCondAlgCfg(flags)
def getHLTPrescalesSetFileName(flags)