78 if flags.Trigger.doHLT:
81 elif flags.DQ.Steering.doHLTMon:
82 from AthenaMonitoring
import AthMonitorCfgHelper
83 helper = AthMonitorCfgHelper(flags,
'HLTFramework')
84 monTool = helper.addGroup(
None, f
'{name}MonTool', f
'/HLT/HLTFramework/L1BSConverters/{name}')
86 acc.merge(helper.result())
90 monTool.defineHistogram(
'TIME_execute', path=topDir, type=
'TH1F',
91 title=
'Time of the alg execute() method;Time [ms];N events',
92 xbins=100, xmin=0, xmax=100)
95 def getRobIds(decoder):
96 if 'RoIBResult' not in decoder.getName():
99 robIds += [
int(SourceIdentifier(SubDetector.TDAQ_CTP, decoder.CTPModuleId))]
if decoder.CTPModuleId!=0xff
else []
100 robIds += [
int(SourceIdentifier(SubDetector.TDAQ_MUON_CTP_INTERFACE, decoder.MUCTPIModuleId))]
if decoder.MUCTPIModuleId!=0xff
else []
101 robIds += [
int(SourceIdentifier(SubDetector.TDAQ_CALO_CLUSTER_PROC_ROI, modId))
for modId
in decoder.EMModuleIds]
102 robIds += [
int(SourceIdentifier(SubDetector.TDAQ_CALO_JET_PROC_ROI, modId))
for modId
in decoder.JetModuleIds]
103 robIds += [
int(SourceIdentifier(SubDetector.TDAQ_CALO_TOPO_PROC, modId))
for modId
in decoder.L1TopoModuleIds]
107 for decoder
in decoderTools:
108 decoderName = decoder.getName()
109 allRobIds += getRobIds(decoder)
110 monTool.defineHistogram(f
'TIME_prepareROBs_{decoderName}', path=topDir, type=
'TH1F',
111 title=f
'Time of preparing ROB inputs for {decoderName};Time [ms];N events',
112 xbins=100, xmin=0, xmax=100)
113 monTool.defineHistogram(f
'TIME_convert_{decoderName}', path=topDir, type=
'TH1F',
114 title=f
'Time of the convertFromBS() method of {decoderName};Time [ms];N events',
115 xbins=100, xmin=0, xmax=100)
116 monTool.defineHistogram(f
'LumiBlock,MissingROBFraction_{decoderName};MissingROBFraction_{decoderName}', path=topDir, type=
'TProfile',
117 title=f
'Fraction of missing ROBs requested by {decoderName} vs LBN;LumiBlock;N missing ROBs / N requested ROBs',
118 xbins=100, xmin=0, xmax=100, opt=
'kCanRebin', merge=
None if flags.Trigger.doHLT
else 'merge')
119 monTool.defineHistogram(f
'LumiBlock,CorruptedROBFraction_{decoderName};CorruptedROBFraction_{decoderName}', path=topDir, type=
'TProfile',
120 title=f
'Fraction of corrupted ROBs requested by {decoderName} vs LBN;LumiBlock;N corrupted ROBs / N retrieved ROBs',
121 xbins=100, xmin=0, xmax=100, opt=
'kCanRebin', merge=
None if flags.Trigger.doHLT
else 'merge')
122 monTool.defineHistogram(f
'LumiBlock,ErroneousROBFraction_{decoderName};ErroneousROBFraction_{decoderName}', path=topDir, type=
'TProfile',
123 title=f
'Fraction of erroneous ROBs requested by {decoderName} vs LBN;LumiBlock;N erroneous ROBs / N retrieved ROBs',
124 xbins=100, xmin=0, xmax=100, opt=
'kCanRebin', merge=
None if flags.Trigger.doHLT
else 'merge')
126 robIdLabels = [hex(id)
for id
in sorted(
list(
set(allRobIds)))]
127 monTool.defineHistogram(
'MissingROB', path=topDir, type=
'TH1F',
128 title=
'Count of missing obligatory ROBs;ROB ID;N events with ROB missing',
129 xbins=len(robIdLabels), xmin=0, xmax=len(robIdLabels), xlabels=robIdLabels)
130 monTool.defineHistogram(
'MissingROBAllowed', path=topDir, type=
'TH1F',
131 title=
'Count of missing optional ROBs;ROB ID;N events with ROB missing',
132 xbins=len(robIdLabels), xmin=0, xmax=len(robIdLabels), xlabels=robIdLabels)
133 monTool.defineHistogram(
'CorruptedROB', path=topDir, type=
'TH1F',
134 title=
'Count of corrupted obligatory ROBs;ROB ID;N events with ROB errors',
135 xbins=len(robIdLabels), xmin=0, xmax=len(robIdLabels), xlabels=robIdLabels)
136 monTool.defineHistogram(
'CorruptedROBAllowed', path=topDir, type=
'TH1F',
137 title=
'Count of corrupted optional ROBs;ROB ID;N events with ROB errors',
138 xbins=len(robIdLabels), xmin=0, xmax=len(robIdLabels), xlabels=robIdLabels)
139 monTool.defineHistogram(
'ErroneousROB', path=topDir, type=
'TH1F',
140 title=
'Count of erroneous obligatory ROBs;ROB ID;N events with ROB errors',
141 xbins=len(robIdLabels), xmin=0, xmax=len(robIdLabels), xlabels=robIdLabels)
142 monTool.defineHistogram(
'ErroneousROBAllowed', path=topDir, type=
'TH1F',
143 title=
'Count of erroneous optional ROBs;ROB ID;N events with ROB errors',
144 xbins=len(robIdLabels), xmin=0, xmax=len(robIdLabels), xlabels=robIdLabels)
146 acc.setPrivateTools(monTool)