Skip to content

Commit 37623b2

Browse files
basiachBarbara Chytlaalibuild
authored
[PWGCF] FemtoUniverse - Adding a TOF nSigma cut on cascade daughters (#10458)
Co-authored-by: Barbara Chytla <barbara.chytla@cern.ch> Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent e8a1a3b commit 37623b2

File tree

3 files changed

+32
-7
lines changed

3 files changed

+32
-7
lines changed

PWGCF/FemtoUniverse/Core/FemtoUniverseCascadeSelection.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,6 @@ bool FemtoUniverseCascadeSelection::isSelectedMinimal(Col const& col, Casc const
428428
const float dcav0topv = cascade.dcav0topv(col.posX(), col.posY(), col.posZ());
429429
const float invMassLambda = cascade.mLambda();
430430
const float invMass = isCascOmega ? cascade.mOmega() : cascade.mXi();
431-
const float nSigmaPIDMax = bachTrackSel.getSigmaPIDMax();
432431

433432
if (invMassLambda < fV0InvMassLowLimit || invMassLambda > fV0InvMassUpLimit) {
434433
return false;
@@ -500,9 +499,6 @@ bool FemtoUniverseCascadeSelection::isSelectedMinimal(Col const& col, Casc const
500499
if (!negDaughTrack.isSelectedMinimal(negTrack)) {
501500
return false;
502501
}
503-
if (bachTrack.hasTOF() && ((isCascOmega && bachTrack.tofNSigmaKa() > nSigmaPIDMax) || (!isCascOmega && bachTrack.tofNSigmaPi() > nSigmaPIDMax))) {
504-
return false;
505-
}
506502
if (!bachTrackSel.isSelectedMinimal(bachTrack)) {
507503
return false;
508504
}

PWGCF/FemtoUniverse/TableProducer/femtoUniverseProducerTask.cxx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1183,14 +1183,15 @@ struct FemtoUniverseProducerTask {
11831183
childIDs[0] = rowInPrimaryTrackTablePos; // pos
11841184
childIDs[1] = 0; // neg
11851185
childIDs[2] = 0; // bachelor
1186+
float hasTOF = posTrackCasc.hasTOF() ? 1 : 0;
11861187
outputCascParts(outputCollision.lastIndex(),
11871188
casc.positivept(),
11881189
casc.positiveeta(),
11891190
casc.positivephi(),
11901191
aod::femtouniverseparticle::ParticleType::kV0Child,
11911192
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kPosCuts),
11921193
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kPosPID),
1193-
0.,
1194+
hasTOF,
11941195
childIDs,
11951196
0,
11961197
0,
@@ -1214,14 +1215,15 @@ struct FemtoUniverseProducerTask {
12141215
childIDs[0] = 0; // pos
12151216
childIDs[1] = rowInPrimaryTrackTableNeg; // neg
12161217
childIDs[2] = 0; // bachelor
1218+
hasTOF = negTrackCasc.hasTOF() ? 1 : 0;
12171219
outputCascParts(outputCollision.lastIndex(),
12181220
casc.negativept(),
12191221
casc.negativeeta(),
12201222
casc.negativephi(),
12211223
aod::femtouniverseparticle::ParticleType::kV0Child,
12221224
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kNegCuts),
12231225
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kNegPID),
1224-
0.,
1226+
hasTOF,
12251227
childIDs,
12261228
0,
12271229
0,
@@ -1246,14 +1248,15 @@ struct FemtoUniverseProducerTask {
12461248
childIDs[0] = 0; // pos
12471249
childIDs[1] = 0; // neg
12481250
childIDs[2] = rowInPrimaryTrackTableBach; // bachelor
1251+
hasTOF = bachTrackCasc.hasTOF() ? 1 : 0;
12491252
outputCascParts(outputCollision.lastIndex(),
12501253
casc.bachelorpt(),
12511254
casc.bacheloreta(),
12521255
casc.bachelorphi(),
12531256
aod::femtouniverseparticle::ParticleType::kCascadeBachelor,
12541257
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kNegCuts),
12551258
0, // cutContainerV0.at(femto_universe_v0_selection::V0ContainerPosition::kNegPID),
1256-
0.,
1259+
hasTOF,
12571260
childIDs,
12581261
0,
12591262
0,

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackCascadeExtended.cxx

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ struct femtoUniversePairTaskTrackCascadeExtended { // o2-linter: disable=name/st
8080
Configurable<float> confLPtPart2{"ConfLPtPart2", 0.3f, "lower limit for pt of particle 2"};
8181
Configurable<float> confmom{"Confmom", 0.75, "momentum threshold for particle identification using TOF"};
8282
Configurable<float> confNsigmaTPCParticle{"ConfNsigmaTPCParticle", 3.0, "TPC Sigma for particle momentum < Confmom"};
83+
Configurable<float> confNsigmaTOFParticle{"ConfNsigmaTOFParticle", 3.0, "TOF Sigma for particle momentum > Confmom"};
8384
Configurable<float> confNsigmaCombinedParticle{"ConfNsigmaCombinedParticle", 3.0, "TPC and TOF Sigma (combined) for particle momentum > Confmom"};
8485

8586
ConfigurableAxis confkstarBins{"ConfkstarBins", {1500, 0., 6.}, "binning kstar"};
@@ -160,6 +161,20 @@ struct femtoUniversePairTaskTrackCascadeExtended { // o2-linter: disable=name/st
160161
}
161162
}
162163

164+
bool isNSigmaTOF(float mom, float nsigmaTOFParticle, float hasTOF)
165+
{
166+
// Cut only on tracks, that have TOF signal
167+
if (mom > confmom && hasTOF == 1) {
168+
if (std::abs(nsigmaTOFParticle) < confNsigmaTOFParticle) {
169+
return true;
170+
} else {
171+
return false;
172+
}
173+
} else {
174+
return true;
175+
}
176+
}
177+
163178
bool isNSigmaCombined(float mom, float nsigmaTPCParticle, float nsigmaTOFParticle)
164179
{
165180
if (mom <= confmom) {
@@ -177,6 +192,14 @@ struct femtoUniversePairTaskTrackCascadeExtended { // o2-linter: disable=name/st
177192
return isNSigmaTPC(tpcNSigmas[id]);
178193
}
179194

195+
template <typename T>
196+
bool isParticleTOF(const T& part, int id)
197+
{
198+
const float tofNSigmas[3] = {unPackInTable<aod::pidtof_tiny::binning>(part.tofNSigmaStorePr()), unPackInTable<aod::pidtof_tiny::binning>(part.tofNSigmaStorePi()), unPackInTable<aod::pidtof_tiny::binning>(part.tofNSigmaStoreKa())};
199+
200+
return isNSigmaTOF(part.p(), tofNSigmas[id], part.tempFitVar());
201+
}
202+
180203
template <typename T>
181204
bool isParticleCombined(const T& part, int id)
182205
{
@@ -346,6 +369,9 @@ struct femtoUniversePairTaskTrackCascadeExtended { // o2-linter: disable=name/st
346369
if (!isParticleTPC(posChild, CascChildTable[confCascType1][0]) || !isParticleTPC(negChild, CascChildTable[confCascType1][1]) || !isParticleTPC(bachelor, CascChildTable[confCascType1][2]))
347370
continue;
348371

372+
if (!isParticleTOF(posChild, CascChildTable[confCascType1][0]) || !isParticleTOF(negChild, CascChildTable[confCascType1][1]) || !isParticleTOF(bachelor, CascChildTable[confCascType1][2]))
373+
continue;
374+
349375
posChildHistos.fillQA<false, true>(posChild);
350376
negChildHistos.fillQA<false, true>(negChild);
351377
bachHistos.fillQABase<false, true>(bachelor, HIST("hBachelor"));

0 commit comments

Comments
 (0)