Skip to content

Commit e7b802a

Browse files
EloviyoShirajum Monira
andauthored
[PWGCF] FemtoUniverse cascade task -- implemented pair cleaner for cascade-cascade combination (#9449)
Co-authored-by: Shirajum Monira <shirajum.monira@cernch>
1 parent 0cd934c commit e7b802a

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

PWGCF/FemtoUniverse/Core/FemtoUniversePairCleaner.h

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
/// \author Andi Mathis, TU München, andreas.mathis@ph.tum.de
1515
/// \author Laura Serksnyte, TU München,laura.serksnyte@cern.ch
1616
/// \author Zuzanna Chochulska, WUT Warsaw & CTU Prague, zchochul@cern.ch
17+
/// \author Shirajum Monira, WUT Warsaw, shirajum.monira@cern.ch
1718

1819
#ifndef PWGCF_FEMTOUNIVERSE_CORE_FEMTOUNIVERSEPAIRCLEANER_H_
1920
#define PWGCF_FEMTOUNIVERSE_CORE_FEMTOUNIVERSEPAIRCLEANER_H_
@@ -112,6 +113,24 @@ class FemtoUniversePairCleaner
112113
return false;
113114
}
114115
return part1.globalIndex() != part2.globalIndex();
116+
} else if constexpr (kPartOneType == o2::aod::femtouniverseparticle::ParticleType::kCascade && kPartTwoType == o2::aod::femtouniverseparticle::ParticleType::kCascade) {
117+
/// Cascade-Cascade combination both part1 and part2 are cascades
118+
if (part1.partType() != o2::aod::femtouniverseparticle::ParticleType::kCascade || part2.partType() != o2::aod::femtouniverseparticle::ParticleType::kCascade) {
119+
LOG(fatal) << "FemtoUniversePairCleaner: passed arguments don't agree with FemtoUniversePairCleaner instantiation! Please provide first and second arguments kCascade candidate.";
120+
return false;
121+
}
122+
// Getting cascade children for part1
123+
const auto& posChild1 = particles.iteratorAt(part1.index() - 3);
124+
const auto& negChild1 = particles.iteratorAt(part1.index() - 2);
125+
const auto& bachelor1 = particles.iteratorAt(part1.index() - 1);
126+
// Getting cascade children for part2
127+
const auto& posChild2 = particles.iteratorAt(part2.index() - 3);
128+
const auto& negChild2 = particles.iteratorAt(part2.index() - 2);
129+
const auto& bachelor2 = particles.iteratorAt(part2.index() - 1);
130+
if (posChild1.globalIndex() == posChild2.globalIndex() || negChild1.globalIndex() == negChild2.globalIndex() || bachelor1.globalIndex() == bachelor2.globalIndex()) {
131+
return false;
132+
}
133+
return part1.globalIndex() != part2.globalIndex();
115134
} else if constexpr (kPartOneType == o2::aod::femtouniverseparticle::ParticleType::kTrack && kPartTwoType == o2::aod::femtouniverseparticle::ParticleType::kD0) {
116135
/// Track-D0 combination part1 is hadron and part2 is D0
117136
if (part2.partType() != o2::aod::femtouniverseparticle::ParticleType::kD0) {

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackCascadeExtended.cxx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ struct femtoUniversePairTaskTrackCascadeExtended { // o2-linter: disable=name/st
112112
FemtoUniverseContainer<femto_universe_container::EventType::same, femto_universe_container::Observable::kstar> sameEventCont;
113113
FemtoUniverseContainer<femto_universe_container::EventType::mixed, femto_universe_container::Observable::kstar> mixedEventCont;
114114
FemtoUniversePairCleaner<aod::femtouniverseparticle::ParticleType::kTrack, aod::femtouniverseparticle::ParticleType::kCascade> pairCleaner;
115+
FemtoUniversePairCleaner<aod::femtouniverseparticle::ParticleType::kCascade, aod::femtouniverseparticle::ParticleType::kCascade> pairCleanerCasc;
115116

116117
HistogramRegistry rXiQA{"xi", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
117118
HistogramRegistry qaRegistry{"TrackQA", {}, OutputObjHandlingPolicy::AnalysisObject};
@@ -379,7 +380,7 @@ struct femtoUniversePairTaskTrackCascadeExtended { // o2-linter: disable=name/st
379380
if (!invMCascade(p2.mLambda(), p2.mAntiLambda()))
380381
return;
381382
// track cleaning
382-
if (!pairCleaner.isCleanPair(p1, p2, parts)) {
383+
if (!pairCleanerCasc.isCleanPair(p1, p2, parts)) {
383384
return;
384385
}
385386
const auto& posChild1 = parts.iteratorAt(p1.index() - 3);
@@ -488,7 +489,7 @@ struct femtoUniversePairTaskTrackCascadeExtended { // o2-linter: disable=name/st
488489
if (!isParticleTPC(posChild2, CascChildTable[confCascType2][0]) || !isParticleTPC(negChild2, CascChildTable[confCascType2][1]) || !isParticleTPC(bachelor2, CascChildTable[confCascType2][2]))
489490
return;
490491
// track cleaning
491-
if (!pairCleaner.isCleanPair(p1, p2, parts)) {
492+
if (!pairCleanerCasc.isCleanPair(p1, p2, parts)) {
492493
continue;
493494
}
494495

0 commit comments

Comments
 (0)