3 from AthenaCommon.Logging
import logging
4 from AthenaConfiguration.ComponentFactory
import CompFactory
5 from AthenaMonitoringKernel.GenericMonitoringTool
import GenericMonitoringTool
6 from TrigEDMConfig.TriggerEDM
import recordable
8 log = logging.getLogger(
'TrigADHypoAlgs')
23 "object_cuts":
"default",
27 "object_cuts":
"default",
28 "adScoreThres": 6.174,
31 "object_cuts":
"default",
32 "adScoreThres": 6.929,
35 "object_cuts":
"default",
36 "adScoreThres": 8.358,
42 values = [i.strip(key)
for i
in chainDict[
'topo']]
45 raise RuntimeError(
"Invalid chain dictionary for AD trigger, unable to find config value in {}".
format(
str(chainDict)))
50 name = chainDict[
'chainName']
51 group = chainDict[
'groups']
53 log.debug(
"Inside AD ComboHypoToolFromDict")
54 log.debug(
"chainDict: %s", chainDict)
57 cfg = config_dict[cfg_name]
59 obj_cuts = object_cuts_sets[cfg[
"object_cuts"]]
61 if "adWrite" in group:
62 adScoreName =
recordable(
"HLT_AnomDet_ComboHypo")
66 tool = CompFactory.TrigADComboHypoTool(
68 max_jets = obj_cuts[
"max_jets"],
69 max_electrons = obj_cuts[
"max_electrons"],
70 max_muons = obj_cuts[
"max_muons"],
71 max_photons = obj_cuts[
"max_photons"],
72 ModelFileName =
"TrigAnomalyDetectionHypo/2025-03-12/HLT_AD_v2.onnx",
73 adScoreThres =
float(cfg[
"adScoreThres"]),
74 adScoreKey = adScoreName,
77 if "adMon:online" in group:
78 monTool =
GenericMonitoringTool(flags,
'MonTool', HistPath=
'TrigADComboHypoTool/'+name.replace(
"leg000_",
""))
79 monTool.defineHistogram(
"adScore", path=
'EXPERT', type=
'TH1F', title=
"HLT AD Score;;Entries", xbins=200, xmin=0, xmax=20 )
81 tool.monTool = monTool
82 tool.monFlag = monFlag
85 tool.monFlag = monFlag