@@ -233,20 +233,26 @@ std::array<float, 3> refitMotherTrack(TCollision& collision, TTrack& track, std:
233233{
234234 auto trackPar = getTrackParCov (track);
235235
236- std::array<float , 3 > innermostPos = {0 .f };
237- std::array<float , 21 > innermostCov = {0 .f };
238- trackPar.getXYZGlo (innermostPos);
239- trackPar.getCovXYZPxPyPzGlo (innermostCov);
240-
236+ float trackIUPos[2 ] = {track.y (), track.z ()};
237+ float trackIUCov[3 ] = {track.cYY (), track.cZY (), track.cZZ ()};
241238 o2::dataformats::VertexBase primaryVtx = {{collision.posX (), collision.posY (), collision.posZ ()}, {collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ()}};
242- o2::dataformats::VertexBase innermostVtx = {{innermostPos[0 ], innermostPos[1 ], innermostPos[2 ]}, {innermostCov[0 ], innermostCov[1 ], innermostCov[2 ], innermostCov[3 ], innermostCov[4 ], innermostCov[5 ]}};
243239 o2::dataformats::VertexBase secondaryVtx = {{posSV[0 ], posSV[1 ], posSV[2 ]}, {covPosSV[0 ], covPosSV[1 ], covPosSV[2 ], covPosSV[3 ], covPosSV[4 ], covPosSV[5 ]}};
244240
245- o2::base::Propagator::Instance ()->propagateToDCABxByBz (primaryVtx, trackPar, 2 .f , o2::base::Propagator::MatCorrType::USEMatCorrNONE );
241+ o2::base::Propagator::Instance ()->propagateToDCABxByBz (primaryVtx, trackPar, 2 .f , o2::base::Propagator::MatCorrType::USEMatCorrLUT );
246242
247243 trackPar.resetCovariance (999 .f );
248244 std::array<float , 3 > refitP = {-999 .f , -999 .f , -999 .f };
249- if (!trackPar.update (primaryVtx, 999 .f ) || !trackPar.update (innermostVtx, 999 .f ) || !trackPar.update (secondaryVtx, 999 .f )) {
245+ if (!trackPar.update (primaryVtx, 999 .f )) {
246+ return refitP;
247+ }
248+
249+ o2::base::Propagator::Instance ()->PropagateToXBxByBz (trackPar, track.x ());
250+ if (!trackPar.update (trackIUPos, trackIUCov)) {
251+ return refitP;
252+ }
253+
254+ o2::base::Propagator::Instance ()->propagateToDCABxByBz (secondaryVtx, trackPar, 2 .f , o2::base::Propagator::MatCorrType::USEMatCorrLUT);
255+ if (!trackPar.update (secondaryVtx, 999 .f )) {
250256 return refitP;
251257 }
252258
0 commit comments