Skip to content

Commit 4d7e818

Browse files
authored
PWGCF: Change combinations policy for non identical V0s in V0 task (#7325)
* Change combinations policy for non identical pairs, change congigurables description in efficiency task, change binning of one histo in event histo * Fix one configurable description
1 parent f892f9e commit 4d7e818

3 files changed

Lines changed: 62 additions & 29 deletions

File tree

PWGCF/FemtoUniverse/Core/FemtoUniverseEventHisto.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class FemtoUniverseEventHisto
3838
mHistogramRegistry->add("Event/zvtxhist", "; vtx_{z} (cm); Entries", kTH1F, {{300, -12.5, 12.5}});
3939
mHistogramRegistry->add("Event/MultV0M", "; vMultV0M; Entries", kTH1F, {{16384, 0, 32768}});
4040
mHistogramRegistry->add("Event/MultNTr", "; vMultNTr; Entries", kTH1F, {{200, 0, 200}});
41-
mHistogramRegistry->add("Event/MultNTrVSMultV0M", "; vMultNTr; MultV0M", kTH2F, {{200, 0, 200}, {16384, 0, 32768}});
41+
mHistogramRegistry->add("Event/MultNTrVSMultV0M", "; vMultNTr; MultV0M", kTH2F, {{4000, 0, 4000}, {32768, 0, 32768}});
4242
}
4343

4444
/// Some basic QA of the event

