Skip to content

Commit d8b84ce

Browse files
EloviyoShirajum Monira
andauthored
[PWGCF] FemtoUniverse cascade task -- fixed cascade QA histogram and added TOF check for cascade-cascade (#11300)
Co-authored-by: Shirajum Monira <shirajum.monira@cernch>
1 parent b352413 commit d8b84ce

File tree

2 files changed

+31
-23
lines changed

2 files changed

+31
-23
lines changed

PWGCF/FemtoUniverse/Core/FemtoUniverseParticleHisto.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ class FemtoUniverseParticleHisto
117117
mHistogramRegistry->add((folderName + folderSuffix + "/hDecayVtxX").c_str(), "; #it{Vtx}_{x} (cm); Entries", kTH1F, {{2000, 0, 200}});
118118
mHistogramRegistry->add((folderName + folderSuffix + "/hDecayVtxY").c_str(), "; #it{Vtx}_{y} (cm)); Entries", kTH1F, {{2000, 0, 200}});
119119
mHistogramRegistry->add((folderName + folderSuffix + "/hDecayVtxZ").c_str(), "; #it{Vtx}_{z} (cm); Entries", kTH1F, {{2000, 0, 200}});
120-
mHistogramRegistry->add((folderName + folderSuffix + "/hInvMassCascade").c_str(), "; M_{Cascade}; Entries", kTH1F, {{2000, 1.f, 1.8f}});
121-
mHistogramRegistry->add((folderName + folderSuffix + "/hInvMassAntiCascade").c_str(), "; M_{AntiCascade}; Entries", kTH1F, {{2000, 1.f, 1.8f}});
120+
mHistogramRegistry->add((folderName + folderSuffix + "/hInvMassXi").c_str(), "; M_{Xi}; Entries", kTH1F, {{2000, 1.f, 1.8f}});
121+
mHistogramRegistry->add((folderName + folderSuffix + "/hInvMassOmega").c_str(), "; M_{Omega}; Entries", kTH1F, {{2000, 1.f, 1.8f}});
122122
}
123123
}
124124

@@ -318,8 +318,8 @@ class FemtoUniverseParticleHisto
318318
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[mc]) + HIST("/hDecayVtxX"), part.decayVtxX());
319319
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[mc]) + HIST("/hDecayVtxY"), part.decayVtxY());
320320
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[mc]) + HIST("/hDecayVtxZ"), part.decayVtxZ());
321-
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[mc]) + HIST("/hInvMassCascade"), part.mLambda());
322-
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[mc]) + HIST("/hInvMassAntiCascade"), part.mAntiLambda());
321+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[mc]) + HIST("/hInvMassXi"), part.mLambda());
322+
mHistogramRegistry->fill(histFolder + HIST(o2::aod::femtouniverse_mc_particle::MCTypeName[mc]) + HIST("/hInvMassOmega"), part.mAntiLambda());
323323
}
324324
}
325325

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackCascadeExtended.cxx

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
351351
}
352352
}
353353
PROCESS_SWITCH(femtoUniversePairTaskTrackCascadeExtended, processCascades, "Enable processing cascades", false);
354-
/// track - cascade
354+
/// track - cascade correlations
355355
void processSameEvent(const FilteredFDCollision& col, const FemtoFullParticles& parts)
356356
{
357357
auto groupPartsOne = partsOne->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache);
@@ -362,7 +362,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
362362
const int multCol = confUseCent ? col.multV0M() : col.multNtr();
363363

364364
for (const auto& part : groupPartsTwo) {
365-
if (!invMCascade(part.mLambda(), part.mAntiLambda(), confCascType1))
365+
if (!invMCascade(part.mLambda(), part.mAntiLambda(), confCascType1)) /// mLambda stores Xi mass, mAntiLambda stores Omega mass
366366
continue;
367367

368368
cascQAHistos.fillQA<false, true>(part);
@@ -404,7 +404,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
404404
}
405405

