@@ -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