Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions PWGLF/DataModel/LFNonPromptCascadeTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ namespace NPCascadeTable
{
DECLARE_SOA_COLUMN(MatchingChi2, matchingChi2, float);
DECLARE_SOA_COLUMN(DeltaPtITSCascade, deltaPtITSCascade, float);
DECLARE_SOA_COLUMN(DeltaPtCascade, deltaPtCascade, float);
DECLARE_SOA_COLUMN(ITSClusSize, itsClusSize, float);
DECLARE_SOA_COLUMN(HasReassociatedCluster, hasReassociatedCluster, bool);
DECLARE_SOA_COLUMN(IsGoodMatch, isGoodMatch, bool);
Expand Down Expand Up @@ -103,12 +104,14 @@ DECLARE_SOA_COLUMN(DCAxMC, dcaXmc, float);
DECLARE_SOA_COLUMN(DCAyMC, dcaYmc, float);
DECLARE_SOA_COLUMN(DCAzMC, dcaZmc, float);
DECLARE_SOA_COLUMN(MCcollisionMatch, mcCollisionMatch, bool);
DECLARE_SOA_COLUMN(HasFakeReassociation, hasFakeReassociation, bool);
DECLARE_SOA_COLUMN(MotherDecayDaughters, motherDecayDaughters, int8_t);

} // namespace NPCascadeTable
DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
NPCascadeTable::MatchingChi2,
NPCascadeTable::DeltaPtITSCascade,
NPCascadeTable::DeltaPtCascade,
NPCascadeTable::ITSClusSize,
NPCascadeTable::HasReassociatedCluster,
aod::collision::NumContrib,
Expand Down Expand Up @@ -164,6 +167,7 @@ DECLARE_SOA_TABLE(NPCascTable, "AOD", "NPCASCTABLE",
DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
NPCascadeTable::MatchingChi2,
NPCascadeTable::DeltaPtITSCascade,
NPCascadeTable::DeltaPtCascade,
NPCascadeTable::ITSClusSize,
NPCascadeTable::HasReassociatedCluster,
aod::collision::NumContrib,
Expand Down Expand Up @@ -219,6 +223,7 @@ DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
NPCascadeTable::MatchingChi2,
NPCascadeTable::DeltaPtITSCascade,
NPCascadeTable::DeltaPtCascade,
NPCascadeTable::ITSClusSize,
NPCascadeTable::HasReassociatedCluster,
NPCascadeTable::IsGoodMatch,
Expand Down Expand Up @@ -284,11 +289,13 @@ DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
NPCascadeTable::DCAyMC,
NPCascadeTable::DCAzMC,
NPCascadeTable::MCcollisionMatch,
NPCascadeTable::HasFakeReassociation,
NPCascadeTable::MotherDecayDaughters)

DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
NPCascadeTable::MatchingChi2,
NPCascadeTable::DeltaPtITSCascade,
NPCascadeTable::DeltaPtCascade,
NPCascadeTable::ITSClusSize,
NPCascadeTable::HasReassociatedCluster,
NPCascadeTable::IsGoodMatch,
Expand Down Expand Up @@ -354,6 +361,7 @@ DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
NPCascadeTable::DCAyMC,
NPCascadeTable::DCAzMC,
NPCascadeTable::MCcollisionMatch,
NPCascadeTable::HasFakeReassociation,
NPCascadeTable::MotherDecayDaughters)

DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
Expand Down
17 changes: 11 additions & 6 deletions PWGLF/Tasks/Strangeness/nonPromptCascade.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,11 @@ struct NPCascCandidate {
int64_t trackITSID;
int64_t collisionID;
float matchingChi2;
float deltaPtITS;
float deltaPt;
float itsClusSize;
bool hasReassociatedCluster;
bool hasFakeReassociation;
bool isGoodMatch;
bool isGoodCascade;
int pdgCodeMom;
Expand Down Expand Up @@ -389,6 +391,7 @@ struct NonPromptCascadeTask {
if (v0part.mothersIds()[0] == bachelor.mcParticle().mothersIds()[0]) {
if (std::abs(motherV0.pdgCode()) == 3312 || std::abs(motherV0.pdgCode()) == 3334) {
isGoodCascade = true;

isOmega = (std::abs(motherV0.pdgCode()) == 3334);
fromHF = isFromHF(motherV0);
mcParticleID = v0part.mothersIds()[0];
Expand All @@ -413,8 +416,8 @@ struct NonPromptCascadeTask {
o2::base::Propagator::Instance()->propagateToDCA(primaryVertex, pionTrkParCov, mBz, 2.f, matCorr, &pionDCA);
o2::base::Propagator::Instance()->propagateToDCA(primaryVertex, bachTrkParCov, mBz, 2.f, matCorr, &bachDCA);

float deltaPtITSCascade{-1.e10f}, cascITSclsSize{-1.e10f}, matchingChi2{-1.e10f};
bool hasReassociatedClusters{false};
float deltaPtITSCascade{-1.e10f}, deltaPtCascade{-1.e10f}, cascITSclsSize{-1.e10f}, matchingChi2{-1.e10f};
bool hasReassociatedClusters{false}, hasFakeReassociation{false};
int trackedCascGlobalIndex{-1}, itsTrackGlobalIndex{-1}, cascITSclusters{-1};
if constexpr (requires { candidate.track(); }) {
const auto& track = candidate.template track_as<TrackType>();
Expand All @@ -424,6 +427,7 @@ struct NonPromptCascadeTask {
hasReassociatedClusters = (track.itsNCls() != ITStrack.itsNCls());
cascadeLvector.SetCoordinates(track.pt(), track.eta(), track.phi(), 0);
deltaPtITSCascade = std::hypot(cascadeMomentum[0], cascadeMomentum[1]) - ITStrack.pt();
deltaPtCascade = std::hypot(cascadeMomentum[0], cascadeMomentum[1]) - track.pt();
trackedCascGlobalIndex = track.globalIndex();
itsTrackGlobalIndex = ITStrack.globalIndex();
cascITSclusters = track.itsNCls();
Expand All @@ -435,11 +439,12 @@ struct NonPromptCascadeTask {

if (isGoodMatch) {
pdgCodeMom = track.mcParticle().has_mothers() ? track.mcParticle().template mothers_as<aod::McParticles>()[0].pdgCode() : 0;
hasFakeReassociation = track.mcMask() & (1 << 15);
}
itsTrackPDG = ITStrack.has_mcParticle() ? ITStrack.mcParticle().pdgCode() : 0;
}
}
candidates.emplace_back(NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, cascITSclsSize, hasReassociatedClusters, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1],
candidates.emplace_back(NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId(), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0], fromHF[1],
collision.numContrib(), 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(),
Expand All @@ -457,7 +462,7 @@ struct NonPromptCascadeTask {
void fillDataTable(auto const& candidates)
{
for (const auto& c : candidates) {
getDataTable<CascadeType>()(c.matchingChi2, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster,
getDataTable<CascadeType>()(c.matchingChi2, c.deltaPtITS, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster,
c.pvContributors, 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,
Expand Down Expand Up @@ -496,7 +501,7 @@ struct NonPromptCascadeTask {
auto mcCollision = particle.template mcCollision_as<aod::McCollisions>();
auto recCollision = collisions.iteratorAt(c.collisionID);

getMCtable<CascadeType>()(c.matchingChi2, c.deltaPt, c.itsClusSize, c.hasReassociatedCluster, c.isGoodMatch, c.isGoodCascade, c.pdgCodeMom, c.pdgCodeITStrack, c.isFromBeauty, c.isFromCharm,
getMCtable<CascadeType>()(c.matchingChi2, c.deltaPtITS, 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.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,
Expand All @@ -505,7 +510,7 @@ struct NonPromptCascadeTask {
c.pionTPCNSigma, c.bachKaonTPCNSigma, c.bachPionTPCNSigma, c.protonHasTOF, c.pionHasTOF, c.bachHasTOF,
c.protonTOFNSigma, c.pionTOFNSigma, c.bachKaonTOFNSigma, c.bachPionTOFNSigma,
particle.pt(), particle.eta(), particle.phi(), particle.pdgCode(), mcCollision.posX() - particle.vx(), mcCollision.posY() - particle.vy(),
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), motherDecayDaughters);
mcCollision.posZ() - particle.vz(), mcCollision.globalIndex() == recCollision.mcCollisionId(), c.hasFakeReassociation, motherDecayDaughters);
}
}

Expand Down