Skip to content

Commit cfde3c9

Browse files
fmazzascFrancesco Mazzaschialibuild
authored
[PWGLF] Add information to non prompt table (#10669)
Co-authored-by: Francesco Mazzaschi <fmazzasc@alipap1.cern.ch> Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 2b7bcae commit cfde3c9

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

PWGLF/DataModel/LFNonPromptCascadeTables.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ namespace NPCascadeTable
2626
{
2727
DECLARE_SOA_COLUMN(MatchingChi2, matchingChi2, float);
2828
DECLARE_SOA_COLUMN(DeltaPtITSCascade, deltaPtITSCascade, float);
29+
DECLARE_SOA_COLUMN(DeltaPtCascade, deltaPtCascade, float);
2930
DECLARE_SOA_COLUMN(ITSClusSize, itsClusSize, float);
3031
DECLARE_SOA_COLUMN(HasReassociatedCluster, hasReassociatedCluster, bool);
3132
DECLARE_SOA_COLUMN(IsGoodMatch, isGoodMatch, bool);
@@ -103,12 +104,14 @@ DECLARE_SOA_COLUMN(DCAxMC, dcaXmc, float);
103104
DECLARE_SOA_COLUMN(DCAyMC, dcaYmc, float);
104105
DECLARE_SOA_COLUMN(DCAzMC, dcaZmc, float);
105106
DECLARE_SOA_COLUMN(MCcollisionMatch, mcCollisionMatch, bool);
107+
DECLARE_SOA_COLUMN(HasFakeReassociation, hasFakeReassociation, bool);
106108
DECLARE_SOA_COLUMN(MotherDecayDaughters, motherDecayDaughters, int8_t);
107109

108110
} // namespace NPCascadeTable
109111
DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
110112
NPCascadeTable::MatchingChi2,
111113
NPCascadeTable::DeltaPtITSCascade,
114+
NPCascadeTable::DeltaPtCascade,
112115
NPCascadeTable::ITSClusSize,
113116
NPCascadeTable::HasReassociatedCluster,
114117
aod::collision::NumContrib,
@@ -164,6 +167,7 @@ DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
164167
DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
165168
NPCascadeTable::MatchingChi2,
166169
NPCascadeTable::DeltaPtITSCascade,
170+
NPCascadeTable::DeltaPtCascade,
167171
NPCascadeTable::ITSClusSize,
168172
NPCascadeTable::HasReassociatedCluster,
169173
aod::collision::NumContrib,
@@ -219,6 +223,7 @@ DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
219223
DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
220224
NPCascadeTable::MatchingChi2,
221225
NPCascadeTable::DeltaPtITSCascade,
226+
NPCascadeTable::DeltaPtCascade,
222227
NPCascadeTable::ITSClusSize,
223228
NPCascadeTable::HasReassociatedCluster,
224229
NPCascadeTable::IsGoodMatch,
@@ -284,11 +289,13 @@ DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
284289
NPCascadeTable::DCAyMC,
285290
NPCascadeTable::DCAzMC,
286291
NPCascadeTable::MCcollisionMatch,
292+
NPCascadeTable::HasFakeReassociation,
287293
NPCascadeTable::MotherDecayDaughters)
288294

289295
DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
290296
NPCascadeTable::MatchingChi2,
291297
NPCascadeTable::DeltaPtITSCascade,
298+
NPCascadeTable::DeltaPtCascade,
292299
NPCascadeTable::ITSClusSize,
293300
NPCascadeTable::HasReassociatedCluster,
294301
NPCascadeTable::IsGoodMatch,
@@ -354,6 +361,7 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
354361
NPCascadeTable::DCAyMC,
355362
NPCascadeTable::DCAzMC,
356363
NPCascadeTable::MCcollisionMatch,
364+
NPCascadeTable::HasFakeReassociation,
357365
NPCascadeTable::MotherDecayDaughters)
358366

359367
DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",

