Skip to content

Commit 90ab5fe

Browse files
fgrosaalibuild
andauthored
[PWGHF] Add process function for EP resolution in charm polarisation task (#14105)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 525b770 commit 90ab5fe

File tree

5 files changed

+351
-143
lines changed

5 files changed

+351
-143
lines changed

PWGHF/D2H/Tasks/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ o2physics_add_dpl_workflow(task-cd
5656

5757
o2physics_add_dpl_workflow(task-charm-polarisation
5858
SOURCES taskCharmPolarisation.cxx
59-
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
59+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::EventFilteringUtils
6060
COMPONENT_NAME Analysis)
6161

6262
o2physics_add_dpl_workflow(task-charm-reso-to-d-v0-reduced

PWGHF/D2H/Tasks/taskCharmPolarisation.cxx

Lines changed: 105 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,10 @@
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;
6264
using namespace o2::aod;
6365
using namespace o2::framework;
6466
using 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

6671
namespace 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, &cent);
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, &cent);
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

25842646
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)