6from AthenaCommon.Logging
import logging
7from pycrest.api.crest_api
import CrestApi
8log = logging.getLogger(
'athenaHLT')
10from functools
import cache
25 return '/TDAQ/RunCtrl/SOR'
27 return '/TDAQ/RunCtrl/SOR_Params'
31 from CoolConvUtilities
import AtlCoolLib
33 log.info(
'Reading SOR record for run %s from COOL', run_number)
36 dbcon = AtlCoolLib.readOpen(
'COOLONL_TDAQ/%s' % cdb.db_instance())
37 folder = dbcon.getFolder(cdb.sor_folder())
44 sor = folder.findObject(run_number << 32, 0)
48 payload = sor.payload()
49 d = {k: payload[k]
for k
in payload}
54 from TrigConfStorage.TriggerCrestUtil
import TriggerCrestUtil
55 log.info(
'Reading EOR record for run %s from Crest', run_number)
56 return TriggerCrestUtil.getEORParams(run_number, server=crest_server)
60 """Read Trigger keys from COOL"""
62 from TrigConfStorage.TriggerCoolUtil
import TriggerCoolUtil
63 confKeys: dict[str, Any] = TriggerCoolUtil.getTrigConfKeys(run_number, lb_number)
64 confKeys[
'DBAlias'] = confKeys.pop(
'DB',
None)
70 """Read Trigger keys from CREST"""
71 from TrigConfStorage.TriggerCrestUtil
import TriggerCrestUtil
72 log.info(
"Using CREST server %s", crest_server)
73 api: CrestApi = TriggerCrestUtil.getCrestApi(server=crest_server)
74 confKeys: dict[str, Any] = TriggerCrestUtil.getTrigConfKeys(run_number, lb_number, api=api)
75 confKeys[
'DBAlias'] = confKeys.pop(
'DB',
None)
79 """Return the CA Cfg function based on joboptions path.
80 The format is MODULE[.FNC]. If no FNC is given, 'main' will be tried."""
88 module = importlib.import_module(jopath)
89 except ModuleNotFoundError:
93 mod_name, fnc_name = jopath.rsplit(
'.', maxsplit=1)
94 module = importlib.import_module(mod_name)
101 log.info(
"Loading %s.%s", module.__name__, fnc_name)
102 return getattr(module, fnc_name)
106 """Re-launch athenaHLT from the given json file. Optionally suppress
107 the list of command line args (e.g. flags).
108 jobOptions: the positional argument to be replaced by `filename`."""
112 for arg_index, arg
in enumerate(sys.argv):
113 if arg ==
'--dump-config-reload':
115 if arg
in [
'--precommand',
'-c',
'--postcommand',
'-C']:
117 if arg_index > 0
and sys.argv[arg_index-1]
in [
'--precommand',
'-c',
'--postcommand',
'-C']:
119 if arg.startswith(
'--precommand')
or arg.startswith(
'--postcommand'):
121 if arg
in suppress_args:
125 if jobOptions
is not None and jobOptions
in argv:
126 argv[argv.index(jobOptions)] = filename
129 log.info(
'Restarting %s from %s ...', argv[0], filename)
132 os.execvp(argv[0], argv)
138if __name__==
'__main__':
146 assert(d
is not None)
149 assert(d[
'DetectorMask']==
'0000000000000000c10069fffffffff7')
152 assert(d
is not None)
155 assert(d[
'DetectorMask']==
'0000000000000000c10069fffffffff7')
158 assert(d
is not None)
161 assert(d[
'DetectorMask']==281474976710647)
166 assert(d[
'SMK']==2749)
167 assert(d[
'LVL1PSK']==15186)
168 assert(d[
'HLTPSK']==17719)
173 assert(d[
'SMK']==2749)
174 assert(d[
'LVL1PSK']==15186)
175 assert(d[
'HLTPSK']==17719)
179 assert(d[
'SMK']==2749)
180 assert(d[
'LVL1PSK']==23504)
181 assert(d[
'HLTPSK']==17792)
void print(char *figname, TCanvas *c1)
dict[str, Any]|None get_eor_params_crest(run_number, str crest_server)
reload_from_json(filename, suppress_args=[], jobOptions=None)
get_trigconf_keys_crest(run_number, lb_number, crest_server)
get_trigconf_keys(run_number, lb_number)
dict[str, Any]|None get_sor_params(run_number)