Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
L1TopoOnlineMonitoringConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 from AthenaMonitoringKernel.GenericMonitoringTool import GenericMonitoringTool
5 from TrigConfigSvc.TriggerConfigAccess import getL1MenuAccess
6 
7 
9  hypo = CompFactory.L1TopoOnlineMonitorHypo()
10  return hypo
11 
13  tool = CompFactory.L1TopoOnlineMonitorHypoTool(
14  chainDict['chainName'],
15  # Select error flags to accept events
16  ErrorFlagsKey = 'L1TopoErrorFlags',
17  AcceptTrivialFlag = True)
18 
19  return tool
20 
21 def getL1TopoLabels(flags,connectors = {0: 'LegacyTopo0', 1: 'LegacyTopo1'}, bmax = 128):
22  topo_trigline_labels = ["" for i in range(bmax)]
23  lvl1access = getL1MenuAccess(flags)
24  for connector_id, connectorKey in connectors.items():
25  topo_triglines_dict = lvl1access.connector(connectorKey)['triggerlines']
26  if not isinstance(topo_triglines_dict, list):
27  for fpga_id in [0,1]:
28  topo_fpga = topo_triglines_dict['fpga{:d}'.format(fpga_id)]
29  for clock_id in [0,1]:
30  topo_clock = topo_fpga['clock{:d}'.format(clock_id)]
31  for topo_trigline in topo_clock:
32  topo_trigline_name = topo_trigline['name']
33  bit_id = topo_trigline['startbit']
34  topo_trigline_index = 64*connector_id + 32*fpga_id + 2*bit_id + clock_id
35  topo_trigline_labels[topo_trigline_index] = topo_trigline_name
36  else:
37  for topo_trigline in topo_triglines_dict:
38  topo_trigline_name = topo_trigline['name']
39  topo_trigline_name= topo_trigline_name.replace("TOPO_","")
40  bit_id = topo_trigline['startbit']
41  fpga_id = topo_trigline['fpga']
42  clock_id = topo_trigline['clock']
43  topo_trigline_index = 64*connector_id + 32*fpga_id + 2*bit_id + clock_id
44  topo_trigline_labels[topo_trigline_index] = topo_trigline_name
45 
46  for i in range(len(topo_trigline_labels)):
47  if ( topo_trigline_labels[i] == ""):
48  topo_trigline_labels[i] = "-- Unassigned Item --"
49 
50  return topo_trigline_labels
51 
52 def getMultiplicityLabels(flags,topoModule):
53  topo_trigline_labels = ["" for i in range(128)]
54  lvl1access = getL1MenuAccess(flags)
55  topo_triglines_dict = lvl1access.connector(topoModule)['triggerlines']
56 
57  for topo_trigline in topo_triglines_dict:
58  topo_trigline_name = topo_trigline['name']
59  bit_id = topo_trigline['startbit']
60  topo_trigline_labels[bit_id] = topo_trigline_name
61  if ( topo_trigline_labels[bit_id].find("SPARE") >= 0):
62  topo_trigline_labels[bit_id] = "-- Unassigned Item --"
63 
64  return topo_trigline_labels
65 
67  IsData = not flags.Input.isMC
68  return getL1TopoPhase1DQMonitor(flags,"L1TopoInL1CaloDQMonitor",doHwMon=IsData,doComp=IsData, doMultComp=IsData)
69 
70 def getL1TopoPhase1OnlineMonitor(flags, name='L1TopoOnlineMonitor', doSimMon=True, doHwMonCtp=False, doHwMon=False, doComp=False, doMultComp=False, forceCtp=False, logLevel = None, toolName="L1TopoMonitoringTool"):
71  alg = CompFactory.L1TopoOnlineMonitor(toolName,
72  doHwMon = doHwMon,
73  doHwErrorMon = False,
74  doSimMon = doSimMon,
75  doHwMonCTP = doHwMonCtp,
76  doComp = doComp,
77  doMultComp = doMultComp,
78  forceCTPasHdw=forceCtp,
79  MultiplicityVetoList=["ZeroBiasA","ZeroBiasB"],
80  AlgorithmVetoList =["jXE40delay"])
81  if logLevel : alg.OutputLevel=logLevel
82  alg.MonTool = GenericMonitoringTool(flags, 'MonTool')
83  alg.MonTool.HistPath = name
84  configureHistograms(alg, flags, doHwMonCtp, doHwMon, doComp, doMultComp)
85 
86  return alg
87 
88 def getL1TopoPhase1DQMonitor(flags, name='L1TopoDQMonitor', doSimMon=True, doHwMonCtp=False, doHwMon=False, doComp=False, doMultComp=False, forceCtp=False, logLevel = None, toolName="L1TopoMonitoringTool"):
89  from TrigT1CaloMonitoring.LVL1CaloMonitoringConfig import L1CaloMonitorCfgHelper
90  helper = L1CaloMonitorCfgHelper(flags,CompFactory.L1TopoOnlineMonitor,toolName,
91  doHwMon = doHwMon,
92  doHwErrorMon = False,
93  doSimMon = doSimMon,
94  doHwMonCTP = doHwMonCtp,
95  doComp = doComp,
96  doMultComp = doMultComp,
97  MultiplicityVetoList=["ZeroBiasA","ZeroBiasB"],
98  AlgorithmVetoList =["jXE40delay"],
99  forceCTPasHdw=forceCtp)
100 
101  #Define the Monitoring plots for L1Calo DQ
102  helper.defineDQAlgorithm("L1TopoMismatchRate",
103  hanConfig={"libname":"libdqm_summaries.so","name":"Bins_GreaterThan_Threshold","BinThreshold":"0.001","PublishBins":"1"}, # counts bins with value>0.001
104  thresholdConfig={"NBins":[0,1]}, # warn if any high rate, error if more than 1 bin anywhere.
105  )
106 
107  helper.defineDQAlgorithm("L1TopoMismatchCountVerticalRange",
108  hanConfig={"libname":"libdqm_summaries.so","name":"Bins_GreaterThan_Threshold","BinThreshold":"0.001","PublishBins":"1","yMax":"2"}, #,"IgnoreBins":"\"25:1,26:2,*:25,*:58,500:*\""}, # counts bins with value>0.001 for Bins in Y between 0 and 1.
109  thresholdConfig={"NBins":[0,1]}, # warn if any high rate, error if more than 1 bin anywhere.
110  )
111 
112  #Multiplicity mismatches between Sim and Hdw
113  ylabels = ['#splitline{Sim counts <}{Hdw counts}','#splitline{Sim counts >}{Hdw counts}','#splitline{Sim counts =}{Hdw counts}']
114  name = 'LBN,MultiplicityAllBoards,L1TopoMultiplicityMissMatchVsLumi;L1TopoMultiplicityMismatchRateVsLumi'
115  AllLabels = []
116  for cable in range(4):
117  topoName = 'Topo1Opt'+str(cable)
118  AllLabels+=getMultiplicityLabels(flags=flags,topoModule=topoName)
119 
120  AllLabels = [x for x in AllLabels if x]
121 
122  helper.defineHistogram(name,
123  fillGroup="L1TopoDQ_mismatches",
124  paths=['Expert/Sim'],
125  hanConfig={"algorithm":"L1TopoMismatchRate","description":"Agreements and Mismatches between L1Topo Simulation and Hdw perLumi-Block","display":"SetPalette(87),Draw=COLZTEXT"},
126  type='TProfile2D',
127  title="L1Topo Multiplicities Sim/Hdw mismatch rate", xbins=32, ybins=len(AllLabels),
128  xmin=0, xmax=32,
129  ymin=0, ymax=len(AllLabels),
130  ylabels = AllLabels,
131  opt=['kAddBinsDynamically','kCanRebin','kAlwaysCreate'],merge='merge')
132 
133  for cable in range(4):
134 
135  topoName = 'Topo1Opt'+str(cable)
136  name = 'MultiplicityTopo1Opt'+str(cable)+',MultiplicityMatchTopo1Opt'+str(cable)
137  name += f';{topoName}_mismatch'
138  title = f'Topo Optical Cable {cable} Miss/Matches Summary'
139  labels = getMultiplicityLabels(flags=flags,topoModule=topoName)
140  xlabels = [x for x in labels if x]
141 
142  helper.defineHistogram(name,
143  fillGroup="L1TopoDQ_mismatches",
144  paths=['Expert/Sim/detail/L1Topo/Multiplicities'],
145  hanConfig={"algorithm":"L1TopoMismatchCountVerticalRange","description":"Agreements and Mismatches between L1Topo Simulation and Hdw per L1Topo Item (x-axis). The upper row should be filled (Sim and Hdw agrees), while the lower two rows shouldn't have any entry","display":"SetPalette(55)"},
146  type='TH2D',
147  title=title, xbins=len(xlabels), ybins=3,
148  xlabels=xlabels,ylabels=ylabels,
149  xmin=0, xmax=len(xlabels),
150  ymin=0, ymax=len(ylabels),
151  opt=['kAddBinsDynamically','kCanRebin','kAlwaysCreate'],merge='merge')
152 
153  label_topo_all = []
154  for cable in range(2):
155  name = 'CableElec_'+str(cable+2)
156  name += ';Topo'+str(cable+2)+'El'
157  title = f'Topo Electric Cable {cable+2}'
158  labels = getL1TopoLabels(flags,{0: f'Topo{cable+2}El'},64)
159  label_topo_all += labels
160 
161  #L1Topo Algorithms mismatches
162  #ylabels = ['#frac{HdwNotSim}{Hdw}','#frac{SimNotHdw}{Sim}','#frac{HdwAndSim}{HdwOrSim}','#frac{Hdw}{Sim}']
163  ylabels = ['#splitline{Sim counts <}{Hdw counts}','#splitline{Sim counts >}{Hdw counts}','#splitline{Sim counts =}{Hdw counts}']
164  nameLB = 'LBN,L1TopoAlgorithmAllBoards,L1TopoAlgorithmMissMatchVsLumi;L1TopoAlgoMismatchRateVsLB'
165 
166  helper.defineHistogram(nameLB,
167  fillGroup="L1TopoDQ_mismatches",
168  paths=['Expert/Sim'],
169  hanConfig={"algorithm":"L1TopoMismatchRate","description":"Mismatch Rate between L1Topo Simulation and Hardware vs Lumi-Block (x-axis)","display":"SetPalette(87),Draw=COLZTEXT"},
170  type='TProfile2D',
171  title="L1Topo Algorithms Sim/Hdw mismatch rate",xbins=32,ybins=128,
172  #weight=f'Phase1TopoWeight_{topo[0]}',
173  ylabels=label_topo_all,
174  xmin=0, xmax=32,
175  ymin=0, ymax=128,
176  opt=['kAddBinsDynamically','kCanRebin','kAlwaysCreate'],merge='merge')
177 
178  for topo in [(0,'2a'),(1,'2b'),(2,'3a'),(3,'3b')]:
179  name = f'Phase1TopoTrigger_{topo[0]},L1TopoAlgorithmMissMatch_{topo[0]};L1TopoAlgo_{topo[1]}'
180  title = f'L1Topo_Algo_{topo[1]} Miss/Matches Summary'
181  helper.defineHistogram(name,
182  fillGroup="L1TopoDQ_mismatches",
183  paths=['Expert/Sim/detail/L1Topo/Algos'],
184  hanConfig={"algorithm":"L1TopoMismatchCountVerticalRange","description":"Agreements and Mismatches between L1Topo Simulation and Hardware per L1Topo Item (x-axis). The upper row should be filled (Sim and Hdw agrees), while the lower two rows shouldn't have any entry","display":"SetPalette(55)"},
185  type='TH2F',
186  title=title,xbins=32,ybins=3,
187  #weight=f'Phase1TopoWeight_{topo[0]}',
188  xlabels=label_topo_all[topo[0]*32:(topo[0]+1)*32],
189  ylabels=ylabels,
190  xmin=0, xmax=32,
191  ymin=0, ymax=len(ylabels),
192  opt=['kAddBinsDynamically','kCanRebin','kAlwaysCreate'],merge='merge')
193 
194  '''
195  #Not Including Overflow plots for now
196  #L1Topo Algorithms Overflow mismatches
197  #ylabelsOF = ['#frac{HdwOFnotSimOF}{HdwOF}','#frac{SimOFnotHdwOF}{SimOF}','#frac{HdwOFandSimOF}{HdwOForSimOF}','#frac{HdwOF}{SimOF}']
198  ylabelsOF = ['#splitline{Sim counts <}{Hdw counts}','#splitline{Sim counts >}{Hdw counts}','#splitline{Sim counts =}{Hdw counts}']
199  for topo in [(0,'2a'),(1,'2b'),(2,'3a'),(3,'3b')]:
200  #name_OF = f'Phase1TopoTrigger_{topo[0]},Phase1TopoMissMatch_{topo[0]};Ph1Topo{topo[1]}_overflows'
201  name_OF = f'Phase1TopoTrigger_{topo[0]},L1TopoAlgorithmOverflowMissMatch_{topo[0]};L1TopoAlgo_OF{topo[1]}'
202  title_OF = f' L1Topo_Algo_{topo[1]} Overflow Miss/Matches Summary'
203  helper.defineHistogram(name_OF,
204  fillGroup="L1TopoDQ_mismatches",
205  paths=['Expert/Sim/detail/L1Topo/Algos/Overflows'],
206  hanConfig={"description":"Agreements and Mismatches between L1Topo Simulation and Hardware per L1Topo Item (x-axis). The upper row should be filled (Sim and Hdw agrees), while the lower two rows shouldn't have any entry","display":"SetPalette(55)"}, type='TH2F',
207  title=title_OF,xbins=32,ybins=3,
208  #weight=f'Phase1TopoOFWeight_{topo[0]}',
209  xlabels=label_topo_all[topo[0]*32:(topo[0]+1)*32],
210  ylabels=ylabelsOF,
211  xmin=0, xmax=32,
212  ymin=0, ymax=len(ylabelsOF),
213  opt=['kAddBinsDynamically','kCanRebin','kAlwaysCreate'],merge='merge')
214  '''
215 
216  helper.alg.MonTool = helper.fillGroups["L1TopoDQ_mismatches"]
217  return helper.result()
218 
219 
220 def configureHistograms(alg, flags, doHwMonCtp, doHwMon, doComp, doMultComp):
221 
222  label_topo_all = []
223  for cable in range(2):
224  name = 'CableElec_'+str(cable+2)
225  name += ';Topo'+str(cable+2)+'El'
226  title = f'Topo Electric Cable {cable+2}'
227  labels = getL1TopoLabels(flags,{0: f'Topo{cable+2}El'},64)
228  label_topo_all += labels
229  alg.MonTool.defineHistogram(name, path='EXPERT', type='TH1I',
230  title=title, xbins=64, xlabels=labels,
231  xmin=0, xmax=64)
232 
233  for cable in range(4):
234  topoName = 'Topo1Opt'+str(cable)
235  name = 'CableOpti_'+str(cable)
236  weight = name+'_weight'
237  name += f';{topoName}'
238  title = f'Topo Optical Cable {cable}'
239  labels = getMultiplicityLabels(flags=flags,topoModule=topoName)
240  xlabels = [x for x in labels if x]
241  alg.MonTool.defineHistogram(name, path='EXPERT', type='TH1I',
242  title=title, xbins=len(xlabels), xlabels=xlabels,
243  weight=weight,
244  xmin=0, xmax=len(xlabels))
245  for cable in range(4):
246  topoName = 'Topo1Opt'+str(cable)
247  name = 'HdwTopo1Opt'+str(cable)
248  weight = name+'_weight'
249  name += f';{topoName}_data'
250  title = f'Topo Optical Cable {cable} (Data)'
251  labels = getMultiplicityLabels(flags=flags,topoModule=topoName)
252  xlabels = [x for x in labels if x]
253  alg.MonTool.defineHistogram(name, path='EXPERT', type='TH1I',
254  title=title, xbins=len(xlabels), xlabels=xlabels,
255  weight=weight,
256  xmin=0, xmax=len(xlabels))
257 
258  for cable in range(4):
259  ylabels = ['#splitline{Sim counts <}{Hdw counts}','#splitline{Sim counts >}{Hdw counts}','#splitline{Sim counts =}{Hdw counts}']
260  topoName = 'Topo1Opt'+str(cable)
261  name = 'MultiplicityTopo1Opt'+str(cable)+',MultiplicityMatchTopo1Opt'+str(cable)
262  name += f';{topoName}_mismatch'
263  title = f'Topo Optical Cable {cable} Miss/Matches Summary'
264  labels = getMultiplicityLabels(flags=flags,topoModule=topoName)
265  xlabels = [x for x in labels if x]
266  alg.MonTool.defineHistogram(name, path='EXPERT', type='TH2F',
267  title=title, xbins=len(xlabels), ybins=3,
268  xlabels=xlabels,ylabels=ylabels,
269  xmin=0, xmax=len(xlabels),
270  ymin=0, ymax=len(ylabels))
271 
272  for cable in range(4):
273  topoName = 'Topo1Opt'+str(cable)
274  labels = getMultiplicityLabels(flags=flags,topoModule=topoName)
275  labels = [x for x in labels if x]
276  for i,label in enumerate(labels):
277  name = f'Topo1Opt{cable}_{i}_Sim,Topo1Opt{cable}_{i}_Hdw;Topo1Opt{cable}_{label}'
278  title = f'Topo1Opt{cable}_{label};Simulation Counts;Hardware Counts'
279  alg.MonTool.defineHistogram(name, path='EXPERT', type='TH2F',
280  title=title,xbins=10,ybins=10,
281  xmin=0, xmax=10,
282  ymin=0, ymax=10)
283 
284  alg.MonTool.defineHistogram('TopoSim', path='EXPERT', type='TH1I',
285  title='Simulation Results for L1Topo', xbins=128, xlabels=label_topo_all,
286  xmin=0, xmax=128)
287  alg.MonTool.defineHistogram('TopoSim_overflows', path='EXPERT', type='TH1I',
288  title='Overflow Simulation Results for L1Topo', xbins=128, xlabels=label_topo_all,
289  xmin=0, xmax=128)
290  alg.MonTool.defineHistogram('TopoSim_ambiguity', path='EXPERT', type='TH1I',
291  title='Ambiguity Results for L1Topo', xbins=128, xlabels=label_topo_all,
292  xmin=0, xmax=128)
293 
294  if doHwMonCtp:
295  alg.MonTool.defineHistogram('TopoCTP', path='EXPERT', type='TH1I',
296  title='CTP Results for L1Topo', xbins=128, xlabels=label_topo_all,
297  xmin=0, xmax=128)
298 
299  if doComp:
300  alg.MonTool.defineHistogram('SimNotHdwL1TopoResult', path='EXPERT', type='TH1I',
301  title='L1Topo events with simulation accept and hardware fail',
302  xbins=128, xlabels=label_topo_all,
303  xmin=0, xmax=128)
304  alg.MonTool.defineHistogram('HdwNotSimL1TopoResult', path='EXPERT', type='TH1I',
305  title='L1Topo events with hardware accept and simulation fail',
306  xbins=128, xlabels=label_topo_all,
307  xmin=0, xmax=128)
308  alg.MonTool.defineHistogram('Ambiguity_SimANDHdwDecisions', path='EXPERT', type='TH1I',
309  title='L1Topo ambiguity events with simulation accept and hardware accept',
310  xbins=128, xlabels=label_topo_all,
311  xmin=0, xmax=128)
312  alg.MonTool.defineHistogram('Ambiguity_DecisionMismatches', path='EXPERT', type='TH1I',
313  title='L1Topo ambiguity events with mismatches between simulation and hardware',
314  xbins=128, xlabels=label_topo_all,
315  xmin=0, xmax=128)
316 
317  if doMultComp:
318  ylabels = ['#frac{HdwNotSim}{Hdw}','#frac{SimNotHdw}{Sim}','#frac{HdwAndSim}{HdwOrSim}','#frac{Hdw}{Sim}']
319  for topo in [(0,'2a'),(1,'2b'),(2,'3a'),(3,'3b')]:
320  name = f'Phase1TopoTrigger_{topo[0]},Phase1TopoMissMatch_{topo[0]};Ph1Topo{topo[1]}'
321  title = f'Phase1 Topo{topo[1]} Miss/Matches Summary'
322  alg.MonTool.defineHistogram(name, path='EXPERT', type='TH2F',
323  title=title,xbins=32,ybins=4,
324  weight=f'Phase1TopoWeight_{topo[0]}',
325  xlabels=label_topo_all[topo[0]*32:(topo[0]+1)*32],
326  ylabels=ylabels,
327  xmin=0, xmax=32,
328  ymin=0, ymax=len(ylabels))
329  ylabelsOF = ['#frac{HdwOFnotSimOF}{HdwOF}','#frac{SimOFnotHdwOF}{SimOF}','#frac{HdwOFandSimOF}{HdwOForSimOF}','#frac{HdwOF}{SimOF}']
330  for topo in [(0,'2a'),(1,'2b'),(2,'3a'),(3,'3b')]:
331  name_OF = f'Phase1TopoTrigger_{topo[0]},Phase1TopoMissMatch_{topo[0]};Ph1Topo{topo[1]}_overflows'
332  title_OF = f'Phase1 Topo{topo[1]} Overflow Miss/Matches Summary'
333  alg.MonTool.defineHistogram(name_OF, path='EXPERT', type='TH2F',
334  title=title_OF,xbins=32,ybins=4,
335  weight=f'Phase1TopoOFWeight_{topo[0]}',
336  xlabels=label_topo_all[topo[0]*32:(topo[0]+1)*32],
337  ylabels=ylabelsOF,
338  xmin=0, xmax=32,
339  ymin=0, ymax=len(ylabelsOF))
340 
341  if doHwMon:
342  alg.MonTool.defineHistogram('HdwResults', path='EXPERT', type='TH1I',
343  title='Hardware Results for L1Topo', xbins=128, xlabels=label_topo_all,
344  xmin=0, xmax=128)
345  alg.MonTool.defineHistogram('OverflowResults', path='EXPERT', type='TH1I',
346  title='Overflow Results for L1Topo', xbins=128, xlabels=label_topo_all,
347  xmin=0, xmax=128)
348  rod_errors_labels = ["CT", "pc", "hc", "pe", "lm", "hm", "pt"]
349  alg.MonTool.defineHistogram('ROD_Errors', path='EXPERT', type='TH1I',
350  title='Counts of ROD errors', xbins=len(rod_errors_labels), xlabels=rod_errors_labels,
351  xmin=0, xmax=len(rod_errors_labels))
352  fpga_errors_labels = ["CT", "sm", "pe", "lm", "hm", "pt"]
353  fpga_indexes = ["topo1fpga1", "topo1fpga0", "topo2fpga1", "topo2fpga0", "topo3fpga1", "topo3fpga0"]
354  alg.MonTool.defineHistogram('FPGA_Errors, FPGA_Labels; FPGA_Errors', path='EXPERT', type='TH2I',
355  title='Counts of FPGA errors',xbins=len(fpga_errors_labels),ybins=len(fpga_indexes),
356  xlabels=fpga_errors_labels,
357  ylabels=fpga_indexes,
358  xmin=0, xmax=len(fpga_errors_labels),
359  ymin=0, ymax=len(fpga_indexes))
360 
361 
362  mon_failure_labels = ['doHwMon', 'doSimMon', 'doHwMonCTP', 'doComp', 'doMultComp']
363  alg.MonTool.defineHistogram('MonitoringFailures', path='EXPERT', type='TH1F',
364  title='Counts of mon functions returning failure;;Entries',
365  xlabels=mon_failure_labels, xbins=len(mon_failure_labels),
366  xmin=0, xmax=len(mon_failure_labels))
L1TopoOnlineMonitoringConfig.L1TopoOnlineMonitorHypoToolGen
def L1TopoOnlineMonitorHypoToolGen(chainDict)
Definition: L1TopoOnlineMonitoringConfig.py:12
L1TopoOnlineMonitoringConfig.getL1TopoPhase1DQMonitor
def getL1TopoPhase1DQMonitor(flags, name='L1TopoDQMonitor', doSimMon=True, doHwMonCtp=False, doHwMon=False, doComp=False, doMultComp=False, forceCtp=False, logLevel=None, toolName="L1TopoMonitoringTool")
Definition: L1TopoOnlineMonitoringConfig.py:88
vtune_athena.format
format
Definition: vtune_athena.py:14
L1TopoOnlineMonitoringConfig.getL1TopoLabels
def getL1TopoLabels(flags, connectors={0:'LegacyTopo0', 1:'LegacyTopo1'}, bmax=128)
Definition: L1TopoOnlineMonitoringConfig.py:21
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
python.TriggerConfigAccess.getL1MenuAccess
L1MenuAccess getL1MenuAccess(flags=None)
Definition: TriggerConfigAccess.py:129
L1TopoOnlineMonitoringConfig.getL1TopoOnlineMonitorHypo
def getL1TopoOnlineMonitorHypo(flags)
Definition: L1TopoOnlineMonitoringConfig.py:8
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
L1TopoOnlineMonitoringConfig.getMultiplicityLabels
def getMultiplicityLabels(flags, topoModule)
Definition: L1TopoOnlineMonitoringConfig.py:52
GenericMonitoringTool
Definition: GenericMonitoringTool.py:1
L1TopoOnlineMonitoringConfig.Phase1TopoMonitoringCfg
def Phase1TopoMonitoringCfg(flags)
Definition: L1TopoOnlineMonitoringConfig.py:66
L1TopoOnlineMonitoringConfig.getL1TopoPhase1OnlineMonitor
def getL1TopoPhase1OnlineMonitor(flags, name='L1TopoOnlineMonitor', doSimMon=True, doHwMonCtp=False, doHwMon=False, doComp=False, doMultComp=False, forceCtp=False, logLevel=None, toolName="L1TopoMonitoringTool")
Definition: L1TopoOnlineMonitoringConfig.py:70
L1TopoOnlineMonitoringConfig.configureHistograms
def configureHistograms(alg, flags, doHwMonCtp, doHwMon, doComp, doMultComp)
Definition: L1TopoOnlineMonitoringConfig.py:220
str
Definition: BTagTrackIpAccessor.cxx:11