Skip to content

Commit daf7eb2

Browse files
committed
Add reduced q-vectors
1 parent faaefe3 commit daf7eb2

File tree

3 files changed

+139
-31
lines changed

3 files changed

+139
-31
lines changed

Common/DataModel/Qvectors.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,12 @@ DECLARE_SOA_COLUMN(LabelsTPCpos, labelsTPCpos, std::vector<int>);
7777
DECLARE_SOA_COLUMN(LabelsTPCneg, labelsTPCneg, std::vector<int>);
7878
DECLARE_SOA_COLUMN(LabelsTPCall, labelsTPCall, std::vector<int>);
7979

80+
// Normalized amplitudes for Event-shape Engineering
81+
DECLARE_SOA_COLUMN(QVecRedFT0C, qVecRedFT0C, float);
82+
DECLARE_SOA_COLUMN(QVecRedTpcPos, qVecRedTpcPos, float);
83+
DECLARE_SOA_COLUMN(QVecRedTpcNeg, qVecRedTpcNeg, float);
84+
DECLARE_SOA_COLUMN(QVecRedTpcAll, qVecRedTpcAll, float);
85+
8086
// Deprecated, will be removed in future after transition time //
8187
DECLARE_SOA_COLUMN(QvecBPosReVec, qvecBPosReVec, std::vector<float>);
8288
DECLARE_SOA_COLUMN(QvecBPosImVec, qvecBPosImVec, std::vector<float>);
@@ -121,6 +127,8 @@ DECLARE_SOA_TABLE(QvectorTPCposVecs, "AOD", "QVECTORSTPCPVEC", qvec::IsCalibrate
121127
DECLARE_SOA_TABLE(QvectorTPCnegVecs, "AOD", "QVECTORSTPCNVEC", qvec::IsCalibrated, qvec::QvecTPCnegReVec, qvec::QvecTPCnegImVec, qvec::NTrkTPCneg, qvec::LabelsTPCneg);
122128
DECLARE_SOA_TABLE(QvectorTPCallVecs, "AOD", "QVECTORSTPCAVEC", qvec::IsCalibrated, qvec::QvecTPCallReVec, qvec::QvecTPCallImVec, qvec::NTrkTPCall, qvec::LabelsTPCall);
123129

130+
DECLARE_SOA_TABLE(QvectorsReds, "AOD", "QVECTORSRED", qvec::QVecRedFT0C, qvec::QVecRedTpcPos, qvec::QVecRedTpcNeg, qvec::QVecRedTpcAll);
131+
124132
using QvectorFT0C = QvectorFT0Cs::iterator;
125133
using QvectorFT0A = QvectorFT0As::iterator;
126134
using QvectorFT0M = QvectorFT0Ms::iterator;
@@ -137,6 +145,8 @@ using QvectorTPCposVec = QvectorTPCposVecs::iterator;
137145
using QvectorTPCnegVec = QvectorTPCnegVecs::iterator;
138146
using QvectorTPCallVec = QvectorTPCallVecs::iterator;
139147

148+
using QvectorRed = QvectorsReds::iterator;
149+
140150
// Deprecated, will be removed in future after transition time //
141151
DECLARE_SOA_TABLE(QvectorBPoss, "AOD", "QVECTORSBPOS", qvec::IsCalibrated, qvec::QvecBPosRe, qvec::QvecBPosIm, qvec::NTrkBPos, qvec::LabelsBPos);
142152
DECLARE_SOA_TABLE(QvectorBNegs, "AOD", "QVECTORSBNEG", qvec::IsCalibrated, qvec::QvecBNegRe, qvec::QvecBNegIm, qvec::NTrkBNeg, qvec::LabelsBNeg);

Common/TableProducer/qVectorsTable.cxx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ struct qVectorsTable {
110110
Configurable<bool> cfgUseTPCpos{"cfgUseTPCpos", false, "Initial value for using TPCpos. By default obtained from DataModel."};
111111
Configurable<bool> cfgUseTPCneg{"cfgUseTPCneg", false, "Initial value for using TPCneg. By default obtained from DataModel."};
112112
Configurable<bool> cfgUseTPCall{"cfgUseTPCall", false, "Initial value for using TPCall. By default obtained from DataModel."};
113+
Configurable<bool> cfgProduceRedQVecs{"cfgProduceRedQVecs", false, "Produce reduced Q-vectors for Event-Shape Engineering"};
113114

114115
// Table.
115116
Produces<aod::Qvectors> qVector;
@@ -129,6 +130,8 @@ struct qVectorsTable {
129130
Produces<aod::QvectorTPCnegVecs> qVectorTPCnegVec;
130131
Produces<aod::QvectorTPCallVecs> qVectorTPCallVec;
131132

133+
Produces<aod::QvectorsReds> qVectorRed;
134+
132135
std::vector<float> FT0RelGainConst{};
133136
std::vector<float> FV0RelGainConst{};
134137

@@ -728,6 +731,27 @@ struct qVectorsTable {
728731
if (useDetector["QvectorTPCalls"])
729732
qVectorTPCall(IsCalibrated, qvecReTPCall.at(0), qvecImTPCall.at(0), qvecAmp[kTPCall], TrkTPCallLabel);
730733

734+
735+
double qVecRedFT0C{-999.}, qVecRedTpcPos{-999.}, qVecRedTpcNeg{-999.}, qVecRedTpcAll{-999.};
736+
if (cfgProduceRedQVecs) {
737+
// Correct normalization to remove multiplicity dependence,
738+
// taking into account that the Q-vector is normalized by 1/M
739+
// and the EsE reduced Q-vector must be normalized to 1/sqrt(M)
740+
if (useDetector["QvectorFT0Cs"]) {
741+
qVecRedFT0C = TMath::Sqrt(qvecReFT0C.at(0) * qvecReFT0C.at(0) + qvecImFT0C.at(0) * qvecImFT0C.at(0)) * TMath::Sqrt(qvecAmp[kFT0C]);
742+
}
743+
if (useDetector["QvectorTPCposs"]) {
744+
qVecRedTpcPos = TMath::Sqrt(qvecReTPCpos.at(0) * qvecReTPCpos.at(0) + qvecImTPCpos.at(0) * qvecImTPCpos.at(0)) * TMath::Sqrt(qvecAmp[kTPCpos]);
745+
}
746+
if (useDetector["QvectorTPCnegs"]) {
747+
qVecRedTpcNeg = TMath::Sqrt(qvecReTPCneg.at(0) * qvecReTPCneg.at(0) + qvecImTPCneg.at(0) * qvecImTPCneg.at(0)) * TMath::Sqrt(qvecAmp[kTPCneg]);
748+
}
749+
if (useDetector["QvectorTPCalls"]) {
750+
qVecRedTpcAll = TMath::Sqrt(qvecReTPCall.at(0) * qvecReTPCall.at(0) + qvecImTPCall.at(0) * qvecImTPCall.at(0)) * TMath::Sqrt(qvecAmp[kTPCall]);
751+
}
752+
}
753+
qVectorRed(qVecRedFT0C, qVecRedTpcPos, qVecRedTpcNeg, qVecRedTpcAll);
754+
731755
qVectorFT0CVec(IsCalibrated, qvecReFT0C, qvecImFT0C, qvecAmp[kFT0C]);
732756
qVectorFT0AVec(IsCalibrated, qvecReFT0A, qvecImFT0A, qvecAmp[kFT0A]);
733757
qVectorFT0MVec(IsCalibrated, qvecReFT0M, qvecImFT0M, qvecAmp[kFT0M]);

0 commit comments

Comments
 (0)