PWGLF/Tasks/Strangeness/nonPromptCascade.cxx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,11 @@ struct NPCascCandidate {
5454
int64_t trackITSID;
5555
int64_t collisionID;
5656
float matchingChi2;
57+
float deltaPtITS;
5758
float deltaPt;
5859
float itsClusSize;
5960
bool hasReassociatedCluster;
61+
bool hasFakeReassociation;
6062
bool isGoodMatch;
6163
bool isGoodCascade;
6264
int pdgCodeMom;
@@ -389,6 +391,7 @@ struct NonPromptCascadeTask {
389391
if (v0part.mothersIds()[0] == bachelor.mcParticle().mothersIds()[0]) {
390392
if (std::abs(motherV0.pdgCode()) == 3312 || std::abs(motherV0.pdgCode()) == 3334) {
391393
isGoodCascade = true;
394+
392395
isOmega = (std::abs(motherV0.pdgCode()) == 3334);
393396
fromHF = isFromHF(motherV0);
394397
mcParticleID = v0part.mothersIds()[0];
@@ -413,8 +416,8 @@ struct NonPromptCascadeTask {
413416
o2::base::Propagator::Instance()->propagateToDCA(primaryVertex, pionTrkParCov, mBz, 2.f, matCorr, &pionDCA);
414417
o2::base::Propagator::Instance()->propagateToDCA(primaryVertex, bachTrkParCov, mBz, 2.f, matCorr, &bachDCA);
415418

416-
float deltaPtITSCascade{-1.e10f}, cascITSclsSize{-1.e10f}, matchingChi2{-1.e10f};
417-
bool hasReassociatedClusters{false};
419+
float deltaPtITSCascade{-1.e10f}, deltaPtCascade{-1.e10f}, cascITSclsSize{-1.e10f}, matchingChi2{-1.e10f};
420+
bool hasReassociatedClusters{false}, hasFakeReassociation{false};
418421
int trackedCascGlobalIndex{-1}, itsTrackGlobalIndex{-1}, cascITSclusters{-1};
419422
if constexpr (requires { candidate.track(); }) {
420423
const auto& track = candidate.template track_as<TrackType>();
@@ -424,6 +427,7 @@ struct NonPromptCascadeTask {
424427
hasReassociatedClusters = (track.itsNCls() != ITStrack.itsNCls());
425428
cascadeLvector.SetCoordinates(track.pt(), track.eta(), track.phi(), 0);
426429
deltaPtITSCascade = std::hypot(cascadeMomentum[0], cascadeMomentum[1]) - ITStrack.pt();
430+
deltaPtCascade = std::hypot(cascadeMomentum[0], cascadeMomentum[1]) - track.pt();
427431
trackedCascGlobalIndex = track.globalIndex();
428432
itsTrackGlobalIndex = ITStrack.globalIndex();
429433
cascITSclusters = track.itsNCls();
@@ -435,11 +439,12 @@ struct NonPromptCascadeTask {
435439

436440
if (isGoodMatch) {
437441
pdgCodeMom = track.mcParticle().has_mothers() ? track.mcParticle().template mothers_as<aod::McParticles>()[0].pdgCode() : 0;
442+
hasFakeReassociation = track.mcMask() & (1 << 15);
438443
}
439444
itsTrackPDG = ITStrack.has_mcParticle() ? ITStrack.mcParticle().pdgCode() : 0;
440445
}
441446
}
442-
candidates.emplace_back(NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, cascITSclsSize, hasReassociatedClusters, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1],
447+
candidates.emplace_back(NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1],
443448
collision.numContrib(), collision.collisionTimeRes(), primaryVertex.getX(), primaryVertex.getY(), primaryVertex.getZ(),
444449
cascadeLvector.pt(), cascadeLvector.eta(), cascadeLvector.phi(),
445450
protonTrack.pt(), protonTrack.eta(), pionTrack.pt(), pionTrack.eta(), bachelor.pt(), bachelor.eta(),
@@ -457,7 +462,7 @@ struct NonPromptCascadeTask {
457462
void fillDataTable(auto const& candidates)
458463
{
459464
for (const auto& c : candidates) {
460-
getDataTable<CascadeType>()(c.matchingChi2, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster,
465+
getDataTable<CascadeType>()(c.matchingChi2, c.deltaPtITS, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster,
461466
c.pvContributors, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ,
462467
c.cascPt, c.cascEta, c.cascPhi,
463468
c.protonPt, c.protonEta, c.pionPt, c.pionEta, c.bachPt, c.bachEta,
@@ -496,7 +501,7 @@ struct NonPromptCascadeTask {
496501
auto mcCollision = particle.template mcCollision_as<aod::McCollisions>();
497502
auto recCollision = collisions.iteratorAt(c.collisionID);
498503

499-
getMCtable<CascadeType>()(c.matchingChi2, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, c.isGoodMatch, c.isGoodCascade, c.pdgCodeMom, c.pdgCodeITStrack, c.isFromBeauty, c.isFromCharm,
504+
getMCtable<CascadeType>()(c.matchingChi2, c.deltaPtITS, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, c.isGoodMatch, c.isGoodCascade, c.pdgCodeMom, c.pdgCodeITStrack, c.isFromBeauty, c.isFromCharm,
500505
c.pvContributors, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ, c.cascPt, c.cascEta, c.cascPhi,
501506
c.protonPt, c.protonEta, c.pionPt, c.pionEta, c.bachPt, c.bachEta,
502507
c.cascDCAxy, c.cascDCAz, c.protonDCAxy, c.protonDCAz, c.pionDCAxy, c.pionDCAz, c.bachDCAxy, c.bachDCAz,
@@ -505,7 +510,7 @@ struct NonPromptCascadeTask {
505510
c.pionTPCNSigma, c.bachKaonTPCNSigma, c.bachPionTPCNSigma, c.protonHasTOF, c.pionHasTOF, c.bachHasTOF,
506511
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma,
507512
particle.pt(), particle.eta(), particle.phi(), particle.pdgCode(), mcCollision.posX() - particle.vx(), mcCollision.posY() - particle.vy(),
508-
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), motherDecayDaughters);
513+
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters);
509514
}
510515
}
511516

0 commit comments

Comments
 (0)