ATLAS Offline Software
Functions
PprMonitorAlgorithm Namespace Reference

Functions

def PprMonitoringConfig (inputFlags)
 
def BinErrors (crs)
 

Function Documentation

◆ BinErrors()

def PprMonitorAlgorithm.BinErrors (   crs)

Definition at line 593 of file PprMonitorAlgorithm.py.

593 def BinErrors(crs):
594 
595  cr0 = crs.split("cr")[1]
596  cr1 = crs.split("cr")[2]
597  cr2= crs.split("cr")[3]
598  cr3= crs.split("cr")[4]
599 
600  yErrorLabels = []
601  for i in range(0, 16,2):
602  yErrorLabels.append(str(cr0)+'/'+str(i))
603  for i in range(0, 16,2):
604  yErrorLabels.append(str(cr1)+'/'+str(i))
605  for i in range(0, 16,2):
606  yErrorLabels.append(str(cr2)+'/'+str(i))
607  for i in range(0, 16,2):
608  yErrorLabels.append(str(cr3)+'/'+str(i))
609 
610  return yErrorLabels
611 
612 

◆ PprMonitoringConfig()

def PprMonitorAlgorithm.PprMonitoringConfig (   inputFlags)
Function to configure LVL1 Ppr algorithm in the monitoring system.

Definition at line 5 of file PprMonitorAlgorithm.py.

