10#include <ecl/modules/eclAutocovarianceCalibrationC4Collector/eclAutocovarianceCalibrationC4Collector.h>
13#include <TDecompChol.h>
16#include <framework/dataobjects/EventMetaData.h>
19#include <ecl/dataobjects/ECLDsp.h>
20#include <ecl/dbobjects/ECLCrystalCalib.h>
28REG_MODULE(eclAutocovarianceCalibrationC4Collector);
36 m_ECLAutocovarianceCalibrationC1Threshold(
"ECLAutocovarianceCalibrationC1Threshold"),
37 m_ECLAutocovarianceCalibrationC3Autocovariances(
"ECLAutoCovariance")
40 setDescription(
"Module to test covariance matrix calibrations using waveforms from delayed Bhabha events");
60 B2INFO(
"eclAutocovarianceCalibrationC4Collector: Experiment = " <<
m_evtMetaData->getExperiment() <<
" run = " <<
80 if (InvertStatus == 0) {
82 B2INFO(
"Invert Failed for " <<
id);
84 B2FATAL(
"Invert Failed for " <<
id);
95 const int NumDsp =
m_eclDsps.getEntries();
102 const int id = aECLDsp.getCellId() - 1;
105 float PeakToPeak = (float) aECLDsp.computePeaktoPeakAmp();
117 double aconst = 0, bconst = 0, cconst = 0;
118 for (
int i = 0; i < 31; i++) {
119 double sum = 0, sumQ = 0;
120 for (
int j = 0; j < 31; j++) {
125 bconst += sum * waveform[i];
126 cconst += sumQ * waveform[i];
129 const double Bconst = bconst / aconst;
130 const double chi2val = ((aconst * Bconst - 2 * bconst) * Bconst + cconst);
143 getObjectPtr<TH2>(
"Chi2VsCrysID")->SetBinContent(i + 1, j + 1,
Chi2VsCrysID->GetBinContent(i + 1, j + 1));
Calibration collector module base class.
void setDescription(const std::string &description)
Sets the description of the module.
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
std::vector< TMatrixDSym > m_NoiseMatrix
Stores noise matrix derived from the input Autocovariances.
StoreArray< ECLDsp > m_eclDsps
Required input array of ECLDSPs.
void startRun() override
Load run-dep payloads.
int m_NbinsForChi2Histogram
Number of bins For Chi2 Histogram.
DBObjPtr< ECLCrystalCalib > m_ECLAutocovarianceCalibrationC1Threshold
thresholds obtained from C1 stage
void collect() override
Select events and crystals and accumulate histograms.
StoreObjPtr< EventMetaData > m_evtMetaData
dataStore EventMetaData
std::vector< float > m_PeakToPeakThresholds
vector of thresholds obtained from DB object
void closeRun() override
Transfer fom array container to ROOT histogram.
void prepare() override
Define histograms and read payloads from DB.
eclAutocovarianceCalibrationC4CollectorModule()
Constructor.
DBObjPtr< ECLAutoCovariance > m_ECLAutocovarianceCalibrationC3Autocovariances
Autocovariances obtained from C3 stage.
static constexpr int m_numberofADCPoints
length of ECLDsp waveform
TH2F * Chi2VsCrysID
Store fit chi2 vs.
int m_upperThresholdForChi2Histogram
Upper Threshold For Chi2 Histogram.
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
const int c_NCrystals
Number of crystals.
Abstract base class for different kinds of events.