1717// / \author M. Faggin (CERN) mattia.faggin@cern.ch
1818// / \author M. Li (CCNU) mingze.li@cern.ch
1919
20+
2021#include " PWGHF/Core/CentralityEstimation.h"
2122#include " PWGHF/Core/DecayChannels.h"
2223#include " PWGHF/Core/HfHelper.h"
2324#include " PWGHF/DataModel/CandidateReconstructionTables.h"
2425#include " PWGHF/DataModel/CandidateSelectionTables.h"
26+ #include " PWGHF/D2H/Utils/utilsFlow.h"
27+ #include " PWGHF/Utils/utilsEvSelHf.h"
2528
2629#include " Common/Core/EventPlaneHelper.h"
2730#include " Common/Core/RecoDecay.h"
@@ -62,6 +65,9 @@ using namespace o2;
6265using namespace o2 ::aod;
6366using namespace o2 ::framework;
6467using namespace o2 ::framework::expressions;
68+ using namespace o2 ::hf_centrality;
69+ using namespace o2 ::hf_evsel;
70+ using namespace o2 ::analysis::hf_flow_utils;
6571
6672namespace o2 ::aod
6773{
@@ -214,11 +220,13 @@ struct HfTaskCharmPolarisation {
214220 Configurable<float > rapidityCut{" rapidityCut" , 999 .f , " Max. value of reconstructed candidate rapidity (abs. value)" };
215221
216222 SliceCache cache;
217- EventPlaneHelper epHelper;
223+ EventPlaneHelper epHelper; // event plane helper
224+ HfEventSelection hfEvSel; // event selection and monitoring
225+ o2::framework::Service<o2::ccdb::BasicCCDBManager> ccdb;
218226
219227 using CollisionsWithMcLabels = soa::SmallGroups<soa::Join<aod::Collisions, aod::McCollisionLabels>>;
220228 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 >;
229+ using CollsWithQVecs = soa::Join<aod::Collisions, aod::EvSels, aod::QvectorFT0Cs, aod::QvectorFT0As, aod:: QvectorFT0Ms, aod::QvectorFV0As, aod::QvectorBPoss , aod::QvectorBNegs, aod::QvectorBTots >;
222230 using TracksWithMcLabels = soa::Join<aod::Tracks, aod::TracksExtra, aod::McTrackLabels>;
223231 using TracksWithExtra = soa::Join<aod::Tracks, aod::TracksExtra>;
224232
@@ -359,9 +367,9 @@ struct HfTaskCharmPolarisation {
359367 minInvMass = invMassBins.front ();
360368 maxInvMass = invMassBins.back ();
361369
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});
370+ registry.add (" hNumPvContributorsAll" , " Number of PV contributors for all events ;num. PV contributors; counts" , HistType::kTH1D , {thnAxisNumPvContributors});
371+ registry.add (" hNumPvContributorsCand" , " Number of PV contributors for events with candidates;num. PV contributors; counts" , HistType::kTH1D , {thnAxisNumPvContributors});
372+ registry.add (" hNumPvContributorsCandInMass" , " Number of PV contributors for events with candidates in the signal region;num. PV contributors; counts" , HistType::kTH1D , {thnAxisNumPvContributors});
365373 if (doprocessDstarInPbPb || doprocessDstarMcInPbPb || doprocessDstarWithMlInPbPb || doprocessDstarMcWithMlInPbPb) {
366374 registry.add (" hCentrality" , " Centrality distribution for D*+ candidates;centrality (%); counts" , HistType::kTH1D , {thnAxisCentrality});
367375 }
@@ -669,6 +677,38 @@ struct HfTaskCharmPolarisation {
669677 registry.add (" hMass2PairsLcPKPi" , " THnSparse to monitor M2(Kpi), M2(pK), M2(ppi), pt correlation for Lc -> pKpi" , HistType::kTHnSparseF , {thnAxisInvMass2KPiLcMonitoring, thnAxisInvMass2PKLcMonitoring, thnAxisInvMass2PPiLcMonitoring, thnAxisPt});
670678 }
671679
680+ // / Event-plane related histograms
681+ if (doprocessResolEventPlane) {
682+ const AxisSpec axisCosDeltaPhi{{1000 , -1 ., 1 .}, " cos(2(#Psi_{2}(A) #minus #Psi_{2}(B)))" };
683+ const AxisSpec axisPsi{{180 , 0 ., o2::constants::math::PI}, " #Psi_{2}" };
684+
685+ registry.add (" resolEvPlane/hEvPlaneAngleFV0A" , " ;centrality;#Psi_{2} (FV0A)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
686+ registry.add (" resolEvPlane/hEvPlaneAngleFT0A" , " ;centrality;#Psi_{2} (FT0A)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
687+ registry.add (" resolEvPlane/hEvPlaneAngleFT0C" , " ;centrality;#Psi_{2} (FT0C)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
688+ registry.add (" resolEvPlane/hEvPlaneAngleFT0M" , " ;centrality;#Psi_{2} (FT0M)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
689+ registry.add (" resolEvPlane/hEvPlaneAngleTPCpos" , " ;centrality;#Psi_{2} (TPC pos)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
690+ registry.add (" resolEvPlane/hEvPlaneAngleTPCneg" , " ;centrality;#Psi_{2} (TPC neg)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
691+ registry.add (" resolEvPlane/hEvPlaneAngleTPCtot" , " ;centrality;#Psi_{2} (TPC)" , {HistType::kTH2F , {thnAxisCentrality, axisPsi}});
692+
693+ registry.add (" resolEvPlane/hResolEvPlaneFT0CFT0A" , " hResolEvPlaneFT0CFT0A; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(FT0A)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
694+ registry.add (" resolEvPlane/hResolEvPlaneFT0CFV0A" , " hResolEvPlaneFT0CFV0A; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(FV0A)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
695+ registry.add (" resolEvPlane/hResolEvPlaneFT0CTPCpos" , " hResolEvPlaneFT0CTPCpos; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(TPC pos)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
696+ registry.add (" resolEvPlane/hResolEvPlaneFT0CTPCneg" , " hResolEvPlaneFT0CTPCneg; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
697+ registry.add (" resolEvPlane/hResolEvPlaneFT0CTPCtot" , " hResolEvPlaneFT0CTPCtot; centrality; cos(2(#Psi_{2}(FT0C) #minus #Psi_{2}(TPC tot)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
698+ registry.add (" resolEvPlane/hResolEvPlaneFT0AFV0A" , " hResolEvPlaneFT0AFV0A; centrality; cos(2(#Psi_{2}(FT0A) #minus #Psi_{2}(FV0A)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
699+ registry.add (" resolEvPlane/hResolEvPlaneFT0ATPCpos" , " hResolEvPlaneFT0ATPCpos; centrality; cos(2(#Psi_{2}(FT0A) #minus #Psi_{2}(TPC pos)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
700+ registry.add (" resolEvPlane/hResolEvPlaneFT0ATPCneg" , " hResolEvPlaneFT0ATPCneg; centrality; cos(2(#Psi_{2}(FT0A) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
701+ registry.add (" resolEvPlane/hResolEvPlaneFT0ATPCtot" , " hResolEvPlaneFT0ATPCtot; centrality; cos(2(#Psi_{2}(FT0A) #minus #Psi_{2}(TPC)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
702+ registry.add (" resolEvPlane/hResolEvPlaneFT0MFV0A" , " hResolEvPlaneFT0MFV0A; centrality; cos(2(#Psi_{2}(FV0A) #minus #Psi_{2}(FV0A)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
703+ registry.add (" resolEvPlane/hResolEvPlaneFT0MTPCpos" , " hResolEvPlaneFT0MTPCpos; centrality; cos(2(#Psi_{2}(FT0M) #minus #Psi_{2}(TPC pos)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
704+ registry.add (" resolEvPlane/hResolEvPlaneFT0MTPCneg" , " hResolEvPlaneFT0MTPCneg; centrality; cos(2(#Psi_{2}(FT0M) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
705+ registry.add (" resolEvPlane/hResolEvPlaneFT0MTPCtot" , " hResolEvPlaneFT0MTPCtot; centrality; cos(2(#Psi_{2}(FT0M) #minus #Psi_{2}(TPC tot)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
706+ registry.add (" resolEvPlane/hResolEvPlaneFV0ATPCpos" , " hResolEvPlaneFV0ATPCpos; centrality; cos(2(#Psi_{2}(FV0A) #minus #Psi_{2}(TPC pos)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
707+ registry.add (" resolEvPlane/hResolEvPlaneFV0ATPCneg" , " hResolEvPlaneFV0ATPCneg; centrality; cos(2(#Psi_{2}(FV0A) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
708+ registry.add (" resolEvPlane/hResolEvPlaneFV0ATPCtot" , " hResolEvPlaneFV0ATPCtot; centrality; cos(2(#Psi_{2}(FV0A) #minus #Psi_{2}(TPC)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
709+ registry.add (" resolEvPlane/hResolEvPlaneTPCposTPCneg" , " hResolEvPlaneTPCposTPCneg; centrality; cos(2(#Psi_{2}(TPC pos) #minus #Psi_{2}(TPC neg)))" , {HistType::kTH2F , {thnAxisCentrality, axisCosDeltaPhi}});
710+ }
711+
672712 // inv. mass hypothesis to loop over
673713 // e.g.: Lc->pKpi has the ambiguity pKpi vs. piKp
674714 if (doprocessLcToPKPi || doprocessLcToPKPiWithMl) {
@@ -678,6 +718,13 @@ struct HfTaskCharmPolarisation {
678718 nMassHypos = 1 ;
679719 }
680720
721+ if (doprocessResolEventPlane) {
722+ int dummyVariable;
723+ hfEvSel.init (registry, dummyVariable);
724+ ccdb->setURL (" http://alice-ccdb.cern.ch" );
725+ ccdb->setCaching (true );
726+ ccdb->setLocalObjectValidityChecking ();
727+ }
681728 }; // end init
682729
683730 // / \param invMassCharmHad is the invariant-mass of the candidate
@@ -1474,36 +1521,6 @@ struct HfTaskCharmPolarisation {
14741521 }
14751522 }
14761523
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-
15071524 // / \param candidates are the selected candidates
15081525 // / \param bkgRotationId is the id for the background rotation
15091526 // / \param numPvContributors is the number of PV contributors
@@ -2308,7 +2325,7 @@ struct HfTaskCharmPolarisation {
23082325 TracksWithExtra const & tracks)
23092326 {
23102327 for (const auto & collision : collisions) {
2311- const auto centrality = o2::hf_centrality:: getCentralityColl (collision, centEstimator);
2328+ const auto centrality = getCentralityColl (collision, centEstimator);
23122329 if (centrality < centralityMin || centrality > centralityMax) {
23132330 continue ; // skip this collision if outside of the centrality range
23142331 }
@@ -2319,7 +2336,7 @@ struct HfTaskCharmPolarisation {
23192336 auto groupedDstarCandidates = dstarCandidates.sliceBy (dstarPerCollision, thisCollId);
23202337 int nCands{0 }, nCandsInSignalRegion{0 };
23212338
2322- std::vector <float > const qVecs = getQVec (collision);
2339+ std::array <float , 3 > const qVecs = getQvec (collision, qVecDetector. value );
23232340
23242341 for (const auto & dstarCandidate : groupedDstarCandidates) {
23252342 nCands++;
@@ -2337,7 +2354,7 @@ struct HfTaskCharmPolarisation {
23372354 TracksWithExtra const & tracks)
23382355 {
23392356 for (const auto & collision : collisions) {
2340- const auto centrality = o2::hf_centrality:: getCentralityColl (collision, centEstimator);
2357+ const auto centrality = getCentralityColl (collision, centEstimator);
23412358 if (centrality < centralityMin || centrality > centralityMax) {
23422359 continue ; // skip this collision if outside of the centrality range
23432360 }
@@ -2348,7 +2365,7 @@ struct HfTaskCharmPolarisation {
23482365 auto groupedDstarCandidates = dstarCandidates.sliceBy (dstarWithMlPerCollision, thisCollId);
23492366 int nCands{0 }, nCandsInSignalRegion{0 };
23502367
2351- std::vector <float > const qVecs = getQVec (collision);
2368+ std::array <float , 3 > const qVecs = getQvec (collision, qVecDetector. value );
23522369
23532370 for (const auto & dstarCandidate : groupedDstarCandidates) {
23542371 nCands++;
@@ -2370,7 +2387,7 @@ struct HfTaskCharmPolarisation {
23702387 int numPvContributorsGen{0 };
23712388
23722389 for (const auto & collision : collisions) { // loop over reco collisions associated to this gen collision
2373- const auto centrality = o2::hf_centrality:: getCentralityColl (collision, centEstimator);
2390+ const auto centrality = getCentralityColl (collision, centEstimator);
23742391 if (centrality < centralityMin || centrality > centralityMax) {
23752392 continue ; // skip this collision if outside of the centrality range
23762393 }
@@ -2395,7 +2412,7 @@ struct HfTaskCharmPolarisation {
23952412 }
23962413 for (const auto & mcParticle : mcParticles) {
23972414 const auto & recoCollsPerMcColl = collisions.sliceBy (colPerMcCollision, mcParticle.mcCollision ().globalIndex ());
2398- const auto cent = o2::hf_centrality:: getCentralityGenColl (recoCollsPerMcColl, centEstimator);
2415+ const auto cent = getCentralityGenColl (recoCollsPerMcColl, centEstimator);
23992416 runMcGenPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, true >(mcParticle, mcParticles, numPvContributorsGen, ¢);
24002417 }
24012418 }
@@ -2410,7 +2427,7 @@ struct HfTaskCharmPolarisation {
24102427 int numPvContributorsGen{0 };
24112428
24122429 for (const auto & collision : collisions) { // loop over reco collisions associated to this gen collision
2413- const auto centrality = o2::hf_centrality:: getCentralityColl (collision, centEstimator);
2430+ const auto centrality = getCentralityColl (collision, centEstimator);
24142431 if (centrality < centralityMin || centrality > centralityMax) {
24152432 continue ; // skip this collision if outside of the centrality range
24162433 }
@@ -2435,7 +2452,7 @@ struct HfTaskCharmPolarisation {
24352452 }
24362453 for (const auto & mcParticle : mcParticles) {
24372454 const auto & recoCollsPerMcColl = collisions.sliceBy (colPerMcCollision, mcParticle.mcCollision ().globalIndex ());
2438- const auto cent = o2::hf_centrality:: getCentralityGenColl (recoCollsPerMcColl, centEstimator);
2455+ const auto cent = getCentralityGenColl (recoCollsPerMcColl, centEstimator);
24392456 runMcGenPolarisationAnalysis<charm_polarisation::DecayChannel::DstarToDzeroPi, true >(mcParticle, mcParticles, numPvContributorsGen, ¢);
24402457 }
24412458 }
@@ -2579,6 +2596,52 @@ struct HfTaskCharmPolarisation {
25792596 }
25802597 }
25812598 PROCESS_SWITCH (HfTaskCharmPolarisation, processLcToPKPiBackgroundMcWithMl, " Process Lc candidates in MC with ML w/o mcCollision grouping" , false );
2599+
2600+ // Event-plane resolution
2601+ void processResolEventPlane (CollsWithQVecs::iterator const & collision,
2602+ aod::BCsWithTimestamps const &)
2603+ {
2604+ float centrality{-1 .f };
2605+ const auto rejectionMask = hfEvSel.getHfCollisionRejectionMask <true , CentralityEstimator::FT0C, aod::BCsWithTimestamps>(collision, centrality, ccdb, registry);
2606+ if (rejectionMask != 0 ) {
2607+ return ;
2608+ }
2609+ centrality = getCentralityColl (collision, CentralityEstimator::FT0C);
2610+
2611+ float const psiFT0a = epHelper.GetEventPlane (collision.qvecFT0ARe (), collision.qvecFT0AIm (), 2 );
2612+ float const psiFT0c = epHelper.GetEventPlane (collision.qvecFT0CRe (), collision.qvecFT0CIm (), 2 );
2613+ float const psiFT0m = epHelper.GetEventPlane (collision.qvecFT0MRe (), collision.qvecFT0MIm (), 2 );
2614+ float const psiFV0a = epHelper.GetEventPlane (collision.qvecFV0ARe (), collision.qvecFV0AIm (), 2 );
2615+ float const psiBPoss = epHelper.GetEventPlane (collision.qvecBPosRe (), collision.qvecBPosIm (), 2 );
2616+ float const psiBNegs = epHelper.GetEventPlane (collision.qvecBNegRe (), collision.qvecBNegIm (), 2 );
2617+ float const psiBTots = epHelper.GetEventPlane (collision.qvecBTotRe (), collision.qvecBTotIm (), 2 );
2618+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleFV0A" ), centrality, psiFV0a);
2619+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleFT0A" ), centrality, psiFT0a);
2620+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleFT0C" ), centrality, psiFT0c);
2621+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleFT0M" ), centrality, psiFT0m);
2622+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleTPCpos" ), centrality, psiBPoss);
2623+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleTPCneg" ), centrality, psiBNegs);
2624+ registry.fill (HIST (" resolEvPlane/hEvPlaneAngleTPCtot" ), centrality, psiBTots);
2625+
2626+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CFT0A" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiFT0a, 2 )));
2627+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CFV0A" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiFV0a, 2 )));
2628+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CTPCpos" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiBPoss, 2 )));
2629+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CTPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiBNegs, 2 )));
2630+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0CTPCtot" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0c, psiBTots, 2 )));
2631+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0AFV0A" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0a, psiFV0a, 2 )));
2632+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0ATPCpos" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0a, psiBPoss, 2 )));
2633+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0ATPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0a, psiBNegs, 2 )));
2634+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0ATPCtot" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0a, psiBTots, 2 )));
2635+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0MFV0A" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0m, psiFV0a, 2 )));
2636+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0MTPCpos" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0m, psiBPoss, 2 )));
2637+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0MTPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0m, psiBNegs, 2 )));
2638+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFT0MTPCtot" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFT0m, psiBTots, 2 )));
2639+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFV0ATPCpos" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFV0a, psiBPoss, 2 )));
2640+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFV0ATPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFV0a, psiBNegs, 2 )));
2641+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneFV0ATPCtot" ), centrality, std::cos (2 * getDeltaPsiInRange (psiFV0a, psiBTots, 2 )));
2642+ registry.fill (HIST (" resolEvPlane/hResolEvPlaneTPCposTPCneg" ), centrality, std::cos (2 * getDeltaPsiInRange (psiBPoss, psiBNegs, 2 )));
2643+ }
2644+ PROCESS_SWITCH (HfTaskCharmPolarisation, processResolEventPlane, " Process event-plane resolution" , false );
25822645};
25832646
25842647WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments