From 1e874c7cd20a14d052905b171f88bb078640ff47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Tue, 23 Sep 2025 15:21:03 +0200 Subject: [PATCH 1/5] Update histogram configurations for TPC and ITS --- PWGLF/Tasks/QC/systematicsMapping.cxx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/PWGLF/Tasks/QC/systematicsMapping.cxx b/PWGLF/Tasks/QC/systematicsMapping.cxx index b4e2a3a5a29..16203c9e7e0 100644 --- a/PWGLF/Tasks/QC/systematicsMapping.cxx +++ b/PWGLF/Tasks/QC/systematicsMapping.cxx @@ -40,8 +40,8 @@ struct SystematicsMapping { ConfigurableAxis invariantMassBins{"invariantMassBins", {100, -0.1f, 0.1f}, "Binning for the invariant mass (GeV/c^2)"}; ConfigurableAxis nsigmaBins{"nsigmaBins", {100, -10.f, 10.f}, "Binning for nSigma"}; // Selection bins - ConfigurableAxis tpcClusterBins{"tpcClusterBins", {5, 70, 100, 120, 135, 150}, "Min TPC clusters for tracks"}; - ConfigurableAxis itsClustersBins{"itsClustersBins", {5, 0, 6}, "Min ITS clusters for tracks"}; + ConfigurableAxis tpcCrossedRowsBins{"tpcCrossedRowsBins", {5, 70, 100, 120, 135, 150}, "TPC Crossed rows bins for tracks"}; + ConfigurableAxis itsClustersBins{"itsClustersBins", {5, 0, 6}, "ITS Crossed rows bins for tracks"}; // Selection configurables Configurable selectionPosZ{"selectionPosZ", 10.f, "Max |z| of the primary vertex"}; @@ -61,15 +61,15 @@ struct SystematicsMapping { if (doprocessData) { - // First we define the histograms on which we are cutting (tpc clusters, its clusters, ..) - registry.add("K/hTPCClusters", "", HistType::kTH1F, {{100, 0, 200}}); + // First we define the histograms on which we are cutting (tpc crossed rows, its clusters, ..) + registry.add("K/hTPCCrossedRows", "", HistType::kTH1F, {{100, 0, 200}}); registry.add("K/hITSClusters", "", HistType::kTH1F, {{10, 0, 10}}); registry.addClone("K/", "K0s/"); // Add the signal histograms - registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcClusterBins, itsClustersBins}); - registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcClusterBins, itsClustersBins}); - registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, invariantMassBins, tpcClusterBins, itsClustersBins}); + registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins}); + registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins}); + registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, invariantMassBins, tpcCrossedRowsBins, itsClustersBins}); } if (doprocessMc) { @@ -94,12 +94,12 @@ struct SystematicsMapping { for (const auto& track : tracks) { if (track.collisionId() != collision.globalIndex()) continue; - registry.fill(HIST("hTPCClusters"), track.tpcNClsFound()); + registry.fill(HIST("hTPCCrossedRows"), track.tpcCrossedRows()); registry.fill(HIST("hITSClusters"), track.itsNCls()); if (track.sign() > 0) - registry.fill(HIST("K/SignalPositive"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcNClsFound(), track.itsNCls()); + registry.fill(HIST("K/SignalPositive"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcCrossedRows(), track.itsNCls()); else - registry.fill(HIST("K/SignalNegative"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcNClsFound(), track.itsNCls()); + registry.fill(HIST("K/SignalNegative"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcCrossedRows(), track.itsNCls()); } // K0s loop @@ -108,7 +108,7 @@ struct SystematicsMapping { continue; const auto& posTrack = v0.posTrack_as(); const auto& negTrack = v0.negTrack_as(); - registry.fill(HIST("K0s/Signal"), v0.pt(), v0.eta(), v0.phi(), v0.mK0Short() - constants::physics::MassK0Short, std::min(posTrack.tpcNClsFound(), negTrack.tpcNClsFound()), std::min(posTrack.itsNCls(), negTrack.itsNCls())); + registry.fill(HIST("K0s/Signal"), v0.pt(), v0.eta(), v0.phi(), v0.mK0Short() - constants::physics::MassK0Short, std::min(posTrack.tpcCrossedRows(), negTrack.tpcCrossedRows()), std::min(posTrack.itsNCls(), negTrack.itsNCls())); } } } From 9605a2723fd412a8f861f49968c6a6c7516d8ae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Tue, 23 Sep 2025 17:07:35 +0200 Subject: [PATCH 2/5] Update systematicsMapping.cxx --- PWGLF/Tasks/QC/systematicsMapping.cxx | 37 ++++++++++++++++++--------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/PWGLF/Tasks/QC/systematicsMapping.cxx b/PWGLF/Tasks/QC/systematicsMapping.cxx index 16203c9e7e0..4b9a050e884 100644 --- a/PWGLF/Tasks/QC/systematicsMapping.cxx +++ b/PWGLF/Tasks/QC/systematicsMapping.cxx @@ -40,8 +40,10 @@ struct SystematicsMapping { ConfigurableAxis invariantMassBins{"invariantMassBins", {100, -0.1f, 0.1f}, "Binning for the invariant mass (GeV/c^2)"}; ConfigurableAxis nsigmaBins{"nsigmaBins", {100, -10.f, 10.f}, "Binning for nSigma"}; // Selection bins - ConfigurableAxis tpcCrossedRowsBins{"tpcCrossedRowsBins", {5, 70, 100, 120, 135, 150}, "TPC Crossed rows bins for tracks"}; - ConfigurableAxis itsClustersBins{"itsClustersBins", {5, 0, 6}, "ITS Crossed rows bins for tracks"}; + ConfigurableAxis tpcCrossedRowsBins{"tpcCrossedRowsBins", {5, 70, 100, 120, 135, 150}, "Min TPC clusters for tracks"}; + ConfigurableAxis itsClustersBins{"itsClustersBins", {5, 0, 6}, "Min ITS clusters for tracks"}; + ConfigurableAxis dcaBins{"dcaBins", {100, 0.f, 5.f}, "Binning for DCA (cm)"}; + ConfigurableAxis chi2Bins{"chi2Bins", {100, 0.f, 10.f}, "Binning for chi2"}; // Selection configurables Configurable selectionPosZ{"selectionPosZ", 10.f, "Max |z| of the primary vertex"}; @@ -61,15 +63,18 @@ struct SystematicsMapping { if (doprocessData) { - // First we define the histograms on which we are cutting (tpc crossed rows, its clusters, ..) + // First we define the histograms on which we are cutting (tpc clusters, its clusters, ..) registry.add("K/hTPCCrossedRows", "", HistType::kTH1F, {{100, 0, 200}}); registry.add("K/hITSClusters", "", HistType::kTH1F, {{10, 0, 10}}); + registry.add("K/hDCAxy", "", HistType::kTH1F, {dcaBins}); + registry.add("K/hDCAz", "", HistType::kTH1F, {dcaBins}); + registry.add("K/hChi2", "", HistType::kTH1F, {chi2Bins}); registry.addClone("K/", "K0s/"); // Add the signal histograms - registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins}); - registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins}); - registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, invariantMassBins, tpcCrossedRowsBins, itsClustersBins}); + registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins, dcaBins, chi2Bins}); + registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins, dcaBins, chi2Bins}); + registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, invariantMassBins, tpcCrossedRowsBins, itsClustersBins, dcaBins, chi2Bins}); } if (doprocessMc) { @@ -79,7 +84,7 @@ struct SystematicsMapping { } } - using TrackType = soa::Join; + using TrackType = soa::Join; using CollisionType = soa::Join; void processData(CollisionType const& collisions, @@ -94,12 +99,15 @@ struct SystematicsMapping { for (const auto& track : tracks) { if (track.collisionId() != collision.globalIndex()) continue; - registry.fill(HIST("hTPCCrossedRows"), track.tpcCrossedRows()); - registry.fill(HIST("hITSClusters"), track.itsNCls()); + registry.fill(HIST("K/hTPCCrossedRows"), track.tpcNClsCrossedRows()); + registry.fill(HIST("K/hITSClusters"), track.itsNCls()); + registry.fill(HIST("K/hDCAxy"), track.dcaXY()); + registry.fill(HIST("K/hDCAz"), track.dcaZ()); + registry.fill(HIST("K/hChi2"), track.tpcChi2NCl()); if (track.sign() > 0) - registry.fill(HIST("K/SignalPositive"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcCrossedRows(), track.itsNCls()); + registry.fill(HIST("K/SignalPositive"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl()); else - registry.fill(HIST("K/SignalNegative"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcCrossedRows(), track.itsNCls()); + registry.fill(HIST("K/SignalNegative"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl()); } // K0s loop @@ -108,7 +116,12 @@ struct SystematicsMapping { continue; const auto& posTrack = v0.posTrack_as(); const auto& negTrack = v0.negTrack_as(); - registry.fill(HIST("K0s/Signal"), v0.pt(), v0.eta(), v0.phi(), v0.mK0Short() - constants::physics::MassK0Short, std::min(posTrack.tpcCrossedRows(), negTrack.tpcCrossedRows()), std::min(posTrack.itsNCls(), negTrack.itsNCls())); + registry.fill(HIST("K0s/Signal"), v0.pt(), v0.eta(), v0.phi(), v0.mK0Short() - constants::physics::MassK0Short, + std::min(posTrack.tpcNClsCrossedRows(), negTrack.tpcNClsCrossedRows()), + std::min(posTrack.itsNCls(), negTrack.itsNCls()), + std::min(posTrack.dcaXY(), negTrack.dcaXY()), + std::min(posTrack.dcaZ(), negTrack.dcaZ()), + std::min(posTrack.tpcChi2NCl(), negTrack.tpcChi2NCl())); } } } From 509b9e42918bd72626adfe0d2f0f0522120e05a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Tue, 23 Sep 2025 17:11:44 +0200 Subject: [PATCH 3/5] Modify chi2Bins and add chi2 histograms Updated chi2Bins range and added new histograms for chi2 over NCls for TPC and ITS. --- PWGLF/Tasks/QC/systematicsMapping.cxx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/PWGLF/Tasks/QC/systematicsMapping.cxx b/PWGLF/Tasks/QC/systematicsMapping.cxx index 4b9a050e884..16350dc6748 100644 --- a/PWGLF/Tasks/QC/systematicsMapping.cxx +++ b/PWGLF/Tasks/QC/systematicsMapping.cxx @@ -43,7 +43,7 @@ struct SystematicsMapping { ConfigurableAxis tpcCrossedRowsBins{"tpcCrossedRowsBins", {5, 70, 100, 120, 135, 150}, "Min TPC clusters for tracks"}; ConfigurableAxis itsClustersBins{"itsClustersBins", {5, 0, 6}, "Min ITS clusters for tracks"}; ConfigurableAxis dcaBins{"dcaBins", {100, 0.f, 5.f}, "Binning for DCA (cm)"}; - ConfigurableAxis chi2Bins{"chi2Bins", {100, 0.f, 10.f}, "Binning for chi2"}; + ConfigurableAxis chi2Bins{"chi2Bins", {100, 0.f, 100.f}, "Binning for chi2"}; // Selection configurables Configurable selectionPosZ{"selectionPosZ", 10.f, "Max |z| of the primary vertex"}; @@ -68,7 +68,8 @@ struct SystematicsMapping { registry.add("K/hITSClusters", "", HistType::kTH1F, {{10, 0, 10}}); registry.add("K/hDCAxy", "", HistType::kTH1F, {dcaBins}); registry.add("K/hDCAz", "", HistType::kTH1F, {dcaBins}); - registry.add("K/hChi2", "", HistType::kTH1F, {chi2Bins}); + registry.add("K/hChi2OverNCLsTPC", "", HistType::kTH1F, {chi2Bins}); + registry.add("K/hChi2OverNCLsITS", "", HistType::kTH1F, {chi2Bins}); registry.addClone("K/", "K0s/"); // Add the signal histograms @@ -103,7 +104,8 @@ struct SystematicsMapping { registry.fill(HIST("K/hITSClusters"), track.itsNCls()); registry.fill(HIST("K/hDCAxy"), track.dcaXY()); registry.fill(HIST("K/hDCAz"), track.dcaZ()); - registry.fill(HIST("K/hChi2"), track.tpcChi2NCl()); + registry.fill(HIST("K/hChi2OverNCLsTPC"), track.tpcChi2NCl()); + registry.fill(HIST("K/hChi2OverNCLsITS"), track.itsChi2NCl()); if (track.sign() > 0) registry.fill(HIST("K/SignalPositive"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl()); else @@ -116,6 +118,12 @@ struct SystematicsMapping { continue; const auto& posTrack = v0.posTrack_as(); const auto& negTrack = v0.negTrack_as(); + registry.fill(HIST("K0s/hTPCCrossedRows"), std::min(posTrack.tpcNClsCrossedRows(), negTrack.tpcNClsCrossedRows())); + registry.fill(HIST("K0s/hITSClusters"), std::min(posTrack.itsNCls(), negTrack.itsNCls())); + registry.fill(HIST("K0s/hDCAxy"), std::min(posTrack.dcaXY(), negTrack.dcaXY())); + registry.fill(HIST("K0s/hDCAz"), std::min(posTrack.dcaZ(), negTrack.dcaZ())); + registry.fill(HIST("K0s/hChi2OverNCLsTPC"), std::min(posTrack.tpcChi2NCl(), negTrack.tpcChi2NCl())); + registry.fill(HIST("K0s/hChi2OverNCLsITS"), std::min(posTrack.itsChi2NCl(), negTrack.itsChi2NCl())); registry.fill(HIST("K0s/Signal"), v0.pt(), v0.eta(), v0.phi(), v0.mK0Short() - constants::physics::MassK0Short, std::min(posTrack.tpcNClsCrossedRows(), negTrack.tpcNClsCrossedRows()), std::min(posTrack.itsNCls(), negTrack.itsNCls()), From 8a72b29bd72ceb2b0b384dd6facc777a31b5d38e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Tue, 23 Sep 2025 17:44:49 +0200 Subject: [PATCH 4/5] Add V0 selection criteria and update histograms --- PWGLF/Tasks/QC/systematicsMapping.cxx | 45 +++++++++++++++++++++------ 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/PWGLF/Tasks/QC/systematicsMapping.cxx b/PWGLF/Tasks/QC/systematicsMapping.cxx index 16350dc6748..4e89629e39e 100644 --- a/PWGLF/Tasks/QC/systematicsMapping.cxx +++ b/PWGLF/Tasks/QC/systematicsMapping.cxx @@ -46,6 +46,13 @@ struct SystematicsMapping { ConfigurableAxis chi2Bins{"chi2Bins", {100, 0.f, 100.f}, "Binning for chi2"}; // Selection configurables Configurable selectionPosZ{"selectionPosZ", 10.f, "Max |z| of the primary vertex"}; + // V0 selection criteria + Configurable v0cospa{"v0cospa", 0.97, "V0 CosPA"}; + Configurable dcav0dau{"dcav0dau", 10, "DCA V0 Daughters"}; + Configurable dcanegtopv{"dcanegtopv", 0.0, "DCA Neg To PV"}; + Configurable dcapostopv{"dcapostopv", 0.0, "DCA Pos To PV"}; + Configurable v0radius{"v0radius", 0.0, "Radius"}; + Configurable etadau{"etadau", 0.8, "Eta Daughters"}; HistogramRegistry registry{"registry"}; @@ -60,6 +67,15 @@ struct SystematicsMapping { const AxisSpec ptAxis{ptBins, "#it{p}_{T} (GeV/c)"}; const AxisSpec etaAxis{etaBins, "#eta"}; const AxisSpec phiAxis{phiBins, "#phi (rad)"}; + const AxisSpec invariantMassAxis{invariantMassBins, "Invariant Mass (GeV/c^{2})"}; + const AxisSpec nsigmaAxisTPC{nsigmaBins, "nSigma TPC"}; + const AxisSpec nsigmaAxisTOF{nsigmaBins, "nSigma TOF"}; + const AxisSpec tpcCrossedRowsAxis{tpcCrossedRowsBins, "TPC crossed rows"}; + const AxisSpec itsClustersAxis{itsClustersBins, "ITS clusters"}; + const AxisSpec dcaXYAxis{dcaBins, "DCAxy (cm)"}; + const AxisSpec dcaZAxis{dcaBins, "DCAz (cm)"}; + const AxisSpec chi2TPCAxis{chi2Bins, "TPC Chi2"}; + const AxisSpec chi2ITSAxis{chi2Bins, "ITS Chi2"}; if (doprocessData) { @@ -73,19 +89,19 @@ struct SystematicsMapping { registry.addClone("K/", "K0s/"); // Add the signal histograms - registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins, dcaBins, chi2Bins}); - registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, nsigmaBins, tpcCrossedRowsBins, itsClustersBins, dcaBins, chi2Bins}); - registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins, invariantMassBins, tpcCrossedRowsBins, itsClustersBins, dcaBins, chi2Bins}); + registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsBins, itsClustersBins, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis}); + registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsBins, itsClustersBins, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis}); + registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, invariantMassBins, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsBins, itsClustersBins, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis}); } if (doprocessMc) { - registry.add("K/GeneratedPositive", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins}); - registry.add("K/GeneratedNegative", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins}); - registry.add("K0s/Generated", "", HistType::kTHnSparseF, {ptBins, etaBins, phiBins}); + registry.add("K/GeneratedPositive", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis}); + registry.add("K/GeneratedNegative", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis}); + registry.add("K0s/Generated", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis}); } } - using TrackType = soa::Join; + using TrackType = soa::Join; using CollisionType = soa::Join; void processData(CollisionType const& collisions, @@ -107,17 +123,23 @@ struct SystematicsMapping { registry.fill(HIST("K/hChi2OverNCLsTPC"), track.tpcChi2NCl()); registry.fill(HIST("K/hChi2OverNCLsITS"), track.itsChi2NCl()); if (track.sign() > 0) - registry.fill(HIST("K/SignalPositive"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl()); + registry.fill(HIST("K/SignalPositive"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tofNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl(), track.itsChi2NCl()); else - registry.fill(HIST("K/SignalNegative"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl()); + registry.fill(HIST("K/SignalNegative"), track.pt(), track.eta(), track.phi(), track.tpcNSigmaKa(), track.tofNSigmaKa(), track.tpcNClsCrossedRows(), track.itsNCls(), track.dcaXY(), track.dcaZ(), track.tpcChi2NCl(), track.itsChi2NCl()); } // K0s loop for (const auto& v0 : v0s) { if (v0.collisionId() != collision.globalIndex()) continue; + const auto& posTrack = v0.posTrack_as(); const auto& negTrack = v0.negTrack_as(); + if (v0.v0radius() < v0radius || + v0.v0cosPA() < v0cospa || + std::abs(posTrack.eta()) > etadau || + std::abs(negTrack.eta()) > etadau) + continue; registry.fill(HIST("K0s/hTPCCrossedRows"), std::min(posTrack.tpcNClsCrossedRows(), negTrack.tpcNClsCrossedRows())); registry.fill(HIST("K0s/hITSClusters"), std::min(posTrack.itsNCls(), negTrack.itsNCls())); registry.fill(HIST("K0s/hDCAxy"), std::min(posTrack.dcaXY(), negTrack.dcaXY())); @@ -125,11 +147,14 @@ struct SystematicsMapping { registry.fill(HIST("K0s/hChi2OverNCLsTPC"), std::min(posTrack.tpcChi2NCl(), negTrack.tpcChi2NCl())); registry.fill(HIST("K0s/hChi2OverNCLsITS"), std::min(posTrack.itsChi2NCl(), negTrack.itsChi2NCl())); registry.fill(HIST("K0s/Signal"), v0.pt(), v0.eta(), v0.phi(), v0.mK0Short() - constants::physics::MassK0Short, + std::max(posTrack.tpcNSigmaPi(), negTrack.tpcNSigmaPi()), + std::max(posTrack.tofNSigmaPi(), negTrack.tofNSigmaPi()), std::min(posTrack.tpcNClsCrossedRows(), negTrack.tpcNClsCrossedRows()), std::min(posTrack.itsNCls(), negTrack.itsNCls()), std::min(posTrack.dcaXY(), negTrack.dcaXY()), std::min(posTrack.dcaZ(), negTrack.dcaZ()), - std::min(posTrack.tpcChi2NCl(), negTrack.tpcChi2NCl())); + std::min(posTrack.tpcChi2NCl(), negTrack.tpcChi2NCl()), + std::min(posTrack.itsChi2NCl(), negTrack.itsChi2NCl())); } } } From 7a23d59f59600b974f20bd6c2be274ac49ed04e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Jacazio?= Date: Tue, 23 Sep 2025 17:46:39 +0200 Subject: [PATCH 5/5] Update histogram axes in systematicsMapping.cxx --- PWGLF/Tasks/QC/systematicsMapping.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGLF/Tasks/QC/systematicsMapping.cxx b/PWGLF/Tasks/QC/systematicsMapping.cxx index 4e89629e39e..ea76a528b05 100644 --- a/PWGLF/Tasks/QC/systematicsMapping.cxx +++ b/PWGLF/Tasks/QC/systematicsMapping.cxx @@ -89,9 +89,9 @@ struct SystematicsMapping { registry.addClone("K/", "K0s/"); // Add the signal histograms - registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsBins, itsClustersBins, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis}); - registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsBins, itsClustersBins, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis}); - registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, invariantMassBins, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsBins, itsClustersBins, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis}); + registry.add("K/SignalPositive", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsAxis, itsClustersAxis, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis}); + registry.add("K/SignalNegative", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsAxis, itsClustersAxis, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis}); + registry.add("K0s/Signal", "", HistType::kTHnSparseF, {ptAxis, etaAxis, phiAxis, invariantMassBins, nsigmaAxisTPC, nsigmaAxisTOF, tpcCrossedRowsAxis, itsClustersAxis, dcaXYAxis, dcaZAxis, chi2TPCAxis, chi2ITSAxis}); } if (doprocessMc) {