Skip to content

Commit

Permalink
[Common] TH3F input only from CCDB for qvector calibration (AliceO2Gr…
Browse files Browse the repository at this point in the history
…oup#5954)

* TH3F input only from CCDB for qvector calibration

* fix

* Please consider the following formatting changes

---------

Co-authored-by: junleekim <[email protected]>
Co-authored-by: ALICE Action Bot <[email protected]>
  • Loading branch information
3 people authored May 2, 2024
1 parent c2b6c39 commit 6255cbe
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 182 deletions.
16 changes: 8 additions & 8 deletions Common/DataModel/Qvectors.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ namespace o2::aod
namespace qvec
{
DECLARE_SOA_COLUMN(Cent, cent, float);
DECLARE_SOA_COLUMN(CentBin, centBin, int);
DECLARE_SOA_COLUMN(IsCalibrated, isCalibrated, bool);

DECLARE_SOA_COLUMN(QvecRe, qvecRe, std::vector<float>);
DECLARE_SOA_COLUMN(QvecIm, qvecIm, std::vector<float>);
Expand Down Expand Up @@ -59,15 +59,15 @@ DECLARE_SOA_COLUMN(LabelsBNeg, labelsBNeg, std::vector<int>);
} // namespace qvec

DECLARE_SOA_TABLE(Qvectors, "AOD", "QVECTORDEVS", //! Table with all Qvectors.
qvec::Cent, qvec::CentBin, qvec::QvecRe, qvec::QvecIm, qvec::QvecAmp);
qvec::Cent, qvec::IsCalibrated, qvec::QvecRe, qvec::QvecIm, qvec::QvecAmp);
using Qvector = Qvectors::iterator;

DECLARE_SOA_TABLE(QvectorFT0Cs, "AOD", "QVECTORSFT0C", qvec::CentBin, qvec::QvecFT0CRe, qvec::QvecFT0CIm, qvec::SumAmplFT0C);
DECLARE_SOA_TABLE(QvectorFT0As, "AOD", "QVECTORSFT0A", qvec::CentBin, qvec::QvecFT0ARe, qvec::QvecFT0AIm, qvec::SumAmplFT0A);
DECLARE_SOA_TABLE(QvectorFT0Ms, "AOD", "QVECTORSFT0M", qvec::CentBin, qvec::QvecFT0MRe, qvec::QvecFT0MIm, qvec::SumAmplFT0M);
DECLARE_SOA_TABLE(QvectorFV0As, "AOD", "QVECTORSFV0A", qvec::CentBin, qvec::QvecFV0ARe, qvec::QvecFV0AIm, qvec::SumAmplFV0A);
DECLARE_SOA_TABLE(QvectorBPoss, "AOD", "QVECTORSBPOS", qvec::CentBin, qvec::QvecBPosRe, qvec::QvecBPosIm, qvec::NTrkBPos, qvec::LabelsBPos);
DECLARE_SOA_TABLE(QvectorBNegs, "AOD", "QVECTORSBNEG", qvec::CentBin, qvec::QvecBNegRe, qvec::QvecBNegIm, qvec::NTrkBNeg, qvec::LabelsBNeg);
DECLARE_SOA_TABLE(QvectorFT0Cs, "AOD", "QVECTORSFT0C", qvec::IsCalibrated, qvec::QvecFT0CRe, qvec::QvecFT0CIm, qvec::SumAmplFT0C);
DECLARE_SOA_TABLE(QvectorFT0As, "AOD", "QVECTORSFT0A", qvec::IsCalibrated, qvec::QvecFT0ARe, qvec::QvecFT0AIm, qvec::SumAmplFT0A);
DECLARE_SOA_TABLE(QvectorFT0Ms, "AOD", "QVECTORSFT0M", qvec::IsCalibrated, qvec::QvecFT0MRe, qvec::QvecFT0MIm, qvec::SumAmplFT0M);
DECLARE_SOA_TABLE(QvectorFV0As, "AOD", "QVECTORSFV0A", qvec::IsCalibrated, qvec::QvecFV0ARe, qvec::QvecFV0AIm, qvec::SumAmplFV0A);
DECLARE_SOA_TABLE(QvectorBPoss, "AOD", "QVECTORSBPOS", qvec::IsCalibrated, qvec::QvecBPosRe, qvec::QvecBPosIm, qvec::NTrkBPos, qvec::LabelsBPos);
DECLARE_SOA_TABLE(QvectorBNegs, "AOD", "QVECTORSBNEG", qvec::IsCalibrated, qvec::QvecBNegRe, qvec::QvecBNegIm, qvec::NTrkBNeg, qvec::LabelsBNeg);

using QvectorFT0C = QvectorFT0Cs::iterator;
using QvectorFT0A = QvectorFT0As::iterator;
Expand Down
225 changes: 51 additions & 174 deletions Common/TableProducer/qVectorsTable.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include <string>
#include <vector>
#include <TComplex.h>
#include <TH3F.h>

// o2Physics includes.
#include "Framework/AnalysisDataModel.h"
Expand Down Expand Up @@ -73,22 +74,6 @@ struct qVectorsTable {
Configurable<int> cfgCentEsti{"cfgCentEsti",
2, "Centrality estimator (Run3): 0 = FT0M, 1 = FT0A, 2 = FT0C, 3 = FV0A"};

Configurable<int> cfgCCDBConst{"cfgCCDBConst", 1, "Using constants in CCDB, 1 = CCDB, 2= Configurable"};
Configurable<int> cfgGainCor{"cfgGainCor", 2, "Gain equalization, 1 = CCDB, 2 = Configurable"};
// LOKI: We have here all centrality estimators for Run 3 (except FDDM and NTPV),
// but the Q-vectors are calculated only for some of them.
// FIXME: 6 correction factors for each centrality and 8 centrality intervals are hard-coded.
// TODO: Constants from the CCDB
Configurable<std::vector<float>> cfgFT0CCorr{"cfgFT0CCorr", std::vector<float>{0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}, "Correction constants for FT0C"};
Configurable<std::vector<float>> cfgFT0ACorr{"cfgFT0ACorr", std::vector<float>{0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}, "Correction constants for FT0A"};
Configurable<std::vector<float>> cfgFT0MCorr{"cfgFT0MCorr", std::vector<float>{0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}, "Correction constants for FT0M"};
Configurable<std::vector<float>> cfgFV0ACorr{"cfgFV0ACorr", std::vector<float>{0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}, "Correction constants for FV0A"};
Configurable<std::vector<float>> cfgBPosCorr{"cfgBPosCorr", std::vector<float>{0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}, "Correction constants for positive TPC tracks"};
Configurable<std::vector<float>> cfgBNegCorr{"cfgBNegCorr", std::vector<float>{0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.}, "Correction constants for negative TPC tracks"};

Configurable<std::vector<float>> cfgFT0RelGain{"cfgFT0RelGain", std::vector<float>{1.66815, 1.07726, 1.06665, 0.804114, 0.583846, 0.500518, 0.391628, 0.348394, 0.358615, 0.308253, 0.294405, 0.273764, 2.57031, 2.39421, 1.44468, 1.36256, 0.680442, 0.514505, 0.402177, 0.0768064, 0.724138, 0.69854, 0.45071, 0.468864, 2.39613, 1.29564, 1.32493, 0.966852, 0.847806, 0.676617, 0.560133, 0.445884, 0.449895, 0.361821, 0.361393, 0.352685, 3.34893, 3.14722, 1.77013, 1.6832, 0.880161, 0.671814, 0.574672, 0.500735, 0.911163, 0.869385, 0.568519, 0.575432, 2.6472, 1.48855, 1.54706, 1.14217, 0.787196, 0.598142, 0.53321, 0.44489, 0.490051, 0.385222, 0.41518, 0.366924, 2.9316, 2.8146, 1.52534, 1.61405, 0.899687, 0.701258, 0.54537, 0.506217, 0.823043, 0.904671, 0.548924, 0.54579, 2.42676, 1.45846, 1.48897, 1.02953, 0.827955, 0.640462, 0.572353, 0.46783, 0.488863, 0.369599, 0.415494, 0.362218, 3.17981, 3.01309, 1.79391, 1.65753, 0.922038, 0.747622, 0.585332, 0.516699, 1.04287, 1.00833, 0.673634, 0.647385, 1.28287, 0.982116, 0.952414, 0.812895, 0.696049, 0.643981, 0.561084, 0.545641, 0.627786, 0.556424, 0.580068, 0.563328, 1.55845, 1.35077, 1.08229, 0.932524, 0.721666, 0.673458, 0.544954, 0.57362, 0.633485, 0.627168, 0.545195, 0.614894, 1.71862, 1.4596, 1.13659, 1.0249, 0.941048, 0.69596, 0.621792, 0.609313, 0.727359, 0.618647, 0.651608, 0.668898, 1.8986, 1.74193, 1.33445, 1.08025, 0.823063, 0.773975, 0.665728, 0.661659, 0.71767, 0.682773, 0.678768, 0.703515, 2.09321, 1.70391, 1.31288, 1.13727, 0.842259, 0.782933, 0.691555, 0.66877, 0.729401, 0.657522, 0.677497, 0.652054, 1.6339, 1.73831, 1.58303, 1.17792, 0.888915, 0.833191, 0.693254, 0.689346, 0.80103, 0.751452, 0.741275, 0.757127, 2.32919, 1.93853, 1.46963, 1.27367, 0.957618, 1.07039, 0.737812, 0.759759, 0.827746, 0.724172, 0.782507, 0.803106, 2.80548, 0.99413, 1.73022, 1.50227, 0.921537, 0.869511, 1.03225, 1.07005, 1.57744, 1.30007, 1.23155, 1.06504, 1.70968, 1.25775, 1.24086, 1.07188, 1.7137, 1.36342, 1.30506, 1.12737, 1.82987, 1.39909, 1.14134, 1, 1, 1, 1, 1, 1}, "constants for relative FT0 gain equalization"};
Configurable<std::vector<float>> cfgFV0RelGain{"cfgFV0RelGain", std::vector<float>{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, "constants for relative FV0 gain equalization"};

Configurable<float> cfgMinPtOnTPC{"cfgMinPtOnTPC", 0.15, "minimum transverse momentum selection for TPC tracks participating in Q-vector reconstruction"};
Configurable<float> cfgMaxPtOnTPC{"cfgMaxPtOnTPC", 5., "maximum transverse momentum selection for TPC tracks participating in Q-vector reconstruction"};
Configurable<int> cfgnMod{"cfgnMod", 2, "Modulation of interest"};
Expand All @@ -107,7 +92,6 @@ struct qVectorsTable {
Produces<aod::QvectorBPoss> qVectorBPos;
Produces<aod::QvectorBNegs> qVectorBNeg;

std::vector<std::vector<float>> cfgCorr{};
std::vector<float> FT0RelGainConst{};
std::vector<float> FV0RelGainConst{};

Expand All @@ -126,6 +110,8 @@ struct qVectorsTable {

int runNumber{-1};

TH3F* objQvec = nullptr;

void init(InitContext const&)
{
// Setup the access to the CCDB objects of interest.
Expand All @@ -152,15 +138,15 @@ struct qVectorsTable {
histosQA.add("FV0AmpCor", "", {HistType::kTH2F, {axisFITamp, axisChID}});
}

void initCCDB(aod::BCsWithTimestamps::iterator const& bc)
void initCCDB(aod::BCsWithTimestamps::iterator const& bc, int harmonics)
{
cfgCorr.clear();
FT0RelGainConst.clear();
FV0RelGainConst.clear();
cfgCorr = {};
FT0RelGainConst = {};
FV0RelGainConst = {};

std::string fullPath;

auto timestamp = bc.timestamp();

auto offsetFT0 = ccdb->getForTimeStamp<std::vector<o2::detectors::AlignParam>>("FT0/Calib/Align", timestamp);
Expand All @@ -180,145 +166,31 @@ struct qVectorsTable {
LOGF(fatal, "Could not get the alignment parameters for FV0.");
}

std::string fullPath;
if (cfgCCDBConst == 1) {
fullPath = cfgQvecCalibPath;
fullPath += "/FT0C";
auto objft0c = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objft0c) {
if (cfgFT0CCorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for FT0C");
} else {
cfgCorr.push_back(cfgFT0CCorr);
}
} else {
cfgCorr.push_back(*(objft0c));
}

fullPath = cfgQvecCalibPath;
fullPath += "/FT0A";
auto objft0a = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objft0a) {
if (cfgFT0ACorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for FT0A");
} else {
cfgCorr.push_back(cfgFT0ACorr);
}
} else {
cfgCorr.push_back(*(objft0a));
}

fullPath = cfgQvecCalibPath;
fullPath += "/FT0M";
auto objft0m = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objft0m) {
if (cfgFT0MCorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for FT0M");
} else {
cfgCorr.push_back(cfgFT0MCorr);
}
} else {
cfgCorr.push_back(*(objft0m));
}

fullPath = cfgQvecCalibPath;
fullPath += "/FV0A";
auto objfv0a = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objfv0a) {
if (cfgFV0ACorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for FV0A");
} else {
cfgCorr.push_back(cfgFV0ACorr);
}
} else {
cfgCorr.push_back(*(objfv0a));
}

fullPath = cfgQvecCalibPath;
fullPath += "/BPos";
auto objbpos = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objbpos) {
if (cfgBPosCorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for BPos");
} else {
cfgCorr.push_back(cfgBPosCorr);
}
} else {
cfgCorr.push_back(*(objbpos));
}
fullPath = cfgQvecCalibPath;
fullPath += "/v";
fullPath += std::to_string(harmonics);
objQvec = ccdb->getForTimeStamp<TH3F>(fullPath, timestamp);

fullPath = cfgQvecCalibPath;
fullPath += "/BNeg";
auto objbneg = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objbneg) {
if (cfgBNegCorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for BNeg");
} else {
cfgCorr.push_back(cfgBNegCorr);
}
} else {
cfgCorr.push_back(*(objbneg));
}
} else if (cfgCCDBConst == 2) {
if (cfgFT0CCorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for FT0C");
}
if (cfgFT0ACorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for FT0A");
}
if (cfgFT0MCorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for FT0M");
}
if (cfgFV0ACorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for FV0A");
}
if (cfgBPosCorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for positive TPC tracks");
fullPath = cfgGainEqPath;
fullPath += "/FT0";
auto objft0Gain = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objft0Gain) {
for (auto i{0u}; i < 208; i++) {
FT0RelGainConst.push_back(1.);
}
if (cfgBNegCorr->size() < 48) {
LOGF(fatal, "No proper correction factor assigned for negative TPC tracks");
} // will be replaced with method that call constants from CCDB

cfgCorr.push_back(cfgFT0CCorr);
cfgCorr.push_back(cfgFT0ACorr);
cfgCorr.push_back(cfgFT0MCorr);
cfgCorr.push_back(cfgFV0ACorr);
cfgCorr.push_back(cfgBPosCorr);
cfgCorr.push_back(cfgBNegCorr);
} else {
FT0RelGainConst = *(objft0Gain);
}

if (cfgGainCor == 0) {
for (auto i{0u}; i < cfgFT0RelGain->size(); i++) {
FT0RelGainConst.push_back(1.);
}
for (auto i{0u}; i < cfgFV0RelGain->size(); i++) {
fullPath = cfgGainEqPath;
fullPath += "/FV0";
auto objfv0Gain = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objfv0Gain) {
for (auto i{0u}; i < 48; i++) {
FV0RelGainConst.push_back(1.);
}
} else if (cfgGainCor == 1) {
fullPath = cfgGainEqPath;
fullPath += "/FT0";
auto objft0Gain = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objft0Gain) {
for (auto i{0u}; i < cfgFT0RelGain->size(); i++) {
FT0RelGainConst.push_back(1.);
}
} else {
FT0RelGainConst = *(objft0Gain);
}

fullPath = cfgGainEqPath;
fullPath += "/FV0";
auto objfv0Gain = ccdb->getForTimeStamp<std::vector<float>>(fullPath, timestamp);
if (!objfv0Gain) {
for (auto i{0u}; i < cfgFV0RelGain->size(); i++) {
FV0RelGainConst.push_back(1.);
}
} else {
FV0RelGainConst = *(objfv0Gain);
}
} else if (cfgGainCor == 2) {
FT0RelGainConst = cfgFT0RelGain;
FV0RelGainConst = cfgFV0RelGain;
} else {
FV0RelGainConst = *(objfv0Gain);
}
}

