ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TriggerCommon
TriggerMenuMT
python
HLT
Config
Utility
HLTMenuConfig.py
Go to the documentation of this file.
1
# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3
8
9
from
AthenaCommon.Logging
import
logging
10
log = logging.getLogger(__name__)
11
12
class
HLTMenuConfig
:
13
"""
14
Repository of all configured chains. Contains chain dictionaries and Menu Chain objects.
15
"""
16
__allChainDicts = {}
17
18
@classmethod
19
def
registerChain
(cls, chainDict):
20
"""Register chain for future use"""
21
chainName = chainDict[
'chainName'
]
22
assert
chainName
not
in
cls.
__allChainDicts
, f
'Chain dictionary {chainName} already registered'
23
24
cls.
__allChainDicts
[chainName] = chainDict
25
log.debug(
"Registered chain %s"
, chainName)
26
27
@classmethod
28
def
destroy
(cls):
29
"""Release memory and make the class unusable"""
30
del cls.
__allChainDicts
31
32
@classmethod
33
def
isChainRegistered
(cls, chainName):
34
return
chainName
in
cls.
__allChainDicts
35
36
@classmethod
37
def
dicts
(cls):
38
return
cls.
__allChainDicts
39
40
@classmethod
41
def
dictsList
(cls):
42
return
cls.
__allChainDicts
.values()
43
44
@classmethod
45
def
getChainDictFromChainName
(cls, chainName):
46
return
cls.
__allChainDicts
[chainName]
47
48
49
if
__name__ ==
"__main__"
:
# selftest
50
log.info(
'Self testing'
)
51
52
HLTMenuConfig.registerChain({
'chainName'
:
'HLT_bla1'
})
53
HLTMenuConfig.registerChain({
'chainName'
:
'HLT_bla2'
})
54
try
:
55
HLTMenuConfig.registerChain({
'chainName'
:
'HLT_bla2'
})
56
except
AssertionError:
57
log.info(
"ok, cannot register same chain twice"
)
58
else
:
59
log.error(
"registered same chain twice"
)
60
61
HLTMenuConfig.getChainDictFromChainName(
'HLT_bla1'
)
# if missing will assert
62
HLTMenuConfig.getChainDictFromChainName(
'HLT_bla2'
)
# if missing will assert
63
64
log.info(
"ok, registration works"
)
65
try
:
66
HLTMenuConfig.getChainDictFromChainName(
'HLT_blabla'
)
67
except
Exception
as
e:
68
if
isinstance(e, KeyError):
69
log.info(
"ok, unregistered chain handling works"
)
70
else
:
71
log.error(
"unhandled missing chain"
)
72
HLTMenuConfig.HLTMenuConfig
Definition
HLTMenuConfig.py:12
HLTMenuConfig.HLTMenuConfig.registerChain
registerChain(cls, chainDict)
Definition
HLTMenuConfig.py:19
HLTMenuConfig.HLTMenuConfig.isChainRegistered
isChainRegistered(cls, chainName)
Definition
HLTMenuConfig.py:33
HLTMenuConfig.HLTMenuConfig.dictsList
dictsList(cls)
Definition
HLTMenuConfig.py:41
HLTMenuConfig.HLTMenuConfig.__allChainDicts
dict __allChainDicts
Definition
HLTMenuConfig.py:16
HLTMenuConfig.HLTMenuConfig.destroy
destroy(cls)
Definition
HLTMenuConfig.py:28
HLTMenuConfig.HLTMenuConfig.dicts
dicts(cls)
Definition
HLTMenuConfig.py:37
HLTMenuConfig.HLTMenuConfig.getChainDictFromChainName
getChainDictFromChainName(cls, chainName)
Definition
HLTMenuConfig.py:45
Generated on
for ATLAS Offline Software by
1.17.0