Skip to content

Commit 09161d6

Browse files
fchinualibuild
andauthored
PWGHF: Unify different partitions in Ds task (#8035)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent a718afc commit 09161d6

1 file changed

Lines changed: 24 additions & 39 deletions

File tree

PWGHF/D2H/Tasks/taskDs.cxx

Lines changed: 24 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ struct HfTaskDs {
7878

7979
HfHelper hfHelper;
8080

81-
using CentralityEstimator = o2::hf_centrality::CentralityEstimator;
8281
using TH1_ptr = std::shared_ptr<TH1>;
8382
using TH2_ptr = std::shared_ptr<TH2>;
8483
using THnSparse_ptr = std::shared_ptr<THnSparse>;
@@ -101,15 +100,8 @@ struct HfTaskDs {
101100
using CandDsMcRecoWithMl = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelDsToKKPi, aod::HfCand3ProngMcRec, aod::HfMlDsToKKPi>>;
102101
using CandDsMcGen = soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>;
103102

104-
Preslice<CandDsData> candDsDataPerCollision = aod::hf_cand::collisionId;
105-
Preslice<CandDsDataWithMl> candDsDataWithMlPerCollision = aod::hf_cand::collisionId;
106-
Preslice<CandDsMcReco> candDsMcRecoPerCollision = aod::hf_cand::collisionId;
107-
Preslice<CandDsMcRecoWithMl> candDsMcRecoWithMlPerCollision = aod::hf_cand::collisionId;
108-
109-
PresliceUnsorted<CollisionsMc> colPerMcCollision = aod::mccollisionlabel::mcCollisionId;
110-
PresliceUnsorted<CollisionsMcWithFT0C> colPerMcCollisionWithFT0C = aod::mccollisionlabel::mcCollisionId;
111-
PresliceUnsorted<CollisionsMcWithFT0M> colPerMcCollisionWithFT0M = aod::mccollisionlabel::mcCollisionId;
112-
PresliceUnsorted<CollisionsMcWithNTracksPV> colPerMcCollisionWithNTracksPV = aod::mccollisionlabel::mcCollisionId;
103+
Preslice<aod::HfCand3Prong> candDsPerCollision = aod::hf_cand::collisionId;
104+
PresliceUnsorted<aod::McCollisionLabels> colPerMcCollision = aod::mccollisionlabel::mcCollisionId;
113105
SliceCache cache;
114106

115107
int offsetDplusDecayChannel = aod::hf_cand_3prong::DecayChannelDToKKPi::DplusToPhiPi - aod::hf_cand_3prong::DecayChannelDToKKPi::DsToPhiPi; // Offset between Dplus and Ds to use the same decay channel. See aod::hf_cand_3prong::DecayChannelDToKKPi
@@ -128,12 +120,6 @@ struct HfTaskDs {
128120
std::unordered_map<std::string, histTypes> mcDplusBkgHistograms = {};
129121
std::unordered_map<std::string, histTypes> mcBkgHistograms = {};
130122

131-
std::map<CentralityEstimator, std::variant<PresliceUnsorted<CollisionsMc>, PresliceUnsorted<CollisionsMcWithFT0C>, PresliceUnsorted<CollisionsMcWithFT0M>, PresliceUnsorted<CollisionsMcWithNTracksPV>>> colPerMcCollisionMap{
132-
{CentralityEstimator::None, colPerMcCollision},
133-
{CentralityEstimator::FT0C, colPerMcCollisionWithFT0C},
134-
{CentralityEstimator::FT0M, colPerMcCollisionWithFT0M},
135-
{CentralityEstimator::NTracksPV, colPerMcCollisionWithNTracksPV}};
136-
137123
std::array<std::unordered_map<std::string, histTypes>, DataType::kDataTypes> histosPtr = {dataHistograms, mcDsPromptHistograms, mcDsNonPromptHistograms, mcDplusPromptHistograms, mcDplusNonPromptHistograms, mcDplusBkgHistograms, mcBkgHistograms};
138124

139125
void init(InitContext&)
@@ -511,7 +497,7 @@ struct HfTaskDs {
511497
// TODO: add histograms for reflections
512498
}
513499

514-
template <CentralityEstimator centDetector, typename Coll>
500+
template <typename Coll>
515501
void fillMcGenHistos(CandDsMcGen const& mcParticles,
516502
Coll const& recoCollisions)
517503
{
@@ -523,7 +509,7 @@ struct HfTaskDs {
523509
double y{0.f};
524510

525511
unsigned maxNumContrib = 0;
526-
const auto& recoCollsPerMcColl = recoCollisions.sliceBy(std::get<PresliceUnsorted<Coll>>(colPerMcCollisionMap.at(centDetector)), particle.mcCollision().globalIndex());
512+
const auto& recoCollsPerMcColl = recoCollisions.sliceBy(colPerMcCollision, particle.mcCollision().globalIndex());
527513
for (const auto& recCol : recoCollsPerMcColl) {
528514
maxNumContrib = recCol.numContrib() > maxNumContrib ? recCol.numContrib() : maxNumContrib;
529515
}
@@ -588,7 +574,7 @@ struct HfTaskDs {
588574
}
589575

590576
template <typename Coll, typename CandsDs>
591-
void runDataAnalysisPerCollision(const Coll& collisions, const CandsDs& candsDs, Preslice<CandsDs> candDsPerCollision)
577+
void runDataAnalysisPerCollision(const Coll& collisions, const CandsDs& candsDs)
592578
{
593579
for (const auto& collision : collisions) {
594580
auto thisCollId = collision.globalIndex();
@@ -615,11 +601,10 @@ struct HfTaskDs {
615601
}
616602
}
617603

618-
template <CentralityEstimator centDetector, typename Coll, typename CandsDs, typename CandDsMcGen>
604+
template <typename Coll, typename CandsDs, typename CandDsMcGen>
619605
void runMcAnalysisPerCollision(const Coll& collisions,
620606
const CandsDs& candsDs,
621-
const CandDsMcGen& mcParticles,
622-
Preslice<CandsDs> candDsPerCollision)
607+
const CandDsMcGen& mcParticles)
623608
{
624609
for (const auto& collision : collisions) {
625610
auto thisCollId = collision.globalIndex();
@@ -673,70 +658,70 @@ struct HfTaskDs {
673658
}
674659
fillNPvContribHisto(collision, nCandsPerType, nCandsInSignalRegionDsPerType, nCandsInSignalRegionDplusPerType);
675660
}
676-
fillMcGenHistos<centDetector>(mcParticles, collisions);
661+
fillMcGenHistos(mcParticles, collisions);
677662
}
678663

679664
void processDataWithCentFT0C(CollisionsWithFT0C const& collisions,
680665
CandDsData const& candsDs,
681666
aod::Tracks const&)
682667
{
683-
runDataAnalysisPerCollision(collisions, candsDs, candDsDataPerCollision);
668+
runDataAnalysisPerCollision(collisions, candsDs);
684669
}
685670
PROCESS_SWITCH(HfTaskDs, processDataWithCentFT0C, "Process data w/o ML information on Ds, with information on centrality from FT0C", false);
686671

687672
void processDataWithCentFT0M(CollisionsWithFT0M const& collisions,
688673
CandDsData const& candsDs,
689674
aod::Tracks const&)
690675
{
691-
runDataAnalysisPerCollision(collisions, candsDs, candDsDataPerCollision);
676+
runDataAnalysisPerCollision(collisions, candsDs);
692677
}
693678
PROCESS_SWITCH(HfTaskDs, processDataWithCentFT0M, "Process data w/o ML information on Ds, with information on centrality from FT0M", false);
694679

695680
void processDataWithCentNTracksPV(CollisionsWithNTracksPV const& collisions,
696681
CandDsData const& candsDs,
697682
aod::Tracks const&)
698683
{
699-
runDataAnalysisPerCollision(collisions, candsDs, candDsDataPerCollision);
684+
runDataAnalysisPerCollision(collisions, candsDs);
700685
}
701686
PROCESS_SWITCH(HfTaskDs, processDataWithCentNTracksPV, "Process data w/o ML information on Ds, with information on centrality from NTracksPV", false);
702687

703688
void processData(soa::Join<aod::Collisions, aod::EvSels> const& collisions,
704689
CandDsData const& candsDs,
705690
aod::Tracks const&)
706691
{
707-
runDataAnalysisPerCollision(collisions, candsDs, candDsDataPerCollision);
692+
runDataAnalysisPerCollision(collisions, candsDs);
708693
}
709694
PROCESS_SWITCH(HfTaskDs, processData, "Process data w/o ML information on Ds, w/o information on centrality", true);
710695

711696
void processDataWithMlAndCentFT0C(CollisionsWithFT0C const& collisions,
712697
CandDsDataWithMl const& candsDs,
713698
aod::Tracks const&)
714699
{
715-
runDataAnalysisPerCollision(collisions, candsDs, candDsDataWithMlPerCollision);
700+
runDataAnalysisPerCollision(collisions, candsDs);
716701
}
717702
PROCESS_SWITCH(HfTaskDs, processDataWithMlAndCentFT0C, "Process data with ML information on Ds, with information on centrality from FT0C", false);
718703

719704
void processDataWithMlAndCentFT0M(CollisionsWithFT0M const& collisions,
720705
CandDsDataWithMl const& candsDs,
721706
aod::Tracks const&)
722707
{
723-
runDataAnalysisPerCollision(collisions, candsDs, candDsDataWithMlPerCollision);
708+
runDataAnalysisPerCollision(collisions, candsDs);
724709
}
725710
PROCESS_SWITCH(HfTaskDs, processDataWithMlAndCentFT0M, "Process data with ML information on Ds, with information on centrality from FT0M", false);
726711

727712
void processDataWithMlAndCentNTracksPV(CollisionsWithNTracksPV const& collisions,
728713
CandDsDataWithMl const& candsDs,
729714
aod::Tracks const&)
730715
{
731-
runDataAnalysisPerCollision(collisions, candsDs, candDsDataWithMlPerCollision);
716+
runDataAnalysisPerCollision(collisions, candsDs);
732717
}
733718
PROCESS_SWITCH(HfTaskDs, processDataWithMlAndCentNTracksPV, "Process data with ML information on Ds, with information on centrality", false);
734719

735720
void processDataWithMl(soa::Join<aod::Collisions, aod::EvSels> const& collisions,
736721
CandDsDataWithMl const& candsDs,
737722
aod::Tracks const&)
738723
{
739-
runDataAnalysisPerCollision(collisions, candsDs, candDsDataWithMlPerCollision);
724+
runDataAnalysisPerCollision(collisions, candsDs);
740725
}
741726
PROCESS_SWITCH(HfTaskDs, processDataWithMl, "Process data with ML information on Ds, w/o information on centrality", false);
742727

@@ -746,7 +731,7 @@ struct HfTaskDs {
746731
aod::McCollisions const&,
747732
aod::TracksWMc const&)
748733
{
749-
runMcAnalysisPerCollision<CentralityEstimator::FT0C, CollisionsMcWithFT0C>(collisions, candsDs, mcParticles, candDsMcRecoPerCollision);
734+
runMcAnalysisPerCollision<CollisionsMcWithFT0C>(collisions, candsDs, mcParticles);
750735
}
751736
PROCESS_SWITCH(HfTaskDs, processMcWithCentFT0C, "Process MC w/o ML information on Ds, with information on centrality from FT0C", false);
752737

@@ -756,7 +741,7 @@ struct HfTaskDs {
756741
aod::McCollisions const&,
757742
aod::TracksWMc const&)
758743
{
759-
runMcAnalysisPerCollision<CentralityEstimator::FT0M, CollisionsMcWithFT0M>(collisions, candsDs, mcParticles, candDsMcRecoPerCollision);
744+
runMcAnalysisPerCollision<CollisionsMcWithFT0M>(collisions, candsDs, mcParticles);
760745
}
761746
PROCESS_SWITCH(HfTaskDs, processMcWithCentFT0M, "Process MC w/o ML information on Ds, with information on centrality from FT0M", false);
762747

@@ -766,7 +751,7 @@ struct HfTaskDs {
766751
aod::McCollisions const&,
767752
aod::TracksWMc const&)
768753
{
769-
runMcAnalysisPerCollision<CentralityEstimator::NTracksPV, CollisionsMcWithNTracksPV>(collisions, candsDs, mcParticles, candDsMcRecoPerCollision);
754+
runMcAnalysisPerCollision<CollisionsMcWithNTracksPV>(collisions, candsDs, mcParticles);
770755
}
771756
PROCESS_SWITCH(HfTaskDs, processMcWithCentNTracksPV, "Process MC w/o ML information on Ds, with information on centrality from NTracksPV", false);
772757

@@ -776,7 +761,7 @@ struct HfTaskDs {
776761
aod::McCollisions const&,
777762
aod::TracksWMc const&)
778763
{
779-
runMcAnalysisPerCollision<CentralityEstimator::None, CollisionsMc>(collisions, candsDs, mcParticles, candDsMcRecoPerCollision);
764+
runMcAnalysisPerCollision<CollisionsMc>(collisions, candsDs, mcParticles);
780765
}
781766
PROCESS_SWITCH(HfTaskDs, processMc, "Process MC w/o ML information on Ds, w/o information on centrality", false);
782767

@@ -786,7 +771,7 @@ struct HfTaskDs {
786771
aod::McCollisions const&,
787772
aod::TracksWMc const&)
788773
{
789-
runMcAnalysisPerCollision<CentralityEstimator::FT0C, CollisionsMcWithFT0C>(collisions, candsDs, mcParticles, candDsMcRecoWithMlPerCollision);
774+
runMcAnalysisPerCollision<CollisionsMcWithFT0C>(collisions, candsDs, mcParticles);
790775
}
791776
PROCESS_SWITCH(HfTaskDs, processMcWithMlAndCentFT0C, "Process MC with ML information on Ds, with information on centrality from FT0C", false);
792777

@@ -796,7 +781,7 @@ struct HfTaskDs {
796781
aod::McCollisions const&,
797782
aod::TracksWMc const&)
798783
{
799-
runMcAnalysisPerCollision<CentralityEstimator::FT0M, CollisionsMcWithFT0M>(collisions, candsDs, mcParticles, candDsMcRecoWithMlPerCollision);
784+
runMcAnalysisPerCollision<CollisionsMcWithFT0M>(collisions, candsDs, mcParticles);
800785
}
801786
PROCESS_SWITCH(HfTaskDs, processMcWithMlAndCentFT0M, "Process MC with ML information on Ds, with information on centrality from FT0M", false);
802787

@@ -806,7 +791,7 @@ struct HfTaskDs {
806791
aod::McCollisions const&,
807792
aod::TracksWMc const&)
808793
{
809-
runMcAnalysisPerCollision<CentralityEstimator::NTracksPV, CollisionsMcWithNTracksPV>(collisions, candsDs, mcParticles, candDsMcRecoWithMlPerCollision);
794+
runMcAnalysisPerCollision<CollisionsMcWithNTracksPV>(collisions, candsDs, mcParticles);
810795
}
811796
PROCESS_SWITCH(HfTaskDs, processMcWithMlAndCentNTracksPV, "Process MC with ML information on Ds, with information on centrality from NTracksPV", false);
812797

@@ -816,7 +801,7 @@ struct HfTaskDs {
816801
aod::McCollisions const&,
817802
aod::TracksWMc const&)
818803
{
819-
runMcAnalysisPerCollision<CentralityEstimator::None, CollisionsMc>(collisions, candsDs, mcParticles, candDsMcRecoWithMlPerCollision);
804+
runMcAnalysisPerCollision<CollisionsMc>(collisions, candsDs, mcParticles);
820805
}
821806
PROCESS_SWITCH(HfTaskDs, processMcWithMl, "Process MC with ML information on Ds, w/o information on centrality", false);
822807
};

0 commit comments

Comments
 (0)