@@ -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