From 6b34ebdf24f13561c1e7a1e6624d625b699d7833 Mon Sep 17 00:00:00 2001 From: Rafael Manhart <56776511+RafRaf11@users.noreply.github.com> Date: Mon, 6 Feb 2023 18:12:30 +0100 Subject: [PATCH 01/10] Changed ptBinning For ability to analyse lower pT ranges --- PWGLF/Tasks/NucleiHistTask.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index 961e932aaa4..55c25c88b3e 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -94,7 +94,7 @@ struct NucleiHistTask { LOG(fatal) << "Can't enable processData and processDataCent in the same time, pick one!"; } - std::vector ptBinning = {0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.8, 3.2, 3.6, 4., 5., 6., 8., 10., 12., 14.}; + std::vector ptBinning = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.8, 3.2, 3.6, 4., 5., 6., 8., 10., 12., 14.}; std::vector centBinning = {0., 1., 5., 10., 20., 30., 40., 50., 70., 100.}; AxisSpec ptAxis = {ptBinning, "#it{p}_{T} (GeV/#it{c})"}; From acc3b5d006c23335167742efce0379695017ca76 Mon Sep 17 00:00:00 2001 From: Rafael Manhart <56776511+RafRaf11@users.noreply.github.com> Date: Thu, 23 Feb 2023 15:23:17 +0100 Subject: [PATCH 02/10] Feature; Changes to the derived table and small bugfixes. --- PWGLF/Tasks/NucleiHistTask.cxx | 301 ++++++++++++++++++++------------- 1 file changed, 184 insertions(+), 117 deletions(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index 55c25c88b3e..980ac78e45c 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -44,16 +44,27 @@ namespace NucleiTableHist DECLARE_SOA_COLUMN(Pt, pt, float); DECLARE_SOA_COLUMN(Sign, sign, int8_t); DECLARE_SOA_COLUMN(Eta, eta, float); +DECLARE_SOA_COLUMN(IsPVContributor, isPVcontributor, bool); +DECLARE_SOA_COLUMN(HasITS, hasITS, bool); +DECLARE_SOA_COLUMN(HasTPC, hasTPC, bool); +DECLARE_SOA_COLUMN(HasTRD, hasTRD, bool); +DECLARE_SOA_COLUMN(HasTOF, hasTOF, bool); +DECLARE_SOA_COLUMN(ITSnCls, itsNCls, uint8_t); +DECLARE_SOA_COLUMN(TPCNClsFound, tpcNClsFound, int16_t); +DECLARE_SOA_COLUMN(TPCNClsCrossedRows, tpcNClsCrossedRows, int16_t); +DECLARE_SOA_COLUMN(TPCCrossedRowsOverFindableCls, tpcCrossedRowsOverFindableCls, float); +DECLARE_SOA_COLUMN(PassedITSRefit, passedITSRefit, bool); +DECLARE_SOA_COLUMN(PassedTPCRefit, passedTPCRefit, bool); DECLARE_SOA_COLUMN(ITSChi2NCl, itsChi2NCl, float); DECLARE_SOA_COLUMN(TPCChi2NCl, tpcChi2NCl, float); -DECLARE_SOA_COLUMN(ITSnCls, itsNCls, uint8_t); -DECLARE_SOA_COLUMN(TPCnCls, tpcNCls, uint8_t); DECLARE_SOA_COLUMN(TPCNSigmaPr, tpcNSigmaPr, float); DECLARE_SOA_COLUMN(TOFNSigmaPr, tofNSigmaPr, float); DECLARE_SOA_COLUMN(TPCNSigmaDe, tpcNSigmaDe, float); DECLARE_SOA_COLUMN(TOFNSigmaDe, tofNSigmaDe, float); DECLARE_SOA_COLUMN(TPCNSigmaHe, tpcNSigmaHe, float); DECLARE_SOA_COLUMN(TOFNSigmaHe, tofNSigmaHe, float); +DECLARE_SOA_COLUMN(TOFmass2, tofmass2, float); +DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float); DECLARE_SOA_COLUMN(DCAxy, dcaxy, int8_t); DECLARE_SOA_COLUMN(DCAz, dcaz, int8_t); } // namespace NucleiTableHist @@ -61,16 +72,27 @@ DECLARE_SOA_TABLE(NucleiTable, "AOD", "NUCLEITABLE", NucleiTableHist::Pt, NucleiTableHist::Sign, NucleiTableHist::Eta, + NucleiTableHist::IsPVContributor, + NucleiTableHist::HasITS, + NucleiTableHist::HasTPC, + NucleiTableHist::HasTRD, + NucleiTableHist::HasTOF, + NucleiTableHist::ITSnCls, + NucleiTableHist::TPCNClsFound, + NucleiTableHist::TPCNClsCrossedRows, + NucleiTableHist::TPCCrossedRowsOverFindableCls, + NucleiTableHist::PassedITSRefit, + NucleiTableHist::PassedTPCRefit, NucleiTableHist::ITSChi2NCl, NucleiTableHist::TPCChi2NCl, - NucleiTableHist::ITSnCls, - NucleiTableHist::TPCnCls, NucleiTableHist::TPCNSigmaPr, NucleiTableHist::TOFNSigmaPr, NucleiTableHist::TPCNSigmaDe, NucleiTableHist::TOFNSigmaDe, NucleiTableHist::TPCNSigmaHe, NucleiTableHist::TOFNSigmaHe, + NucleiTableHist::TOFmass2, + NucleiTableHist::CentFT0C, NucleiTableHist::DCAxy, NucleiTableHist::DCAz) } // namespace o2::aod @@ -110,12 +132,6 @@ struct NucleiHistTask { spectra.add("histDcaVsPtData_antiparticle", "dcaXY vs Pt (antiparticle)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); spectra.add("histDcaZVsPtData_antiparticle", "dcaZ vs Pt (antiparticle)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); spectra.add("histTOFm2", "TOF m^2 vs Pt", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); - - spectra.add("histDcaVsPtData_wo_ambiguous_particle", "dcaXY vs Pt (particle) w/o ambiguous", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); - spectra.add("histDcaZVsPtData_wo_ambiguous_particle", "dcaZ vs Pt (particle) w/o ambiguous", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); - spectra.add("histDcaVsPtData_wo_ambiguous_antiparticle", "dcaXY vs Pt (antiparticle) w/o ambiguous", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); - spectra.add("histDcaZVsPtData_wo_ambiguous_antiparticle", "dcaZ vs Pt (antiparticle) w/o ambiguous", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); - spectra.add("histNClusterTPC", "Number of Clusters in TPC vs Pt", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); spectra.add("histNClusterITS", "Number of Clusters in ITS vs Pt", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); spectra.add("histChi2TPC", "chi^2 TPC vs Pt", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); @@ -128,15 +144,15 @@ struct NucleiHistTask { proton_erg.add("histDcaVsPtData", "dcaXY vs Pt (p)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); proton_erg.add("histDcaZVsPtData", "dcaZ vs Pt (p)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); proton_erg.add("histTOFm2", "TOF m^2 vs Pt (p)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); - proton_erg.add("histTpcNsigmaData", "n-sigma TPC (p)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}}); - proton_erg.add("histTofNsigmaData", "n-sigma TOF (p)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}}); - + proton_erg.add("histTpcNsigmaData", "n-sigma TPC (p)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p}"}}); + proton_erg.add("histTofNsigmaData", "n-sigma TOF (p)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p}"}}); proton_erg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (p)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); proton_erg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (p)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); proton_erg.add("histChi2TPC", "chi^2 TPC vs Pt (p)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); proton_erg.add("histChi2ITS", "chi^2 ITS vs Pt (p)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); - - proton_erg.add("histTpcNsigmaData_cent", "n-sigma TPC (p) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}, centralityAxis}); + proton_erg.add("histTpcNsigmaData_cent", "n-sigma TPC (p) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{p}"}, centralityAxis}); + proton_erg.add("histTofNsigmaData_cent", "n-sigma TOF (p) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{p}"}, centralityAxis}); + proton_erg.add("histTofm2_cent", "mass^2 TOF (p) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{p}"}, centralityAxis}); // histograms for antiProton aproton_erg.add("histKeepEventData", "skimming histogram (antip)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); @@ -145,15 +161,15 @@ struct NucleiHistTask { aproton_erg.add("histDcaVsPtData", "dcaXY vs Pt (antip)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); aproton_erg.add("histDcaZVsPtData", "dcaZ vs Pt (antip)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); aproton_erg.add("histTOFm2", "TOF m^2 vs Pt (antip)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); - aproton_erg.add("histTpcNsigmaData", "n-sigma TPC (antip)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}}); - aproton_erg.add("histTofNsigmaData", "n-sigma TOF (antip)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}}); - + aproton_erg.add("histTpcNsigmaData", "n-sigma TPC (antip)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antip}"}}); + aproton_erg.add("histTofNsigmaData", "n-sigma TOF (antip)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antip}"}}); aproton_erg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (antip)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); aproton_erg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (antip)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); aproton_erg.add("histChi2TPC", "chi^2 TPC vs Pt (antip)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); aproton_erg.add("histChi2ITS", "chi^2 ITS vs Pt (antip)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); - - aproton_erg.add("histTpcNsigmaData_cent", "n-sigma TPC (antip) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}, centralityAxis}); + aproton_erg.add("histTpcNsigmaData_cent", "n-sigma TPC (antip) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antip}"}, centralityAxis}); + aproton_erg.add("histTofNsigmaData_cent", "n-sigma TOF (antip) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antip}"}, centralityAxis}); + aproton_erg.add("histTofm2_cent", "mass^2 TOF (antip) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{antip}"}, centralityAxis}); // histograms for Deuterons deuteron_reg.add("histKeepEventData", "skimming histogram (d)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); @@ -162,15 +178,15 @@ struct NucleiHistTask { deuteron_reg.add("histDcaVsPtData", "dcaXY vs Pt (d)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); deuteron_reg.add("histDcaZVsPtData", "dcaZ vs Pt (d)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); deuteron_reg.add("histTOFm2", "TOF m^2 vs Pt (d)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); - deuteron_reg.add("histTpcNsigmaData", "n-sigma TPC (d)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d} (a. u.)"}}); - deuteron_reg.add("histTofNsigmaData", "n-sigma TOF (d)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d} (a. u.)"}}); - + deuteron_reg.add("histTpcNsigmaData", "n-sigma TPC (d)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d}"}}); + deuteron_reg.add("histTofNsigmaData", "n-sigma TOF (d)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d}"}}); deuteron_reg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (d)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); deuteron_reg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (d)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); deuteron_reg.add("histChi2TPC", "chi^2 TPC vs Pt (d)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); deuteron_reg.add("histChi2ITS", "chi^2 ITS vs Pt (d)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); - - deuteron_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (d) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}, centralityAxis}); + deuteron_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (d) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{d}"}, centralityAxis}); + deuteron_reg.add("histTofNsigmaData_cent", "n-sigma TOF (d) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{d}"}, centralityAxis}); + deuteron_reg.add("histTofm2_cent", "mass^2 TOF (d) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{d}"}, centralityAxis}); // histograms for antiDeuterons adeuteron_reg.add("histKeepEventData", "skimming histogram (antid)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); @@ -179,15 +195,15 @@ struct NucleiHistTask { adeuteron_reg.add("histDcaVsPtData", "dcaXY vs Pt (antid)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); adeuteron_reg.add("histDcaZVsPtData", "dcaZ vs Pt (antid)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); adeuteron_reg.add("histTOFm2", "TOF m^2 vs Pt (antid)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); - adeuteron_reg.add("histTpcNsigmaData", "n-sigma TPC (antid)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d} (a. u.)"}}); - adeuteron_reg.add("histTofNsigmaData", "n-sigma TOF (antid)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{d} (a. u.)"}}); - + adeuteron_reg.add("histTpcNsigmaData", "n-sigma TPC (antid)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}}); + adeuteron_reg.add("histTofNsigmaData", "n-sigma TOF (antid)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}}); adeuteron_reg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (antid)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); adeuteron_reg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (antid)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); adeuteron_reg.add("histChi2TPC", "chi^2 TPC vs Pt (antid)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); adeuteron_reg.add("histChi2ITS", "chi^2 ITS vs Pt (antid)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); - - adeuteron_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (antid) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}, centralityAxis}); + adeuteron_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (antid) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}, centralityAxis}); + adeuteron_reg.add("histTofNsigmaData_cent", "n-sigma TOF (antid) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}, centralityAxis}); + adeuteron_reg.add("histTofm2_cent", "mass^2 TOF (antid) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{antid}"}, centralityAxis}); // histograms for Helium-3 Helium3_reg.add("histKeepEventData", "skimming histogram (He-3)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); @@ -196,15 +212,15 @@ struct NucleiHistTask { Helium3_reg.add("histDcaVsPtData", "dcaXY vs Pt (He-3)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); Helium3_reg.add("histDcaZVsPtData", "dcaZ vs Pt (He-3)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); Helium3_reg.add("histTOFm2", "TOF m^2 vs Pt (He-3)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); - Helium3_reg.add("histTpcNsigmaData", "n-sigma TPC (He-3)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{He-3} (a. u.)"}}); - Helium3_reg.add("histTofNsigmaData", "n-sigma TOF (He-3)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{He-3} (a. u.)"}}); - + Helium3_reg.add("histTpcNsigmaData", "n-sigma TPC (He-3)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{He-3}"}}); + Helium3_reg.add("histTofNsigmaData", "n-sigma TOF (He-3)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{He-3}"}}); Helium3_reg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (He-3)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); Helium3_reg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (He-3)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); Helium3_reg.add("histChi2TPC", "chi^2 TPC vs Pt (He-3)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); Helium3_reg.add("histChi2ITS", "chi^2 ITS vs Pt (He-3)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); - - Helium3_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (He-3) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}, centralityAxis}); + Helium3_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (He-3) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{He-3}"}, centralityAxis}); + Helium3_reg.add("histTofNsigmaData_cent", "n-sigma TOF (He-3) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{He-3}"}, centralityAxis}); + Helium3_reg.add("histTofm2_cent", "mass^2 TOF (He-3) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{He-3}"}, centralityAxis}); // histograms for antiHelium-3 aHelium3_reg.add("histKeepEventData", "skimming histogram (antiHe-3)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); @@ -213,15 +229,15 @@ struct NucleiHistTask { aHelium3_reg.add("histDcaVsPtData", "dcaXY vs Pt (antiHe-3)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); aHelium3_reg.add("histDcaZVsPtData", "dcaZ vs Pt (antiHe-3)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); aHelium3_reg.add("histTOFm2", "TOF m^2 vs Pt (antiHe-3)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); - aHelium3_reg.add("histTpcNsigmaData", "n-sigma TPC (antiHe-3)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{He-3} (a. u.)"}}); - aHelium3_reg.add("histTofNsigmaData", "n-sigma TOF (antiHe-3)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{He-3} (a. u.)"}}); - + aHelium3_reg.add("histTpcNsigmaData", "n-sigma TPC (antiHe-3)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-3}"}}); + aHelium3_reg.add("histTofNsigmaData", "n-sigma TOF (antiHe-3)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-3}"}}); aHelium3_reg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (antiHe-3)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); aHelium3_reg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (antiHe-3)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); aHelium3_reg.add("histChi2TPC", "chi^2 TPC vs Pt (antiHe-3)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); aHelium3_reg.add("histChi2ITS", "chi^2 ITS vs Pt (antiHe-3)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); - - aHelium3_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (antiHe-3) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{p} (a. u.)"}, centralityAxis}); + aHelium3_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (antiHe-3) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-3}"}, centralityAxis}); + aHelium3_reg.add("histTofNsigmaData_cent", "n-sigma TOF (antiHe-3) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-3}"}, centralityAxis}); + aHelium3_reg.add("histTofm2_cent", "mass^2 TOF (antiHe-3) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{antiHe-3}"}, centralityAxis}); } Configurable yMin{"yMin", -0.5, "Maximum rapidity"}; @@ -265,7 +281,7 @@ struct NucleiHistTask { float Chi2perClusterTPC = track.tpcChi2NCl(); float Chi2perClusterITS = track.itsChi2NCl(); - if (TPCnumberCls < minNCrossedRowsTPC || RatioCrossedRowsOverFindableTPC < minRatioCrossedRowsTPC || Chi2perClusterTPC > maxChi2TPC || Chi2perClusterITS > maxChi2ITS || !(track.passedTPCRefit()) || !(track.passedITSRefit()) || (track.itsNCls()) < minReqClusterITS || (track.pt()) < pTmin || (track.pt()) > pTmax) { + if (TPCnumberCls < minNCrossedRowsTPC || RatioCrossedRowsOverFindableTPC < minRatioCrossedRowsTPC || Chi2perClusterTPC > maxChi2TPC || Chi2perClusterITS > maxChi2ITS || !(track.passedTPCRefit()) || !(track.passedITSRefit()) || (track.itsNCls()) < minReqClusterITS) { continue; } @@ -314,13 +330,6 @@ struct NucleiHistTask { deuteron_reg.fill(HIST("histTpcNsigmaData"), track.pt(), nSigmaDeut); Helium3_reg.fill(HIST("histTpcNsigmaData"), track.pt() * 2.0, nSigmaHe3); - /* - if (track.isAmbiguous() == 0) { - spectra.fill(HIST("histDcaVsPtData_wo_ambiguous_particle"), track.pt(), track.dcaXY()); - spectra.fill(HIST("histDcaZVsPtData_wo_ambiguous_particle"), track.pt(), track.dcaZ()); - } - */ - // fill TOF m^2 histogram if (track.hasTOF()) { @@ -335,13 +344,6 @@ struct NucleiHistTask { adeuteron_reg.fill(HIST("histTpcNsigmaData"), track.pt(), nSigmaDeut); aHelium3_reg.fill(HIST("histTpcNsigmaData"), track.pt() * 2.0, nSigmaHe3); - /* - if (track.isAmbiguous()==0) { - spectra.fill(HIST("histDcaVsPtData_wo_ambiguous_antiparticle"), track.pt(), track.dcaXY()); - spectra.fill(HIST("histDcaZVsPtData_wo_ambiguous_antiparticle"), track.pt(), track.dcaZ()); - } - */ - // fill TOF m^2 histogram if (track.hasTOF()) { @@ -403,22 +405,6 @@ struct NucleiHistTask { spectra.fill(HIST("histTofSignalData"), track.tpcInnerParam() * track.sign(), track.beta()); } - nucleiTable( - track.pt(), - track.sign(), - track.eta(), - track.passedITSChi2NDF(), - track.passedTPCChi2NDF(), - track.passedITSNCls(), - track.passedTPCNCls(), - track.tpcNSigmaPr(), - track.tofNSigmaPr(), - 0., - 0., - 0., - 0., - track.dcaXY(), - track.dcaZ()); } //************** check offline-trigger (skimming) condidition Deuteron ******************* @@ -473,22 +459,6 @@ struct NucleiHistTask { spectra.fill(HIST("histTofSignalData"), track.tpcInnerParam() * track.sign(), track.beta()); } - nucleiTable( - track.pt(), - track.sign(), - track.eta(), - track.passedITSChi2NDF(), - track.passedTPCChi2NDF(), - track.passedITSNCls(), - track.passedTPCNCls(), - 0., - 0., - track.tpcNSigmaDe(), - track.tofNSigmaDe(), - 0., - 0., - track.dcaXY(), - track.dcaZ()); } //************** check offline-trigger (skimming) condidition Helium-3 ******************* @@ -542,22 +512,6 @@ struct NucleiHistTask { spectra.fill(HIST("histTofSignalData"), track.tpcInnerParam() * 2.0 * track.sign(), track.beta()); } - nucleiTable( - track.pt(), - track.sign(), - track.eta(), - track.passedITSChi2NDF(), - track.passedTPCChi2NDF(), - track.passedITSNCls(), - track.passedTPCNCls(), - 0., - 0., - 0., - 0., - track.tpcNSigmaHe(), - track.tofNSigmaHe(), - track.dcaXY(), - track.dcaZ()); } } // end loop over tracks @@ -576,7 +530,7 @@ struct NucleiHistTask { template void fillCentHistorgrams(const CollisionType& event, const TracksType& tracks) { - + for (auto track : tracks) { // start loop over tracks float TPCnumberCls = track.tpcNClsFound(); @@ -603,29 +557,140 @@ struct NucleiHistTask { lorentzVector_He3.Rapidity() < yMin || lorentzVector_He3.Rapidity() > yMax) { continue; } + - // fill centrality histograms - float nSigmaProton = track.tpcNSigmaPr(); - float nSigmaDeut = track.tpcNSigmaDe(); - float nSigmaHe3 = track.tpcNSigmaHe(); - + // fill 3D centrality histograms if (track.sign() > 0) { + + proton_erg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaPr(), event.centFT0C()); + proton_erg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaPr(), event.centFT0C()); + deuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaDe(), event.centFT0C()); + deuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaDe(), event.centFT0C()); + Helium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); + Helium3_reg.fill(HIST("histTofNsigmaData_cent"), track.pt() * 2.0, track.tofNSigmaHe(), event.centFT0C()); + + if (track.hasTOF()) { + proton_erg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); + deuteron_reg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); + Helium3_reg.fill(HIST("histTofm2_cent"), track.pt() * 2.0, track.mass() * track.mass(), event.centFT0C()); + } + } + + if (track.sign() < 0) { - proton_erg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), nSigmaProton, event.centFT0C()); - deuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), nSigmaDeut, event.centFT0C()); - Helium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt() * 2.0, nSigmaHe3, event.centFT0C()); + aproton_erg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaPr(), event.centFT0C()); + aproton_erg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tpcNSigmaPr(), event.centFT0C()); + adeuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaDe(), event.centFT0C()); + adeuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tpcNSigmaDe(), event.centFT0C()); + aHelium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); + aHelium3_reg.fill(HIST("histTofNsigmaData_cent"), track.pt() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); + + if (track.hasTOF()) { + aproton_erg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); + adeuteron_reg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); + aHelium3_reg.fill(HIST("histTofm2_cent"), track.pt() * 2.0, track.mass() * track.mass(), event.centFT0C()); + } } + } + } - if (track.sign() < 0) { +//**************************************************************************************************** + + template + void fillTable(const CollisionType& event, const TracksType& tracks) + { - aproton_erg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), nSigmaProton, event.centFT0C()); - adeuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), nSigmaDeut, event.centFT0C()); - aHelium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt() * 2.0, nSigmaHe3, event.centFT0C()); + for (auto track : tracks) { + + if ((track.pt()) < pTmin || (track.pt()) > pTmax) { + continue; } + + + // fill table + nucleiTable( + track.pt(), + track.sign(), + track.eta(), + track.isPVContributor(), + track.hasITS(), + track.hasTPC(), + track.hasTRD(), + track.hasTOF(), + track.itsNCls(), + track.tpcNClsFound(), + track.tpcNClsCrossedRows(), + track.tpcCrossedRowsOverFindableCls(), + track.passedITSRefit(), + track.passedTPCRefit(), + track.itsChi2NCl(), + track.tpcChi2NCl(), + track.tpcNSigmaPr(), + track.tofNSigmaPr(), + track.tpcNSigmaDe(), + track.tofNSigmaDe(), + track.tpcNSigmaHe(), + track.tofNSigmaHe(), + track.mass() * track.mass(), + 0.0, + track.dcaXY(), + track.dcaZ() + ); + + + } } - //**************************************************************************************************** +//**************************************************************************************************** + + template + void fillTableCent(const CollisionType& event, const TracksType& tracks) + { + + for (auto track : tracks) { + + if ((track.pt()) < pTmin || (track.pt()) > pTmax) { + continue; + } + + + // fill table + nucleiTable( + track.pt(), + track.sign(), + track.eta(), + track.isPVContributor(), + track.hasITS(), + track.hasTPC(), + track.hasTRD(), + track.hasTOF(), + track.itsNCls(), + track.tpcNClsFound(), + track.tpcNClsCrossedRows(), + track.tpcCrossedRowsOverFindableCls(), + track.passedITSRefit(), + track.passedTPCRefit(), + track.itsChi2NCl(), + track.tpcChi2NCl(), + track.tpcNSigmaPr(), + track.tofNSigmaPr(), + track.tpcNSigmaDe(), + track.tofNSigmaDe(), + track.tpcNSigmaHe(), + track.tofNSigmaHe(), + track.mass() * track.mass(), + event.centFT0C(), + track.dcaXY(), + track.dcaZ() + ); + + + + } + } + +//**************************************************************************************************** Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex; Filter trackFilter = (nabs(aod::track::eta) < cfgCutEta); @@ -639,6 +704,7 @@ struct NucleiHistTask { void processData(EventCandidates::iterator const& event, TrackCandidates const& tracks) { fillHistograms(event, tracks); + fillTable(event, tracks); } PROCESS_SWITCH(NucleiHistTask, processData, "process data", true); @@ -646,6 +712,7 @@ struct NucleiHistTask { { fillHistograms(event, tracks); fillCentHistorgrams(event, tracks); + fillTableCent(event, tracks); } PROCESS_SWITCH(NucleiHistTask, processDataCent, "process data with centralities", false); }; From 6009d809f5d656b8e746c37322cf1afed20e80ca Mon Sep 17 00:00:00 2001 From: Rafael Manhart <56776511+RafRaf11@users.noreply.github.com> Date: Thu, 23 Feb 2023 15:33:20 +0100 Subject: [PATCH 03/10] Bugfix; Fixed bug with filling 3D centrality histograms. --- PWGLF/Tasks/NucleiHistTask.cxx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index 980ac78e45c..899df00d88a 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -363,7 +363,7 @@ struct NucleiHistTask { proton_erg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); proton_erg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); proton_erg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - proton_erg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsCrossedRows()); + proton_erg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsFound()); proton_erg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); proton_erg.fill(HIST("histChi2TPC"), track.pt(), track.tpcChi2NCl()); proton_erg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); @@ -385,7 +385,7 @@ struct NucleiHistTask { aproton_erg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); aproton_erg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); aproton_erg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - aproton_erg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsCrossedRows()); + aproton_erg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsFound()); aproton_erg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); aproton_erg.fill(HIST("histChi2TPC"), track.pt(), track.tpcChi2NCl()); aproton_erg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); @@ -417,7 +417,7 @@ struct NucleiHistTask { deuteron_reg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); deuteron_reg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); deuteron_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - deuteron_reg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsCrossedRows()); + deuteron_reg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsFound()); deuteron_reg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); deuteron_reg.fill(HIST("histChi2TPC"), track.pt(), track.tpcChi2NCl()); deuteron_reg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); @@ -439,7 +439,7 @@ struct NucleiHistTask { adeuteron_reg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); adeuteron_reg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); adeuteron_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - adeuteron_reg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsCrossedRows()); + adeuteron_reg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsFound()); adeuteron_reg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); adeuteron_reg.fill(HIST("histChi2TPC"), track.pt(), track.tpcChi2NCl()); adeuteron_reg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); @@ -471,7 +471,7 @@ struct NucleiHistTask { Helium3_reg.fill(HIST("histDcaVsPtData"), track.pt() * 2.0, track.dcaXY()); Helium3_reg.fill(HIST("histDcaZVsPtData"), track.pt() * 2.0, track.dcaZ()); Helium3_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - Helium3_reg.fill(HIST("histNClusterTPC"), track.pt() * 2.0, track.tpcNClsCrossedRows()); + Helium3_reg.fill(HIST("histNClusterTPC"), track.pt() * 2.0, track.tpcNClsFound()); Helium3_reg.fill(HIST("histNClusterITS"), track.pt() * 2.0, track.itsNCls()); Helium3_reg.fill(HIST("histChi2TPC"), track.pt() * 2.0, track.tpcChi2NCl()); Helium3_reg.fill(HIST("histChi2ITS"), track.pt() * 2.0, track.itsChi2NCl()); @@ -492,7 +492,7 @@ struct NucleiHistTask { aHelium3_reg.fill(HIST("histDcaVsPtData"), track.pt() * 2.0, track.dcaXY()); aHelium3_reg.fill(HIST("histDcaZVsPtData"), track.pt() * 2.0, track.dcaZ()); aHelium3_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - aHelium3_reg.fill(HIST("histNClusterTPC"), track.pt() * 2.0, track.tpcNClsCrossedRows()); + aHelium3_reg.fill(HIST("histNClusterTPC"), track.pt() * 2.0, track.tpcNClsFound()); aHelium3_reg.fill(HIST("histNClusterITS"), track.pt() * 2.0, track.itsNCls()); aHelium3_reg.fill(HIST("histChi2TPC"), track.pt() * 2.0, track.tpcChi2NCl()); aHelium3_reg.fill(HIST("histChi2ITS"), track.pt() * 2.0, track.itsChi2NCl()); @@ -579,11 +579,11 @@ struct NucleiHistTask { if (track.sign() < 0) { aproton_erg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaPr(), event.centFT0C()); - aproton_erg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tpcNSigmaPr(), event.centFT0C()); + aproton_erg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaPr(), event.centFT0C()); adeuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaDe(), event.centFT0C()); - adeuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tpcNSigmaDe(), event.centFT0C()); + adeuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaDe(), event.centFT0C()); aHelium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); - aHelium3_reg.fill(HIST("histTofNsigmaData_cent"), track.pt() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); + aHelium3_reg.fill(HIST("histTofNsigmaData_cent"), track.pt() * 2.0, track.tofNSigmaHe(), event.centFT0C()); if (track.hasTOF()) { aproton_erg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); From 79dcc2e7b648105b86fa9cc3f325874710aef2e3 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Thu, 23 Feb 2023 14:40:13 +0000 Subject: [PATCH 04/10] Please consider the following formatting changes --- PWGLF/Tasks/NucleiHistTask.cxx | 39 ++++++++++++---------------------- 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index 899df00d88a..737bc2bf29e 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -530,7 +530,7 @@ struct NucleiHistTask { template void fillCentHistorgrams(const CollisionType& event, const TracksType& tracks) { - + for (auto track : tracks) { // start loop over tracks float TPCnumberCls = track.tpcNClsFound(); @@ -557,25 +557,24 @@ struct NucleiHistTask { lorentzVector_He3.Rapidity() < yMin || lorentzVector_He3.Rapidity() > yMax) { continue; } - // fill 3D centrality histograms if (track.sign() > 0) { - + proton_erg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaPr(), event.centFT0C()); proton_erg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaPr(), event.centFT0C()); deuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaDe(), event.centFT0C()); deuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaDe(), event.centFT0C()); Helium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); Helium3_reg.fill(HIST("histTofNsigmaData_cent"), track.pt() * 2.0, track.tofNSigmaHe(), event.centFT0C()); - + if (track.hasTOF()) { proton_erg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); deuteron_reg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); Helium3_reg.fill(HIST("histTofm2_cent"), track.pt() * 2.0, track.mass() * track.mass(), event.centFT0C()); } } - + if (track.sign() < 0) { aproton_erg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaPr(), event.centFT0C()); @@ -584,7 +583,7 @@ struct NucleiHistTask { adeuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaDe(), event.centFT0C()); aHelium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); aHelium3_reg.fill(HIST("histTofNsigmaData_cent"), track.pt() * 2.0, track.tofNSigmaHe(), event.centFT0C()); - + if (track.hasTOF()) { aproton_erg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); adeuteron_reg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); @@ -594,19 +593,18 @@ struct NucleiHistTask { } } -//**************************************************************************************************** + //**************************************************************************************************** template void fillTable(const CollisionType& event, const TracksType& tracks) { for (auto track : tracks) { - + if ((track.pt()) < pTmin || (track.pt()) > pTmax) { continue; } - - + // fill table nucleiTable( track.pt(), @@ -634,27 +632,22 @@ struct NucleiHistTask { track.mass() * track.mass(), 0.0, track.dcaXY(), - track.dcaZ() - ); - - - + track.dcaZ()); } } -//**************************************************************************************************** + //**************************************************************************************************** template void fillTableCent(const CollisionType& event, const TracksType& tracks) { for (auto track : tracks) { - + if ((track.pt()) < pTmin || (track.pt()) > pTmax) { continue; } - - + // fill table nucleiTable( track.pt(), @@ -682,15 +675,11 @@ struct NucleiHistTask { track.mass() * track.mass(), event.centFT0C(), track.dcaXY(), - track.dcaZ() - ); - - - + track.dcaZ()); } } -//**************************************************************************************************** + //**************************************************************************************************** Filter collisionFilter = nabs(aod::collision::posZ) < cfgCutVertex; Filter trackFilter = (nabs(aod::track::eta) < cfgCutEta); From 6df6ac0385f06f91a8eb37f60ba8300b367800f0 Mon Sep 17 00:00:00 2001 From: Rafael Manhart <56776511+RafRaf11@users.noreply.github.com> Date: Mon, 27 Feb 2023 20:27:42 +0100 Subject: [PATCH 05/10] UpdateReduced table size; --- PWGLF/Tasks/NucleiHistTask.cxx | 36 ---------------------------------- 1 file changed, 36 deletions(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index 737bc2bf29e..2ec670206d8 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -44,11 +44,6 @@ namespace NucleiTableHist DECLARE_SOA_COLUMN(Pt, pt, float); DECLARE_SOA_COLUMN(Sign, sign, int8_t); DECLARE_SOA_COLUMN(Eta, eta, float); -DECLARE_SOA_COLUMN(IsPVContributor, isPVcontributor, bool); -DECLARE_SOA_COLUMN(HasITS, hasITS, bool); -DECLARE_SOA_COLUMN(HasTPC, hasTPC, bool); -DECLARE_SOA_COLUMN(HasTRD, hasTRD, bool); -DECLARE_SOA_COLUMN(HasTOF, hasTOF, bool); DECLARE_SOA_COLUMN(ITSnCls, itsNCls, uint8_t); DECLARE_SOA_COLUMN(TPCNClsFound, tpcNClsFound, int16_t); DECLARE_SOA_COLUMN(TPCNClsCrossedRows, tpcNClsCrossedRows, int16_t); @@ -58,11 +53,7 @@ DECLARE_SOA_COLUMN(PassedTPCRefit, passedTPCRefit, bool); DECLARE_SOA_COLUMN(ITSChi2NCl, itsChi2NCl, float); DECLARE_SOA_COLUMN(TPCChi2NCl, tpcChi2NCl, float); DECLARE_SOA_COLUMN(TPCNSigmaPr, tpcNSigmaPr, float); -DECLARE_SOA_COLUMN(TOFNSigmaPr, tofNSigmaPr, float); DECLARE_SOA_COLUMN(TPCNSigmaDe, tpcNSigmaDe, float); -DECLARE_SOA_COLUMN(TOFNSigmaDe, tofNSigmaDe, float); -DECLARE_SOA_COLUMN(TPCNSigmaHe, tpcNSigmaHe, float); -DECLARE_SOA_COLUMN(TOFNSigmaHe, tofNSigmaHe, float); DECLARE_SOA_COLUMN(TOFmass2, tofmass2, float); DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float); DECLARE_SOA_COLUMN(DCAxy, dcaxy, int8_t); @@ -72,11 +63,6 @@ DECLARE_SOA_TABLE(NucleiTable, "AOD", "NUCLEITABLE", NucleiTableHist::Pt, NucleiTableHist::Sign, NucleiTableHist::Eta, - NucleiTableHist::IsPVContributor, - NucleiTableHist::HasITS, - NucleiTableHist::HasTPC, - NucleiTableHist::HasTRD, - NucleiTableHist::HasTOF, NucleiTableHist::ITSnCls, NucleiTableHist::TPCNClsFound, NucleiTableHist::TPCNClsCrossedRows, @@ -86,11 +72,7 @@ DECLARE_SOA_TABLE(NucleiTable, "AOD", "NUCLEITABLE", NucleiTableHist::ITSChi2NCl, NucleiTableHist::TPCChi2NCl, NucleiTableHist::TPCNSigmaPr, - NucleiTableHist::TOFNSigmaPr, NucleiTableHist::TPCNSigmaDe, - NucleiTableHist::TOFNSigmaDe, - NucleiTableHist::TPCNSigmaHe, - NucleiTableHist::TOFNSigmaHe, NucleiTableHist::TOFmass2, NucleiTableHist::CentFT0C, NucleiTableHist::DCAxy, @@ -610,11 +592,6 @@ struct NucleiHistTask { track.pt(), track.sign(), track.eta(), - track.isPVContributor(), - track.hasITS(), - track.hasTPC(), - track.hasTRD(), - track.hasTOF(), track.itsNCls(), track.tpcNClsFound(), track.tpcNClsCrossedRows(), @@ -624,11 +601,7 @@ struct NucleiHistTask { track.itsChi2NCl(), track.tpcChi2NCl(), track.tpcNSigmaPr(), - track.tofNSigmaPr(), track.tpcNSigmaDe(), - track.tofNSigmaDe(), - track.tpcNSigmaHe(), - track.tofNSigmaHe(), track.mass() * track.mass(), 0.0, track.dcaXY(), @@ -653,11 +626,6 @@ struct NucleiHistTask { track.pt(), track.sign(), track.eta(), - track.isPVContributor(), - track.hasITS(), - track.hasTPC(), - track.hasTRD(), - track.hasTOF(), track.itsNCls(), track.tpcNClsFound(), track.tpcNClsCrossedRows(), @@ -667,11 +635,7 @@ struct NucleiHistTask { track.itsChi2NCl(), track.tpcChi2NCl(), track.tpcNSigmaPr(), - track.tofNSigmaPr(), track.tpcNSigmaDe(), - track.tofNSigmaDe(), - track.tpcNSigmaHe(), - track.tofNSigmaHe(), track.mass() * track.mass(), event.centFT0C(), track.dcaXY(), From 25ccb1f8c9949f6c76f161e3e53d812ff5cead06 Mon Sep 17 00:00:00 2001 From: Rafael Manhart <56776511+RafRaf11@users.noreply.github.com> Date: Thu, 16 Mar 2023 18:17:49 +0100 Subject: [PATCH 06/10] Update NucleiHistTask.cxx --- PWGLF/Tasks/NucleiHistTask.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index 2ec670206d8..5d79d3648fb 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -42,7 +42,7 @@ namespace o2::aod namespace NucleiTableHist { DECLARE_SOA_COLUMN(Pt, pt, float); -DECLARE_SOA_COLUMN(Sign, sign, int8_t); +DECLARE_SOA_COLUMN(Sign, sign, int); DECLARE_SOA_COLUMN(Eta, eta, float); DECLARE_SOA_COLUMN(ITSnCls, itsNCls, uint8_t); DECLARE_SOA_COLUMN(TPCNClsFound, tpcNClsFound, int16_t); @@ -56,8 +56,8 @@ DECLARE_SOA_COLUMN(TPCNSigmaPr, tpcNSigmaPr, float); DECLARE_SOA_COLUMN(TPCNSigmaDe, tpcNSigmaDe, float); DECLARE_SOA_COLUMN(TOFmass2, tofmass2, float); DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float); -DECLARE_SOA_COLUMN(DCAxy, dcaxy, int8_t); -DECLARE_SOA_COLUMN(DCAz, dcaz, int8_t); +DECLARE_SOA_COLUMN(DCAxy, dcaxy, float); +DECLARE_SOA_COLUMN(DCAz, dcaz, float); } // namespace NucleiTableHist DECLARE_SOA_TABLE(NucleiTable, "AOD", "NUCLEITABLE", NucleiTableHist::Pt, From 668c2c61921312f7c85087b2b3070d3847410548 Mon Sep 17 00:00:00 2001 From: Rafael Manhart <56776511+RafRaf11@users.noreply.github.com> Date: Tue, 28 Mar 2023 18:20:49 +0200 Subject: [PATCH 07/10] Update NucleiHistTask.cxx Feature; match variables to offline version. --- PWGLF/Tasks/NucleiHistTask.cxx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index 5d79d3648fb..34cef78d8dc 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -231,13 +231,16 @@ struct NucleiHistTask { Configurable nsigmacutHigh{"nsigmacutHigh", +3.0, "Value of the Nsigma cut"}; // Replacement for globalTrack filter - Configurable minNCrossedRowsTPC{"minNCrossedRowsTPC", 70.0f, "min number of crossed rows TPC"}; - Configurable minRatioCrossedRowsTPC{"minRatioCrossedRowsTPC", 0.8f, "min ratio of crossed rows over findable clusters TPC"}; - Configurable maxChi2TPC{"maxChi2TPC", 4.0f, "max chi2 per cluster TPC"}; + Configurable minReqClusterITS{"minReqClusterITS", 1.0, "min number of clusters required in ITS"}; // ITS_nCls + Configurable minTPCnClsFound{"minTPCnClsFound", 0.0f, "min number of crossed rows TPC"}; // TPC_nCls_found + Configurable minNCrossedRowsTPC{"minNCrossedRowsTPC", 70.0f, "min number of crossed rows TPC"}; // TPC_nCls_crossed_Rows + Configurable minRatioCrossedRowsTPC{"minRatioCrossedRowsTPC", 0.8f, "min ratio of crossed rows over findable clusters TPC"}; //TPC_crossed_Rows_over_findable_Cls_min + Configurable maxRatioCrossedRowsTPC{"maxRatioCrossedRowsTPC", 1.5f, "max ratio of crossed rows over findable clusters TPC"}; //TPC_crossed_Rows_over_findable_Cls_max Configurable maxChi2ITS{"maxChi2ITS", 36.0f, "max chi2 per cluster ITS"}; - Configurable maxDCA_Z{"maxDCA_Z", 2.0f, "max DCA to vertex z"}; + Configurable maxChi2TPC{"maxChi2TPC", 4.0f, "max chi2 per cluster TPC"}; Configurable maxDCA_XY{"maxDCA_XY", 0.5f, "max DCA to vertex xy"}; - Configurable minReqClusterITS{"minReqClusterITS", 1.0, "min number of clusters required in ITS"}; + Configurable maxDCA_Z{"maxDCA_Z", 2.0f, "max DCA to vertex z"}; + Configurable pTmin{"pTmin", 0.1f, "min pT"}; Configurable pTmax{"pTmax", 1e+10f, "max pT"}; @@ -258,12 +261,13 @@ struct NucleiHistTask { for (auto track : tracks) { // start loop over tracks - float TPCnumberCls = track.tpcNClsFound(); + float TPCnumberClsFound = track.tpcNClsFound(); + float TPC_nCls_Crossed_Rows = track.tpcNClsCrossedRows(); float RatioCrossedRowsOverFindableTPC = track.tpcCrossedRowsOverFindableCls(); float Chi2perClusterTPC = track.tpcChi2NCl(); float Chi2perClusterITS = track.itsChi2NCl(); - if (TPCnumberCls < minNCrossedRowsTPC || RatioCrossedRowsOverFindableTPC < minRatioCrossedRowsTPC || Chi2perClusterTPC > maxChi2TPC || Chi2perClusterITS > maxChi2ITS || !(track.passedTPCRefit()) || !(track.passedITSRefit()) || (track.itsNCls()) < minReqClusterITS) { + if (TPCnumberClsFound < minTPCnClsFound || TPC_nCls_Crossed_Rows < minNCrossedRowsTPC || RatioCrossedRowsOverFindableTPC < minRatioCrossedRowsTPC || RatioCrossedRowsOverFindableTPC > maxRatioCrossedRowsTPC || Chi2perClusterTPC > maxChi2TPC || Chi2perClusterITS > maxChi2ITS || !(track.passedTPCRefit()) || !(track.passedITSRefit()) || (track.itsNCls()) < minReqClusterITS || !(track.isPVContributor())) { continue; } From b1e66dce53d365f1e8ea52ed22120f20fb67d3c9 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 28 Mar 2023 16:24:31 +0000 Subject: [PATCH 08/10] Please consider the following formatting changes --- PWGLF/Tasks/NucleiHistTask.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index 34cef78d8dc..bf9f06089c9 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -231,11 +231,11 @@ struct NucleiHistTask { Configurable nsigmacutHigh{"nsigmacutHigh", +3.0, "Value of the Nsigma cut"}; // Replacement for globalTrack filter - Configurable minReqClusterITS{"minReqClusterITS", 1.0, "min number of clusters required in ITS"}; // ITS_nCls - Configurable minTPCnClsFound{"minTPCnClsFound", 0.0f, "min number of crossed rows TPC"}; // TPC_nCls_found - Configurable minNCrossedRowsTPC{"minNCrossedRowsTPC", 70.0f, "min number of crossed rows TPC"}; // TPC_nCls_crossed_Rows - Configurable minRatioCrossedRowsTPC{"minRatioCrossedRowsTPC", 0.8f, "min ratio of crossed rows over findable clusters TPC"}; //TPC_crossed_Rows_over_findable_Cls_min - Configurable maxRatioCrossedRowsTPC{"maxRatioCrossedRowsTPC", 1.5f, "max ratio of crossed rows over findable clusters TPC"}; //TPC_crossed_Rows_over_findable_Cls_max + Configurable minReqClusterITS{"minReqClusterITS", 1.0, "min number of clusters required in ITS"}; // ITS_nCls + Configurable minTPCnClsFound{"minTPCnClsFound", 0.0f, "min number of crossed rows TPC"}; // TPC_nCls_found + Configurable minNCrossedRowsTPC{"minNCrossedRowsTPC", 70.0f, "min number of crossed rows TPC"}; // TPC_nCls_crossed_Rows + Configurable minRatioCrossedRowsTPC{"minRatioCrossedRowsTPC", 0.8f, "min ratio of crossed rows over findable clusters TPC"}; // TPC_crossed_Rows_over_findable_Cls_min + Configurable maxRatioCrossedRowsTPC{"maxRatioCrossedRowsTPC", 1.5f, "max ratio of crossed rows over findable clusters TPC"}; // TPC_crossed_Rows_over_findable_Cls_max Configurable maxChi2ITS{"maxChi2ITS", 36.0f, "max chi2 per cluster ITS"}; Configurable maxChi2TPC{"maxChi2TPC", 4.0f, "max chi2 per cluster TPC"}; Configurable maxDCA_XY{"maxDCA_XY", 0.5f, "max DCA to vertex xy"}; From 8d6465aff15028e011cf0655200d7933a0bfd2b0 Mon Sep 17 00:00:00 2001 From: Rafael Manhart <56776511+RafRaf11@users.noreply.github.com> Date: Tue, 4 Apr 2023 17:11:19 +0200 Subject: [PATCH 09/10] Feature; Removed Table + added new species --- PWGLF/Tasks/NucleiHistTask.cxx | 455 ++++++++++++++++++++------------- 1 file changed, 280 insertions(+), 175 deletions(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index bf9f06089c9..dc9093a7039 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -37,59 +37,19 @@ using namespace o2; using namespace o2::framework; using namespace o2::framework::expressions; -namespace o2::aod -{ -namespace NucleiTableHist -{ -DECLARE_SOA_COLUMN(Pt, pt, float); -DECLARE_SOA_COLUMN(Sign, sign, int); -DECLARE_SOA_COLUMN(Eta, eta, float); -DECLARE_SOA_COLUMN(ITSnCls, itsNCls, uint8_t); -DECLARE_SOA_COLUMN(TPCNClsFound, tpcNClsFound, int16_t); -DECLARE_SOA_COLUMN(TPCNClsCrossedRows, tpcNClsCrossedRows, int16_t); -DECLARE_SOA_COLUMN(TPCCrossedRowsOverFindableCls, tpcCrossedRowsOverFindableCls, float); -DECLARE_SOA_COLUMN(PassedITSRefit, passedITSRefit, bool); -DECLARE_SOA_COLUMN(PassedTPCRefit, passedTPCRefit, bool); -DECLARE_SOA_COLUMN(ITSChi2NCl, itsChi2NCl, float); -DECLARE_SOA_COLUMN(TPCChi2NCl, tpcChi2NCl, float); -DECLARE_SOA_COLUMN(TPCNSigmaPr, tpcNSigmaPr, float); -DECLARE_SOA_COLUMN(TPCNSigmaDe, tpcNSigmaDe, float); -DECLARE_SOA_COLUMN(TOFmass2, tofmass2, float); -DECLARE_SOA_COLUMN(CentFT0C, centFT0C, float); -DECLARE_SOA_COLUMN(DCAxy, dcaxy, float); -DECLARE_SOA_COLUMN(DCAz, dcaz, float); -} // namespace NucleiTableHist -DECLARE_SOA_TABLE(NucleiTable, "AOD", "NUCLEITABLE", - NucleiTableHist::Pt, - NucleiTableHist::Sign, - NucleiTableHist::Eta, - NucleiTableHist::ITSnCls, - NucleiTableHist::TPCNClsFound, - NucleiTableHist::TPCNClsCrossedRows, - NucleiTableHist::TPCCrossedRowsOverFindableCls, - NucleiTableHist::PassedITSRefit, - NucleiTableHist::PassedTPCRefit, - NucleiTableHist::ITSChi2NCl, - NucleiTableHist::TPCChi2NCl, - NucleiTableHist::TPCNSigmaPr, - NucleiTableHist::TPCNSigmaDe, - NucleiTableHist::TOFmass2, - NucleiTableHist::CentFT0C, - NucleiTableHist::DCAxy, - NucleiTableHist::DCAz) -} // namespace o2::aod - struct NucleiHistTask { - Produces nucleiTable; - HistogramRegistry spectra{"spectra", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; HistogramRegistry proton_erg{"proton", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; HistogramRegistry aproton_erg{"aproton", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; HistogramRegistry deuteron_reg{"deuteron", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; HistogramRegistry adeuteron_reg{"adeuteron", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; + HistogramRegistry triton_reg{"triton", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; + HistogramRegistry atriton_reg{"atriton", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; HistogramRegistry Helium3_reg{"Helium3", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; HistogramRegistry aHelium3_reg{"aHelium3", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; + HistogramRegistry Helium4_reg{"Helium4", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; + HistogramRegistry aHelium4_reg{"aHelium4", {}, OutputObjHandlingPolicy::AnalysisObject, true, true}; void init(o2::framework::InitContext&) { @@ -187,6 +147,40 @@ struct NucleiHistTask { adeuteron_reg.add("histTofNsigmaData_cent", "n-sigma TOF (antid) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antid}"}, centralityAxis}); adeuteron_reg.add("histTofm2_cent", "mass^2 TOF (antid) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{antid}"}, centralityAxis}); + // histograms for Triton + triton_reg.add("histKeepEventData", "skimming histogram (t)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); + triton_reg.add("histTpcSignalData", "Specific energy loss (t)", HistType::kTH2F, {{600, 0., 6., "#it{p} (GeV/#it{c})"}, {1400, 0, 1400, "d#it{E} / d#it{X} (a. u.)"}}); + triton_reg.add("histTofSignalData", "TOF signal (t)", HistType::kTH2F, {{600, 0., 6., "#it{p} (GeV/#it{c})"}, {550, 0.0, 1.1, "#beta (TOF)"}}); + triton_reg.add("histDcaVsPtData", "dcaXY vs Pt (t)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); + triton_reg.add("histDcaZVsPtData", "dcaZ vs Pt (t)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); + triton_reg.add("histTOFm2", "TOF m^2 vs Pt (t)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); + triton_reg.add("histTpcNsigmaData", "n-sigma TPC (t)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{t}"}}); + triton_reg.add("histTofNsigmaData", "n-sigma TOF (t)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{t}"}}); + triton_reg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (t)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); + triton_reg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (t)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); + triton_reg.add("histChi2TPC", "chi^2 TPC vs Pt (t)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); + triton_reg.add("histChi2ITS", "chi^2 ITS vs Pt (t)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); + triton_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (t) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{t}"}, centralityAxis}); + triton_reg.add("histTofNsigmaData_cent", "n-sigma TOF (t) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{t}"}, centralityAxis}); + triton_reg.add("histTofm2_cent", "mass^2 TOF (t) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{t}"}, centralityAxis}); + + // histograms for antiTriton + atriton_reg.add("histKeepEventData", "skimming histogram (antit)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); + atriton_reg.add("histTpcSignalData", "Specific energy loss (antit)", HistType::kTH2F, {{600, 0., 6., "#it{p} (GeV/#it{c})"}, {1400, 0, 1400, "d#it{E} / d#it{X} (a. u.)"}}); + atriton_reg.add("histTofSignalData", "TOF signal (antit)", HistType::kTH2F, {{600, 0., 6., "#it{p} (GeV/#it{c})"}, {550, 0.0, 1.1, "#beta (TOF)"}}); + atriton_reg.add("histDcaVsPtData", "dcaXY vs Pt (antit)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); + atriton_reg.add("histDcaZVsPtData", "dcaZ vs Pt (antit)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); + atriton_reg.add("histTOFm2", "TOF m^2 vs Pt (antit)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); + atriton_reg.add("histTpcNsigmaData", "n-sigma TPC (antit)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antit}"}}); + atriton_reg.add("histTofNsigmaData", "n-sigma TOF (antit)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antit}"}}); + atriton_reg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (antit)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); + atriton_reg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (antit)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); + atriton_reg.add("histChi2TPC", "chi^2 TPC vs Pt (antit)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); + atriton_reg.add("histChi2ITS", "chi^2 ITS vs Pt (antit)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); + atriton_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (antit) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antit}"}, centralityAxis}); + atriton_reg.add("histTofNsigmaData_cent", "n-sigma TOF (antit) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antit}"}, centralityAxis}); + atriton_reg.add("histTofm2_cent", "mass^2 TOF (antit) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{antit}"}, centralityAxis}); + // histograms for Helium-3 Helium3_reg.add("histKeepEventData", "skimming histogram (He-3)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); Helium3_reg.add("histTpcSignalData", "Specific energy loss (He-3)", HistType::kTH2F, {{600, 0., 6., "#it{p} (GeV/#it{c})"}, {1400, 0, 1400, "d#it{E} / d#it{X} (a. u.)"}}); @@ -220,6 +214,40 @@ struct NucleiHistTask { aHelium3_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (antiHe-3) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-3}"}, centralityAxis}); aHelium3_reg.add("histTofNsigmaData_cent", "n-sigma TOF (antiHe-3) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-3}"}, centralityAxis}); aHelium3_reg.add("histTofm2_cent", "mass^2 TOF (antiHe-3) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{antiHe-3}"}, centralityAxis}); + + // histograms for Helium-4 (alpha) + Helium4_reg.add("histKeepEventData", "skimming histogram (He-4)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); + Helium4_reg.add("histTpcSignalData", "Specific energy loss (He-4)", HistType::kTH2F, {{600, 0., 6., "#it{p} (GeV/#it{c})"}, {1400, 0, 1400, "d#it{E} / d#it{X} (a. u.)"}}); + Helium4_reg.add("histTofSignalData", "TOF signal (He-4)", HistType::kTH2F, {{600, 0., 6., "#it{p} (GeV/#it{c})"}, {550, 0.0, 1.1, "#beta (TOF)"}}); + Helium4_reg.add("histDcaVsPtData", "dcaXY vs Pt (He-4)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); + Helium4_reg.add("histDcaZVsPtData", "dcaZ vs Pt (He-4)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); + Helium4_reg.add("histTOFm2", "TOF m^2 vs Pt (He-4)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); + Helium4_reg.add("histTpcNsigmaData", "n-sigma TPC (He-4)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{He-4}"}}); + Helium4_reg.add("histTofNsigmaData", "n-sigma TOF (He-4)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{He-4}"}}); + Helium4_reg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (He-4)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); + Helium4_reg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (He-4)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); + Helium4_reg.add("histChi2TPC", "chi^2 TPC vs Pt (He-4)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); + Helium4_reg.add("histChi2ITS", "chi^2 ITS vs Pt (He-4)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); + Helium4_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (He-4) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{He-4}"}, centralityAxis}); + Helium4_reg.add("histTofNsigmaData_cent", "n-sigma TOF (He-4) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{He-4}"}, centralityAxis}); + Helium4_reg.add("histTofm2_cent", "mass^2 TOF (He-4) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{He-4}"}, centralityAxis}); + + // histograms for antiHelium-4 (alpha) + aHelium4_reg.add("histKeepEventData", "skimming histogram (antiHe-4)", HistType::kTH1F, {{2, -0.5, +1.5, "true: keep event, false: reject event"}}); + aHelium4_reg.add("histTpcSignalData", "Specific energy loss (antiHe-4)", HistType::kTH2F, {{600, 0., 6., "#it{p} (GeV/#it{c})"}, {1400, 0, 1400, "d#it{E} / d#it{X} (a. u.)"}}); + aHelium4_reg.add("histTofSignalData", "TOF signal (antiHe-4)", HistType::kTH2F, {{600, 0., 6., "#it{p} (GeV/#it{c})"}, {550, 0.0, 1.1, "#beta (TOF)"}}); + aHelium4_reg.add("histDcaVsPtData", "dcaXY vs Pt (antiHe-4)", HistType::kTH2F, {ptAxis, {250, -0.5, 0.5, "dca"}}); + aHelium4_reg.add("histDcaZVsPtData", "dcaZ vs Pt (antiHe-4)", HistType::kTH2F, {ptAxis, {1000, -2.0, 2.0, "dca"}}); + aHelium4_reg.add("histTOFm2", "TOF m^2 vs Pt (antiHe-4)", HistType::kTH2F, {ptAxis, {400, 0.0, 10.0, "m^2"}}); + aHelium4_reg.add("histTpcNsigmaData", "n-sigma TPC (antiHe-4)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-4}"}}); + aHelium4_reg.add("histTofNsigmaData", "n-sigma TOF (antiHe-4)", HistType::kTH2F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-4}"}}); + aHelium4_reg.add("histNClusterTPC", "Number of Clusters in TPC vs Pt (antiHe-4)", HistType::kTH2F, {ptAxis, {160, 0.0, 160.0, "nCluster"}}); + aHelium4_reg.add("histNClusterITS", "Number of Clusters in ITS vs Pt (antiHe-4)", HistType::kTH2F, {ptAxis, {10, 0.0, 10.0, "nCluster"}}); + aHelium4_reg.add("histChi2TPC", "chi^2 TPC vs Pt (antiHe-4)", HistType::kTH2F, {ptAxis, {100, 0.0, 5.0, "chi^2"}}); + aHelium4_reg.add("histChi2ITS", "chi^2 ITS vs Pt (antiHe-4)", HistType::kTH2F, {ptAxis, {500, 0.0, 50.0, "chi^2"}}); + aHelium4_reg.add("histTpcNsigmaData_cent", "n-sigma TPC (antiHe-4) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-4}"}, centralityAxis}); + aHelium4_reg.add("histTofNsigmaData_cent", "n-sigma TOF (antiHe-4) centrality", HistType::kTH3F, {ptAxis, {160, -20., +20., "n#sigma_{antiHe-4}"}, centralityAxis}); + aHelium4_reg.add("histTofm2_cent", "mass^2 TOF (antiHe-4) centrality", HistType::kTH3F, {ptAxis, {400, 0.0, 10.0, "m^2_{antiHe-4}"}, centralityAxis}); } Configurable yMin{"yMin", -0.5, "Maximum rapidity"}; @@ -251,11 +279,15 @@ struct NucleiHistTask { // collision process loop bool keepEvent_p = kFALSE; bool keepEvent_d = kFALSE; + bool keepEvent_t = kFALSE; bool keepEvent_He3 = kFALSE; + bool keepEvent_He4 = kFALSE; bool keepEvent_antip = kFALSE; bool keepEvent_antid = kFALSE; + bool keepEvent_antit = kFALSE; bool keepEvent_antiHe3 = kFALSE; + bool keepEvent_antiHe4 = kFALSE; spectra.fill(HIST("histRecVtxZData"), event.posZ()); @@ -288,54 +320,66 @@ struct NucleiHistTask { // cut on rapidity TLorentzVector lorentzVector_proton{}; TLorentzVector lorentzVector_deuteron{}; + TLorentzVector lorentzVector_triton{}; TLorentzVector lorentzVector_He3{}; + TLorentzVector lorentzVector_He4{}; lorentzVector_proton.SetPtEtaPhiM(track.pt(), track.eta(), track.phi(), constants::physics::MassProton); lorentzVector_deuteron.SetPtEtaPhiM(track.pt(), track.eta(), track.phi(), constants::physics::MassDeuteron); + lorentzVector_triton.SetPtEtaPhiM(track.pt(), track.eta(), track.phi(), constants::physics::MassTriton); lorentzVector_He3.SetPtEtaPhiM(track.pt() * 2.0, track.eta(), track.phi(), constants::physics::MassHelium3); + lorentzVector_He4.SetPtEtaPhiM(track.pt() * 2.0, track.eta(), track.phi(), constants::physics::MassAlpha); if (lorentzVector_proton.Rapidity() < yMin || lorentzVector_proton.Rapidity() > yMax || lorentzVector_deuteron.Rapidity() < yMin || lorentzVector_deuteron.Rapidity() > yMax || - lorentzVector_He3.Rapidity() < yMin || lorentzVector_He3.Rapidity() > yMax) { + lorentzVector_triton.Rapidity() < yMin || lorentzVector_triton.Rapidity() > yMax || + lorentzVector_He3.Rapidity() < yMin || lorentzVector_He3.Rapidity() > yMax || + lorentzVector_He4.Rapidity() < yMin || lorentzVector_He4.Rapidity() > yMax) { continue; } // fill QA histograms float nSigmaProton = track.tpcNSigmaPr(); float nSigmaDeut = track.tpcNSigmaDe(); + float nSigmaTriton = track.tpcNSigmaTr(); float nSigmaHe3 = track.tpcNSigmaHe(); + float nSigmaHe4 = track.tpcNSigmaAl(); spectra.fill(HIST("histTpcSignalData"), track.tpcInnerParam() * track.sign(), track.tpcSignal()); - spectra.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsCrossedRows()); + spectra.fill(HIST("histNClusterTPC"), track.tpcInnerParam(), track.tpcNClsCrossedRows()); spectra.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); - spectra.fill(HIST("histChi2TPC"), track.pt(), track.tpcChi2NCl()); + spectra.fill(HIST("histChi2TPC"), track.tpcInnerParam(), track.tpcChi2NCl()); spectra.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); if (track.sign() > 0) { - proton_erg.fill(HIST("histTpcNsigmaData"), track.pt(), nSigmaProton); - deuteron_reg.fill(HIST("histTpcNsigmaData"), track.pt(), nSigmaDeut); - Helium3_reg.fill(HIST("histTpcNsigmaData"), track.pt() * 2.0, nSigmaHe3); + proton_erg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam(), nSigmaProton); + deuteron_reg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam(), nSigmaDeut); + triton_reg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam(), nSigmaTriton); + Helium3_reg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam() * 2.0, nSigmaHe3); + Helium4_reg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam() * 2.0, nSigmaHe4); // fill TOF m^2 histogram if (track.hasTOF()) { Float_t TOFmass2 = ((track.mass()) * (track.mass())); - spectra.fill(HIST("histTOFm2"), track.pt(), TOFmass2); + spectra.fill(HIST("histTOFm2"), track.tpcInnerParam(), TOFmass2); } } if (track.sign() < 0) { - aproton_erg.fill(HIST("histTpcNsigmaData"), track.pt(), nSigmaProton); - adeuteron_reg.fill(HIST("histTpcNsigmaData"), track.pt(), nSigmaDeut); - aHelium3_reg.fill(HIST("histTpcNsigmaData"), track.pt() * 2.0, nSigmaHe3); + aproton_erg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam(), nSigmaProton); + adeuteron_reg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam(), nSigmaDeut); + atriton_reg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam(), nSigmaTriton); + aHelium3_reg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam() * 2.0, nSigmaHe3); + aHelium4_reg.fill(HIST("histTpcNsigmaData"), track.tpcInnerParam() * 2.0, nSigmaHe4); // fill TOF m^2 histogram if (track.hasTOF()) { Float_t TOFmass2 = ((track.mass()) * (track.mass())); - spectra.fill(HIST("histTOFm2"), track.pt(), TOFmass2); + spectra.fill(HIST("histTOFm2"), track.tpcInnerParam(), TOFmass2); } } @@ -349,9 +393,9 @@ struct NucleiHistTask { proton_erg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); proton_erg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); proton_erg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - proton_erg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsFound()); + proton_erg.fill(HIST("histNClusterTPC"), track.tpcInnerParam(), track.tpcNClsFound()); proton_erg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); - proton_erg.fill(HIST("histChi2TPC"), track.pt(), track.tpcChi2NCl()); + proton_erg.fill(HIST("histChi2TPC"), track.tpcInnerParam(), track.tpcChi2NCl()); proton_erg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); if (track.hasTOF()) { @@ -359,9 +403,9 @@ struct NucleiHistTask { Float_t TOFmass2 = ((track.mass()) * (track.mass())); Float_t beta = track.beta(); - proton_erg.fill(HIST("histTOFm2"), track.pt(), TOFmass2); + proton_erg.fill(HIST("histTOFm2"), track.tpcInnerParam(), TOFmass2); proton_erg.fill(HIST("histTofSignalData"), track.tpcInnerParam(), beta); - proton_erg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaPr()); + proton_erg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam(), track.tofNSigmaPr()); } } @@ -371,9 +415,9 @@ struct NucleiHistTask { aproton_erg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); aproton_erg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); aproton_erg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - aproton_erg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsFound()); + aproton_erg.fill(HIST("histNClusterTPC"), track.tpcInnerParam(), track.tpcNClsFound()); aproton_erg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); - aproton_erg.fill(HIST("histChi2TPC"), track.pt(), track.tpcChi2NCl()); + aproton_erg.fill(HIST("histChi2TPC"), track.tpcInnerParam(), track.tpcChi2NCl()); aproton_erg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); if (track.hasTOF()) { @@ -381,9 +425,9 @@ struct NucleiHistTask { Float_t TOFmass2 = ((track.mass()) * (track.mass())); Float_t beta = track.beta(); - aproton_erg.fill(HIST("histTOFm2"), track.pt(), TOFmass2); + aproton_erg.fill(HIST("histTOFm2"), track.tpcInnerParam(), TOFmass2); aproton_erg.fill(HIST("histTofSignalData"), track.tpcInnerParam(), beta); - aproton_erg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaPr()); + aproton_erg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam(), track.tofNSigmaPr()); } } @@ -403,9 +447,9 @@ struct NucleiHistTask { deuteron_reg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); deuteron_reg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); deuteron_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - deuteron_reg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsFound()); + deuteron_reg.fill(HIST("histNClusterTPC"), track.tpcInnerParam(), track.tpcNClsFound()); deuteron_reg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); - deuteron_reg.fill(HIST("histChi2TPC"), track.pt(), track.tpcChi2NCl()); + deuteron_reg.fill(HIST("histChi2TPC"), track.tpcInnerParam(), track.tpcChi2NCl()); deuteron_reg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); if (track.hasTOF()) { @@ -413,9 +457,9 @@ struct NucleiHistTask { Float_t TOFmass2 = ((track.mass()) * (track.mass())); Float_t beta = track.beta(); - deuteron_reg.fill(HIST("histTOFm2"), track.pt(), TOFmass2); + deuteron_reg.fill(HIST("histTOFm2"), track.tpcInnerParam(), TOFmass2); deuteron_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam(), beta); - deuteron_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaDe()); + deuteron_reg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam(), track.tofNSigmaDe()); } } @@ -425,9 +469,9 @@ struct NucleiHistTask { adeuteron_reg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); adeuteron_reg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); adeuteron_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - adeuteron_reg.fill(HIST("histNClusterTPC"), track.pt(), track.tpcNClsFound()); + adeuteron_reg.fill(HIST("histNClusterTPC"), track.tpcInnerParam(), track.tpcNClsFound()); adeuteron_reg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); - adeuteron_reg.fill(HIST("histChi2TPC"), track.pt(), track.tpcChi2NCl()); + adeuteron_reg.fill(HIST("histChi2TPC"), track.tpcInnerParam(), track.tpcChi2NCl()); adeuteron_reg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); if (track.hasTOF()) { @@ -435,9 +479,63 @@ struct NucleiHistTask { Float_t TOFmass2 = ((track.mass()) * (track.mass())); Float_t beta = track.beta(); - adeuteron_reg.fill(HIST("histTOFm2"), track.pt(), TOFmass2); + adeuteron_reg.fill(HIST("histTOFm2"), track.tpcInnerParam(), TOFmass2); adeuteron_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam(), beta); - adeuteron_reg.fill(HIST("histTofNsigmaData"), track.pt(), track.tofNSigmaDe()); + adeuteron_reg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam(), track.tofNSigmaDe()); + } + } + + if (track.hasTOF()) { + spectra.fill(HIST("histTofSignalData"), track.tpcInnerParam() * track.sign(), track.beta()); + } + + } + + //************** check offline-trigger (skimming) condidition Triton ******************* + + if (nSigmaTriton > nsigmacutLow && nSigmaTriton < nsigmacutHigh) { + + if (track.sign() > 0) { + keepEvent_t = kTRUE; + + triton_reg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); + triton_reg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); + triton_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); + triton_reg.fill(HIST("histNClusterTPC"), track.tpcInnerParam(), track.tpcNClsFound()); + triton_reg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); + triton_reg.fill(HIST("histChi2TPC"), track.tpcInnerParam(), track.tpcChi2NCl()); + triton_reg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); + + if (track.hasTOF()) { + + Float_t TOFmass2 = ((track.mass()) * (track.mass())); + Float_t beta = track.beta(); + + triton_reg.fill(HIST("histTOFm2"), track.tpcInnerParam(), TOFmass2); + triton_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam(), beta); + triton_reg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam(), track.tofNSigmaTr()); + } + } + + if (track.sign() < 0) { + keepEvent_antit = kTRUE; + + atriton_reg.fill(HIST("histDcaVsPtData"), track.pt(), track.dcaXY()); + atriton_reg.fill(HIST("histDcaZVsPtData"), track.pt(), track.dcaZ()); + atriton_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); + atriton_reg.fill(HIST("histNClusterTPC"), track.tpcInnerParam(), track.tpcNClsFound()); + atriton_reg.fill(HIST("histNClusterITS"), track.pt(), track.itsNCls()); + atriton_reg.fill(HIST("histChi2TPC"), track.tpcInnerParam(), track.tpcChi2NCl()); + atriton_reg.fill(HIST("histChi2ITS"), track.pt(), track.itsChi2NCl()); + + if (track.hasTOF()) { + + Float_t TOFmass2 = ((track.mass()) * (track.mass())); + Float_t beta = track.beta(); + + atriton_reg.fill(HIST("histTOFm2"), track.tpcInnerParam(), TOFmass2); + atriton_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam(), beta); + atriton_reg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam(), track.tofNSigmaTr()); } } @@ -456,10 +554,10 @@ struct NucleiHistTask { Helium3_reg.fill(HIST("histDcaVsPtData"), track.pt() * 2.0, track.dcaXY()); Helium3_reg.fill(HIST("histDcaZVsPtData"), track.pt() * 2.0, track.dcaZ()); - Helium3_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - Helium3_reg.fill(HIST("histNClusterTPC"), track.pt() * 2.0, track.tpcNClsFound()); + Helium3_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam() * 2.0, track.tpcSignal()); + Helium3_reg.fill(HIST("histNClusterTPC"), track.tpcInnerParam() * 2.0, track.tpcNClsFound()); Helium3_reg.fill(HIST("histNClusterITS"), track.pt() * 2.0, track.itsNCls()); - Helium3_reg.fill(HIST("histChi2TPC"), track.pt() * 2.0, track.tpcChi2NCl()); + Helium3_reg.fill(HIST("histChi2TPC"), track.tpcInnerParam() * 2.0, track.tpcChi2NCl()); Helium3_reg.fill(HIST("histChi2ITS"), track.pt() * 2.0, track.itsChi2NCl()); if (track.hasTOF()) { @@ -467,9 +565,9 @@ struct NucleiHistTask { Float_t TOFmass2 = ((track.mass()) * (track.mass())); Float_t beta = track.beta(); - Helium3_reg.fill(HIST("histTOFm2"), track.pt() * 2.0, TOFmass2); - Helium3_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam(), beta); - Helium3_reg.fill(HIST("histTofNsigmaData"), track.pt() * 2.0, track.tofNSigmaHe()); + Helium3_reg.fill(HIST("histTOFm2"), track.tpcInnerParam() * 2.0, TOFmass2); + Helium3_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam() * 2.0, beta); + Helium3_reg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam() * 2.0, track.tofNSigmaHe()); } } @@ -477,10 +575,10 @@ struct NucleiHistTask { keepEvent_antiHe3 = kTRUE; aHelium3_reg.fill(HIST("histDcaVsPtData"), track.pt() * 2.0, track.dcaXY()); aHelium3_reg.fill(HIST("histDcaZVsPtData"), track.pt() * 2.0, track.dcaZ()); - aHelium3_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam(), track.tpcSignal()); - aHelium3_reg.fill(HIST("histNClusterTPC"), track.pt() * 2.0, track.tpcNClsFound()); + aHelium3_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam() * 2.0, track.tpcSignal()); + aHelium3_reg.fill(HIST("histNClusterTPC"), track.tpcInnerParam() * 2.0, track.tpcNClsFound()); aHelium3_reg.fill(HIST("histNClusterITS"), track.pt() * 2.0, track.itsNCls()); - aHelium3_reg.fill(HIST("histChi2TPC"), track.pt() * 2.0, track.tpcChi2NCl()); + aHelium3_reg.fill(HIST("histChi2TPC"), track.tpcInnerParam() * 2.0, track.tpcChi2NCl()); aHelium3_reg.fill(HIST("histChi2ITS"), track.pt() * 2.0, track.itsChi2NCl()); if (track.hasTOF()) { @@ -488,9 +586,62 @@ struct NucleiHistTask { Float_t TOFmass2 = ((track.mass()) * (track.mass())); Float_t beta = track.beta(); - aHelium3_reg.fill(HIST("histTOFm2"), track.pt() * 2.0, TOFmass2); - aHelium3_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam(), beta); - aHelium3_reg.fill(HIST("histTofNsigmaData"), track.pt() * 2.0, track.tofNSigmaHe()); + aHelium3_reg.fill(HIST("histTOFm2"), track.tpcInnerParam() * 2.0, TOFmass2); + aHelium3_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam() * 2.0, beta); + aHelium3_reg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam() * 2.0, track.tofNSigmaHe()); + } + } + + if (track.hasTOF()) { + spectra.fill(HIST("histTofSignalData"), track.tpcInnerParam() * 2.0 * track.sign(), track.beta()); + } + + } + + //************** check offline-trigger (skimming) condidition Helium-4 ******************* + + if (nSigmaHe4 > nsigmacutLow && nSigmaHe4 < nsigmacutHigh) { + + if (track.sign() > 0) { + keepEvent_He4 = kTRUE; + + Helium4_reg.fill(HIST("histDcaVsPtData"), track.pt() * 2.0, track.dcaXY()); + Helium4_reg.fill(HIST("histDcaZVsPtData"), track.pt() * 2.0, track.dcaZ()); + Helium4_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam() * 2.0, track.tpcSignal()); + Helium4_reg.fill(HIST("histNClusterTPC"), track.tpcInnerParam() * 2.0, track.tpcNClsFound()); + Helium4_reg.fill(HIST("histNClusterITS"), track.pt() * 2.0, track.itsNCls()); + Helium4_reg.fill(HIST("histChi2TPC"), track.tpcInnerParam() * 2.0, track.tpcChi2NCl()); + Helium4_reg.fill(HIST("histChi2ITS"), track.pt() * 2.0, track.itsChi2NCl()); + + if (track.hasTOF()) { + + Float_t TOFmass2 = ((track.mass()) * (track.mass())); + Float_t beta = track.beta(); + + Helium4_reg.fill(HIST("histTOFm2"), track.tpcInnerParam() * 2.0, TOFmass2); + Helium4_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam() * 2.0, beta); + Helium4_reg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam() * 2.0, track.tofNSigmaAl()); + } + } + + if (track.sign() < 0) { + keepEvent_antiHe4 = kTRUE; + aHelium4_reg.fill(HIST("histDcaVsPtData"), track.pt() * 2.0, track.dcaXY()); + aHelium4_reg.fill(HIST("histDcaZVsPtData"), track.pt() * 2.0, track.dcaZ()); + aHelium4_reg.fill(HIST("histTpcSignalData"), track.tpcInnerParam() * 2.0, track.tpcSignal()); + aHelium4_reg.fill(HIST("histNClusterTPC"), track.tpcInnerParam() * 2.0, track.tpcNClsFound()); + aHelium4_reg.fill(HIST("histNClusterITS"), track.pt() * 2.0, track.itsNCls()); + aHelium4_reg.fill(HIST("histChi2TPC"), track.tpcInnerParam() * 2.0, track.tpcChi2NCl()); + aHelium4_reg.fill(HIST("histChi2ITS"), track.pt() * 2.0, track.itsChi2NCl()); + + if (track.hasTOF()) { + + Float_t TOFmass2 = ((track.mass()) * (track.mass())); + Float_t beta = track.beta(); + + aHelium4_reg.fill(HIST("histTOFm2"), track.tpcInnerParam() * 2.0, TOFmass2); + aHelium4_reg.fill(HIST("histTofSignalData"), track.tpcInnerParam() * 2.0, beta); + aHelium4_reg.fill(HIST("histTofNsigmaData"), track.tpcInnerParam() * 2.0, track.tofNSigmaAl()); } } @@ -507,8 +658,12 @@ struct NucleiHistTask { aproton_erg.fill(HIST("histKeepEventData"), keepEvent_antip); deuteron_reg.fill(HIST("histKeepEventData"), keepEvent_d); adeuteron_reg.fill(HIST("histKeepEventData"), keepEvent_antid); + triton_reg.fill(HIST("histKeepEventData"), keepEvent_t); + atriton_reg.fill(HIST("histKeepEventData"), keepEvent_antit); Helium3_reg.fill(HIST("histKeepEventData"), keepEvent_He3); aHelium3_reg.fill(HIST("histKeepEventData"), keepEvent_antiHe3); + Helium4_reg.fill(HIST("histKeepEventData"), keepEvent_He4); + aHelium4_reg.fill(HIST("histKeepEventData"), keepEvent_antiHe4); } //**************************************************************************************************** @@ -519,133 +674,85 @@ struct NucleiHistTask { for (auto track : tracks) { // start loop over tracks - float TPCnumberCls = track.tpcNClsFound(); + float TPCnumberClsFound = track.tpcNClsFound(); + float TPC_nCls_Crossed_Rows = track.tpcNClsCrossedRows(); float RatioCrossedRowsOverFindableTPC = track.tpcCrossedRowsOverFindableCls(); float Chi2perClusterTPC = track.tpcChi2NCl(); float Chi2perClusterITS = track.itsChi2NCl(); // track cuts - if (TPCnumberCls < minNCrossedRowsTPC || RatioCrossedRowsOverFindableTPC < minRatioCrossedRowsTPC || Chi2perClusterTPC > maxChi2TPC || Chi2perClusterITS > maxChi2ITS || !(track.passedTPCRefit()) || !(track.passedITSRefit()) || (track.itsNCls()) < minReqClusterITS || (track.pt()) < pTmin || (track.pt()) > pTmax || TMath::Abs(track.dcaXY()) > maxDCA_XY || TMath::Abs(track.dcaZ()) > maxDCA_Z) { + if (TPCnumberClsFound < minTPCnClsFound || TPC_nCls_Crossed_Rows < minNCrossedRowsTPC || RatioCrossedRowsOverFindableTPC < minRatioCrossedRowsTPC || RatioCrossedRowsOverFindableTPC > maxRatioCrossedRowsTPC || Chi2perClusterTPC > maxChi2TPC || Chi2perClusterITS > maxChi2ITS || !(track.passedTPCRefit()) || !(track.passedITSRefit()) || (track.itsNCls()) < minReqClusterITS || !(track.isPVContributor())) { continue; } // cut on rapidity TLorentzVector lorentzVector_proton{}; TLorentzVector lorentzVector_deuteron{}; + TLorentzVector lorentzVector_triton{}; TLorentzVector lorentzVector_He3{}; + TLorentzVector lorentzVector_He4{}; lorentzVector_proton.SetPtEtaPhiM(track.pt(), track.eta(), track.phi(), constants::physics::MassProton); lorentzVector_deuteron.SetPtEtaPhiM(track.pt(), track.eta(), track.phi(), constants::physics::MassDeuteron); + lorentzVector_triton.SetPtEtaPhiM(track.pt(), track.eta(), track.phi(), constants::physics::MassTriton); lorentzVector_He3.SetPtEtaPhiM(track.pt() * 2.0, track.eta(), track.phi(), constants::physics::MassHelium3); + lorentzVector_He4.SetPtEtaPhiM(track.pt() * 2.0, track.eta(), track.phi(), constants::physics::MassAlpha); if (lorentzVector_proton.Rapidity() < yMin || lorentzVector_proton.Rapidity() > yMax || lorentzVector_deuteron.Rapidity() < yMin || lorentzVector_deuteron.Rapidity() > yMax || - lorentzVector_He3.Rapidity() < yMin || lorentzVector_He3.Rapidity() > yMax) { + lorentzVector_triton.Rapidity() < yMin || lorentzVector_triton.Rapidity() > yMax || + lorentzVector_He3.Rapidity() < yMin || lorentzVector_He3.Rapidity() > yMax || + lorentzVector_He4.Rapidity() < yMin || lorentzVector_He4.Rapidity() > yMax) { continue; } // fill 3D centrality histograms if (track.sign() > 0) { - proton_erg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaPr(), event.centFT0C()); - proton_erg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaPr(), event.centFT0C()); - deuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaDe(), event.centFT0C()); - deuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaDe(), event.centFT0C()); - Helium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); - Helium3_reg.fill(HIST("histTofNsigmaData_cent"), track.pt() * 2.0, track.tofNSigmaHe(), event.centFT0C()); + proton_erg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam(), track.tpcNSigmaPr(), event.centFT0C()); + proton_erg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam(), track.tofNSigmaPr(), event.centFT0C()); + deuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam(), track.tpcNSigmaDe(), event.centFT0C()); + deuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam(), track.tofNSigmaDe(), event.centFT0C()); + triton_reg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam(), track.tpcNSigmaTr(), event.centFT0C()); + triton_reg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam(), track.tofNSigmaTr(), event.centFT0C()); + Helium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); + Helium3_reg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam() * 2.0, track.tofNSigmaHe(), event.centFT0C()); + Helium4_reg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam() * 2.0, track.tpcNSigmaAl(), event.centFT0C()); + Helium4_reg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam() * 2.0, track.tofNSigmaAl(), event.centFT0C()); if (track.hasTOF()) { - proton_erg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); - deuteron_reg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); - Helium3_reg.fill(HIST("histTofm2_cent"), track.pt() * 2.0, track.mass() * track.mass(), event.centFT0C()); + proton_erg.fill(HIST("histTofm2_cent"), track.tpcInnerParam(), track.mass() * track.mass(), event.centFT0C()); + deuteron_reg.fill(HIST("histTofm2_cent"), track.tpcInnerParam(), track.mass() * track.mass(), event.centFT0C()); + triton_reg.fill(HIST("histTofm2_cent"), track.tpcInnerParam(), track.mass() * track.mass(), event.centFT0C()); + Helium3_reg.fill(HIST("histTofm2_cent"), track.tpcInnerParam() * 2.0, track.mass() * track.mass(), event.centFT0C()); + Helium4_reg.fill(HIST("histTofm2_cent"), track.tpcInnerParam() * 2.0, track.mass() * track.mass(), event.centFT0C()); } } if (track.sign() < 0) { - aproton_erg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaPr(), event.centFT0C()); - aproton_erg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaPr(), event.centFT0C()); - adeuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt(), track.tpcNSigmaDe(), event.centFT0C()); - adeuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.pt(), track.tofNSigmaDe(), event.centFT0C()); - aHelium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.pt() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); - aHelium3_reg.fill(HIST("histTofNsigmaData_cent"), track.pt() * 2.0, track.tofNSigmaHe(), event.centFT0C()); + aproton_erg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam(), track.tpcNSigmaPr(), event.centFT0C()); + aproton_erg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam(), track.tofNSigmaPr(), event.centFT0C()); + adeuteron_reg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam(), track.tpcNSigmaDe(), event.centFT0C()); + adeuteron_reg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam(), track.tofNSigmaDe(), event.centFT0C()); + atriton_reg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam(), track.tpcNSigmaTr(), event.centFT0C()); + atriton_reg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam(), track.tofNSigmaTr(), event.centFT0C()); + aHelium3_reg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam() * 2.0, track.tpcNSigmaHe(), event.centFT0C()); + aHelium3_reg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam() * 2.0, track.tofNSigmaHe(), event.centFT0C()); + aHelium4_reg.fill(HIST("histTpcNsigmaData_cent"), track.tpcInnerParam() * 2.0, track.tpcNSigmaAl(), event.centFT0C()); + aHelium4_reg.fill(HIST("histTofNsigmaData_cent"), track.tpcInnerParam() * 2.0, track.tofNSigmaAl(), event.centFT0C()); if (track.hasTOF()) { - aproton_erg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); - adeuteron_reg.fill(HIST("histTofm2_cent"), track.pt(), track.mass() * track.mass(), event.centFT0C()); - aHelium3_reg.fill(HIST("histTofm2_cent"), track.pt() * 2.0, track.mass() * track.mass(), event.centFT0C()); + aproton_erg.fill(HIST("histTofm2_cent"), track.tpcInnerParam(), track.mass() * track.mass(), event.centFT0C()); + adeuteron_reg.fill(HIST("histTofm2_cent"), track.tpcInnerParam(), track.mass() * track.mass(), event.centFT0C()); + atriton_reg.fill(HIST("histTofm2_cent"), track.tpcInnerParam(), track.mass() * track.mass(), event.centFT0C()); + aHelium3_reg.fill(HIST("histTofm2_cent"), track.tpcInnerParam() * 2.0, track.mass() * track.mass(), event.centFT0C()); + aHelium4_reg.fill(HIST("histTofm2_cent"), track.tpcInnerParam() * 2.0, track.mass() * track.mass(), event.centFT0C()); } } } } - //**************************************************************************************************** - - template - void fillTable(const CollisionType& event, const TracksType& tracks) - { - - for (auto track : tracks) { - - if ((track.pt()) < pTmin || (track.pt()) > pTmax) { - continue; - } - - // fill table - nucleiTable( - track.pt(), - track.sign(), - track.eta(), - track.itsNCls(), - track.tpcNClsFound(), - track.tpcNClsCrossedRows(), - track.tpcCrossedRowsOverFindableCls(), - track.passedITSRefit(), - track.passedTPCRefit(), - track.itsChi2NCl(), - track.tpcChi2NCl(), - track.tpcNSigmaPr(), - track.tpcNSigmaDe(), - track.mass() * track.mass(), - 0.0, - track.dcaXY(), - track.dcaZ()); - } - } - - //**************************************************************************************************** - - template - void fillTableCent(const CollisionType& event, const TracksType& tracks) - { - - for (auto track : tracks) { - - if ((track.pt()) < pTmin || (track.pt()) > pTmax) { - continue; - } - - // fill table - nucleiTable( - track.pt(), - track.sign(), - track.eta(), - track.itsNCls(), - track.tpcNClsFound(), - track.tpcNClsCrossedRows(), - track.tpcCrossedRowsOverFindableCls(), - track.passedITSRefit(), - track.passedTPCRefit(), - track.itsChi2NCl(), - track.tpcChi2NCl(), - track.tpcNSigmaPr(), - track.tpcNSigmaDe(), - track.mass() * track.mass(), - event.centFT0C(), - track.dcaXY(), - track.dcaZ()); - } - } //**************************************************************************************************** @@ -654,14 +761,13 @@ struct NucleiHistTask { using EventCandidates = soa::Filtered>; - using EventCandidatesCent = soa::Filtered>; // aod::CentFV0As, aod::CentFT0Cs + using EventCandidatesCent = soa::Filtered>; - using TrackCandidates = soa::Filtered>; // aod::ReducedTracks + using TrackCandidates = soa::Filtered>; void processData(EventCandidates::iterator const& event, TrackCandidates const& tracks) { fillHistograms(event, tracks); - fillTable(event, tracks); } PROCESS_SWITCH(NucleiHistTask, processData, "process data", true); @@ -669,7 +775,6 @@ struct NucleiHistTask { { fillHistograms(event, tracks); fillCentHistorgrams(event, tracks); - fillTableCent(event, tracks); } PROCESS_SWITCH(NucleiHistTask, processDataCent, "process data with centralities", false); }; From 84d1fb3707dba15bfb1c994b9ce7f57697611b89 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 4 Apr 2023 15:12:34 +0000 Subject: [PATCH 10/10] Please consider the following formatting changes --- PWGLF/Tasks/NucleiHistTask.cxx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/PWGLF/Tasks/NucleiHistTask.cxx b/PWGLF/Tasks/NucleiHistTask.cxx index dc9093a7039..5aec294cf5c 100644 --- a/PWGLF/Tasks/NucleiHistTask.cxx +++ b/PWGLF/Tasks/NucleiHistTask.cxx @@ -488,7 +488,6 @@ struct NucleiHistTask { if (track.hasTOF()) { spectra.fill(HIST("histTofSignalData"), track.tpcInnerParam() * track.sign(), track.beta()); } - } //************** check offline-trigger (skimming) condidition Triton ******************* @@ -542,7 +541,6 @@ struct NucleiHistTask { if (track.hasTOF()) { spectra.fill(HIST("histTofSignalData"), track.tpcInnerParam() * track.sign(), track.beta()); } - } //************** check offline-trigger (skimming) condidition Helium-3 ******************* @@ -595,9 +593,8 @@ struct NucleiHistTask { if (track.hasTOF()) { spectra.fill(HIST("histTofSignalData"), track.tpcInnerParam() * 2.0 * track.sign(), track.beta()); } - } - + //************** check offline-trigger (skimming) condidition Helium-4 ******************* if (nSigmaHe4 > nsigmacutLow && nSigmaHe4 < nsigmacutHigh) { @@ -648,7 +645,6 @@ struct NucleiHistTask { if (track.hasTOF()) { spectra.fill(HIST("histTofSignalData"), track.tpcInnerParam() * 2.0 * track.sign(), track.beta()); } - } } // end loop over tracks