10 #include <ecl/modules/eclAutocovarianceCalibrationC1Collector/eclAutocovarianceCalibrationC1Collector.h>
13 #include <framework/dataobjects/EventMetaData.h>
16 #include <ecl/dataobjects/ECLDigit.h>
17 #include <ecl/dataobjects/ECLDsp.h>
18 #include <ecl/dbobjects/ECLCrystalCalib.h>
26 REG_MODULE(eclAutocovarianceCalibrationC1Collector);
32 eclAutocovarianceCalibrationC1CollectorModule::eclAutocovarianceCalibrationC1CollectorModule()
35 setDescription(
"Module to export histogram of noise level of ECL waveforms in delayed Bhabha events");
36 setPropertyFlags(c_ParallelProcessingCertified);
39 void eclAutocovarianceCalibrationC1CollectorModule::prepare()
44 PPVsCrysID =
new TH2F(
"PPVsCrysID",
"Peak to peak amplitude for each crystal;crystal ID;Peak to peak Amplitud (ADC)",
45 ECLElementNumbers::c_NCrystals, 0,
46 ECLElementNumbers::c_NCrystals, MaxPeaktoPeakValue, 0, MaxPeaktoPeakValue);
47 registerObject<TH2F>(
"PPVsCrysID", PPVsCrysID);
48 m_eclDsps.isRequired();
51 void eclAutocovarianceCalibrationC1CollectorModule::startRun()
54 B2INFO(
"eclAutocovarianceCalibrationC1Collector: Experiment = " << m_evtMetaData->getExperiment() <<
" run = " <<
55 m_evtMetaData->getRun());
58 void eclAutocovarianceCalibrationC1CollectorModule::collect()
62 const int NumDsp = m_eclDsps.getEntries();
65 if (NumDsp == ECLElementNumbers::c_NCrystals) {
67 for (
auto& aECLDsp : m_eclDsps) {
69 const int id = aECLDsp.getCellId() - 1;
72 float PeakToPeak = (float) aECLDsp.computePeaktoPeakAmp();
75 PPVsCrysID->Fill(
id, PeakToPeak);
81 void eclAutocovarianceCalibrationC1CollectorModule::closeRun()
83 for (
int i = 0; i < ECLElementNumbers::c_NCrystals; i++) {
84 for (
int j = 0; j < MaxPeaktoPeakValue; j++) {
85 getObjectPtr<TH2>(
"PPVsCrysID")->SetBinContent(i + 1, j + 1, PPVsCrysID->GetBinContent(i + 1, j + 1));
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Abstract base class for different kinds of events.