@@ -337,13 +337,15 @@ struct NonPromptCascadeTask {
337337 o2::math_utils::SVector<double , 3 > cascadePos, v0Pos;
338338
339339 float cascCpa = -1 , v0Cpa = -1 ;
340+ o2::track::TrackParCov ntCascadeTrack;
340341 if (mDCAFitter .process (pionTrkParCov, protonTrkParCov)) {
341342 auto trackParCovV0 = mDCAFitter .createParentTrackParCov (0 ); // V0 track retrieved from p and pi daughters
342343 v0Pos = mDCAFitter .getPCACandidate ();
343344 if (mDCAFitter .process (trackParCovV0, bachTrkParCov)) {
344345 mDCAFitter .getTrackParamAtPCA (0 ).getPxPyPzGlo (momenta[0 ]);
345346 mDCAFitter .getTrackParamAtPCA (1 ).getPxPyPzGlo (momenta[1 ]);
346- mDCAFitter .createParentTrackParCov ().getPxPyPzGlo (cascadeMomentum);
347+ ntCascadeTrack = mDCAFitter .createParentTrackParCov ();
348+ ntCascadeTrack.getPxPyPzGlo (cascadeMomentum);
347349 std::array<float , 3 > pvPos = {primaryVertex.getX (), primaryVertex.getY (), primaryVertex.getZ ()};
348350 cascadePos = mDCAFitter .getPCACandidate ();
349351 cascCpa = RecoDecay::cpa (pvPos, mDCAFitter .getPCACandidate (), cascadeMomentum);
@@ -443,6 +445,8 @@ struct NonPromptCascadeTask {
443445 }
444446 itsTrackPDG = ITStrack.has_mcParticle () ? ITStrack.mcParticle ().pdgCode () : 0 ;
445447 }
448+ } else {
449+ o2::base::Propagator::Instance ()->propagateToDCA (primaryVertex, ntCascadeTrack, mBz , 2 .f , matCorr, &motherDCA);
446450 }
447451 candidates.emplace_back (NPCascCandidate{mcParticleID, trackedCascGlobalIndex, itsTrackGlobalIndex, candidate.collisionId (), matchingChi2, deltaPtITSCascade, deltaPtCascade, cascITSclsSize, hasReassociatedClusters, hasFakeReassociation, isGoodMatch, isGoodCascade, pdgCodeMom, itsTrackPDG, fromHF[0 ], fromHF[1 ],
448452 collision.numContrib (), collision.collisionTimeRes (), primaryVertex.getX (), primaryVertex.getY (), primaryVertex.getZ (),
0 commit comments