11 #include <svd/calibration/SVDCrossTalkCalibrationsAlgorithm.h>
12 #include <svd/calibration/SVDCrossTalkStripsCalibrations.h>
21 SVDCrossTalkCalibrationsAlgorithm::SVDCrossTalkCalibrationsAlgorithm(
const std::string& str) :
24 setDescription(
"Calibration algorithm for SVDCrossTalkCalibrations payload");
30 int isCrossTalkCal = 0;
33 auto tree = getObjectPtr<TTree>(
"HTreeCrossTalkCalib");
35 TH1F* hist =
new TH1F(
"",
"", 768, 0, 768);
39 }
else if (!tree->GetEntries()) {
40 B2WARNING(
"Empty tree");
48 tree->SetBranchAddress(
"hist", &hist);
49 tree->SetBranchAddress(
"layer", &layer);
50 tree->SetBranchAddress(
"ladder", &ladder);
51 tree->SetBranchAddress(
"sensor", &sensor);
52 tree->SetBranchAddress(
"side", &side);
56 for (
int i = 0; i < tree->GetEntries(); i++) {
60 if (side == 0 && layer != 3) nstrips = 512;
62 for (
int strip = 0; strip < nstrips; strip++) {
64 isCrossTalkCal = hist->GetBinContent(strip + 1);
66 if (layer == 4 && ladder == 1 && sensor == 2 && side == 1
68 cout <<
"Not enough Data: " << hist->GetEntries() <<
" entries found" << endl;
72 payload->set(layer, ladder, sensor, side, strip, isCrossTalkCal);