5 def PprMonitoringConfig(inputFlags):
6  '''Function to configure LVL1 Ppr algorithm in the monitoring system.'''
7 
8  import math
9  # get the component factory - used for getting the algorithms
10  from AthenaConfiguration.ComponentFactory import CompFactory
11  from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12  result = ComponentAccumulator()
13 
14  # use L1Calo's special MonitoringCfgHelper
15  from TrigT1CaloMonitoring.LVL1CaloMonitoringConfig import L1CaloMonitorCfgHelper
16  helper = L1CaloMonitorCfgHelper(inputFlags,CompFactory.PprMonitorAlgorithm,'PprMonAlg')
17 
18  # get any algorithms
19  PprMonAlg = helper.alg
20 
21  # add any steering
22  groupName = 'PprMonitor' # the monitoring group name is also used for the package name
23  PprMonAlg.PackageName = groupName
24 
25  # Steering properties
26  threshADC = 50
27  PprMonAlg.TT_ADC_HitMap_Thresh = threshADC # ADC cut for hit maps
28 
29  sliceNo = 15
30  PprMonAlg.SliceNo = sliceNo # Max number of timeslices in the readout
31 
32  threshVec = [0, 1, 3, 5, 10, 20, 30, 50] # LUT thresholds
33  PprMonAlg.LUTHitMap_ThreshVec = threshVec
34 
35  # Environment
36  #isOnline = inputFlags.Trigger.Online.isPartition
37 
38  # Histogram paths
39  devPath = 'Developer/PprMonAlg'
40  expPath = 'Expert/PpmTrex'
41 
42  # Trigger tower plots: eta-phi granularity
43  etabins = [-4.9,-4.475,-4.050,-3.625,-3.2,-3.1,-2.9,
44  -2.7,-2.5,-2.4,-2.3,-2.2,-2.1,-2.0,-1.9,
45  -1.8,-1.7,-1.6,-1.5,-1.4,-1.3,-1.2,-1.1,
46  -1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,
47  -0.2,-0.1,0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,
48  0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,
49  1.8,1.9,2.0,2.1,2.2,2.3,2.4,2.5,2.7,2.9,
50  3.1,3.2,3.625,4.050,4.475,4.9]
51 
52  etabins_HAD_1D = [-4.9,-4.050,-3.2,-3.1,-2.9,
53  -2.7,-2.5,-2.4,-2.3,-2.2,-2.1,-2.0,-1.9,
54  -1.8,-1.7,-1.6,-1.5,-1.4,-1.3,-1.2,-1.1,
55  -1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,
56  -0.2,-0.1,0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,
57  0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,
58  1.8,1.9,2.0,2.1,2.2,2.3,2.4,2.5,2.7,2.9,
59  3.1,3.2,4.050,4.9]
60 
61  phibins = 64
62  phimin = 0
63  phimax_2d = 64
64  phimax_1d = 2.*math.pi
65  maxEnergyRange = 256
66  bcn = 3564 # Max number of bunches
67 
68 
71  histPath_dev = devPath+'/Outputs'
72  histPath_exp = expPath+'/Outputs'
73  histPath_det = expPath+'/Outputs/detail'
74 
75  # LUT per BCN (Both EM & HAD together)
76  helper.defineHistogram('BCID;ppm_1d_tt_lutcp_LutPerBCN',
77  fillGroup='groupLUTCP',
78  title='Number of LUT-CP > 5 GeV/2 per BC; Bunch crossing; # of LUT above limit',
79  type='TH1F', path=histPath_det,
80  hanConfig={
81  "description": "Number of LUT-CP > 5 GeV/2 per BC."
82  },
83  xbins=bcn, xmin=0, xmax=bcn,
84  cutmask='mask_cpET_5')
85 
86  # EM distributions
87  helper.defineHistogram('eta_TT;ppm_em_1d_tt_lutcp_Eta',
88  fillGroup='groupLUTCP_EM',
89  title='EM LUT-CP: Distribution of peak in #eta; #eta',
90  type='TH1F', path=histPath_dev,
91  xbins=etabins,
92  cutmask='mask_cpET_0')
93 
94  helper.defineHistogram('phiTT_1D;ppm_em_1d_tt_lutcp_Phi',
95  fillGroup='groupLUTCP_EM',
96  title='EM LUT-CP: Distribution of peak in #phi; #phi',
97  type='TH1F', path=histPath_dev,
98  xbins=phibins, xmin=phimin, xmax=phimax_1d)
99 
100  helper.defineHistogram('cpET_TT;ppm_em_1d_tt_lutcp_Et',
101  fillGroup='groupLUTCP_EM',
102  title='EM LUT-CP: Distribution of peak; EM LUT peak [GeV/2]',
103  type='TH1F', path=histPath_dev,
104  xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange,
105  cutmask='mask_cpET_0')
106 
107  # HAD distributions
108  helper.defineHistogram('eta_TT;ppm_had_1d_tt_lutcp_Eta',
109  fillGroup='groupLUTCP_HAD',
110  title='HAD LUT-CP: Distribution of peak in #eta; #eta',
111  type='TH1F', path=histPath_exp,
112  hanConfig={
113  "description": "HAD LUT-CP: Distribution of peak in #eta."
114  },
115  xbins=etabins_HAD_1D,
116  cutmask='mask_cpET_0')
117 
118  helper.defineHistogram('phiTT_1D;ppm_had_1d_tt_lutcp_Phi',
119  fillGroup='groupLUTCP_HAD',
120  title='HAD LUT-CP: Distribution of peak in #phi; #phi',
121  type='TH1F', path=histPath_exp,
122  hanConfig={
123  "description": "HAD LUT-CP: Distribution of peak in #phi."
124  },
125  xbins=phibins, xmin=phimin, xmax=phimax_1d)
126 
127  helper.defineHistogram('cpET_TT;ppm_had_1d_tt_lutcp_Et',
128  fillGroup='groupLUTCP_HAD',
129  title='HAD LUT-CP: Distribution of peak; HAD LUT peak [GeV/2]',
130  type='TH1F', path=histPath_exp,
131  hanConfig={
132  "display" : "LogX,LogY",
133  "description": "HAD LUT-CP: Distribution of peak."
134  },
135  xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange,
136  cutmask='mask_cpET_0')
137 
138  # Eta-phi maps
139  helper.defineHistogram('etaTT_2D,phiTT_2D,cpET_TT_2D;ppm_em_2d_etaPhi_tt_lutcp_AverageEt',
140  fillGroup='groupLUTCP_EM',
141  title='EM Average LUT-CP Et for Et > 5 GeV/2',
142  type='TProfile2D', path=histPath_dev,
143  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
144 
145  helper.defineHistogram('etaTT_2D,phiTT_2D,cpET_TT_2D;ppm_had_2d_etaPhi_tt_lutcp_AverageEt',
146  fillGroup='groupLUTCP_HAD',
147  title='HAD Average LUT-CP Et for Et > 5 GeV/2',
148  type='TProfile2D', path=histPath_det,
149  hanConfig={
150  "display" : "SetPalette(1),LogZ",
151  "description": "HAD Average LUT-CP Et for Et > 5 GeV/2."
152  },
153  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
154 
155  # Eta-phi maps per threshold (low stat).
156  # Offline: fill on a per-LB basis and then merge into low-stat plots
157  # Online: refresh every 10 LB
158 
159  layers = ['EM', 'HAD']
160  iThresh = list(range(0, len(threshVec)))
161 
162  for layer in layers:
163  histPath = histPath_dev
164  for i in iThresh:
165  groupname = 'groupLUTCP_{0}_{1}'.format(layer, threshVec[i])
166  if layer=='HAD':
167  histPath = histPath_exp if i in [0, 5] else histPath_det
168  helper.defineHistogram('etaTT_2D,phiTT_2D;ppm_{0}_2d_etaPhi_tt_lutcp_Threshold0{1}'.format(layer.lower(), i),
169  fillGroup=groupname,
170  title='#eta - #phi map of {0} LUT-CP > {1} GeV/2'.format(layer, threshVec[i]),
171  type='TH2D', path=histPath,
172  hanConfig={
173  "display" : "SetPalette(1),LogZ",
174  "description": '#eta - #phi map of {0} LUT-CP > {1} GeV/2'.format(layer, threshVec[i])
175  },
176  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
177 
178 
179 
182  histPath_dev = devPath+'/Outputs'
183  histPath_exp = expPath+'/Outputs'
184  histPath_det = expPath+'/Outputs/detail'
185 
186  # LUT per BCN
187  helper.defineHistogram('BCID;ppm_1d_tt_lutjep_LutPerBCN',
188  fillGroup='groupLUTJEP',
189  title='Number of LUT-JEP > 5 GeV per BC; Bunch crossing; # of LUT above limit',
190  type='TH1F', path=histPath_det,
191  hanConfig={
192  "description": "Number of LUT-JEP > 5 GeV per BC."
193  },
194  xbins=bcn, xmin=0, xmax=bcn,
195  cutmask='mask_jepET_5')
196 
197  # EM distributions
198  helper.defineHistogram('eta_TT;ppm_em_1d_tt_lutjep_Eta',
199  fillGroup='groupLUTJEP_EM',
200  title='EM LUT-JEP: Distribution of peak in #eta',
201  type='TH1F', path=histPath_dev,
202  xbins=etabins,
203  cutmask='mask_jepET_0')
204 
205  helper.defineHistogram('phiTT_1D;ppm_em_1d_tt_lutjep_Phi',
206  fillGroup='groupLUTJEP_EM',
207  title='EM LUT-JEP: Distribution of peak in #phi; #phi',
208  type='TH1F', path=histPath_dev,
209  xbins=phibins, xmin=phimin, xmax=phimax_1d)
210 
211  helper.defineHistogram('jepET_TT;ppm_em_1d_tt_lutjep_Et',
212  fillGroup='groupLUTJEP_EM',
213  title='EM LUT-JEP: Distribution of peak; EM LUT peak [GeV]',
214  type='TH1F', path=histPath_dev,
215  xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange,
216  cutmask='mask_jepET_0')
217 
218  # HAD distributions
219  helper.defineHistogram('eta_TT;ppm_had_1d_tt_lutjep_Eta',
220  fillGroup='groupLUTJEP_HAD',
221  title='HAD LUT-JEP: Distribution of peak in #eta',
222  type='TH1F', path=histPath_exp,
223  hanConfig={
224  "description": "HAD LUT-JEP: Distribution of peak in #eta."
225  },
226  xbins=etabins_HAD_1D,
227  cutmask='mask_jepET_0')
228 
229  helper.defineHistogram('phiTT_1D;ppm_had_1d_tt_lutjep_Phi',
230  fillGroup='groupLUTJEP_HAD',
231  title='HAD LUT-JEP: Distribution of peak in #phi; #phi',
232  type='TH1F', path=histPath_exp,
233  hanConfig={
234  "description": "HAD LUT-JEP: Distribution of peak in #phi."
235  },
236  xbins=phibins, xmin=phimin, xmax=phimax_1d)
237 
238  helper.defineHistogram('jepET_TT;ppm_had_1d_tt_lutjep_Et',
239  fillGroup='groupLUTJEP_HAD',
240  title='HAD LUT-JEP: Distribution of peak; HAD LUT peak [GeV]',
241  type='TH1F', path=histPath_exp,
242  hanConfig={
243  "display" : "LogX,LogY",
244  "description": "HAD LUT-JEP: Distribution of peak."
245  },
246  xbins=maxEnergyRange-1, xmin=1, xmax=maxEnergyRange,
247  cutmask='mask_jepET_0')
248 
249  # Eta-phi maps
250  helper.defineHistogram('etaTT_2D,phiTT_2D,jepET_TT_2D;ppm_em_2d_etaPhi_tt_lutjep_AverageEt',
251  fillGroup='groupLUTJEP_EM',
252  title='EM Average LUT-JEP Et for Et > 5 GeV',
253  type='TProfile2D', path=histPath_dev,
254  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
255 
256  helper.defineHistogram('etaTT_2D,phiTT_2D,jepET_TT_2D;ppm_had_2d_etaPhi_tt_lutjep_AverageEt',
257  fillGroup='groupLUTJEP_HAD',
258  title='HAD Average LUT-JEP Et for Et > 5 GeV',
259  type='TProfile2D', path=histPath_det,
260  hanConfig={
261  "display" : "SetPalette(1),LogZ",
262  "description": "HAD Average LUT-JEP Et for Et > 5 GeV."
263  },
264  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
265 
266  for layer in layers:
267  histPath = histPath_dev
268  for i in iThresh:
269  if layer=='HAD':
270  histPath = histPath_exp if i in [0, 5] else histPath_det
271  groupname = 'groupLUTJEP_{0}_{1}'.format(layer, threshVec[i])
272  helper.defineHistogram('etaTT_2D,phiTT_2D;ppm_{0}_2d_etaPhi_tt_lutjep_Threshold0{1}'.format(layer.lower(), i),
273  fillGroup=groupname,
274  title='#eta - #phi map of {0} LUT-JEP > {1} GeV'.format(layer, threshVec[i]),
275  type='TH2D', path=histPath,
276  hanConfig={
277  "display" : "SetPalette(1),LogZ",
278  "description": '#eta - #phi map of {0} LUT-JEP > {1} GeV'.format(layer, threshVec[i]),
279  },
280  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
281 
282 
283 
286  histPath_dev = devPath+'/Inputs'
287  histPath_exp = expPath+'/Inputs'
288  histPath_det = expPath+'/Inputs/detail'
289 
290  # EM tower maps
291  helper.defineHistogram('etaTT_2D,phiTT_2D;ppm_em_2d_etaPhi_tt_adc_HitMap',
292  fillGroup='groupADC_EM',
293  title='#eta - #phi map of EM FADC > {0} for triggered timeslice; Tower #eta; Tower #phi'.format(threshADC),
294  type='TH2F', path=histPath_dev,
295  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
296 
297  helper.defineHistogram('etaTT_2D,phiTT_2D,adcTT;ppm_em_2d_etaPhi_tt_adc_ProfileHitMap',
298  fillGroup='groupADC_EM',
299  title='#eta - #phi profile map of EM FADC > {0} for triggered timeslice; Tower #eta; Tower #phi'.format(threshADC),
300  type='TProfile2D', path=histPath_dev,
301  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
302 
303  # HAD tower maps
304  helper.defineHistogram('etaTT_2D,phiTT_2D;ppm_had_2d_etaPhi_tt_adc_HitMap',
305  fillGroup='groupADC_HAD',
306  title='#eta - #phi map of HAD FADC > {0} for triggered timeslice; Tower #eta; Tower #phi'.format(threshADC),
307  type='TH2F', path=histPath_exp,
308  hanConfig={
309  "display" : "SetPalette(1),LogZ",
310  "description" : "#eta - #phi map of HAD FADC > {0} for triggered timeslice."
311  },
312  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
313 
314  helper.defineHistogram('etaTT_2D,phiTT_2D,adcTT;ppm_had_2d_etaPhi_tt_adc_ProfileHitMap',
315  fillGroup='groupADC_HAD',
316  title='#eta - #phi profile map of HAD FADC > {0} for triggered timeslice; Tower #eta; Tower #phi'.format(threshADC),
317  type='TProfile2D', path=histPath_exp,
318  hanConfig={
319  "display" : "SetPalette(1),LogZ",
320  "description": "#eta - #phi profile map of HAD FADC > {0} for triggered timeslice."
321  },
322  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
323 
324  # Triggered time-slice
325  helper.defineHistogram('adcPeak;ppm_em_1d_tt_adc_TriggeredSlice',
326  fillGroup='groupTimeslice_EM',
327  title='Number of the EM triggered slice; # Slice',
328  type='TH1F', path=histPath_dev,
329  xbins=sliceNo, xmin=0, xmax=sliceNo)
330 
331  helper.defineHistogram('adcPeak;ppm_had_1d_tt_adc_TriggeredSlice',
332  fillGroup='groupTimeslice_HAD',
333  title='Number of the HAD triggered slice; # Slice',
334  type='TH1F', path=histPath_det,
335  hanConfig={
336  "display" : "LogY",
337  "description" : "Number of the HAD triggered slice."
338  },
339  xbins=sliceNo, xmin=0, xmax=sliceNo)
340 
341  helper.defineHistogram('maxADC;ppm_em_1d_tt_adc_MaxTimeslice',
342  fillGroup='groupTimeslice_EM',
343  title='EM distribution of maximum timeslice; slice',
344  type='TH1D', path=histPath_dev,
345  xbins=sliceNo, xmin=0, xmax=sliceNo)
346 
347  helper.defineHistogram('maxADC;ppm_had_1d_tt_adc_MaxTimeslice',
348  fillGroup='groupTimeslice_HAD',
349  title='HAD distribution of maximum timeslice; slice',
350  type='TH1D', path=histPath_exp,
351  hanConfig={
352  "display" : "SetPalette(1)",
353  "description": "HAD distribution of maximum timeslice."
354  },
355  xbins=sliceNo, xmin=0, xmax=sliceNo)
356 
357  helper.defineHistogram('etaTT_2D,phiTT_2D,maxADCPlus1;ppm_em_2d_etaPhi_tt_adc_MaxTimeslice',
358  fillGroup='groupTimeslice_EM',
359  title='Average maximum timeslice for EM signal (TS:1-15); Tower #eta; Tower #phi',
360  type='TProfile2D', path=histPath_dev,
361  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
362 
363  helper.defineHistogram('etaTT_2D,phiTT_2D,maxADCPlus1;ppm_had_2d_etaPhi_tt_adc_MaxTimeslice',
364  fillGroup='groupTimeslice_HAD',
365  title='Average maximum timeslice for HAD signal (TS:1-15); Tower #eta; Tower #phi',
366  type='TProfile2D', path=histPath_exp,
367  hanConfig={
368  "description": "Average maximum timeslice for HAD signal (TS:1-15)."
369  },
370  xbins=etabins, ybins=phibins, ymin=phimin, ymax=phimax_2d)
371 
372  # Bits of BCID logic word
373  bcidBitsLabels = ['none (40 MHz)', 'satBC only', 'peakF only', 'satBC & peakF', 'sat80BC & peakF', 'sat80BC & sat40BC', 'sat80BC only']
374  helper.defineHistogram('bcidBits,adcBCID;ppm_2d_tt_adc_BcidBits',
375  fillGroup='groupTimeslice',
376  title='PPM: PeakADC Vs. Bits of BCID Logic Word',
377  type='TH2I', path=histPath_det,
378  hanConfig={
379  "description": "PPM: PeakADC Vs. Bits of BCID Logic Word."
380  },
381  xbins=7, xmin=0, xmax=7, xlabels=bcidBitsLabels, ybins=1024, ymin=0, ymax=1024)
382 
383  # High/low threshold pass cases (Sat80 BCID)
384  sat80Labels = ['no saturated ADC', 'none/none', 'none/low', 'none/high', 'low/low', 'low/high', 'high/high', 'else']
385  helper.defineHistogram('sat80Word;ppm_1d_tt_adc_HLCase',
386  fillGroup='groupTimeslice',
387  title= 'PPM: Sat80 thresholds passed by ADC[n-2.5] / ADC[n-1.5]',
388  type='TH1I', path=histPath_det,
389  hanConfig={
390  "description": "PPM: Sat80 thresholds passed by ADC[n-2.5] / ADC[n-1.5]."
391  },
392  xbins=8, xmin=0, xmax=8, xlabels=sat80Labels)
393 
394  # Signal shape profiles
395  partitionsEM = ['LArFCAL1C', 'LArEMECC', 'LArOverlapC', 'LArEMBC', 'LArEMBA', 'LArOverlapA', 'LArEMECA', 'LArFCAL1A']
396  partitionsHAD = [ 'LArFCAL23C', 'LArHECC', 'TileEBC', 'TileLBC', 'TileLBA', 'TileEBA', 'LArHECA', 'LArFCAL23A']
397 
398  #signalsEM = helper.addArray([partitionsEM], PprMonAlg, 'groupTimeslice_EM', topPath=mainDir)
399  histPath = histPath_dev
400  for p in partitionsEM:
401  helper.defineHistogram('slice,wADC;ppm_em_1d_tt_adc_SignalProfile{0}'.format(p),
402  fillGroup='groupTimeslice_EM'+'_'+p,
403  title='Signal Shape Profile for {0}; Timeslice'.format(p),
404  type='TProfile', path=histPath,
405  xbins=sliceNo, xmin=0, xmax=sliceNo)
406 
407  #signalsHAD = helper.addArray([partitionsHAD], PprMonAlg, 'groupTimeslice_HAD', topPath=mainDir)
408  for p in partitionsHAD:
409  if p.startswith('Tile'):
410  histPath = histPath_det
411  helper.defineHistogram('slice,wADC;ppm_had_1d_tt_adc_SignalProfile{0}'.format(p),
412  fillGroup='groupTimeslice_HAD'+'_'+p,
413  title='Signal Shape Profile for {0}; Timeslice'.format(p),
414  type='TProfile', path=histPath,
415  hanConfig={
416  "description": "Signal Shape Profile for {0}.".format(p)
417  },
418  xbins=sliceNo, xmin=0, xmax=sliceNo)
419 
420 
423 
424  # Note: use opt='kAlwaysCreate' for error plots so that empty plots will still be published, for sanity checks
425  # MW, Feb 2025: removed kAlwaysCreate for EM which is disabled since 2025
426  histPath_dev = devPath+'/Errors'
427  histPath_exp = expPath+'/Errors'
428  histPath_det = expPath+'/Errors/detail'
429 
430  # Pedestal correction over-/underflows (EM)
431  helper.defineHistogram('etaTT;ppm_em_1d_pedOverflow_Eta',
432  fillGroup='groupErrors_EM',
433  title='EM : Overflow of pedestal correction;#eta',
434  type='TH1F', path=histPath_dev,
435  xbins=etabins,
436  cutmask='mask_PedCorrOverflow',
437  opt='')
438 
439  helper.defineHistogram('etaTT;ppm_em_1d_pedUnderflow_Eta',
440  fillGroup='groupErrors_EM',
441  title='EM : Underflow of pedestal correction;#eta',
442  type='TH1F', path=histPath_dev,
443  xbins=etabins,
444  cutmask='mask_PedCorrUnderflow',
445  opt='')
446 
447  #Pedestal correction over-/underflows (HAD)
448  helper.defineHistogram('etaTT;ppm_had_1d_pedOverflow_Eta',
449  fillGroup='groupErrors_HAD',
450  title='HAD : Overflow of pedestal correction;#eta',
451  type='TH1F', path=histPath_det,
452  hanConfig={
453  "description": "Overflow of pedestal correction."
454  },
455  xbins=etabins_HAD_1D,
456  cutmask='mask_PedCorrOverflow',
457  opt='')
458 
459  helper.defineHistogram('etaTT;ppm_had_1d_pedUnderflow_Eta',
460  fillGroup='groupErrors_HAD',
461  title='HAD : Underflow of pedestal correction;#eta',
462  type='TH1F', path=histPath_det,
463  hanConfig={
464  "description": "Underflow of pedestal correction."
465  },
466  xbins=etabins_HAD_1D,
467  cutmask='mask_PedCorrUnderflow',
468  opt='')
469 
470  # MCM error block (input G-Link frame)
471  globalError_xlabels_mcmerr = [
472  "ChannelDisabled",
473  "MCMAbsent",
474  "Timeout",
475  "ASICFull",
476  "EventMismatch",
477  "BunchMismatch",
478  "FIFOCorrupt",
479  "PinParity",
480  ]
481 
482  # SubStatus error block (S-Link payload)
483  globalError_xlabels_substat = [
484  "GLinkParity",
485  "GLinkProtocol",
486  "BCNMismatch",
487  "FIFOOverflow",
488  "ModuleError",
489  " ",
490  "GLinkDown",
491  "GLinkTimeout",
492  ]
493 
494  # SubStatus Error histograms
495  helper.defineHistogram('bit_2D;ppm_1d_SubStatErrorSummary',
496  fillGroup='group1DSubStatErrorSummary',
497  title='Summary of SubStatus Word Errors',
498  type='TH1F', path=histPath_exp,
499  hanConfig={
500  "algorithm" : "Histogram_Empty",
501  "description" : "Summary of SubStatus Word Errors."
502  },
503  xbins=8, xmin=0, xmax=8,
504  xlabels=globalError_xlabels_substat,
505  opt='kAlwaysCreate')
506 
507  helper.defineHistogram('eventMonitor,bit_2D;ppm_2d_SubStatErrorEventNumbers',
508  fillGroup='groupSubStatErrorEventNumbers',
509  title='SubStatus Word Errors Event Numbers;Events with Error/Mismatch;;',
510  type='TH2I', path=histPath_det,
511  hanConfig={
512  "description": "SubStatus Word Errors Event Numbers."
513  },
514  xbins=10, xmin=0, xmax=10, ybins=8, ymin=0, ymax=8,
515  ylabels=globalError_xlabels_substat,
516  opt='')
517 
518  helper.defineHistogram('bit_2D,y_2D;ppm_2d_SubStatError03',
519  fillGroup='groupSubStatError03',
520  title='SubStatus Word Errors (crates 0-3)',
521  type='TH2I', path=histPath_dev,
522  xbins=8, xmin=0, xmax=8, ybins=64, ymin=0, ymax=64,
523  xlabels=globalError_xlabels_substat,
524  ylabels=BinErrors('cr0cr1cr2cr3'),
525  opt='')
526 
527  helper.defineHistogram('bit_2D,y_2D;ppm_2d_SubStatError47',
528  fillGroup='groupSubStatError47',
529  title='SubStatus Word Errors (crates 4-7)',
530  type='TH2I', path=histPath_det,
531  hanConfig={
532  "display" : "SetPalette(1),SetGridx,SetGridy",
533  "description" : "SubStatus Word Errors (crates 4-7)."
534  },
535  xbins=8, xmin=0, xmax=8, ybins=64, ymin=0, ymax=64,
536  xlabels=globalError_xlabels_substat,
537  ylabels=BinErrors('cr4cr5cr6cr7'),
538  opt='')
539 
540  # MCM Error Field histograms
541  helper.defineHistogram('bit_2D;ppm_1d_MCMErrorSummary',
542  fillGroup='group1DMCMErrorSummary',
543  title='Summary of MCM Errors',
544  type='TH1F', path=histPath_exp,
545  hanConfig={
546  "algorithm" : "Histogram_Empty",
547  "description" : "Summary of MCM Errors."
548  },
549  xbins=8, xmin=0, xmax=8,
550  xlabels=globalError_xlabels_mcmerr,
551  opt='kAlwaysCreate')
552 
553  helper.defineHistogram('eventMonitor,bit_2D;ppm_2d_MCMErrorEventNumbers',
554  fillGroup='groupMCMErrorEventNumbers',
555  title='MCM Error Field Event Numbers;Events with Error/Mismatch;;',
556  type='TH2I', path=histPath_det,
557  hanConfig={
558  "description": "MCM Error Field Event Numbers."
559  },
560  xbins=10, xmin=0, xmax=10, ybins=8, ymin=0, ymax=8,
561  ylabels=globalError_xlabels_mcmerr,
562  opt='')
563 
564  helper.defineHistogram('bit_2D,y_2D;ppm_2d_MCMErrorField03',
565  fillGroup='groupMCMErrorField03',
566  title='MCM Error Field (crates 0-3)',
567  type='TH2I', path=histPath_dev,
568  xbins=8, xmin=0, xmax=8, ybins=64, ymin=0, ymax=64,
569  xlabels=globalError_xlabels_mcmerr,
570  ylabels=BinErrors('cr0cr1cr2cr3'),
571  opt='')
572 
573  helper.defineHistogram('bit_2D,y_2D;ppm_2d_MCMErrorField47',
574  fillGroup='groupMCMErrorField47',
575  title='MCM Error Field (crates 4-7)',
576  type='TH2I', path=histPath_det,
577  hanConfig={
578  "display" : "SetPalette(1),SetGridx,SetGridy",
579  "description": "MCM Error Field (crates 4-7)."
580  },
581  xbins=8, xmin=0, xmax=8, ybins=64, ymin=0, ymax=64,
582  xlabels=globalError_xlabels_mcmerr,
583  ylabels=BinErrors('cr4cr5cr6cr7'),
584  opt='')
585 
586 
587  # Finish up
588  acc = helper.result()
589  result.merge(acc)
590  return result
591 
592 
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
vtune_athena.format
format
Definition: vtune_athena.py:14
PprMonitorAlgorithm.BinErrors
def BinErrors(crs)
Definition: PprMonitorAlgorithm.py:593
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
PprMonitorAlgorithm.PprMonitoringConfig
def PprMonitoringConfig(inputFlags)
Definition: PprMonitorAlgorithm.py:5
str
Definition: BTagTrackIpAccessor.cxx:11