ATLAS Offline Software
Functions
LArDigitalTriggMonAlg Namespace Reference

Functions

def LArDigitalTriggMonConfig (flags, larLATOMEBuilderAlg, nsamples=32, streamTypes=[])
 

Function Documentation

◆ LArDigitalTriggMonConfig()

def LArDigitalTriggMonAlg.LArDigitalTriggMonConfig (   flags,
  larLATOMEBuilderAlg,
  nsamples = 32,
  streamTypes = [] 
)
Function to configures some algorithms in the monitoring system.

Definition at line 30 of file LArDigitalTriggMonAlg.py.

30 def LArDigitalTriggMonConfig(flags,larLATOMEBuilderAlg, nsamples=32, streamTypes=[]):
31  '''Function to configures some algorithms in the monitoring system.'''
32  # The following class will make a sequence, configure algorithms, and link
33  # them to GenericMonitoringTools
34 
35  from AthenaMonitoring.AthMonitorCfgHelper import AthMonitorCfgHelper
36  helper = AthMonitorCfgHelper(flags,'LArDigitalTriggMonAlgCfg')
37 
38  from LArMonitoring.GlobalVariables import lArDQGlobals
39 
40  from AthenaCommon.Logging import logging
41  mlog = logging.getLogger( 'LArDigitalTriggMon' )
42 
43  if not flags.DQ.enableLumiAccess:
44  from LumiBlockComps.LuminosityCondAlgConfig import LuminosityCondAlgCfg
45  helper.resobj.merge(LuminosityCondAlgCfg(flags))
46 
47  #get SC onl-offl mapping from DB
48  from LArCabling.LArCablingConfig import LArOnOffIdMappingSCCfg
49  helper.resobj.merge(LArOnOffIdMappingSCCfg(flags))
50 
51  # and elec. calib. coeffs
52  from LArConfiguration.LArElecCalibDBConfig import LArElecCalibDBSCCfg
53  helper.resobj.merge(LArElecCalibDBSCCfg(flags, condObjs=["Ramp","DAC2uA", "Pedestal", "uA2MeV", "MphysOverMcal", "OFC", "Shape", "HVScaleCorr"]))
54 
55 
56 
57  larDigitalTriggMonAlg = helper.addAlgorithm(CompFactory.LArDigitalTriggMonAlg('larDigitalTriggMonAlg'))
58  larDigitalTriggMonAlg.ProblemsToMask=["maskedOSUM"] #highNoiseHG","highNoiseMG","highNoiseLG","deadReadout","deadPhys"]
59 
60  hasEtId = False
61  hasEt = False
62  hasAdc = False
63  hasAdcBas = False
64  for i in range(0,len(streamTypes)):
65  mlog.info("runinfo.streamTypes()[i]: "+str(streamTypes[i]))
66  if streamTypes[i] == "SelectedEnergy":
67  hasEtId = True
68  larDigitalTriggMonAlg.LArRawSCContainerKey = "SC_ET_ID"
69  if streamTypes[i] == "Energy":
70  hasEt = True
71  larDigitalTriggMonAlg.LArRawSCContainerKey = "SC_ET"
72  if streamTypes[i] == "RawADC":
73  hasAdc = True
74  larLATOMEBuilderAlg.LArDigitKey = "SC"
75  larLATOMEBuilderAlg.isADCBas = False
76  larDigitalTriggMonAlg.LArDigitContainerKey = "SC"
77  if streamTypes[i] == "ADC":
78  hasAdcBas = True
79  larDigitalTriggMonAlg.isADCBas = True
80  larDigitalTriggMonAlg.LArDigitContainerKey = "SC_ADC_BAS"
81  larLATOMEBuilderAlg.isADCBas = True
82  larLATOMEBuilderAlg.LArDigitKey = "SC_ADC_BAS"
83 
84  if (hasEtId and hasEt): #prefer EtId if both in recipe
85  hasEt = False
86  #larDigitalTriggMonAlg.EtName = "SC_ET_ID"
87 
88  if (hasAdc and hasAdcBas): #prefer Raw Adc if both in recipe
89  hasAdc = False
90  larDigitalTriggMonAlg.isADCBas=False
91 
92  mlog.info("Mux settings from COOL:")
93  mlog.info("has ET Id: "+str(hasEtId))
94  mlog.info("has ET: "+str(hasEt))
95  mlog.info("has ADC: "+str(hasAdc))
96  mlog.info("has ADC Bas: "+str(hasAdcBas))
97 
98  SCGroupName="SC"
99  larDigitalTriggMonAlg.SCMonGroup=SCGroupName
100  # uncomment if needed:
101  #larDigitalTriggMonAlg.FileKey="CombinedMonitoring"
102 
103  SCGroup = helper.addGroup(
104  larDigitalTriggMonAlg,
105  SCGroupName,
106  '/LArDigitalTrigger/',
107  'run'
108  )
109 
110  sc_hist_path='/'
111 
112  LatomeDetBinMapping = dict([
113  ("0x48",{"Subdet":"FCALC","Bin":1}),
114  ("0x4c",{"Subdet":"EMEC/HECC","Bin":3}),
115  ("0x44",{"Subdet":"EMECC","Bin":11}),
116  ("0x4a",{"Subdet":"EMB/EMECC","Bin":27}),
117  ("0x42",{"Subdet":"EMBC","Bin":43}),
118  ("0x41",{"Subdet":"EMBA","Bin":59}),
119  ("0x49",{"Subdet":"EMB/EMECA","Bin":75}),
120  ("0x43",{"Subdet":"EMECA","Bin":91}),
121  ("0x4b",{"Subdet":"EMEC/HECA","Bin":107}),
122  ("0x47",{"Subdet":"FCALA","Bin":115})
123  ])
124  NLatomeBins=117
125  NLatomeBins_side=59
126 
127  BinLabel_LATOME=[]
128  BinLabel_LATOME_A=[]
129  BinLabel_LATOME_C=[]
130  phi=0
131  for bb in range (0,NLatomeBins):
132  Label=""
133  for detID in LatomeDetBinMapping:
134  if bb==(LatomeDetBinMapping[detID]["Bin"]-1):
135  Label=LatomeDetBinMapping[detID]["Subdet"]
136  phi=1
137  break
138  if bb < NLatomeBins_side:
139  BinLabel_LATOME_C+=[Label+str(phi)]
140  else:
141  BinLabel_LATOME_A+=[Label+str(phi)]
142 
143  BinLabel_LATOME+=[Label+str(phi)]
144  phi+=1
145 
146 
147 
148 
149  iphi_bins_dict = {"ALL": 63, "EMB": 63, "EMEC": 63, "HEC": 63, "FCAL": 15}
150 
151 
152 
153 
154  SCGroup.defineHistogram('lumi_block,event_size;EventSize_vs_LB',
155  title='Digital trigger event size per LB; LumiBlock; Event size [MB]',
156  type='TProfile',
157  path=sc_hist_path,
158  xbins=lArDQGlobals.LB_Bins, xmin=lArDQGlobals.LB_Min, xmax=lArDQGlobals.LB_Max)
159 
160 
161 
162 
163  partGroup_digi = helper.addArray([larDigitalTriggMonAlg.LayerNames], larDigitalTriggMonAlg, 'LArDigitalTriggerMon_digi', topPath='/LArDigitalTrigger/')
164  partGroup_sc = helper.addArray([larDigitalTriggMonAlg.LayerNames], larDigitalTriggMonAlg, 'LArDigitalTriggerMon_sc', topPath='/LArDigitalTrigger/')
165 
166  for part in larDigitalTriggMonAlg.LayerNames:
167  selStrPart = {}
168  for sel in selStr.keys():
169  selStrPart[sel] = "in "+part+" "+selStr[sel]
170  iphi_bins = 63
171  for key in iphi_bins_dict.keys():
172  if part.startswith(key):
173  iphi_bins = iphi_bins_dict[key]
174 
175  if part == "ALL":
176  partxbins=lArDQGlobals.SuperCell_Variables["etaRange"]["All"]["All"]
177  partybins=lArDQGlobals.SuperCell_Variables["phiRange"]["All"]["All"]
178  topPath=""
179  else:
180  topPath="PerPartition/"
181  Part = part[:-2]
182  if Part == "FCAL":
183  Part = "FCal"
184  Side = part[-1]
185  Sampling = part[-2]
186  if Sampling == "P":
187  Sampling = "0"
188  partxbins=lArDQGlobals.SuperCell_Variables["etaRange"][Part][Side][Sampling]
189  partybins=lArDQGlobals.SuperCell_Variables["phiRange"][Part][Side][Sampling]
190 
191 
192 
193 
194  for thisSel in [ "passDigiNom", "badNotMasked"]:
195  thisTopPath=f"/{thisSel}/{topPath}"
196  # Histos that we only want for all partitions/layers combined lalala
197  if part == "ALL":
198  partGroup_digi.defineHistogram('Digi_part_maxpos,Digi_part_partition;Partition_vs_maxSamplePosition_'+thisSel,
199  title='Partition vs. position of max sample '+selStrPart[thisSel],
200  cutmask='Digi_part_'+thisSel,
201  type='TH2F',
202  path=thisTopPath,
203  xbins=nsamples,xmin=0.5,xmax=nsamples+0.5,
204  ybins=lArDQGlobals.N_Partitions, ymin=-0.5, ymax=lArDQGlobals.N_Partitions-0.5,
205  xlabels = [str(x) for x in range(1,nsamples+1)],
206  ylabels=lArDQGlobals.Partitions,
207  pattern=[(part)])
208 
209  partGroup_digi.defineHistogram('Digi_part_latomesourceidbin,Digi_part_adc;ADCFullRange_vs_LATOME_'+thisSel,
210  title='ADC vs LATOME name '+selStrPart[thisSel]+'; ; ADC',
211  cutmask='Digi_part_'+thisSel,
212  type='TH2F',
213  path=thisTopPath,
214  xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1,
215  ybins=500, ymin=-2, ymax=2500, #raw ADC is 12 bit
216  xlabels=BinLabel_LATOME,
217  pattern=[(part)])
218 
219  partGroup_digi.defineHistogram('Digi_part_latomesourceidbin,Digi_part_pedestal;Pedestal_vs_LATOME_'+thisSel,
220  title='Pedestal vs LATOME name '+selStrPart[thisSel]+'; ; Pedestal',
221  cutmask='Digi_part_'+thisSel,
222  type='TH2F',
223  path=thisTopPath,
224  xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1,
225  ybins=500, ymin=-2, ymax=2500, #raw ADC is 12 bit
226  xlabels=BinLabel_LATOME,
227  pattern=[(part)])
228 
229  partGroup_digi.defineHistogram('Digi_part_latomesourceidbin,Digi_part_maxpos;MaxSamplePosition_vs_LATOME_'+thisSel,
230  title='Position of max sample vs. LATOME '+selStrPart[thisSel],
231  type='TH2F',
232  cutmask='Digi_part_'+thisSel,
233  path=thisTopPath,
234  xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1,
235  ybins=nsamples,ymin=0.5,ymax=nsamples+0.5,
236  xlabels=BinLabel_LATOME,
237  ylabels = [str(x) for x in range(1,nsamples+1)],
238  pattern=[(part)])
239 
240  partGroup_digi.defineHistogram('Digi_part_latomesourceidbin,Digi_part_diff_adc0_ped;Diff_ADC0_Ped_vs_LATOME_'+thisSel,
241  title='ADC[0] - Pedestal vs LATOME name '+selStrPart[thisSel]+'; ; ADC[0] - Pedestal',
242  type='TH2F',
243  cutmask='Digi_part_'+thisSel,
244  path=thisTopPath,
245  xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1,
246  ybins=64, ymin=-32, ymax=32,
247  xlabels=BinLabel_LATOME,
248  pattern=[(part)])
249 
250  partGroup_digi.defineHistogram('Digi_part_latomesourceidbin,Digi_part_diff_adc_ped_norm;Diff_ADC_Ped_Norm_vs_LATOME_'+thisSel,
251  title='(ADC-ped)/fabs(ADC_max-ped) '+selStrPart[thisSel]+'; LATOME Name; (ADC - pedestal) / fabs(ADC_max - pedestal)',
252  type='TH2F',
253  cutmask='Digi_part_'+thisSel,
254  path=thisTopPath,
255  xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1,
256  ybins=64, ymin=-32, ymax=32,
257  xlabels=BinLabel_LATOME,
258  pattern=[(part)])
259 
260 
261 
262  partGroup_digi.defineHistogram('Digi_part_eta,Digi_part_phi;Coverage_Eta_Phi_'+thisSel,
263  title='SC coverage '+selStrPart[thisSel]+': #phi vs #eta;#eta;#phi',
264  type='TH2F',
265  path=thisTopPath+'/Coverage',
266  cutmask='Digi_part_'+thisSel,
267  xbins=partxbins,
268  ybins=partybins,
269  pattern=[(part)])
270 
271 
272  if not flags.Common.isOnline: continue # Skip the remaining histos if we are running offline
273 
274  if thisSel != "passDigiNom": continue
275  partGroup_digi.defineHistogram('Digi_part_eta,Digi_part_phi,Digi_part_diff_adc0_ped;Coverage_Diff_ADC0_Ped_'+thisSel,
276  title='ADC[0] - Pedestal'+selStrPart[thisSel]+': #phi vs #eta;#eta;#phi',
277  type='TProfile2D',
278  cutmask='Digi_part_'+thisSel,
279  path=thisTopPath+'/Coverage',
280  xbins=partxbins,
281  ybins=partybins,
282  pattern=[(part)])
283 
284 
285 
286  partGroup_digi.defineHistogram('Digi_part_BCID,Digi_part_iphi,Digi_part_diff_adc_ped;Diff_ADC_Ped_Per_BCID_Per_iphi_'+thisSel,
287  title='ADC - Pedestal (all samples) '+selStrPart[thisSel]+': iphi vs BCID;BCID;iphi',
288  type='TProfile2D',
289  cutmask='Digi_part_'+thisSel,
290  path=thisTopPath,
291  xbins=3564,xmin=-0.5,xmax=3563.5,
292  ybins=iphi_bins+1,ymin=0,ymax=iphi_bins+1, # Make a lardqglobals for ieta iphi?
293  pattern=[(part)])
294 
295 
296 
297 
298 
299 
300  partGroup_digi.defineHistogram('Digi_part_sampos,Digi_part_adc;ADCZoom_vs_SamplePosition_'+thisSel,
301  title='ADC (zoom) vs sample position '+selStrPart[thisSel],
302  cutmask='Digi_part_'+thisSel,
303  type='TH2F',
304  path=thisTopPath,
305  xbins=nsamples,xmin=0.5,xmax=nsamples+0.5,
306  xlabels = [str(x) for x in range(1,nsamples+1)],
307  ybins=750, ymin=0, ymax=1300, #start from 0 otherwise miss endcap pedestals
308  pattern=[(part)])
309 
310  partGroup_digi.defineHistogram('Digi_part_sampos,Digi_part_adc;ADCFullRange_vs_SamplePosition_'+thisSel,
311  title='ADC vs sample position '+selStrPart[thisSel],
312  cutmask='Digi_part_'+thisSel,
313  type='TH2F',
314  path=thisTopPath,
315  xbins=nsamples,xmin=0.5,xmax=nsamples+0.5,
316  xlabels = [str(x) for x in range(1,nsamples+1)],
317  ybins=500, ymin=0, ymax=5000, #raw ADC is 12 bit
318  pattern=[(part)])
319 
320  partGroup_digi.defineHistogram('Digi_part_sampos,Digi_part_pedestal;Pedestal_vs_SamplePosition_'+thisSel,
321  title='Pedestal vs sample position '+selStrPart[thisSel],
322  cutmask='Digi_part_'+thisSel,
323  type='TH2F',
324  path=thisTopPath,
325  xbins=nsamples,xmin=0.5,xmax=nsamples+0.5,
326  xlabels = [str(x) for x in range(1,nsamples+1)],
327  ybins=500, ymin=0, ymax=5000, #raw ADC is 12 bit
328  pattern=[(part)])
329 
330  partGroup_digi.defineHistogram('Digi_part_diff_adc0_ped;Diff_ADC0_Ped_'+thisSel,
331  title='LATOME (ADC[0]-ped) '+selStrPart[thisSel]+'; (ADC - pedestal)',
332  type='TH1F',
333  cutmask='Digi_part_'+thisSel,
334  path=thisTopPath,
335  xbins=50,xmin=-25,xmax=25,
336  pattern=[(part)])
337 
338  partGroup_digi.defineHistogram('Digi_part_sampos,Digi_part_diff_adc_ped_norm;Diff_ADC_Ped_Norm_vs_SamplePosition_'+thisSel,
339  title='(ADC-ped)/fabs(ADC_max-ped) '+selStrPart[thisSel]+'; Sample position; (ADC - pedestal) / fabs(ADC_max - pedestal)',
340  type='TH2F',
341  cutmask='Digi_part_'+thisSel,
342  path=thisTopPath,
343  ybins=40,ymin=-1,ymax=1,
344  xbins=nsamples,xmin=0.5,xmax=nsamples+0.5,
345  xlabels = [str(x) for x in range(1,nsamples+1)],
346  pattern=[(part)])
347 
348  partGroup_digi.defineHistogram('Digi_part_BCID, Digi_part_adc;ADC_vs_BCID_'+thisSel,
349  title='ADC value vs BCID '+selStrPart[thisSel]+'; BCID; ADC Value',
350  type='TProfile',
351  cutmask='Digi_part_'+thisSel,
352  path=thisTopPath,
353  xbins=3564,xmin=-0.5,xmax=3563.5,
354  ybins=500, ymin=0, ymax=5000,
355  pattern=[(part)])
356 
357  partGroup_digi.defineHistogram('Digi_part_BCID, Digi_part_diff_adc0_ped;Diff_ADC0_Ped_vs_BCID_'+thisSel,
358  title='ADC[0] - Ped value vs BCID '+selStrPart[thisSel]+'; BCID; ADC[0] Value',
359  type='TProfile',
360  cutmask='Digi_part_'+thisSel,
361  path=thisTopPath,
362  xbins=3564,xmin=-0.5,xmax=3563.5,
363  ybins=500, ymin=-5, ymax=5,
364  pattern=[(part)])
365 
366 
367 
368 
369  for thisSel in [ "passSCNom", "passSCNom1", "passSCNom10", "passSCNom10tauGt3", "saturNotMasked", "OFCbOFNotMasked", "onlofflEmismatch", "notMaskedEoflNe0", "notMaskedEoflGt1"]:
370  thisTopPath=f"/{thisSel}/{topPath}"
371  # Histos that we only want for all partitions/layers combined lalala
372  if part == "ALL":
373  partGroup_sc.defineHistogram('SC_part_latomesourceidbin,SC_part_et_onl;SC_ET_Onl_vs_LATOME_'+thisSel,
374  title='SC ET [GeV] vs LATOME name '+selStrPart[thisSel]+'; ; ET SC [GeV]',
375  type='TH2F',
376  cutmask='SC_part_'+thisSel,
377  path=thisTopPath,
378  xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1,
379  ybins=200, ymin=-10, ymax=200,
380  xlabels=BinLabel_LATOME,
381  pattern=[(part)])
382 
383 
384  partGroup_sc.defineHistogram('SC_part_LB,SC_part_latomesourceidbin;LB_vs_LATOME_'+thisSel,
385  title='LATOME name vs LB '+selStrPart[thisSel]+';LB;LATOME',
386  type='TH2F',
387  cutmask='SC_part_'+thisSel,
388  path=thisTopPath,
389  xbins=lArDQGlobals.LB_Bins, xmin=lArDQGlobals.LB_Min, xmax=lArDQGlobals.LB_Max,
390  ybins=NLatomeBins,ymin=1,ymax=NLatomeBins+1,
391  ylabels=BinLabel_LATOME,
392  pattern=[(part)])
393 
394  partGroup_sc.defineHistogram('SC_part_time,SC_part_et_ofl;time_vs_et_ofl_'+thisSel,
395  title='SC coverage '+selStrPart[thisSel]+': #tau vs ET ofl;#tau;ET ofl',
396  type='TH2F',
397  cutmask='SC_part_'+thisSel,
398  path=thisTopPath,
399  xbins=500,xmin=-50,xmax=50,
400  ybins=500,ymin=-10,ymax=70,
401  pattern=[(part)])
402 
403 
404  partGroup_sc.defineHistogram('SC_part_latomesourceidbin,SC_part_time;MeanOfflineLATOMEtime_vs_LATOME_'+thisSel,
405  title='Average LATOME #tau from Offline computation per LATOME'+selStrPart[thisSel]+'; LATOME ; #tau [ns]',
406  type='TH2F',
407  cutmask='SC_part_'+thisSel,
408  path=thisTopPath,
409  xbins=NLatomeBins,xmin=1,xmax=NLatomeBins+1,
410  ybins=200, ymin=-50, ymax=50,
411  xlabels=BinLabel_LATOME,
412  pattern=[(part)])
413 
414  partGroup_sc.defineHistogram('SC_part_LB,SC_part_latomesourceidbin,SC_part_time;MeanOfflineLATOMEtime_perLB_perLATOME_'+thisSel,
415  title='SC #tau '+selStrPart[thisSel]+': LATOME vs LB;LB;LATOME',
416  type='TProfile2D',
417  cutmask='SC_part_'+thisSel,
418  path=thisTopPath,
419  xbins=lArDQGlobals.LB_Bins, xmin=lArDQGlobals.LB_Min, xmax=lArDQGlobals.LB_Max,
420  ybins=NLatomeBins,ymin=1,ymax=NLatomeBins+1,
421  ylabels=BinLabel_LATOME,
422  pattern=[(part)])
423 
424  partGroup_sc.defineHistogram('SC_part_LB,SC_part_time;MeanOfflineLATOMEtime_vs_LB_'+thisSel,
425  title='Average LATOME #tau from Offline computation per LB '+selStrPart[thisSel]+'; LumiBloc; #tau [ns]',
426  type='TProfile',
427  cutmask='SC_part_'+thisSel,
428  path=thisTopPath,
429  xbins=lArDQGlobals.LB_Bins, xmin=lArDQGlobals.LB_Min, xmax=lArDQGlobals.LB_Max,
430  pattern=[(part)])
431 
432 
433 
434 
435  partGroup_sc.defineHistogram('SC_part_eta,SC_part_phi;Coverage_Eta_Phi_'+thisSel,
436  title='SC coverage '+selStrPart[thisSel]+': #phi vs #eta;#eta;#phi',
437  type='TH2F',
438  cutmask='SC_part_'+thisSel,
439  path=thisTopPath+'/Coverage',
440  xbins=partxbins,
441  ybins=partybins,
442  pattern=[(part)])
443 
444 
445  partGroup_sc.defineHistogram('SC_part_time;OfflineLATOMEtime_'+thisSel,
446  title='LATOME #tau from Offline Computation '+selStrPart[thisSel]+';#tau [ns]; Evts;',
447  type='TH1F',
448  cutmask='SC_part_'+thisSel,
449  path=thisTopPath,
450  xbins=100,xmin=-25,xmax=25,
451  pattern=[(part)])
452 
453 
454  if not flags.Common.isOnline: continue # Skip the remaining histos if we are running offline
455 
456  if thisSel != "passSCNom": continue
457 
458  partGroup_sc.defineHistogram('SC_part_eta,SC_part_phi,SC_part_et_onl;Coverage_Et_Onl_'+thisSel,
459  title='SC Energy '+selStrPart[thisSel]+': #phi vs #eta;#eta;#phi',
460  type='TProfile2D',
461  cutmask='SC_part_'+thisSel,
462  path=thisTopPath+'/Coverage',
463  xbins=partxbins,
464  ybins=partybins,
465  pattern=[(part)])
466 
467  partGroup_sc.defineHistogram('SC_part_eta,SC_part_phi,SC_part_time;Coverage_OfflineLATOMEtime_'+thisSel,
468  title='LATOME #tau from Offline Computation '+selStrPart[thisSel]+': #phi vs #eta;#eta;#phi',
469  type='TProfile2D',
470  cutmask='SC_part_'+thisSel,
471  path=thisTopPath+'/Coverage',
472  xbins=partxbins,
473  ybins=partybins,
474  pattern=[(part)])
475 
476  partGroup_sc.defineHistogram('SC_part_et_onl,SC_part_et_ofl;ET_Ofl_vs_ET_Onl_'+thisSel,
477  title='LATOME ET vs Offline Computation '+selStrPart[thisSel]+'; ET Onl;ET Offl [GeV]',
478  type='TH2F',
479  cutmask='SC_part_'+thisSel,
480  path=thisTopPath,
481  xbins=0,xmin=0,xmax=20,
482  ybins=0,ymin=0,ymax=20,
483  pattern=[(part)])
484 
485  partGroup_sc.defineHistogram('SC_part_et_diff;ET_Diff_OnlOfl_'+thisSel,
486  title='LATOME ET vs Offline Computation '+selStrPart[thisSel]+'; ET Onl - ET Offl [GeV]; Evts;',
487  type='TH1F',
488  cutmask='SC_part_'+thisSel,
489  path=thisTopPath,
490  xbins=200,xmin=-10,xmax=10,
491  pattern=[(part)])
492 
493 
494  partGroup_sc.defineHistogram('SC_part_et_onl;SC_ET_Onl_'+thisSel,
495  title='SC eT [GeV] '+selStrPart[thisSel],
496  type='TH1F',
497  cutmask='SC_part_'+thisSel,
498  path=thisTopPath,
499  xbins=500, xmin=-100, xmax=400,
500  pattern=[(part)])
501 
502 
503  partGroup_sc.defineHistogram('SC_part_BCID,SC_part_time;MeanOfflineLATOMEtime_vs_BCID_'+thisSel,
504  title='Average LATOME #tau from Offline computation per BCID '+selStrPart[thisSel]+'; BCID; #tau [ns]',
505  type='TProfile',
506  cutmask='SC_part_'+thisSel,
507  path=thisTopPath,
508  xbins=3564,xmin=-0.5,xmax=3563.5,
509  pattern=[(part)])
510 
511  partGroup_sc.defineHistogram('SC_part_BCID,SC_part_et_onl_muscaled;AvEnergyVsBCID_'+thisSel,
512  title='Average Energy vs BCID '+selStrPart[thisSel]+'; BCID; Energy per SC [MeV]',
513  type='TProfile',
514  cutmask='SC_part_'+thisSel,
515  path=thisTopPath,
516  xbins=3564,xmin=-0.5,xmax=3563.5,
517  ybins=10, ymin=-20, ymax=20,
518  pattern=[(part)])
519 
520 
521  return helper.result()
522 
523 
python.LuminosityCondAlgConfig.LuminosityCondAlgCfg
def LuminosityCondAlgCfg(flags, useOnlineLumi=None, suffix=None)
Definition: LuminosityCondAlgConfig.py:17
LArCablingConfig.LArOnOffIdMappingSCCfg
def LArOnOffIdMappingSCCfg(configFlags)
Definition: LArCablingConfig.py:65
LArDigitalTriggMonAlg.LArDigitalTriggMonConfig
def LArDigitalTriggMonConfig(flags, larLATOMEBuilderAlg, nsamples=32, streamTypes=[])
Definition: LArDigitalTriggMonAlg.py:30
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
python.LArElecCalibDBConfig.LArElecCalibDBSCCfg
def LArElecCalibDBSCCfg(flags, condObjs, sqlite=None)
Definition: LArElecCalibDBConfig.py:126
str
Definition: BTagTrackIpAccessor.cxx:11