406406
for (const auto& [p1, p2] : combinations(CombinationsFullIndexPolicy(groupPartsOne, groupPartsTwo))) {
407-
// Cascade invariant mass cut
407+
// Cascade inv mass cut (mLambda stores Xi mass, mAntiLambda stores Omega mass)
408408
if (!invMCascade(p2.mLambda(), p2.mAntiLambda(), confCascType1))
409409
continue;
410410
// PID
@@ -427,7 +427,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
427427
}
428428
}
429429
PROCESS_SWITCH(femtoUniversePairTaskTrackCascadeExtended, processSameEvent, "Enable processing same event for track - cascade", false);
430-
/// cascade - cascade
430+
/// cascade - cascade correlations
431431
void processSameEventCasc(const FilteredFDCollision& col, const FemtoFullParticles& parts)
432432
{
433433
const auto& magFieldTesla = col.magField();
@@ -439,7 +439,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
439439
const int multCol = confUseCent ? col.multV0M() : col.multNtr();
440440

441441
for (const auto& part : groupPartsTwo) {
442-
if (!invMCascade(part.mLambda(), part.mAntiLambda(), confCascType1))
442+
if (!invMCascade(part.mLambda(), part.mAntiLambda(), confCascType1)) /// mLambda stores Xi mass, mAntiLambda stores Omega mass
443443
continue;
444444

445445
cascQAHistos.fillQA<false, true>(part);
@@ -448,22 +448,24 @@ struct femtoUniversePairTaskTrackCascadeExtended {
448448
const auto& negChild = parts.iteratorAt(part.index() - 2);
449449
const auto& bachelor = parts.iteratorAt(part.index() - 1);
450450
/// Check daughters of first cascade
451-
if (isParticleTPC(posChild, CascChildTable[confCascType1][0]) && isParticleTPC(negChild, CascChildTable[confCascType1][1]) && isParticleTPC(bachelor, CascChildTable[confCascType1][2])) {
451+
if (!isParticleTPC(posChild, CascChildTable[confCascType1][0]) || !isParticleTPC(negChild, CascChildTable[confCascType1][1]) || !isParticleTPC(bachelor, CascChildTable[confCascType1][2]))
452+
continue;
453+
if (!isParticleTOF(posChild, CascChildTable[confCascType1][0]) || !isParticleTOF(negChild, CascChildTable[confCascType1][1]) || !isParticleTOF(bachelor, CascChildTable[confCascType1][2]))
454+
continue;
452455

453-
posChildHistos.fillQA<false, true>(posChild);
454-
negChildHistos.fillQA<false, true>(negChild);
455-
bachHistos.fillQABase<false, true>(bachelor, HIST("hBachelor"));
456-
}
456+
posChildHistos.fillQA<false, true>(posChild);
457+
negChildHistos.fillQA<false, true>(negChild);
458+
bachHistos.fillQABase<false, true>(bachelor, HIST("hBachelor"));
457459
/// Check daughters of second cascade
458460
/*if (isParticleTPC(posChild, CascChildTable[confCascType2][0]) && isParticleTPC(negChild, CascChildTable[confCascType2][1]) && isParticleTPC(bachelor, CascChildTable[confCascType2][2])) {
459461
}*/
460462
}
461463

462464
auto pairDuplicateCheckFunc = [&](auto& p1, auto& p2) -> void {
463-
// Cascade invariant mass cut for p1
465+
// Cascade inv mass cut for p1 (mLambda stores Xi mass, mAntiLambda stores Omega mass)
464466
if (!invMCascade(p1.mLambda(), p1.mAntiLambda(), confCascType1))
465467
return;
466-
// Cascade invariant mass cut for p2
468+
// Cascade inv mass cut for p2
467469
if (!invMCascade(p2.mLambda(), p2.mAntiLambda(), confCascType2))
468470
return;
469471
// track cleaning & checking for duplicate pairs
@@ -477,10 +479,8 @@ struct femtoUniversePairTaskTrackCascadeExtended {
477479
auto pairProcessFunc = [&](auto& p1, auto& p2) -> void {
478480
if (cascDuplicates.contains(p1.globalIndex()) || cascDuplicates.contains(p2.globalIndex()))
479481
return;
480-
// Cascade invariant mass cut for p1
481482
if (!invMCascade(p1.mLambda(), p1.mAntiLambda(), confCascType1))
482483
return;
483-
// Cascade invariant mass cut for p2
484484
if (!invMCascade(p2.mLambda(), p2.mAntiLambda(), confCascType2))
485485
return;
486486
if (confIsCPR.value) {
@@ -494,12 +494,16 @@ struct femtoUniversePairTaskTrackCascadeExtended {
494494
/// Child particles must pass this condition to be selected
495495
if (!isParticleTPC(posChild1, CascChildTable[confCascType1][0]) || !isParticleTPC(negChild1, CascChildTable[confCascType1][1]) || !isParticleTPC(bachelor1, CascChildTable[confCascType1][2]))
496496
return;
497+
if (!isParticleTOF(posChild1, CascChildTable[confCascType1][0]) || !isParticleTOF(negChild1, CascChildTable[confCascType1][1]) || !isParticleTOF(bachelor1, CascChildTable[confCascType1][2]))
498+
return;
497499
const auto& posChild2 = parts.iteratorAt(p2.index() - 3);
498500
const auto& negChild2 = parts.iteratorAt(p2.index() - 2);
499501
const auto& bachelor2 = parts.iteratorAt(p2.index() - 1);
500502
/// Child particles must pass this condition to be selected
501503
if (!isParticleTPC(posChild2, CascChildTable[confCascType2][0]) || !isParticleTPC(negChild2, CascChildTable[confCascType2][1]) || !isParticleTPC(bachelor2, CascChildTable[confCascType2][2]))
502504
return;
505+
if (!isParticleTOF(posChild2, CascChildTable[confCascType2][0]) || !isParticleTOF(negChild2, CascChildTable[confCascType2][1]) || !isParticleTOF(bachelor2, CascChildTable[confCascType2][2]))
506+
return;
503507

504508
sameEventCont.setPair<false>(p1, p2, multCol, confUse3D, 1.0f);
505509
};
@@ -523,7 +527,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
523527
}
524528
}
525529
PROCESS_SWITCH(femtoUniversePairTaskTrackCascadeExtended, processSameEventCasc, "Enable processing same event for cascade - cascade", false);
526-
/// track - cascade
530+
/// track - cascade correlations
527531
void processMixedEvent(const FilteredFDCollisions& cols, const FemtoFullParticles& parts)
528532
{
529533
ColumnBinningPolicy<aod::collision::PosZ, aod::femtouniversecollision::MultNtr> colBinning{{confVtxBins, confMultBins}, true};
@@ -541,7 +545,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
541545
continue;
542546
}
543547
for (const auto& [p1, p2] : combinations(CombinationsFullIndexPolicy(groupPartsOne, groupPartsTwo))) {
544-
// Cascade invariant mass cut
548+
// Cascade inv mass cut (mLambda stores Xi mass, mAntiLambda stores Omega mass)
545549
if (!invMCascade(p2.mLambda(), p2.mAntiLambda(), confCascType1))
546550
continue;
547551
// PID
@@ -567,7 +571,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
567571
}
568572
}
569573
PROCESS_SWITCH(femtoUniversePairTaskTrackCascadeExtended, processMixedEvent, "Enable processing mixed event for track - cascade", false);
570-
/// cascade - cascade
574+
/// cascade - cascade correlations
571575
void processMixedEventCasc(const FilteredFDCollisions& cols, const FemtoFullParticles& parts)
572576
{
573577
ColumnBinningPolicy<aod::collision::PosZ, aod::femtouniversecollision::MultNtr> colBinning{{confVtxBins, confMultBins}, true};
@@ -585,10 +589,10 @@ struct femtoUniversePairTaskTrackCascadeExtended {
585589
continue;
586590
}
587591
for (const auto& [p1, p2] : combinations(CombinationsFullIndexPolicy(groupPartsOne, groupPartsTwo))) {
588-
// Cascade invariant mass cut for p1
592+
// Cascade inv mass cut for p1 (mLambda stores Xi mass, mAntiLambda stores Omega mass)
589593
if (!invMCascade(p1.mLambda(), p1.mAntiLambda(), confCascType1))
590594
continue;
591-
// Cascade invariant mass cut for p2
595+
// Cascade inv mass cut for p2
592596
if (!invMCascade(p2.mLambda(), p2.mAntiLambda(), confCascType2))
593597
continue;
594598

@@ -598,12 +602,16 @@ struct femtoUniversePairTaskTrackCascadeExtended {
598602
/// Child particles must pass this condition to be selected
599603
if (!isParticleTPC(posChild1, CascChildTable[confCascType1][0]) || !isParticleTPC(negChild1, CascChildTable[confCascType1][1]) || !isParticleTPC(bachelor1, CascChildTable[confCascType1][2]))
600604
return;
605+
if (!isParticleTOF(posChild1, CascChildTable[confCascType1][0]) || !isParticleTOF(negChild1, CascChildTable[confCascType1][1]) || !isParticleTOF(bachelor1, CascChildTable[confCascType1][2]))
606+
return;
601607
const auto& posChild2 = parts.iteratorAt(p2.index() - 3);
602608
const auto& negChild2 = parts.iteratorAt(p2.index() - 2);
603609
const auto& bachelor2 = parts.iteratorAt(p2.index() - 1);
604610
/// Child particles must pass this condition to be selected
605611
if (!isParticleTPC(posChild2, CascChildTable[confCascType2][0]) || !isParticleTPC(negChild2, CascChildTable[confCascType2][1]) || !isParticleTPC(bachelor2, CascChildTable[confCascType2][2]))
606612
return;
613+
if (!isParticleTOF(posChild2, CascChildTable[confCascType2][0]) || !isParticleTOF(negChild2, CascChildTable[confCascType2][1]) || !isParticleTOF(bachelor2, CascChildTable[confCascType2][2]))
614+
return;
607615
// track cleaning
608616
if (!pairCleanerCasc.isCleanPair(p1, p2, parts)) {
609617
continue;

0 commit comments

Comments
 (0)