Skip to content

Commit b15420a

Browse files
[PWGLF] added nsigma ITS selections in the purity studies for li4. Fixed bug in the nuclei from hypertriton map (#14273)
1 parent 4eb919f commit b15420a

File tree

2 files changed

+29
-20
lines changed

2 files changed

+29
-20
lines changed

PWGLF/TableProducer/Nuspex/he3HadronFemto.cxx

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ struct he3HadronFemto {
279279
SameKindPair<CollisionsFull, TrackCandidates, BinningType> mPair{binningPolicy, settingNoMixedEvents, -1, &cache};
280280

281281
std::array<float, 6> mBBparamsHe;
282+
o2::aod::ITSResponse mResponseITS;
282283

283284
std::vector<int> mRecoCollisionIDs;
284285
std::vector<bool> mGoodCollisions;
@@ -310,14 +311,16 @@ struct he3HadronFemto {
310311
{"He3/hChi2NClHe3ITS", "^{3}He;Chi2_{ITS} Ncluster", {HistType::kTH1F, {{100, 0, 100.0f}}}},
311312
{"He3/hHe3Pt", "^{3}He; #it{p}_{T} (GeV/#it{c})", {HistType::kTH1F, {{240, -6.0f, 6.0f}}}},
312313
{"He3/h2dEdxHe3candidates", "dEdx distribution; #it{p} (GeV/#it{c}); dE/dx (a.u.)", {HistType::kTH2F, {{200, -5.0f, 5.0f}, {100, 0.0f, 2000.0f}}}},
314+
{"He3/h2NsigmaHe3ITS", "NsigmaHe3 ITS distribution; signed #it{p}_{T} (GeV/#it{c}); n#sigma_{ITS} ^{3}He", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {120, -3.0f, 3.0f}}}},
315+
{"He3/h2NsigmaHe3ITS_preselection", "NsigmaHe3 ITS distribution; signed #it{p}_{T} (GeV/#it{c}); n#sigma_{ITS} ^{3}He", {HistType::kTH2F, {{50, -5.0f, 5.0f}, {120, -3.0f, 3.0f}}}},
313316
{"He3/h2NsigmaHe3TPC", "NsigmaHe3 TPC distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{TPC}(^{3}He)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {200, -5.0f, 5.0f}}}},
314317
{"He3/h2NsigmaHe3TPC_preselection", "NsigmaHe3 TPC distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{TPC}(^{3}He)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {400, -10.0f, 10.0f}}}},
315-
{"He3/h2NSigmaHe3ITS", "NsigmaHe3 ITS distribution; signed #it{p}_{T} (GeV/#it{c}); n#sigma_{ITS} ^{3}He", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {120, -3.0f, 3.0f}}}},
316-
{"He3/h2NSigmaHe3ITS_preselection", "NsigmaHe3 ITS distribution; signed #it{p}_{T} (GeV/#it{c}); n#sigma_{ITS} ^{3}He", {HistType::kTH2F, {{50, -5.0f, 5.0f}, {120, -3.0f, 3.0f}}}},
317318

318319
{"Had/hNClsHadITS", "had;N_{ITS} Cluster", {HistType::kTH1F, {{20, -10.0f, 10.0f}}}},
319320
{"Had/hChi2NClHadITS", "had;Chi2_{ITS} Ncluster", {HistType::kTH1F, {{100, 0, 100.0f}}}},
320321
{"Had/hHadronPt", "had; #it{p}_{T} (GeV/#it{c})", {HistType::kTH1F, {{120, -3.0f, 3.0f}}}},
322+
{"Had/h2NsigmaHadronITS", "NsigmaHadron ITS distribution; #it{p}_{T}(GeV/#it{c}); n#sigma_{ITS}(had)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {200, -5.0f, 5.0f}}}},
323+
{"Had/h2NsigmaHadronITS_preselection", "NsigmaHadron ITS distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{ITS}(had)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {400, -10.0f, 10.0f}}}},
321324
{"Had/h2NsigmaHadronTPC", "NsigmaHadron TPC distribution; #it{p}_{T}(GeV/#it{c}); n#sigma_{TPC}(had)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {200, -5.0f, 5.0f}}}},
322325
{"Had/h2NsigmaHadronTPC_preselection", "NsigmaHadron TPC distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{TPC}(had)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {400, -10.0f, 10.0f}}}},
323326
{"Had/h2NsigmaHadronTPC_mcBackground", "NsigmaHadron TPC distribution; #it{p}_{T} (GeV/#it{c}); n#sigma_{TPC}(had)", {HistType::kTH2F, {{100, -5.0f, 5.0f}, {400, -10.0f, 10.0f}}}},
@@ -594,18 +597,16 @@ struct he3HadronFemto {
594597
if (std::abs(nSigmaHe3) > settingCutNsigmaTPC) {
595598
return false;
596599
}
597-
//
598-
o2::aod::ITSResponse mResponseITS;
600+
599601
auto itsNsigmaHe3 = mResponseITS.nSigmaITS<o2::track::PID::Helium3>(candidate.itsClusterSizes(), 2 * candidate.p(), candidate.eta());
600-
//
601-
mQaRegistry.fill(HIST("He3/h2NSigmaHe3ITS_preselection"), candidate.sign() * 2 * candidate.pt(), itsNsigmaHe3);
602+
mQaRegistry.fill(HIST("He3/h2NsigmaHe3ITS_preselection"), candidate.sign() * 2 * candidate.pt(), itsNsigmaHe3);
602603
if (itsNsigmaHe3 < settingCutNsigmaITSHe3) {
603604
return false;
604605
}
605606

606607
mQaRegistry.fill(HIST("He3/h2dEdxHe3candidates"), candidate.sign() * correctedTPCinnerParam, candidate.tpcSignal());
607608
mQaRegistry.fill(HIST("He3/h2NsigmaHe3TPC"), candidate.sign() * 2 * candidate.pt(), nSigmaHe3);
608-
mQaRegistry.fill(HIST("He3/h2NSigmaHe3ITS"), candidate.sign() * 2 * candidate.pt(), itsNsigmaHe3);
609+
mQaRegistry.fill(HIST("He3/h2NsigmaHe3ITS"), candidate.sign() * 2 * candidate.pt(), itsNsigmaHe3);
609610
return true;
610611
}
611612

@@ -1333,35 +1334,43 @@ struct he3HadronFemto {
13331334
if (!selectTrack(track, Species::kHad))
13341335
continue;
13351336

1336-
if (selectDcaNsigmaCut(track, Species::kHad)) {
1337+
const float itsNSigmaHad = settingHadPDGCode == PDG_t::kProton ? mResponseITS.nSigmaITS<o2::track::PID::Proton>(track.itsClusterSizes(), track.p(), track.eta()) : mResponseITS.nSigmaITS<o2::track::PID::Pion>(track.itsClusterSizes(), track.p(), track.eta());
1338+
mQaRegistry.fill(HIST("Had/h2NsigmaHadronITS_preselection"), track.pt(), itsNSigmaHad);
1339+
1340+
if (selectDcaNsigmaCut(track, Species::kHad) && (itsNSigmaHad > settingCutNsigmaITSHad)) {
1341+
13371342
mQaRegistry.fill(HIST("Had/hHadronPt"), track.pt());
1343+
mQaRegistry.fill(HIST("Had/h2NsigmaHadronITS"), track.pt(), itsNSigmaHad);
13381344

13391345
const float tpcNSigmaHad = computeTPCNSigmaHadron(track);
1340-
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTPC_preselection"), track.tpcInnerParam(), tpcNSigmaHad);
1346+
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTPC_preselection"), track.pt(), tpcNSigmaHad);
13411347

13421348
if (track.hasTOF()) {
13431349
const float tofNSigmaHad = computeTOFNSigmaHadron(track);
13441350
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTOF_preselection"), track.pt(), tofNSigmaHad);
13451351
}
13461352
}
13471353

1348-
if (!selectTrack(track, Species::kHe3) || !selectDcaNsigmaCut(track, Species::kHe3))
1349-
continue;
1350-
13511354
const float ptHe3Corrected = correctPtHe3TrackedAsTriton(track);
1355+
const float itsNSigmaHe3 = mResponseITS.nSigmaITS<o2::track::PID::Helium3>(track.itsClusterSizes(), 2 * track.p(), track.eta());
1356+
mQaRegistry.fill(HIST("He3/h2NsigmaHe3ITS_preselection"), ptHe3Corrected, itsNSigmaHe3);
1357+
1358+
if (!selectTrack(track, Species::kHe3) || !selectDcaNsigmaCut(track, Species::kHe3) || (itsNSigmaHe3 < settingCutNsigmaITSHe3))
1359+
continue;
13521360

13531361
mQaRegistry.fill(HIST("He3/hHe3Pt"), ptHe3Corrected);
13541362
mQaRegistry.fill(HIST("He3/hDCAxyHe3"), track.dcaXY());
13551363
mQaRegistry.fill(HIST("He3/hDCAzHe3"), track.dcaZ());
1364+
mQaRegistry.fill(HIST("He3/h2NsigmaHe3ITS"), ptHe3Corrected, itsNSigmaHe3);
13561365

13571366
bool heliumPID = track.pidForTracking() == o2::track::PID::Helium3 || track.pidForTracking() == o2::track::PID::Alpha;
13581367
float correctedTPCinnerParam = (heliumPID && settingCompensatePIDinTracking) ? track.tpcInnerParam() / 2.f : track.tpcInnerParam();
13591368
if (correctedTPCinnerParam < settingCutRigidityMinHe3) {
13601369
continue;
13611370
}
13621371

1363-
const float nSigmaHe3 = computeNSigmaHe3(track);
1364-
mQaRegistry.fill(HIST("He3/h2NsigmaHe3TPC_preselection"), track.sign() * ptHe3Corrected, nSigmaHe3);
1372+
const float tpcNSigmaHe3 = computeNSigmaHe3(track);
1373+
mQaRegistry.fill(HIST("He3/h2NsigmaHe3TPC_preselection"), track.sign() * ptHe3Corrected, tpcNSigmaHe3);
13651374
}
13661375
}
13671376
PROCESS_SWITCH(he3HadronFemto, processPurity, "Process for purity studies", false);
@@ -1384,22 +1393,22 @@ struct he3HadronFemto {
13841393
mQaRegistry.fill(HIST("Had/hHadronPt"), track.pt());
13851394

13861395
const float tpcNSigmaHad = computeTPCNSigmaHadron(track);
1387-
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTPC_preselection"), track.sign() * track.tpcInnerParam(), tpcNSigmaHad);
1396+
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTPC_preselection"), track.sign() * track.pt(), tpcNSigmaHad);
13881397

13891398
if (std::abs(particle.pdgCode()) != settingHadPDGCode) {
1390-
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTPC_mcBackground"), track.sign() * track.tpcInnerParam(), tpcNSigmaHad);
1399+
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTPC_mcBackground"), track.sign() * track.pt(), tpcNSigmaHad);
13911400
} else {
1392-
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTPC_mcSignal"), track.sign() * track.tpcInnerParam(), tpcNSigmaHad);
1401+
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTPC_mcSignal"), track.sign() * track.pt(), tpcNSigmaHad);
13931402
}
13941403

13951404
if (track.hasTOF()) {
13961405
const float tofNSigmaHad = computeTOFNSigmaHadron(track);
13971406
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTOF_preselection"), track.sign() * track.pt(), tofNSigmaHad);
13981407

13991408
if (std::abs(particle.pdgCode()) != settingHadPDGCode) {
1400-
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTOF_mcBackground"), track.sign() * track.tpcInnerParam(), tofNSigmaHad);
1409+
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTOF_mcBackground"), track.sign() * track.pt(), tofNSigmaHad);
14011410
} else {
1402-
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTOF_mcSignal"), track.sign() * track.tpcInnerParam(), tofNSigmaHad);
1411+
mQaRegistry.fill(HIST("Had/h2NsigmaHadronTOF_mcSignal"), track.sign() * track.pt(), tofNSigmaHad);
14031412
}
14041413
}
14051414
}

PWGLF/Tasks/Nuspex/nucleiFromHypertritonMap.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ struct nucleiFromHypertritonMap {
216216
}
217217

218218
const auto& mcparticle = track.mcParticle();
219-
if (mcparticle.pdgCode() != mSelectedPDG) {
219+
if (std::abs(mcparticle.pdgCode()) != mSelectedPDG) {
220220
continue;
221221
}
222222

0 commit comments

Comments
 (0)