From 9cf21c86e7b43366730a2bd3f7845b01556f5c78 Mon Sep 17 00:00:00 2001 From: Anna-Mariia Andrushko <01175703@pw.edu.pl> Date: Mon, 4 May 2026 17:14:25 +0200 Subject: [PATCH 1/3] Add hInvMassK0Short to helicity analysis --- .../femtoUniversePairTaskTrackV0Helicity.cxx | 49 ++++++++++++------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx index 972f511e926..a32bf8392d6 100644 --- a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx +++ b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx @@ -45,6 +45,7 @@ #include #include +#include #include #include @@ -188,6 +189,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { Configurable cfgProcessHel4{"cfgProcessHel4", false, "Process particle pairs from the helicity range 4"}; // -0.5 > cosineTheta >= -1.0 ConfigurableAxis confInvMassMotherpTBinsHel{"confInvMassMotherpTBinsHel", {5, 0, 5}, "pT binning in the pT vs. InvMassMother plot for helicity"}; ConfigurableAxis confInvMassMotherBinsHel{"confInvMassMotherBinsHel", {1000, 0.8, 1.4}, "InvMassMother binning in the pT vs. InvMassMother plot for helicity"}; + ConfigurableAxis confInvMassK0Short{"confInvMassK0s", {1000, 0.2, 0.8}, "Invariant mass binning for K0 Short"}; /// Efficiency Configurable confLocalEfficiency{"confLocalEfficiency", "", "Local path to efficiency .root file"}; @@ -321,6 +323,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { thetaRegistry.add("Theta/Mother/hInvMassMotherHel2", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); thetaRegistry.add("Theta/Mother/hInvMassMotherHel3", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); thetaRegistry.add("Theta/Mother/hInvMassMotherHel4", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassK0Short", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); /// MC Truth registryMCtruth.add("plus/MCtruthLambda", "MC truth Lambdas;#it{p}_{T} (GeV/c); #eta", {HistType::kTH2F, {{500, 0, 5}, {400, -1.0, 1.0}}}); @@ -450,7 +453,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { } /// This function processes the same event for Track-V0 - template + template void doSameEvent(FilteredFDCollision const& col, PartType const& parts, PartitionType& groupPartsOne, PartitionType& groupPartsTwo, int helRange, [[maybe_unused]] MCParticles mcParts = nullptr) { const auto& magFieldTesla = col.magField(); @@ -496,6 +499,14 @@ struct FemtoUniversePairTaskTrackV0Helicity { thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel3"), part.pt(), part.mLambda()); else if (cosineTheta < -0.5 && cosineTheta >= -1) thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel4"), part.pt(), part.mLambda()); + + if constexpr (confIsMC) { + if (part.has_fdMCParticle()) { + if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) { + thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0Short"), part.mKaon()); + } + } + } } for (const auto& part : groupPartsOne) { @@ -599,19 +610,19 @@ struct FemtoUniversePairTaskTrackV0Helicity { auto groupPartsTwo = partsTwo->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache); if (cfgProcessHel) - doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 0); + doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 0); if (cfgProcessHel1) - doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 1); + doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 1); if (cfgProcessHel2) - doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 2); + doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 2); if (cfgProcessHel3) - doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 3); + doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 3); if (cfgProcessHel4) - doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 4); + doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 4); } PROCESS_SWITCH(FemtoUniversePairTaskTrackV0Helicity, processSameEvent, "Enable processing same event for track - V0", false); @@ -619,7 +630,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { { auto groupPartsOne = partsOneMCReco->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache); auto groupPartsTwo = partsTwoMCReco->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache); - doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 0, mcparts); + doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 0, mcparts); } PROCESS_SWITCH(FemtoUniversePairTaskTrackV0Helicity, processSameEventMCReco, "Enable processing same event for track - V0 MC Reco", false); @@ -1099,7 +1110,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { if (!pdgParticle) continue; - if (pdgCode == 3122) { + if (pdgCode == kLambda0) { registryMCtruth.fill(HIST("plus/MCtruthLambda"), part.pt(), part.eta()); // Helicity angle @@ -1125,7 +1136,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { registryMCtruth.fill(HIST("ThetaMCTruth/NegativeChild/hThetaPhi"), negChild.phi(), cosineTheta); continue; - } else if (pdgCode == -3122) { + } else if (pdgCode == -kLambda0) { registryMCtruth.fill(HIST("minus/MCtruthLambda"), part.pt(), part.eta()); continue; } @@ -1133,11 +1144,11 @@ struct FemtoUniversePairTaskTrackV0Helicity { if (pdgParticle->Charge() > 0.0) { registryMCtruth.fill(HIST("plus/MCtruthAllPt"), part.pt()); } - if (pdgCode == 211) { + if (pdgCode == kPiPlus) { registryMCtruth.fill(HIST("plus/MCtruthPi"), part.pt(), part.eta()); registryMCtruth.fill(HIST("plus/MCtruthPiPt"), part.pt()); } - if (pdgCode == 2212) { + if (pdgCode == kProton) { registryMCtruth.fill(HIST("plus/MCtruthPr"), part.pt(), part.eta()); registryMCtruth.fill(HIST("plus/MCtruthPrPt"), part.pt()); } @@ -1145,11 +1156,11 @@ struct FemtoUniversePairTaskTrackV0Helicity { if (pdgParticle->Charge() < 0.0) { registryMCtruth.fill(HIST("minus/MCtruthAllPt"), part.pt()); } - if (pdgCode == -211) { + if (pdgCode == kPiMinus) { registryMCtruth.fill(HIST("minus/MCtruthPi"), part.pt(), part.eta()); registryMCtruth.fill(HIST("minus/MCtruthPiPt"), part.pt()); } - if (pdgCode == -2212) { + if (pdgCode == -kProton) { registryMCtruth.fill(HIST("minus/MCtruthPr"), part.pt(), part.eta()); registryMCtruth.fill(HIST("minus/MCtruthPrPt"), part.pt()); } @@ -1166,7 +1177,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { const auto& mcpart = mcparts.iteratorAt(mcPartId); // if (part.partType() == aod::femtouniverseparticle::ParticleType::kV0) { - if (mcpart.pdgMCTruth() == 3122) { + if (mcpart.pdgMCTruth() == kLambda0) { const auto& posChild = parts.iteratorAt(part.globalIndex() - 2); const auto& negChild = parts.iteratorAt(part.globalIndex() - 1); /// Daughters that do not pass this condition are not selected @@ -1181,7 +1192,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { registryMCreco.fill(HIST("plus/MCrecoLambdaChildPi"), mcpartChild.pt(), mcpartChild.eta()); // lambda pion child } } - } else if (mcpart.pdgMCTruth() == -3122) { + } else if (mcpart.pdgMCTruth() == -kLambda0) { const auto& posChild = parts.iteratorAt(part.globalIndex() - 2); const auto& negChild = parts.iteratorAt(part.globalIndex() - 1); /// Daughters that do not pass this condition are not selected @@ -1200,10 +1211,10 @@ struct FemtoUniversePairTaskTrackV0Helicity { } else if (part.partType() == aod::femtouniverseparticle::ParticleType::kTrack) { if (part.sign() > 0) { registryMCreco.fill(HIST("plus/MCrecoAllPt"), mcpart.pt()); - if (mcpart.pdgMCTruth() == 211 && isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi()))) { + if (mcpart.pdgMCTruth() == kPiPlus && isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi()))) { registryMCreco.fill(HIST("plus/MCrecoPi"), mcpart.pt(), mcpart.eta()); registryMCreco.fill(HIST("plus/MCrecoPiPt"), mcpart.pt()); - } else if (mcpart.pdgMCTruth() == 2212 && isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr()))) { + } else if (mcpart.pdgMCTruth() == kProton && isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr()))) { registryMCreco.fill(HIST("plus/MCrecoPr"), mcpart.pt(), mcpart.eta()); registryMCreco.fill(HIST("plus/MCrecoPrPt"), mcpart.pt()); } @@ -1211,10 +1222,10 @@ struct FemtoUniversePairTaskTrackV0Helicity { if (part.sign() < 0) { registryMCreco.fill(HIST("minus/MCrecoAllPt"), mcpart.pt()); - if (mcpart.pdgMCTruth() == -211 && isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi()))) { + if (mcpart.pdgMCTruth() == kPiMinus && isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi()))) { registryMCreco.fill(HIST("minus/MCrecoPi"), mcpart.pt(), mcpart.eta()); registryMCreco.fill(HIST("minus/MCrecoPiPt"), mcpart.pt()); - } else if (mcpart.pdgMCTruth() == -2212 && isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr()))) { + } else if (mcpart.pdgMCTruth() == -kProton && isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr()))) { registryMCreco.fill(HIST("minus/MCrecoPr"), mcpart.pt(), mcpart.eta()); registryMCreco.fill(HIST("minus/MCrecoPrPt"), mcpart.pt()); } From 8e4fd6f9f43b13281078dfe296b2657cbb0cd045 Mon Sep 17 00:00:00 2001 From: Anna-Mariia Andrushko <01175703@pw.edu.pl> Date: Tue, 5 May 2026 16:30:55 +0200 Subject: [PATCH 2/3] Add extra histos --- .../femtoUniversePairTaskTrackV0Helicity.cxx | 65 ++++++++++++++----- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx index a32bf8392d6..fd9d299b69e 100644 --- a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx +++ b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx @@ -189,7 +189,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { Configurable cfgProcessHel4{"cfgProcessHel4", false, "Process particle pairs from the helicity range 4"}; // -0.5 > cosineTheta >= -1.0 ConfigurableAxis confInvMassMotherpTBinsHel{"confInvMassMotherpTBinsHel", {5, 0, 5}, "pT binning in the pT vs. InvMassMother plot for helicity"}; ConfigurableAxis confInvMassMotherBinsHel{"confInvMassMotherBinsHel", {1000, 0.8, 1.4}, "InvMassMother binning in the pT vs. InvMassMother plot for helicity"}; - ConfigurableAxis confInvMassK0Short{"confInvMassK0s", {1000, 0.2, 0.8}, "Invariant mass binning for K0 Short"}; + ConfigurableAxis confInvMassK0Short{"confInvMassK0Short", {1000, 0.2, 0.8}, "Invariant mass binning for K0 Short"}; // o2-linter: disable=lowerCamelCase (consistency with generally accepted particle name) /// Efficiency Configurable confLocalEfficiency{"confLocalEfficiency", "", "Local path to efficiency .root file"}; @@ -323,7 +323,16 @@ struct FemtoUniversePairTaskTrackV0Helicity { thetaRegistry.add("Theta/Mother/hInvMassMotherHel2", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); thetaRegistry.add("Theta/Mother/hInvMassMotherHel3", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); thetaRegistry.add("Theta/Mother/hInvMassMotherHel4", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassK0Short", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMC", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel1", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel2", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel3", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel4", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMC", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel1", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel2", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel3", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel4", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); /// MC Truth registryMCtruth.add("plus/MCtruthLambda", "MC truth Lambdas;#it{p}_{T} (GeV/c); #eta", {HistType::kTH2F, {{500, 0, 5}, {400, -1.0, 1.0}}}); @@ -491,19 +500,43 @@ struct FemtoUniversePairTaskTrackV0Helicity { thetaRegistry.fill(HIST("Theta/NegativeChild/hThetaEta"), negChild.eta(), cosineTheta); thetaRegistry.fill(HIST("Theta/NegativeChild/hThetaPhi"), negChild.phi(), cosineTheta); - if (cosineTheta <= 1.0 && cosineTheta >= 0.1) + if (cosineTheta <= 1.0 && cosineTheta >= 0.1) // o2-linter: disable=magic-number (fixed cuts values) thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel1"), part.pt(), part.mLambda()); - else if (cosineTheta < 0.1 && cosineTheta >= -0.1) + else if (cosineTheta < 0.1 && cosineTheta >= -0.1) // o2-linter: disable=magic-number (fixed cuts values) thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel2"), part.pt(), part.mLambda()); - else if (cosineTheta < -0.1 && cosineTheta >= -0.5) + else if (cosineTheta < -0.1 && cosineTheta >= -0.5) // o2-linter: disable=magic-number (fixed cuts values) thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel3"), part.pt(), part.mLambda()); - else if (cosineTheta < -0.5 && cosineTheta >= -1) + else if (cosineTheta < -0.5 && cosineTheta >= -1.0) // o2-linter: disable=magic-number (fixed cuts values) thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel4"), part.pt(), part.mLambda()); + /// Histogramming for MC Reco to calculate fraction of K0S in Lambda sample for each helicity bin if constexpr (confIsMC) { if (part.has_fdMCParticle()) { - if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) { - thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0Short"), part.mKaon()); + if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassLambdaMC"), part.mLambda()); + else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0ShortMC"), part.mKaon()); + + if (cosineTheta <= 1.0 && cosineTheta >= 0.1) { // o2-linter: disable=magic-number (fixed cuts values) + if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassLambdaMCHel1"), part.mLambda()); + else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0ShortMCHel1"), part.mKaon()); + } else if (cosineTheta < 0.1 && cosineTheta >= -0.1) { // o2-linter: disable=magic-number (fixed cuts values) + if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassLambdaMCHel2"), part.mLambda()); + else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0ShortMCHel2"), part.mKaon()); + } else if (cosineTheta < -0.1 && cosineTheta >= -0.5) { // o2-linter: disable=magic-number (fixed cuts values) + if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassLambdaMCHel3"), part.mLambda()); + else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0ShortMCHel3"), part.mKaon()); + } else if (cosineTheta < -0.5 && cosineTheta >= -1.0) { // o2-linter: disable=magic-number (fixed cuts values) + if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassLambdaMCHel4"), part.mLambda()); + else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) + thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0ShortMCHel4"), part.mKaon()); } } } @@ -571,28 +604,28 @@ struct FemtoUniversePairTaskTrackV0Helicity { } case 1: { - if (cosineTheta <= 1.0 && cosineTheta >= 0.1) + if (cosineTheta <= 1.0 && cosineTheta >= 0.1) // o2-linter: disable=magic-number (fixed cuts values) sameEventContHel1.setPair(p1, p2, multCol, confUse3D, weight); break; } case 2: { - if (cosineTheta < 0.1 && cosineTheta >= -0.1) + if (cosineTheta < 0.1 && cosineTheta >= -0.1) // o2-linter: disable=magic-number (fixed cuts values) sameEventContHel2.setPair(p1, p2, multCol, confUse3D, weight); break; } case 3: { - if (cosineTheta < -0.1 && cosineTheta >= -0.5) + if (cosineTheta < -0.1 && cosineTheta >= -0.5) // o2-linter: disable=magic-number (fixed cuts values) sameEventContHel3.setPair(p1, p2, multCol, confUse3D, weight); break; } case 4: { - if (cosineTheta < -0.5 && cosineTheta >= -1.0) + if (cosineTheta < -0.5 && cosineTheta >= -1.0) // o2-linter: disable=magic-number (fixed cuts values) sameEventContHel4.setPair(p1, p2, multCol, confUse3D, weight); break; @@ -869,28 +902,28 @@ struct FemtoUniversePairTaskTrackV0Helicity { } case 1: { - if (cosineTheta <= 1.0 && cosineTheta >= 0.1) + if (cosineTheta <= 1.0 && cosineTheta >= 0.1) // o2-linter: disable=magic-number (fixed cuts values) mixedEventContHel1.setPair(p1, p2, multCol, confUse3D, weight); break; } case 2: { - if (cosineTheta < 0.1 && cosineTheta >= -0.1) + if (cosineTheta < 0.1 && cosineTheta >= -0.1) // o2-linter: disable=magic-number (fixed cuts values) mixedEventContHel2.setPair(p1, p2, multCol, confUse3D, weight); break; } case 3: { - if (cosineTheta < -0.1 && cosineTheta >= -0.5) + if (cosineTheta < -0.1 && cosineTheta >= -0.5) // o2-linter: disable=magic-number (fixed cuts values) mixedEventContHel3.setPair(p1, p2, multCol, confUse3D, weight); break; } case 4: { - if (cosineTheta < -0.5 && cosineTheta >= -1.0) + if (cosineTheta < -0.5 && cosineTheta >= -1.0) // o2-linter: disable=magic-number (fixed cuts values) mixedEventContHel4.setPair(p1, p2, multCol, confUse3D, weight); break; From 0dc6c867139e0c5822a454edac6f073139596f82 Mon Sep 17 00:00:00 2001 From: Anna-Mariia Andrushko <01175703@pw.edu.pl> Date: Tue, 5 May 2026 17:18:13 +0200 Subject: [PATCH 3/3] Add extra histos and fix some O2 linter errors --- .../femtoUniversePairTaskTrackV0Helicity.cxx | 115 ++++++++++-------- 1 file changed, 61 insertions(+), 54 deletions(-) diff --git a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx index fd9d299b69e..d832430f99d 100644 --- a/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx +++ b/PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Helicity.cxx @@ -182,14 +182,21 @@ struct FemtoUniversePairTaskTrackV0Helicity { } twotracksconfigs; /// Helicity ranges and configurables - Configurable cfgProcessHel{"cfgProcessHel", true, "Process particle pairs from all helicity ranges"}; - Configurable cfgProcessHel1{"cfgProcessHel1", false, "Process particle pairs from the helicity range 1"}; // 1.0 >= cosineTheta >= 0.1 - Configurable cfgProcessHel2{"cfgProcessHel2", false, "Process particle pairs from the helicity range 2"}; // 0.1 > cosineTheta >= -0.1 - Configurable cfgProcessHel3{"cfgProcessHel3", false, "Process particle pairs from the helicity range 3"}; // -0.1 > cosineTheta >= -0.5 - Configurable cfgProcessHel4{"cfgProcessHel4", false, "Process particle pairs from the helicity range 4"}; // -0.5 > cosineTheta >= -1.0 - ConfigurableAxis confInvMassMotherpTBinsHel{"confInvMassMotherpTBinsHel", {5, 0, 5}, "pT binning in the pT vs. InvMassMother plot for helicity"}; - ConfigurableAxis confInvMassMotherBinsHel{"confInvMassMotherBinsHel", {1000, 0.8, 1.4}, "InvMassMother binning in the pT vs. InvMassMother plot for helicity"}; - ConfigurableAxis confInvMassK0Short{"confInvMassK0Short", {1000, 0.2, 0.8}, "Invariant mass binning for K0 Short"}; // o2-linter: disable=lowerCamelCase (consistency with generally accepted particle name) + struct : o2::framework::ConfigurableGroup { + Configurable cfgProcessHel{"cfgProcessHel", true, "Process particle pairs from all helicity ranges"}; + Configurable cfgProcessHel1{"cfgProcessHel1", false, "Process particle pairs from the helicity range 1"}; // 1.0 >= cosineTheta >= 0.1 + Configurable cfgProcessHel2{"cfgProcessHel2", false, "Process particle pairs from the helicity range 2"}; // 0.1 > cosineTheta >= -0.1 + Configurable cfgProcessHel3{"cfgProcessHel3", false, "Process particle pairs from the helicity range 3"}; // -0.1 > cosineTheta >= -0.5 + Configurable cfgProcessHel4{"cfgProcessHel4", false, "Process particle pairs from the helicity range 4"}; // -0.5 > cosineTheta >= -1.0 + Configurable confLimitHel0{"confLimitHel0", 1.0, "Highest value of the helicity angle"}; + Configurable confLimitHel1{"confLimitHel1", 0.1, "Border value between ranges 1 and 2"}; + Configurable confLimitHel2{"confLimitHel2", -0.1, "Border value between ranges 2 and 3"}; + Configurable confLimitHel3{"confLimitHel3", -0.5, "Border value between ranges 3 and 4"}; + Configurable confLimitHel4{"confLimitHel4", -1.0, "Lowest value of the helicity angle"}; + ConfigurableAxis confInvMassMotherpTBinsHel{"confInvMassMotherpTBinsHel", {5, 0, 5}, "pT binning in the pT vs. InvMassMother plot for helicity"}; + ConfigurableAxis confInvMassMotherBinsHel{"confInvMassMotherBinsHel", {1000, 0.8, 1.4}, "InvMassMother binning in the pT vs. InvMassMother plot for helicity"}; + ConfigurableAxis confInvMassK0Short{"confInvMassK0Short", {1000, 0.2, 0.8}, "Invariant mass binning for K0 Short"}; // o2-linter: disable=lowerCamelCase (consistency with generally accepted particle name) + } helicityconfigs; /// Efficiency Configurable confLocalEfficiency{"confLocalEfficiency", "", "Local path to efficiency .root file"}; @@ -319,20 +326,20 @@ struct FemtoUniversePairTaskTrackV0Helicity { thetaRegistry.add("Theta/NegativeChild/hThetaPt", " ; p_{T} (GeV/#it{c}); cos(#theta)", kTH2F, {{100, 0, 10}, {110, -1.1, 1.1}}); thetaRegistry.add("Theta/NegativeChild/hThetaEta", " ; #eta; cos(#theta)", kTH2F, {{100, -1, 1}, {110, -1.1, 1.1}}); thetaRegistry.add("Theta/NegativeChild/hThetaPhi", " ; #phi; cos(#theta)", kTH2F, {{100, -1, 7}, {110, -1.1, 1.1}}); - thetaRegistry.add("Theta/Mother/hInvMassMotherHel1", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassMotherHel2", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassMotherHel3", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassMotherHel4", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {confInvMassMotherpTBinsHel, confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassLambdaMC", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel1", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel2", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel3", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel4", " ; M_{#Lambda}; ;", kTH1F, {confInvMassMotherBinsHel}); - thetaRegistry.add("Theta/Mother/hInvMassK0ShortMC", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); - thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel1", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); - thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel2", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); - thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel3", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); - thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel4", " ; M_{K^{0}_{S}}; ;", kTH1F, {confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassMotherHel1", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {helicityconfigs.confInvMassMotherpTBinsHel, helicityconfigs.confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassMotherHel2", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {helicityconfigs.confInvMassMotherpTBinsHel, helicityconfigs.confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassMotherHel3", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {helicityconfigs.confInvMassMotherpTBinsHel, helicityconfigs.confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassMotherHel4", " ; p_{T} (GeV/#it{c}); M_{#Lambda};", kTH2F, {helicityconfigs.confInvMassMotherpTBinsHel, helicityconfigs.confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMC", " ; M_{#Lambda}; ;", kTH1F, {helicityconfigs.confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel1", " ; M_{#Lambda}; ;", kTH1F, {helicityconfigs.confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel2", " ; M_{#Lambda}; ;", kTH1F, {helicityconfigs.confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel3", " ; M_{#Lambda}; ;", kTH1F, {helicityconfigs.confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassLambdaMCHel4", " ; M_{#Lambda}; ;", kTH1F, {helicityconfigs.confInvMassMotherBinsHel}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMC", " ; M_{K^{0}_{S}}; ;", kTH1F, {helicityconfigs.confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel1", " ; M_{K^{0}_{S}}; ;", kTH1F, {helicityconfigs.confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel2", " ; M_{K^{0}_{S}}; ;", kTH1F, {helicityconfigs.confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel3", " ; M_{K^{0}_{S}}; ;", kTH1F, {helicityconfigs.confInvMassK0Short}); + thetaRegistry.add("Theta/Mother/hInvMassK0ShortMCHel4", " ; M_{K^{0}_{S}}; ;", kTH1F, {helicityconfigs.confInvMassK0Short}); /// MC Truth registryMCtruth.add("plus/MCtruthLambda", "MC truth Lambdas;#it{p}_{T} (GeV/c); #eta", {HistType::kTH2F, {{500, 0, 5}, {400, -1.0, 1.0}}}); @@ -396,7 +403,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { registryMCreco.add("ThetaMCReco/NegativeChild/hThetaPhi", " ; #phi; cos(#theta)", kTH2F, {{100, -1, 7}, {110, -1.1, 1.1}}); /// Correlations - if (cfgProcessHel) { + if (helicityconfigs.cfgProcessHel) { sameEventCont.init(&resultRegistry, confkstarBins, confMultBins, confkTBins, confmTBins, confMultBins3D, confmTBins3D, confEtaBins, confPhiBins, confIsMC, confUse3D); sameEventCont.setPDGCodes(trackconfigs.confTrkPDGCodePartOne, V0configs.confV0PDGCodePartTwo); @@ -404,7 +411,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { mixedEventCont.setPDGCodes(trackconfigs.confTrkPDGCodePartOne, V0configs.confV0PDGCodePartTwo); } - if (cfgProcessHel1) { + if (helicityconfigs.cfgProcessHel1) { sameEventContHel1.init(&resultRegistryHel1, confkstarBins, confMultBins, confkTBins, confmTBins, confMultBins3D, confmTBins3D, confEtaBins, confPhiBins, confIsMC, confUse3D); sameEventContHel1.setPDGCodes(trackconfigs.confTrkPDGCodePartOne, V0configs.confV0PDGCodePartTwo); @@ -412,7 +419,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { mixedEventContHel1.setPDGCodes(trackconfigs.confTrkPDGCodePartOne, V0configs.confV0PDGCodePartTwo); } - if (cfgProcessHel2) { + if (helicityconfigs.cfgProcessHel2) { sameEventContHel2.init(&resultRegistryHel2, confkstarBins, confMultBins, confkTBins, confmTBins, confMultBins3D, confmTBins3D, confEtaBins, confPhiBins, confIsMC, confUse3D); sameEventContHel2.setPDGCodes(trackconfigs.confTrkPDGCodePartOne, V0configs.confV0PDGCodePartTwo); @@ -420,7 +427,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { mixedEventContHel2.setPDGCodes(trackconfigs.confTrkPDGCodePartOne, V0configs.confV0PDGCodePartTwo); } - if (cfgProcessHel3) { + if (helicityconfigs.cfgProcessHel3) { sameEventContHel3.init(&resultRegistryHel3, confkstarBins, confMultBins, confkTBins, confmTBins, confMultBins3D, confmTBins3D, confEtaBins, confPhiBins, confIsMC, confUse3D); sameEventContHel3.setPDGCodes(trackconfigs.confTrkPDGCodePartOne, V0configs.confV0PDGCodePartTwo); @@ -428,7 +435,7 @@ struct FemtoUniversePairTaskTrackV0Helicity { mixedEventContHel3.setPDGCodes(trackconfigs.confTrkPDGCodePartOne, V0configs.confV0PDGCodePartTwo); } - if (cfgProcessHel4) { + if (helicityconfigs.cfgProcessHel4) { sameEventContHel4.init(&resultRegistryHel4, confkstarBins, confMultBins, confkTBins, confmTBins, confMultBins3D, confmTBins3D, confEtaBins, confPhiBins, confIsMC, confUse3D); sameEventContHel4.setPDGCodes(trackconfigs.confTrkPDGCodePartOne, V0configs.confV0PDGCodePartTwo); @@ -500,16 +507,16 @@ struct FemtoUniversePairTaskTrackV0Helicity { thetaRegistry.fill(HIST("Theta/NegativeChild/hThetaEta"), negChild.eta(), cosineTheta); thetaRegistry.fill(HIST("Theta/NegativeChild/hThetaPhi"), negChild.phi(), cosineTheta); - if (cosineTheta <= 1.0 && cosineTheta >= 0.1) // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta <= helicityconfigs.confLimitHel0 && cosineTheta >= helicityconfigs.confLimitHel1) thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel1"), part.pt(), part.mLambda()); - else if (cosineTheta < 0.1 && cosineTheta >= -0.1) // o2-linter: disable=magic-number (fixed cuts values) + else if (cosineTheta < helicityconfigs.confLimitHel1 && cosineTheta >= helicityconfigs.confLimitHel2) thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel2"), part.pt(), part.mLambda()); - else if (cosineTheta < -0.1 && cosineTheta >= -0.5) // o2-linter: disable=magic-number (fixed cuts values) + else if (cosineTheta < helicityconfigs.confLimitHel2 && cosineTheta >= helicityconfigs.confLimitHel3) thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel3"), part.pt(), part.mLambda()); - else if (cosineTheta < -0.5 && cosineTheta >= -1.0) // o2-linter: disable=magic-number (fixed cuts values) + else if (cosineTheta < helicityconfigs.confLimitHel3 && cosineTheta >= helicityconfigs.confLimitHel4) thetaRegistry.fill(HIST("Theta/Mother/hInvMassMotherHel4"), part.pt(), part.mLambda()); - /// Histogramming for MC Reco to calculate fraction of K0S in Lambda sample for each helicity bin + /// Histogramming for MC Reco to calculate fraction of K0S in the Lambda sample for each helicity bin if constexpr (confIsMC) { if (part.has_fdMCParticle()) { if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) @@ -517,22 +524,22 @@ struct FemtoUniversePairTaskTrackV0Helicity { else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0ShortMC"), part.mKaon()); - if (cosineTheta <= 1.0 && cosineTheta >= 0.1) { // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta <= helicityconfigs.confLimitHel0 && cosineTheta >= helicityconfigs.confLimitHel1) { if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) thetaRegistry.fill(HIST("Theta/Mother/hInvMassLambdaMCHel1"), part.mLambda()); else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0ShortMCHel1"), part.mKaon()); - } else if (cosineTheta < 0.1 && cosineTheta >= -0.1) { // o2-linter: disable=magic-number (fixed cuts values) + } else if (cosineTheta < helicityconfigs.confLimitHel1 && cosineTheta >= helicityconfigs.confLimitHel2) { if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) thetaRegistry.fill(HIST("Theta/Mother/hInvMassLambdaMCHel2"), part.mLambda()); else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0ShortMCHel2"), part.mKaon()); - } else if (cosineTheta < -0.1 && cosineTheta >= -0.5) { // o2-linter: disable=magic-number (fixed cuts values) + } else if (cosineTheta < helicityconfigs.confLimitHel2 && cosineTheta >= helicityconfigs.confLimitHel3) { if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) thetaRegistry.fill(HIST("Theta/Mother/hInvMassLambdaMCHel3"), part.mLambda()); else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) thetaRegistry.fill(HIST("Theta/Mother/hInvMassK0ShortMCHel3"), part.mKaon()); - } else if (cosineTheta < -0.5 && cosineTheta >= -1.0) { // o2-linter: disable=magic-number (fixed cuts values) + } else if (cosineTheta < helicityconfigs.confLimitHel3 && cosineTheta >= helicityconfigs.confLimitHel4) { if ((part.fdMCParticle()).pdgMCTruth() == kLambda0) thetaRegistry.fill(HIST("Theta/Mother/hInvMassLambdaMCHel4"), part.mLambda()); else if ((part.fdMCParticle()).pdgMCTruth() == kK0Short) @@ -604,28 +611,28 @@ struct FemtoUniversePairTaskTrackV0Helicity { } case 1: { - if (cosineTheta <= 1.0 && cosineTheta >= 0.1) // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta < helicityconfigs.confLimitHel0 && cosineTheta >= helicityconfigs.confLimitHel1) sameEventContHel1.setPair(p1, p2, multCol, confUse3D, weight); break; } case 2: { - if (cosineTheta < 0.1 && cosineTheta >= -0.1) // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta < helicityconfigs.confLimitHel1 && cosineTheta >= helicityconfigs.confLimitHel2) sameEventContHel2.setPair(p1, p2, multCol, confUse3D, weight); break; } case 3: { - if (cosineTheta < -0.1 && cosineTheta >= -0.5) // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta < helicityconfigs.confLimitHel2 && cosineTheta >= helicityconfigs.confLimitHel3) sameEventContHel3.setPair(p1, p2, multCol, confUse3D, weight); break; } case 4: { - if (cosineTheta < -0.5 && cosineTheta >= -1.0) // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta < helicityconfigs.confLimitHel3 && cosineTheta >= helicityconfigs.confLimitHel4) sameEventContHel4.setPair(p1, p2, multCol, confUse3D, weight); break; @@ -642,19 +649,19 @@ struct FemtoUniversePairTaskTrackV0Helicity { auto groupPartsOne = partsOne->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache); auto groupPartsTwo = partsTwo->sliceByCached(aod::femtouniverseparticle::fdCollisionId, col.globalIndex(), cache); - if (cfgProcessHel) + if (helicityconfigs.cfgProcessHel) doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 0); - if (cfgProcessHel1) + if (helicityconfigs.cfgProcessHel1) doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 1); - if (cfgProcessHel2) + if (helicityconfigs.cfgProcessHel2) doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 2); - if (cfgProcessHel3) + if (helicityconfigs.cfgProcessHel3) doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 3); - if (cfgProcessHel4) + if (helicityconfigs.cfgProcessHel4) doSameEvent(col, parts, groupPartsOne, groupPartsTwo, 4); } PROCESS_SWITCH(FemtoUniversePairTaskTrackV0Helicity, processSameEvent, "Enable processing same event for track - V0", false); @@ -902,28 +909,28 @@ struct FemtoUniversePairTaskTrackV0Helicity { } case 1: { - if (cosineTheta <= 1.0 && cosineTheta >= 0.1) // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta < helicityconfigs.confLimitHel0 && cosineTheta >= helicityconfigs.confLimitHel1) mixedEventContHel1.setPair(p1, p2, multCol, confUse3D, weight); break; } case 2: { - if (cosineTheta < 0.1 && cosineTheta >= -0.1) // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta < helicityconfigs.confLimitHel1 && cosineTheta >= helicityconfigs.confLimitHel2) mixedEventContHel2.setPair(p1, p2, multCol, confUse3D, weight); break; } case 3: { - if (cosineTheta < -0.1 && cosineTheta >= -0.5) // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta < helicityconfigs.confLimitHel2 && cosineTheta >= helicityconfigs.confLimitHel3) mixedEventContHel3.setPair(p1, p2, multCol, confUse3D, weight); break; } case 4: { - if (cosineTheta < -0.5 && cosineTheta >= -1.0) // o2-linter: disable=magic-number (fixed cuts values) + if (cosineTheta < helicityconfigs.confLimitHel3 && cosineTheta >= helicityconfigs.confLimitHel4) mixedEventContHel4.setPair(p1, p2, multCol, confUse3D, weight); break; @@ -950,19 +957,19 @@ struct FemtoUniversePairTaskTrackV0Helicity { void processMixedEvent(FilteredFDCollisions const& cols, FemtoFullParticles const& parts) { - if (cfgProcessHel) + if (helicityconfigs.cfgProcessHel) doMixedEvent(cols, parts, partsOne, partsTwo, 0); - if (cfgProcessHel1) + if (helicityconfigs.cfgProcessHel1) doMixedEvent(cols, parts, partsOne, partsTwo, 1); - if (cfgProcessHel2) + if (helicityconfigs.cfgProcessHel2) doMixedEvent(cols, parts, partsOne, partsTwo, 2); - if (cfgProcessHel3) + if (helicityconfigs.cfgProcessHel3) doMixedEvent(cols, parts, partsOne, partsTwo, 3); - if (cfgProcessHel4) + if (helicityconfigs.cfgProcessHel4) doMixedEvent(cols, parts, partsOne, partsTwo, 4); } PROCESS_SWITCH(FemtoUniversePairTaskTrackV0Helicity, processMixedEvent, "Enable processing mixed event for track - V0", false);