diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx index 08af527039f4af81a7413be052c17aaadd2abff2..87090be90e3134b64402b37088421a74676e5734 100644 --- a/reco/L1/CbmL1Performance.cxx +++ b/reco/L1/CbmL1Performance.cxx @@ -1240,7 +1240,7 @@ void CbmL1::TrackFitPerformance() CbmL1MCPoint& mcP = fvMCPoints[mc.Points[0]]; - fit.Extrapolate(mcP.zIn, fit.fQp0, fld, fvec::One()); + fit.Extrapolate(mcP.zIn, fld, fvec::One()); double dx = tr.x[0] - mcP.xIn; double dy = tr.y[0] - mcP.yIn; @@ -1346,7 +1346,7 @@ void CbmL1::TrackFitPerformance() const L1TrackPar& tr = fit.fTr; CbmL1MCPoint& mcP = fvMCPoints[iMC]; - fit.Extrapolate(mcP.zOut, fit.fQp0, fld, fvec::One()); + fit.Extrapolate(mcP.zOut, fld, fvec::One()); h_fitL[0]->Fill((tr.x[0] - mcP.xOut) * 1.e4); h_fitL[1]->Fill((tr.y[0] - mcP.yOut) * 1.e4); @@ -1407,7 +1407,7 @@ void CbmL1::TrackFitPerformance() { // extrapolate to vertex L1FieldRegion fld _fvecalignment; fld.SetUseOriginalField(); - fit.Extrapolate(mc.z, fit.fQp0, fld, fvec::One()); + fit.Extrapolate(mc.z, fld, fvec::One()); // add material const int fSta = fvHitStore[it->Hits[0]].iStation; const int dir = int((mc.z - fpAlgo->GetParameters()->GetStation(fSta).fZ[0]) @@ -1469,14 +1469,14 @@ void CbmL1::TrackFitPerformance() && (dir * (mc.z - fpAlgo->GetParameters()->GetStation(iSta).fZ[0]) > 0); iSta += dir) { - fit.Extrapolate(fpAlgo->GetParameters()->GetStation(iSta).fZ, fit.fQp0, fld, fvec::One()); + fit.Extrapolate(fpAlgo->GetParameters()->GetStation(iSta).fZ, fld, fvec::One()); fit.AddMsInMaterial(fpAlgo->GetParameters()->GetMaterialThickness(iSta, fit.fTr.x, fit.fTr.y), fit.fQp0, fvec::One()); fit.EnergyLossCorrection(fpAlgo->GetParameters()->GetMaterialThickness(iSta, fit.fTr.x, fit.fTr.y), fit.fQp0, fvec::One(), fvec::One()); } - fit.Extrapolate(mc.z, fit.fQp0, fld, fvec::One()); + fit.Extrapolate(mc.z, fld, fvec::One()); } if (mc.z != tr.z[0]) continue; diff --git a/reco/L1/L1Algo/L1BranchExtender.cxx b/reco/L1/L1Algo/L1BranchExtender.cxx index 770db8283a91548ed4a70a61f3772cfe68560854..7c912c2c6fbed9e033da67c9d5d12bbb1280b75f 100644 --- a/reco/L1/L1Algo/L1BranchExtender.cxx +++ b/reco/L1/L1Algo/L1BranchExtender.cxx @@ -119,7 +119,7 @@ void L1Algo::BranchFitterFast(const L1Branch& t, L1TrackPar& Tout, const bool di const L1Station& sta = fParameters.GetStation(ista); - fit.Extrapolate(hit.z, fit.fQp0, fld, fvec::One()); + fit.Extrapolate(hit.z, fld, fvec::One()); fit.Filter(sta.frontInfo, hit.u, hit.du2, fvec::One()); fit.Filter(sta.backInfo, hit.v, hit.dv2, fvec::One()); fit.FilterTime(hit.t, hit.dt2, fvec::One(), sta.timeInfo); @@ -216,7 +216,7 @@ void L1Algo::FindMoreHits(L1Branch& t, L1TrackPar& Tout, const bool dir, const L1Station& sta = fParameters.GetStation(ista); - fit.Extrapolate(sta.fZ, fit.fQp0, fld, fvec::One()); + fit.Extrapolate(sta.fZ, fld, fvec::One()); fscal r2_best = 1e8; // best distance to hit int iHit_best = -1; // index of the best hit @@ -288,7 +288,7 @@ void L1Algo::FindMoreHits(L1Branch& t, L1TrackPar& Tout, const bool dir, auto [x, y] = sta.ConvUVtoXY<fvec>(hit.u, hit.v); - fit.Extrapolate(hit.z, fit.fQp0, fld, fvec::One()); + fit.Extrapolate(hit.z, fld, fvec::One()); fit.Filter(sta.frontInfo, hit.u, hit.du2, fvec::One()); fit.Filter(sta.backInfo, hit.v, hit.dv2, fvec::One()); fit.FilterTime(hit.t, hit.dt2, fvec::One(), sta.timeInfo); diff --git a/reco/L1/L1Algo/L1CATrackFinder.cxx b/reco/L1/L1Algo/L1CATrackFinder.cxx index 868a7354dee5308b992e65c902cb63cbfca6974f..0fadecf1e87297f62289b512b0bde42d7d3fb7af 100644 --- a/reco/L1/L1Algo/L1CATrackFinder.cxx +++ b/reco/L1/L1Algo/L1CATrackFinder.cxx @@ -415,7 +415,6 @@ inline void L1Algo::findDoubletsStep0( // check x-boundaries fvec x, C00; fit.ExtrapolateXC00Line(zm, x, C00); - //L1ExtrapolateXC00Line(T1, zm, x, C00); fscal dx_est2 = Pick_m22[i1_4] * fabs(C00[i1_4] + dxxScalMhit); @@ -426,7 +425,6 @@ inline void L1Algo::findDoubletsStep0( // check chi2 fvec C10; fit.ExtrapolateC10Line(zm, C10); - //L1ExtrapolateC10Line(T1, zm, C10); fvec chi2 = T1.chi2; @@ -629,7 +627,7 @@ inline void L1Algo::findTripletsStep0( // input // extrapolate to the right hit station - fit.Extrapolate(star.fZ, fit.fQp0, f2, fvec::One()); + fit.Extrapolate(star.fZ, f2, fvec::One()); // assert(T2.IsConsistent(true, n2_4)); @@ -706,7 +704,6 @@ inline void L1Algo::findTripletsStep0( // input // check lower boundary fvec y, C11; fit3.ExtrapolateYC11Line(zr, y, C11); - //L1ExtrapolateYC11Line(T2, zr, y, C11); /// Covariation matrix of the hit auto [dxxScalRhit, dxyScalRhit, dyyScalRhit] = star.FormXYCovarianceMatrix(hitr.dU2(), hitr.dV2()); @@ -936,9 +933,9 @@ inline void L1Algo::findTripletsStep2(Tindex n3, int istal, int istam, int istar for (int iiter = 0; iiter < nIterations; ++iiter) { // fit forward { - fvec qp0 = T.qp; - if (qp0[0] > GetMaxInvMom()) { qp0 = GetMaxInvMom(); } - if (qp0[0] < -GetMaxInvMom()) { qp0 = -GetMaxInvMom(); } + fit.fQp0 = T.qp; + if (fit.fQp0[0] > GetMaxInvMom()) { fit.fQp0 = GetMaxInvMom(); } + if (fit.fQp0[0] < -GetMaxInvMom()) { fit.fQp0 = -GetMaxInvMom(); } T.ResetErrors(200., 200., 1., 1., 100., 1.e4); //T.ResetErrors(200., 200., 10., 10., 100., 1.e4); @@ -960,9 +957,8 @@ inline void L1Algo::findTripletsStep2(Tindex n3, int istal, int istam, int istar fit.AddTargetToLine(fTargX, fTargY, fTargZ, TargetXYInfo, fldTarget); for (int ih = 1; ih < NHits; ++ih) { - fit.Extrapolate(z[ih], qp0, fld, fvec::One()); - fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista[ih], T.x, T.y), qp0, fvec::One()); - //if (ista[ih] == fNstationsBeforePipe) { fit.AddPipeMaterial(qp0, fvec::One()); } + fit.Extrapolate(z[ih], fld, fvec::One()); + fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista[ih], T.x, T.y), fit.fQp0, fvec::One()); fit.Filter(sta[ih].frontInfo, u[ih], du2[ih], fvec::One()); fit.Filter(sta[ih].backInfo, v[ih], dv2[ih], fvec::One()); fit.FilterTime(t[ih], dt2[ih], fvec::One(), sta[ih].timeInfo); @@ -973,9 +969,9 @@ inline void L1Algo::findTripletsStep2(Tindex n3, int istal, int istam, int istar // fit backward { - fvec qp0 = T.qp; - if (qp0[0] > GetMaxInvMom()) { qp0 = GetMaxInvMom(); } - if (qp0[0] < -GetMaxInvMom()) { qp0 = -GetMaxInvMom(); } + fit.fQp0 = T.qp; + if (fit.fQp0[0] > GetMaxInvMom()) { fit.fQp0 = GetMaxInvMom(); } + if (fit.fQp0[0] < -GetMaxInvMom()) { fit.fQp0 = -GetMaxInvMom(); } T.ResetErrors(200., 200., 1., 1., 100., 1.e4); T.NDF = ndf; @@ -990,15 +986,14 @@ inline void L1Algo::findTripletsStep2(Tindex n3, int istal, int istam, int istar //std::tie(T.C00, T.C10, T.C11) = sta[ih0].FormXYCovarianceMatrix(du2[ih0], dv2[ih0]); fit.Filter(sta[ih0].frontInfo, u[ih0], du2[ih0], fvec::One()); fit.Filter(sta[ih0].backInfo, v[ih0], dv2[ih0], fvec::One()); - //fit.FilterTime(t[ih0], dt[ih0], fvec::One(), sta[ih0].timeInfo); + fit.FilterTime(t[ih0], dt2[ih0], fvec::One(), sta[ih0].timeInfo); for (int ih = NHits - 2; ih >= 0; --ih) { - fit.Extrapolate(z[ih], qp0, fld, fvec::One()); - fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista[ih], T.x, T.y), qp0, fvec::One()); - //if (ista[ih] == fNstationsBeforePipe - 1) { fit.AddPipeMaterial(qp0, fvec::One()); } + fit.Extrapolate(z[ih], fld, fvec::One()); + fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista[ih], T.x, T.y), fit.fQp0, fvec::One()); fit.Filter(sta[ih].frontInfo, u[ih], du2[ih], fvec::One()); fit.Filter(sta[ih].backInfo, v[ih], dv2[ih], fvec::One()); - //fit.FilterTime(t[ih], dt[ih], fvec::One(), sta[ih].timeInfo); + fit.FilterTime(t[ih], dt2[ih], fvec::One(), sta[ih].timeInfo); } } } // for iiter diff --git a/reco/L1/L1Algo/L1CloneMerger.cxx b/reco/L1/L1Algo/L1CloneMerger.cxx index 219410cae2a6e25b7ef34b0e10ed8c567d14b156..78cead9bb5f463415d67687a9bdcb0872ed1a72b 100644 --- a/reco/L1/L1Algo/L1CloneMerger.cxx +++ b/reco/L1/L1Algo/L1CloneMerger.cxx @@ -188,8 +188,8 @@ void L1CloneMerger::Exec(L1Vector<L1Track>& extTracks, L1Vector<L1HitIndex_t>& e fvec zMiddle = fvec(0.5) * (Tb.z + Tf.z); - fitF.Extrapolate(zMiddle, fitF.fQp0, fld, fvec::One()); - fitB.Extrapolate(zMiddle, fitB.fQp0, fld, fvec::One()); + fitF.Extrapolate(zMiddle, fld, fvec::One()); + fitB.Extrapolate(zMiddle, fld, fvec::One()); fvec Chi2Tracks(0.); FilterTracks(&(Tf.x), &(Tf.C00), &(Tb.x), &(Tb.C00), 0, 0, &Chi2Tracks); diff --git a/reco/L1/L1Algo/L1TrackFitter.cxx b/reco/L1/L1Algo/L1TrackFitter.cxx index 3926955a1f411d72715d5a11a91db83dd8b2622c..a07fa6e64f7a86c101dc1416ff5d97fcf2aab7fb 100644 --- a/reco/L1/L1Algo/L1TrackFitter.cxx +++ b/reco/L1/L1Algo/L1TrackFitter.cxx @@ -219,7 +219,7 @@ void L1Algo::L1KFTrackFitter() for (int iter = 0; iter < 2; iter++) { // 1.5 iterations - fvec qp01 = tr.qp; + fit.fQp0 = tr.qp; // fit backward @@ -257,16 +257,11 @@ void L1Algo::L1KFTrackFitter() fld1 = fld; - fit.Extrapolate(z[ista], qp01, fld1, wExtr); + fit.Extrapolate(z[ista], fld1, wExtr); + fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista, tr.x, tr.y), fit.fQp0, wExtr); - //if (ista == fNstationsBeforePipe - 1) { - //fit.AddPipeMaterial(qp01, wExtr); - //fit.EnergyLossCorrection(fit.fPipeRadThick, qp01, fvec(1.f), wExtr); - //} - fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista, tr.x, tr.y), qp01, wExtr); - - fit.EnergyLossCorrection(fParameters.GetMaterialThickness(ista, tr.x, tr.y), qp01, fvec(1.f), wExtr); + fit.EnergyLossCorrection(fParameters.GetMaterialThickness(ista, tr.x, tr.y), fit.fQp0, fvec(1.f), wExtr); fit.Filter(sta[ista].frontInfo, u[ista], du2[ista], w1); fit.Filter(sta[ista].backInfo, v[ista], dv2[ista], w1); @@ -293,19 +288,18 @@ void L1Algo::L1KFTrackFitter() vtxInfoY.sin_phi = 1.; if (kGlobal == fTrackingMode) { - fvec qp00 = tr.qp; for (int vtxIter = 0; vtxIter < 2; vtxIter++) { - fitpv = fit; - fitpv.fTr.qp = qp00; - fitpv.Extrapolate(fParameters.GetTargetPositionZ(), fitpv.fTr.qp, fld, fvec(1.)); + fitpv.fQp0 = fitpv.fTr.qp; + fitpv.fTr = fit.fTr; + fitpv.fTr.qp = fitpv.fQp0; + fitpv.Extrapolate(fParameters.GetTargetPositionZ(), fld, fvec(1.)); fitpv.Filter(vtxInfoX, fParameters.GetTargetPositionX(), fvec(1.e-8), fvec::One()); fitpv.Filter(vtxInfoY, fParameters.GetTargetPositionY(), fvec(1.e-8), fvec::One()); - qp00 = fitpv.fTr.qp; } } else { - fitpv = fit; - fitpv.Extrapolate(fParameters.GetTargetPositionZ(), fitpv.fTr.qp, fld, fvec(1.)); + fitpv.fQp0 = fitpv.fTr.qp; + fitpv.Extrapolate(fParameters.GetTargetPositionZ(), fld, fvec(1.)); } } @@ -387,7 +381,7 @@ void L1Algo::L1KFTrackFitter() FilterFirst(fit, x_first, y_first, time_first, dt2_first, d_xx_fst, d_yy_fst, d_xy_fst); - qp01 = tr.qp; + fit.fQp0 = tr.qp; fldZ1 = z[ista]; sta[ista].fieldSlice.GetFieldValue(tr.x, tr.y, fldB1); @@ -411,14 +405,10 @@ void L1Algo::L1KFTrackFitter() fvec w1_time = iif(initialised, w_time[ista], fvec::Zero()); fvec wExtr = iif(initialised, fvec::One(), fvec::Zero()); - fit.Extrapolate(z[ista], qp01, fld, w1); + fit.Extrapolate(z[ista], fld, w1); - //if (ista == fNstationsBeforePipe) { - //fit.AddPipeMaterial(qp01, wExtr); - //fit.EnergyLossCorrection(fit.fPipeRadThick, qp01, fvec(-1.f), wExtr); - //} - fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista, tr.x, tr.y), qp01, wExtr); - fit.EnergyLossCorrection(fParameters.GetMaterialThickness(ista, tr.x, tr.y), qp01, fvec(-1.f), wExtr); + fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista, tr.x, tr.y), fit.fQp0, wExtr); + fit.EnergyLossCorrection(fParameters.GetMaterialThickness(ista, tr.x, tr.y), fit.fQp0, fvec(-1.f), wExtr); fit.Filter(sta[ista].frontInfo, u[ista], du2[ista], w1); fit.Filter(sta[ista].backInfo, v[ista], dv2[ista], w1); diff --git a/reco/L1/L1Algo/L1TrackParFit.cxx b/reco/L1/L1Algo/L1TrackParFit.cxx index 817b036a2a775011639fd2e9679f7ffb03e01db6..27b328619e347a5aab6792317693e7d9df81a977 100644 --- a/reco/L1/L1Algo/L1TrackParFit.cxx +++ b/reco/L1/L1Algo/L1TrackParFit.cxx @@ -305,23 +305,25 @@ void L1TrackParFit::FilterExtrapolatedXY(const fvec& x, const fvec& y, const L1X void L1TrackParFit::Extrapolate // extrapolates track parameters and returns jacobian for extrapolation of CovMatrix (fvec z_out, // extrapolate to this z position - fvec qp0, // use Q/p linearisation at this value const L1FieldRegion& F, const fvec& w) { + // use Q/p linearisation at fQp0 + fvec sgn = iif(fTr.z < z_out, fvec(1.), fvec(-1.)); while (!(w * abs(z_out - fTr.z) <= fvec(1.e-6)).isFull()) { fvec zNew = fTr.z + sgn * fvec(50.); // max. 50 cm step zNew(sgn * (z_out - zNew) <= fvec(0.)) = z_out; - ExtrapolateStep(zNew, qp0, F, w); + ExtrapolateStep(zNew, F, w); } } void L1TrackParFit::ExtrapolateStep // extrapolates track parameters and returns jacobian for extrapolation of CovMatrix (fvec z_out, // extrapolate to this z position - fvec qp0, // use Q/p linearisation at this value const L1FieldRegion& F, const fvec& w) { + // use Q/p linearisation at fQp0 + // // Forth-order Runge-Kutta method for solution of the equation // of motion of a particle with parameter qp = Q /P @@ -407,7 +409,7 @@ void fvec L2i = fvec(1.) / L2; fvec L = sqrt(L2); fvec cL = c_light * L; - fvec cLqp0 = cL * qp0; + fvec cLqp0 = cL * fQp0; f0[step] = tx; f1[step] = ty; @@ -425,11 +427,11 @@ void f3_qp[step] = cL * f3tmp; fvec m2 = fMass2; - fvec vi = sqrt(fvec(1.) + m2 * qp0 * qp0) / fvec(29.9792458f); + fvec vi = sqrt(fvec(1.) + m2 * fQp0 * fQp0) / fvec(29.9792458f); f4[step] = vi * L; f4_tx[step] = vi * tx / L; f4_ty[step] = vi * ty / L; - f4_qp[step] = (m2 * qp0) * (L / sqrt(fvec(1.) + m2 * qp0 * qp0) / fvec(29.9792458f)); + f4_qp[step] = (m2 * fQp0) * (L / sqrt(fvec(1.) + m2 * fQp0 * fQp0) / fvec(29.9792458f)); k[step + 1][0] = f0[step]; k[step + 1][1] = f1[step]; @@ -519,7 +521,7 @@ void fvec Jt[5] = {0., 0., 0., 0., 1.}; // D new { x,y,tx,ty,t } / D old t { // update parameters - fvec dqp = qp_in - qp0; + fvec dqp = qp_in - fQp0; fTr.x += Jqp[0] * dqp; fTr.y += Jqp[1] * dqp; fTr.tx += Jqp[2] * dqp; @@ -658,12 +660,12 @@ void void L1TrackParFit:: ExtrapolateStepAnalytic // extrapolates track parameters and returns jacobian for extrapolation of CovMatrix (fvec z_out, // extrapolate to this z position - fvec qp0, // use Q/p linearisation at this value const L1FieldRegion& F, const fvec& w) { // // Part of the analytic extrapolation formula with error (c_light*B*dz)^4/4! // + // use Q/p linearisation at fQp0 // TODO: the time parameter is not extrapolated! @@ -714,7 +716,7 @@ void L1TrackParFit:: const fvec t2 = c1 + xx + yy; const fvec t = sqrt(t2); - const fvec h = qp0 * c_light; + const fvec h = fQp0 * c_light; const fvec ht = h * t; // get field integrals @@ -847,7 +849,7 @@ void L1TrackParFit:: const fvec ctdz = c_light * t * dz; const fvec ctdz2 = c_light * t * dz2; - const fvec dqp = qp - qp0; + const fvec dqp = qp - fQp0; const fvec t2i = c1 / t2; const fvec xt2i = x * t2i; const fvec yt2i = y * t2i; @@ -925,10 +927,11 @@ void L1TrackParFit:: void L1TrackParFit::ExtrapolateLine(fvec z_out, const L1FieldRegion& F, const fvec& w) { // extrapolate the track assuming fQp0 == 0 + // TODO: write special simplified procedure // auto qp0 = fQp0; fQp0 = fvec(0.); - Extrapolate(z_out, fQp0, F, w); + Extrapolate(z_out, F, w); fQp0 = qp0; } diff --git a/reco/L1/L1Algo/L1TrackParFit.h b/reco/L1/L1Algo/L1TrackParFit.h index 3a85a17f20469329d87a90de9f4e50ac88c54c6b..106a3b2ec5e7183e8a8195e5cb197adbba61549e 100644 --- a/reco/L1/L1Algo/L1TrackParFit.h +++ b/reco/L1/L1Algo/L1TrackParFit.h @@ -65,9 +65,10 @@ public: void FilterExtrapolatedXY(const fvec& x, const fvec& y, const L1XYMeasurementInfo& info, const fvec& extrX, const fvec& extrY, const fvec Jx[6], const fvec Jy[6]); - void Extrapolate(fvec z_out, fvec qp0, const L1FieldRegion& F, const fvec& w); - void ExtrapolateStep(fvec z_out, fvec qp0, const L1FieldRegion& F, const fvec& w); - void ExtrapolateStepAnalytic(fvec z_out, fvec qp0, const L1FieldRegion& F, const fvec& w); + void Extrapolate(fvec z_out, const L1FieldRegion& F, const fvec& w); + + void ExtrapolateStep(fvec z_out, const L1FieldRegion& F, const fvec& w); + void ExtrapolateStepAnalytic(fvec z_out, const L1FieldRegion& F, const fvec& w); void ExtrapolateLine(fvec z_out, const fvec& w); void ExtrapolateLine(fvec z_out, const L1FieldRegion& F, const fvec& w); diff --git a/reco/L1/ParticleFinder/CbmL1PFFitter.cxx b/reco/L1/ParticleFinder/CbmL1PFFitter.cxx index b5f16dc2d222d99c2d2b9c52c139407b00c180c9..3cfbf8665c5f155a8289a1f91239dafeb2e69a75 100644 --- a/reco/L1/ParticleFinder/CbmL1PFFitter.cxx +++ b/reco/L1/ParticleFinder/CbmL1PFFitter.cxx @@ -323,7 +323,7 @@ void CbmL1PFFitter::Fit(vector<CbmStsTrack>& Tracks, vector<int>& pidHypo) fvec w1 = iif(initialised, w[i], fvec::Zero()); fvec wIn = iif(initialised, fvec::One(), fvec::Zero()); - fit.Extrapolate(z[i], fit.fQp0, fld, w1); + fit.Extrapolate(z[i], fld, w1); auto radThick = CbmL1::Instance()->fpAlgo->GetParameters()->GetMaterialThickness(i, fit.fTr.x, fit.fTr.y); fit.Filter(sta[i].frontInfo, u[i], du2[i], w1); fit.Filter(sta[i].backInfo, v[i], dv2[i], w1); @@ -392,7 +392,7 @@ void CbmL1PFFitter::Fit(vector<CbmStsTrack>& Tracks, vector<int>& pidHypo) fvec w1 = iif(initialised, w[i], fvec::Zero()); fvec wIn = iif(initialised, fvec::One(), fvec::Zero()); - fit.Extrapolate(z[i], fit.fQp0, fld, w1); + fit.Extrapolate(z[i], fld, w1); auto radThick = CbmL1::Instance()->fpAlgo->GetParameters()->GetMaterialThickness(i, fit.fTr.x, fit.fTr.y); fit.Filter(sta[i].frontInfo, u[i], du2[i], w1); fit.Filter(sta[i].backInfo, v[i], dv2[i], w1); @@ -556,12 +556,12 @@ void CbmL1PFFitter::GetChiToVertex(vector<CbmStsTrack>& Tracks, vector<PFFieldRe fvec w = iif(T.z > (zSta[iSt] + fvec(2.5)), fvec::One(), fvec::Zero()); - fit.Extrapolate(zSta[iSt], fit.fQp0, fld, w); + fit.Extrapolate(zSta[iSt], fld, w); auto radThick = CbmL1::Instance()->fpAlgo->GetParameters()->GetMaterialThickness(iSt, fit.fTr.x, fit.fTr.y); fit.AddMsInMaterial(radThick, fit.fQp0, w); fit.EnergyLossCorrection(radThick, fit.fQp0, fvec::One(), w); } - fit.Extrapolate(primVtx.GetRefZ(), fit.fQp0, fld, fvec::One()); + fit.Extrapolate(primVtx.GetRefZ(), fld, fvec::One()); fit.AddMsInMaterial(fit.GetTargetRadThick(), fit.fQp0, fvec::One()); fit.EnergyLossCorrection(fit.GetTargetRadThick(), fit.fQp0, fvec::One(), fvec::One());