@@ -1754,21 +1754,21 @@ bool MatchTPCITS::refitABTrack(int iITSAB, const TPCABSeed& seed, pmr::vector<o2
17541754 auto geom = o2::its::GeometryTGeo::Instance ();
17551755 auto propagator = o2::base::Propagator::Instance ();
17561756 tracOut.resetCovariance ();
1757+ o2::track::TrackPar refLin (tracOut);
17571758 propagator->estimateLTFast (tofL, winLink); // guess about initial value for the track integral from the origin
17581759 // refit track outward in the ITS
17591760 const auto & itsClRefs = ABTrackletRefs[iITSAB];
17601761 int nclRefit = 0 , ncl = itsClRefs.getNClusters ();
1761-
17621762 float chi2 = 0 .f ;
17631763 // NOTE: the ITS cluster absolute indices are stored from inner to outer layers
17641764 for (int icl = itsClRefs.getFirstEntry (); icl < itsClRefs.getEntriesBound (); icl++) {
17651765 const auto & clus = mITSClustersArray [ABTrackletClusterIDs[icl]];
17661766 float alpha = geom->getSensorRefAlpha (clus.getSensorID ()), x = clus.getX ();
1767- if (!tracOut.rotate (alpha) ||
1767+ if (!tracOut.rotate (alpha, refLin, propagator-> getNominalBz () ) ||
17681768 // note: here we also calculate the L,T integral
17691769 // note: we should eventually use TPC pid in the refit (TODO)
17701770 // note: since we are at small R, we can use field BZ component at origin rather than 3D field
1771- !propagator->propagateToX (tracOut, x, propagator->getNominalBz (), MaxSnp, maxStep, mUseMatCorrFlag , &tofL)) {
1771+ !propagator->propagateToX (tracOut, refLin, x, propagator->getNominalBz (), MaxSnp, maxStep, mUseMatCorrFlag , &tofL)) {
17721772 break ;
17731773 }
17741774 chi2 += tracOut.getPredictedChi2 (clus);
@@ -1789,7 +1789,7 @@ bool MatchTPCITS::refitABTrack(int iITSAB, const TPCABSeed& seed, pmr::vector<o2
17891789 {
17901790 float xtogo = 0 ;
17911791 if (!tracOut.getXatLabR (o2::constants::geom::XTPCInnerRef, xtogo, mBz , o2::track::DirOutward) ||
1792- !propagator->PropagateToXBxByBz (tracOut, xtogo, MaxSnp, 10 ., mUseMatCorrFlag , &tofL)) {
1792+ !propagator->PropagateToXBxByBz (tracOut, refLin, xtogo, MaxSnp, 10 ., mUseMatCorrFlag , &tofL)) {
17931793 LOG (debug) << " Propagation to inner TPC boundary X=" << xtogo << " failed, Xtr=" << tracOut.getX () << " snp=" << tracOut.getSnp ();
17941794 matchedTracks.pop_back (); // destroy failed track
17951795 return false ;
0 commit comments