Skip to content

Commit cf616ad

Browse files
Add Full Event histograms for antinuclei contamination studies
1 parent 0449ba0 commit cf616ad

File tree

1 file changed

+55
-1
lines changed

1 file changed

+55
-1
lines changed

PWGLF/Tasks/Nuspex/antinucleiInJets.cxx

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,12 +324,16 @@ struct AntinucleiInJets {
324324
registryData.add("antiproton_ue_tof", "antiproton_ue_tof", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TOF}"}});
325325
registryData.add("antiproton_dca_jet", "antiproton_dca_jet", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {200, -1.0, 1.0, "DCA_{xy} (cm)"}});
326326
registryData.add("antiproton_dca_ue", "antiproton_dca_ue", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {200, -1.0, 1.0, "DCA_{xy} (cm)"}});
327+
registryData.add("antiproton_fullEvent_tpc", "antiproton_fullEvent_tpc", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TPC}"}});
328+
registryData.add("antiproton_fullEvent_tof", "antiproton_fullEvent_tof", HistType::kTH2F, {{nbins, min, max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TOF}"}});
327329

328330
// Antideuterons
329331
registryData.add("antideuteron_jet_tpc", "antideuteron_jet_tpc", HistType::kTH2F, {{nbins, 2 * min, 2 * max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TPC}"}});
330332
registryData.add("antideuteron_jet_tof", "antideuteron_jet_tof", HistType::kTH2F, {{nbins, 2 * min, 2 * max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TOF}"}});
331333
registryData.add("antideuteron_ue_tpc", "antideuteron_ue_tpc", HistType::kTH2F, {{nbins, 2 * min, 2 * max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TPC}"}});
332334
registryData.add("antideuteron_ue_tof", "antideuteron_ue_tof", HistType::kTH2F, {{nbins, 2 * min, 2 * max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TOF}"}});
335+
registryData.add("antideuteron_fullEvent_tpc", "antideuteron_fullEvent_tpc", HistType::kTH2F, {{nbins, 2 * min, 2 * max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TPC}"}});
336+
registryData.add("antideuteron_fullEvent_tof", "antideuteron_fullEvent_tof", HistType::kTH2F, {{nbins, 2 * min, 2 * max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TOF}"}});
333337

334338
// Deuterons
335339
registryData.add("deuteron_jet_tpc", "deuteron_jet_tpc", HistType::kTH2F, {{nbins, 2 * min, 2 * max, "#it{p}_{T} (GeV/#it{c})"}, {400, -20.0, 20.0, "n#sigma_{TPC}"}});
@@ -1151,6 +1155,56 @@ struct AntinucleiInJets {
11511155
if (requireIsVertexTOFmatched && !collision.selection_bit(o2::aod::evsel::kIsVertexTOFmatched))
11521156
return;
11531157
registryData.fill(HIST("number_of_events_data"), 8.5);
1158+
1159+
// Loop over all tracks for Full Event histograms
1160+
for (auto const& track : tracks) {
1161+
// Apply standard track selection
1162+
if (!passedTrackSelection(track))
1163+
continue;
1164+
1165+
// Define variables
1166+
double nsigmaTPCPr = track.tpcNSigmaPr();
1167+
double nsigmaTOFPr = track.tofNSigmaPr();
1168+
double nsigmaTPCDe = track.tpcNSigmaDe();
1169+
double nsigmaTOFDe = track.tofNSigmaDe();
1170+
double pt = track.pt();
1171+
1172+
// ITS PID logic
1173+
bool passedItsPidProt(true), passedItsPidDeut(true);
1174+
double nSigmaITSprot = static_cast<double>(itsResponse.nSigmaITS<o2::track::PID::Proton>(track));
1175+
double nSigmaITSdeut = static_cast<double>(itsResponse.nSigmaITS<o2::track::PID::Deuteron>(track));
1176+
1177+
if (applyItsPid && pt < ptMaxItsPidProt && (nSigmaITSprot < nSigmaItsMin || nSigmaITSprot > nSigmaItsMax)) {
1178+
passedItsPidProt = false;
1179+
}
1180+
if (applyItsPid && pt < ptMaxItsPidDeut && (nSigmaITSdeut < nSigmaItsMin || nSigmaITSdeut > nSigmaItsMax)) {
1181+
passedItsPidDeut = false;
1182+
}
1183+
1184+
// Fill histograms for antimatter
1185+
if (track.sign() < 0) {
1186+
1187+
// Antiprotons Full Event
1188+
if (passedItsPidProt) {
1189+
registryData.fill(HIST("antiproton_fullEvent_tpc"), pt, nsigmaTPCPr);
1190+
1191+
// Require TOF matching and preliminary TPC cut
1192+
if (nsigmaTPCPr > minNsigmaTpc && nsigmaTPCPr < maxNsigmaTpc && track.hasTOF()) {
1193+
registryData.fill(HIST("antiproton_fullEvent_tof"), pt, nsigmaTOFPr);
1194+
}
1195+
}
1196+
1197+
// Antideuterons Full Event
1198+
if (passedItsPidDeut) {
1199+
registryData.fill(HIST("antideuteron_fullEvent_tpc"), pt, nsigmaTPCDe);
1200+
1201+
// Require TOF matching and preliminary TPC cut
1202+
if (nsigmaTPCDe > minNsigmaTpc && nsigmaTPCDe < maxNsigmaTpc && track.hasTOF()) {
1203+
registryData.fill(HIST("antideuteron_fullEvent_tof"), pt, nsigmaTOFDe);
1204+
}
1205+
}
1206+
}
1207+
}
11541208

11551209
// Loop over reconstructed tracks
11561210
int id(-1);
@@ -1182,7 +1236,7 @@ struct AntinucleiInJets {
11821236
fastjet::ClusterSequenceArea cs(fjParticles, jetDef, areaDef);
11831237
std::vector<fastjet::PseudoJet> jets = fastjet::sorted_by_pt(cs.inclusive_jets());
11841238
auto [rhoPerp, rhoMPerp] = jetutilities::estimateRhoPerpCone(fjParticles, jets[0], rJet);
1185-
1239+
11861240
// Loop over reconstructed jets
11871241
bool isAtLeastOneJetSelected = false;
11881242
for (const auto& jet : jets) {

0 commit comments

Comments
 (0)