From 1683b4d7f7ba9f8842263fc2ed5d572581bde2fb Mon Sep 17 00:00:00 2001 From: Francesco Mazzaschi Date: Wed, 16 Apr 2025 11:16:44 +0200 Subject: [PATCH 1/2] Add flag for PV casc contributors --- PWGLF/DataModel/LFNonPromptCascadeTables.h | 6 ++++++ PWGLF/Tasks/Strangeness/nonPromptCascade.cxx | 14 +++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/PWGLF/DataModel/LFNonPromptCascadeTables.h b/PWGLF/DataModel/LFNonPromptCascadeTables.h index 1fc2b6f2082..1caabd79090 100644 --- a/PWGLF/DataModel/LFNonPromptCascadeTables.h +++ b/PWGLF/DataModel/LFNonPromptCascadeTables.h @@ -38,6 +38,8 @@ DECLARE_SOA_COLUMN(IsFromCharm, isFromCharm, bool); DECLARE_SOA_COLUMN(PvX, pvX, float); DECLARE_SOA_COLUMN(PvY, pvY, float); DECLARE_SOA_COLUMN(PvZ, pvZ, float); +DECLARE_SOA_COLUMN(CascPVContribs, cascPVContribs, uint8_t); + DECLARE_SOA_COLUMN(CascPt, cascPt, float); DECLARE_SOA_COLUMN(CascEta, cascEta, float); @@ -115,6 +117,7 @@ DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE", NPCascadeTable::ITSClusSize, NPCascadeTable::HasReassociatedCluster, aod::collision::NumContrib, + NPCascadeTable::CascPVContribs, aod::collision::CollisionTimeRes, NPCascadeTable::PvX, NPCascadeTable::PvY, @@ -173,6 +176,7 @@ DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT", NPCascadeTable::ITSClusSize, NPCascadeTable::HasReassociatedCluster, aod::collision::NumContrib, + NPCascadeTable::CascPVContribs, aod::collision::CollisionTimeRes, NPCascadeTable::PvX, NPCascadeTable::PvY, @@ -237,6 +241,7 @@ DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC", NPCascadeTable::IsFromBeauty, NPCascadeTable::IsFromCharm, aod::collision::NumContrib, + NPCascadeTable::CascPVContribs, aod::collision::CollisionTimeRes, NPCascadeTable::PvX, NPCascadeTable::PvY, @@ -309,6 +314,7 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT", NPCascadeTable::IsFromBeauty, NPCascadeTable::IsFromCharm, aod::collision::NumContrib, + NPCascadeTable::CascPVContribs, aod::collision::CollisionTimeRes, NPCascadeTable::PvX, NPCascadeTable::PvY, diff --git a/PWGLF/Tasks/Strangeness/nonPromptCascade.cxx b/PWGLF/Tasks/Strangeness/nonPromptCascade.cxx index 53376eab4f1..33384ae8e28 100644 --- a/PWGLF/Tasks/Strangeness/nonPromptCascade.cxx +++ b/PWGLF/Tasks/Strangeness/nonPromptCascade.cxx @@ -65,6 +65,7 @@ struct NPCascCandidate { bool isFromBeauty; bool isFromCharm; uint16_t pvContributors; + uint8_t cascPVContribs; float pvTimeResolution; float pvX; float pvY; @@ -285,6 +286,12 @@ struct NonPromptCascadeTask { const auto& ntrack = v0.template negTrack_as(); const auto& protonTrack = bachelor.sign() > 0 ? ntrack : ptrack; const auto& pionTrack = bachelor.sign() > 0 ? ptrack : ntrack; + + // first bit for the strange track, second for pos v0, third for neg v0, fourth for bachelor + uint8_t cascPVContribs = 0; + cascPVContribs |= ptrack.isPVContributor() << 1; + cascPVContribs |= ntrack.isPVContributor() << 2; + cascPVContribs |= bachelor.isPVContributor() << 3; mRegistry.fill(HIST("h_PIDcutsXi"), 0, 1.322); mRegistry.fill(HIST("h_PIDcutsOmega"), 0, 1.675); @@ -422,6 +429,7 @@ struct NonPromptCascadeTask { int trackedCascGlobalIndex{-1}, itsTrackGlobalIndex{-1}, cascITSclusters{-1}; if constexpr (requires { candidate.track(); }) { const auto& track = candidate.template track_as(); + cascPVContribs |= track.isPVContributor() << 0; const auto& ITStrack = candidate.template itsTrack_as(); auto trackTrkParCov = getTrackParCov(track); o2::base::Propagator::Instance()->propagateToDCA(primaryVertex, trackTrkParCov, mBz, 2.f, matCorr, &motherDCA); @@ -447,7 +455,7 @@ struct NonPromptCascadeTask { float mc = collision.multFT0C(); float ma = collision.multFT0A(); candidates.emplace_back(NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, cascITSclsSize, hasReassociatedClusters, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1], - collision.numContrib(), collision.collisionTimeRes(), primaryVertex.getX(), primaryVertex.getY(), primaryVertex.getZ(), + collision.numContrib(), cascPVContribs, collision.collisionTimeRes(), primaryVertex.getX(), primaryVertex.getY(), primaryVertex.getZ(), cascadeLvector.pt(), cascadeLvector.eta(), cascadeLvector.phi(), protonTrack.pt(), protonTrack.eta(), pionTrack.pt(), pionTrack.eta(), bachelor.pt(), bachelor.eta(), motherDCA.getY(), motherDCA.getZ(), protonDCA.getY(), protonDCA.getZ(), pionDCA.getY(), pionDCA.getZ(), bachDCA.getY(), bachDCA.getZ(), @@ -465,7 +473,7 @@ struct NonPromptCascadeTask { { for (const auto& c : candidates) { getDataTable()(c.matchingChi2, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, - c.pvContributors, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ, + c.pvContributors, c.cascPVContribs, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ, c.cascPt, c.cascEta, c.cascPhi, c.protonPt, c.protonEta, c.pionPt, c.pionEta, c.bachPt, c.bachEta, c.cascDCAxy, c.cascDCAz, c.protonDCAxy, c.protonDCAz, c.pionDCAxy, c.pionDCAz, c.bachDCAxy, c.bachDCAz, @@ -492,7 +500,7 @@ struct NonPromptCascadeTask { auto recCollision = collisions.iteratorAt(c.collisionID); getMCtable()(c.matchingChi2, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, c.isGoodMatch, c.isGoodCascade, c.pdgCodeMom, c.pdgCodeITStrack, c.isFromBeauty, c.isFromCharm, - c.pvContributors, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ, c.cascPt, c.cascEta, c.cascPhi, + c.pvContributors,c.cascPVContribs, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ, c.cascPt, c.cascEta, c.cascPhi, c.protonPt, c.protonEta, c.pionPt, c.pionEta, c.bachPt, c.bachEta, c.cascDCAxy, c.cascDCAz, c.protonDCAxy, c.protonDCAz, c.pionDCAxy, c.pionDCAz, c.bachDCAxy, c.bachDCAz, c.casccosPA, c.v0cosPA, c.massXi, c.massOmega, c.massV0, c.cascRadius, c.v0radius, c.cascLength, c.v0length, From 6e1d20ef4159ab13edc0b2f595d3adb9fc4af8ec Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Wed, 16 Apr 2025 09:19:21 +0000 Subject: [PATCH 2/2] Please consider the following formatting changes --- PWGLF/DataModel/LFNonPromptCascadeTables.h | 1 - PWGLF/Tasks/Strangeness/nonPromptCascade.cxx | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/PWGLF/DataModel/LFNonPromptCascadeTables.h b/PWGLF/DataModel/LFNonPromptCascadeTables.h index 1caabd79090..bcdc5d6f08d 100644 --- a/PWGLF/DataModel/LFNonPromptCascadeTables.h +++ b/PWGLF/DataModel/LFNonPromptCascadeTables.h @@ -40,7 +40,6 @@ DECLARE_SOA_COLUMN(PvY, pvY, float); DECLARE_SOA_COLUMN(PvZ, pvZ, float); DECLARE_SOA_COLUMN(CascPVContribs, cascPVContribs, uint8_t); - DECLARE_SOA_COLUMN(CascPt, cascPt, float); DECLARE_SOA_COLUMN(CascEta, cascEta, float); DECLARE_SOA_COLUMN(CascPhi, cascPhi, float); diff --git a/PWGLF/Tasks/Strangeness/nonPromptCascade.cxx b/PWGLF/Tasks/Strangeness/nonPromptCascade.cxx index 33384ae8e28..b658981c5c4 100644 --- a/PWGLF/Tasks/Strangeness/nonPromptCascade.cxx +++ b/PWGLF/Tasks/Strangeness/nonPromptCascade.cxx @@ -286,7 +286,7 @@ struct NonPromptCascadeTask { const auto& ntrack = v0.template negTrack_as(); const auto& protonTrack = bachelor.sign() > 0 ? ntrack : ptrack; const auto& pionTrack = bachelor.sign() > 0 ? ptrack : ntrack; - + // first bit for the strange track, second for pos v0, third for neg v0, fourth for bachelor uint8_t cascPVContribs = 0; cascPVContribs |= ptrack.isPVContributor() << 1; @@ -500,7 +500,7 @@ struct NonPromptCascadeTask { auto recCollision = collisions.iteratorAt(c.collisionID); getMCtable()(c.matchingChi2, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, c.isGoodMatch, c.isGoodCascade, c.pdgCodeMom, c.pdgCodeITStrack, c.isFromBeauty, c.isFromCharm, - c.pvContributors,c.cascPVContribs, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ, c.cascPt, c.cascEta, c.cascPhi, + c.pvContributors, c.cascPVContribs, c.pvTimeResolution, c.pvX, c.pvY, c.pvZ, c.cascPt, c.cascEta, c.cascPhi, c.protonPt, c.protonEta, c.pionPt, c.pionEta, c.bachPt, c.bachEta, c.cascDCAxy, c.cascDCAz, c.protonDCAxy, c.protonDCAz, c.pionDCAxy, c.pionDCAz, c.bachDCAxy, c.bachDCAz, c.casccosPA, c.v0cosPA, c.massXi, c.massOmega, c.massV0, c.cascRadius, c.v0radius, c.cascLength, c.v0length,