2929#include " Framework/RunningWorkflowInfo.h"
3030#include " Framework/StepTHn.h"
3131#include " Framework/runDataProcessing.h"
32+
3233#include < TPDGCode.h>
34+
3335#include < set>
3436#include < vector>
3537
@@ -381,10 +383,10 @@ struct femtoUniversePairTaskTrackCascadeExtended {
381383 if (!invMCascade (part.mLambda (), part.mAntiLambda (), confCascType1)) // / mLambda stores Xi mass, mAntiLambda stores Omega mass
382384 continue ;
383385
384- if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value)
385- cascQAHistos.fillQA <false , true >(part);
386+ if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value)
387+ cascQAHistos.fillQA <false , true >(part);
386388 else
387- cascQAHistos.fillQA <false , false >(part);
389+ cascQAHistos.fillQA <false , false >(part);
388390
389391 const auto & posChild = parts.iteratorAt (part.globalIndex () - 3 - parts.begin ().globalIndex ());
390392 const auto & negChild = parts.iteratorAt (part.globalIndex () - 2 - parts.begin ().globalIndex ());
@@ -473,7 +475,6 @@ struct femtoUniversePairTaskTrackCascadeExtended {
473475 void processSameEvent (const FilteredFDCollision& col, const FemtoFullParticles& parts)
474476 {
475477 doSameEvent (col, parts, partsOneFull, partsTwoFull);
476-
477478 }
478479 PROCESS_SWITCH (femtoUniversePairTaskTrackCascadeExtended, processSameEvent, " Enable processing same event for track - cascade" , false );
479480
@@ -499,7 +500,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
499500 if (!invMCascade (part.mLambda (), part.mAntiLambda (), confCascType1)) // / mLambda stores Xi mass, mAntiLambda stores Omega mass
500501 continue ;
501502
502- if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value)
503+ if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value)
503504 cascQAHistos.fillQA <false , true >(part);
504505 else
505506 cascQAHistos.fillQA <false , false >(part);
@@ -919,15 +920,15 @@ struct femtoUniversePairTaskTrackCascadeExtended {
919920 const auto & bachelor = parts.iteratorAt (part.globalIndex () - 1 - parts.begin ().globalIndex ());
920921 // / Daughters that do not pass this condition are not selected
921922 if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value) {
922- if (!isParticleTPC (posChild, CascChildTable[confCascType1][0 ]) || !isParticleTPC (negChild, CascChildTable[confCascType1][1 ]) || !isParticleTPC (bachelor, CascChildTable[confCascType1][2 ]))
923- continue ;
924- if ((!confCheckTOFBachelorOnly && (!isParticleTOF (posChild, CascChildTable[confCascType1][0 ]) || !isParticleTOF (negChild, CascChildTable[confCascType1][1 ]))) || !isParticleTOF (bachelor, CascChildTable[confCascType1][2 ]))
925- continue ;
926- } else {
927- if ((posChild.pidCut () & (1u << CascChildTable[confCascType1][0 ])) == 0 || (negChild.pidCut () & (1u << CascChildTable[confCascType1][1 ])) == 0 || (bachelor.pidCut () & (1u << CascChildTable[confCascType1][2 ])) == 0 )
928- continue ;
929- if ((!confCheckTOFBachelorOnly && ((posChild.pidCut () & (8u << CascChildTable[confCascType1][0 ])) == 0 || (negChild.pidCut () & (8u << CascChildTable[confCascType1][1 ])) == 0 )) || (bachelor.pidCut () & (8u << CascChildTable[confCascType1][2 ])) == 0 )
930- continue ;
923+ if (!isParticleTPC (posChild, CascChildTable[confCascType1][0 ]) || !isParticleTPC (negChild, CascChildTable[confCascType1][1 ]) || !isParticleTPC (bachelor, CascChildTable[confCascType1][2 ]))
924+ continue ;
925+ if ((!confCheckTOFBachelorOnly && (!isParticleTOF (posChild, CascChildTable[confCascType1][0 ]) || !isParticleTOF (negChild, CascChildTable[confCascType1][1 ]))) || !isParticleTOF (bachelor, CascChildTable[confCascType1][2 ]))
926+ continue ;
927+ } else {
928+ if ((posChild.pidCut () & (1u << CascChildTable[confCascType1][0 ])) == 0 || (negChild.pidCut () & (1u << CascChildTable[confCascType1][1 ])) == 0 || (bachelor.pidCut () & (1u << CascChildTable[confCascType1][2 ])) == 0 )
929+ continue ;
930+ if ((!confCheckTOFBachelorOnly && ((posChild.pidCut () & (8u << CascChildTable[confCascType1][0 ])) == 0 || (negChild.pidCut () & (8u << CascChildTable[confCascType1][1 ])) == 0 )) || (bachelor.pidCut () & (8u << CascChildTable[confCascType1][2 ])) == 0 )
931+ continue ;
931932 }
932933 registryMCreco.fill (HIST (" plus/MCrecoCascade" ), mcpart.pt (), mcpart.eta ());
933934
@@ -936,63 +937,63 @@ struct femtoUniversePairTaskTrackCascadeExtended {
936937 const auto & negChild = parts.iteratorAt (part.globalIndex () - 2 - parts.begin ().globalIndex ());
937938 const auto & bachelor = parts.iteratorAt (part.globalIndex () - 1 - parts.begin ().globalIndex ());
938939 if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value) {
939- if (!isParticleTPC (posChild, CascChildTable[confCascType1 + 2 ][0 ]) && !isParticleTPC (negChild, CascChildTable[confCascType1 + 2 ][1 ]) && !isParticleTPC (bachelor, CascChildTable[confCascType1 + 2 ][2 ]))
940- continue ;
941- if ((!confCheckTOFBachelorOnly && (!isParticleTOF (posChild, CascChildTable[confCascType1 + 2 ][0 ]) || !isParticleTOF (negChild, CascChildTable[confCascType1 + 2 ][1 ]))) || !isParticleTOF (bachelor, CascChildTable[confCascType1 + 2 ][2 ]))
942- continue ;
943- } else {
944- if ((posChild.pidCut () & (1u << CascChildTable[confCascType1 + 2 ][0 ])) == 0 || (negChild.pidCut () & (1u << CascChildTable[confCascType1 + 2 ][1 ])) == 0 || (bachelor.pidCut () & (1u << CascChildTable[confCascType1 + 2 ][2 ])) == 0 )
945- continue ;
946- if ((!confCheckTOFBachelorOnly && ((posChild.pidCut () & (8u << CascChildTable[confCascType1 + 2 ][0 ])) == 0 || (negChild.pidCut () & (8u << CascChildTable[confCascType1 + 2 ][1 ])) == 0 )) || (bachelor.pidCut () & (8u << CascChildTable[confCascType1 + 2 ][2 ])) == 0 )
947- continue ;
948- }
949- registryMCreco.fill (HIST (" minus/MCrecoCascade" ), mcpart.pt (), mcpart.eta ());
950- }
940+ if (!isParticleTPC (posChild, CascChildTable[confCascType1 + 2 ][0 ]) && !isParticleTPC (negChild, CascChildTable[confCascType1 + 2 ][1 ]) && !isParticleTPC (bachelor, CascChildTable[confCascType1 + 2 ][2 ]))
941+ continue ;
942+ if ((!confCheckTOFBachelorOnly && (!isParticleTOF (posChild, CascChildTable[confCascType1 + 2 ][0 ]) || !isParticleTOF (negChild, CascChildTable[confCascType1 + 2 ][1 ]))) || !isParticleTOF (bachelor, CascChildTable[confCascType1 + 2 ][2 ]))
943+ continue ;
944+ } else {
945+ if ((posChild.pidCut () & (1u << CascChildTable[confCascType1 + 2 ][0 ])) == 0 || (negChild.pidCut () & (1u << CascChildTable[confCascType1 + 2 ][1 ])) == 0 || (bachelor.pidCut () & (1u << CascChildTable[confCascType1 + 2 ][2 ])) == 0 )
946+ continue ;
947+ if ((!confCheckTOFBachelorOnly && ((posChild.pidCut () & (8u << CascChildTable[confCascType1 + 2 ][0 ])) == 0 || (negChild.pidCut () & (8u << CascChildTable[confCascType1 + 2 ][1 ])) == 0 )) || (bachelor.pidCut () & (8u << CascChildTable[confCascType1 + 2 ][2 ])) == 0 )
948+ continue ;
949+ }
950+ registryMCreco.fill (HIST (" minus/MCrecoCascade" ), mcpart.pt (), mcpart.eta ());
951+ }
951952
952953 } else if (part.partType () == aod::femtouniverseparticle::ParticleType::kTrack ) {
953954 if (part.mAntiLambda () > 0 ) {
954955 registryMCreco.fill (HIST (" plus/MCrecoAllPt" ), mcpart.pt ());
955956 if (mcpart.pdgMCTruth () != kProton )
956- continue ;
957- if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value) {
957+ continue ;
958+ if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value) {
958959 if (!isNSigmaCombined (part.p (), unPackInTable<aod::pidtpc_tiny::binning>(part.tpcNSigmaStorePr ()), unPackInTable<aod::pidtof_tiny::binning>(part.tofNSigmaStorePr ())))
959- continue ;
960- } else {
961- if ((part.pidCut () & 64u ) == 0 )
962- continue ;
963- }
964- registryMCreco.fill (HIST (" plus/MCrecoPr" ), mcpart.pt (), mcpart.eta ());
965- registryMCreco.fill (HIST (" plus/MCrecoPrPt" ), mcpart.pt ());
960+ continue ;
961+ } else {
962+ if ((part.pidCut () & 64u ) == 0 )
963+ continue ;
966964 }
965+ registryMCreco.fill (HIST (" plus/MCrecoPr" ), mcpart.pt (), mcpart.eta ());
966+ registryMCreco.fill (HIST (" plus/MCrecoPrPt" ), mcpart.pt ());
967+ }
967968
968969 else if (part.mAntiLambda () < 0 ) {
969970 registryMCreco.fill (HIST (" minus/MCrecoAllPt" ), mcpart.pt ());
970971 if (mcpart.pdgMCTruth () != kProtonBar )
971- continue ;
972- if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value) {
972+ continue ;
973+ if constexpr (std::experimental::is_detected<hasSigma, typename TableType::iterator>::value) {
973974 if (!isNSigmaCombined (part.p (), unPackInTable<aod::pidtpc_tiny::binning>(part.tpcNSigmaStorePr ()), unPackInTable<aod::pidtof_tiny::binning>(part.tofNSigmaStorePr ())))
974- continue ;
975- } else {
976- if ((part.pidCut () & 64u ) == 0 )
977- continue ;
978- }
979- registryMCreco.fill (HIST (" minus/MCrecoPr" ), mcpart.pt (), mcpart.eta ());
980- registryMCreco.fill (HIST (" minus/MCrecoPrPt" ), mcpart.pt ());
975+ continue ;
976+ } else {
977+ if ((part.pidCut () & 64u ) == 0 )
978+ continue ;
981979 }
980+ registryMCreco.fill (HIST (" minus/MCrecoPr" ), mcpart.pt (), mcpart.eta ());
981+ registryMCreco.fill (HIST (" minus/MCrecoPrPt" ), mcpart.pt ());
982982 }
983+ }
983984 }
984985 }
985986
986987 void processMCReco (FemtoRecoFullParticles const & parts, aod::FdMCParticles const & mcparts)
987- {
988- doMCReco (parts, mcparts);
989- }
988+ {
989+ doMCReco (parts, mcparts);
990+ }
990991 PROCESS_SWITCH (femtoUniversePairTaskTrackCascadeExtended, processMCReco, " Process MC reco data for cascades using nSigma for PID" , false );
991992
992993 void processMCRecoBitmask (FemtoRecoBasicParticles const & parts, aod::FdMCParticles const & mcparts)
993- {
994- doMCReco (parts, mcparts);
995- }
994+ {
995+ doMCReco (parts, mcparts);
996+ }
996997 PROCESS_SWITCH (femtoUniversePairTaskTrackCascadeExtended, processMCRecoBitmask, " Process MC reco data for cascades using Bitmask for PID" , false );
997998};
998999
0 commit comments