2020#include " PWGHF/Core/CentralityEstimation.h"
2121#include " PWGHF/Core/DecayChannels.h"
2222#include " PWGHF/Core/HfHelper.h"
23+ #include " PWGHF/D2H/Utils/utilsFlow.h"
2324#include " PWGHF/DataModel/CandidateReconstructionTables.h"
2425#include " PWGHF/DataModel/CandidateSelectionTables.h"
26+ #include " PWGHF/Utils/utilsEvSelHf.h"
2527
2628#include " Common/Core/EventPlaneHelper.h"
2729#include " Common/Core/RecoDecay.h"
@@ -62,6 +64,9 @@ using namespace o2;
6264using namespace o2 ::aod;
6365using namespace o2 ::framework;
6466using namespace o2 ::framework::expressions;
67+ using namespace o2 ::hf_centrality;
68+ using namespace o2 ::hf_evsel;
69+ using namespace o2 ::analysis::hf_flow_utils;
6570
6671namespace o2 ::aod
6772{
@@ -214,11 +219,13 @@ struct HfTaskCharmPolarisation {
214219 Configurable<float > rapidityCut{" rapidityCut" , 999 .f , " Max. value of reconstructed candidate rapidity (abs. value)" };
215220
216221 SliceCache cache;
217- EventPlaneHelper epHelper;
222+ EventPlaneHelper epHelper; // event plane helper
223+ HfEventSelection hfEvSel; // event selection and monitoring
224+ o2::framework::Service<o2::ccdb::BasicCCDBManager> ccdb;
218225
219226 using CollisionsWithMcLabels = soa::SmallGroups<soa::Join<aod::Collisions, aod::McCollisionLabels>>;
220227 using CollisionsWithMcLabelsAndCent = soa::SmallGroups<soa::Join<aod::Collisions, aod::McCollisionLabels, aod::CentFT0Ms, aod::CentFT0Cs>>;
221- using CollsWithQVecs = soa::Join<aod::Collisions, aod::EvSels, aod::QvectorFT0Cs, aod::QvectorFT0Ms, aod::QvectorFV0As, aod::CentFT0Ms, aod::CentFT0Cs>;
228+ using CollsWithQVecs = soa::Join<aod::Collisions, aod::EvSels, aod::QvectorFT0Cs, aod::QvectorFT0As, aod:: QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorBPoss, aod::QvectorBNegs, aod::QvectorBTots , aod::CentFT0Ms, aod::CentFT0Cs>;
222229 using TracksWithMcLabels = soa::Join<aod::Tracks, aod::TracksExtra, aod::McTrackLabels>;
223230 using TracksWithExtra = soa::Join<aod::Tracks, aod::TracksExtra>;
224231
@@ -359,9 +366,9 @@ struct HfTaskCharmPolarisation {
359366 minInvMass = invMassBins.front ();
360367 maxInvMass = invMassBins.back ();
361368
362- registry.add (" hNumPvContributorsAll" , " Number of PV contributors for all events ;num. PV contributors; counts" , HistType::kTH1F , {thnAxisNumPvContributors});
363- registry.add (" hNumPvContributorsCand" , " Number of PV contributors for events with candidates;num. PV contributors; counts" , HistType::kTH1F , {thnAxisNumPvContributors});
364- registry.add (" hNumPvContributorsCandInMass" , " Number of PV contributors for events with candidates in the signal region;num. PV contributors; counts" , HistType::kTH1F , {thnAxisNumPvContributors});
369+ registry.add (" hNumPvContributorsAll" , " Number of PV contributors for all events ;num. PV contributors; counts" , HistType::kTH1D , {thnAxisNumPvContributors});
370+ registry.add (" hNumPvContributorsCand" , " Number of PV contributors for events with candidates;num. PV contributors; counts" , HistType::kTH1D , {thnAxisNumPvContributors});
371+ registry.add (" hNumPvContributorsCandInMass" , " Number of PV contributors for events with candidates in the signal region;num. PV contributors; counts" , HistType::kTH1D , {thnAxisNumPvContributors});
365372 if (doprocessDstarInPbPb || doprocessDstarMcInPbPb || doprocessDstarWithMlInPbPb || doprocessDstarMcWithMlInPbPb) {
366373 registry.add (" hCentrality" , " Centrality distribution for D*+ candidates;centrality (%); counts" , HistType::kTH1D , {thnAxisCentrality});
367374 }
@@ -669,6 +676,38 @@ struct HfTaskCharmPolarisation {
669676 registry.add (" hMass2PairsLcPKPi" , " THnSparse to monitor M2(Kpi), M2(pK), M2(ppi), pt correlation for Lc -> pKpi" , HistType::kTHnSparseF , {thnAxisInvMass2KPiLcMonitoring, thnAxisInvMass2PKLcMonitoring, thnAxisInvMass2PPiLcMonitoring, thnAxisPt});
670677 }
671678
679+ // / Event-plane related histograms
680+ if (doprocessResolEventPlane) {
681+ const AxisSpec axisCosDeltaPhi{{1000 , -1 ., 1 .}, " cos(2(#Psi_{2}(A) #minus #Psi_{2}(B)))" };
682+ const AxisSpec axisPsi{{180 , 0 ., o2::constants::math::PI}, " #Psi_{2}" };
683+
684+ registry.add (" resolEvPlane/hEvPlaneAngleFV0A" , " ;centrality;#Psi_{2} (FV0A)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
685+ registry.add (" resolEvPlane/hEvPlaneAngleFT0A" , " ;centrality;#Psi_{2} (FT0A)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
686+ registry.add (" resolEvPlane/hEvPlaneAngleFT0C" , " ;centrality;#Psi_{2} (FT0C)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
687+ registry.add (" resolEvPlane/hEvPlaneAngleFT0M" , " ;centrality;#Psi_{2} (FT0M)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
688+ registry.add (" resolEvPlane/hEvPlaneAngleTPCpos" , " ;centrality;#Psi_{2} (TPC pos)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
689+ registry.add (" resolEvPlane/hEvPlaneAngleTPCneg" , " ;centrality;#Psi_{2} (TPC neg)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
690+ registry.add (" resolEvPlane/hEvPlaneAngleTPCtot" , " ;centrality;#Psi_{2} (TPC)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
691+
692+ registry.add (" resolEvPlane/hResolEvPlaneFT0CFT0A" , " hResolEvPlaneFT0CFT0A; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(FT0A)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
693+ registry.add (" resolEvPlane/hResolEvPlaneFT0CFV0A" , " hResolEvPlaneFT0CFV0A; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(FV0A)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
694+ registry.add (" resolEvPlane/hResolEvPlaneFT0CTPCpos" , " hResolEvPlaneFT0CTPCpos; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(TPC pos)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
695+ registry.add (" resolEvPlane/hResolEvPlaneFT0CTPCneg" , " hResolEvPlaneFT0CTPCneg; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
696+ registry.add (" resolEvPlane/hResolEvPlaneFT0CTPCtot" , " hResolEvPlaneFT0CTPCtot; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(TPC tot)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
697+ registry.add (" resolEvPlane/hResolEvPlaneFT0AFV0A" , " hResolEvPlaneFT0AFV0A; centrality; cos(2(#Psi_{2}(FT0A) #minus #Psi_{2}(FV0A)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
698+ registry.add (" resolEvPlane/hResolEvPlaneFT0ATPCpos" , " hResolEvPlaneFT0ATPCpos; centrality; cos(2(#Psi_{2}(FT0A) #minus #Psi_{2}(TPC pos)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
699+ registry.add (" resolEvPlane/hResolEvPlaneFT0ATPCneg" , " hResolEvPlaneFT0ATPCneg; centrality; cos(2(#Psi_{2}(FT0A) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
700+ registry.add (" resolEvPlane/hResolEvPlaneFT0ATPCtot" , " hResolEvPlaneFT0ATPCtot; centrality; cos(2(#Psi_{2}(FT0A) #minus #Psi_{2}(TPC)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
701+ registry.add (" resolEvPlane/hResolEvPlaneFT0MFV0A" , " hResolEvPlaneFT0MFV0A; centrality; cos(2(#Psi_{2}(FV0A) #minus #Psi_{2}(FV0A)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
702+ registry.add (" resolEvPlane/hResolEvPlaneFT0MTPCpos" , " hResolEvPlaneFT0MTPCpos; centrality; cos(2(#Psi_{2}(FT0M) #minus #Psi_{2}(TPC pos)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
703+ registry.add (" resolEvPlane/hResolEvPlaneFT0MTPCneg" , " hResolEvPlaneFT0MTPCneg; centrality; cos(2(#Psi_{2}(FT0M) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
704+ registry.add (" resolEvPlane/hResolEvPlaneFT0MTPCtot" , " hResolEvPlaneFT0MTPCtot; centrality; cos(2(#Psi_{2}(FT0M) #minus #Psi_{2}(TPC tot)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
705+ registry.add (" resolEvPlane/hResolEvPlaneFV0ATPCpos" , " hResolEvPlaneFV0ATPCpos; centrality; cos(2(#Psi_{2}(FV0A) #minus #Psi_{2}(TPC pos)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
706+ registry.add (" resolEvPlane/hResolEvPlaneFV0ATPCneg" , " hResolEvPlaneFV0ATPCneg; centrality; cos(2(#Psi_{2}(FV0A) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
707+ registry.add (" resolEvPlane/hResolEvPlaneFV0ATPCtot" , " hResolEvPlaneFV0ATPCtot; centrality; cos(2(#Psi_{2}(FV0A) #minus #Psi_{2}(TPC)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
708+ registry.add (" resolEvPlane/hResolEvPlaneTPCposTPCneg" , " hResolEvPlaneTPCposTPCneg; centrality; cos(2(#Psi_{2}(TPC pos) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
709+ }
710+
672711 // inv. mass hypothesis to loop over
673712 // e.g.: Lc->pKpi has the ambiguity pKpi vs. piKp
674713 if (doprocessLcToPKPi || doprocessLcToPKPiWithMl) {
@@ -678,6 +717,13 @@ struct HfTaskCharmPolarisation {
678717 nMassHypos = 1 ;
679718 }
680719
720+ if (doprocessResolEventPlane) {
721+ int dummyVariable;
722+ hfEvSel.init (registry, dummyVariable);
723+ ccdb->setURL (" http://alice-ccdb.cern.ch" );
724+ ccdb->setCaching (true );
725+ ccdb->setLocalObjectValidityChecking ();
726+ }
681727 }; // end init
682728
683729 // / \param invMassCharmHad is the invariant-mass of the candidate
@@ -1474,36 +1520,6 @@ struct HfTaskCharmPolarisation {
14741520 }
14751521 }
14761522
1477- // / Get the Q vector
1478- // / \param collision is the collision with the Q vector information
1479- template <typename Coll>
1480- std::vector<float > getQVec (Coll const & collision)
1481- {
1482- float xQVec = -999 .;
1483- float yQVec = -999 .;
1484- float const amplQVec = -999 .;
1485- switch (qVecDetector) {
1486- case charm_polarisation::QvecEstimator::FV0A:
1487- xQVec = collision.qvecFV0ARe ();
1488- yQVec = collision.qvecFV0AIm ();
1489- break ;
1490- case charm_polarisation::QvecEstimator::FT0M:
1491- xQVec = collision.qvecFT0MRe ();
1492- yQVec = collision.qvecFT0MIm ();
1493- break ;
1494- case charm_polarisation::QvecEstimator::FT0C:
1495- xQVec = collision.qvecFT0CRe ();
1496- yQVec = collision.qvecFT0CIm ();
1497- break ;
1498- default :
1499- LOG (warning) << " Q vector estimator not valid. Please choose between FV0A, FT0M, FT0A, FT0C, TPC Pos, TPC Neg. Fallback to FV0A" ;
1500- xQVec = collision.qvecFV0ARe ();
1501- yQVec = collision.qvecFV0AIm ();
1502- break ;
1503- }
1504- return {xQVec, yQVec, amplQVec};
1505- }
1506-
15071523 // / \param candidates are the selected candidates
15081524 // / \param bkgRotationId is the id for the background rotation
15091525 // / \param numPvContributors is the number of PV contributors
@@ -2308,7 +2324,7 @@ struct HfTaskCharmPolarisation {
23082324 TracksWithExtra const & tracks)
23092325 {
23102326 for (const auto & collision : collisions) {
2311- const auto centrality = o2::hf_centrality:: getCentralityColl (collision, centEstimator);
2327+ const auto centrality = getCentralityColl (collision, centEstimator);
23122328 if (centrality < centralityMin || centrality > centralityMax) {
23132329 continue ; // skip this collision if outside of the centrality range
23142330 }
@@ -2319,7 +2335,7 @@ struct HfTaskCharmPolarisation {
23192335 auto groupedDstarCandidates = dstarCandidates.sliceBy (dstarPerCollision, thisCollId);
23202336 int nCands{0 }, nCandsInSignalRegion{0 };
23212337
2322- std::vector <float > const qVecs = getQVec (collision);
2338+ std::array <float , 3 > const qVecs = getQvec (collision, qVecDetector. value );
23232339
23242340 for (const auto & dstarCandidate : groupedDstarCandidates) {
23252341 nCands++;
@@ -2337,7 +2353,7 @@ struct HfTaskCharmPolarisation {
23372353 TracksWithExtra const & tracks)
23382354 {
23392355 for (const auto & collision : collisions) {
2340- const auto centrality = o2::hf_centrality:: getCentralityColl (collision, centEstimator);
2356+ const auto centrality = getCentralityColl (collision, centEstimator);
23412357 if (centrality < centralityMin || centrality > centralityMax) {
23422358 continue ; // skip this collision if outside of the centrality range
23432359 }
@@ -2348,7 +2364,7 @@ struct HfTaskCharmPolarisation {
23482364 auto groupedDstarCandidates = dstarCandidates.sliceBy (dstarWithMlPerCollision, thisCollId);
23492365 int nCands{0 }, nCandsInSignalRegion{0 };
23502366
2351- std::vector <float > const qVecs = getQVec (collision);
2367+ std::array <float , 3 > const qVecs = getQvec (collision, qVecDetector. value );
23522368
23532369 for (const auto & dstarCandidate : groupedDstarCandidates) {
23542370 nCands++;
@@ -2370,7 +2386,7 @@ struct HfTaskCharmPolarisation {
23702386 int numPvContributorsGen{0 };
23712387
23722388 for (const auto & collision : collisions) { // loop over reco collisions associated to this gen collision
2373- const auto centrality = o2::hf_centrality:: getCentralityColl (collision, centEstimator);
2389+ const auto centrality = getCentralityColl (collision, centEstimator);
23742390 if (centrality < centralityMin || centrality > centralityMax) {
23752391 continue ; // skip this collision if outside of the centrality range
23762392 }
@@ -2395,7 +2411,7 @@ struct HfTaskCharmPolarisation {
23952411 }
23962412 for (const auto & mcParticle : mcParticles) {
23972413 const auto & recoCollsPerMcColl = collisions.sliceBy (colPerMcCollision, mcParticle.mcCollision ().globalIndex ());
2398- const auto cent = o2::hf_centrality:: getCentralityGenColl (recoCollsPerMcColl, centEstimator);
2414+ const auto cent = getCentralityGenColl (recoCollsPerMcColl, centEstimator);
23992415 runMcGenPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, true >(mcParticle, mcParticles, numPvContributorsGen, ¢);
24002416 }
24012417 }
@@ -2410,7 +2426,7 @@ struct HfTaskCharmPolarisation {
24102426 int numPvContributorsGen{0 };
24112427
24122428 for (const auto & collision : collisions) { // loop over reco collisions associated to this gen collision
2413- const auto centrality = o2::hf_centrality:: getCentralityColl (collision, centEstimator);
2429+ const auto centrality = getCentralityColl (collision, centEstimator);
24142430 if (centrality < centralityMin || centrality > centralityMax) {
24152431 continue ; // skip this collision if outside of the centrality range
24162432 }
@@ -2435,7 +2451,7 @@ struct HfTaskCharmPolarisation {
24352451 }
24362452 for (const auto & mcParticle : mcParticles) {
24372453 const auto & recoCollsPerMcColl = collisions.sliceBy (colPerMcCollision, mcParticle.mcCollision ().globalIndex ());
2438- const auto cent = o2::hf_centrality:: getCentralityGenColl (recoCollsPerMcColl, centEstimator);
2454+ const auto cent = getCentralityGenColl (recoCollsPerMcColl, centEstimator);
24392455 runMcGenPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, true >(mcParticle, mcParticles, numPvContributorsGen, ¢);
24402456 }
24412457 }
@@ -2579,6 +2595,52 @@ struct HfTaskCharmPolarisation {
25792595 }
25802596 }
25812597 PROCESS_SWITCH (HfTaskCharmPolarisation, processLcToPKPiBackgroundMcWithMl, " Process Lc candidates in MC with ML w/o mcCollision grouping" , false );
2598+
2599+ // Event-plane resolution
2600+ void processResolEventPlane (CollsWithQVecs::iterator const & collision,
2601+ aod::BCsWithTimestamps const &)
2602+ {
2603+ float centrality{-1 .f };
2604+ const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask <true , CentralityEstimator::FT0C, aod::BCsWithTimestamps>(collision, centrality, ccdb, registry);
2605+ if (rejectionMask != 0 ) {
2606+ return ;
2607+ }
2608+ centrality = getCentralityColl (collision, CentralityEstimator::FT0C);
2609+
2610+ float const psiFT0a = epHelper.GetEventPlane (collision.qvecFT0ARe (), collision.qvecFT0AIm (), 2 );
2611+ float const psiFT0c = epHelper.GetEventPlane (collision.qvecFT0CRe (), collision.qvecFT0CIm (), 2 );
2612+ float const psiFT0m = epHelper.GetEventPlane (collision.qvecFT0MRe (), collision.qvecFT0MIm (), 2 );
2613+ float const psiFV0a = epHelper.GetEventPlane (collision.qvecFV0ARe (), collision.qvecFV0AIm (), 2 );
2614+ float const psiBPoss = epHelper.GetEventPlane (collision.qvecBPosRe (), collision.qvecBPosIm (), 2 );
2615+ float const psiBNegs = epHelper.GetEventPlane (collision.qvecBNegRe (), collision.qvecBNegIm (), 2 );
2616+ float const psiBTots = epHelper.GetEventPlane (collision.qvecBTotRe (), collision.qvecBTotIm (), 2 );
2617+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleFV0A" ), centrality, psiFV0a);
2618+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleFT0A" ), centrality, psiFT0a);
2619+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleFT0C" ), centrality, psiFT0c);
2620+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleFT0M" ), centrality, psiFT0m);
2621+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleTPCpos" ), centrality, psiBPoss);
2622+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleTPCneg" ), centrality, psiBNegs);
2623+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleTPCtot" ), centrality, psiBTots);
2624+
2625+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CFT0A" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiFT0a, 2 )));
2626+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CFV0A" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiFV0a, 2 )));
2627+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CTPCpos" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiBPoss, 2 )));
2628+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CTPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiBNegs, 2 )));
2629+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CTPCtot" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiBTots, 2 )));
2630+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0AFV0A" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0a, psiFV0a, 2 )));
2631+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0ATPCpos" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0a, psiBPoss, 2 )));
2632+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0ATPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0a, psiBNegs, 2 )));
2633+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0ATPCtot" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0a, psiBTots, 2 )));
2634+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0MFV0A" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0m, psiFV0a, 2 )));
2635+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0MTPCpos" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0m, psiBPoss, 2 )));
2636+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0MTPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0m, psiBNegs, 2 )));
2637+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0MTPCtot" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0m, psiBTots, 2 )));
2638+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFV0ATPCpos" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFV0a, psiBPoss, 2 )));
2639+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFV0ATPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFV0a, psiBNegs, 2 )));
2640+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFV0ATPCtot" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFV0a, psiBTots, 2 )));
2641+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneTPCposTPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiBPoss, psiBNegs, 2 )));
2642+ }
2643+ PROCESS_SWITCH (HfTaskCharmPolarisation, processResolEventPlane, " Process event-plane resolution" , false );
25822644};
25832645
25842646WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments