Skip to content

Commit 91bcf5f

Browse files
EloviyoShirajum Monira
andauthored
[PWGCF] FemtoUniverse cascade task -- implemented strangeness TOF sigmas for cascade analysis (#12668)
Co-authored-by: Shirajum Monira <shirajum.monira@cernch>
1 parent fbdd9ca commit 91bcf5f

File tree

1 file changed

+44
-16
lines changed

1 file changed

+44
-16
lines changed

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

Lines changed: 44 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "PWGHF/Core/HfHelper.h"
2929
#include "PWGHF/DataModel/CandidateReconstructionTables.h"
3030
#include "PWGHF/DataModel/CandidateSelectionTables.h"
31+
#include "PWGLF/DataModel/LFStrangenessPIDTables.h"
3132
#include "PWGLF/DataModel/LFStrangenessTables.h"
3233

3334
#include "Common/CCDB/ctpRateFetcher.h"
@@ -472,6 +473,31 @@ struct FemtoUniverseProducerTask {
472473
return mask;
473474
}
474475

476+
template <class T>
477+
using hasStrangeTOF = decltype(std::declval<T&>().tofNSigmaXiLaPi());
478+
479+
/// bitmask to save strangeness TOF for cascade analysis
480+
template <typename CascType>
481+
aod::femtouniverseparticle::CutContainerType PIDStrangeTOFBitmask(const CascType& casc)
482+
{
483+
aod::femtouniverseparticle::CutContainerType mask = 0u;
484+
if constexpr (std::experimental::is_detected<hasStrangeTOF, CascType>::value) {
485+
if (casc.tofNSigmaXiLaPi() < ConfPIDBitmask.confNsigmaTOFParticleChild)
486+
mask |= (1u);
487+
if (casc.tofNSigmaXiLaPr() < ConfPIDBitmask.confNsigmaTOFParticleChild)
488+
mask |= (2u);
489+
if (casc.tofNSigmaXiPi() < ConfPIDBitmask.confNsigmaTOFParticleChild)
490+
mask |= (4u);
491+
if (casc.tofNSigmaOmLaPi() < ConfPIDBitmask.confNsigmaTOFParticleChild)
492+
mask |= (8u);
493+
if (casc.tofNSigmaOmLaPr() < ConfPIDBitmask.confNsigmaTOFParticleChild)
494+
mask |= (16u);
495+
if (casc.tofNSigmaOmKa() < ConfPIDBitmask.confNsigmaTOFParticleChild)
496+
mask |= (32u);
497+
}
498+
return mask;
499+
}
500+
475501
Zorro zorro;
476502
OutputObj<ZorroSummary> zorroSummary{"zorroSummary"};
477503
int mRunNumberZorro = 0;
@@ -683,7 +709,7 @@ struct FemtoUniverseProducerTask {
683709
mRunNumber = bc.runNumber();
684710
}
685711

686-
template <bool isTrackOrV0, bool isPhiOrD0, bool isXi, typename ParticleType>
712+
template <bool isTrackOrV0, bool isPhiOrD0, bool isCasc, typename ParticleType>
687713
void fillDebugParticle(ParticleType const& particle)
688714
{
689715
if constexpr (isTrackOrV0) {
@@ -706,13 +732,15 @@ struct FemtoUniverseProducerTask {
706732
-999., -999.,
707733
-999., -999., -999.,
708734
-999.); // QA for phi or D0/D0bar children
709-
} else if constexpr (isXi) {
710-
outputDebugParts(-999., -999., -999., -999., -999., -999., -999., -999., -999.,
711-
-999., -999., -999., -999., -999., -999., -999., -999.,
712-
-999., -999., -999., -999., -999.,
713-
particle.dcacascdaughters(), particle.cascradius(),
714-
particle.x(), particle.y(), particle.z(),
715-
particle.mOmega()); // QA for Xi Cascades (later do the same for Omegas)
735+
} else if constexpr (isCasc) {
736+
if constexpr (std::experimental::is_detected<hasStrangeTOF, ParticleType>::value) {
737+
outputDebugParts(-999., -999., -999., -999., -999., -999., -999., -999., -999.,
738+
-999., -999., -999., -999., -999., -999., -999., particle.tofNSigmaXiLaPi(),
739+
particle.tofNSigmaXiLaPr(), particle.tofNSigmaXiPi(), particle.tofNSigmaOmLaPi(),
740+
particle.tofNSigmaOmLaPr(), particle.tofNSigmaOmKa(),
741+
particle.dcacascdaughters(), particle.cascradius(),
742+
particle.x(), particle.y(), particle.z(), -999.);
743+
}
716744
} else {
717745
// LOGF(info, "isTrack0orV0: %d, isPhi: %d", isTrackOrV0, isPhiOrD0);
718746
outputDebugParts(-999., -999., -999., -999., -999., -999., -999., -999., -999.,
@@ -1246,8 +1274,8 @@ struct FemtoUniverseProducerTask {
12461274
casc.positiveeta(),
12471275
casc.positivephi(),
12481276
aod::femtouniverseparticle::ParticleType::kV0Child,
1249-
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kPosCuts),
1250-
PIDBitmask(posTrackCasc), // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kPosPID),
1277+
0,
1278+
PIDBitmask(posTrackCasc),
12511279
hasTOF,
12521280
childIDs,
12531281
0,
@@ -1268,8 +1296,8 @@ struct FemtoUniverseProducerTask {
12681296
casc.negativeeta(),
12691297
casc.negativephi(),
12701298
aod::femtouniverseparticle::ParticleType::kV0Child,
1271-
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kNegCuts),
1272-
PIDBitmask(negTrackCasc), // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kNegPID),
1299+
0,
1300+
PIDBitmask(negTrackCasc),
12731301
hasTOF,
12741302
childIDs,
12751303
0,
@@ -1291,8 +1319,8 @@ struct FemtoUniverseProducerTask {
12911319
casc.bacheloreta(),
12921320
casc.bachelorphi(),
12931321
aod::femtouniverseparticle::ParticleType::kCascadeBachelor,
1294-
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kNegCuts),
1295-
PIDBitmask(bachTrackCasc), // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kNegPID),
1322+
0,
1323+
PIDBitmask(bachTrackCasc),
12961324
hasTOF,
12971325
childIDs,
12981326
0,
@@ -1308,8 +1336,8 @@ struct FemtoUniverseProducerTask {
13081336
casc.eta(),
13091337
casc.phi(),
13101338
aod::femtouniverseparticle::ParticleType::kCascade,
1311-
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kV0),
13121339
0,
1340+
PIDStrangeTOFBitmask(casc),
13131341
0,
13141342
indexCascChildID,
13151343
casc.mXi(),
@@ -2112,7 +2140,7 @@ struct FemtoUniverseProducerTask {
21122140
aod::BCsWithTimestamps const&,
21132141
soa::Filtered<aod::FemtoFullTracks> const& tracks,
21142142
o2::aod::V0Datas const& fullV0s,
2115-
o2::aod::CascDatas const& fullCascades)
2143+
soa::Join<o2::aod::CascDatas, o2::aod::CascTOFNSigmas> const& fullCascades)
21162144
{
21172145
getMagneticFieldTesla(col.bc_as<aod::BCsWithTimestamps>());
21182146
const auto colcheck = fillCollisions<false>(col, tracks);

0 commit comments

Comments
 (0)