10 #include <ecl/calibration/eclAutocovarianceCalibrationC2Algorithm.h>
13 #include <ecl/dataobjects/ECLElementNumbers.h>
14 #include <ecl/dbobjects/ECLCrystalCalib.h>
20 #include <TDirectory.h>
30 "Determine baseline for waveforms to be used in computing the covariance matrix"
38 auto m_BaselineVsCrysID = getObjectPtr<TH1D>(
"m_BaselineVsCrysID");
39 auto m_CounterVsCrysID = getObjectPtr<TH1D>(
"m_CounterVsCrysID");
41 std::vector<float> cryIDs;
42 std::vector<float> baselines;
43 std::vector<float> baselinesError;
47 double totalCounts = m_CounterVsCrysID->GetBinContent(m_CounterVsCrysID->GetBin(crysID + 1));
50 B2INFO(
"eclAutocovarianceCalibrationC2Algorithm: warning total entries for cell ID " << crysID + 1 <<
" is only: " << totalCounts <<
56 double baseline = m_BaselineVsCrysID->GetBinContent(m_BaselineVsCrysID->GetBin(crysID + 1));;
58 baseline /= totalCounts;
60 B2INFO(
"crysID " << crysID <<
" baseline: " << baseline);
62 cryIDs.push_back(crysID);
63 baselines.push_back(baseline);
64 baselinesError.push_back(0);
66 B2INFO(
"eclAutocovarianceCalibrationC2Algorithm crysID baseline totalCounts " << crysID <<
" " << baseline <<
" " << totalCounts);
70 auto gBaselineVsCrysID =
new TGraph(cryIDs.size(), cryIDs.data(), baselines.data());
71 gBaselineVsCrysID->SetName(
"gBaselineVsCrysID");
75 TDirectory::TContext context;
76 TFile* histfile =
new TFile(fName,
"recreate");
78 m_BaselineVsCrysID->Write();
79 gBaselineVsCrysID->Write();
Base class for calibration algorithms.
void saveCalibration(TClonesArray *data, const std::string &name)
Store DBArray payload with given name with default IOV.
void setDescription(const std::string &description)
Set algorithm description (in constructor)
EResult
The result of calibration.
@ c_OK
Finished successfuly =0 in Python.
@ c_NotEnoughData
Needs more data =2 in Python.
General DB object to store one calibration number per ECL crystal.
void setCalibVector(const std::vector< float > &CalibConst, const std::vector< float > &CalibConstUnc)
Set vector of constants with uncertainties.
std::string m_outputName
file name for histogram output
const int m_numberofADCPoints
length of ECLDsp waveform
eclAutocovarianceCalibrationC2Algorithm()
..Constructor
int m_TotalCountsThreshold
min number of counts needed to compute calibration
virtual EResult calibrate() override
..Run algorithm on events
const int c_NCrystals
Number of crystals.
Abstract base class for different kinds of events.