Expand Down Expand Up @@ -349,7 +221,6 @@ struct qVectorsTable {

void process(MyCollisions::iterator const& coll, aod::BCsWithTimestamps const&, aod::FT0s const&, aod::FV0As const&, MyTracks const& tracks)
{

std::vector<int> TrkBPosLabel{};
std::vector<int> TrkBNegLabel{};
std::vector<float> qvecRe{};
Expand All @@ -359,7 +230,7 @@ struct qVectorsTable {
auto bc = coll.bc_as<aod::BCsWithTimestamps>();
int currentRun = bc.runNumber();
if (runNumber != currentRun) {
initCCDB(bc);
initCCDB(bc, static_cast<int>(cfgnMod));
runNumber = currentRun;
}

Expand All @@ -370,8 +241,10 @@ struct qVectorsTable {
coll.centFT0M(), coll.centFT0A(), coll.centFT0C(),
coll.centFV0A()};
float cent = centAllEstim[cfgCentEsti];
if (cent < 0. || cent > 100.) {
bool IsCalibrated = true;
if (cent < 0. || cent > 80.) {
cent = 110.;
IsCalibrated = false;
}

// Calculate the Q-vectors values for this event.
Expand Down Expand Up @@ -535,8 +408,6 @@ struct qVectorsTable {
qVectBNeg[1] = 999.;
}

int cBin = helperEP.GetCentBin(cent);

for (auto i{0u}; i < 4; i++) {
qvecRe.push_back(qVectFT0C[0]);
qvecIm.push_back(qVectFT0C[1]);
Expand Down Expand Up @@ -569,27 +440,33 @@ struct qVectorsTable {
qvecAmp.push_back(static_cast<float>(nTrkBPos));
qvecAmp.push_back(static_cast<float>(nTrkBNeg));

if (cBin != -1) {
if (cent < 80) {
for (auto i{0u}; i < 6; i++) {
helperEP.DoRecenter(qvecRe[i * 4 + 1], qvecIm[i * 4 + 1], cfgCorr[i][cBin * 6], cfgCorr[i][cBin * 6 + 1]);

helperEP.DoRecenter(qvecRe[i * 4 + 2], qvecIm[i * 4 + 2], cfgCorr[i][cBin * 6], cfgCorr[i][cBin * 6 + 1]);
helperEP.DoTwist(qvecRe[i * 4 + 2], qvecIm[i * 4 + 2], cfgCorr[i][cBin * 6 + 2], cfgCorr[i][cBin * 6 + 3]);

helperEP.DoRecenter(qvecRe[i * 4 + 3], qvecIm[i * 4 + 3], cfgCorr[i][cBin * 6], cfgCorr[i][cBin * 6 + 1]);
helperEP.DoTwist(qvecRe[i * 4 + 3], qvecIm[i * 4 + 3], cfgCorr[i][cBin * 6 + 2], cfgCorr[i][cBin * 6 + 3]);
helperEP.DoRescale(qvecRe[i * 4 + 3], qvecIm[i * 4 + 3], cfgCorr[i][cBin * 6 + 4], cfgCorr[i][cBin * 6 + 5]);
helperEP.DoRecenter(qvecRe[i * 4 + 1], qvecIm[i * 4 + 1],
objQvec->GetBinContent(static_cast<int>(cent) + 1, 1, i + 1), objQvec->GetBinContent(static_cast<int>(cent) + 1, 2, i + 1));

helperEP.DoRecenter(qvecRe[i * 4 + 2], qvecIm[i * 4 + 2],
objQvec->GetBinContent(static_cast<int>(cent) + 1, 1, i + 1), objQvec->GetBinContent(static_cast<int>(cent) + 1, 2, i + 1));
helperEP.DoTwist(qvecRe[i * 4 + 2], qvecIm[i * 4 + 2],
objQvec->GetBinContent(static_cast<int>(cent) + 1, 3, i + 1), objQvec->GetBinContent(static_cast<int>(cent) + 1, 4, i + 1));

helperEP.DoRecenter(qvecRe[i * 4 + 3], qvecIm[i * 4 + 3],
objQvec->GetBinContent(static_cast<int>(cent) + 1, 1, i + 1), objQvec->GetBinContent(static_cast<int>(cent) + 1, 2, i + 1));
helperEP.DoTwist(qvecRe[i * 4 + 3], qvecIm[i * 4 + 3],
objQvec->GetBinContent(static_cast<int>(cent) + 1, 3, i + 1), objQvec->GetBinContent(static_cast<int>(cent) + 1, 4, i + 1));
helperEP.DoRescale(qvecRe[i * 4 + 3], qvecIm[i * 4 + 3],
objQvec->GetBinContent(static_cast<int>(cent) + 1, 5, i + 1), objQvec->GetBinContent(static_cast<int>(cent) + 1, 6, i + 1));
}
}

// Fill the columns of the Qvectors table.
qVector(cent, cBin, qvecRe, qvecIm, qvecAmp);
qVectorFT0C(cBin, qvecRe[kFT0C * 4 + 3], qvecIm[kFT0C * 4 + 3], sumAmplFT0C);
qVectorFT0A(cBin, qvecRe[kFT0A * 4 + 3], qvecIm[kFT0A * 4 + 3], sumAmplFT0A);
qVectorFT0M(cBin, qvecRe[kFT0M * 4 + 3], qvecIm[kFT0M * 4 + 3], sumAmplFT0M);
qVectorFV0A(cBin, qvecRe[kFV0A * 4 + 3], qvecIm[kFV0A * 4 + 3], sumAmplFV0A);
qVectorBPos(cBin, qvecRe[kBPos * 4 + 3], qvecIm[kBPos * 4 + 3], nTrkBPos, TrkBPosLabel);
qVectorBNeg(cBin, qvecRe[kBNeg * 4 + 3], qvecIm[kBNeg * 4 + 3], nTrkBNeg, TrkBNegLabel);
qVector(cent, IsCalibrated, qvecRe, qvecIm, qvecAmp);
qVectorFT0C(IsCalibrated, qvecRe[kFT0C * 4 + 3], qvecIm[kFT0C * 4 + 3], sumAmplFT0C);
qVectorFT0A(IsCalibrated, qvecRe[kFT0A * 4 + 3], qvecIm[kFT0A * 4 + 3], sumAmplFT0A);
qVectorFT0M(IsCalibrated, qvecRe[kFT0M * 4 + 3], qvecIm[kFT0M * 4 + 3], sumAmplFT0M);
qVectorFV0A(IsCalibrated, qvecRe[kFV0A * 4 + 3], qvecIm[kFV0A * 4 + 3], sumAmplFV0A);
qVectorBPos(IsCalibrated, qvecRe[kBPos * 4 + 3], qvecIm[kBPos * 4 + 3], nTrkBPos, TrkBPosLabel);
qVectorBNeg(IsCalibrated, qvecRe[kBNeg * 4 + 3], qvecIm[kBNeg * 4 + 3], nTrkBNeg, TrkBNegLabel);

} // End process.
};
Expand Down

0 comments on commit 6255cbe

Please sign in to comment.