Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 32 additions & 28 deletions PWGLF/Tasks/Nuspex/antinucleiInJets.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,9 @@ struct AntinucleiInJets {
// Jet effective area over piR^2
registryData.add("jetEffectiveAreaOverPiR2", "jet effective area / piR^2", HistType::kTH1F, {{2000, 0, 2, "Area/#piR^{2}"}});

// angle between track and jet axis
registryData.add("theta_track_jet", "theta_track_jet", HistType::kTH2F, {{100, 0, 100, "#it{p}^{jet}_{T} (GeV/#it{c})"}, {400, 0, 20.0, "#theta_{track-jet} (deg)"}});

// Antiprotons
registryData.add("antiproton_jet_tpc", "antiproton_jet_tpc", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TPC}"}});
registryData.add("antiproton_jet_tof", "antiproton_jet_tof", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TOF}"}});
Expand Down Expand Up @@ -270,6 +273,10 @@ struct AntinucleiInJets {
// Normalization histogram
registryMC.add("antiproton_deltay_deltaphi_jet", "antiproton_deltay_deltaphi_jet", HistType::kTH2F, {{2000, -1.0, 1.0, "#Delta#it{y}"}, {2000, 0.0, 2.0, "#Delta#phi"}});
registryMC.add("antiproton_deltay_deltaphi_ue", "antiproton_deltay_deltaphi_ue", HistType::kTH2F, {{2000, -1.0, 1.0, "#Delta#it{y}"}, {2000, 0.0, 2.0, "#Delta#phi"}});

// 2d kinematic distributions (eta,pt) in jets and UE
registryMC.add("antiproton_eta_pt_jet", "antiproton_eta_pt_jet", HistType::kTH2F, {{500, 0.0, 5.0, "#it{p}_{T} (GeV/#it{c})"}, {18, -0.9, 0.9, "#eta"}});
registryMC.add("antiproton_eta_pt_ue", "antiproton_eta_pt_ue", HistType::kTH2F, {{500, 0.0, 5.0, "#it{p}_{T} (GeV/#it{c})"}, {18, -0.9, 0.9, "#eta"}});
}

// Reconstructed antiproton spectra in jets and UE (MC-matched) with TPC/TOF PID
Expand Down Expand Up @@ -297,9 +304,6 @@ struct AntinucleiInJets {
registryMC.add("antiproton_all_dca_jet", "antiproton_all_dca_jet", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {200, -1, 1, "DCA_{xy} (cm)"}});
registryMC.add("antiproton_all_dca_ue", "antiproton_all_dca_ue", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {200, -1, 1, "DCA_{xy} (cm)"}});

