From 5f1f6beb3792ed97cba340af7cd5a8e7b0a098eb Mon Sep 17 00:00:00 2001 From: Rohaan Deb <67634136+RD0407@users.noreply.github.com> Date: Mon, 6 May 2024 21:51:01 +0200 Subject: [PATCH 01/12] Update spectraTOF.cxx Removed the eta axis form the MC hists --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 5ce96de0cb4..f4f874da694 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -497,19 +497,19 @@ struct tofSpectra { if (includeCentralityMC) { //*************************************RD********************************************** - histos.add(hpt_num_prm[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); - histos.add(hpt_num_str[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); - histos.add(hpt_num_mat[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); + histos.add(hpt_num_prm[i].data(), pTCharge[i], kTHnSparseD, {ptAxis, multAxis}); + histos.add(hpt_num_str[i].data(), pTCharge[i], kTHnSparseD, {ptAxis, multAxis}); + histos.add(hpt_num_mat[i].data(), pTCharge[i], kTHnSparseD, {ptAxis, multAxis}); - histos.add(hpt_numtof_prm[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); - histos.add(hpt_numtof_str[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); - histos.add(hpt_numtof_mat[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); + histos.add(hpt_numtof_prm[i].data(), pTCharge[i], kTHnSparseD, {ptAxis, multAxis}); + histos.add(hpt_numtof_str[i].data(), pTCharge[i], kTHnSparseD, {ptAxis, multAxis}); + histos.add(hpt_numtof_mat[i].data(), pTCharge[i], kTHnSparseD, {ptAxis, multAxis}); histos.add(hpt_numtofgoodmatch_prm[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); - histos.add(hpt_den_prm[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); - histos.add(hpt_den_str[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); - histos.add(hpt_den_mat[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); + histos.add(hpt_den_prm[i].data(), pTCharge[i], kTHnSparseD, {ptAxis, multAxis}); + histos.add(hpt_den_str[i].data(), pTCharge[i], kTHnSparseD, {ptAxis, multAxis}); + histos.add(hpt_den_mat[i].data(), pTCharge[i], kTHnSparseD, {ptAxis, multAxis}); histos.add(hpt_den_prm_recoev[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); histos.add(hpt_den_prm_evsel[i].data(), pTCharge[i], kTH3D, {ptAxis, multAxis, etaAxis}); @@ -1392,9 +1392,9 @@ struct tofSpectra { if (!mcParticle.isPhysicalPrimary()) { if (mcParticle.getProcess() == 4) { if (includeCentralityMC) { - histos.fill(HIST(hpt_num_str[i]), track.pt(), multiplicity, track.eta()); // RD + histos.fill(HIST(hpt_num_str[i]), track.pt(), multiplicity); // RD if (track.hasTOF()) { - histos.fill(HIST(hpt_numtof_str[i]), track.pt(), multiplicity, track.eta()); // RD + histos.fill(HIST(hpt_numtof_str[i]), track.pt(), multiplicity); // RD } } else { histos.fill(HIST(hpt_num_str[i]), track.pt()); @@ -1404,9 +1404,9 @@ struct tofSpectra { } } else { if (includeCentralityMC) { - histos.fill(HIST(hpt_num_mat[i]), track.pt(), multiplicity, track.eta()); // RD + histos.fill(HIST(hpt_num_mat[i]), track.pt(), multiplicity); // RD if (track.hasTOF()) { - histos.fill(HIST(hpt_numtof_mat[i]), track.pt(), multiplicity, track.eta()); // RD + histos.fill(HIST(hpt_numtof_mat[i]), track.pt(), multiplicity); // RD } } else { @@ -1418,7 +1418,7 @@ struct tofSpectra { } } else { if (includeCentralityMC) { - histos.fill(HIST(hpt_num_prm[i]), track.pt(), multiplicity, track.eta()); // RD + histos.fill(HIST(hpt_num_prm[i]), track.pt(), multiplicity); // RD } else { histos.fill(HIST(hpt_num_prm[i]), track.pt()); } @@ -1436,7 +1436,7 @@ struct tofSpectra { } if (track.hasTOF()) { if (includeCentralityMC) { - histos.fill(HIST(hpt_numtof_prm[i]), track.pt(), multiplicity, track.eta()); // RD + histos.fill(HIST(hpt_numtof_prm[i]), track.pt(), multiplicity); // RD if (!(track.mcMask() & (1 << 11))) { histos.fill(HIST(hpt_numtofgoodmatch_prm[i]), track.pt(), multiplicity, track.eta()); // RD } @@ -1533,20 +1533,20 @@ struct tofSpectra { if (!mcParticle.isPhysicalPrimary()) { if (mcParticle.getProcess() == 4) { if (includeCentralityMC) { - histos.fill(HIST(hpt_den_str[i]), mcParticle.pt(), multiplicity, mcParticle.eta()); // RD + histos.fill(HIST(hpt_den_str[i]), mcParticle.pt(), multiplicity); // RD } else { histos.fill(HIST(hpt_den_str[i]), mcParticle.pt()); } } else { if (includeCentralityMC) { - histos.fill(HIST(hpt_den_mat[i]), mcParticle.pt(), multiplicity, mcParticle.eta()); // RD + histos.fill(HIST(hpt_den_mat[i]), mcParticle.pt(), multiplicity); // RD } else { histos.fill(HIST(hpt_den_mat[i]), mcParticle.pt()); } } } else { if (includeCentralityMC) { - histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt(), multiplicity, mcParticle.eta()); // RD + histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt(), multiplicity); // RD } else { histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt()); } From e5225876dd9ea31e93dbb8c21807f817d2178df0 Mon Sep 17 00:00:00 2001 From: Rohaan Deb <67634136+RD0407@users.noreply.github.com> Date: Mon, 27 May 2024 13:16:28 +0200 Subject: [PATCH 02/12] Update spectraTOF.cxx Added event selection to generated particles --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 55779222b2a..0be58bd5370 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1284,7 +1284,7 @@ struct tofSpectra { } } - using CollisionCandidateMC = soa::Join; // RD + using CollisionCandidateMC = soa::Join; // RD template void fillTrackHistograms_MC(TrackType const& track, ParticleType const& mcParticle, CollisionCandidateMC::iterator const& collision) { @@ -1537,6 +1537,9 @@ struct tofSpectra { } const float multiplicity = getMultiplicity(collision); + if (!isEventSelected(collision)) { + return; + } if (!mcParticle.isPhysicalPrimary()) { if (mcParticle.getProcess() == 4) { if (includeCentralityMC) { From aee8c69ba6c8e31158884dbcd61ed4d6cf8a4898 Mon Sep 17 00:00:00 2001 From: Rohaan Deb <67634136+RD0407@users.noreply.github.com> Date: Mon, 27 May 2024 13:22:08 +0200 Subject: [PATCH 03/12] Update spectraTOF.cxx --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 0be58bd5370..fda58d6db33 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1537,9 +1537,9 @@ struct tofSpectra { } const float multiplicity = getMultiplicity(collision); - if (!isEventSelected(collision)) { - return; - } +if (!isEventSelected(collision)) { +return; +} if (!mcParticle.isPhysicalPrimary()) { if (mcParticle.getProcess() == 4) { if (includeCentralityMC) { From ddd7318b164cc69f5e769832ba086865dc1d8232 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 27 May 2024 11:28:34 +0000 Subject: [PATCH 04/12] Please consider the following formatting changes --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index fda58d6db33..1927576f6b6 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1537,9 +1537,9 @@ struct tofSpectra { } const float multiplicity = getMultiplicity(collision); -if (!isEventSelected(collision)) { -return; -} + if (!isEventSelected(collision)) { + return; + } if (!mcParticle.isPhysicalPrimary()) { if (mcParticle.getProcess() == 4) { if (includeCentralityMC) { From 511270366dbec97f461339ea02f2fff7564303b1 Mon Sep 17 00:00:00 2001 From: Rohaan Deb <67634136+RD0407@users.noreply.github.com> Date: Mon, 27 May 2024 16:21:23 +0200 Subject: [PATCH 05/12] Update spectraTOF.cxx --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 1927576f6b6..fd7ff796692 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1537,9 +1537,9 @@ struct tofSpectra { } const float multiplicity = getMultiplicity(collision); - if (!isEventSelected(collision)) { - return; - } + + + if (!mcParticle.isPhysicalPrimary()) { if (mcParticle.getProcess() == 4) { if (includeCentralityMC) { @@ -1555,11 +1555,13 @@ struct tofSpectra { } } } else { +if (isEventSelected(collision)){ if (includeCentralityMC) { histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt(), multiplicity); // RD } else { histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt()); } + } } } From b5b48b669fe5c1bdd0a7c0a742dee346d2ab7ef5 Mon Sep 17 00:00:00 2001 From: Rohaan Deb <67634136+RD0407@users.noreply.github.com> Date: Mon, 27 May 2024 16:23:12 +0200 Subject: [PATCH 06/12] Update spectraTOF.cxx Added evSel to generated particles --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index fd7ff796692..1f2ad641ef9 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1555,7 +1555,7 @@ struct tofSpectra { } } } else { -if (isEventSelected(collision)){ +if (isEventSelected(collision)){ if (includeCentralityMC) { histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt(), multiplicity); // RD } else { From a34340e7f941802b3de31c5ee98edaf69a4fae09 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Mon, 27 May 2024 14:27:06 +0000 Subject: [PATCH 07/12] Please consider the following formatting changes --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 1f2ad641ef9..7a4d417748f 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1538,8 +1538,6 @@ struct tofSpectra { const float multiplicity = getMultiplicity(collision); - - if (!mcParticle.isPhysicalPrimary()) { if (mcParticle.getProcess() == 4) { if (includeCentralityMC) { @@ -1555,13 +1553,13 @@ struct tofSpectra { } } } else { -if (isEventSelected(collision)){ - if (includeCentralityMC) { - histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt(), multiplicity); // RD - } else { - histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt()); + if (isEventSelected(collision)) { + if (includeCentralityMC) { + histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt(), multiplicity); // RD + } else { + histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt()); + } } - } } } From c9251a6fafd60647ba0f562820f025e254c5f479 Mon Sep 17 00:00:00 2001 From: Rohaan Deb <67634136+RD0407@users.noreply.github.com> Date: Tue, 4 Jun 2024 13:33:09 +0200 Subject: [PATCH 08/12] Update spectraTOF.cxx Added Impact parameter for generated particles for centrality estimation --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 77 ++++++++++++++++++++++++++----- 1 file changed, 65 insertions(+), 12 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 7a4d417748f..7cb483669a8 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -100,6 +100,7 @@ struct tofSpectra { Configurable enableTPCTOFvsEtaHistograms{"enableTPCTOFvsEtaHistograms", false, "choose if produce TPC tof vs Eta"}; Configurable includeCentralityMC{"includeCentralityMC", true, "choose if include Centrality to MC"}; Configurable tpctofVsMult{"tpctofVsMult", false, "Produce TPC-TOF plots vs multiplicity"}; + ConfigurableAxis binsImpactParam{"binsImpactParam", {25., 0., 25.}, "Binning for impact parameter"}; // Histograms HistogramRegistry histos{"Histos", {}, OutputObjHandlingPolicy::AnalysisObject}; @@ -198,6 +199,7 @@ struct tofSpectra { const AxisSpec pAxis{binsPt, "#it{p} (GeV/#it{c})"}; const AxisSpec ptAxis{binsPt, "#it{p}_{T} (GeV/#it{c})"}; const AxisSpec etaAxis{binsEta, "#eta"}; + const AxisSpec impParamAxis{binsImpactParam, "Impact parameter"}; histos.add("event/vertexz", "", HistType::kTH1D, {vtxZAxis}); auto h = histos.add("evsel", "evsel", HistType::kTH1D, {{20, 0.5, 20.5}}); @@ -240,7 +242,6 @@ struct tofSpectra { histos.add("Centrality/FT0C", "FT0C", HistType::kTH1D, {{binsPercentile, "Centrality FT0C"}}); histos.add("Centrality/FDDM", "FDDM", HistType::kTH1D, {{binsPercentile, "Centrality FDDM"}}); histos.add("Centrality/NTPV", "NTPV", HistType::kTH1D, {{binsPercentile, "Centrality NTPV"}}); - histos.add("Mult/FV0M", "MultFV0M", HistType::kTH1D, {{binsMultiplicity, "MultFV0M"}}); histos.add("Mult/FT0M", "MultFT0M", HistType::kTH1D, {{binsMultiplicity, "MultFT0M"}}); histos.add("Mult/FDDM", "MultFDDM", HistType::kTH1D, {{binsMultiplicity, "MultFDDM"}}); @@ -271,6 +272,8 @@ struct tofSpectra { histos.add("track/TPC/tpcFractionSharedCls", "fraction of shared TPC clusters;fraction shared clusters TPC", kTH2D, {{100, 0., 1.}, chargeAxis}); histos.add("track/TPC/tpcCrossedRowsOverFindableCls", "crossed TPC rows over findable clusters;crossed rows / findable clusters TPC", kTH2D, {{60, 0.7, 1.3}, chargeAxis}); histos.add("track/TPC/tpcChi2NCl", "chi2 per cluster in TPC;chi2 / cluster TPC", kTH2D, {{100, 0, 10}, chargeAxis}); + histos.add("Vertex/histGenVtxMC", "MC generated vertex z position", HistType::kTH1F, {{400, -40., +40., "z position (cm)"}}); + histos.add("Centrality/ImpParm", "Centrality", HistType::kTH1F, {{binsPercentile, "Centrality FT0C"}}); histos.addClone("track/ITS/itsNCls", "track/selected/ITS/itsNCls"); histos.addClone("track/ITS/itsChi2NCl", "track/selected/ITS/itsChi2NCl"); @@ -335,6 +338,12 @@ struct tofSpectra { histos.add("MC/fake/neg", "Fake negative tracks", kTH1D, {ptAxis}); histos.add("MC/no_collision/pos", "No collision pos track", kTH1D, {ptAxis}); histos.add("MC/no_collision/neg", "No collision neg track", kTH1D, {ptAxis}); + histos.add("MC/test/pi/pos/prm/pt/den", "generated MC #pi^{+}", kTHnSparseD, {ptAxis, impParamAxis}); + histos.add("MC/test/pi/neg/prm/pt/den", "generated MC #pi^{-}", kTHnSparseD, {ptAxis, impParamAxis}); + histos.add("MC/test/ka/pos/prm/pt/den", "generated MC K^{+}", kTHnSparseD, {ptAxis, impParamAxis}); + histos.add("MC/test/ka/neg/prm/pt/den", "generated MC K^{-}", kTHnSparseD, {ptAxis, impParamAxis}); + histos.add("MC/test/pr/pos/prm/pt/den", "generated MC p", kTHnSparseD, {ptAxis, impParamAxis}); + histos.add("MC/test/pr/neg/prm/pt/den", "generated MC #bar{p}", kTHnSparseD, {ptAxis, impParamAxis}); auto hh = histos.add("MC/GenRecoCollisions", "Generated and Reconstructed MC Collisions", kTH1D, {{10, 0.5, 10.5}}); hh->GetXaxis()->SetBinLabel(1, "Collisions generated"); hh->GetXaxis()->SetBinLabel(2, "Collisions reconstructed"); @@ -556,7 +565,7 @@ struct tofSpectra { histos.add(hdcazprmgoodevs[i].data(), pTCharge[i], kTH2D, {ptAxis, dcaZAxis}); } } - + //histos.add("Data/pos/pt/its_tpc_trd_tof", "pos ITS-TPC-TRD-TOF", kTH1D, {ptAxis}); // Mismatched info histos.add(hpt_mism_its_prm[i].data(), pTCharge[i], kTH1D, {ptAxis}); histos.add(hpt_mism_tpc_prm[i].data(), pTCharge[i], kTH1D, {ptAxis}); @@ -1284,7 +1293,7 @@ struct tofSpectra { } } - using CollisionCandidateMC = soa::Join; // RD + using CollisionCandidateMC = soa::Join; // RD template void fillTrackHistograms_MC(TrackType const& track, ParticleType const& mcParticle, CollisionCandidateMC::iterator const& collision) { @@ -1470,7 +1479,49 @@ struct tofSpectra { } } } - + template + void process_MC_gen(const McCollisionType& mcCollision, const McParticlesType& mcParticles) + { + histos.fill(HIST("Vertex/histGenVtxMC"), mcCollision.posZ()); + histos.fill(HIST("Centrality/ImpParm"), mcCollision.impactParameter()); +const float multiplicity = mcCollision.impactParameter(); + for (const auto& mcParticleGen : mcParticles) { + if (!mcParticleGen.isPhysicalPrimary()) + continue; + int pdgCode = mcParticleGen.pdgCode(); + float pt = mcParticleGen.pt(); + float absY = std::abs(mcParticleGen.y()); + + // Apply rapidity cut + if (absY > trkselOptions.cfgCutY) { + continue; + } + + // Fill histograms based on particle type + switch (pdgCode) { + case 2212: + histos.fill(HIST("MC/test/pr/pos/prm/pt/den"), pt, multiplicity); + break; + case -2212: + histos.fill(HIST("MC/test/pr/neg/prm/pt/den"), pt, multiplicity); + break; + case 211: + histos.fill(HIST("MC/test/pi/pos/prm/pt/den"), pt, multiplicity); + break; + case -211: + histos.fill(HIST("MC/test/pi/neg/prm/pt/den"), pt, multiplicity); + break; + case 321: + histos.fill(HIST("MC/test/ka/pos/prm/pt/den"), pt, multiplicity); + break; + case -321: + histos.fill(HIST("MC/test/ka/neg/prm/pt/den"), pt, multiplicity); + break; + default: + break; + } + } + } template void fillParticleHistograms_MC(CollisionCandidateMC::iterator const& collision, ParticleType const& mcParticle) { @@ -1537,7 +1588,6 @@ struct tofSpectra { } const float multiplicity = getMultiplicity(collision); - if (!mcParticle.isPhysicalPrimary()) { if (mcParticle.getProcess() == 4) { if (includeCentralityMC) { @@ -1553,12 +1603,10 @@ struct tofSpectra { } } } else { - if (isEventSelected(collision)) { - if (includeCentralityMC) { - histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt(), multiplicity); // RD - } else { - histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt()); - } + if (includeCentralityMC) { + histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt(), multiplicity); // RD + } else { + histos.fill(HIST(hpt_den_prm[i]), mcParticle.pt()); } } } @@ -1878,7 +1926,6 @@ struct tofSpectra { continue; } } - int nInelPart = 0; for (const auto& mcParticle : particlesInCollision) { if (mcParticle.isPhysicalPrimary()) { @@ -1912,6 +1959,12 @@ struct tofSpectra { } } PROCESS_SWITCH(tofSpectra, processMC, "Process MC", false); + +void processMCgen(aod::McCollision const& mcCollision, aod::McParticles const& mcParticles) + { + process_MC_gen(mcCollision, mcParticles); + } + PROCESS_SWITCH(tofSpectra, processMCgen, "process generated MC", true); }; // end of spectra task WorkflowSpec defineDataProcessing(ConfigContext const& cfgc) { return WorkflowSpec{adaptAnalysisTask(cfgc)}; } From 508ed81b95b948489e5634767d6da6839c9277db Mon Sep 17 00:00:00 2001 From: Rohaan Deb <67634136+RD0407@users.noreply.github.com> Date: Tue, 4 Jun 2024 13:35:46 +0200 Subject: [PATCH 09/12] Update spectraTOF.cxx Added impact param for estimation of centrality for generated particles --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 2 -- 1 file changed, 2 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 7cb483669a8..3bafdba3889 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1491,7 +1491,6 @@ const float multiplicity = mcCollision.impactParameter(); int pdgCode = mcParticleGen.pdgCode(); float pt = mcParticleGen.pt(); float absY = std::abs(mcParticleGen.y()); - // Apply rapidity cut if (absY > trkselOptions.cfgCutY) { continue; @@ -1959,7 +1958,6 @@ const float multiplicity = mcCollision.impactParameter(); } } PROCESS_SWITCH(tofSpectra, processMC, "Process MC", false); - void processMCgen(aod::McCollision const& mcCollision, aod::McParticles const& mcParticles) { process_MC_gen(mcCollision, mcParticles); From a1e049d9c3507090abd30bc667326ad1b8fd8b7a Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Tue, 4 Jun 2024 11:40:32 +0000 Subject: [PATCH 10/12] Please consider the following formatting changes --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 70 +++++++++++++++---------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 3bafdba3889..f264adc4407 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -273,7 +273,7 @@ struct tofSpectra { histos.add("track/TPC/tpcCrossedRowsOverFindableCls", "crossed TPC rows over findable clusters;crossed rows / findable clusters TPC", kTH2D, {{60, 0.7, 1.3}, chargeAxis}); histos.add("track/TPC/tpcChi2NCl", "chi2 per cluster in TPC;chi2 / cluster TPC", kTH2D, {{100, 0, 10}, chargeAxis}); histos.add("Vertex/histGenVtxMC", "MC generated vertex z position", HistType::kTH1F, {{400, -40., +40., "z position (cm)"}}); - histos.add("Centrality/ImpParm", "Centrality", HistType::kTH1F, {{binsPercentile, "Centrality FT0C"}}); + histos.add("Centrality/ImpParm", "Centrality", HistType::kTH1F, {{binsPercentile, "Centrality FT0C"}}); histos.addClone("track/ITS/itsNCls", "track/selected/ITS/itsNCls"); histos.addClone("track/ITS/itsChi2NCl", "track/selected/ITS/itsChi2NCl"); @@ -338,7 +338,7 @@ struct tofSpectra { histos.add("MC/fake/neg", "Fake negative tracks", kTH1D, {ptAxis}); histos.add("MC/no_collision/pos", "No collision pos track", kTH1D, {ptAxis}); histos.add("MC/no_collision/neg", "No collision neg track", kTH1D, {ptAxis}); - histos.add("MC/test/pi/pos/prm/pt/den", "generated MC #pi^{+}", kTHnSparseD, {ptAxis, impParamAxis}); + histos.add("MC/test/pi/pos/prm/pt/den", "generated MC #pi^{+}", kTHnSparseD, {ptAxis, impParamAxis}); histos.add("MC/test/pi/neg/prm/pt/den", "generated MC #pi^{-}", kTHnSparseD, {ptAxis, impParamAxis}); histos.add("MC/test/ka/pos/prm/pt/den", "generated MC K^{+}", kTHnSparseD, {ptAxis, impParamAxis}); histos.add("MC/test/ka/neg/prm/pt/den", "generated MC K^{-}", kTHnSparseD, {ptAxis, impParamAxis}); @@ -565,8 +565,8 @@ struct tofSpectra { histos.add(hdcazprmgoodevs[i].data(), pTCharge[i], kTH2D, {ptAxis, dcaZAxis}); } } - //histos.add("Data/pos/pt/its_tpc_trd_tof", "pos ITS-TPC-TRD-TOF", kTH1D, {ptAxis}); - // Mismatched info + // histos.add("Data/pos/pt/its_tpc_trd_tof", "pos ITS-TPC-TRD-TOF", kTH1D, {ptAxis}); + // Mismatched info histos.add(hpt_mism_its_prm[i].data(), pTCharge[i], kTH1D, {ptAxis}); histos.add(hpt_mism_tpc_prm[i].data(), pTCharge[i], kTH1D, {ptAxis}); histos.add(hpt_mism_trd_prm[i].data(), pTCharge[i], kTH1D, {ptAxis}); @@ -1482,43 +1482,43 @@ struct tofSpectra { template void process_MC_gen(const McCollisionType& mcCollision, const McParticlesType& mcParticles) { - histos.fill(HIST("Vertex/histGenVtxMC"), mcCollision.posZ()); + histos.fill(HIST("Vertex/histGenVtxMC"), mcCollision.posZ()); histos.fill(HIST("Centrality/ImpParm"), mcCollision.impactParameter()); -const float multiplicity = mcCollision.impactParameter(); + const float multiplicity = mcCollision.impactParameter(); for (const auto& mcParticleGen : mcParticles) { if (!mcParticleGen.isPhysicalPrimary()) continue; int pdgCode = mcParticleGen.pdgCode(); - float pt = mcParticleGen.pt(); - float absY = std::abs(mcParticleGen.y()); - // Apply rapidity cut - if (absY > trkselOptions.cfgCutY) { - continue; - } + float pt = mcParticleGen.pt(); + float absY = std::abs(mcParticleGen.y()); + // Apply rapidity cut + if (absY > trkselOptions.cfgCutY) { + continue; + } // Fill histograms based on particle type - switch (pdgCode) { - case 2212: - histos.fill(HIST("MC/test/pr/pos/prm/pt/den"), pt, multiplicity); - break; - case -2212: - histos.fill(HIST("MC/test/pr/neg/prm/pt/den"), pt, multiplicity); - break; - case 211: - histos.fill(HIST("MC/test/pi/pos/prm/pt/den"), pt, multiplicity); - break; - case -211: - histos.fill(HIST("MC/test/pi/neg/prm/pt/den"), pt, multiplicity); - break; - case 321: - histos.fill(HIST("MC/test/ka/pos/prm/pt/den"), pt, multiplicity); - break; - case -321: - histos.fill(HIST("MC/test/ka/neg/prm/pt/den"), pt, multiplicity); - break; - default: - break; - } + switch (pdgCode) { + case 2212: + histos.fill(HIST("MC/test/pr/pos/prm/pt/den"), pt, multiplicity); + break; + case -2212: + histos.fill(HIST("MC/test/pr/neg/prm/pt/den"), pt, multiplicity); + break; + case 211: + histos.fill(HIST("MC/test/pi/pos/prm/pt/den"), pt, multiplicity); + break; + case -211: + histos.fill(HIST("MC/test/pi/neg/prm/pt/den"), pt, multiplicity); + break; + case 321: + histos.fill(HIST("MC/test/ka/pos/prm/pt/den"), pt, multiplicity); + break; + case -321: + histos.fill(HIST("MC/test/ka/neg/prm/pt/den"), pt, multiplicity); + break; + default: + break; + } } } template @@ -1958,7 +1958,7 @@ const float multiplicity = mcCollision.impactParameter(); } } PROCESS_SWITCH(tofSpectra, processMC, "Process MC", false); -void processMCgen(aod::McCollision const& mcCollision, aod::McParticles const& mcParticles) + void processMCgen(aod::McCollision const& mcCollision, aod::McParticles const& mcParticles) { process_MC_gen(mcCollision, mcParticles); } From 6018c8bc06447209a270b3f5afe71287267288c3 Mon Sep 17 00:00:00 2001 From: Rohaan Deb <67634136+RD0407@users.noreply.github.com> Date: Tue, 4 Jun 2024 17:42:56 +0200 Subject: [PATCH 11/12] Update spectraTOF.cxx --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 83 +++++++++++++++++-------------- 1 file changed, 45 insertions(+), 38 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index f264adc4407..04aa805a6c9 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -100,7 +100,7 @@ struct tofSpectra { Configurable enableTPCTOFvsEtaHistograms{"enableTPCTOFvsEtaHistograms", false, "choose if produce TPC tof vs Eta"}; Configurable includeCentralityMC{"includeCentralityMC", true, "choose if include Centrality to MC"}; Configurable tpctofVsMult{"tpctofVsMult", false, "Produce TPC-TOF plots vs multiplicity"}; - ConfigurableAxis binsImpactParam{"binsImpactParam", {25., 0., 25.}, "Binning for impact parameter"}; + ConfigurableAxis binsImpactParam{"binsImpactParam", {2500, 0, 25}, "Binning for impact parameter"}; // Histograms HistogramRegistry histos{"Histos", {}, OutputObjHandlingPolicy::AnalysisObject}; @@ -273,7 +273,7 @@ struct tofSpectra { histos.add("track/TPC/tpcCrossedRowsOverFindableCls", "crossed TPC rows over findable clusters;crossed rows / findable clusters TPC", kTH2D, {{60, 0.7, 1.3}, chargeAxis}); histos.add("track/TPC/tpcChi2NCl", "chi2 per cluster in TPC;chi2 / cluster TPC", kTH2D, {{100, 0, 10}, chargeAxis}); histos.add("Vertex/histGenVtxMC", "MC generated vertex z position", HistType::kTH1F, {{400, -40., +40., "z position (cm)"}}); - histos.add("Centrality/ImpParm", "Centrality", HistType::kTH1F, {{binsPercentile, "Centrality FT0C"}}); + histos.add("Centrality/ImpParm", "Centrality", HistType::kTH1F, {{binsPercentile, "Centrality FT0C"}}); histos.addClone("track/ITS/itsNCls", "track/selected/ITS/itsNCls"); histos.addClone("track/ITS/itsChi2NCl", "track/selected/ITS/itsChi2NCl"); @@ -338,7 +338,7 @@ struct tofSpectra { histos.add("MC/fake/neg", "Fake negative tracks", kTH1D, {ptAxis}); histos.add("MC/no_collision/pos", "No collision pos track", kTH1D, {ptAxis}); histos.add("MC/no_collision/neg", "No collision neg track", kTH1D, {ptAxis}); - histos.add("MC/test/pi/pos/prm/pt/den", "generated MC #pi^{+}", kTHnSparseD, {ptAxis, impParamAxis}); + histos.add("MC/test/pi/pos/prm/pt/den", "generated MC #pi^{+}", kTHnSparseD, {ptAxis, impParamAxis}); histos.add("MC/test/pi/neg/prm/pt/den", "generated MC #pi^{-}", kTHnSparseD, {ptAxis, impParamAxis}); histos.add("MC/test/ka/pos/prm/pt/den", "generated MC K^{+}", kTHnSparseD, {ptAxis, impParamAxis}); histos.add("MC/test/ka/neg/prm/pt/den", "generated MC K^{-}", kTHnSparseD, {ptAxis, impParamAxis}); @@ -565,8 +565,8 @@ struct tofSpectra { histos.add(hdcazprmgoodevs[i].data(), pTCharge[i], kTH2D, {ptAxis, dcaZAxis}); } } - // histos.add("Data/pos/pt/its_tpc_trd_tof", "pos ITS-TPC-TRD-TOF", kTH1D, {ptAxis}); - // Mismatched info + //histos.add("Data/pos/pt/its_tpc_trd_tof", "pos ITS-TPC-TRD-TOF", kTH1D, {ptAxis}); + // Mismatched info histos.add(hpt_mism_its_prm[i].data(), pTCharge[i], kTH1D, {ptAxis}); histos.add(hpt_mism_tpc_prm[i].data(), pTCharge[i], kTH1D, {ptAxis}); histos.add(hpt_mism_trd_prm[i].data(), pTCharge[i], kTH1D, {ptAxis}); @@ -1356,7 +1356,14 @@ struct tofSpectra { } //************************************RD************************************************** - const float multiplicity = getMultiplicity(collision); + auto mcCollision = collision.mcCollision(); + auto multiplicity = 0. ; + if (includeCentralityMC) { + multiplicity = mcCollision.impactParameter(); + } else { + multiplicity = collision.centFT0C(); + } + //************************************RD************************************************** if (mcParticle.pdgCode() != PDGs[i]) { @@ -1482,43 +1489,43 @@ struct tofSpectra { template void process_MC_gen(const McCollisionType& mcCollision, const McParticlesType& mcParticles) { - histos.fill(HIST("Vertex/histGenVtxMC"), mcCollision.posZ()); + histos.fill(HIST("Vertex/histGenVtxMC"), mcCollision.posZ()); histos.fill(HIST("Centrality/ImpParm"), mcCollision.impactParameter()); - const float multiplicity = mcCollision.impactParameter(); +const float multiplicity = mcCollision.impactParameter(); for (const auto& mcParticleGen : mcParticles) { if (!mcParticleGen.isPhysicalPrimary()) continue; int pdgCode = mcParticleGen.pdgCode(); - float pt = mcParticleGen.pt(); - float absY = std::abs(mcParticleGen.y()); - // Apply rapidity cut - if (absY > trkselOptions.cfgCutY) { - continue; - } + float pt = mcParticleGen.pt(); + float absY = std::abs(mcParticleGen.y()); + // Apply rapidity cut + if (absY > trkselOptions.cfgCutY) { + continue; + } // Fill histograms based on particle type - switch (pdgCode) { - case 2212: - histos.fill(HIST("MC/test/pr/pos/prm/pt/den"), pt, multiplicity); - break; - case -2212: - histos.fill(HIST("MC/test/pr/neg/prm/pt/den"), pt, multiplicity); - break; - case 211: - histos.fill(HIST("MC/test/pi/pos/prm/pt/den"), pt, multiplicity); - break; - case -211: - histos.fill(HIST("MC/test/pi/neg/prm/pt/den"), pt, multiplicity); - break; - case 321: - histos.fill(HIST("MC/test/ka/pos/prm/pt/den"), pt, multiplicity); - break; - case -321: - histos.fill(HIST("MC/test/ka/neg/prm/pt/den"), pt, multiplicity); - break; - default: - break; - } + switch (pdgCode) { + case 2212: + histos.fill(HIST("MC/test/pr/pos/prm/pt/den"), pt, multiplicity); + break; + case -2212: + histos.fill(HIST("MC/test/pr/neg/prm/pt/den"), pt, multiplicity); + break; + case 211: + histos.fill(HIST("MC/test/pi/pos/prm/pt/den"), pt, multiplicity); + break; + case -211: + histos.fill(HIST("MC/test/pi/neg/prm/pt/den"), pt, multiplicity); + break; + case 321: + histos.fill(HIST("MC/test/ka/pos/prm/pt/den"), pt, multiplicity); + break; + case -321: + histos.fill(HIST("MC/test/ka/neg/prm/pt/den"), pt, multiplicity); + break; + default: + break; + } } } template @@ -1781,7 +1788,7 @@ struct tofSpectra { } break; } - + if (mcParticle.pdgCode() != PDGs[i]) { return; } @@ -1958,7 +1965,7 @@ struct tofSpectra { } } PROCESS_SWITCH(tofSpectra, processMC, "Process MC", false); - void processMCgen(aod::McCollision const& mcCollision, aod::McParticles const& mcParticles) +void processMCgen(aod::McCollision const& mcCollision, aod::McParticles const& mcParticles) { process_MC_gen(mcCollision, mcParticles); } From eaff28ec5007c385410067783c1bded318a41615 Mon Sep 17 00:00:00 2001 From: Rohaan Deb <67634136+RD0407@users.noreply.github.com> Date: Tue, 4 Jun 2024 17:45:34 +0200 Subject: [PATCH 12/12] Update spectraTOF.cxx --- PWGLF/Tasks/Nuspex/spectraTOF.cxx | 2 -- 1 file changed, 2 deletions(-) diff --git a/PWGLF/Tasks/Nuspex/spectraTOF.cxx b/PWGLF/Tasks/Nuspex/spectraTOF.cxx index 04aa805a6c9..aed8e70c050 100644 --- a/PWGLF/Tasks/Nuspex/spectraTOF.cxx +++ b/PWGLF/Tasks/Nuspex/spectraTOF.cxx @@ -1363,7 +1363,6 @@ struct tofSpectra { } else { multiplicity = collision.centFT0C(); } - //************************************RD************************************************** if (mcParticle.pdgCode() != PDGs[i]) { @@ -1788,7 +1787,6 @@ const float multiplicity = mcCollision.impactParameter(); } break; } - if (mcParticle.pdgCode() != PDGs[i]) { return; }