Skip to content

Commit ca137a2

Browse files
cnkosteralibuild
andauthored
[PWGCF] Add relative px/pt shift (#14591)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent f676657 commit ca137a2

File tree

1 file changed

+114
-32
lines changed

1 file changed

+114
-32
lines changed

PWGCF/Flow/Tasks/flowSP.cxx

Lines changed: 114 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ struct FlowSP {
8989
O2_DEFINE_CONFIGURABLE(cfgFillPIDQA, bool, false, "Fill histograms for PID QA");
9090
O2_DEFINE_CONFIGURABLE(cfgFillEventPlaneQA, bool, false, "Fill histograms for Event Plane QA");
9191
O2_DEFINE_CONFIGURABLE(cfgFillQABefore, bool, false, "Fill QA histograms before cuts, only for processData");
92+
O2_DEFINE_CONFIGURABLE(cfgFillMeanPT, bool, false, "Fill histograms for mean PX/PT");
9293
// Flags to make and fill histograms
9394
O2_DEFINE_CONFIGURABLE(cfgFillGeneralV1Histos, bool, true, "Fill histograms for vn analysis");
9495
O2_DEFINE_CONFIGURABLE(cfgFillMixedHarmonics, bool, true, "Flag to make and fill histos for mixed harmonics");
@@ -119,9 +120,10 @@ struct FlowSP {
119120
O2_DEFINE_CONFIGURABLE(cfgFillWeights, bool, true, "Fill NUA weights");
120121
O2_DEFINE_CONFIGURABLE(cfgFillWeightsPOS, bool, true, "Fill NUA weights only for positive charges");
121122
O2_DEFINE_CONFIGURABLE(cfgFillWeightsNEG, bool, true, "Fill NUA weights only for negative charges");
122-
O2_DEFINE_CONFIGURABLE(cfguseNUA1D, bool, false, "Use 1D NUA weights (only phi)");
123-
O2_DEFINE_CONFIGURABLE(cfguseNUA2D, bool, true, "Use 2D NUA weights (phi and eta)");
124-
O2_DEFINE_CONFIGURABLE(cfguseNUE2D, bool, true, "Use 2D NUE weights (pt and eta)");
123+
O2_DEFINE_CONFIGURABLE(cfgUseNUA1D, bool, false, "Use 1D NUA weights (only phi)");
124+
O2_DEFINE_CONFIGURABLE(cfgUseNUA2D, bool, true, "Use 2D NUA weights (phi and eta)");
125+
O2_DEFINE_CONFIGURABLE(cfgUseNUE2D, bool, true, "Use 2D NUE weights");
126+
O2_DEFINE_CONFIGURABLE(cfgUseNUE2Deta, bool, true, "Use 2D NUE weights TRUE: (pt and eta) FALSE: (pt and centrality)");
125127
// Additional track Selections
126128
O2_DEFINE_CONFIGURABLE(cfgTrackSelsUseAdditionalTrackCut, bool, false, "Bool to enable Additional Track Cut");
127129
O2_DEFINE_CONFIGURABLE(cfgTrackSelsDoDCApt, bool, false, "Apply Pt dependent DCAz cut");
@@ -144,8 +146,8 @@ struct FlowSP {
144146
ConfigurableAxis axisNch = {"axisNch", {400, 0, 4000}, "Global N_{ch}"};
145147
ConfigurableAxis axisMultpv = {"axisMultpv", {400, 0, 4000}, "N_{ch} (PV)"};
146148
// Configurables containing vector
147-
Configurable<std::vector<double>> cfgEvSelsMultPv{"cfgEvSelsMultPv", std::vector<double>{2228.05, -75.5988, 0.976695, -0.00585275, 1.40738e-05, 3795.65, -136.988, 2.12393, -0.017028, 5.78679e-05}, "Multiplicity cuts (PV) first 5 parameters cutLOW last 5 cutHIGH (Default is +-2sigma pass5) "};
148-
Configurable<std::vector<double>> cfgEvSelsMult{"cfgEvSelsMult", std::vector<double>{1308.86, -41.9314, 0.488423, -0.00248178, 4.71554e-06, 2973.55, -103.092, 1.47673, -0.0106685, 3.29348e-05}, "Multiplicity cuts (Global) first 5 parameters cutLOW last 5 cutHIGH (Default is +-2sigma pass5) "};
149+
Configurable<std::vector<double>> cfgEvSelsMultPv{"cfgEvSelsMultPv", std::vector<double>{2223.49, -75.1444, 0.963572, -0.00570399, 1.34877e-05, 3790.99, -137.064, 2.13044, -0.017122, 5.82834e-05}, "Multiplicity cuts (PV) first 5 parameters cutLOW last 5 cutHIGH (Default is +-2sigma pass5) "};
150+
Configurable<std::vector<double>> cfgEvSelsMult{"cfgEvSelsMult", std::vector<double>{1301.56, -41.4615, 0.478224, -0.00239449, 4.46966e-06, 2967.6, -102.927, 1.47488, -0.0106534, 3.28622e-05}, "Multiplicity cuts (Global) first 5 parameters cutLOW last 5 cutHIGH (Default is +-2sigma pass5) "};
149151

150152
Filter collisionFilter = nabs(aod::collision::posZ) < cfgEvSelsVtxZ;
151153
Filter trackFilter = nabs(aod::track::eta) < cfgTrackSelsEta && aod::track::pt > cfgTrackSelsPtmin&& aod::track::pt < cfgTrackSelsPtmax && ((requireGlobalTrackInFilter()) || (aod::track::isGlobalTrackSDD == (uint8_t) true)) && nabs(aod::track::dcaXY) < cfgTrackSelsDCAxy&& nabs(aod::track::dcaZ) < cfgTrackSelsDCAz;
@@ -187,10 +189,12 @@ struct FlowSP {
187189
TProfile* hcorrQQy = nullptr;
188190
TProfile* hEvPlaneRes = nullptr;
189191
TH1D* hCentrality = nullptr;
192+
TProfile2D* hRelPt = nullptr;
190193

191194
bool clQQ = false;
192195
bool clEvPlaneRes = false;
193196
bool clCentrality = false;
197+
bool clRelPt = false;
194198

195199
} cfg;
196200

@@ -218,6 +222,12 @@ struct FlowSP {
218222
double vy = 0;
219223
double vz = 0;
220224
int charge = 0;
225+
double relPt = 1.;
226+
double psiA = 0;
227+
double psiC = 0;
228+
double psiFull = 0;
229+
double trackPxA = 0;
230+
double trackPxC = 0;
221231
} spm;
222232

223233
OutputObj<GFWWeights> fWeights{GFWWeights("weights")};
@@ -328,6 +338,7 @@ struct FlowSP {
328338
AxisSpec axisNsigma = {100, -10, 10, "Nsigma for TPC and TOF"};
329339
AxisSpec axisdEdx = {300, 0, 300, "dEdx for PID"};
330340
AxisSpec axisBeta = {150, 0, 1.5, "Beta for PID"};
341+
AxisSpec axisCharge = {3, 0, 3, "Charge: 0 = inclusive, 1 = positive, 2 = negative"};
331342

332343
std::vector<double> ptbinning = {0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.2, 2.4, 2.6, 2.8, 3, 3.5, 4, 5, 6, 8, 10};
333344
AxisSpec axisPt = {ptbinning, "#it{p}_{T} GeV/#it{c}"};
@@ -428,6 +439,7 @@ struct FlowSP {
428439
histos.add("incl/QA/after/hSharedClusters_pt", "", {HistType::kTH2D, {axisPt, axisShCl}});
429440
histos.add("incl/QA/after/hCrossedRows_pt", "", {HistType::kTH2D, {axisPt, axisCl}});
430441
histos.add("incl/QA/after/hCrossedRows_vs_SharedClusters", "", {HistType::kTH2D, {axisCl, axisShCl}});
442+
histos.add("incl/QA/after/hMeanPtEta", "", {HistType::kTProfile2D, {axisEta, axisCent}});
431443

432444
if (cfgTrackSelDoTrackQAvsCent) {
433445
histos.add<TH3>("incl/QA/after/hPt_Eta", "", kTH3D, {axisPt, axisEta, axisCent});
@@ -511,6 +523,10 @@ struct FlowSP {
511523
registry.add<TProfile3D>("incl/vnC", "", kTProfile3D, {axisPt, axisEtaVn, axisCentrality});
512524
registry.add<TProfile3D>("incl/vnA", "", kTProfile3D, {axisPt, axisEtaVn, axisCentrality});
513525
}
526+
if (cfgFillMeanPT) {
527+
registry.add<TProfile2D>("incl/meanPT/meanRelPtA", "", kTProfile2D, {axisEtaVn, axisCentrality});
528+
registry.add<TProfile2D>("incl/meanPT/meanRelPtC", "", kTProfile2D, {axisEtaVn, axisCentrality});
529+
}
514530
if (cfgFillPID) {
515531
registry.add<TProfile3D>("incl/pion/vnC", "", kTProfile3D, {axisPt, axisEtaVn, axisCentrality});
516532
registry.add<TProfile3D>("incl/pion/vnA", "", kTProfile3D, {axisPt, axisEtaVn, axisCentrality});
@@ -710,7 +726,7 @@ struct FlowSP {
710726

711727
int nWeights = 3;
712728

713-
if (cfguseNUA1D) {
729+
if (cfgUseNUA1D) {
714730
if (cfgCCDB_NUA.value.empty() == false) {
715731
TList* listCorrections = ccdb->getForTimeStamp<TList>(cfgCCDB_NUA, timestamp);
716732
cfg.mAcceptance.push_back(reinterpret_cast<GFWWeights*>(listCorrections->FindObject("weights")));
@@ -724,7 +740,7 @@ struct FlowSP {
724740
} else {
725741
LOGF(info, "cfgCCDB_NUA empty! No corrections loaded");
726742
}
727-
} else if (cfguseNUA2D) {
743+
} else if (cfgUseNUA2D) {
728744
if (cfgCCDB_NUA.value.empty() == false) {
729745
TH3D* hNUA2D = ccdb->getForTimeStamp<TH3D>(cfgCCDB_NUA, timestamp);
730746
if (!hNUA2D) {
@@ -754,9 +770,9 @@ struct FlowSP {
754770
// Get Efficiency correction
755771
if (cfgCCDB_NUE2D.value.empty() == false) {
756772
TList* listCorrections = ccdb->getForTimeStamp<TList>(cfgCCDB_NUE2D, timestamp);
757-
cfg.mEfficiency2D.push_back(reinterpret_cast<TH2D*>(listCorrections->FindObject("Efficiency2D")));
758-
cfg.mEfficiency2D.push_back(reinterpret_cast<TH2D*>(listCorrections->FindObject("Efficiency2D_pos")));
759-
cfg.mEfficiency2D.push_back(reinterpret_cast<TH2D*>(listCorrections->FindObject("Efficiency2D_neg")));
773+
cfg.mEfficiency2D.push_back(reinterpret_cast<TH2D*>(listCorrections->FindObject("Efficiency")));
774+
cfg.mEfficiency2D.push_back(reinterpret_cast<TH2D*>(listCorrections->FindObject("Efficiency_pos")));
775+
cfg.mEfficiency2D.push_back(reinterpret_cast<TH2D*>(listCorrections->FindObject("Efficiency_neg")));
760776
int sizeEff = cfg.mEfficiency2D.size();
761777
if (sizeEff < nWeights)
762778
LOGF(fatal, "Could not load efficiency histogram for trigger particles from %s", cfgCCDB_NUE.value.c_str());
@@ -769,14 +785,21 @@ struct FlowSP {
769785
}
770786

771787
// From Generic Framework
772-
bool setCurrentParticleWeights(int pID, int spec, const float& phi, const float& eta, const float& pt, const float& vtxz)
788+
bool setCurrentParticleWeights(int pID, int spec, const float& phi, const float& eta, const float& pt, const float& vtxz, const float& centrality)
773789
{
774790
float eff = 1.;
775791
int sizeEff = cfg.mEfficiency.size();
776792
if (sizeEff > pID) {
777-
if (cfguseNUE2D) {
778-
int binx = cfg.mEfficiency2D[pID]->GetXaxis()->FindBin(eta);
779-
int biny = cfg.mEfficiency2D[pID]->GetYaxis()->FindBin(pt);
793+
if (cfgUseNUE2D) {
794+
int binx;
795+
int biny;
796+
if (cfgUseNUE2Deta) {
797+
biny = cfg.mEfficiency2D[pID]->GetYaxis()->FindBin(pt);
798+
binx = cfg.mEfficiency2D[pID]->GetXaxis()->FindBin(eta);
799+
} else {
800+
binx = cfg.mEfficiency2D[pID]->GetXaxis()->FindBin(pt);
801+
biny = cfg.mEfficiency2D[pID]->GetYaxis()->FindBin(centrality);
802+
}
780803
eff = cfg.mEfficiency2D[pID]->GetBinContent(binx, biny);
781804
} else {
782805
eff = cfg.mEfficiency[pID]->GetBinContent(cfg.mEfficiency[pID]->FindBin(pt));
@@ -789,14 +812,14 @@ struct FlowSP {
789812

790813
spm.weff[pID][spec] = 1. / eff;
791814

792-
if (cfguseNUA1D) {
815+
if (cfgUseNUA1D) {
793816
int sizeAcc = cfg.mAcceptance.size();
794817
if (sizeAcc > pID) {
795818
spm.wacc[pID][spec] = cfg.mAcceptance[pID]->getNUA(phi, eta, vtxz);
796819
} else {
797820
spm.wacc[pID][spec] = 1;
798821
}
799-
} else if (cfguseNUA2D) {
822+
} else if (cfgUseNUA2D) {
800823
if (cfg.mAcceptance2D.size() > 0) {
801824
spm.wacc[pID][spec] = getNUA2D(cfg.mAcceptance2D[0], eta, phi, vtxz);
802825
} else {
@@ -1068,6 +1091,7 @@ struct FlowSP {
10681091
histos.fill(HIST(Charge[ct]) + HIST(Species[par]) + HIST("QA/") + HIST(Time[ft]) + HIST("hSharedClusters_pt"), track.pt(), track.tpcFractionSharedCls(), spm.wacc[ct][par] * spm.weff[ct][par]);
10691092
histos.fill(HIST(Charge[ct]) + HIST(Species[par]) + HIST("QA/") + HIST(Time[ft]) + HIST("hCrossedRows_pt"), track.pt(), track.tpcNClsFound(), spm.wacc[ct][par] * spm.weff[ct][par]);
10701093
histos.fill(HIST(Charge[ct]) + HIST(Species[par]) + HIST("QA/") + HIST(Time[ft]) + HIST("hCrossedRows_vs_SharedClusters"), track.tpcNClsFound(), track.tpcFractionSharedCls(), spm.wacc[ct][par] * spm.weff[ct][par]);
1094+
histos.fill(HIST(Charge[ct]) + HIST(Species[par]) + HIST("QA/") + HIST(Time[ft]) + HIST("hMeanPtEta"), track.eta(), spm.centrality, track.pt(), spm.wacc[ct][par] * spm.weff[ct][par]);
10711095
}
10721096

10731097
template <FillType ft, ChargeType ct, typename TrackObject>
@@ -1204,11 +1228,11 @@ struct FlowSP {
12041228
spm.vz = collision.posZ();
12051229
float vtxz = collision.posZ();
12061230

1207-
double psiA = 1.0 * std::atan2(spm.qyA, spm.qxA);
1208-
double psiC = 1.0 * std::atan2(spm.qyC, spm.qxC);
1231+
spm.psiA = 1.0 * std::atan2(spm.qyA, spm.qxA);
1232+
spm.psiC = 1.0 * std::atan2(spm.qyC, spm.qxC);
12091233

12101234
// https://twiki.cern.ch/twiki/pub/ALICE/DirectedFlowAnalysisNote/vn_ZDC_ALICE_INT_NOTE_version02.pdf
1211-
double psiFull = 1.0 * std::atan2(spm.qyA + spm.qyC, spm.qxA + spm.qxC);
1235+
spm.psiFull = 1.0 * std::atan2(spm.qyA + spm.qyC, spm.qxA + spm.qxC);
12121236

12131237
// always fill these histograms!
12141238
registry.fill(HIST("QQCorrelations/qAqCXY"), spm.centrality, spm.qxA * spm.qxC + spm.qyA * spm.qyC);
@@ -1222,14 +1246,14 @@ struct FlowSP {
12221246
histos.fill(HIST("QA/hCentFull"), spm.centrality, 1);
12231247
}
12241248
if (cfgFillEventPlaneQA) {
1225-
histos.fill(HIST("QA/hSPplaneA"), psiA, 1);
1226-
histos.fill(HIST("QA/hSPplaneC"), psiC, 1);
1227-
histos.fill(HIST("QA/hSPplaneFull"), psiFull, 1);
1228-
histos.fill(HIST("QA/hCosPhiACosPhiC"), spm.centrality, std::cos(psiA) * std::cos(psiC));
1229-
histos.fill(HIST("QA/hSinPhiASinPhiC"), spm.centrality, std::sin(psiA) * std::sin(psiC));
1230-
histos.fill(HIST("QA/hSinPhiACosPhiC"), spm.centrality, std::sin(psiA) * std::cos(psiC));
1231-
histos.fill(HIST("QA/hCosPhiASinsPhiC"), spm.centrality, std::cos(psiA) * std::sin(psiC));
1232-
histos.fill(HIST("QA/hFullEvPlaneRes"), spm.centrality, -1 * std::cos(psiA - psiC));
1249+
histos.fill(HIST("QA/hSPplaneA"), spm.psiA, 1);
1250+
histos.fill(HIST("QA/hSPplaneC"), spm.psiC, 1);
1251+
histos.fill(HIST("QA/hSPplaneFull"), spm.psiFull, 1);
1252+
histos.fill(HIST("QA/hCosPhiACosPhiC"), spm.centrality, std::cos(spm.psiA) * std::cos(spm.psiC));
1253+
histos.fill(HIST("QA/hSinPhiASinPhiC"), spm.centrality, std::sin(spm.psiA) * std::sin(spm.psiC));
1254+
histos.fill(HIST("QA/hSinPhiACosPhiC"), spm.centrality, std::sin(spm.psiA) * std::cos(spm.psiC));
1255+
histos.fill(HIST("QA/hCosPhiASinsPhiC"), spm.centrality, std::cos(spm.psiA) * std::sin(spm.psiC));
1256+
histos.fill(HIST("QA/hFullEvPlaneRes"), spm.centrality, -1 * std::cos(spm.psiA - spm.psiC));
12331257
}
12341258

12351259
if (spm.centrality > cfgCentMax || spm.centrality < cfgCentMin)
@@ -1278,6 +1302,10 @@ struct FlowSP {
12781302

12791303
fillEventQA<kAfter>(collision, tracks);
12801304

1305+
TProfile2D* hRelEtaPt = new TProfile2D("hRelEtaPt", "hRelEtaPt", 8, -.8, .8, 3, 0, 3);
1306+
TProfile2D* ptV1A = new TProfile2D("ptV1A", "ptV1A", 8, -.8, .8, 3, 0, 3);
1307+
TProfile2D* ptV1C = new TProfile2D("ptV1C", "ptV1C", 8, -.8, .8, 3, 0, 3);
1308+
12811309
for (const auto& track : tracks) {
12821310

12831311
ParticleType trackPID = (cfgFillPID || cfgFillPIDQA) ? getTrackPID(track) : kUnidentified;
@@ -1333,13 +1361,25 @@ struct FlowSP {
13331361
}
13341362

13351363
// Set weff and wacc for inclusive, negative and positive hadrons
1336-
if (!setCurrentParticleWeights(kInclusive, kUnidentified, phi, track.eta(), track.pt(), vtxz))
1364+
if (!setCurrentParticleWeights(kInclusive, kUnidentified, phi, track.eta(), track.pt(), vtxz, spm.centrality))
13371365
continue;
1338-
if (!setCurrentParticleWeights(spm.charge, kUnidentified, phi, track.eta(), track.pt(), vtxz))
1366+
if (!setCurrentParticleWeights(spm.charge, kUnidentified, phi, track.eta(), track.pt(), vtxz, spm.centrality))
13391367
continue;
13401368

13411369
histos.fill(HIST("hTrackCount"), trackSel_ParticleWeights);
13421370

1371+
double weight = spm.wacc[0][0] * spm.weff[0][0] * spm.centWeight;
1372+
double weight_charged = spm.wacc[spm.charge][0] * spm.weff[spm.charge][0] * spm.centWeight;
1373+
1374+
hRelEtaPt->Fill(track.eta(), kInclusive, track.pt(), weight);
1375+
hRelEtaPt->Fill(track.eta(), spm.charge, track.pt(), weight_charged);
1376+
1377+
ptV1A->Fill(track.eta(), kInclusive, track.pt() * ((spm.uy * spm.qyA + spm.ux * spm.qxA) / std::sqrt(std::fabs(spm.corrQQ))), weight);
1378+
ptV1A->Fill(track.eta(), spm.charge, track.pt() * ((spm.uy * spm.qyA + spm.ux * spm.qxA) / std::sqrt(std::fabs(spm.corrQQ))), weight_charged);
1379+
1380+
ptV1C->Fill(track.eta(), kInclusive, track.pt() * ((spm.uy * spm.qyC + spm.ux * spm.qxC) / std::sqrt(std::fabs(spm.corrQQ))), weight);
1381+
ptV1C->Fill(track.eta(), spm.charge, track.pt() * ((spm.uy * spm.qyC + spm.ux * spm.qxC) / std::sqrt(std::fabs(spm.corrQQ))), weight_charged);
1382+
13431383
fillAllQA<kAfter, kUnidentified>(track);
13441384
if (cfgFillPIDQA) {
13451385
switch (trackPID) {
@@ -1365,9 +1405,11 @@ struct FlowSP {
13651405
spm.uyMH = std::sin(cfgHarmMixed * phi);
13661406
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
13671407

1368-
spm.vnA = std::cos(cfgHarm * (phi - psiA)) / evPlaneRes;
1369-
spm.vnC = std::cos(cfgHarm * (phi - psiC)) / evPlaneRes;
1370-
spm.vnFull = std::cos(cfgHarm * (phi - psiFull)) / evPlaneRes;
1408+
spm.vnA = std::cos(cfgHarm * (phi - spm.psiA)) / evPlaneRes;
1409+
spm.vnC = std::cos(cfgHarm * (phi - spm.psiC)) / evPlaneRes;
1410+
spm.vnFull = std::cos(cfgHarm * (phi - spm.psiFull)) / evPlaneRes;
1411+
1412+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
13711413

13721414
fillHistograms<kInclusive, kUnidentified>(track);
13731415

@@ -1435,6 +1477,46 @@ struct FlowSP {
14351477
} // end of fillPID
14361478

14371479
} // end of track loop
1480+
1481+
// Now we want to fill the final relPt histogram
1482+
// Loop over all eta and fill bins
1483+
if (cfgFillMeanPT) {
1484+
for (int i = 0; i < hRelEtaPt->GetNbinsX(); i++) {
1485+
double eta = hRelEtaPt->GetXaxis()->GetBinCenter(i);
1486+
1487+
int bin = hRelEtaPt->FindBin(eta, kInclusive);
1488+
1489+
double drelPt = hRelEtaPt->GetBinContent(bin);
1490+
double dptV1A = ptV1A->GetBinContent(bin);
1491+
double dptV1C = ptV1C->GetBinContent(bin);
1492+
if (drelPt)
1493+
registry.fill(HIST("incl/meanPT/meanRelPtA"), eta, spm.centrality, dptV1A / drelPt, 1);
1494+
if (drelPt)
1495+
registry.fill(HIST("incl/meanPT/meanRelPtC"), eta, spm.centrality, dptV1C / drelPt, 1);
1496+
1497+
bin = hRelEtaPt->FindBin(eta, kPositive);
1498+
double drelPt_pos = hRelEtaPt->GetBinContent(bin);
1499+
double dptV1A_pos = ptV1A->GetBinContent(bin);
1500+
double dptV1C_pos = ptV1C->GetBinContent(bin);
1501+
if (drelPt_pos)
1502+
registry.fill(HIST("pos/meanPT/meanRelPtA"), eta, spm.centrality, dptV1A_pos / drelPt_pos, 1);
1503+
if (drelPt_pos)
1504+
registry.fill(HIST("pos/meanPT/meanRelPtC"), eta, spm.centrality, dptV1C_pos / drelPt_pos, 1);
1505+
1506+
bin = hRelEtaPt->FindBin(eta, kNegative);
1507+
double drelPt_neg = hRelEtaPt->GetBinContent(bin);
1508+
double dptV1A_neg = ptV1A->GetBinContent(bin);
1509+
double dptV1C_neg = ptV1C->GetBinContent(bin);
1510+
if (drelPt_neg)
1511+
registry.fill(HIST("neg/meanPT/meanRelPtA"), eta, spm.centrality, dptV1A_neg / drelPt_neg, 1);
1512+
if (drelPt_neg)
1513+
registry.fill(HIST("neg/meanPT/meanRelPtC"), eta, spm.centrality, dptV1C_neg / drelPt_neg, 1);
1514+
}
1515+
}
1516+
1517+
delete hRelEtaPt;
1518+
delete ptV1A;
1519+
delete ptV1C;
14381520
}
14391521

14401522
PROCESS_SWITCH(FlowSP, processData, "Process analysis for non-derived data", true);

0 commit comments

Comments
 (0)