// nsigmaITS for antiproton candidates
registryMC.add("antiproton_nsigma_its_mc", "antiproton_nsigma_its_mc", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{ITS}"}});

// nsigmaTOF for antiprotons
registryMC.add("antiproton_nsigma_tof_jet_mc", "antiproton_nsigma_tof_jet_mc", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TOF}"}});
}
Expand Down Expand Up @@ -349,11 +353,14 @@ struct AntinucleiInJets {
registryMC.add("antihelium3_rec_tpc_ue", "antihelium3_rec_tpc_ue", HistType::kTH1F, {{nbins, 3 * min, 3 * max, "#it{p}_{T} (GeV/#it{c})"}});

// Generated spectra needed for reweighting
registryMC.add("protonBar", "protonBar", HistType::kTH1F, {{5000, 0, 5, "#it{p}_{T} (GeV/#it{c})"}});
registryMC.add("lambdaBar", "lambdaBar", HistType::kTH1F, {{5000, 0, 5, "#it{p}_{T} (GeV/#it{c})"}});
registryMC.add("xiBar", "xiBar", HistType::kTH1F, {{5000, 0, 5, "#it{p}_{T} (GeV/#it{c})"}});
registryMC.add("omegaBar", "omegaBar", HistType::kTH1F, {{5000, 0, 5, "#it{p}_{T} (GeV/#it{c})"}});
registryMC.add("sigmaBar", "sigmaBar", HistType::kTH1F, {{5000, 0, 5, "#it{p}_{T} (GeV/#it{c})"}});
registryMC.add("protonBar", "protonBar", HistType::kTH1F, {{1000, 0, 10, "#it{p}_{T} (GeV/#it{c})"}});
registryMC.add("lambdaBar", "lambdaBar", HistType::kTH1F, {{1000, 0, 10, "#it{p}_{T} (GeV/#it{c})"}});
registryMC.add("xiBar", "xiBar", HistType::kTH1F, {{1000, 0, 10, "#it{p}_{T} (GeV/#it{c})"}});
registryMC.add("omegaBar", "omegaBar", HistType::kTH1F, {{1000, 0, 10, "#it{p}_{T} (GeV/#it{c})"}});
registryMC.add("sigmaBar", "sigmaBar", HistType::kTH1F, {{1000, 0, 10, "#it{p}_{T} (GeV/#it{c})"}});

// nsigmaITS for antiproton candidates
registryMC.add("antiproton_nsigma_its_mc", "antiproton_nsigma_its_mc", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{ITS}"}});
}

// Systematic uncertainties (Data)
Expand Down Expand Up @@ -621,20 +628,6 @@ struct AntinucleiInJets {
47.61, 44.02, 32.15, 46.21, 34.75, 40.17, 37.14, 30.55, 45.42, 42.30,
41.79, 33.21, 39.12, 47.98, 36.52, 31.58, 49.44, 38.02, 35.56, 43.49};

static std::vector<double> minEtaSyst = {
-0.804, -0.844, -0.751, -0.784, -0.819, -0.823, -0.768, -0.781, -0.845, -0.787,
-0.758, -0.828, -0.776, -0.842, -0.808, -0.763, -0.849, -0.770, -0.799, -0.754,
-0.825, -0.847, -0.806, -0.783, -0.796, -0.835, -0.777, -0.752, -0.838, -0.813,
-0.785, -0.802, -0.795, -0.846, -0.780, -0.829, -0.817, -0.773, -0.765, -0.789,
-0.800, -0.839, -0.758, -0.820, -0.833, -0.762, -0.792, -0.809, -0.827, -0.751};

static std::vector<double> maxEtaSyst = {
0.804, 0.844, 0.751, 0.784, 0.819, 0.823, 0.768, 0.781, 0.845, 0.787,
0.758, 0.828, 0.776, 0.842, 0.808, 0.763, 0.849, 0.770, 0.799, 0.754,
0.825, 0.847, 0.806, 0.783, 0.796, 0.835, 0.777, 0.752, 0.838, 0.813,
0.785, 0.802, 0.795, 0.846, 0.780, 0.829, 0.817, 0.773, 0.765, 0.789,
0.800, 0.839, 0.758, 0.820, 0.833, 0.762, 0.792, 0.809, 0.827, 0.751};

// Track Selection
if (requirePvContributor && !(track.isPVContributor()))
return false;
Expand All @@ -650,7 +643,7 @@ struct AntinucleiInJets {
return false;
if (track.itsChi2NCl() > maxChiSquareItsSyst[isyst])
return false;
if (track.eta() < minEtaSyst[isyst] || track.eta() > maxEtaSyst[isyst])
if (track.eta() < minEta || track.eta() > maxEta)
return false;
if (track.pt() < minPt)
return false;
Expand Down Expand Up @@ -871,6 +864,11 @@ struct AntinucleiInJets {
if (std::fabs(dcaxy) > maxDcaxy || std::fabs(dcaz) > maxDcaz)
continue;

// Fill angular distribution of tracks wrt jet axis
TVector3 trackDirection(track.px(), track.py(), track.pz());
double thetaTrackJet = (180.0 / PI) * jetAxis.Angle(trackDirection);
registryData.fill(HIST("theta_track_jet"), jet.pt(), thetaTrackJet);

// Particle identification using the ITS cluster size
bool passedItsPidProt(true), passedItsPidDeut(true), passedItsPidHel(true);
double nSigmaITSprot = static_cast<double>(itsResponse.nSigmaITS<o2::track::PID::Proton>(track));
Expand Down Expand Up @@ -1374,6 +1372,11 @@ struct AntinucleiInJets {
passedItsPidHel = false;
}

// Fill nsigmaITS for antiproton candidates
if (track.sign() < 0 && particle.pdgCode() == PDG_t::kProtonBar && isHighPurityAntiproton(track)) {
registryMC.fill(HIST("antiproton_nsigma_its_mc"), pt, nSigmaITSprot);
}

// Fill histograms of antiprotons
if (track.sign() < 0 && particle.pdgCode() == PDG_t::kProtonBar && passedItsPidProt) {
if (nsigmaTPCPr > minNsigmaTpc && nsigmaTPCPr < maxNsigmaTpc) {
Expand Down Expand Up @@ -1522,6 +1525,9 @@ struct AntinucleiInJets {

// Fill histogram for generated antiprotons
registryMC.fill(HIST("antiproton_gen_jet"), particle.pt());

// Fill 2d (pt,eta) distribution of antiprotons
registryMC.fill(HIST("antiproton_eta_pt_jet"), particle.pt(), particle.eta());
}

// Set up two perpendicular cone axes for underlying event estimation
Expand Down Expand Up @@ -1562,6 +1568,9 @@ struct AntinucleiInJets {

// Fill histogram for antiprotons in the UE
registryMC.fill(HIST("antiproton_gen_ue"), protonVec.Pt());

// Fill 2d (pt,eta) distribution of antiprotons
registryMC.fill(HIST("antiproton_eta_pt_ue"), protonVec.Pt(), protonVec.Eta());
}
}
if (isAtLeastOneJetSelected) {
Expand Down Expand Up @@ -1738,11 +1747,6 @@ struct AntinucleiInJets {
// nsigmaITS for antiprotons
double nSigmaITSprot = static_cast<double>(itsResponse.nSigmaITS<o2::track::PID::Proton>(track));

// Fill nsigmaITS for antiproton candidates
if (isHighPurityAntiproton(track)) {
registryMC.fill(HIST("antiproton_nsigma_its_mc"), pt, nSigmaITSprot);
}

// Particle identification using the ITS cluster size
bool passedItsPidProt(true);
if (applyItsPid && pt < ptMaxItsPidProt && (nSigmaITSprot < nSigmaItsMin || nSigmaITSprot > nSigmaItsMax)) {
Expand Down
Loading