10 #include <ecl/calibration/eclAutocovarianceCalibrationC4Algorithm.h>
13 #include <ecl/dataobjects/ECLElementNumbers.h>
14 #include <ecl/dbobjects/ECLCrystalCalib.h>
16 #include <framework/database/DBImportObjPtr.h>
17 #include <ecl/dbobjects/ECLAutoCovariance.h>
32 "Perform validation of coveriance matrix calibration"
45 auto Chi2VsCrysID = getObjectPtr<TH2F>(
"Chi2VsCrysID");
47 std::vector<double> cryIDs;
48 std::vector<double> means;
49 std::vector<double> RMSs;
50 std::vector<double> counts;
54 TH1F* hChi2 = (TH1F*)Chi2VsCrysID->ProjectionY(
"hChi2", crysID + 1, crysID + 1);
56 int totalCounts = hChi2->GetEntries();
59 B2INFO(
"eclAutocovarianceCalibrationC4Algorithm: Warning Below Count Limit: crysID totalCounts m_minEntries: " << crysID <<
" " <<
63 float mean = hChi2->GetMean();
65 cryIDs.push_back(crysID + 1);
66 means.push_back(mean);
67 RMSs.push_back(hChi2->GetRMS());
68 counts.push_back(totalCounts);
73 auto gMeanVsCrysID =
new TGraph(cryIDs.size(), cryIDs.data(), means.data());
74 gMeanVsCrysID->SetName(
"gMeanVsCrysID");
75 gMeanVsCrysID->SetMarkerStyle(20);
76 auto gRMSVsCrysID =
new TGraph(cryIDs.size(), cryIDs.data(), RMSs.data());
77 gRMSVsCrysID->SetName(
"gRMSVsCrysID");
78 gRMSVsCrysID->SetMarkerStyle(20);
79 auto gCountsVsCrysID =
new TGraph(cryIDs.size(), cryIDs.data(), counts.data());
80 gCountsVsCrysID->SetName(
"gCountsVsCrysID");
81 gCountsVsCrysID->SetMarkerStyle(20);
85 TDirectory::TContext context;
86 TFile* histfile =
new TFile(fName,
"recreate");
88 gMeanVsCrysID->Write();
89 gRMSVsCrysID->Write();
90 gCountsVsCrysID->Write();
91 Chi2VsCrysID->Write();
Base class for calibration algorithms.
void setDescription(const std::string &description)
Set algorithm description (in constructor)
EResult
The result of calibration.
@ c_OK
Finished successfuly =0 in Python.
int m_minEntries
Minimum entries to fit a crystal.
std::string m_outputName
file name for histogram output
eclAutocovarianceCalibrationC4Algorithm()
..Constructor
virtual EResult calibrate() override
..Run algorithm on events
const int c_NCrystals
Number of crystals.
Abstract base class for different kinds of events.