From ce33c2293b8147ecc27d0f332aa40e68be5a618c Mon Sep 17 00:00:00 2001 From: Giovanni Malfattore Date: Tue, 21 Oct 2025 11:32:57 +0200 Subject: [PATCH 1/4] NucleiTask - Fix error --- PWGLF/Tasks/Nuspex/{LFNucleiBATask.cxx => lfNucleiBATask.cxx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename PWGLF/Tasks/Nuspex/{LFNucleiBATask.cxx => lfNucleiBATask.cxx} (100%) diff --git a/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx b/PWGLF/Tasks/Nuspex/lfNucleiBATask.cxx similarity index 100% rename from PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx rename to PWGLF/Tasks/Nuspex/lfNucleiBATask.cxx From b6f1b749f0be203ab2e81908c3ec950a8168ab66 Mon Sep 17 00:00:00 2001 From: Giovanni Malfattore Date: Tue, 21 Oct 2025 11:39:26 +0200 Subject: [PATCH 2/4] NucleiTask - Fix bugs in mult dependent histos --- PWGLF/Tasks/Nuspex/{lfNucleiBATask.cxx => LFNucleiBATask.cxx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename PWGLF/Tasks/Nuspex/{lfNucleiBATask.cxx => LFNucleiBATask.cxx} (100%) diff --git a/PWGLF/Tasks/Nuspex/lfNucleiBATask.cxx b/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx similarity index 100% rename from PWGLF/Tasks/Nuspex/lfNucleiBATask.cxx rename to PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx From 8aeafbb655ad9436731194959e6bb51773dabd53 Mon Sep 17 00:00:00 2001 From: Giovanni Malfattore Date: Tue, 31 Mar 2026 12:31:10 +0200 Subject: [PATCH 3/4] NucleiTask - Fix ITSHe applied to all tracks --- PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx | 35 ++++++++++++--------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx b/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx index 80b50320ea6..73b75e50ae0 100644 --- a/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx +++ b/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx @@ -2392,7 +2392,7 @@ struct LFNucleiBATask { return; } - if (centFT0M <= cfgMultCutLow || centFT0M > cfgMultCutHigh) { + if (enableCentrality && (centFT0M <= cfgMultCutLow || centFT0M > cfgMultCutHigh)) { return; } if (enableCentrality) @@ -2699,8 +2699,9 @@ struct LFNucleiBATask { isDeuteron = enableDe && deRapCut; isHelium = enableHe && heRapCut; - isDe = isDeuteron && track.sign() > 0; - isAntiDe = isDeuteron && track.sign() < 0; + + bool passITSDeCut = !nsigmaITSvar.useITSDeCut || (nITSDe > nsigmaITSvar.nsigmaITSDe); + bool passITSHeCut = !nsigmaITSvar.useITSHeCut || (nITSHe > nsigmaITSvar.nsigmaITSHe); if constexpr (IsMC && !IsFilteredData) { int pdgCheck = track.mcParticle().pdgCode(); @@ -2710,25 +2711,19 @@ struct LFNucleiBATask { histos.fill(HIST("tracks/hItsDeHeChecker"), 1); } - // nSigmaITSHe cut - if (nsigmaITSvar.useITSDeCut && (nITSDe <= nsigmaITSvar.nsigmaITSDe)) { - continue; - } - - if (nsigmaITSvar.useITSHeCut && (nITSHe <= nsigmaITSvar.nsigmaITSHe)) { - continue; - } - if constexpr (IsMC && !IsFilteredData) { int pdgCheck = track.mcParticle().pdgCode(); - if (std::abs(pdgCheck) == PDGDeuteron) + if ((std::abs(pdgCheck) == PDGDeuteron) && passITSDeCut) histos.fill(HIST("tracks/hItsDeHeChecker"), 2); - if (std::abs(pdgCheck) == PDGHelium) + if ((std::abs(pdgCheck) == PDGHelium) && passITSHeCut) histos.fill(HIST("tracks/hItsDeHeChecker"), 3); } - isHe = isHelium && track.sign() > 0; - isAntiHe = isHelium && track.sign() < 0; + isDe = isDeuteron && passITSDeCut && track.sign() > 0; + isAntiDe = isDeuteron && passITSDeCut && track.sign() < 0; + + isHe = isHelium && passITSHeCut && track.sign() > 0; + isAntiHe = isHelium && passITSHeCut && track.sign() < 0; isDeWoDCAxy = isDe && passDCAzCutDe; isAntiDeWoDCAxy = isAntiDe && passDCAzCutAntiDe; @@ -4913,7 +4908,8 @@ struct LFNucleiBATask { } if (isHeWTPCpid) { - histos.fill(HIST("tracks/helium/TOF/h2HeliumSpectraVsMult_Z2"), 2 * hePt, centFT0M); + if (enableCentrality) + histos.fill(HIST("tracks/helium/TOF/h2HeliumSpectraVsMult_Z2"), 2 * hePt, centFT0M); histos.fill(HIST("tracks/helium/h2HeliumTOFbetaVsP"), heP, track.beta()); if (outFlagOptions.enableEffPlots) { histos.fill(HIST("tracks/eff/helium/h2pVsTOFExpMomentumHe"), track.tofExpMom(), heP); @@ -4922,7 +4918,8 @@ struct LFNucleiBATask { } if (isAntiHeWTPCpid) { - histos.fill(HIST("tracks/helium/TOF/h2antiHeliumSpectraVsMult_Z2"), 2 * antihePt, centFT0M); + if (enableCentrality) + histos.fill(HIST("tracks/helium/TOF/h2antiHeliumSpectraVsMult_Z2"), 2 * antihePt, centFT0M); histos.fill(HIST("tracks/helium/h2antiHeliumTOFbetaVsP"), antiheP, track.beta()); if (outFlagOptions.enableEffPlots) { histos.fill(HIST("tracks/eff/helium/h2pVsTOFExpMomentumantiHe"), track.tofExpMom(), antiheP); @@ -6387,7 +6384,7 @@ struct LFNucleiBATask { return; } - if (mcCollision.centFT0M() < cfgMultCutLow || mcCollision.centFT0M() > cfgMultCutHigh) + if (enableCentrality && (mcCollision.centFT0M() < cfgMultCutLow || mcCollision.centFT0M() > cfgMultCutHigh)) return; if (evselOptions.enableGenVzCut) { From a4d085d5fa2a82e21c33467756162bebfec0a19b Mon Sep 17 00:00:00 2001 From: Giovanni Malfattore Date: Wed, 1 Apr 2026 14:35:00 +0200 Subject: [PATCH 4/4] NucleiTask - Add comments --- PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx b/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx index 73b75e50ae0..a8a4363432d 100644 --- a/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx +++ b/PWGLF/Tasks/Nuspex/LFNucleiBATask.cxx @@ -2700,6 +2700,7 @@ struct LFNucleiBATask { isDeuteron = enableDe && deRapCut; isHelium = enableHe && heRapCut; + // ITS PID cut bool passITSDeCut = !nsigmaITSvar.useITSDeCut || (nITSDe > nsigmaITSvar.nsigmaITSDe); bool passITSHeCut = !nsigmaITSvar.useITSHeCut || (nITSHe > nsigmaITSvar.nsigmaITSHe); @@ -4632,7 +4633,6 @@ struct LFNucleiBATask { // TOF if (outFlagOptions.doTOFplots) { - if (isDeWTPCpid) { switch (useHasTRDConfig) { case 0: