Skip to content

Commit 8ba1ce0

Browse files
committed
Add process function for EP resolution in charm polarisation task
1 parent 5bd304e commit 8ba1ce0

File tree

5 files changed

+352
-143
lines changed

5 files changed

+352
-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: 106 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,14 @@
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;
6265
using namespace o2::aod;
6366
using namespace o2::framework;
6467
using 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

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

25842647
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)