|
17 | 17 | /// \author M. Faggin (CERN) mattia.faggin@cern.ch |
18 | 18 | /// \author M. Li (CCNU) mingze.li@cern.ch |
19 | 19 |
|
20 | | -#include <vector> |
| 20 | +#include "PWGHF/Core/CentralityEstimation.h" |
| 21 | +#include "PWGHF/Core/HfHelper.h" |
| 22 | +#include "PWGHF/DataModel/CandidateReconstructionTables.h" |
| 23 | +#include "PWGHF/DataModel/CandidateSelectionTables.h" |
21 | 24 |
|
22 | | -#include "TRandom3.h" |
23 | | -#include "Math/Vector3D.h" |
24 | | -#include "Math/Vector4D.h" |
25 | | -#include "Math/GenVector/Boost.h" |
| 25 | +#include "Common/Core/EventPlaneHelper.h" |
| 26 | +#include "Common/DataModel/Qvectors.h" |
26 | 27 |
|
27 | 28 | #include "Framework/AnalysisTask.h" |
28 | 29 | #include "Framework/HistogramRegistry.h" |
29 | 30 | #include "Framework/runDataProcessing.h" |
30 | 31 |
|
31 | | -#include "Common/Core/EventPlaneHelper.h" |
32 | | -#include "Common/DataModel/Qvectors.h" |
| 32 | +#include "Math/GenVector/Boost.h" |
| 33 | +#include "Math/Vector3D.h" |
| 34 | +#include "Math/Vector4D.h" |
| 35 | +#include "TRandom3.h" |
33 | 36 |
|
34 | | -#include "PWGHF/Core/CentralityEstimation.h" |
35 | | -#include "PWGHF/Core/HfHelper.h" |
36 | | -#include "PWGHF/DataModel/CandidateSelectionTables.h" |
37 | | -#include "PWGHF/DataModel/CandidateReconstructionTables.h" |
| 37 | +#include <vector> |
38 | 38 |
|
39 | 39 | using namespace o2; |
40 | 40 | using namespace o2::aod; |
@@ -577,33 +577,33 @@ struct TaskPolarisationCharmHadrons { |
577 | 577 | } |
578 | 578 | } |
579 | 579 | } else if (doprocessDstarWithMlInPbPb || doprocessDstarMcWithMlInPbPb) { |
580 | | - if (doprocessDstarWithMlInPbPb) { |
581 | | - /// analysis for D*+ meson in Pb-Pb collisions, w/o rot. background axis |
582 | | - if (activateTHnSparseCosThStarHelicity) { |
583 | | - registry.add("hHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis and BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisIsRotatedCandidate}); |
584 | | - } |
585 | | - if (activateTHnSparseCosThStarEP) { |
586 | | - registry.add("hEP", "THn for polarisation studies with cosThStar w.r.t. EP axis and BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisIsRotatedCandidate}); |
587 | | - } |
588 | | - } else { |
589 | | - /// analysis for D*+ meson in Pb-Pb collisions, w/o rot. background axis |
590 | | - if (activateTHnSparseCosThStarHelicity) { |
591 | | - registry.add("hRecoPromptHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis -- reco prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons}); |
592 | | - registry.add("hRecoNonPromptHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis -- reco non-prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons, thnAxisPtB}); |
593 | | - if (activatePartRecoDstar) { |
594 | | - registry.add("hPartRecoPromptHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis -- partially reco prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons}); |
595 | | - registry.add("hPartRecoNonPromptHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis -- partially reco non-prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons, thnAxisPtB}); |
596 | | - } |
| 580 | + if (doprocessDstarWithMlInPbPb) { |
| 581 | + /// analysis for D*+ meson in Pb-Pb collisions, w/o rot. background axis |
| 582 | + if (activateTHnSparseCosThStarHelicity) { |
| 583 | + registry.add("hHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis and BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisIsRotatedCandidate}); |
| 584 | + } |
| 585 | + if (activateTHnSparseCosThStarEP) { |
| 586 | + registry.add("hEP", "THn for polarisation studies with cosThStar w.r.t. EP axis and BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisIsRotatedCandidate}); |
| 587 | + } |
| 588 | + } else { |
| 589 | + /// analysis for D*+ meson in Pb-Pb collisions, w/o rot. background axis |
| 590 | + if (activateTHnSparseCosThStarHelicity) { |
| 591 | + registry.add("hRecoPromptHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis -- reco prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons}); |
| 592 | + registry.add("hRecoNonPromptHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis -- reco non-prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons, thnAxisPtB}); |
| 593 | + if (activatePartRecoDstar) { |
| 594 | + registry.add("hPartRecoPromptHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis -- partially reco prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons}); |
| 595 | + registry.add("hPartRecoNonPromptHelicity", "THn for polarisation studies with cosThStar w.r.t. helicity axis -- partially reco non-prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarHelicity, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons, thnAxisPtB}); |
597 | 596 | } |
598 | | - if (activateTHnSparseCosThStarEP) { |
599 | | - registry.add("hRecoPromptEP", "THn for polarisation studies with cosThStar w.r.t. EP axis -- reco prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons}); |
600 | | - registry.add("hRecoNonPromptEP", "THn for polarisation studies with cosThStar w.r.t. EP axis -- reco non-prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons, thnAxisPtB}); |
601 | | - if (activatePartRecoDstar) { |
602 | | - registry.add("hPartRecoPromptEP", "THn for polarisation studies with cosThStar w.r.t. EP axis -- partially reco prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons}); |
603 | | - registry.add("hPartRecoNonPromptEP", "THn for polarisation studies with cosThStar w.r.t. EP axis -- partially reco non-prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons, thnAxisPtB}); |
604 | | - } |
| 597 | + } |
| 598 | + if (activateTHnSparseCosThStarEP) { |
| 599 | + registry.add("hRecoPromptEP", "THn for polarisation studies with cosThStar w.r.t. EP axis -- reco prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons}); |
| 600 | + registry.add("hRecoNonPromptEP", "THn for polarisation studies with cosThStar w.r.t. EP axis -- reco non-prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons, thnAxisPtB}); |
| 601 | + if (activatePartRecoDstar) { |
| 602 | + registry.add("hPartRecoPromptEP", "THn for polarisation studies with cosThStar w.r.t. EP axis -- partially reco prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons}); |
| 603 | + registry.add("hPartRecoNonPromptEP", "THn for polarisation studies with cosThStar w.r.t. EP axis -- partially reco non-prompt signal in Pb-Pb with BDT scores", HistType::kTHnSparseF, {thnAxisInvMass, thnAxisPt, thnAxisNumPvContributors, thnAxisY, thnAxisInvMassD0, thnAxisCosThetaStarEP, thnAxisMlBkg, thnAxisMlNonPrompt, thnAxisAbsEtaTrackMin, thnAxisNumItsClsMin, thnAxisNumTpcClsMin, thnAxisDauToMuons, thnAxisPtB}); |
605 | 604 | } |
606 | 605 | } |
| 606 | + } |
607 | 607 | } |
608 | 608 |
|
609 | 609 | // MC Gen histos |
@@ -998,7 +998,7 @@ struct TaskPolarisationCharmHadrons { |
998 | 998 | registry.fill(HIST("hEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, outputMl[0], /*outputMl[1],*/ outputMl[2], absEtaMin, numItsClsMin, numTpcClsMin, isRotatedCandidate); |
999 | 999 | } |
1000 | 1000 | } else { |
1001 | | - if constexpr (channel == charm_polarisation::DecayChannel::DstarToDzeroPi) { // D*+ |
| 1001 | + if constexpr (channel == charm_polarisation::DecayChannel::DstarToDzeroPi) { // D*+ |
1002 | 1002 | registry.fill(HIST("hEP"), invMassCharmHad, ptCharmHad, numPvContributors, std::abs(rapCharmHad), invMassD0, cosThetaStar, absEtaMin, numItsClsMin, numTpcClsMin, isRotatedCandidate); |
1003 | 1003 | } |
1004 | 1004 | } |
@@ -1095,7 +1095,7 @@ struct TaskPolarisationCharmHadrons { |
1095 | 1095 | } |
1096 | 1096 | } |
1097 | 1097 | } else if constexpr (cosThetaStarType == charm_polarisation::CosThetaStarType::EP) { // EP |
1098 | | - if (origin == RecoDecay::OriginType::Prompt) { // prompt |
| 1098 | + if (origin == RecoDecay::OriginType::Prompt) { // prompt |
1099 | 1099 | if (!isPartRecoDstar) { |
1100 | 1100 | registry.fill(HIST("hGenPromptEP"), ptCharmHad, numPvContributors, rapCharmHad, cosThetaStar, areDausInAcc, resoChannelLc, charge); |
1101 | 1101 | } else { |
@@ -1265,7 +1265,7 @@ struct TaskPolarisationCharmHadrons { |
1265 | 1265 | bool runPolarisationAnalysis(Cand const& candidate, int bkgRotationId, int numPvContributors, Part const& particles, Trk const& /*tracks*/, EPPhi const* epPhi = nullptr) |
1266 | 1266 | { |
1267 | 1267 | if constexpr (withEP) { |
1268 | | - assert(epPhi && "EP analysis requested but epPhi == nullptr"); |
| 1268 | + assert(epPhi && "EP analysis requested but epPhi == nullptr"); |
1269 | 1269 | } |
1270 | 1270 | bool isCandidateInSignalRegion{false}; |
1271 | 1271 | int8_t origin{RecoDecay::OriginType::None}; |
@@ -1806,7 +1806,7 @@ struct TaskPolarisationCharmHadrons { |
1806 | 1806 | void runMcGenPolarisationAnalysis(Part const& mcParticle, Particles const& mcParticles, int numPvContributors, EPPhi const* epPhi = nullptr) |
1807 | 1807 | { |
1808 | 1808 | if constexpr (withEP) { |
1809 | | - assert(epPhi && "EP analysis requested but epPhi == nullptr"); |
| 1809 | + assert(epPhi && "EP analysis requested but epPhi == nullptr"); |
1810 | 1810 | } |
1811 | 1811 | int8_t origin{RecoDecay::OriginType::None}; |
1812 | 1812 | std::vector<int> listDaughters{}; |
@@ -2090,8 +2090,8 @@ struct TaskPolarisationCharmHadrons { |
2090 | 2090 | PROCESS_SWITCH(TaskPolarisationCharmHadrons, processDstarInPbPb, "Process Dstar candidates in PbPb collisions", false); |
2091 | 2091 |
|
2092 | 2092 | void processDstarWithMlInPbPb(CollsWithQvecs::iterator const& collision, |
2093 | | - FilteredCandDstarWSelFlagAndMl const& dstarCandidates, |
2094 | | - TracksWithExtra const& tracks) |
| 2093 | + FilteredCandDstarWSelFlagAndMl const& dstarCandidates, |
| 2094 | + TracksWithExtra const& tracks) |
2095 | 2095 | { |
2096 | 2096 | float centrality = {-1.f}; |
2097 | 2097 | centrality = o2::hf_centrality::getCentralityColl(collision, centEstimator); |
@@ -2163,10 +2163,10 @@ struct TaskPolarisationCharmHadrons { |
2163 | 2163 | PROCESS_SWITCH(TaskPolarisationCharmHadrons, processDstarMcInPbPb, "Process Dstar candidates in PbPb MC without ML", false); |
2164 | 2164 |
|
2165 | 2165 | void processDstarMcWithMlInPbPb(GenCollisWithQvecs::iterator const& collision, |
2166 | | - McParticlesDstarMatched const& mcParticles, |
2167 | | - CollsWithQvecsWithMcLabels const& collisions, // this is grouped with SmallGroupsCollisionsWithMcLabels const& collisions, |
2168 | | - FilteredCandDstarWSelFlagAndMcAndMl const& dstarCandidates, |
2169 | | - TracksWithExtra const& tracks) |
| 2166 | + McParticlesDstarMatched const& mcParticles, |
| 2167 | + CollsWithQvecsWithMcLabels const& collisions, // this is grouped with SmallGroupsCollisionsWithMcLabels const& collisions, |
| 2168 | + FilteredCandDstarWSelFlagAndMcAndMl const& dstarCandidates, |
| 2169 | + TracksWithExtra const& tracks) |
2170 | 2170 | { |
2171 | 2171 | float centrality = {-1.f}; |
2172 | 2172 | centrality = o2::hf_centrality::getCentralityColl(collision, centEstimator); |
@@ -2205,7 +2205,6 @@ struct TaskPolarisationCharmHadrons { |
2205 | 2205 | } |
2206 | 2206 | PROCESS_SWITCH(TaskPolarisationCharmHadrons, processDstarMcWithMlInPbPb, "Process Dstar candidates in PbPb MC with ML", false); |
2207 | 2207 |
|
2208 | | - |
2209 | 2208 | //////////////////////////// |
2210 | 2209 | // Lc->pKpi analysis /// |
2211 | 2210 | //////////////////////////// |
|
0 commit comments