85 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
88 from AthenaMonitoring
import AthMonitorCfgHelper
89 helper = AthMonitorCfgHelper(inputFlags,
'ZdcAthMonitorCfg')
91 from AthenaConfiguration.ComponentFactory
import CompFactory
92 zdcMonAlg = helper.addAlgorithm(CompFactory.ZdcMonitorAlgorithm,
'ZdcMonAlg')
94 from ZdcRec.ZdcRecConfig
import SetConfigTag
96 print (
'ZdcMonitorAlgorithm.py: Running with config tag ', config)
99 zdcMonAlg.EnableZDCSingleSideTriggers = inputFlags.DQ.useTrigger
and inputFlags.Input.TriggerStream ==
'calibration_ZDCCalib'
100 zdcMonAlg.CalInfoOn =
'physics_' in inputFlags.Input.TriggerStream
or inputFlags.Input.TriggerStream ==
'express_express'
101 zdcMonAlg.EnableUCCTriggers = inputFlags.DQ.useTrigger
and inputFlags.Input.TriggerStream ==
'physics_UCC'
102 zdcMonAlg.IsOnline = inputFlags.Common.isOnline
103 zdcMonAlg.IsInjectedPulse = inputFlags.Input.TriggerStream ==
'calibration_ZDCInjCalib' or inputFlags.Input.TriggerStream ==
'calibration_DcmDummyProcessor'
104 zdcMonAlg.IsStandalone = inputFlags.Input.TriggerStream ==
'calibration_DcmDummyProcessor'
106 if zdcMonAlg.IsInjectedPulse:
107 from AthenaMonitoring.AtlasReadyFilterConfig
import AtlasReadyFilterCfg
110 zdcMonAlg.IsPEBStream =
'calibration_' in inputFlags.Input.TriggerStream
111 zdcMonAlg.IsPPMode =
'pp' in config
112 zdcMonAlg.IspOMode =
'pO' in config
113 zdcMonAlg.IsOOMode =
'OO' in config
114 zdcMonAlg.EnableOOpOTriggers = (zdcMonAlg.IspOMode
or zdcMonAlg.IsOOMode)
and inputFlags.DQ.useTrigger
and (
'physics_' in inputFlags.Input.TriggerStream
or inputFlags.Input.TriggerStream ==
'calibration_ZDCCalib')
116 phys_stream_trig_map = {
117 "physics_MinBias": [
'HLT_mb_sptrk_L1TRT_FILLED',
'HLT_mb_sptrk_L1jTE10',
'HLT_mb_sptrk_L1ZDC_OR',
'HLT_mb_sptrk_L1ZDC_LOR',
'HLT_noalg_L1ZDC_OR_EMPTY',
'HLT_noalg_L1ZDC_OR_UNPAIRED_NONISO',
'HLT_noalg_L1ZDC_LOR_EMPTY',
'HLT_noalg_L1ZDC_LOR_UNPAIRED_NONISO'],
118 "physics_UPC": [
"L1_ZDC_XOR_jTE10_VjTE200",
"L1_TRT_VjTE50",
"L1_1ZDC_NZDC_jTE10_VjTE200",
"L1_5ZDC_A_5ZDC_C_jTE5_VjTE200",
"HLT_noalg_L1TRT_VjTE50"],
119 "physics_PC": [
"HLT_mb_sptrk_L1ZDC_A_C_VTE50",
"L1_ZDC_A_C_VTE50",
"HLT_noalg_pc_L1TE50_VTE600.0ETA49",
"L1_TE50_VTE600.0ETA49"],
120 "physics_Standby": [
"HLT_noalg_L1Standby"]
123 OOpOTriggerChains = phys_stream_trig_map.get(inputFlags.Input.TriggerStream, [])
125 OOpOCTPIDtoL1TriggerStreamMap = {
126 "calibration_ZDCCalib": {
142 OOpOCTPIDtoL1TriggerMap = OOpOCTPIDtoL1TriggerStreamMap.get(inputFlags.Input.TriggerStream, {})
143 OOpOL1TriggerChainsFromCTP =
list(OOpOCTPIDtoL1TriggerMap.values())
144 OOpOTriggerChains += OOpOL1TriggerChainsFromCTP
146 zdcMonAlg.OOpOTriggers = OOpOTriggerChains
147 zdcMonAlg.OOpOL1TriggerFromCTPIDMap = OOpOCTPIDtoL1TriggerMap
149 zdcMonAlg.RunNumber = inputFlags.Input.RunNumbers[0]
if len(inputFlags.Input.RunNumbers) > 0
else 0
150 if (len(inputFlags.Input.RunNumbers) == 0):
151 print (
'ZdcMonitorAlgorithm.py: WARNING the list in the input flag Input.RunNumbers is empty - run number not set! Likely to use default pulser setting')
152 elif (len(inputFlags.Input.RunNumbers) > 1):
153 print (
'ZdcMonitorAlgorithm.py: WARNING the list in the input flag Input.RunNumbers has more than one element - retrieving pulser-setting configuration using the first run number! May cause misconfiguration for the other run numbers')
155 zdcMonAlg.EnableZDC = inputFlags.Detector.EnableZDC_ZDC
156 zdcMonAlg.EnableZDCPhysics = zdcMonAlg.EnableZDC
and not zdcMonAlg.IsInjectedPulse
157 zdcMonAlg.EnableRPD = inputFlags.Detector.EnableZDC_RPD
and not zdcMonAlg.IsInjectedPulse
158 zdcMonAlg.EnableRPDAmp = zdcMonAlg.EnableRPD
159 zdcMonAlg.EnableCentroid = zdcMonAlg.EnableRPD
161 print (
"ZdcMonitorAlgorithm.py: IsInjectedPulse? ",zdcMonAlg.IsInjectedPulse)
162 print (
"ZdcMonitorAlgorithm.py: IsPPMode? ",zdcMonAlg.IsPPMode)
163 print (
"ZdcMonitorAlgorithm.py: IspOMode? ",zdcMonAlg.IspOMode)
164 print (
"ZdcMonitorAlgorithm.py: IsOOMode? ",zdcMonAlg.IsOOMode)
165 print (
"ZdcMonitorAlgorithm.py: EnableOOpOTriggers? ",zdcMonAlg.EnableOOpOTriggers)
171 lumi_block_max = 2000
172 n_lumi_block_bins_coarse = 400
174 n_energy_bins_default = 200
176 n_time_centroid_bins_default = 100
177 n_module_amp_coarse_bins = 100
178 n_module_amp_fine_bins = 200
179 n_mod_fraction_bins_default = 100
181 n_HG_LG_amp_ratio_bins = 120
182 n_HG_LG_time_diff_bins = 50
184 module_chisq_min = 0.1
185 module_chisq_max = 800000
186 module_chisq_nbins = 80
187 module_chisq_over_amp_min = 0.01
188 module_chisq_over_amp_max = 3000
189 module_chisq_over_amp_nbins = 80
190 module_chisq_over_amp_linear_max = 50
191 module_chisq_over_amp_linear_nbins = 200
196 zdcMonAlg.ZDCModuleChisqHistMinValue = module_chisq_min
197 zdcMonAlg.ZDCModuleChisqHistMaxvalue = module_chisq_max
198 zdcMonAlg.ZDCModuleChisqHistNumBins = module_chisq_nbins
199 zdcMonAlg.ZDCModuleChisqOverAmpHistMinValue = module_chisq_over_amp_min
200 zdcMonAlg.ZDCModuleChisqOverAmpHistMaxvalue = module_chisq_over_amp_max
201 zdcMonAlg.ZDCModuleChisqOverAmpHistNumBins = module_chisq_over_amp_nbins
203 zdcMonAlg.EnergyCutForModuleFractMonitor = 400
if zdcMonAlg.IsPPMode
or zdcMonAlg.IspOMode
or zdcMonAlg.IsOOMode
else 13400
204 zdcMonAlg.triggerSideA =
"L1_ZDC_PP_A" if zdcMonAlg.IsPPMode
else "L1_ZDC_A"
205 zdcMonAlg.triggerSideC =
"L1_ZDC_PP_C" if zdcMonAlg.IsPPMode
else "L1_ZDC_C"
207 if (zdcMonAlg.IsInjectedPulse):
208 from ZdcMonitoring.ZdcInjPulserVoltageReader
import load_voltage_steps
209 voltage_values_list = []
210 voltage_strs_list = []
213 if len(voltage_values_list) == 0:
214 voltage_values_list = [0.]
215 voltage_strs_list = [
"0.00000"]
217 zdcMonAlg.InjPulseVoltageSteps = voltage_values_list
218 zdcMonAlg.InjPulseVoltageStepsStr = voltage_strs_list
221 amp_LG_refit_max_ADC = module_FPGA_max_ADC
223 fCal_single_side_min = -0.2
224 fCal_single_side_max = 2.8
227 fCal_single_side_nbins = 240
230 total_Et_sum_min = -0.5
231 total_Et_sum_max = 5.5
232 total_Et_sum_nbins = 240
234 uncalib_sum_zoomin_nbins = 100
235 energy_sum_zoomin_nbins = 200
236 energy_sum_1n_nbins = 350
237 energy_sum_1n_xmin = 1000.
238 energy_sum_1n_xmax = 4500.
241 if "PbPb" in config
or "Injector" in config:
242 print (
"looking at pbpb / injected-pulse data")
243 energy_sum_xmax = 200000.0
244 energy_sum_two_sides_xmax_TeV = 400.0
245 energy_sum_single_side_xmax_TeV = 200.0
246 energy_sum_zoomin_xmax = 13000.0
247 uncalib_amp_sum_zoomin_xmax = 7200.0
248 time_in_data_buffer = 75.
253 zdc_amp_sum_xmax = 163840.0
254 rpd_channel_amp_min = - 2000.
255 rpd_amp_sum_xmax = 245760.0
256 rpd_max_adc_sum_xmax = 40960.0
257 rpd_sum_adc_max = 25000.
259 module_calib_amp_xmax = 100000.0
260 module_amp_1Nmonitor_xmax = 1250.0
261 module_calib_amp_1Nmonitor_xmax = 3400.0
263 elif config ==
"LHCf2022":
264 print (
"looking at 2022 lhcf data")
265 energy_sum_xmax = 3000
266 energy_sum_two_sides_xmax_TeV = 10.0
267 energy_sum_single_side_xmax_TeV = 5.0
268 energy_sum_zoomin_xmax = 3000
269 uncalib_amp_sum_zoomin_xmax = module_FPGA_max_ADC
270 time_in_data_buffer = 75.
271 x_centroid_min = -500
275 zdc_amp_sum_xmax = 3000
276 rpd_channel_amp_min = - 200.
277 rpd_amp_sum_xmax = 3000
278 rpd_max_adc_sum_xmax = 3000
279 rpd_sum_adc_max = 5000
281 module_calib_amp_xmax = 5000
282 module_amp_1Nmonitor_xmax = 2000
283 module_calib_amp_1Nmonitor_xmax = 5000
285 elif zdcMonAlg.IsPPMode:
286 print (
"looking at pp data")
287 energy_sum_xmax = 5000
288 energy_sum_two_sides_xmax_TeV = 10.0
289 energy_sum_single_side_xmax_TeV = 5.0
290 energy_sum_zoomin_xmax = 5000
291 uncalib_amp_sum_zoomin_xmax = module_FPGA_max_ADC
292 time_in_data_buffer = 75.
297 zdc_amp_sum_xmax = 5000
298 rpd_channel_amp_min = - 200.
299 rpd_amp_sum_xmax = 5000
300 rpd_max_adc_sum_xmax = 5000
301 rpd_sum_adc_max = 5000.
303 module_calib_amp_xmax = 5000
304 module_amp_1Nmonitor_xmax = 2000
305 module_calib_amp_1Nmonitor_xmax = 5000
306 elif zdcMonAlg.IsOOMode:
307 print (
"looking at OO data")
308 energy_sum_xmax = 10000.
309 energy_sum_two_sides_xmax_TeV = 40.
310 energy_sum_single_side_xmax_TeV = 20.0
311 energy_sum_zoomin_xmax = 13000.0
312 uncalib_amp_sum_zoomin_xmax = 7200.0
313 time_in_data_buffer = 75.
318 zdc_amp_sum_xmax = 50000.0
319 rpd_channel_amp_min = - 2000.
320 rpd_amp_sum_xmax = 245760.0
321 rpd_max_adc_sum_xmax = 40960.0
322 rpd_sum_adc_max = 25000.
324 module_calib_amp_xmax = 13400.0
325 module_amp_1Nmonitor_xmax = 1250.0
326 module_calib_amp_1Nmonitor_xmax = 3400.0
327 fCal_single_side_min = -0.02
328 fCal_single_side_max = 0.43
331 fCal_single_side_nbins = 90
333 total_Et_sum_min = -0.1
334 total_Et_sum_max = 1.5
335 total_Et_sum_nbins = 160
337 elif zdcMonAlg.IspOMode:
338 print (
"looking at pO data")
339 energy_sum_xmax = 30000.
340 energy_sum_two_sides_xmax_TeV = 40.
341 energy_sum_single_side_xmax_TeV = 20.0
342 energy_sum_zoomin_xmax = 13000.0
343 uncalib_amp_sum_zoomin_xmax = 7200.0
344 time_in_data_buffer = 75.
349 zdc_amp_sum_xmax = 50000.0
350 rpd_channel_amp_min = - 2000.
351 rpd_amp_sum_xmax = 245760.0
352 rpd_max_adc_sum_xmax = 40960.0
353 rpd_sum_adc_max = 25000.
355 module_calib_amp_xmax = 13400.0
356 module_amp_1Nmonitor_xmax = 1250.0
357 module_calib_amp_1Nmonitor_xmax = 3400.0
358 fCal_single_side_min = -0.05
359 fCal_single_side_max = 0.2
362 fCal_single_side_nbins = 100
364 total_Et_sum_min = -0.1
365 total_Et_sum_max = 0.5
366 total_Et_sum_nbins = 120
369 print(
"ZdcMonitorAlgorithm ERROR: Invalid configuration! Config tag is", config)
373 lg_max_ADC = module_FPGA_max_ADC * lg_gain_factor
374 module_amp_xmax = lg_max_ADC
376 hg_lg_amp_ratio_min_nominal = 0.6
377 hg_lg_amp_ratio_min_tight = 0.9
378 hg_lg_amp_ratio_max_nominal = 1.4
379 hg_lg_amp_ratio_max_tight = 1.2
382 rpd_sub_amp_min = - module_amp_xmax / 4.
383 rpd_sub_amp_max = module_amp_xmax / 2.
384 n_rpd_amp_bins_full_range =
int((abs(rpd_channel_amp_min) + rpd_sum_adc_max) / rpd_sum_adc_max * n_energy_bins_default)
385 n_rpd_sub_amp_bins =
int((abs(rpd_sub_amp_min) + rpd_sub_amp_max) / rpd_sub_amp_max * n_energy_bins_default)
392 genZdcMonTool = helper.addGroup(zdcMonAlg,
'genZdcMonTool', topPath =
'ZDC')
394 nDecodingErrorBits = 3
396 genZdcMonTool.defineHistogram(
'decodingErrorBits',title=
';;Events',
397 path=
'/EXPERT/Global/DecodingErrors',
399 xbins=nDecodingErrorBits,xmin=0.0,xmax=nDecodingErrorBits,
400 xlabels=[
'No Decoding Error',
'ZDC Decoding Error',
'RPD Decoding Error'])
404 genZdcMonTool.defineHistogram(
'uccTrigBits',title=
';;Events',
405 path=
'/EXPERT/Global/UCCTrigs',
407 xbins=nUCCTrigBits,xmin=0.0,xmax=nUCCTrigBits,
408 xlabels=[
'UCC Trig Enabled',
'Pass HELT50',
'Pass HELT35',
'Pass HELT25',
'Pass HELT20',
'Pass HELT15',
'UCC Trig Disabled'])
410 if zdcMonAlg.EnableOOpOTriggers:
411 OOpOTriggerLabels = [
'OOpO Trig Enabled'] + OOpOTriggerChains + [
'OOpO Trig Disabled']
413 nOOpOTrigBits = len(OOpOTriggerLabels)
415 genZdcMonTool.defineHistogram(
'OOpOTrigBits',title=
';;Events',
416 path=
'/EXPERT/Global/OOpOTrigs',
418 xbins=nOOpOTrigBits,xmin=0.0,xmax=nOOpOTrigBits,
419 xlabels=OOpOTriggerLabels)
421 if (zdcMonAlg.EnableCentroid):
422 genZdcMonTool.defineHistogram(
'rpdCosDeltaReactionPlaneAngle', title=
';Cos (#Delta #phi_{AorC});Events',
423 path=
'/EXPERT/Global/ReactionPlane',
424 cutmask=
'bothHasCentroid',
425 xbins=n_time_centroid_bins_default,xmin=-1,xmax=1)
426 if (
not zdcMonAlg.IsOnline):
427 genZdcMonTool.defineHistogram(
'rpdCosDeltaReactionPlaneAngle;rpdCosDeltaReactionPlaneAngle_requireValid', title=
';Cos (#Delta #phi_{AorC});Events',
428 path=
'/EXPERT/Global/ReactionPlane',
429 cutmask=
'bothReactionPlaneAngleValid',
430 xbins=n_time_centroid_bins_default,xmin=-1,xmax=1)
432 if (zdcMonAlg.EnableZDCPhysics):
433 genZdcMonTool.defineHistogram(
'zdcEnergySumA, zdcEnergySumC', type=
'TH2F', title=
';E_{ZDC,A} [GeV];E_{ZDC,C} [GeV]',
434 path=
'/EXPERT/Global/SideACCorr',
435 xbins=n_energy_bins_default,xmin=0.0,xmax=energy_sum_xmax,
436 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_xmax)
437 if (zdcMonAlg.IspOMode
or zdcMonAlg.IsOOMode):
438 genZdcMonTool.defineHistogram(
'zdcEnergySumA, zdcEnergySumC;zdcEnergySumC_vs_zdcEnergySumA_zoomin', type=
'TH2F', title=
';E_{ZDC,A} [GeV];E_{ZDC,C} [GeV]',
439 path=
'/EXPERT/Global/SideACCorr',
440 xbins=energy_sum_zoomin_nbins,xmin=0.0,xmax=energy_sum_zoomin_xmax,
441 ybins=energy_sum_zoomin_nbins,ymin=0.0,ymax=energy_sum_zoomin_xmax)
442 genZdcMonTool.defineHistogram(
'zdcUncalibSumA, zdcUncalibSumC;zdcUncalibSumC_vs_zdcUncalibSumA_zoomin', type=
'TH2F', title=
';Amp Sum SideA [ADC];Amp Sum SideC [ADC]',
443 path=
'/EXPERT/Global/SideACCorr',
444 xbins=uncalib_sum_zoomin_nbins,xmin=0.0,xmax=uncalib_amp_sum_zoomin_xmax,
445 ybins=uncalib_sum_zoomin_nbins,ymin=0.0,ymax=uncalib_amp_sum_zoomin_xmax)
447 if (zdcMonAlg.EnableOOpOTriggers):
448 for oo_po_trig
in OOpOTriggerChains:
449 genZdcMonTool.defineHistogram(
'zdcEnergySumA, zdcEnergySumC;zdcEnergySumC_vs_zdcEnergySumA_pass'+oo_po_trig, type=
'TH2F', title=
';E_{ZDC,A} [GeV];E_{ZDC,C} [GeV]',
450 path=
'/EXPERT/Global/SideACCorr',
451 cutmask=
'pass'+oo_po_trig,
452 xbins=n_energy_bins_default,xmin=0.0,xmax=energy_sum_xmax,
453 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_xmax)
454 genZdcMonTool.defineHistogram(
'zdcEnergySumA, zdcEnergySumC;zdcEnergySumC_vs_zdcEnergySumA_zoomin_pass'+oo_po_trig, type=
'TH2F', title=
';E_{ZDC,A} [GeV];E_{ZDC,C} [GeV]',
455 path=
'/EXPERT/Global/SideACCorr',
456 cutmask=
'pass'+oo_po_trig,
457 xbins=energy_sum_zoomin_nbins,xmin=0.0,xmax=energy_sum_zoomin_xmax,
458 ybins=energy_sum_zoomin_nbins,ymin=0.0,ymax=energy_sum_zoomin_xmax)
459 genZdcMonTool.defineHistogram(
'zdcUncalibSumA, zdcUncalibSumC;zdcUncalibSumC_vs_zdcUncalibSumA_zoomin_pass'+oo_po_trig, type=
'TH2F', title=
';Amp Sum SideA [ADC];Amp Sum SideC [ADC]',
460 path=
'/EXPERT/Global/SideACCorr',
461 cutmask=
'pass'+oo_po_trig,
462 xbins=uncalib_sum_zoomin_nbins,xmin=0.0,xmax=uncalib_amp_sum_zoomin_xmax,
463 ybins=uncalib_sum_zoomin_nbins,ymin=0.0,ymax=uncalib_amp_sum_zoomin_xmax)
469 if (zdcMonAlg.CalInfoOn):
470 genZdcMonTool.defineHistogram(
'fcalEtA, fcalEtC', type=
'TH2F', title=
';E_{FCal, A} [GeV];E_{FCal, C} [GeV]',
471 path=
'/EXPERT/Global/SideACCorr',
472 xbins=fCal_single_side_nbins,xmin=fCal_single_side_min,xmax=fCal_single_side_max,
473 ybins=fCal_single_side_nbins,ymin=fCal_single_side_min,ymax=fCal_single_side_max)
475 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcEnergySumTwoSidesTeV;zdcEnergySum_vs_fCalEt', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Energy [TeV]',
476 path =
'/EXPERT/Global/ZDCFcalCorr',
478 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
479 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
481 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcHadronicEnergySumTwoSidesTeV;zdcHadronicEnergySum_vs_fCalEt', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Hadronic Energy [TeV]',
482 path =
'/EXPERT/Global/ZDCHEFcalCorr',
484 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
485 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
487 genZdcMonTool.defineHistogram(
'totalEt24, zdcEnergySumTwoSidesTeV;zdcEnergySum_vs_totalEt', type=
'TH2F', title=
';Total Et |#eta| < 2.4 [TeV];ZDC Energy [TeV]',
488 path =
'/EXPERT/Global/ZDCTotalEtCorr',
490 xbins=total_Et_sum_nbins,xmin=total_Et_sum_min,xmax=total_Et_sum_max,
491 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
494 if (zdcMonAlg.EnableOOpOTriggers):
495 for oo_po_trig
in OOpOTriggerChains:
496 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcEnergySumTwoSidesTeV;zdcEnergySum_vs_fCalEt_pass'+oo_po_trig, type=
'TH2F', title=
';FCal Energy [TeV];ZDC Energy [TeV]',
497 path =
'/EXPERT/Global/ZDCFcalCorr',
498 cutmask=
'pass'+oo_po_trig,
499 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
500 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
501 genZdcMonTool.defineHistogram(
'totalEt24, zdcEnergySumTwoSidesTeV;zdcEnergySum_vs_totalEt_pass'+oo_po_trig, type=
'TH2F', title=
';Total Et |#eta| < 2.4 [TeV];ZDC Energy [TeV]',
502 path =
'/EXPERT/Global/ZDCTotalEtCorr',
503 cutmask=
'pass'+oo_po_trig,
504 xbins=total_Et_sum_nbins,xmin=total_Et_sum_min,xmax=total_Et_sum_max,
505 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
508 if (zdcMonAlg.EnableUCCTriggers):
509 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcEnergySumTwoSidesTeV;zdcEnergySum_vs_fCalEt_passUCCTrig_HELT15', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Energy [TeV]',
510 path =
'/EXPERT/Global/ZDCFcalCorr',
511 cutmask =
'passUCCTrig_HELT15',
513 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
514 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
515 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcEnergySumTwoSidesTeV;zdcEnergySum_vs_fCalEt_passUCCTrig_HELT20', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Energy [TeV]',
516 path =
'/EXPERT/Global/ZDCFcalCorr',
517 cutmask =
'passUCCTrig_HELT20',
519 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
520 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
521 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcEnergySumTwoSidesTeV;zdcEnergySum_vs_fCalEt_passUCCTrig_HELT25', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Energy [TeV]',
522 path =
'/EXPERT/Global/ZDCFcalCorr',
523 cutmask =
'passUCCTrig_HELT25',
525 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
526 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
527 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcEnergySumTwoSidesTeV;zdcEnergySum_vs_fCalEt_passUCCTrig_HELT35', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Energy [TeV]',
528 path =
'/EXPERT/Global/ZDCFcalCorr',
529 cutmask =
'passUCCTrig_HELT35',
531 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
532 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
533 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcEnergySumTwoSidesTeV;zdcEnergySum_vs_fCalEt_passUCCTrig_HELT50', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Energy [TeV]',
534 path =
'/EXPERT/Global/ZDCFcalCorr',
535 cutmask =
'passUCCTrig_HELT50',
537 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
538 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
540 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcHadronicEnergySumTwoSidesTeV;zdcHadronicEnergySum_vs_fCalEt_passUCCTrig_HELT15', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Hadronic Energy [TeV]',
541 path =
'/EXPERT/Global/ZDCHEFcalCorr',
542 cutmask =
'passUCCTrig_HELT15',
544 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
545 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
546 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcHadronicEnergySumTwoSidesTeV;zdcHadronicEnergySum_vs_fCalEt_passUCCTrig_HELT20', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Hadronic Energy [TeV]',
547 path =
'/EXPERT/Global/ZDCHEFcalCorr',
548 cutmask =
'passUCCTrig_HELT20',
550 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
551 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
552 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcHadronicEnergySumTwoSidesTeV;zdcHadronicEnergySum_vs_fCalEt_passUCCTrig_HELT25', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Hadronic Energy [TeV]',
553 path =
'/EXPERT/Global/ZDCHEFcalCorr',
554 cutmask =
'passUCCTrig_HELT25',
556 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
557 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
558 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcHadronicEnergySumTwoSidesTeV;zdcHadronicEnergySum_vs_fCalEt_passUCCTrig_HELT35', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Hadronic Energy [TeV]',
559 path =
'/EXPERT/Global/ZDCHEFcalCorr',
560 cutmask =
'passUCCTrig_HELT35',
562 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
563 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
564 genZdcMonTool.defineHistogram(
'fcalEtSumTwoSides, zdcHadronicEnergySumTwoSidesTeV;zdcHadronicEnergySum_vs_fCalEt_passUCCTrig_HELT50', type=
'TH2F', title=
';FCal Energy [TeV];ZDC Hadronic Energy [TeV]',
565 path =
'/EXPERT/Global/ZDCHEFcalCorr',
566 cutmask =
'passUCCTrig_HELT50',
568 xbins=fCal_sum_nbins,xmin=fCal_sum_min,xmax=fCal_sum_max,
569 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_two_sides_xmax_TeV)
573 modules = [
"0",
"1",
"2",
"3"]
574 channels = [
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13",
"14",
"15"]
578 nRpdCentroidStatusBits = 21
584 if (zdcMonAlg.EnableZDCPhysics
or zdcMonAlg.EnableRPDAmp
or zdcMonAlg.EnableCentroid):
586 zdcSideMonToolArr = helper.addArray([sides],zdcMonAlg,
'ZdcSideMonitor', topPath =
'ZDC')
591 if (zdcMonAlg.EnableZDCPhysics):
592 zdcSideMonToolArr.defineHistogram(
'zdcEnergySum',title=
'ZDC Side {0} Energy Sum;Side {0} Energy [GeV];Events',
593 path =
'/EXPERT/ZDC/PerArm/Energy',
594 xbins=n_energy_bins_default,xmin=0.0,xmax=energy_sum_xmax)
597 zdcSideMonToolArr.defineHistogram(
'zdcEnergySum;zdcEnergySum_zoomin_noTrigSelec',title=
'ZDC Side {0} Energy Sum (1-to-4n, no trigger selection);Side {0} Energy[GeV];Events',
598 path =
'/SHIFT/ZDC/PerArm/Energy',
600 xbins=energy_sum_zoomin_nbins,xmin=0.0,xmax=energy_sum_zoomin_xmax)
601 if (zdcMonAlg.EnableOOpOTriggers):
602 for oo_po_trig
in OOpOTriggerChains:
603 zdcSideMonToolArr.defineHistogram(
'zdcEnergySum;zdcEnergySum_zoomin_pass'+oo_po_trig,title=
'ZDC Side {0} Energy Sum (1-to-4n, no trigger selection);Side {0} Energy[GeV];Events',
604 path =
'/SHIFT/ZDC/PerArm/Energy',
605 cutmask=
'pass'+oo_po_trig,
607 xbins=energy_sum_zoomin_nbins,xmin=0.0,xmax=energy_sum_zoomin_xmax)
609 if (zdcMonAlg.EnableZDCSingleSideTriggers):
610 zdcSideMonToolArr.defineHistogram(
'zdcEnergySum;zdcEnergySum_zoomin_wTrigSelec',title=
'ZDC Side {0} Energy Sum (1-to-4n, require opposite-side trigger);Side {0} Energy[GeV];Events',
611 path =
'/SHIFT/ZDC/PerArm/Energy',
613 cutmask =
'passTrigOppSide',
614 xbins=energy_sum_zoomin_nbins,xmin=0.0,xmax=energy_sum_zoomin_xmax)
617 zdcSideMonToolArr.defineHistogram(
'zdcUncalibSum;zdcUncalibSum_zoomin_noTrigSelec',title=
'ZDC Side {0} Uncalibrated Amplitude Sum (1-to-4n, no trigger selection);Side {0} Amp Sum [ADC];Events',
618 path =
'/EXPERT/ZDC/PerArm/UncalibAmp',
619 xbins=energy_sum_zoomin_nbins,xmin=0.0,xmax=uncalib_amp_sum_zoomin_xmax)
621 if (zdcMonAlg.EnableZDCSingleSideTriggers):
622 zdcSideMonToolArr.defineHistogram(
'zdcUncalibSum;zdcUncalibSum_zoomin_wTrigSelec',title=
'ZDC Side {0} Uncalibrated Amplitude Sum (1-to-4n, require opposite-side trigger);Side {0} Amp Sum [ADC];Events',
623 path =
'/EXPERT/ZDC/PerArm/UncalibAmp',
624 cutmask =
'passTrigOppSide',
625 xbins=energy_sum_zoomin_nbins,xmin=0.0,xmax=uncalib_amp_sum_zoomin_xmax)
628 zdcSideMonToolArr.defineHistogram(
'zdcUncalibSum',title=
'ZDC Side {0} Uncalibrated Sum;[ADC];Events',
629 path =
'/EXPERT/ZDC/PerArm/UncalibAmp',
630 xbins=n_energy_bins_default,xmin=0.0,xmax=zdc_amp_sum_xmax)
633 if (
not zdcMonAlg.IsOnline):
634 zdcSideMonToolArr.defineHistogram(
'lumiBlock, zdcEnergySum;zdcEnergySum_vs_lb_noTrig', type=
'TH2F', title=
';lumi block;Side {0} Energy [GeV]',
635 path =
'/EXPERT/ZDC/PerArm/Energy',
636 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
637 ybins=energy_sum_zoomin_nbins,ymin=0.0,ymax=energy_sum_zoomin_xmax)
638 if (zdcMonAlg.EnableZDCSingleSideTriggers):
639 zdcSideMonToolArr.defineHistogram(
'lumiBlock, zdcEnergySum;zdcEnergySum_vs_lb_wTrig', type=
'TH2F', title=
';lumi block;Side {0} Energy [GeV]',
640 path =
'/EXPERT/ZDC/PerArm/Energy',
641 cutmask =
'passTrigOppSide',
642 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
643 ybins=energy_sum_zoomin_nbins,ymin=0.0,ymax=energy_sum_zoomin_xmax)
645 zdcSideMonToolArr.defineHistogram(
'zdcEnergySum;zdcEnergySum_1n_noTrigSelec',title=
'ZDC Side {0} Energy Sum (1n range, no trigger selection);Side {0} Energy[GeV];Events',
646 path =
'/SHIFT/ZDC/PerArm/Energy',
648 xbins=energy_sum_1n_nbins,xmin=energy_sum_1n_xmin,xmax=energy_sum_1n_xmax)
650 zdcSideMonToolArr.defineHistogram(
'lumiBlock, zdcEnergySum;zdcEnergySum_1n_vs_lb_noTrig', type=
'TH2F', title=
';lumi block;Side {0} Energy (1n range) [GeV]',
651 path =
'/EXPERT/ZDC/PerArm/Energy',
652 xbins=n_lumi_block_bins_coarse,xmin=0.0,xmax=lumi_block_max,
653 ybins=energy_sum_1n_nbins,ymin=energy_sum_1n_xmin,ymax=energy_sum_1n_xmax)
655 if (
not zdcMonAlg.IsOnline):
656 zdcSideMonToolArr.defineHistogram(
'lumiBlock, zdcUncalibSum;zdcUncalibSum_vs_lb_noTrig', type=
'TH2F', title=
';lumi block;ZDC Side {0} Uncalibrated Sum [ADC]',
657 path =
'/EXPERT/ZDC/PerArm/UncalibAmp',
658 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
659 ybins=n_energy_bins_default,ymin=0.0,ymax=uncalib_amp_sum_zoomin_xmax)
660 if (zdcMonAlg.EnableZDCSingleSideTriggers):
661 zdcSideMonToolArr.defineHistogram(
'lumiBlock, zdcUncalibSum;zdcUncalibSum_vs_lb_wTrig', type=
'TH2F', title=
';lumi block;ZDC Side {0} Uncalibrated Sum [ADC]',
662 path =
'/EXPERT/ZDC/PerArm/UncalibAmp',
663 cutmask =
'passTrigOppSide',
664 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
665 ybins=n_energy_bins_default,ymin=0.0,ymax=uncalib_amp_sum_zoomin_xmax)
668 if (
not zdcMonAlg.IsOnline):
669 zdcSideMonToolArr.defineHistogram(
'bcid, zdcEnergySum;zdcEnergySum_vs_bcid_noTrig', type=
'TH2F', title=
';BCID;Side {0} Energy [GeV]',
670 path =
'/EXPERT/ZDC/PerArm/Energy',
671 xbins=bcid_max,xmin=0.0,xmax=bcid_max,
672 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_zoomin_xmax)
673 if (zdcMonAlg.EnableZDCSingleSideTriggers):
674 zdcSideMonToolArr.defineHistogram(
'bcid, zdcEnergySum;zdcEnergySum_vs_bcid_wTrig', type=
'TH2F', title=
';BCID;Side {0} Energy [GeV]',
675 path =
'/EXPERT/ZDC/PerArm/Energy',
676 cutmask =
'passTrigOppSide',
677 xbins=bcid_max,xmin=0.0,xmax=bcid_max,
678 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_zoomin_xmax)
680 if (zdcMonAlg.CalInfoOn):
681 zdcSideMonToolArr.defineHistogram(
'fCalEt, zdcEnergySumTeV;zdcEnergySum_vs_fCalEt_single_side', type=
'TH2F', title=
';Side {0} FCal Energy [TeV];Side {0} ZDC Energy [TeV]',
682 path =
'/EXPERT/ZDC/PerArm/ZDCFcalCorr',
684 xbins=fCal_single_side_nbins,xmin=fCal_single_side_min,xmax=fCal_single_side_max,
685 ybins=n_energy_bins_default,ymin=0.0,ymax=energy_sum_single_side_xmax_TeV)
690 zdcSideMonToolArr.defineHistogram(
'zdcAvgTime',title=
'ZDC Side Average Time;t[ns];Events',
691 path =
'/EXPERT/ZDC/PerArm/AvgTime',
692 xbins=n_time_centroid_bins_default,xmin=-10.0,xmax=10.0)
694 if (
not zdcMonAlg.IsOnline):
695 zdcSideMonToolArr.defineHistogram(
'lumiBlock, zdcAvgTime;zdcAvgTime_vs_lb', type=
'TH2F', title=
';ZDC Side Average Time versus Lumi block;lumi block;t[ns]',
696 path =
'/EXPERT/ZDC/PerArm/AvgTime',
697 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
698 ybins=n_time_centroid_bins_default,ymin=-10.0,ymax=10.0)
702 zdcSideMonToolArr.defineHistogram(
'centroidStatusBits',title=
';;Events',
703 path=
'/EXPERT/RPD/PerArm/Centroid',
704 xbins=nRpdCentroidStatusBits,xmin=0.0,xmax=nRpdCentroidStatusBits,
706 xlabels=[
'ValidBit',
'HasCentroidBit',
'ZDCInvalidBit',
'InsufficientZDCEnergyBit',
'ExcessiveZDCEnergyBit',
'EMInvalidBit',
'InsufficientEMEnergyBit',
'ExcessiveEMEnergyBit',
'RPDInvalidBit',
'PileupBit',
'ExcessivePileupBit',
'ZeroSumBit',
'ExcessiveSubtrUnderflowBit',
'Row0ValidBit',
'Row1ValidBit',
'Row2ValidBit',
'Row3ValidBit',
'Col0ValidBit',
'Col1ValidBit',
'Col2ValidBit',
'Col3ValidBit'])
708 zdcSideMonToolArr.defineHistogram(
'centroidValidBitFloat;centroidValidBit_RequireMinZDCEnergy',title=
'Centroid valid bit;;Events',
709 path=
'/SHIFT/RPD/PerArm/Centroid',
711 cutmask=
'passMinZDCEnergyCutForCentroidValidEvaluation',
712 xbins=2,xmin=0,xmax=2,
713 xlabels=[
'Valid',
'Invalid'])
716 zdcSideMonToolArr.defineHistogram(
'xCentroid',title=
';Centroid x position [mm];Events',
717 path=
'/SHIFT/RPD/PerArm/Centroid',
719 cutmask=
'centroidValid',
720 xbins=n_time_centroid_bins_default,xmin=x_centroid_min,xmax=x_centroid_max)
722 zdcSideMonToolArr.defineHistogram(
'yCentroid',title=
';Centroid y position [mm];Events',
723 path=
'/SHIFT/RPD/PerArm/Centroid',
725 cutmask=
'centroidValid',
726 xbins=n_time_centroid_bins_default*2,xmin=y_centroid_min,xmax=y_centroid_max)
728 zdcSideMonToolArr.defineHistogram(
'xCentroid, yCentroid',type=
'TH2F',title=
';Centroid x position [mm];Centroid y position [mm]',
729 path=
'/EXPERT/RPD/PerArm/Centroid',
730 cutmask=
'centroidValid',
731 xbins=n_time_centroid_bins_default,xmin=x_centroid_min,xmax=x_centroid_max,
732 ybins=n_time_centroid_bins_default*2,ymin=y_centroid_min,ymax=y_centroid_max)
734 zdcSideMonToolArr.defineHistogram(
'ReactionPlaneAngle',title=
';Reaction Plane Angle;Events',
735 path=
'/EXPERT/RPD/PerArm/ReactionPlane',
736 cutmask=
'centroidValid',
737 xbins=64,xmin=-3.141593,xmax=3.141593)
741 if (
not zdcMonAlg.IsOnline):
742 zdcSideMonToolArr.defineHistogram(
'xCentroid, yCentroid;yCentroid_vs_xCentroid_requireOnlyHasCentroidBit',type=
'TH2F',title=
';Centroid x position [mm];Centroid y position [mm]',
743 path=
'/EXPERT/RPD/PerArm/Centroid',
744 xbins=n_time_centroid_bins_default,xmin=x_centroid_min,xmax=x_centroid_max,
745 ybins=n_time_centroid_bins_default,ymin=y_centroid_min,ymax=y_centroid_max)
746 zdcSideMonToolArr.defineHistogram(
'ReactionPlaneAngle;ReactionPlaneAngle_requireOnlyHasCentroidBit',title=
';Reaction Plane Angle;Events',
747 path=
'/EXPERT/RPD/PerArm/ReactionPlane',
748 xbins=64,xmin=-3.141593,xmax=3.141593)
752 if (
not zdcMonAlg.IsOnline):
753 zdcSideMonToolArr.defineHistogram(
'lumiBlock, xCentroid;xCentroid_vs_lb_requireOnlyHasCentroidBit', type=
'TH2F', title=
';lumi block;Centroid x position [mm]',
754 path=
'/EXPERT/RPD/PerArm/CentroidLBdep',
755 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
756 ybins=n_time_centroid_bins_default,ymin=x_centroid_min,ymax=x_centroid_max)
757 zdcSideMonToolArr.defineHistogram(
'lumiBlock, yCentroid;yCentroid_vs_lb_requireOnlyHasCentroidBit', type=
'TH2F', title=
';lumi block;Centroid y position [mm]',
758 path=
'/EXPERT/RPD/PerArm/CentroidLBdep',
759 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
760 ybins=n_time_centroid_bins_default,ymin=y_centroid_min,ymax=y_centroid_max)
762 zdcSideMonToolArr.defineHistogram(
'lumiBlock, xCentroid;xCentroid_vs_lb', type=
'TH2F', title=
';lumi block;Centroid x position [mm]',
763 path=
'/EXPERT/RPD/PerArm/CentroidLBdep',
764 cutmask=
'centroidValid',
765 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
766 ybins=n_time_centroid_bins_default,ymin=x_centroid_min,ymax=x_centroid_max)
767 zdcSideMonToolArr.defineHistogram(
'lumiBlock, yCentroid;yCentroid_vs_lb', type=
'TH2F', title=
';lumi block;Centroid y position [mm]',
768 path=
'/EXPERT/RPD/PerArm/CentroidLBdep',
769 cutmask=
'centroidValid',
770 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
771 ybins=n_time_centroid_bins_default,ymin=y_centroid_min,ymax=y_centroid_max)
774 zdcSideMonToolArr.defineHistogram(
'zdcEnergySum, rpdMaxADCSum', type=
'TH2F', title=
';E ZDC side [TeV];RPD Max ADC Sum (AorC) [ADC counts]',
775 path=
'/EXPERT/ZdcRpdPerSideCorr',
776 cutmask=
'RPDSideValid',
777 xbins=n_energy_bins_default,xmin=0.0,xmax=energy_sum_xmax,
778 ybins=n_energy_bins_default,ymin=0.0,ymax=rpd_max_adc_sum_xmax)
779 zdcSideMonToolArr.defineHistogram(
'zdcEnergySum, rpdAmplitudeCalibSum', type=
'TH2F', title=
';E ZDC side [GeV];RPD Calib Amp Sum (AorC) [ADC counts]',
780 path=
'/EXPERT/ZdcRpdPerSideCorr',
781 cutmask=
'RPDSideValid',
782 xbins=n_energy_bins_default,xmin=0.0,xmax=energy_sum_xmax,
783 ybins=n_energy_bins_default,ymin=0.0,ymax=rpd_amp_sum_xmax)
784 zdcSideMonToolArr.defineHistogram(
'zdcEMModuleEnergy, rpdAmplitudeCalibSum', type=
'TH2F', title=
';E EM module AorC [GeV];RPD Calib Amp Sum (AorC) [ADC counts]',
785 path=
'/EXPERT/ZdcRpdPerSideCorr',
786 cutmask=
'RPDSideValid',
787 xbins=n_energy_bins_default,xmin=0.0,xmax=module_calib_amp_xmax / 2.,
788 ybins=n_energy_bins_default,ymin=0.0,ymax=rpd_amp_sum_xmax)
795 zdcModuleMonToolArr = helper.addArray([sides,modules],zdcMonAlg,
'ZdcModuleMonitor', topPath =
'ZDC')
799 zdcModuleMonToolArr.defineHistogram(
'zdcStatusBits',title=
';;Events',
800 path=
'/SHIFT/ZDC/ZdcModule/ModuleStatusBits',
801 opt=
'kAlwaysCreate kVec',
802 xbins=nZdcStatusBits,xmin=0.0,xmax=nZdcStatusBits,
803 xlabels=[
'PulseBit',
'LowGainBit',
'FailBit',
'HGOverflowBit',
'HGUnderflowBit',
'PSHGOverUnderflowBit',
'LGOverflowBit',
'LGUnderflowBit',
'PrePulseBit',
'PostPulseBit',
'FitFailedBit',
'BadChisqBit',
'BadT0Bit',
'ExcludeEarlyLGBit',
'ExcludeLateLGBit',
'preExpTailBit',
'FitMinAmpBit',
'RepassPulseBit'])
807 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp',title=
';Module Amplitude [ADC Counts];Events',
808 path=
'/SHIFT/ZDC/ZdcModule/ModuleAmp',
810 xbins=n_fpga_bins * 2,xmin=0.0,xmax=module_amp_xmax)
812 zdcModuleMonToolArr.defineHistogram(
'zdcModuleMaxADC',title=
';Module Max ADC;Events',
813 path=
'/EXPERT/ZDC/ZdcModule/ModuleMaxADC',
814 xbins=n_fpga_bins,xmin=0.0,xmax=module_amp_xmax)
817 if (
not zdcMonAlg.IsPPMode):
818 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp;zdcModuleAmp_HG',title=
';Module Amplitude HG [ADC Counts];Events',
819 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmp',
820 cutmask=
'zdcModuleHG',
821 xbins=n_fpga_bins,xmin=0.0,xmax=module_FPGA_max_ADC)
823 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp;zdcModuleAmp_LG',title=
';Module Amplitude LG [ADC Counts];Events',
824 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmp',
825 cutmask=
'zdcModuleLG',
826 xbins=n_fpga_bins,xmin=0.0,xmax=module_amp_xmax)
828 if (zdcMonAlg.IsInjectedPulse):
829 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmpLGRefit',title=
';LG-Refit Amplitude [ADC Counts];Events',
830 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmp',
831 cutmask=
'zdcModuleHG',
832 xbins=n_fpga_bins,xmin=0.0,xmax=amp_LG_refit_max_ADC)
834 if (
not zdcMonAlg.IsOnline
and not zdcMonAlg.IsInjectedPulse):
835 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp;zdcModuleAmp_halfrange',title=
';Module Amplitude [ADC Counts];Events',
836 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmp',
837 xbins=n_fpga_bins,xmin=0.0,xmax=module_amp_xmax / 2.)
841 if (
not zdcMonAlg.IsOnline):
842 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp,zdcModuleAmpToMaxADCRatio;zdcModuleAmpToMaxADCRatio_vs_zdcModuleMaxADC_HG',type=
'TH2F',title=
';Module Max ADC HG [ADC];Avg Amp/Max ADC',
843 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmpToMaxADCRatio',
844 cutmask=
'zdcModuleHG',
845 xbins=n_fpga_bins,xmin=0.0,xmax=module_FPGA_max_ADC,
846 ybins=100,ymin=0.0,ymax=2.)
848 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp,zdcModuleAmpToMaxADCRatio;zdcModuleAmpToMaxADCRatio_vs_zdcModuleMaxADC_LG',type=
'TH2F',title=
';Module Max ADC LG [ADC];Avg Amp/Max ADC',
849 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmpToMaxADCRatio',
850 cutmask=
'zdcModuleLG',
851 xbins=n_fpga_bins,xmin=0.0,xmax=module_amp_xmax,
852 ybins=100,ymin=0.0,ymax=2.)
856 if (zdcMonAlg.IsInjectedPulse):
857 zdcModuleMonToolArr.defineHistogram(
'zdcModuleFract',title=
';Module Amplitude Fraction;Events',
858 path=
'/SHIFT/ZDC/ZdcModule/ModuleFraction',
860 xbins=n_mod_fraction_bins_default,xmin=0.0,xmax=1.)
862 zdcModuleMonToolArr.defineHistogram(
'zdcModuleFract;zdcModuleFract_above_cut',title=
';Module Amplitude Fraction;Events',
863 path=
'/SHIFT/ZDC/ZdcModule/ModuleFraction',
865 cutmask=
'zdcEnergyAboveModuleFractCut',
866 xbins=n_mod_fraction_bins_default,xmin=0.0,xmax=1.)
867 zdcModuleMonToolArr.defineHistogram(
'zdcEnergySumCurrentSide, zdcModuleFract;zdcModuleFract_vs_zdcEnergySum_fullrange', type=
'TH2F', title=
';ZDC Energy Sum Current Side [GeV];Module Amplitude Fraction',
868 path=
'/EXPERT/ZDC/ZdcModule/ModuleFractionVsEnergy',
869 xbins=n_energy_bins_default,xmin=0.0,xmax=energy_sum_xmax,
870 ybins=n_mod_fraction_bins_default,ymin=0.0,ymax=1.)
871 zdcModuleMonToolArr.defineHistogram(
'zdcEnergySumCurrentSide, zdcModuleFract;zdcModuleFract_vs_zdcEnergySum_profile', type=
'TProfile', title=
';ZDC Energy Sum Current Side [GeV];Module Amplitude Fraction',
872 path=
'/EXPERT/ZDC/ZdcModule/ModuleFractionVsEnergy',
873 cutmask=
'zdcModuleFractionValid',
874 xbins=n_energy_bins_default,xmin=0.0,xmax=energy_sum_xmax)
875 zdcModuleMonToolArr.defineHistogram(
'zdcEnergySumCurrentSide, zdcModuleFract;zdcModuleFract_vs_zdcEnergySum_zoomedin', type=
'TH2F', title=
';Amplitude Sum Current Side [ADC Counts];Module Amplitude Fraction',
876 path=
'/EXPERT/ZDC/ZdcModule/ModuleFractionVsEnergy',
877 xbins=n_energy_bins_default,xmin=0.0,xmax=10000,
878 ybins=n_mod_fraction_bins_default,ymin=0.0,ymax=1.)
879 if (
not zdcMonAlg.IsOnline):
880 zdcModuleMonToolArr.defineHistogram(
'zdcModuleFract',title=
';Module Amplitude Fraction;Events',
881 path=
'/EXPERT/ZDC/ZdcModule/ModuleFraction',
882 xbins=n_mod_fraction_bins_default,xmin=0.0,xmax=1.)
883 zdcModuleMonToolArr.defineHistogram(
'zdcModuleFract;zdcModuleFract_above20N',title=
';Module Amplitude Fraction;Events',
884 path=
'/EXPERT/ZDC/ZdcModule/ModuleFraction',
885 cutmask=
'zdcAbove20NCurrentSide',
886 xbins=n_mod_fraction_bins_default,xmin=0.0,xmax=1.)
888 if (
not zdcMonAlg.IsInjectedPulse):
889 zdcModuleMonToolArr.defineHistogram(
'zdcModuleCalibAmp',title=
';Module Calibrated Amplitude [GeV];Events',
890 path=
'/EXPERT/ZDC/ZdcModule/ModuleCalibAmp',
891 xbins=2*n_energy_bins_default,xmin=0.0,xmax=module_calib_amp_xmax)
893 if (
not zdcMonAlg.IsOnline
and not zdcMonAlg.IsInjectedPulse):
894 zdcModuleMonToolArr.defineHistogram(
'zdcModuleCalibAmp;zdcModuleCalibAmp_halfrange',title=
';Module Calibrated Amplitude [GeV];Events',
895 path=
'/EXPERT/ZDC/ZdcModule/ModuleCalibAmp',
896 xbins=2*n_energy_bins_default,xmin=0.0,xmax=module_calib_amp_xmax / 2.)
899 if (zdcMonAlg.IsInjectedPulse):
901 zdcModuleMonToolArr.defineHistogram(
'injectedPulseInputVoltage,zdcModuleFitAmp;zdcModuleAmpHG_vs_injectedPulseInputVoltage', type=
'TH2F', title=
';Pulse amp [V];Signal Fit Amp [ADC Counts]',
902 cutmask=
'zdcHGInjPulseValid',
903 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmpHGVsInputVoltage',
907 if (zdcMonAlg.IsOnline):
908 zdcModuleMonToolArr.defineHistogram(
'injectedPulseInputVoltage,zdcModuleFitAmp;zdcModuleAmpHG_vs_injectedPulseInputVoltage_profile', type=
'TProfile', title=
';Pulse amp [V];Signal Fit Amp [ADC Counts]',
909 cutmask=
'zdcHGInjPulseValid',
910 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmpHGVsInputVoltage',
913 zdcModuleMonToolArr.defineHistogram(
'injectedPulseInputVoltage,zdcModuleMaxADCHG', type=
'TH2F', title=
';Pulse amp [V];Max ADC HG',
914 cutmask=
'zdcHGInjPulseValid',
915 path=
'/EXPERT/ZDC/ZdcModule/ModuleMaxADCHGVsInputVoltage',
920 zdcModuleMonToolArr.defineHistogram(
'injectedPulseInputVoltage,zdcModuleLGFitAmp;zdcModuleAmpLG_vs_injectedPulseInputVoltage', type=
'TH2F', title=
';Pulse amp [V];Signal Fit Amp [ADC Counts]',
921 cutmask=
'zdcLGInjPulseValid',
922 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmpLGVsInputVoltage',
926 if (zdcMonAlg.IsOnline):
927 zdcModuleMonToolArr.defineHistogram(
'injectedPulseInputVoltage,zdcModuleLGFitAmp;zdcModuleAmpLG_vs_injectedPulseInputVoltage_profile', type=
'TProfile', title=
';Pulse amp [V];Signal Fit Amp [ADC Counts]',
928 cutmask=
'zdcLGInjPulseValid',
929 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmpLGVsInputVoltage',
932 zdcModuleMonToolArr.defineHistogram(
'injectedPulseInputVoltage,zdcModuleMaxADCLG;zdcModuleMaxADCLG_vs_injectedPulseInputVoltage', type=
'TH2F', title=
';Pulse amp [V];Max ADC LG',
933 cutmask=
'zdcLGInjPulseValid',
934 path=
'/EXPERT/ZDC/ZdcModule/ModuleMaxADCLGVsInputVoltage',
939 if (
not zdcMonAlg.IsOnline):
940 zdcModuleMonToolArr.defineHistogram(
'VoltageIndex, zdcModuleFitAmp', type=
'TH2F', title=
';;Signal Fit Amp [ADC Counts]',
941 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmpHGVsInputVoltageStr',
942 cutmask=
'zdcHGInjPulseValid',
943 xbins=len(voltage_strs_list),xmin=0.0,xmax=len(voltage_strs_list),
945 xlabels=voltage_strs_list)
947 zdcModuleMonToolArr.defineHistogram(
'VoltageIndex, zdcModuleLGFitAmp', type=
'TH2F', title=
';;Signal Fit Amp [ADC Counts]',
948 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmpLGVsInputVoltageStr',
949 cutmask=
'zdcLGInjPulseValid',
950 xbins=len(voltage_strs_list),xmin=0.0,xmax=len(voltage_strs_list),
952 xlabels=voltage_strs_list)
957 if (
not zdcMonAlg.IsOnline):
958 zdcModuleSingleVoltageResponseArr = helper.addArray([sides,modules,voltage_strs_list],zdcMonAlg,
'LucrodResponseSingleVoltageMonitor', topPath =
'ZDC/EXPERT/ZDC/ZdcModule/LucrodResponseSingleVoltage')
959 zdcModuleSingleVoltageResponseArr.defineHistogram(
'zdcModuleFitAmp;zdcModuleAmpHG_fixed_vInj', type=
'TH1F', title=
';Signal Fit Amp [ADC Counts];Events',
960 cutmask=
'zdcHGInjPulseValid',
963 zdcModuleSingleVoltageResponseArr.defineHistogram(
'zdcModuleLGFitAmp;zdcModuleAmpLG_fixed_vInj', type=
'TH1F', title=
';Signal Fit Amp [ADC Counts];Events',
964 cutmask=
'zdcLGInjPulseValid',
969 zdcModuleMonToolArr.defineHistogram(
'zdcModuleTime',title=
';Module Time [ns];Events',
970 path=
'/SHIFT/ZDC/ZdcModule/ModuleTime',
972 xbins=n_time_centroid_bins_default,xmin=-10.0,xmax=10.0)
974 if (
not zdcMonAlg.IsPPMode):
975 zdcModuleMonToolArr.defineHistogram(
'zdcModuleTime;zdcModuleTime_LG',title=
';Module Time [ns];Events',
976 path=
'/SHIFT/ZDC/ZdcModule/ModuleTime',
978 cutmask=
'zdcModuleLG',
979 xbins=n_time_centroid_bins_default,xmin=-10.0,xmax=10.0)
981 zdcModuleMonToolArr.defineHistogram(
'zdcModuleTime;zdcModuleTime_HG',title=
';Module Time [ns];Events',
982 path=
'/SHIFT/ZDC/ZdcModule/ModuleTime',
984 cutmask=
'zdcModuleHG',
985 xbins=n_time_centroid_bins_default,xmin=-10.0,xmax=10.0)
987 zdcModuleMonToolArr.defineHistogram(
'zdcModuleFitT0',title=
';Module FitT0 [ns];Events',
988 path=
'/EXPERT/ZDC/ZdcModule/ModuleFitT0',
989 xbins=200,xmin=0.0,xmax=time_in_data_buffer)
991 if (
not zdcMonAlg.IsPPMode):
992 zdcModuleMonToolArr.defineHistogram(
'zdcModuleFitT0;zdcModuleFitT0_LG',title=
';Module FitT0 LG [ns];Events',
993 path=
'/EXPERT/ZDC/ZdcModule/ModuleFitT0',
994 cutmask=
'zdcModuleLG',
995 xbins=n_time_centroid_bins_default,xmin=0.0,xmax=time_in_data_buffer)
997 zdcModuleMonToolArr.defineHistogram(
'zdcModuleFitT0;zdcModuleFitT0_HG',title=
';Module FitT0 HG [ns];Events',
998 path=
'/EXPERT/ZDC/ZdcModule/ModuleFitT0',
999 cutmask=
'zdcModuleHG',
1000 xbins=n_time_centroid_bins_default,xmin=0.0,xmax=time_in_data_buffer)
1003 if (
not zdcMonAlg.IsOnline
and not zdcMonAlg.IsInjectedPulse):
1004 zdcModuleMonToolArr.defineHistogram(
'zdcModuleCalibTime',title=
';Module Calibrated Time [ns];Events',
1005 path=
'/EXPERT/ZDC/ZdcModule/ModuleCalibTime',
1006 xbins=n_time_centroid_bins_default,xmin=-10.0,xmax=10.0)
1010 zdcModuleMonToolArr.defineHistogram(
'zdcModuleChisq',title=
';Module Chi-square;Events',
1011 path=
'/EXPERT/ZDC/ZdcModule/ModuleChisq',
1012 weight=
'zdcModuleChisqEventWeight',
1013 xbins=
create_log_bins(module_chisq_min, module_chisq_max, module_chisq_nbins))
1014 zdcModuleMonToolArr.defineHistogram(
'zdcModuleChisqOverAmp',title=
';Module Chi-square / Amplitude;Events',
1015 path=
'/SHIFT/ZDC/ZdcModule/ModuleChisq',
1016 opt=
'kAlwaysCreate',
1017 weight=
'zdcModuleChisqOverAmpEventWeight',
1018 xbins=
create_log_bins(module_chisq_over_amp_min, module_chisq_over_amp_max, module_chisq_over_amp_nbins))
1019 zdcModuleMonToolArr.defineHistogram(
'zdcModuleChisqOverAmp;zdcModuleChisqOverAmp_linear',title=
';Module Chi-square / Amplitude;Events',
1020 path=
'/SHIFT/ZDC/ZdcModule/ModuleChisq',
1021 opt=
'kAlwaysCreate',
1022 xbins=module_chisq_over_amp_linear_nbins,xmin=0.,xmax=module_chisq_over_amp_linear_max)
1024 if (
not zdcMonAlg.IsOnline):
1025 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp, zdcModuleChisqOverAmp',type=
'TH2F',title=
';Module Amplitude [ADC Counts];Module Chi-square / Amplitude',
1026 path=
'/EXPERT/ZDC/ZdcModule/ModuleChisq',
1027 weight=
'zdcModuleChisqOverAmpEventWeight',
1028 xbins=n_energy_bins_default,xmin=0.0,xmax=module_amp_xmax / 2.,
1029 ybins=
create_log_bins(module_chisq_over_amp_min, module_chisq_over_amp_max, module_chisq_over_amp_nbins))
1033 zdcModuleMonToolArr.defineHistogram(
'zdcModuleHGtoLGAmpRatio',title=
';HG-to-LG Amplitude Raio;Events',
1034 path=
'/SHIFT/ZDC/ZdcModule/ModuleHGLGCompr',
1035 opt=
'kAlwaysCreate',
1036 cutmask=
'zdcModuleHG',
1037 xbins=n_HG_LG_amp_ratio_bins,xmin=hg_lg_amp_ratio_min_nominal,xmax=hg_lg_amp_ratio_max_nominal)
1039 if (
not zdcMonAlg.IsInjectedPulse):
1040 zdcModuleMonToolArr.defineHistogram(
'zdcModuleHGtoLGAmpRatioNoNonlinCorr',title=
';HG-to-LG Amplitude Raio;Events',
1041 path=
'/SHIFT/ZDC/ZdcModule/ModuleHGLGComprNoNonlinCorr',
1042 opt=
'kAlwaysCreate',
1043 cutmask=
'zdcModuleHG',
1044 xbins=n_HG_LG_amp_ratio_bins,xmin=hg_lg_amp_ratio_min_nominal,xmax=hg_lg_amp_ratio_max_nominal)
1046 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp, zdcModuleHGtoLGAmpRatio', type=
'TH2F', title=
';ZDC HG Amplitude [ADC Counts];HG-to-LG Amplitude Raio;Events',
1047 path=
'/EXPERT/ZDC/ZdcModule/ModuleHGLGCompr',
1048 cutmask=
'zdcModuleHG',
1049 xbins=n_module_amp_fine_bins, xmin=0.0, xmax=module_FPGA_max_ADC,
1050 ybins=n_HG_LG_amp_ratio_bins,ymin=hg_lg_amp_ratio_min_nominal,ymax=hg_lg_amp_ratio_max_nominal)
1052 if (
not zdcMonAlg.IsInjectedPulse):
1053 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp, zdcModuleHGtoLGAmpRatioNoNonlinCorr', type=
'TH2F', title=
';ZDC HG Amplitude [ADC Counts];HG-to-LG Amplitude Raio;Events',
1054 path=
'/EXPERT/ZDC/ZdcModule/ModuleHGLGComprNoNonlinCorr',
1055 cutmask=
'zdcModuleHG',
1056 xbins=n_module_amp_fine_bins, xmin=0.0, xmax=module_FPGA_max_ADC,
1057 ybins=n_HG_LG_amp_ratio_bins,ymin=hg_lg_amp_ratio_min_nominal,ymax=hg_lg_amp_ratio_max_nominal)
1059 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmp, zdcModuleHGtoLGAmpRatio;zdcModuleHGtoLGAmpRatio_vs_zdcModuleAmp_profile', type=
'TProfile', title=
';ZDC HG Amplitude [ADC Counts];Average HG-to-LG Amplitude Raio;Events',
1060 path=
'/EXPERT/ZDC/ZdcModule/ModuleHGLGCompr',
1061 cutmask=
'zdcModuleHG',
1062 xbins=n_module_amp_fine_bins, xmin=0.0, xmax=module_FPGA_max_ADC)
1064 if (
not zdcMonAlg.IsOnline):
1065 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmpLGRefit, zdcModuleHGtoLGAmpRatio', type=
'TH2F', title=
';ZDC LG-Refit Amplitude [ADC Counts];HG-to-LG Amplitude Raio;Events',
1066 path=
'/EXPERT/ZDC/ZdcModule/ModuleHGLGCompr',
1067 cutmask=
'zdcModuleHG',
1068 xbins=n_module_amp_fine_bins, xmin=0.0, xmax=amp_LG_refit_max_ADC,
1069 ybins=n_HG_LG_amp_ratio_bins,ymin=hg_lg_amp_ratio_min_nominal,ymax=hg_lg_amp_ratio_max_nominal)
1070 zdcModuleMonToolArr.defineHistogram(
'zdcModuleAmpLGRefit, zdcModuleHGtoLGAmpRatio;zdcModuleHGtoLGAmpRatio_vs_zdcModuleAmpLGRefit_profile', type=
'TProfile', title=
';ZDC LG-Refit Amplitude [ADC Counts];Average HG-to-LG Amplitude Raio;Events',
1071 path=
'/EXPERT/ZDC/ZdcModule/ModuleHGLGCompr',
1072 cutmask=
'zdcModuleHG',
1073 xbins=n_module_amp_fine_bins, xmin=0.0, xmax=amp_LG_refit_max_ADC)
1075 zdcModuleMonToolArr.defineHistogram(
'zdcModuleHGtoLGT0Diff',title=
';HG-LG T0 Difference [ns];Events',
1076 path=
'/EXPERT/ZDC/ZdcModule/ModuleHGLGCompr',
1077 cutmask=
'zdcModuleHG',
1078 xbins=n_HG_LG_time_diff_bins,xmin=-10.0,xmax=10.0)
1080 zdcModuleMonToolArr.defineHistogram(
'zdcModuleHGtoLGT0Diff, zdcModuleHGtoLGAmpRatio', type=
'TH2F', title=
';HG-LG T0 Difference [ns];HG-to-LG Amplitude Raio;Events',
1081 path=
'/EXPERT/ZDC/ZdcModule/ModuleHGLGCompr',
1082 cutmask=
'zdcModuleHG',
1083 xbins=n_HG_LG_time_diff_bins,xmin=2.0,xmax=4.0,
1084 ybins=n_HG_LG_amp_ratio_bins,ymin=hg_lg_amp_ratio_min_tight,ymax=hg_lg_amp_ratio_max_tight)
1090 if (
not zdcMonAlg.IsInjectedPulse):
1091 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleCalibAmp;zdcModuleCalibAmp_vs_lb', type=
'TH2F', title=
';lumi block;Module Calib Amplitude',
1092 path=
'/EXPERT/ZDC/ZdcModule/ModuleCalibAmpLBdep',
1093 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1094 ybins=n_module_amp_coarse_bins, ymin=0.0, ymax=module_calib_amp_1Nmonitor_xmax)
1095 if (
not zdcMonAlg.IsOnline):
1096 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleAmp;zdcModuleAmp_vs_lb', type=
'TH2F', title=
';lumi block;Module Amplitude [ADC counts]',
1097 path=
'/EXPERT/ZDC/ZdcModule/ModuleAmpLBdep',
1098 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1099 ybins=n_module_amp_coarse_bins, ymin=0.0, ymax=module_amp_1Nmonitor_xmax)
1100 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleFract;zdcModuleFract_above20N_vs_lb', type=
'TH2F',title=
';lumi block;Module Amplitude Fraction',
1101 path=
'/EXPERT/ZDC/ZdcModule/ModuleFractionLBdep',
1102 cutmask=
'zdcAbove20NCurrentSide',
1103 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1104 ybins=n_mod_fraction_bins_default,ymin=0.0,ymax=1.)
1106 if (
not zdcMonAlg.IsOnline
and not zdcMonAlg.IsInjectedPulse):
1107 zdcModuleMonToolArr.defineHistogram(
'bcid, zdcModuleCalibAmp', type=
'TH2F', title=
';BCID;Module Calib Amplitude',
1108 path=
'/EXPERT/ZDC/ZdcModule/ModuleCalibAmpBCIDdep',
1109 xbins=bcid_max,xmin=0.0,xmax=bcid_max,
1110 ybins=n_module_amp_coarse_bins, ymin=0.0, ymax=module_calib_amp_1Nmonitor_xmax)
1113 if (
not zdcMonAlg.IsOnline):
1114 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleTime;zdcModuleTime_vs_lb', type=
'TH2F', title=
';lumi block;Module Time [ns]',
1115 path=
'/EXPERT/ZDC/ZdcModule/ModuleTimeLBdep',
1116 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1117 ybins=n_time_centroid_bins_default, ymin=-10.0, ymax=10.0)
1118 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleTime;zdcModuleTime_LG_vs_lb', type=
'TH2F', title=
';lumi block;Module Time [ns]',
1119 path=
'/EXPERT/ZDC/ZdcModule/ModuleTimeLBdep',
1120 cutmask=
'zdcModuleLG',
1121 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1122 ybins=n_time_centroid_bins_default, ymin=-10.0, ymax=10.0)
1123 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleTime;zdcModuleTime_HG_vs_lb', type=
'TH2F', title=
';lumi block;Module Time [ns]',
1124 path=
'/EXPERT/ZDC/ZdcModule/ModuleTimeLBdep',
1125 cutmask=
'zdcModuleHG',
1126 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1127 ybins=n_time_centroid_bins_default, ymin=-10.0, ymax=10.0)
1128 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleCalibTime;zdcModuleCalibTime_LG_vs_lb', type=
'TH2F', title=
';lumi block;Module Time [ns]',
1129 path=
'/EXPERT/ZDC/ZdcModule/ModuleTimeLBdep',
1130 cutmask=
'zdcModuleLG',
1131 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1132 ybins=n_time_centroid_bins_default, ymin=-10.0, ymax=10.0)
1133 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleCalibTime;zdcModuleCalibTime_HG_vs_lb', type=
'TH2F', title=
';lumi block;Module Time [ns]',
1134 path=
'/EXPERT/ZDC/ZdcModule/ModuleTimeLBdep',
1135 cutmask=
'zdcModuleHG',
1136 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1137 ybins=n_time_centroid_bins_default, ymin=-10.0, ymax=10.0)
1139 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleTime;zdcModuleTime_LG_vs_lb', type=
'TH2F', title=
';lumi block;Module Time [ns]',
1140 path=
'/EXPERT/ZDC/ZdcModule/ModuleTimeLBdep',
1141 cutmask=
'zdcModuleLG',
1142 xbins=n_lumi_block_bins_coarse,xmin=0.0,xmax=lumi_block_max,
1143 ybins=n_time_centroid_bins_default, ymin=-10.0, ymax=10.0)
1144 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleTime;zdcModuleTime_HG_vs_lb', type=
'TH2F', title=
';lumi block;Module Time [ns]',
1145 path=
'/EXPERT/ZDC/ZdcModule/ModuleTimeLBdep',
1146 cutmask=
'zdcModuleHG',
1147 xbins=n_lumi_block_bins_coarse,xmin=0.0,xmax=lumi_block_max,
1148 ybins=n_time_centroid_bins_default, ymin=-10.0, ymax=10.0)
1150 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleTime;zdcModuleTime_LG_vs_lb_profile', type=
'TProfile', title=
';lumi block;Module Time [ns]',
1151 path=
'/EXPERT/ZDC/ZdcModule/ModuleTimeLBdep',
1152 cutmask=
'zdcModuleLGTimeValid',
1153 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max)
1154 zdcModuleMonToolArr.defineHistogram(
'lumiBlock, zdcModuleTime;zdcModuleTime_HG_vs_lb_profile', type=
'TProfile', title=
';lumi block;Module Time [ns]',
1155 path=
'/EXPERT/ZDC/ZdcModule/ModuleTimeLBdep',
1156 cutmask=
'zdcModuleHGTimeValid',
1157 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max)
1163 if (zdcMonAlg.EnableRPDAmp):
1165 rpdChannelMonToolArr = helper.addArray([sides,channels],zdcMonAlg,
'RpdChannelMonitor', topPath =
'ZDC')
1168 rpdChannelMonToolArr.defineHistogram(
'RPDChannelAmplitudeCalib', title=
';RPD Channel Calibrated Amplitude;Events',
1169 path=
'/SHIFT/RPD/RPDChannel/CalibAmp',
1170 opt=
'kAlwaysCreate',
1171 cutmask=
'RPDChannelValid',
1172 xbins=n_rpd_amp_bins_full_range,xmin=rpd_channel_amp_min,xmax=rpd_sum_adc_max)
1173 rpdChannelMonToolArr.defineHistogram(
'RPDChannelMaxADC', title=
';Max ADC [ADC Counts];Events',
1174 path=
'/EXPERT/RPD/RPDChannel/MaxADC',
1175 cutmask=
'RPDChannelValid',
1176 xbins=n_energy_bins_default,xmin=0.0,xmax=module_FPGA_max_ADC)
1178 if (
not zdcMonAlg.IsOnline):
1179 rpdChannelMonToolArr.defineHistogram(
'RPDChannelSubAmp', title=
';RPD Channel Subtracted Amplitude;Events',
1180 path=
'/EXPERT/RPD/RPDChannel/SubAmp',
1181 cutmask=
'RPDChannelCentroidValid',
1182 xbins=n_rpd_sub_amp_bins,xmin=rpd_sub_amp_min,xmax=rpd_sub_amp_max)
1185 if (
not zdcMonAlg.IsOnline):
1186 rpdChannelMonToolArr.defineHistogram(
'RPDChannelAmplitudeCalib,RPDChannelMaxADC', type=
'TH2F', title=
';Sum ADC [ADC Counts];Max ADC [ADC Counts]',
1187 path=
'/EXPERT/RPD/RPDChannel/MaxADCVsSumADC',
1188 cutmask=
'RPDChannelValid',
1189 xbins=n_rpd_amp_bins_full_range,xmin=rpd_channel_amp_min,xmax=rpd_sum_adc_max,
1190 ybins=n_energy_bins_default,ymin=0.0,ymax=module_FPGA_max_ADC)
1192 rpdChannelMonToolArr.defineHistogram(
'RPDChannelMaxSample', title=
';Max Sample;Events',
1193 path=
'/EXPERT/RPD/RPDChannel/MaxSample',
1194 cutmask=
'RPDChannelValid',
1195 xbins=24,xmin=0.0,xmax=24.)
1199 rpdChannelMonToolArr.defineHistogram(
'RPDStatusBits',title=
';;Events',
1200 path=
'/EXPERT/RPD/RPDChannel/StatusBits',
1201 xbins=nRpdStatusBits,xmin=0,xmax=nRpdStatusBits,
1203 xlabels=[
'ValidBit',
'OutOfTimePileupBit',
'OverflowBit',
'PrePulseBit',
'PostPulseBit',
'NoPulseBit',
'BadAvgBaselineSubtrBit',
'InsufficientPileupFitPointsBit',
'PileupStretchedExpFitFailBit',
'PileupStretchedExpGrowthBit',
'PileupBadStretchedExpSubtrBit',
'PileupExpFitFailBit',
'PileupExpGrowthBit',
'PileupBadExpSubtrBit',
'PileupStretchedExpPulseLike'])
1205 rpdChannelMonToolArr.defineHistogram(
'RPDChannelValidBitFloat;RPDChannelValidBit',title=
'RPD Channel valid bit;;Events',
1206 path=
'/SHIFT/RPD/RPDChannel/StatusBits',
1207 opt=
'kAlwaysCreate',
1208 xbins=2,xmin=0,xmax=2,
1209 xlabels=[
'Valid',
'Invalid'])
1212 if (
not zdcMonAlg.IsOnline):
1213 rpdChannelMonToolArr.defineHistogram(
'lumiBlock, RPDChannelAmplitudeCalib;RPDChannelAmplitudeCalib_vs_lb', type=
'TH2F', title=
';lumi block;RPD Channel Calibrated Amplitude',
1214 path=
'/EXPERT/RPD/RPDChannel/CalibAmpLBdep',
1215 cutmask=
'RPDChannelValid',
1216 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1217 ybins=n_rpd_amp_bins_full_range,ymin=rpd_channel_amp_min,ymax=rpd_sum_adc_max)
1218 rpdChannelMonToolArr.defineHistogram(
'lumiBlock, RPDChannelMaxADC;RPDChannelMaxADC_vs_lb', type=
'TH2F', title=
';lumi block;Max ADC [ADC Counts]',
1219 path=
'/EXPERT/RPD/RPDChannel/MaxADCLBdep',
1220 cutmask=
'RPDChannelValid',
1221 xbins=lumi_block_max,xmin=0.0,xmax=lumi_block_max,
1222 ybins=n_energy_bins_default,ymin=0.0,ymax=module_FPGA_max_ADC)
1224 rpdChannelMonToolArr.defineHistogram(
'lumiBlock, RPDChannelAmplitudeCalib;RPDChannelAmplitudeCalib_vs_lb', type=
'TH2F', title=
';lumi block;RPD Channel Calibrated Amplitude',
1225 path=
'/EXPERT/RPD/RPDChannel/CalibAmpLBdep',
1226 cutmask=
'RPDChannelValid',
1227 xbins=n_lumi_block_bins_coarse,xmin=0.0,xmax=lumi_block_max,
1228 ybins=n_rpd_amp_bins_full_range,ymin=rpd_channel_amp_min,ymax=rpd_sum_adc_max)
1229 rpdChannelMonToolArr.defineHistogram(
'lumiBlock, RPDChannelMaxADC;RPDChannelMaxADC_vs_lb', type=
'TH2F', title=
';lumi block;Max ADC [ADC Counts]',
1230 path=
'/EXPERT/RPD/RPDChannel/MaxADCLBdep',
1231 cutmask=
'RPDChannelValid',
1232 xbins=n_lumi_block_bins_coarse,xmin=0.0,xmax=lumi_block_max,
1233 ybins=n_energy_bins_default,ymin=0.0,ymax=module_FPGA_max_ADC)
1240 acc = helper.result()