117 const auto bz = prop->getNominalBz();
120 return refLin ? tr.rotate(
alpha, *refLin, bz) : tr.rotate(
alpha);
124 bool outward = tr.getX() < clArr[
i]->getX();
129 chi2 += tr.getPredictedChi2Quiet(*clArr[
i]);
132 if (!tr.update(*clArr[
i])) {
136 extrapDest[
i].invalidate();
141 auto trFitInw = convertTrack<T>(iTrack.getParamOut());
142 auto trFitOut = convertTrack<T>(iTrack.getParamIn());
151 refLinOut = &(refLinOut0 = trFitOut);
152 refLinInw = &(refLinInw0 = trFitInw);
155 auto resetTrackCov = [bz](
auto& trk) {
156 trk.resetCovariance();
157 float qptB5Scale = std::abs(bz) > 0.1f ? std::abs(bz) / 5.006680f : 1.f;
158 float q2pt2 = trk.getQ2Pt() * trk.getQ2Pt(), q2pt2Wgh = q2pt2 * qptB5Scale * qptB5Scale;
159 float err2 = (100.f + q2pt2Wgh) / (1.f + q2pt2Wgh) * q2pt2;
160 trk.setCov(err2, 14);
162 resetTrackCov(trFitOut);
163 resetTrackCov(trFitInw);
165 for (
int i = 0;
i <= 7;
i++) {
166 if (!accountCluster(
i, extrapOut, trFitOut, refLinOut) || !accountCluster(7 -
i, extrapInw, trFitInw, refLinInw)) {
bool doBidirRefit(const o2::its::TrackITS &iTrack, std::array< const TrackingCluster< T > *, 8 > &clArr, std::array< o2::track::TrackParametrizationWithError< T >, 8 > &extrapOut, std::array< o2::track::TrackParametrizationWithError< T >, 8 > &extrapInw, T &chi2, bool useStableRef, typename o2::base::PropagatorImpl< T >::MatCorrType corrType)