Skip to content

Commit df97bff

Browse files
authored
[PWGLF] include additional information on tracks / PID to output tree (#17897)
1 parent c79889c commit df97bff

3 files changed

Lines changed: 85 additions & 52 deletions

File tree

PWGLF/DataModel/LFHypernucleiKfTables.h

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,11 @@ namespace hykftrk
9494
DECLARE_SOA_INDEX_COLUMN(HypKfColl, hypKfColl);
9595
DECLARE_SOA_COLUMN(Rigidity, rigidity, float); //!
9696
DECLARE_SOA_COLUMN(TpcNcluster, tpcNcluster, float); //!
97+
DECLARE_SOA_COLUMN(TpcNclsPid, tpcNclsPid, float); //!
98+
DECLARE_SOA_COLUMN(TpcNclsCr, tpcNclsCr, float); //!
9799
DECLARE_SOA_COLUMN(TpcNsigma, tpcNsigma, float); //!
98-
DECLARE_SOA_COLUMN(TpcNsigmaNhp, tpcNsigmaNhp, float); //!
99-
DECLARE_SOA_COLUMN(TpcNsigmaNlp, tpcNsigmaNlp, float); //!
100+
DECLARE_SOA_COLUMN(ItsNsigma, itsNsigma, float); //!
101+
DECLARE_SOA_COLUMN(PidForTrk, pidForTrk, uint32_t); //!
100102
DECLARE_SOA_COLUMN(TofMass, tofMass, float); //!
101103
DECLARE_SOA_COLUMN(IsPVContributor, isPVContributor, bool); //!
102104
DECLARE_SOA_COLUMN(SubMass, subMass, float); //!
@@ -140,15 +142,17 @@ DECLARE_SOA_TABLE(HypKfTracks, "AOD", "HYPKFTRACK",
140142
track::Phi,
141143
track::DcaXY,
142144
track::DcaZ,
143-
hykftrk::TpcNcluster,
144145
track::TPCChi2NCl,
145146
track::ITSClusterSizes,
146147
track::ITSChi2NCl,
147148
hykftrk::Rigidity,
148149
track::TPCSignal,
150+
hykftrk::TpcNcluster,
151+
hykftrk::TpcNclsPid,
152+
hykftrk::TpcNclsCr,
149153
hykftrk::TpcNsigma,
150-
hykftrk::TpcNsigmaNhp,
151-
hykftrk::TpcNsigmaNlp,
154+
hykftrk::ItsNsigma,
155+
hykftrk::PidForTrk,
152156
hykftrk::TofMass,
153157
hykftrk::IsPVContributor,
154158
hykftrk::Px<track::Pt, track::Phi>,

PWGLF/TableProducer/Nuspex/hypKfRecoTask.cxx

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "PWGLF/DataModel/LFHypernucleiKfTables.h"
2121
#include "PWGLF/DataModel/LFPIDTOFGenericTables.h"
2222

23+
#include "Common/CCDB/EventSelectionParams.h"
2324
#include "Common/Core/MetadataHelper.h"
2425
#include "Common/Core/RecoDecay.h"
2526
#include "Common/Core/trackUtilities.h"
@@ -262,10 +263,10 @@ struct DaughterKf {
262263
int64_t daughterTrackId;
263264
int id, species, sign, hypNucId;
264265
KFParticle daughterKfp;
265-
float dcaToPv, dcaToPvXY, dcaToPvZ, tpcNsigma, tpcNsigmaNLP, tpcNsigmaNHP;
266+
float dcaToPv, dcaToPvXY, dcaToPvZ, tpcNsigma, itsNsigma;
266267
bool active;
267268
std::vector<float> vtx;
268-
DaughterKf(int species_, int64_t daughterTrackId_, int sign_, std::vector<float> vtx_, float tpcNsigma_, float tpcNsigmaNLP_, float tpcNsigmaNHP_) : daughterTrackId(daughterTrackId_), id(uniqueId++), species(species_), sign(sign_), hypNucId(-1), tpcNsigma(tpcNsigma_), tpcNsigmaNLP(tpcNsigmaNLP_), tpcNsigmaNHP(tpcNsigmaNHP_), vtx(std::move(vtx_)) {}
269+
DaughterKf(int species_, int64_t daughterTrackId_, int sign_, std::vector<float> vtx_, float tpcNsigma_, float itsNsigma_) : daughterTrackId(daughterTrackId_), id(uniqueId++), species(species_), sign(sign_), hypNucId(-1), tpcNsigma(tpcNsigma_), itsNsigma(itsNsigma_), vtx(std::move(vtx_)) {}
269270
void addKfp(const KFParticle& daughterKfp_)
270271
{
271272
daughterKfp = daughterKfp_;
@@ -593,7 +594,7 @@ struct HypKfRecoTask {
593594

594595
// define histogram axes
595596
const AxisSpec axisMagField{10, -10., 10., "magnetic field"};
596-
const AxisSpec axisNev{3, 0., 3., "Number of events"};
597+
const AxisSpec axisNev{5, 0., 5., "Number of events"};
597598
const AxisSpec axisRigidity{4000, -10., 10., "#it{p}^{TPC}/#it{z}"};
598599
const AxisSpec axisdEdx{2000, 0, 2000, "d#it{E}/d#it{x}"};
599600
const AxisSpec axisInvMass{1000, 1, 6, "inv mass"};
@@ -644,12 +645,8 @@ struct HypKfRecoTask {
644645
const float itsNsigma = getITSnSigma(track, daughterParticles.at(i));
645646
if (daughterParticles.at(i).trkSettings[kMaxITSnSigma] >= 0 && std::abs(itsNsigma) > daughterParticles.at(i).trkSettings[kMaxITSnSigma])
646647
continue;
647-
float tpcNsigmaNlp = NoVal;
648-
if (daughterParticles.at(i).name == "alpha") {
649-
tpcNsigmaNlp = getTPCnSigma(track, daughterParticles.at(i - 1));
650-
}
651648
filldedx(track, i);
652-
foundDaughterKfs.at(i).push_back(DaughterKf(i, track.globalIndex(), track.sign(), primVtx, tpcNsigma, tpcNsigmaNlp, itsNsigma));
649+
foundDaughterKfs.at(i).push_back(DaughterKf(i, track.globalIndex(), track.sign(), primVtx, tpcNsigma, itsNsigma));
653650
}
654651
} // track loop
655652
}
@@ -906,9 +903,9 @@ struct HypKfRecoTask {
906903
if (!trackIndices.getIndex(daughter->species, daughterTrackId, trackTableId)) {
907904
const auto& track = tracks.rawIteratorAt(daughterTrackId);
908905
outputTrackTable(
909-
daughter->species * track.sign(), track.pt(), track.eta(), track.phi(), daughter->dcaToPvXY, daughter->dcaToPvZ, track.tpcNClsFound(), track.tpcChi2NCl(),
910-
track.itsClusterSizes(), track.itsChi2NCl(), getRigidity(track), track.tpcSignal(), daughter->tpcNsigma, daughter->tpcNsigmaNHP, daughter->tpcNsigmaNLP,
911-
getMass2(track), track.isPVContributor());
906+
daughter->species * track.sign(), track.pt(), track.eta(), track.phi(), daughter->dcaToPvXY, daughter->dcaToPvZ, track.tpcChi2NCl(),
907+
track.itsClusterSizes(), track.itsChi2NCl(), getRigidity(track), track.tpcSignal(), track.tpcNClsFound(), track.tpcNClsPID(),
908+
track.tpcNClsCrossedRows(), daughter->tpcNsigma, daughter->itsNsigma, track.pidForTracking(), getMass2(track), track.isPVContributor());
912909
trackTableId = outputTrackTable.lastIndex();
913910
trackIndices.add(daughter->species, daughterTrackId, trackTableId);
914911
}
@@ -1006,7 +1003,8 @@ struct HypKfRecoTask {
10061003
initCollision(collision);
10071004
if (!collision.has_mcCollision() || !mcCollInfos.at(collision.mcCollisionId()).passedEvSel)
10081005
continue;
1009-
1006+
if (!collPassedEvSel)
1007+
continue;
10101008
const uint64_t collIdx = collision.globalIndex();
10111009
auto tracksByColl = tracksColl.sliceBy(perCollision, collIdx);
10121010
auto v0TableThisCollision = V0s.sliceBy(perCollisionV0, collIdx);
@@ -1107,12 +1105,34 @@ struct HypKfRecoTask {
11071105
trackIndices.clear();
11081106
collHasCandidate = false;
11091107
collHasMcTrueCandidate = false;
1108+
collPassedEvSel = true;
11101109
histos.fill(HIST("histMagField"), dBz);
11111110
histos.fill(HIST("histNev"), 0.5);
1112-
collPassedEvSel = collision.sel8() && std::abs(collision.posZ()) < cfgVtxCutZ;
1113-
occupancy = collision.trackOccupancyInTimeRange();
1111+
if (!collision.sel8()) {
1112+
collPassedEvSel = false;
1113+
}
11141114
if (collPassedEvSel) {
11151115
histos.fill(HIST("histNev"), 1.5);
1116+
}
1117+
if (std::abs(collision.posZ()) > cfgVtxCutZ) {
1118+
collPassedEvSel = false;
1119+
}
1120+
if (collPassedEvSel) {
1121+
histos.fill(HIST("histNev"), 2.5);
1122+
}
1123+
if (!collision.selection_bit(aod::evsel::kNoSameBunchPileup)) {
1124+
collPassedEvSel = false;
1125+
}
1126+
if (collPassedEvSel) {
1127+
histos.fill(HIST("histNev"), 3.5);
1128+
}
1129+
if (!collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV)) {
1130+
collPassedEvSel = false;
1131+
}
1132+
1133+
occupancy = collision.trackOccupancyInTimeRange();
1134+
if (collPassedEvSel) {
1135+
histos.fill(HIST("histNev"), 4.5);
11161136
histos.fill(HIST("histVtxZ"), collision.posZ());
11171137
histos.fill(HIST("histCentFT0A"), collision.centFT0A());
11181138
histos.fill(HIST("histCentFT0C"), collision.centFT0C());

0 commit comments

Comments
 (0)