From f1fb2f8eb7ee0105deb9ec1522ad4b48d9890450 Mon Sep 17 00:00:00 2001 From: lramona Date: Fri, 6 Nov 2026 12:25:56 +0100 Subject: [PATCH 1/6] Update the MC closure test function --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 72 +++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 4 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 6ab1dd8a82d..e5d1670225a 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1534,10 +1534,9 @@ struct tofSpectra { continue; } // trackwoCut++; - if (std::abs(track.dcaXY()) > 0.05) { // Skipping tracks that don't pass the standard cuts - return; + if (!passesDCAxyCut(track)) { // Skipping tracks that don't pass the standard cuts + continue; } - // trackwCut++; const auto& mcLabel = mcTrackLabels.iteratorAt(track.globalIndex()); const auto& mcParticle = mcParticles.iteratorAt(mcLabel.mcParticleId()); @@ -1562,7 +1561,7 @@ struct tofSpectra { double rapidityKa = track.rapidity(PID::getMass(3)); double rapidityPr = track.rapidity(PID::getMass(4)); if (track.eta() < trkselOptions.cfgCutEtaMin || track.eta() > trkselOptions.cfgCutEtaMax) { - return; + continue; } if (mcParticle.isPhysicalPrimary()) { if (isTPCPion && rapidityPi >= trkselOptions.cfgCutYMin && rapidityPi <= trkselOptions.cfgCutYMax) { @@ -1603,6 +1602,71 @@ struct tofSpectra { } // TOF Selection and Histogram Filling + // RL TOF selections: same cut for TRD as inclusive analysis. + if (!track.hasTOF()) { + continue; + } + + if (trkselOptions.requireTrdOnly && !track.hasTRD()) { + continue; + } + + if (trkselOptions.requireNoTrd && track.hasTRD()) { + continue; + } + + if (track.hasTRD() && trkselOptions.lastRequiredTrdCluster > 0) { + int lastLayer = 0; + + for (int layer = 7; layer >= 0; --layer) { + if (track.trdPattern() & (1 << layer)) { + lastLayer = layer; + break; + } + } + + if (lastLayer < trkselOptions.lastRequiredTrdCluster) { + continue; + } + } + + // RL: add a selection in the selection event time + + switch (trkselOptions.selectEvTime) { + case 0: + break; // Nessuna selezione + case 1: + if (!track.isEvTimeDefined()) { + continue; + } + break; + case 2: + if (!track.isEvTimeTOF()) { + continue; + } + break; + case 3: + if (!track.isEvTimeT0AC()) { + continue; + } + break; + case 4: + if (!track.isEvTimeTOFT0AC()) { + continue; + } + break; + case 5: + if (track.isEvTimeDefined()) { + continue; + } + break; + default: + LOG(fatal) << "Valore selectEvTime non riconosciuto: " + << trkselOptions.selectEvTime; + } + + // + if (isTOFPion && rapidityPi >= trkselOptions.cfgCutYMin && rapidityPi <= trkselOptions.cfgCutYMax) { if (usePDGcode) { if (pdgCode == kPiPlus) { From 66b4fd7f4a2ecbf3ad5a9db2e1efec96b05bd9a2 Mon Sep 17 00:00:00 2001 From: lramona Date: Fri, 6 Nov 2026 12:35:18 +0100 Subject: [PATCH 2/6] Update the MC closure test function --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index e5d1670225a..612745ae1ef 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1630,7 +1630,7 @@ struct tofSpectra { } } - // RL: add a selection in the selection event time + // RL: add an selection in the selection event time switch (trkselOptions.selectEvTime) { case 0: @@ -1664,7 +1664,7 @@ struct tofSpectra { LOG(fatal) << "Valore selectEvTime non riconosciuto: " << trkselOptions.selectEvTime; } - + // if (isTOFPion && rapidityPi >= trkselOptions.cfgCutYMin && rapidityPi <= trkselOptions.cfgCutYMax) { From 51b1415acea91f71b5f80f2b4cae1b1fb741a366 Mon Sep 17 00:00:00 2001 From: lramona Date: Fri, 6 Nov 2026 12:39:38 +0100 Subject: [PATCH 3/6] Update the MC closure test function --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 612745ae1ef..6c03e014049 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1601,7 +1601,7 @@ struct tofSpectra { } } - // TOF Selection and Histogram Filling + // TOF Selection and Histogram Filling // RL TOF selections: same cut for TRD as inclusive analysis. if (!track.hasTOF()) { continue; @@ -1610,14 +1610,13 @@ struct tofSpectra { if (trkselOptions.requireTrdOnly && !track.hasTRD()) { continue; } - + if (trkselOptions.requireNoTrd && track.hasTRD()) { continue; } if (track.hasTRD() && trkselOptions.lastRequiredTrdCluster > 0) { int lastLayer = 0; - for (int layer = 7; layer >= 0; --layer) { if (track.trdPattern() & (1 << layer)) { lastLayer = layer; @@ -1629,12 +1628,12 @@ struct tofSpectra { continue; } } - + // RL: add an selection in the selection event time switch (trkselOptions.selectEvTime) { case 0: - break; // Nessuna selezione + break; // No selection case 1: if (!track.isEvTimeDefined()) { continue; From 412212db961c1f055effe803b07a1ce8c3e1e66f Mon Sep 17 00:00:00 2001 From: lramona Date: Fri, 6 Nov 2026 12:42:43 +0100 Subject: [PATCH 4/6] Update the MC closure test function --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 132 +++++++++++++++--------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 6c03e014049..7dcb893d48d 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1535,7 +1535,7 @@ struct tofSpectra { } // trackwoCut++; if (!passesDCAxyCut(track)) { // Skipping tracks that don't pass the standard cuts - continue; + continue; } // trackwCut++; const auto& mcLabel = mcTrackLabels.iteratorAt(track.globalIndex()); @@ -1601,71 +1601,71 @@ struct tofSpectra { } } - // TOF Selection and Histogram Filling - // RL TOF selections: same cut for TRD as inclusive analysis. - if (!track.hasTOF()) { - continue; - } - - if (trkselOptions.requireTrdOnly && !track.hasTRD()) { - continue; - } - - if (trkselOptions.requireNoTrd && track.hasTRD()) { - continue; - } - - if (track.hasTRD() && trkselOptions.lastRequiredTrdCluster > 0) { - int lastLayer = 0; - for (int layer = 7; layer >= 0; --layer) { - if (track.trdPattern() & (1 << layer)) { - lastLayer = layer; - break; - } - } - - if (lastLayer < trkselOptions.lastRequiredTrdCluster) { - continue; - } - } - - // RL: add an selection in the selection event time - - switch (trkselOptions.selectEvTime) { - case 0: - break; // No selection - case 1: - if (!track.isEvTimeDefined()) { - continue; - } - break; - case 2: - if (!track.isEvTimeTOF()) { - continue; - } - break; - case 3: - if (!track.isEvTimeT0AC()) { - continue; - } - break; - case 4: - if (!track.isEvTimeTOFT0AC()) { - continue; - } - break; - case 5: - if (track.isEvTimeDefined()) { - continue; - } - break; - default: - LOG(fatal) << "Valore selectEvTime non riconosciuto: " - << trkselOptions.selectEvTime; - } - - // - + // TOF Selection and Histogram Filling + // RL TOF selections: same cut for TRD as inclusive analysis. + if (!track.hasTOF()) { + continue; + } + + if (trkselOptions.requireTrdOnly && !track.hasTRD()) { + continue; + } + + if (trkselOptions.requireNoTrd && track.hasTRD()) { + continue; + } + + if (track.hasTRD() && trkselOptions.lastRequiredTrdCluster > 0) { + int lastLayer = 0; + for (int layer = 7; layer >= 0; --layer) { + if (track.trdPattern() & (1 << layer)) { + lastLayer = layer; + break; + } + } + + if (lastLayer < trkselOptions.lastRequiredTrdCluster) { + continue; + } + } + + // RL: add an selection in the selection event time + + switch (trkselOptions.selectEvTime) { + case 0: + break; // No selection + case 1: + if (!track.isEvTimeDefined()) { + continue; + } + break; + case 2: + if (!track.isEvTimeTOF()) { + continue; + } + break; + case 3: + if (!track.isEvTimeT0AC()) { + continue; + } + break; + case 4: + if (!track.isEvTimeTOFT0AC()) { + continue; + } + break; + case 5: + if (track.isEvTimeDefined()) { + continue; + } + break; + default: + LOG(fatal) << "Valore selectEvTime non riconosciuto: " + << trkselOptions.selectEvTime; + } + + // + if (isTOFPion && rapidityPi >= trkselOptions.cfgCutYMin && rapidityPi <= trkselOptions.cfgCutYMax) { if (usePDGcode) { if (pdgCode == kPiPlus) { From fda164ef1c449fadf156cf60de55aa7ebe4d3c1a Mon Sep 17 00:00:00 2001 From: lramona Date: Fri, 6 Nov 2026 12:53:54 +0100 Subject: [PATCH 5/6] Update the MC closure test function --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 7dcb893d48d..39e0f6c027e 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -2212,9 +2212,7 @@ struct tofSpectra { if (!mcParticle.isPhysicalPrimary()) { // Is not physical primary if (mcParticle.getProcess() == kPDecay) { // Is from decay if (includeCentralityMC) { - if (includeCentralityMC) { - histos.fill(HIST(hpt_num_str[i]), track.pt(), multiplicity, track.dcaXY()); - } + histos.fill(HIST(hpt_num_str[i]), track.pt(), multiplicity, track.dcaXY()); } else { histos.fill(HIST(hpt_num_str[i]), track.pt(), multiplicity); } @@ -2749,8 +2747,6 @@ struct tofSpectra { } histos.fill(HIST("MC/Multiplicity"), getMultiplicityMC(mcCollision)); const auto& particlesInCollision = mcParticles.sliceByCached(aod::mcparticle::mcCollisionId, mcCollision.globalIndex(), cache); - bool hasParticleInFT0C = false; - bool hasParticleInFT0A = false; if (evselOptions.cfgINELCut.value == EvSelInelGt0Cut) { if (!o2::pwglf::isINELgt0mc(particlesInCollision, pdgDB)) { continue; @@ -2777,9 +2773,6 @@ struct tofSpectra { if (mcCollision.isInelGt1()) { histos.fill(HIST("MC/GenRecoCollisions"), 4.f); } - if (hasParticleInFT0C && hasParticleInFT0A) { - histos.fill(HIST("MC/GenRecoCollisions"), 5.f); - } } } PROCESS_SWITCH(tofSpectra, processMC, "Process MC", false); From 5999661d296d3b63b39a61bfb63fce49812aefe2 Mon Sep 17 00:00:00 2001 From: lramona Date: Fri, 6 Nov 2026 12:54:59 +0100 Subject: [PATCH 6/6] Update the MC closure test function