Skip to content

Commit 8fc23d1

Browse files
EloviyoShirajum Monira
andauthored
[PWGCF] FemtoUniverse cascade task -- applied clean pair check for cascade pair building (#8607)
Co-authored-by: Shirajum Monira <shirajum.monira@cernch>
1 parent 601d519 commit 8fc23d1

File tree

1 file changed

+28
-18
lines changed

1 file changed

+28
-18
lines changed

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackCascadeExtended.cxx

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
6060
Configurable<int> ConfTrackChoicePartOne{"ConfTrackChoicePartOne", 0, "0:Proton, 1:Pion, 2:Kaon"};
6161
Configurable<int> ConfTrkPDGCodePartOne{"ConfTrkPDGCodePartOne", 2212, "Particle 1 (Track) - PDG code"};
6262
Configurable<int> ConfCascType1{"ConfCascType1", 0, "select one of the V0s (Omega = 0, Xi = 1, anti-Omega = 2, anti-Xi = 3) for track-cascade combination"};
63-
Configurable<int> ConfChargePart1{"ConfChargePart1", 0, "sign of particle 1"};
63+
Configurable<int> ConfChargePart1{"ConfChargePart1", 1, "sign of particle 1"};
6464
Configurable<float> ConfHPtPart1{"ConfHPtPart1", 4.0f, "higher limit for pt of particle 1"};
6565
Configurable<float> ConfLPtPart1{"ConfLPtPart1", 0.5f, "lower limit for pt of particle 1"};
6666
Configurable<float> ConfHPtPart2{"ConfHPtPart2", 4.0f, "higher limit for pt of particle 2"};
@@ -103,6 +103,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
103103

104104
FemtoUniverseContainer<femtoUniverseContainer::EventType::same, femtoUniverseContainer::Observable::kstar> sameEventCont;
105105
FemtoUniverseContainer<femtoUniverseContainer::EventType::mixed, femtoUniverseContainer::Observable::kstar> mixedEventCont;
106+
FemtoUniversePairCleaner<aod::femtouniverseparticle::ParticleType::kTrack, aod::femtouniverseparticle::ParticleType::kCascade> pairCleaner;
106107

107108
HistogramRegistry rXiQA{"xi", {}, OutputObjHandlingPolicy::AnalysisObject, true, true};
108109
HistogramRegistry qaRegistry{"TrackQA", {}, OutputObjHandlingPolicy::AnalysisObject};
@@ -197,6 +198,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
197198

198199
sameEventCont.init(&resultRegistry, ConfkstarBins, ConfMultBins, ConfkTBins, ConfmTBins, ConfmultBins3D, ConfmTBins3D, ConfEtaBins, ConfPhiBins, ConfIsMC, ConfUse3D);
199200
mixedEventCont.init(&resultRegistry, ConfkstarBins, ConfMultBins, ConfkTBins, ConfmTBins, ConfmultBins3D, ConfmTBins3D, ConfEtaBins, ConfPhiBins, ConfIsMC, ConfUse3D);
201+
pairCleaner.init(&qaRegistry);
200202
}
201203

202204
void processCascades(FilteredFDCollision& col, FemtoFullParticles& parts)
@@ -263,8 +265,6 @@ struct femtoUniversePairTaskTrackCascadeExtended {
263265

264266
void processSameEvent(FilteredFDCollision& col, FemtoFullParticles& parts)
265267
{
266-
// const auto& magFieldTesla = col.magField();
267-
268268
auto groupPartsOne = partsOne->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache);
269269
auto groupPartsTwo = partsTwo->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache);
270270

@@ -275,8 +275,8 @@ struct femtoUniversePairTaskTrackCascadeExtended {
275275
const auto& negChild = parts.iteratorAt(part.index() - 2);
276276
const auto& bachelor = parts.iteratorAt(part.index() - 1);
277277
/// Child particles must pass this condition to be selected
278-
/*if (!IsParticleTPC(posChild, CascChildTable[ConfCascType1][0]) || !IsParticleTPC(negChild, CascChildTable[ConfCascType1][1]) || !IsParticleTPC(bachelor, CascChildTable[ConfCascType1][2]))
279-
continue;*/
278+
if (!IsParticleTPC(posChild, CascChildTable[ConfCascType1][0]) || !IsParticleTPC(negChild, CascChildTable[ConfCascType1][1]) || !IsParticleTPC(bachelor, CascChildTable[ConfCascType1][2]))
279+
continue;
280280

281281
posChildHistos.fillQA<false, true>(posChild);
282282
negChildHistos.fillQA<false, true>(negChild);
@@ -303,24 +303,29 @@ struct femtoUniversePairTaskTrackCascadeExtended {
303303
}
304304

305305
for (auto& [p1, p2] : combinations(CombinationsFullIndexPolicy(groupPartsOne, groupPartsTwo))) {
306+
// Cascade invariant mass cut
306307
if (!invMCascade(p2.mLambda(), p2.mAntiLambda()))
307308
continue;
309+
// PID
308310
if (!IsParticleCombined(p1, ConfTrackChoicePartOne))
309311
continue;
310-
// const auto& posChild = parts.iteratorAt(p2.index() - 3);
311-
// const auto& negChild = parts.iteratorAt(p2.index() - 2);
312-
// const auto& bachelor = parts.iteratorAt(p2.index() - 1);
313-
312+
// track cleaning
313+
if (!pairCleaner.isCleanPair(p1, p2, parts)) {
314+
continue;
315+
}
316+
const auto& posChild = parts.iteratorAt(p2.index() - 3);
317+
const auto& negChild = parts.iteratorAt(p2.index() - 2);
318+
const auto& bachelor = parts.iteratorAt(p2.index() - 1);
314319
/// Child particles must pass this condition to be selected
315-
/*if (!IsParticleTPC(posChild, CascChildTable[ConfCascType1][0]) || !IsParticleTPC(negChild, CascChildTable[ConfCascType1][1]) || !IsParticleTPC(bachelor, CascChildTable[ConfCascType1][2]))
316-
continue;*/
320+
if (!IsParticleTPC(posChild, CascChildTable[ConfCascType1][0]) || !IsParticleTPC(negChild, CascChildTable[ConfCascType1][1]) || !IsParticleTPC(bachelor, CascChildTable[ConfCascType1][2]))
321+
continue;
317322

318323
sameEventCont.setPair<false>(p1, p2, col.multNtr(), ConfUse3D, 1.0f);
319324
}
320325
}
321326
PROCESS_SWITCH(femtoUniversePairTaskTrackCascadeExtended, processSameEvent, "Enable processing same event for track - cascade", true);
322327

323-
void processMixedEvent(FilteredFDCollisions& cols, FemtoFullParticles& /*parts*/)
328+
void processMixedEvent(FilteredFDCollisions& cols, FemtoFullParticles& parts)
324329
{
325330
ColumnBinningPolicy<aod::collision::PosZ, aod::femtouniversecollision::MultNtr> colBinning{{ConfVtxBins, ConfMultBins}, true};
326331

@@ -336,18 +341,23 @@ struct femtoUniversePairTaskTrackCascadeExtended {
336341
continue;
337342
}
338343
for (auto& [p1, p2] : combinations(CombinationsFullIndexPolicy(groupPartsOne, groupPartsTwo))) {
344+
// Cascade invariant mass cut
339345
if (!invMCascade(p2.mLambda(), p2.mAntiLambda()))
340346
continue;
347+
// PID
341348
if (!IsParticleCombined(p1, ConfTrackChoicePartOne))
342349
continue;
343350

344-
// const auto& posChild = parts.iteratorAt(p2.index() - 3);
345-
// const auto& negChild = parts.iteratorAt(p2.index() - 2);
346-
// const auto& bachelor = parts.iteratorAt(p2.index() - 1);
347-
351+
const auto& posChild = parts.iteratorAt(p2.index() - 3);
352+
const auto& negChild = parts.iteratorAt(p2.index() - 2);
353+
const auto& bachelor = parts.iteratorAt(p2.index() - 1);
348354
/// Child particles must pass this condition to be selected
349-
/*if (!IsParticleTPC(posChild, CascChildTable[ConfCascType1][0]) || !IsParticleTPC(negChild, CascChildTable[ConfCascType1][1]) || !IsParticleTPC(bachelor, CascChildTable[ConfCascType1][2]))
350-
continue;*/
355+
if (!IsParticleTPC(posChild, CascChildTable[ConfCascType1][0]) || !IsParticleTPC(negChild, CascChildTable[ConfCascType1][1]) || !IsParticleTPC(bachelor, CascChildTable[ConfCascType1][2]))
356+
continue;
357+
// track cleaning
358+
if (!pairCleaner.isCleanPair(p1, p2, parts)) {
359+
continue;
360+
}
351361

352362
mixedEventCont.setPair<false>(p1, p2, collision1.multNtr(), ConfUse3D, 1.0f);
353363
}

0 commit comments

Comments
 (0)