1616// / \author Zhen Zhang <zhenz@cern.ch>
1717// / \author Ravindra Singh <ravindra.singh@cern.ch>
1818
19- #include < vector>
20- #include " TRandom3.h"
21-
22- #include " CommonConstants/PhysicsConstants.h"
23- #include " Framework/AnalysisTask.h"
24- #include " Framework/HistogramRegistry.h"
25- #include " Framework/O2DatabasePDGPlugin.h"
26- #include " Framework/runDataProcessing.h"
19+ #include " PWGHF/Core/CentralityEstimation.h"
20+ #include " PWGHF/Core/HfHelper.h"
21+ #include " PWGHF/Core/SelectorCuts.h"
22+ #include " PWGHF/DataModel/CandidateReconstructionTables.h"
23+ #include " PWGHF/DataModel/CandidateSelectionTables.h"
24+ #include " PWGHF/HFC/DataModel/CorrelationTables.h"
25+ #include " PWGHF/HFC/Utils/utilsCorrelations.h"
2726
2827#include " Common/Core/TrackSelection.h"
2928#include " Common/DataModel/Centrality.h"
3029#include " Common/DataModel/EventSelection.h"
3130#include " Common/DataModel/Multiplicity.h"
3231#include " Common/DataModel/TrackSelectionTables.h"
3332
34- #include " PWGHF/Core/HfHelper.h"
35- #include " PWGHF/Core/SelectorCuts.h"
36- #include " PWGHF/DataModel/CandidateReconstructionTables.h"
37- #include " PWGHF/DataModel/CandidateSelectionTables.h"
38- #include " PWGHF/HFC/DataModel/CorrelationTables.h"
39- #include " PWGHF/HFC/Utils/utilsCorrelations.h"
33+ #include " CommonConstants/PhysicsConstants.h"
34+ #include " Framework/AnalysisTask.h"
35+ #include " Framework/HistogramRegistry.h"
36+ #include " Framework/O2DatabasePDGPlugin.h"
37+ #include " Framework/runDataProcessing.h"
4038
41- #include " PWGHF/Core/CentralityEstimation.h"
39+ #include " TRandom3.h"
40+
41+ #include < vector>
4242
4343using namespace o2 ;
4444using namespace o2 ::analysis;
@@ -73,7 +73,7 @@ struct HfCorrelatorLcHadronsSelection {
7373 Configurable<float > yCandMax{" yCandMax" , 0.8 , " max. cand. rapidity" };
7474 Configurable<float > ptCandMin{" ptCandMin" , 1 ., " min. cand. pT" };
7575 Configurable<float > centMin{" centMin" , 0 ., " Minimum Centrality" };
76- Configurable<float > centMax{" centMax" , 100 .," Maximum Centrality" };
76+ Configurable<float > centMax{" centMax" , 100 ., " Maximum Centrality" };
7777
7878 HfHelper hfHelper;
7979 SliceCache cache;
@@ -82,7 +82,6 @@ struct HfCorrelatorLcHadronsSelection {
8282 using CandidatesLcData = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelLc>>;
8383 using CandidatesLcMcRec = soa::Filtered<soa::Join<aod::HfCand3Prong, aod::HfSelLc, aod::HfCand3ProngMcRec>>;
8484 using CandidatesLcMcGen = soa::Join<aod::McParticles, aod::HfCand3ProngMcGen>;
85-
8685
8786 // filter on selection of Lc and decay channel Lc->PKPi
8887 Filter lcFilter = ((o2::aod::hf_track_index::hfflag & static_cast <uint8_t >(1 << aod::hf_cand_3prong::DecayType::LcToPKPi)) != static_cast <uint8_t >(0 )) && (aod::hf_sel_candidate_lc::isSelLcToPKPi >= selectionFlagLc || aod::hf_sel_candidate_lc::isSelLcToPiKP >= selectionFlagLc);
@@ -113,16 +112,16 @@ struct HfCorrelatorLcHadronsSelection {
113112 }
114113 }
115114
116- float cent= evaluateCentralityColl (collision);
117-
115+ float cent = evaluateCentralityColl (collision);
116+
118117 if (useSel8) {
119118 isSel8 = collision.sel8 ();
120119 }
121120 if (selNoSameBunchPileUpColl) {
122121 isNosameBunchPileUp = static_cast <bool >(collision.selection_bit (o2::aod::evsel::kNoSameBunchPileup ));
123122 }
124-
125- isCentInRange = (cent >= centMin && cent < centMax);
123+
124+ isCentInRange = (cent >= centMin && cent < centMax);
126125 isSelColl = isLcFound && isSel8 && isNosameBunchPileUp && isCentInRange;
127126 lcSel (isSelColl);
128127 }
@@ -266,8 +265,6 @@ struct HfCorrelatorLcHadrons {
266265 ConfigurableAxis binsMultFT0M{" binsMultFT0M" , {600 , 0 ., 6000 .}, " Multiplicity as FT0M signal amplitude" };
267266 ConfigurableAxis binsMassLc{" binsMassLc" , {200 , 1.98 , 2.58 }, " inv. mass (p K #pi) (GeV/#it{c}^{2})" };
268267 ConfigurableAxis binsCentFT0M{" binsCentFT0M" , {100 , 0 ., 100 .}, " Centrality percentile (FT0M)" };
269-
270-
271268
272269 BinningType corrBinning{{binsZVtx, binsMultiplicity}, true };
273270
@@ -287,7 +284,7 @@ struct HfCorrelatorLcHadrons {
287284 AxisSpec axisPoolBin = {binsPoolBin, " PoolBin" };
288285 AxisSpec axisRapidity = {100 , -2 , 2 , " Rapidity" };
289286 AxisSpec axisSign = {2 , -1 , 1 , " Sign" };
290- AxisSpec axisCent = {binsCentFT0M," Centrality" };
287+ AxisSpec axisCent = {binsCentFT0M, " Centrality" };
291288
292289 registry.add (" hPtCand" , " Lc,Hadron candidates;candidate #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1F , {axisPtLc}});
293290 registry.add (" hPtProng0" , " Lc,Hadron candidates;prong 0 #it{p}_{T} (GeV/#it{c});entries" , {HistType::kTH1F , {axisPtLc}});
@@ -303,14 +300,13 @@ struct HfCorrelatorLcHadrons {
303300 registry.add (" hMultiplicity" , " multiplicity;multiplicity;entries" , {HistType::kTH1F , {{10000 , 0 ., 10000 .}}});
304301 registry.add (" hMultFT0M" , " multiplicity;multiplicity;entries" , {HistType::kTH1F , {{10000 , 0 ., 10000 .}}});
305302 registry.add (" hZvtx" , " z vertex;z vertex;entries" , {HistType::kTH1F , {{200 , -20 ., 20 .}}});
306- registry.add (" hCentFT0M" ," Centrality FT0M; Centrality;entries" , {HistType::kTH1F , {{100 , 0 ., 100 .}}});
303+ registry.add (" hCentFT0M" , " Centrality FT0M; Centrality;entries" , {HistType::kTH1F , {{100 , 0 ., 100 .}}});
307304 registry.add (" hLcBin" , " Lc selected in pool Bin;pool Bin;entries" , {HistType::kTH1F , {{9 , 0 ., 9 .}}});
308305 registry.add (" hTracksBin" , " Tracks selected in pool Bin;pool Bin;entries" , {HistType::kTH1F , {{9 , 0 ., 9 .}}});
309- if (isMultiplicityDependent) {
310- registry.add (" hMassLcVsPtvsmult" , " Lc candidates;inv. mass (p K #pi) (GeV/#it{c}^{2});entries" , {HistType::kTH3F , {{axisMassLc}, {axisPtLc}, {axisCent}}});
311- }
312- else {
313- registry.add (" hMassLcVsPt" , " Lc candidates;inv. mass (p K #pi) (GeV/#it{c}^{2});entries" , {HistType::kTH2F , {{axisMassLc}, {axisPtLc}}});
306+ if (isMultiplicityDependent) {
307+ registry.add (" hMassLcVsPtvsmult" , " Lc candidates;inv. mass (p K #pi) (GeV/#it{c}^{2});entries" , {HistType::kTH3F , {{axisMassLc}, {axisPtLc}, {axisCent}}});
308+ } else {
309+ registry.add (" hMassLcVsPt" , " Lc candidates;inv. mass (p K #pi) (GeV/#it{c}^{2});entries" , {HistType::kTH2F , {{axisMassLc}, {axisPtLc}}});
314310 }
315311 registry.add (" hMassLcData" , " Lc candidates;inv. mass (p K #pi) (GeV/#it{c}^{2});entries" , {HistType::kTH1F , {{axisMassLc}}});
316312 registry.add (" hLcPoolBin" , " Lc candidates pool bin" , {HistType::kTH1F , {axisPoolBin}});
@@ -357,7 +353,6 @@ struct HfCorrelatorLcHadrons {
357353 corrBinning = {{binsZVtx, binsMultiplicity}, true };
358354 }
359355
360-
361356 template <typename Coll>
362357 float evaluateCentralityColl (const Coll& collision)
363358 {
@@ -388,7 +383,7 @@ struct HfCorrelatorLcHadrons {
388383 int gCollisionId = collision.globalIndex ();
389384 int64_t timeStamp = bc.timestamp ();
390385
391- float cent= evaluateCentralityColl (collision);
386+ float cent = evaluateCentralityColl (collision);
392387
393388 int poolBin = corrBinning.getBin (std::make_tuple (collision.posZ (), collision.multFT0M ()));
394389 int nTracks = 0 ;
@@ -428,13 +423,12 @@ struct HfCorrelatorLcHadrons {
428423 registry.fill (HIST (" hPhi" ), RecoDecay::constrainAngle (candidate.phi (), -PIHalf));
429424 registry.fill (HIST (" hY" ), hfHelper.yLc (candidate));
430425 registry.fill (HIST (" hLcBin" ), poolBin);
431-
426+
432427 if (candidate.isSelLcToPKPi () >= selectionFlagLc) {
433- if (isMultiplicityDependent) {
434- registry.fill (HIST (" hMassLcVsPtvsmult" ), hfHelper.invMassLcToPKPi (candidate), candidate.pt (), cent, efficiencyWeightLc);
435- }
436- else {
437- registry.fill (HIST (" hMassLcVsPt" ), hfHelper.invMassLcToPKPi (candidate), candidate.pt (), cent, efficiencyWeightLc);
428+ if (isMultiplicityDependent) {
429+ registry.fill (HIST (" hMassLcVsPtvsmult" ), hfHelper.invMassLcToPKPi (candidate), candidate.pt (), cent, efficiencyWeightLc);
430+ } else {
431+ registry.fill (HIST (" hMassLcVsPt" ), hfHelper.invMassLcToPKPi (candidate), candidate.pt (), cent, efficiencyWeightLc);
438432 }
439433 registry.fill (HIST (" hMassLcData" ), hfHelper.invMassLcToPKPi (candidate), efficiencyWeightLc);
440434 registry.fill (HIST (" hSelectionStatusLcToPKPi" ), candidate.isSelLcToPKPi ());
@@ -445,11 +439,10 @@ struct HfCorrelatorLcHadrons {
445439 entryLc (candidate.phi (), candidate.eta (), candidate.pt () * chargeLc, hfHelper.invMassLcToPKPi (candidate), poolBin, gCollisionId , timeStamp);
446440 }
447441 if (candidate.isSelLcToPiKP () >= selectionFlagLc) {
448- if (isMultiplicityDependent) {
449- registry.fill (HIST (" hMassLcVsPtvsmult" ), hfHelper.invMassLcToPKPi (candidate), candidate.pt (), cent, efficiencyWeightLc);
450- }
451- else {
452- registry.fill (HIST (" hMassLcVsPt" ), hfHelper.invMassLcToPKPi (candidate), candidate.pt (), cent, efficiencyWeightLc);
442+ if (isMultiplicityDependent) {
443+ registry.fill (HIST (" hMassLcVsPtvsmult" ), hfHelper.invMassLcToPKPi (candidate), candidate.pt (), cent, efficiencyWeightLc);
444+ } else {
445+ registry.fill (HIST (" hMassLcVsPt" ), hfHelper.invMassLcToPKPi (candidate), candidate.pt (), cent, efficiencyWeightLc);
453446 }
454447 registry.fill (HIST (" hMassLcData" ), hfHelper.invMassLcToPiKP (candidate), efficiencyWeightLc);
455448 registry.fill (HIST (" hSelectionStatusLcToPiKP" ), candidate.isSelLcToPiKP ());
@@ -491,7 +484,7 @@ struct HfCorrelatorLcHadrons {
491484 track.pt () * track.sign (),
492485 poolBin,
493486 correlationStatus,
494- cent);
487+ cent);
495488 entryLcHadronPairY (track.y () - hfHelper.yLc (candidate));
496489 entryLcHadronRecoInfo (hfHelper.invMassLcToPKPi (candidate), false );
497490 entryLcHadronGenInfo (false , false , 0 );
@@ -508,7 +501,7 @@ struct HfCorrelatorLcHadrons {
508501 track.pt () * track.sign (),
509502 poolBin,
510503 correlationStatus,
511- cent);
504+ cent);
512505 entryLcHadronPairY (track.y () - hfHelper.yLc (candidate));
513506 entryLcHadronRecoInfo (hfHelper.invMassLcToPiKP (candidate), false );
514507 entryLcHadronGenInfo (false , false , 0 );
@@ -697,7 +690,7 @@ struct HfCorrelatorLcHadrons {
697690 }
698691 // }
699692 }
700- double_t cent =100.0 ; // will be updated later
693+ double_t cent = 100.0 ; // will be updated later
701694
702695 // Lc-Hadron correlation dedicated section
703696 // if the candidate is selected as Lc, search for Hadron ad evaluate correlations
@@ -944,8 +937,8 @@ struct HfCorrelatorLcHadrons {
944937
945938 auto trackPos1 = trigLc.template prong0_as <TracksData>(); // positive daughter (negative for the antiparticles)
946939 int8_t chargeLc = trackPos1.sign (); // charge of 1st prong will be the charge of Lc candidate
947-
948- double_t cent =100.0 ; // will be updated later
940+
941+ double_t cent = 100.0 ; // will be updated later
949942
950943 std::vector<float > outputMl = {-1 ., -1 ., -1 .};
951944 // LcToPKPi and LcToPiKP division
@@ -1036,15 +1029,15 @@ struct HfCorrelatorLcHadrons {
10361029 }
10371030 auto tracksTuple = std::make_tuple (candidates, tracks);
10381031 Pair<SelCollisionsWithLc, CandidatesLcMcRec, TracksWithMc, BinningType> pairMcRec{corrBinning, numberEventsMixed, -1 , collisions, tracksTuple, &cache};
1039-
1032+
10401033 for (const auto & [c1, tracks1, c2, tracks2] : pairMcRec) {
10411034 int poolBin = corrBinning.getBin (std::make_tuple (c2.posZ (), c2.multFT0M ()));
10421035 int poolBinLc = corrBinning.getBin (std::make_tuple (c1.posZ (), c1.multFT0M ()));
10431036 registry.fill (HIST (" hMultFT0M" ), c1.multFT0M ());
10441037 registry.fill (HIST (" hZvtx" ), c1.posZ ());
10451038 registry.fill (HIST (" hTracksPoolBin" ), poolBin);
10461039 registry.fill (HIST (" hLcPoolBin" ), poolBinLc);
1047- double_t cent =100.0 ; // will be updated later
1040+ double_t cent = 100.0 ; // will be updated later
10481041 for (const auto & [candidate, pAssoc] : o2::soa::combinations (o2::soa::CombinationsFullIndexPolicy (tracks1, tracks2))) {
10491042 if (std::abs (hfHelper.yLc (candidate)) > yCandMax || candidate.pt () < ptCandMin || candidate.pt () > ptCandMax) {
10501043 continue ;
@@ -1146,7 +1139,7 @@ struct HfCorrelatorLcHadrons {
11461139 }
11471140 int8_t chargeLc = pdg->GetParticle (candidate.pdgCode ())->Charge (); // Retrieve charge
11481141 int8_t chargeAssoc = pdg->GetParticle (particleAssoc.pdgCode ())->Charge (); // Retrieve charge
1149- double_t cent =100.0 ; // will be updated later
1142+ double_t cent = 100.0 ; // will be updated later
11501143
11511144 int trackOrigin = RecoDecay::getCharmHadronOrigin (mcParticles, particleAssoc, true );
11521145 bool isLcPrompt = candidate.originMcGen () == RecoDecay::OriginType::Prompt;
0 commit comments