Skip to content

Commit 26a10b0

Browse files
[PWGJE] Histograms added for MC and rapidity selection for rec particle (#13033)
Co-authored-by: Arvind Khuntia <arvind.khuntia@cern.ch>
1 parent c68fb70 commit 26a10b0

File tree

1 file changed

+79
-8
lines changed

1 file changed

+79
-8
lines changed

PWGJE/Tasks/nucleiInJets.cxx

Lines changed: 79 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include <Framework/OutputObjHeader.h>
3939
#include <Framework/runDataProcessing.h>
4040

41+
#include "TDatabasePDG.h"
4142
#include <TH1.h>
4243
#include <TH2.h>
4344
#include <TH3.h>
@@ -495,6 +496,9 @@ struct nucleiInJets {
495496
jetHist.add<TH3>("recInc/pt/PtParticleTypeTPCTOF", "Pt vs ParticleType vs Centrality (TPC+TOF)", HistType::kTH3F, {{100, 0.f, 10.f}, {14, -7, 7}, {100, 0, 100}});
496497
jetHist.add<TH3>("recInc/pt/PtParticleTypeTPCTOFVeto", "Pt vs ParticleType vs Centrality (TPC+TOF Veto)", HistType::kTH3F, {{100, 0.f, 10.f}, {14, -7, 7}, {100, 0, 100}});
497498
jetHist.add<TH3>("genInc/pt/PtParticleType", "Pt vs ParticleType vs Centrality (gen)", HistType::kTH3F, {{100, 0.f, 10.f}, {14, -7, 7}, {100, 0, 100}});
499+
500+
jetHist.add<TH3>("recInc/eff/tpcTrack3D", "Pt vs ParticleType vs Centrality (tpc)", HistType::kTH3F, {{100, 0.f, 10.f}, {14, -7, 7}, {100, 0, 100}});
501+
jetHist.add<TH3>("recInc/eff/tpcTofTrack3D", "Pt vs ParticleType vs Centrality (tpc-tof)", HistType::kTH3F, {{100, 0.f, 10.f}, {14, -7, 7}, {100, 0, 100}});
498502
// inside jet
499503
jetHist.add<TH3>("tracks/mc/proton/h3PtVsProtonNSigmaTPCVsPtJet_jet", "pT(p) vs NSigmaTPC (p) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}});
500504
jetHist.add<TH3>("tracks/mc/antiProton/h3PtVsantiProtonNSigmaTPCVsPtJet_jet", "pT(#bar{p}) vs NSigmaTPC (#bar{p}) vs jet pT; #it{p}_{T} (GeV/#it{c}; NSigmaTPC; p^{jet}_{T}", HistType::kTH3F, {{PtAxis}, {200, -10, 10}, {PtJetAxis}});
@@ -1981,6 +1985,7 @@ struct nucleiInJets {
19811985
centrality = -999;
19821986
}
19831987
jetHist.fill(HIST("recInc/vertexZ"), coll.posZ(), centrality);
1988+
19841989
for (const auto& track : tracks) {
19851990
if (!isTrackSelected(track)) {
19861991
continue;
@@ -1989,20 +1994,85 @@ struct nucleiInJets {
19891994
continue;
19901995
if (std::fabs(track.eta()) > cfgtrkMaxEta)
19911996
continue;
1997+
19921998
auto mcTrack = track.mcParticle_as<o2::aod::JMcParticles>();
19931999
if (!mcTrack.isPhysicalPrimary())
19942000
continue;
1995-
bool isTOFAndTPCPreSel(track.hasTOF() &&
1996-
(std::abs(track.tpcNSigmaPr()) < cfgnTPCPIDPrTOF || std::abs(track.tpcNSigmaDe()) < cfgnTPCPIDDeTOF));
19972001

1998-
if (mapPDGToValue(mcTrack.pdgCode()) != 0) {
1999-
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPC"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2002+
auto mass = TDatabasePDG::Instance()->GetParticle(abs(mcTrack.pdgCode()))->Mass();
2003+
auto rapidity = RecoDecay::y(std::array{track.px(), track.py(), track.pz()}, mass);
20002004

2001-
if (isTOFAndTPCPreSel) {
2005+
if (rapidity > cfgtrkMaxRap)
2006+
continue;
2007+
// Proton
2008+
if (std::abs(mcTrack.pdgCode()) == 2212) { // Proton
2009+
jetHist.fill(HIST("recInc/eff/tpcTrack3D"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2010+
if (track.hasTOF())
2011+
jetHist.fill(HIST("recInc/eff/tpcTofTrack3D"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2012+
if (std::abs(track.tpcNSigmaPr()) < cfgnTPCPIDPr) {
2013+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPC"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2014+
}
2015+
}
2016+
// Deuteron
2017+
if (std::abs(mcTrack.pdgCode()) == Pdg::kDeuteron) { // Deuteron
2018+
jetHist.fill(HIST("recInc/eff/tpcTrack3D"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2019+
if (track.hasTOF())
2020+
jetHist.fill(HIST("recInc/eff/tpcTofTrack3D"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2021+
if (std::abs(track.tpcNSigmaDe()) < cfgnTPCPIDDe) {
2022+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPC"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2023+
}
2024+
}
2025+
// Helium
2026+
if (std::abs(mcTrack.pdgCode()) == Pdg::kHelium3) { // Helium-3
2027+
jetHist.fill(HIST("recInc/eff/tpcTrack3D"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2028+
if (track.hasTOF())
2029+
jetHist.fill(HIST("recInc/eff/tpcTofTrack3D"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2030+
if (std::abs(track.tpcNSigmaHe()) < cfgnTPCPIDHe) {
2031+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPC"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2032+
}
2033+
}
2034+
2035+
// TPCTOF and TPCTOFVeto histograms
2036+
// Proton
2037+
if (std::abs(track.tpcNSigmaPr()) < cfgnTPCPIDPr && track.hasTOF()) {
2038+
if (std::abs(mcTrack.pdgCode()) == 2212) {
20022039
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOF"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2003-
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2004-
} else {
2005-
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2040+
if (std::abs(track.tofNSigmaPr()) < cfgnTPCPIDPrTOF)
2041+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2042+
}
2043+
} else {
2044+
if (std::abs(track.tpcNSigmaPr()) < cfgnTPCPIDPr) {
2045+
if (std::abs(mcTrack.pdgCode()) == 2212) {
2046+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2047+
}
2048+
}
2049+
}
2050+
// Deuteron
2051+
if (std::abs(track.tpcNSigmaDe()) < cfgnTPCPIDDe && track.hasTOF()) {
2052+
if (std::abs(mcTrack.pdgCode()) == Pdg::kDeuteron) {
2053+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOF"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2054+
if (std::abs(track.tofNSigmaDe()) < cfgnTPCPIDDeTOF)
2055+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2056+
}
2057+
} else {
2058+
if (std::abs(track.tpcNSigmaDe()) < cfgnTPCPIDDe) {
2059+
if (std::abs(mcTrack.pdgCode()) == Pdg::kDeuteron) {
2060+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2061+
}
2062+
}
2063+
}
2064+
// Helium
2065+
if (std::abs(track.tpcNSigmaHe()) < cfgnTPCPIDHe && track.hasTOF()) {
2066+
if (std::abs(mcTrack.pdgCode()) == Pdg::kHelium3) {
2067+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOF"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2068+
if (std::abs(track.tofNSigmaHe()) < cfgnTPCPIDHeTOF)
2069+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2070+
}
2071+
} else {
2072+
if (std::abs(track.tpcNSigmaHe()) < cfgnTPCPIDHe) {
2073+
if (std::abs(mcTrack.pdgCode()) == Pdg::kHelium3) {
2074+
jetHist.fill(HIST("recInc/pt/PtParticleTypeTPCTOFVeto"), mcTrack.pt(), mapPDGToValue(mcTrack.pdgCode()), centrality);
2075+
}
20062076
}
20072077
}
20082078
} // track
@@ -2016,6 +2086,7 @@ struct nucleiInJets {
20162086
continue;
20172087
if (std::fabs(mcParticle.y()) > cfgtrkMaxRap)
20182088
continue;
2089+
20192090
if (mapPDGToValue(mcParticle.pdgCode()) != 0) {
20202091
jetHist.fill(HIST("genInc/pt/PtParticleType"), mcParticle.pt(), mapPDGToValue(mcParticle.pdgCode()), centrality);
20212092
}

0 commit comments

Comments
 (0)