97def _getmonchains( flags, regex, monlevel=None ):
98
99 r = regex
100 r1 = None
101 if regex.startswith("HLT") : r1 = "EF"+regex[3:]
102
103 chains = []
104
105 if monlevel is None:
106 return chains
107
108 parts = monlevel.split( ":", 1 )
109
110 if parts[0] is None:
111 return chains
112
113 if parts[1] is None:
114 return chains
115
116 sig = parts[0]
117 levels = parts[1].
split(
":")
118
119 _monchains = None
120
121 if _monchains is None :
122
123
124
125
126 from TrigConfigSvc.TriggerConfigAccess import getHLTMonitoringAccess
127
128 if flags is None:
129 from AthenaConfiguration.AllConfigFlags import ConfigFlags
130 flags = ConfigFlags
131
132 moniAccess = getHLTMonitoringAccess(flags, filterOnActiveChains=True )
133
134 _monchains = moniAccess.monitoredChains( signatures=sig, monLevels=levels )
135
136
137
138 for c in _monchains:
139 if re.fullmatch(r,c) or (r1 and re.fullmatch(r1,c)) : chains.append(c)
140
141 return chains
142
143
std::vector< std::string > split(const std::string &s, const std::string &t=":")