12 ''' Function to configure TileMBTSMonitorAlgorithm algorithm in the monitoring system.'''
14 kwargs.setdefault(
'useTrigger', (flags.DQ.useTrigger
and not flags.Input.isMC))
15 kwargs.setdefault(
'FillHistogramsPerMBTS',
True)
19 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
20 result = ComponentAccumulator()
22 from TileRecUtils.TileDQstatusConfig
import TileDQstatusAlgCfg
23 result.merge( TileDQstatusAlgCfg(flags) )
25 from TileGeoModel.TileGMConfig
import TileGMCfg
26 result.merge(TileGMCfg(flags))
28 from LArGeoAlgsNV.LArGMConfig
import LArGMCfg
29 result.merge(LArGMCfg(flags))
31 from TileConditions.TileCablingSvcConfig
import TileCablingSvcCfg
32 result.merge( TileCablingSvcCfg(flags) )
34 if kwargs[
'useTrigger']:
35 from TrigConfigSvc.TrigConfigSvcCfg
import L1ConfigSvcCfg
36 result.merge( L1ConfigSvcCfg(flags) )
38 from AthenaConfiguration.Enums
import BeamType, Format
39 if flags.Input.Format
is Format.POOL:
40 kwargs.setdefault(
'TileDigitsContainer',
'TileDigitsFlt')
44 from AthenaMonitoring
import AthMonitorCfgHelper
45 helper = AthMonitorCfgHelper(flags,
'TileMBTSMonAlgCfg')
48 from AthenaConfiguration.ComponentFactory
import CompFactory
49 tileMBTSMonAlg = helper.addAlgorithm(CompFactory.TileMBTSMonitorAlgorithm,
'TileMBTSMonAlg')
51 tileMBTSMonAlg.TriggerChain =
''
53 runNumber = flags.Input.RunNumbers[0]
56 if runNumber < 400000:
57 energyCuts = [60. / 222
for mbts
in range(0, numberOfMBTS)]
59 energyCuts = [0.1
for mbts
in range(0, numberOfMBTS)]
60 kwargs.setdefault(
"EnergyCuts", energyCuts)
62 for k, v
in kwargs.items():
63 setattr(tileMBTSMonAlg, k, v)
65 if 'FillHistogramsPerMBTS' in kwargs:
66 fillHistogramPerMBTS = kwargs[
'FillHistogramsPerMBTS']
67 elif hasattr(tileMBTSMonAlg,
"_descriptors"):
68 fillHistogramPerMBTS = tileMBTSMonAlg._descriptors[
'FillHistogramsPerMBTS'].default
70 fillHistogramPerMBTS = tileMBTSMonAlg.getDefaultProperty(
'FillHistogramsPerMBTS')
72 useTrigger = kwargs[
'useTrigger']
77 executeTimeGroup = helper.addGroup(tileMBTSMonAlg,
'TileMBTSMonExecuteTime',
'Tile/')
78 executeTimeGroup.defineHistogram(
'TIME_execute', path =
'MBTS', type=
'TH1F',
79 title =
'Time for execute TileMBTSMonAlg algorithm;time [#mus]',
80 xbins = 100, xmin = 0, xmax = 1000)
82 nMBTSPerSide = numberOfMBTS // 2
83 labelsMBTS = [
'MBTSA' + (
'0' if x < 10
else '') + str(x)
for x
in range(0, nMBTSPerSide)]
84 labelsMBTS += [
'MBTSC' + (
'0' if x < 10
else '') + str(x)
for x
in range(0, nMBTSPerSide)]
88 occupancyGroup = helper.addGroup(tileMBTSMonAlg,
'TileOccupancyMBTS',
'Tile')
89 occupancyGroup.defineHistogram(
'HitCounter;Occupancy', path =
'MBTS/Cell', type=
'TH1F',
90 xlabels = labelsMBTS, title =
'Run ' + run +
': MBTS Occupancy',
91 xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS)
94 energySummaryGroup = helper.addGroup(tileMBTSMonAlg,
'TileEnergySummaryMBTS',
'Tile')
95 energySummaryGroup.defineHistogram(
'EnergyCounter,SummaryEnergy;SummaryEnergy', path =
'MBTS/Cell', type=
'TProfile',
96 title =
'Run ' + run +
': Average MBTS Energy;;Average Energy [pC]',
97 xlabels = labelsMBTS, xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS)
100 timeSummaryGroup = helper.addGroup(tileMBTSMonAlg,
'TileTimeSummaryMBTS',
'Tile')
101 timeSummaryGroup.defineHistogram(
'TimeCounter,SummaryTime;SummaryTime', path =
'MBTS/Cell', type=
'TProfile',
102 title =
'Run ' + run +
': Average MBTS Time (Energy above threshold);;Average Time [ns]',
103 xlabels = labelsMBTS, xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS)
106 timeAGroup = helper.addGroup(tileMBTSMonAlg,
'TileTimeMBTSA',
'Tile')
107 timeAGroup.defineHistogram(
'TimeA;Time_A', path =
'MBTS/Cell', type=
'TH1F',
108 title =
'Run ' + run +
': Time of MBTS on A side;Time [ns]',
109 xbins = 151, xmin = -75.5, xmax = 75.5)
112 timeCGroup = helper.addGroup(tileMBTSMonAlg,
'TileTimeMBTSC',
'Tile')
113 timeCGroup.defineHistogram(
'TimeC;Time_C', path =
'MBTS/Cell', type=
'TH1F',
114 title =
'Run ' + run +
': Time of MBTS on C side;Time [ns]',
115 xbins = 151, xmin = -75.5, xmax = 75.5)
118 timeDifferenceGroup = helper.addGroup(tileMBTSMonAlg,
'TileTimeDifferenceMBTS',
'Tile')
119 timeDifferenceGroup.defineHistogram(
'TimeDifference;TimeDiff_A-C', path =
'MBTS/Cell', type=
'TH1F',
120 title =
'Run ' + run +
': Time difference between MBTS on A and C sides;Time [ns]',
121 xbins = 151, xmin = -75.5, xmax = 75.5)
124 timeDifferenceLBGroup = helper.addGroup(tileMBTSMonAlg,
'TileTimeDifferenceMBTSLB',
'Tile')
125 timeDifferenceLBGroup.defineHistogram(
'lumiBlock,TimeDifference;TimeDiff_A-C_LB', path =
'MBTS/Cell', type=
'TH2F',
126 title = (
'Run ' + run +
': Time difference between MBTS on A and C sides vs LumiBlock'
127 +
';Luminosity Block;Time difference A-side - C-side [ns]'),
128 xbins = 1000, xmin = -0.5, xmax = 999.5, ybins = 151, ymin = -75.5, ymax = 75.5,
129 opt =
'kAddBinsDynamically', merge =
'merge')
132 coincidentHitsGroup = helper.addGroup(tileMBTSMonAlg,
'TileCoincidentHitsMBTS',
'Tile')
133 coincidentHitsGroup.defineHistogram(
'CoincidentCounter1,CoincidentCounter2;CoincidentEnergyHits',
134 path =
'MBTS/Cell', type=
'TH2F', xlabels = labelsMBTS, ylabels = labelsMBTS,
135 title =
'Run ' + run +
': Coincident Hits (energy) between two MBTS counters',
136 xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS,
137 ybins = numberOfMBTS, ymin = 0, ymax = numberOfMBTS)
141 errorLabels = [
'General',
'Global CRC',
'ROD CRC',
'Frontend CRC',
'BCID',
'Header Format',
142 'Header Parity',
'Sample Format',
'Sample Parity',
'Memory Parity']
143 numberOfErrors = len(errorLabels)
144 errorsGroup = helper.addGroup(tileMBTSMonAlg,
'TileErrorsMBTS',
'Tile')
145 errorsGroup.defineHistogram(
'ErrorCounter,Error;ReadOutErrors', path =
'MBTS/Digit',
146 type=
'TH2F', xlabels = labelsMBTS, ylabels = errorLabels,
147 title =
'Run ' + run +
': Tile Readout Errors for MBTS counters',
148 xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS,
149 ybins = numberOfErrors, ymin = 0, ymax = numberOfErrors)
152 isCosmics = flags.Beam.Type
is BeamType.Cosmics
153 nEnergyBins = 550
if isCosmics
else 400
154 maxEnergy = 5
if isCosmics
else 80
156 if fillHistogramPerMBTS:
159 energyArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileEnergyMBTS', topPath =
'Tile/MBTS')
160 for postfix, tool
in energyArray.Tools.items():
161 mbtsCounter = int( postfix.split(
'_')[1] )
162 mbtsName = labelsMBTS[mbtsCounter]
163 title =
'Run ' + run +
': Energy of ' + mbtsName +
';Energy [pC]'
164 name =
'Energy;Energy_' + mbtsName
165 tool.defineHistogram(name, title = title, type =
'TH1F', path =
'Cell',
166 xbins = nEnergyBins, xmin = -0.5, xmax = maxEnergy)
169 energyLBArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileEnergyLBMBTS', topPath =
'Tile/MBTS')
170 for postfix, tool
in energyLBArray.Tools.items():
171 mbtsCounter = int( postfix.split(
'_')[1] )
172 mbtsName = labelsMBTS[mbtsCounter]
173 title =
'Run ' + run +
': Energy of ' + mbtsName +
' per lumiblock;Lumiblocks;Energy [pC]'
174 name =
'lumiBlock,Energy;EnergyLB_' + mbtsName
175 tool.defineHistogram(name, title = title, type =
'TProfile', path =
'Cell',
176 xbins = 1000, xmin = -0.5, xmax = 999.5, opt =
'kAddBinsDynamically', merge =
'merge')
179 timeArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileTimeMBTS', topPath =
'Tile/MBTS')
180 for postfix, tool
in timeArray.Tools.items():
181 mbtsCounter = int( postfix.split(
'_')[1] )
182 mbtsName = labelsMBTS[mbtsCounter]
183 title =
'Run ' + run +
': Time of ' + mbtsName +
';Time [ns]'
184 name =
'Time;Time_' + mbtsName
185 tool.defineHistogram(name, title = title, type =
'TH1F', path =
'Cell',
186 xbins = 151, xmin = -75.5, xmax = 75.5)
189 pedestalArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TilePedestalMBTS', topPath =
'Tile/MBTS')
190 for postfix, tool
in pedestalArray.Tools.items():
191 mbtsCounter = int( postfix.split(
'_')[1] )
192 mbtsName = labelsMBTS[mbtsCounter]
193 title =
'Run ' + run +
': Pedestal of ' + mbtsName +
';Channel pedestal in ADC counts'
194 name =
'Pedestal;Pedestal_' + mbtsName
195 tool.defineHistogram(name, title = title, type =
'TH1F', path =
'Digit',
196 xbins = 100, xmin = 20.5, xmax = 120.5)
199 hfnArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileHFNoiseMBTS', topPath =
'Tile/MBTS')
200 for postfix, tool
in hfnArray.Tools.items():
201 mbtsCounter = int( postfix.split(
'_')[1] )
202 mbtsName = labelsMBTS[mbtsCounter]
203 title =
'Run ' + run +
': High Frequency Noise of ' + mbtsName +
';Inter-sample RMS in ADC counts'
204 name =
'HFN;HFN_' + mbtsName
205 tool.defineHistogram(name, title = title, type =
'TH1F', path =
'Digit',
206 xbins = 100, xmin = 0, xmax = 5)
209 averagePulseArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileAveragePulseMBTS', topPath =
'Tile/MBTS')
210 for postfix, tool
in averagePulseArray.Tools.items():
211 mbtsCounter = int( postfix.split(
'_')[1] )
212 mbtsName = labelsMBTS[mbtsCounter]
213 title =
'Run ' + run +
': Average Pulse for digitized signals of ' + mbtsName
214 title +=
';TileCal Digital Sample;Average number of ADC counts'
215 name =
'SampleNumbers,Samples;AveragePulse_' + mbtsName
216 tool.defineHistogram(name, title = title, type =
'TProfile', path =
'Digit',
217 xbins = 7, xmin = -0.5, xmax = 6.5)
222 tileMBTSMonAlg.CTP_ID = [-1]
225 occupancyTrigGroup = helper.addGroup(tileMBTSMonAlg,
'TileTriggerOccupancyMBTS',
'Tile')
226 occupancyTrigGroup.defineHistogram(
'HitCounter;Occupancy_wTBP', path =
'MBTS/Cell', type=
'TH1F',
227 xlabels = labelsMBTS, title = f
'Run {run}: MBTS Occupancy with TBP fired',
228 xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS)
231 energySummaryTrigGroup = helper.addGroup(tileMBTSMonAlg,
'TileTriggerEnergySummaryMBTS',
'Tile')
232 energySummaryTrigGroup.defineHistogram(
'HitCounter,SummaryEnergy;SummaryEnergy_TBP', path =
'MBTS/Cell', type=
'TProfile',
233 title = f
'Run {run}: Average MBTS Energy with TBP fired;;Average Energy [pC]',
234 xlabels = labelsMBTS, xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS)
237 timeSummaryTrigGroup = helper.addGroup(tileMBTSMonAlg,
'TileTriggerTimeSummaryMBTS',
'Tile')
238 timeSummaryTrigGroup.defineHistogram(
'HitCounter,SummaryTime;SummaryTime_TBP', path =
'MBTS/Cell', type=
'TProfile',
239 title = f
'Run {run}: Average MBTS Time with TBP fired;;Average Time [ns]',
240 xlabels = labelsMBTS, xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS)
245 multiplicityGroup = helper.addGroup(tileMBTSMonAlg,
'TileTriggerMultiplicityMBTS' + side,
'Tile')
246 multiplicityTitle = f
'Run {run}: Average number of MBTS triggers on {side} side;BCID;Average # of Triggers'
247 multiplicityGroup.defineHistogram(f
'bcid,multiplicity{side};MBTS{side}TriggersVsBCID', path =
'MBTS/Trigger',
248 type=
'TProfile', title = multiplicityTitle, xbins = 3565, xmin = -0.5, xmax = 3564.5)
251 multiplicityPerSideGroup = helper.addGroup(tileMBTSMonAlg,
'TileTriggerMultiplicityPerSideMBTS',
'Tile')
252 multiplicityPerSideTitle = f
'Run {run}: Number of MBTS triggers per side with TBP fired'
253 multiplicityPerSideTitle +=
';# of Triggers on A side; # of Triggers on C side'
254 multiplicityPerSideGroup.defineHistogram(
'multiplicityA,multiplicityC;MBTSTriggersPerSide',
255 path =
'MBTS/Trigger', type=
'TH2F', title = multiplicityPerSideTitle,
256 xbins = nMBTSPerSide, xmin = -0.5, xmax = nMBTSPerSide - 0.5,
257 ybins = nMBTSPerSide, ymin = -0.5, ymax = nMBTSPerSide - 0.5)
260 triggerNames = [
'TBP',
'TAP',
'TAV']
261 triggerDescriptions = [
'before prescale',
'after prescale',
'after veto']
262 triggersArray = helper.addArray([len(triggerNames)], tileMBTSMonAlg,
'MBTS_Triggers', topPath =
'Tile/MBTS')
263 for postfix, tool
in triggersArray.Tools.items():
264 triggerIdx = int( postfix.split(
'_').pop() )
265 trigger = triggerNames[triggerIdx]
266 description = triggerDescriptions[triggerIdx]
267 tool.defineHistogram(f
'TriggerCounter;MBTS_Triggers_{trigger}', path =
'Trigger', type=
'TH1F',
268 xlabels = labelsMBTS, title = f
'Run {run}: MBTS triggers {description} ({trigger})',
269 xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS)
272 triggersInWinArray = helper.addArray([len(triggerNames)], tileMBTSMonAlg,
'MBTS_TriggersInWindow', topPath =
'Tile/MBTS')
273 for postfix, tool
in triggersInWinArray.Tools.items():
274 triggerIdx = int( postfix.split(
'_').pop() )
275 trigger = triggerNames[triggerIdx]
276 description = triggerDescriptions[triggerIdx]
277 tool.defineHistogram(f
'TriggerCounter;MBTS_TriggersInWindow_{trigger}', path =
'Trigger', type=
'TH1F',
278 xlabels = labelsMBTS, title = f
'Run {run}: MBTS triggers {description} ({trigger}) in CTP window',
279 xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS)
282 triggersSumLables = [
'A-Inner',
'A-Outer',
'A-Total',
'C-Inner',
'C-Outer',
'C-Total']
283 triggersSumArray = helper.addArray([len(triggerNames)], tileMBTSMonAlg,
'MBTS_TriggersSum', topPath =
'Tile/MBTS')
284 for postfix, tool
in triggersSumArray.Tools.items():
285 triggerIdx = int( postfix.split(
'_').pop() )
286 trigger = triggerNames[triggerIdx]
287 description = triggerDescriptions[triggerIdx]
288 tool.defineHistogram(f
'TriggerType;MBTS_TriggersSum_{trigger}', path =
'Trigger', type=
'TH1F',
289 xlabels = triggersSumLables, title = f
'Run {run}: Sum of MBTS triggers {description} ({trigger})',
290 xbins = len(triggersSumLables), xmin = 0, xmax = len(triggersSumLables))
293 coinTrigArray = helper.addArray([len(triggerNames)], tileMBTSMonAlg,
'MBTS_CoincidentTriggers', topPath =
'Tile/MBTS')
294 for postfix, tool
in coinTrigArray.Tools.items():
295 triggerIdx = int( postfix.split(
'_').pop() )
296 trigger = triggerNames[triggerIdx]
297 tool.defineHistogram(f
'CoincidentTrigger1,CoincidentTrigger2;MBTS_CoincidentTriggers_{trigger}',
298 path =
'Trigger', type=
'TH2F', xlabels = labelsMBTS, ylabels = labelsMBTS,
299 title = f
'Run {run}: Coincident {trigger}s fired between two MBTS counters',
300 xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS,
301 ybins = numberOfMBTS, ymin = 0, ymax = numberOfMBTS)
304 deltaBCIDSummaryArray = helper.addArray([len(triggerNames)], tileMBTSMonAlg,
'MBTS_DeltaBCID_Summary', topPath =
'Tile/MBTS')
305 for postfix, tool
in deltaBCIDSummaryArray.Tools.items():
306 triggerIdx = int( postfix.split(
'_').pop() )
307 trigger = triggerNames[triggerIdx]
308 tool.defineHistogram(f
'TriggerCounter,DeltaBCID;MBTS_DeltaBCID_Summary_{trigger}', path =
'Trigger', type=
'TProfile',
309 title = f
'Run {run}: BCID difference of {trigger} from Event BCID;;Average BCID delta',
310 xlabels = labelsMBTS, xbins = numberOfMBTS, xmin = 0, xmax = numberOfMBTS)
313 deltaBCIDArray = helper.addArray([len(triggerNames), numberOfMBTS], tileMBTSMonAlg,
'MBTS_DeltaBCID', topPath =
'Tile/MBTS')
314 for postfix, tool
in deltaBCIDArray.Tools.items():
315 elements = postfix.split(
'_')
316 mbtsCounter = int( elements.pop() )
317 triggerIdx = int( elements.pop() )
318 mbtsName = labelsMBTS[mbtsCounter]
319 trigger = triggerNames[triggerIdx]
320 deltaBCIDTitle = f
'Run {run}: {mbtsName} BCID difference of {trigger} signal'
321 deltaBCIDTitle += f
';Bunch crossing between {trigger} fire and L1Accept'
322 tool.defineHistogram(f
'DeltaBCID;MBTS_DeltaBCID_{trigger}_{mbtsName}', path =
'Trigger', type=
'TH1F',
323 title = deltaBCIDTitle, xbins = 19, xmin = -9.5, xmax = 9.5)
326 bcidArray = helper.addArray([len(triggerNames), numberOfMBTS], tileMBTSMonAlg,
'MBTS_BCID', topPath =
'Tile/MBTS')
327 for postfix, tool
in bcidArray.Tools.items():
328 elements = postfix.split(
'_')
329 mbtsCounter = int( elements.pop() )
330 triggerIdx = int( elements.pop() )
331 mbtsName = labelsMBTS[mbtsCounter]
332 trigger = triggerNames[triggerIdx]
333 bcidTitle = f
'Run {run}: {mbtsName} BCID of {trigger} signal;BCID'
334 tool.defineHistogram(f
'MBTS_BCID;MBTS_BCID_{trigger}_{mbtsName}', path =
'Trigger', type=
'TH1F',
335 title = bcidTitle, xbins = 3565, xmin = -0.5, xmax = 3564.5)
338 energyTrigArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileEnergyTrigMBTS', topPath =
'Tile/MBTS')
339 for postfix, tool
in energyTrigArray.Tools.items():
340 mbtsCounter = int( postfix.split(
'_')[1] )
341 mbtsName = labelsMBTS[mbtsCounter]
342 title = f
'Run {run}: Energy with TBP fired of {mbtsName};Energy [pC]'
343 name = f
'Energy;Energy_TBP_{mbtsName}'
344 tool.defineHistogram(name, title = title, type =
'TH1F', path =
'Cell',
345 xbins = nEnergyBins, xmin = -0.5, xmax = maxEnergy)
348 energyTrigLBArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileEnergyTrigLBMBTS', topPath =
'Tile/MBTS')
349 for postfix, tool
in energyTrigLBArray.Tools.items():
350 mbtsCounter = int( postfix.split(
'_')[1] )
351 mbtsName = labelsMBTS[mbtsCounter]
352 title = f
'Run {run}: Energy with TBP fired of {mbtsName} per lumiblock;Lumiblocks;Energy [pC]'
353 name = f
'lumiBlock,Energy;EnergyLB_TBP_{mbtsName}'
354 tool.defineHistogram(name, title = title, type =
'TProfile', path =
'Cell',
355 xbins = 1000, xmin = -0.5, xmax = 999.5, opt =
'kAddBinsDynamically', merge =
'merge')
358 timeTrigArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileTimeTrigMBTS', topPath =
'Tile/MBTS')
359 for postfix, tool
in timeTrigArray.Tools.items():
360 mbtsCounter = int( postfix.split(
'_')[1] )
361 mbtsName = labelsMBTS[mbtsCounter]
362 title = f
'Run {run}: Time with TBP fired of {mbtsName};Time [ns]'
363 name = f
'Time;Time_TBP_{mbtsName}'
364 tool.defineHistogram(name, title = title, type =
'TH1F', path =
'Cell',
365 xbins = 151, xmin = -75.5, xmax = 75.5)
368 efficiencyTrigArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileEfficiencyTrigMBTS', topPath =
'Tile/MBTS')
369 for postfix, tool
in efficiencyTrigArray.Tools.items():
370 mbtsCounter = int( postfix.split(
'_')[1] )
371 mbtsName = labelsMBTS[mbtsCounter]
372 title = f
'Run {run}: Efficiency of LVL1 vs readout {mbtsName}'
373 title +=
';Energy [pc];Fraction of events with TBP'
374 name = f
'Energy,Efficiency;Efficiency_TBP_{mbtsName}'
375 tool.defineHistogram(name, title = title, type =
'TProfile', path =
'Cell',
376 xbins = 100, xmin = -0.55, xmax = 9.55)
379 averageTrigPulseArray = helper.addArray([numberOfMBTS], tileMBTSMonAlg,
'TileAveragePulseTrigMBTS', topPath =
'Tile/MBTS')
380 for postfix, tool
in averageTrigPulseArray.Tools.items():
381 mbtsCounter = int( postfix.split(
'_')[1] )
382 mbtsName = labelsMBTS[mbtsCounter]
383 title = f
'Run {run}: Average Pulse with TBP fired for digitized signals of {mbtsName}'
384 title +=
';TileCal Digital Sample;Average number of ADC counts'
385 name = f
'SampleNumbers,Samples;AveragePulse_TBP_{mbtsName}'
386 tool.defineHistogram(name, title = title, type =
'TProfile', path =
'Digit',
387 xbins = 7, xmin = -0.5, xmax = 6.5)
389 accumalator = helper.result()
390 result.merge(accumalator)