Skip to content

Commit aa89835

Browse files
EloviyoShirajum Monira
andauthored
[PWGCF] FemtoUniverse v0 task -- implemented strangenessTOF for V0 analysis (#13552)
Co-authored-by: Shirajum Monira <shirajum.monira@cernch>
1 parent 403fe6c commit aa89835

File tree

1 file changed

+60
-19
lines changed

1 file changed

+60
-19
lines changed

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

Lines changed: 60 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)