PWGCF/FemtoUniverse/Tasks/femtoUniverseEfficiencyBase.cxx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ struct femtoUniverseEfficiencyBase {
4949

5050
/// Particle 1
5151
Configurable<int32_t> ConfPDGCodePartOne{"ConfPDGCodePartOne", 2212, "Particle 1 - PDG code"};
52-
Configurable<uint8_t> ConfParticleTypePartOne{"ConfParticleTypePartOne", aod::femtouniverseparticle::ParticleType::kTrack, "Particle 1 - particle type"};
52+
Configurable<uint8_t> ConfParticleTypePartOne{"ConfParticleTypePartOne", aod::femtouniverseparticle::ParticleType::kTrack, "Particle 1 - particle type: 0 - track, 2 - V0, 6 - phi"};
5353
Configurable<bool> ConfNoPDGPartOne{"ConfNoPDGPartOne", false, "0: selecting part one by PDG, 1: no PID selection"};
5454
Configurable<float> ConfPtLowPart1{"ConfPtLowPart1", 0.2, "Lower limit for Pt for the first particle"};
5555
Configurable<float> ConfPtHighPart1{"ConfPtHighPart1", 2.5, "Higher limit for Pt for the first particle"};
@@ -70,7 +70,7 @@ struct femtoUniverseEfficiencyBase {
7070
/// Particle 2
7171
Configurable<bool> ConfIsSame{"ConfIsSame", false, "Pairs of the same particle"};
7272
Configurable<int32_t> ConfPDGCodePartTwo{"ConfPDGCodePartTwo", 333, "Particle 2 - PDG code"};
73-
Configurable<uint8_t> ConfParticleTypePartTwo{"ConfParticleTypePartTwo", aod::femtouniverseparticle::ParticleType::kTrack, "Particle 2 - particle type"};
73+
Configurable<uint8_t> ConfParticleTypePartTwo{"ConfParticleTypePartTwo", aod::femtouniverseparticle::ParticleType::kTrack, "Particle 2 - particle type: 0 - track, 2 - V0, 6 - phi"};
7474
Configurable<bool> ConfNoPDGPartTwo{"ConfNoPDGPartTwo", false, "0: selecting part two by PDG, 1: no PID selection"};
7575
Configurable<float> ConfPtLowPart2{"ConfPtLowPart2", 0.2, "Lower limit for Pt for the second particle"};
7676
Configurable<float> ConfPtHighPart2{"ConfPtHighPart2", 2.5, "Higher limit for Pt for the second particle"};
@@ -333,7 +333,6 @@ struct femtoUniverseEfficiencyBase {
333333
void doMCRecTrackPhi(PartitionType grouppartsOneMCGen, PartitionType grouppartsTwoGen)
334334
{ // part1 is track and part2 is Phi
335335

336-
/// Histogramming same event
337336
for (auto& part : grouppartsOneMCGen) {
338337
if (part.partType() != ConfParticleTypePartOne || part.sign() != ConfChargePart1 || !IsParticleNSigma(ConfPDGCodePartOne, part.p(), trackCuts.getNsigmaTPC(part, o2::track::PID::Proton), trackCuts.getNsigmaTOF(part, o2::track::PID::Proton), trackCuts.getNsigmaTPC(part, o2::track::PID::Pion), trackCuts.getNsigmaTOF(part, o2::track::PID::Pion), trackCuts.getNsigmaTPC(part, o2::track::PID::Kaon), trackCuts.getNsigmaTOF(part, o2::track::PID::Kaon))) {
339338
continue;

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Extended.cxx

Lines changed: 59 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -395,36 +395,70 @@ struct femtoUniversePairTaskTrackV0Extended {
395395
}
396396
}
397397

398-
/// Now build the combinations
399-
for (auto& [p1, p2] : combinations(CombinationsStrictlyUpperIndexPolicy(groupPartsTwo, groupPartsTwo))) {
400-
// Lambda invariant mass cut for p1
401-
if (!invMLambda(p1.mLambda(), p1.mAntiLambda()))
402-
continue;
403-
// Lambda invariant mass cut for p2
404-
if (!invMLambda(p2.mLambda(), p2.mAntiLambda()))
405-
continue;
406-
// track cleaning
407-
if (!pairCleanerV0.isCleanPair(p1, p2, parts)) {
408-
continue;
409-
}
410-
if (ConfIsCPR.value) {
411-
if (pairCloseRejectionV0.isClosePair(p1, p2, parts, magFieldTesla, femtoUniverseContainer::EventType::same)) {
398+
if (ConfV0Type1 == ConfV0Type2) {
399+
/// Now build the combinations for identical V0s
400+
for (auto& [p1, p2] : combinations(CombinationsStrictlyUpperIndexPolicy(groupPartsTwo, groupPartsTwo))) {
401+
// Lambda invariant mass cut for p1
402+
if (!invMLambda(p1.mLambda(), p1.mAntiLambda()))
403+
continue;
404+
// Lambda invariant mass cut for p2
405+
if (!invMLambda(p2.mLambda(), p2.mAntiLambda()))
406+
continue;
407+
// track cleaning
408+
if (!pairCleanerV0.isCleanPair(p1, p2, parts)) {
412409
continue;
413410
}
411+
if (ConfIsCPR.value) {
412+
if (pairCloseRejectionV0.isClosePair(p1, p2, parts, magFieldTesla, femtoUniverseContainer::EventType::same)) {
413+
continue;
414+
}
415+
}
416+
const auto& posChild1 = parts.iteratorAt(p1.index() - 2);
417+
const auto& negChild1 = parts.iteratorAt(p1.index() - 1);
418+
/// Daughters that do not pass this condition are not selected
419+
if (!IsParticleTPC(posChild1, V0ChildTable[ConfV0Type1][0]) || !IsParticleTPC(negChild1, V0ChildTable[ConfV0Type1][1]))
420+
continue;
421+
422+
const auto& posChild2 = parts.iteratorAt(p2.index() - 2);
423+
const auto& negChild2 = parts.iteratorAt(p2.index() - 1);
424+
/// Daughters that do not pass this condition are not selected
425+
if (!IsParticleTPC(posChild2, V0ChildTable[ConfV0Type2][0]) || !IsParticleTPC(negChild2, V0ChildTable[ConfV0Type2][1]))
426+
continue;
427+
428+
sameEventCont.setPair<false>(p1, p2, multCol, ConfUse3D);
414429
}
415-
const auto& posChild1 = parts.iteratorAt(p1.index() - 2);
416-
const auto& negChild1 = parts.iteratorAt(p1.index() - 1);
417-
/// Daughters that do not pass this condition are not selected
418-
if (!IsParticleTPC(posChild1, V0ChildTable[ConfV0Type1][0]) || !IsParticleTPC(negChild1, V0ChildTable[ConfV0Type1][1]))
419-
continue;
430+
} else {
431+
/// Now build the combinations for not identical identical V0s
432+
for (auto& [p1, p2] : combinations(CombinationsFullIndexPolicy(groupPartsTwo, groupPartsTwo))) {
433+
// Lambda invariant mass cut for p1
434+
if (!invMLambda(p1.mLambda(), p1.mAntiLambda()))
435+
continue;
436+
// Lambda invariant mass cut for p2
437+
if (!invMLambda(p2.mLambda(), p2.mAntiLambda()))
438+
continue;
439+
// track cleaning
440+
if (!pairCleanerV0.isCleanPair(p1, p2, parts)) {
441+
continue;
442+
}
443+
if (ConfIsCPR.value) {
444+
if (pairCloseRejectionV0.isClosePair(p1, p2, parts, magFieldTesla, femtoUniverseContainer::EventType::same)) {
445+
continue;
446+
}
447+
}
448+
const auto& posChild1 = parts.iteratorAt(p1.index() - 2);
449+
const auto& negChild1 = parts.iteratorAt(p1.index() - 1);
450+
/// Daughters that do not pass this condition are not selected
451+
if (!IsParticleTPC(posChild1, V0ChildTable[ConfV0Type1][0]) || !IsParticleTPC(negChild1, V0ChildTable[ConfV0Type1][1]))
452+
continue;
420453

421-
const auto& posChild2 = parts.iteratorAt(p2.index() - 2);
422-
const auto& negChild2 = parts.iteratorAt(p2.index() - 1);
423-
/// Daughters that do not pass this condition are not selected
424-
if (!IsParticleTPC(posChild2, V0ChildTable[ConfV0Type2][0]) || !IsParticleTPC(negChild2, V0ChildTable[ConfV0Type2][1]))
425-
continue;
454+
const auto& posChild2 = parts.iteratorAt(p2.index() - 2);
455+
const auto& negChild2 = parts.iteratorAt(p2.index() - 1);
456+
/// Daughters that do not pass this condition are not selected
457+
if (!IsParticleTPC(posChild2, V0ChildTable[ConfV0Type2][0]) || !IsParticleTPC(negChild2, V0ChildTable[ConfV0Type2][1]))
458+
continue;
426459

427-
sameEventCont.setPair<false>(p1, p2, multCol, ConfUse3D);
460+
sameEventCont.setPair<false>(p1, p2, multCol, ConfUse3D);
461+
}
428462
}
429463
}
430464

0 commit comments

Comments
 (0)