@@ -479,14 +479,39 @@ struct FemtoUniverseProducerTask {
479479 }
480480
481481 template <class T >
482- using hasStrangeTOF = decltype (std::declval<T&>().tofNSigmaXiLaPi());
482+ using hasStrangeTOFinV0 = decltype (std::declval<T&>().tofNSigmaLaPr());
483+
484+ // / bitmask to save strangeness TOF for V0 analysis
485+ template <typename V0Type>
486+ aod::femtouniverseparticle::CutContainerType PIDStrangeTOFBitmaskV0 (const V0Type& v0)
487+ {
488+ aod::femtouniverseparticle::CutContainerType mask = 0u ;
489+ if constexpr (std::experimental::is_detected<hasStrangeTOFinV0, V0Type>::value) {
490+ if (v0.tofNSigmaLaPr () < ConfPIDBitmask.confNsigmaTOFParticleChild )
491+ mask |= (1u );
492+ if (v0.tofNSigmaLaPi () < ConfPIDBitmask.confNsigmaTOFParticleChild )
493+ mask |= (2u );
494+ if (v0.tofNSigmaALaPr () < ConfPIDBitmask.confNsigmaTOFParticleChild )
495+ mask |= (4u );
496+ if (v0.tofNSigmaALaPi () < ConfPIDBitmask.confNsigmaTOFParticleChild )
497+ mask |= (8u );
498+ if (v0.tofNSigmaK0PiPlus () < ConfPIDBitmask.confNsigmaTOFParticleChild )
499+ mask |= (16u );
500+ if (v0.tofNSigmaK0PiMinus () < ConfPIDBitmask.confNsigmaTOFParticleChild )
501+ mask |= (32u );
502+ }
503+ return mask;
504+ }
505+
506+ template <class T >
507+ using hasStrangeTOFinCasc = decltype (std::declval<T&>().tofNSigmaXiLaPi());
483508
484509 // / bitmask to save strangeness TOF for cascade analysis
485510 template <typename CascType>
486- aod::femtouniverseparticle::CutContainerType PIDStrangeTOFBitmask (const CascType& casc)
511+ aod::femtouniverseparticle::CutContainerType PIDStrangeTOFBitmaskCasc (const CascType& casc)
487512 {
488513 aod::femtouniverseparticle::CutContainerType mask = 0u ;
489- if constexpr (std::experimental::is_detected<hasStrangeTOF , CascType>::value) {
514+ if constexpr (std::experimental::is_detected<hasStrangeTOFinCasc , CascType>::value) {
490515 if (casc.tofNSigmaXiLaPi () < ConfPIDBitmask.confNsigmaTOFParticleChild )
491516 mask |= (1u );
492517 if (casc.tofNSigmaXiLaPr () < ConfPIDBitmask.confNsigmaTOFParticleChild )
@@ -718,18 +743,34 @@ struct FemtoUniverseProducerTask {
718743 void fillDebugParticle (ParticleType const & particle)
719744 {
720745 if constexpr (isTrackOrV0) {
721- outputDebugParts (particle.sign (), (uint8_t )particle.tpcNClsFound (),
722- particle.tpcNClsFindable (),
723- (uint8_t )particle.tpcNClsCrossedRows (),
724- particle.tpcNClsShared (), particle.tpcFractionSharedCls (), particle.tpcInnerParam (),
725- particle.itsNCls (), particle.itsNClsInnerBarrel (),
726- particle.dcaXY (), particle.dcaZ (), particle.tpcSignal (),
727- particle.tpcNSigmaStoreEl (), particle.tpcNSigmaStorePi (),
728- particle.tpcNSigmaStoreKa (), particle.tpcNSigmaStorePr (),
729- particle.tpcNSigmaStoreDe (), particle.tofNSigmaStoreEl (),
730- particle.tofNSigmaStorePi (), particle.tofNSigmaStoreKa (),
731- particle.tofNSigmaStorePr (), particle.tofNSigmaStoreDe (),
732- -999 ., -999 ., -999 ., -999 ., -999 ., -999 .);
746+ if constexpr (std::experimental::is_detected<hasStrangeTOFinV0, ParticleType>::value) {
747+ outputDebugParts (particle.sign (), (uint8_t )particle.tpcNClsFound (),
748+ particle.tpcNClsFindable (),
749+ (uint8_t )particle.tpcNClsCrossedRows (),
750+ particle.tpcNClsShared (), particle.tpcFractionSharedCls (), particle.tpcInnerParam (),
751+ particle.itsNCls (), particle.itsNClsInnerBarrel (),
752+ particle.dcaXY (), particle.dcaZ (), particle.tpcSignal (),
753+ particle.tpcNSigmaStoreEl (), particle.tpcNSigmaStorePi (),
754+ particle.tpcNSigmaStoreKa (), particle.tpcNSigmaStorePr (),
755+ particle.tpcNSigmaStoreDe (), particle.tofNSigmaStoreEl (),
756+ particle.tofNSigmaStorePi (), particle.tofNSigmaStoreKa (),
757+ particle.tofNSigmaStorePr (), particle.tofNSigmaStoreDe (),
758+ particle.tofNSigmaLaPr (), particle.tofNSigmaLaPi (), particle.tofNSigmaALaPr (),
759+ particle.tofNSigmaALaPi (), particle.tofNSigmaK0PiPlus (), particle.tofNSigmaK0PiMinus ());
760+ } else {
761+ outputDebugParts (particle.sign (), (uint8_t )particle.tpcNClsFound (),
762+ particle.tpcNClsFindable (),
763+ (uint8_t )particle.tpcNClsCrossedRows (),
764+ particle.tpcNClsShared (), particle.tpcFractionSharedCls (), particle.tpcInnerParam (),
765+ particle.itsNCls (), particle.itsNClsInnerBarrel (),
766+ particle.dcaXY (), particle.dcaZ (), particle.tpcSignal (),
767+ particle.tpcNSigmaStoreEl (), particle.tpcNSigmaStorePi (),
768+ particle.tpcNSigmaStoreKa (), particle.tpcNSigmaStorePr (),
769+ particle.tpcNSigmaStoreDe (), particle.tofNSigmaStoreEl (),
770+ particle.tofNSigmaStorePi (), particle.tofNSigmaStoreKa (),
771+ particle.tofNSigmaStorePr (), particle.tofNSigmaStoreDe (),
772+ -999 ., -999 ., -999 ., -999 ., -999 ., -999 .);
773+ }
733774 } else if constexpr (isPhiOrD0) {
734775 outputDebugParts (-999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 .,
735776 -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 .,
@@ -738,7 +779,7 @@ struct FemtoUniverseProducerTask {
738779 -999 ., -999 ., -999 .,
739780 -999 .); // QA for phi or D0/D0bar children
740781 } else if constexpr (isCasc) {
741- if constexpr (std::experimental::is_detected<hasStrangeTOF , ParticleType>::value) {
782+ if constexpr (std::experimental::is_detected<hasStrangeTOFinCasc , ParticleType>::value) {
742783 outputDebugParts (-999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 .,
743784 -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., -999 ., particle.tofNSigmaXiLaPi (),
744785 particle.tofNSigmaXiLaPr (), particle.tofNSigmaXiPi (), particle.tofNSigmaOmLaPi (),
@@ -1277,7 +1318,7 @@ struct FemtoUniverseProducerTask {
12771318 v0.phi (),
12781319 aod::femtouniverseparticle::ParticleType::kV0 ,
12791320 cutContainerV0.at (femto_universe_v0_selection::V0ContainerPosition::kV0 ),
1280- 0 ,
1321+ PIDStrangeTOFBitmaskV0 (v0) ,
12811322 v0.v0cosPA (),
12821323 indexChildID,
12831324 v0.mLambda (),
@@ -1489,7 +1530,7 @@ struct FemtoUniverseProducerTask {
14891530 casc.phi (),
14901531 aod::femtouniverseparticle::ParticleType::kCascade ,
14911532 0 ,
1492- PIDStrangeTOFBitmask (casc),
1533+ PIDStrangeTOFBitmaskCasc (casc),
14931534 0 ,
14941535 indexCascChildID,
14951536 casc.mXi (),
@@ -2311,7 +2352,7 @@ struct FemtoUniverseProducerTask {
23112352 void processTrackV0Cascade (aod::FemtoFullCollision const & col,
23122353 aod::BCsWithTimestamps const &,
23132354 soa::Filtered<aod::FemtoFullTracks> const & tracks,
2314- o2::aod::V0Datas const & fullV0s,
2355+ soa::Join< o2::aod::V0Datas, o2::aod::V0TOFNSigmas> const & fullV0s,
23152356 soa::Join<o2::aod::CascDatas, o2::aod::CascTOFNSigmas> const & fullCascades)
23162357 {
23172358 getMagneticFieldTesla (col.bc_as <aod::BCsWithTimestamps>());
0 commit comments