Skip to content

Commit 3ad41db

Browse files
authored
[PWGHF] Add processes to select Sc collisions. Fix rapidity bug for proton. (#11678)
1 parent a012c2b commit 3ad41db

File tree

3 files changed

+334
-187
lines changed

3 files changed

+334
-187
lines changed

PWGHF/HFC/TableProducer/correlatorLcHadrons.cxx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ struct HfCorrelatorLcHadrons {
211211
Service<o2::framework::O2DatabasePDG> pdg;
212212
int leadingIndex = 0;
213213
bool correlationStatus = false;
214-
static constexpr size_t nDaughters{3u};
214+
static constexpr std::size_t NDaughters{3u};
215215
TRandom3* rnd = new TRandom3(0);
216216

217217
// Event Mixing for the Data Mode
@@ -232,8 +232,10 @@ struct HfCorrelatorLcHadrons {
232232
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);
233233
Filter trackFilter = (nabs(aod::track::eta) < etaTrackMax) && (nabs(aod::track::pt) > ptTrackMin) && (nabs(aod::track::dcaXY) < dcaXYTrackMax) && (nabs(aod::track::dcaZ) < dcaZTrackMax);
234234

235-
// Preslice<aod::McParticles> perTrueCollision = o2::aod::mcparticle::McCollisionId;
236235
Preslice<aod::McParticles> perTrueCollision = o2::aod::mcparticle::mcCollisionId;
236+
Preslice<aod::Tracks> perCollisionID = aod::track::collisionId;
237+
Preslice<aod::HfCand3Prong> cand3ProngPerCol = aod::hf_cand::collisionId;
238+
237239
// configurable axis definition
238240
ConfigurableAxis binsMultiplicity{"binsMultiplicity", {VARIABLE_WIDTH, 0.0f, 2000.0f, 6000.0f, 100000.0f}, "Mixing bins - multiplicity"};
239241
ConfigurableAxis binsZVtx{"binsZVtx", {VARIABLE_WIDTH, -10.0f, -2.5f, 2.5f, 10.0f}, "Mixing bins - z-vertex"};
@@ -441,7 +443,7 @@ struct HfCorrelatorLcHadrons {
441443
track.pt() * track.sign(),
442444
poolBin,
443445
correlationStatus);
444-
entryLcHadronPairY(track.y() - hfHelper.yLc(candidate));
446+
entryLcHadronPairY(track.rapidity(MassProton) - hfHelper.yLc(candidate)); // only for proton as of now
445447
entryLcHadronRecoInfo(hfHelper.invMassLcToPKPi(candidate), false);
446448
entryLcHadronGenInfo(false, false, 0);
447449
entryLcHadronMlInfo(outputMl[0], outputMl[1]);
@@ -457,7 +459,7 @@ struct HfCorrelatorLcHadrons {
457459
track.pt() * track.sign(),
458460
poolBin,
459461
correlationStatus);
460-
entryLcHadronPairY(track.y() - hfHelper.yLc(candidate));
462+
entryLcHadronPairY(track.rapidity(MassProton) - hfHelper.yLc(candidate)); // only for proton as of now
461463
entryLcHadronRecoInfo(hfHelper.invMassLcToPiKP(candidate), false);
462464
entryLcHadronGenInfo(false, false, 0);
463465
entryLcHadronMlInfo(outputMl[0], outputMl[1]);
@@ -694,7 +696,7 @@ struct HfCorrelatorLcHadrons {
694696
track.pt() * track.sign(),
695697
poolBin,
696698
correlationStatus);
697-
entryLcHadronPairY(track.y() - hfHelper.yLc(candidate));
699+
entryLcHadronPairY(track.rapidity(MassProton) - hfHelper.yLc(candidate)); // only for proton as of now
698700
entryLcHadronRecoInfo(hfHelper.invMassLcToPKPi(candidate), isLcSignal);
699701
if (fillTrkPID) {
700702
entryLcHadronPairTrkPID(track.tpcNSigmaPr(), track.tpcNSigmaKa(), track.tpcNSigmaPi(), track.tofNSigmaPr(), track.tofNSigmaKa(), track.tofNSigmaPi());
@@ -724,7 +726,7 @@ struct HfCorrelatorLcHadrons {
724726
track.pt() * track.sign(),
725727
poolBin,
726728
correlationStatus);
727-
entryLcHadronPairY(track.y() - hfHelper.yLc(candidate));
729+
entryLcHadronPairY(track.rapidity(MassProton) - hfHelper.yLc(candidate)); // only for proton as of now
728730
entryLcHadronRecoInfo(hfHelper.invMassLcToPiKP(candidate), isLcSignal);
729731
if (fillTrkPID) {
730732
entryLcHadronPairTrkPID(track.tpcNSigmaPr(), track.tpcNSigmaKa(), track.tpcNSigmaPi(), track.tofNSigmaPr(), track.tofNSigmaKa(), track.tofNSigmaPi());
@@ -801,12 +803,12 @@ struct HfCorrelatorLcHadrons {
801803

802804
// prompt and non-prompt division
803805
std::vector<int> listDaughters{};
804-
std::array<int, nDaughters> arrDaughLcPDG = {kProton, -kKPlus, kPiPlus};
805-
std::array<int, nDaughters> prongsId;
806+
std::array<int, NDaughters> arrDaughLcPDG = {kProton, -kKPlus, kPiPlus};
807+
std::array<int, NDaughters> prongsId;
806808
listDaughters.clear();
807809
RecoDecay::getDaughters(particle, &listDaughters, arrDaughLcPDG, 2);
808810
int counterDaughters = 0;
809-
if (listDaughters.size() == nDaughters) {
811+
if (listDaughters.size() == NDaughters) {
810812
for (const auto& dauIdx : listDaughters) {
811813
auto daughI = mcParticles.rawIteratorAt(dauIdx - mcParticles.offset());
812814
counterDaughters += 1;

0 commit comments

Comments
 (0)