diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx
index 87090be90e3134b64402b37088421a74676e5734..07d4b2f03fd3ce5dd36f2cdbd01f7c4bff5b6fd5 100644
--- a/reco/L1/CbmL1Performance.cxx
+++ b/reco/L1/CbmL1Performance.cxx
@@ -1417,8 +1417,9 @@ void CbmL1::TrackFitPerformance()
                                          && (dir * (mc.z - fpAlgo->GetParameters()->GetStation(iSta).fZ[0]) > 0);
                iSta += dir) {
             //           cout << iSta << " " << dir << endl;
-            fit.AddMsInMaterial(fpAlgo->GetParameters()->GetMaterialThickness(iSta, fit.fTr.x, fit.fTr.y), fit.fQp0,
-                                fvec::One());
+            auto radThick = fpAlgo->GetParameters()->GetMaterialThickness(iSta, fit.fTr.x, fit.fTr.y);
+            fit.AddMsInMaterial(radThick, fvec::One());
+            fit.EnergyLossCorrection(radThick, fvec::One(), fvec::One());
           }
         }
         if (mc.z != tr.z[0]) continue;
@@ -1471,10 +1472,9 @@ void CbmL1::TrackFitPerformance()
 
             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.AddMsInMaterial(fpAlgo->GetParameters()->GetMaterialThickness(iSta, fit.fTr.x, fit.fTr.y), fvec::One());
             fit.EnergyLossCorrection(fpAlgo->GetParameters()->GetMaterialThickness(iSta, fit.fTr.x, fit.fTr.y),
-                                     fit.fQp0, fvec::One(), fvec::One());
+                                     fvec::One(), fvec::One());
           }
           fit.Extrapolate(mc.z, fld, fvec::One());
         }
diff --git a/reco/L1/L1Algo/L1BranchExtender.cxx b/reco/L1/L1Algo/L1BranchExtender.cxx
index 7c912c2c6fbed9e033da67c9d5d12bbb1280b75f..7434fdebe4df1008632e1f87ff107ca98162cb9f 100644
--- a/reco/L1/L1Algo/L1BranchExtender.cxx
+++ b/reco/L1/L1Algo/L1BranchExtender.cxx
@@ -123,7 +123,9 @@ void L1Algo::BranchFitterFast(const L1Branch& t, L1TrackPar& Tout, const bool di
     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);
-    fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista, T.x, T.y), fit.fQp0, fvec::One());
+    auto radThick = fParameters.GetMaterialThickness(ista, T.x, T.y);
+    fit.AddMsInMaterial(radThick, fvec::One());
+    fit.EnergyLossCorrection(radThick, fvec(-1.f), fvec::One());
 
     fldB0       = fldB1;
     fldB1       = fldB2;
@@ -292,7 +294,9 @@ void L1Algo::FindMoreHits(L1Branch& t, L1TrackPar& Tout, const bool dir,
     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);
-    fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista, fit.fTr.x, fit.fTr.y), fit.fQp0, fvec::One());
+    auto radThick = fParameters.GetMaterialThickness(ista, fit.fTr.x, fit.fTr.y);
+    fit.AddMsInMaterial(radThick, fvec::One());
+    fit.EnergyLossCorrection(radThick, dir ? fvec(1.f) : fvec(-1.f), fvec::One());
 
     fldB0 = fldB1;
     fldB1 = fldB2;
diff --git a/reco/L1/L1Algo/L1CATrackFinder.cxx b/reco/L1/L1Algo/L1CATrackFinder.cxx
index 0fadecf1e87297f62289b512b0bde42d7d3fb7af..a64086dce0dffdcfa747ee1c74dc94e195dc29aa 100644
--- a/reco/L1/L1Algo/L1CATrackFinder.cxx
+++ b/reco/L1/L1Algo/L1CATrackFinder.cxx
@@ -214,7 +214,7 @@ inline void L1Algo::findSingletsStep1(  /// input 1st stage of singlet search
   L1TrackParFit fit;
   fit.SetParticleMass(GetDefaultParticleMass());
 
-  fit.fQp0 = fvec(0.);
+  fit.fQp0 = fMaxInvMom;
 
   if (fpCurrentIteration->GetElectronFlag()) { fit.SetParticleMass(L1Constants::phys::kElectronMass); }
   else {
@@ -265,14 +265,13 @@ inline void L1Algo::findSingletsStep1(  /// input 1st stage of singlet search
     // TODO: iteration parameter: "Starting NDF of track parameters"
     // NDF = number of track parameters (6: x, y, tx, ty, qp, time) - number of measured parameters (3: x, y, time) on station or (2: x, y) on target
 
-    T.x      = xl;
-    T.y      = yl;
-    T.z      = zl;
-    T.tx     = tx;
-    T.ty     = ty;
-    T.qp     = fvec(0.);
-    T.t      = time;
-    fit.fQp0 = fvec(0.);
+    T.x  = xl;
+    T.y  = yl;
+    T.z  = zl;
+    T.tx = tx;
+    T.ty = ty;
+    T.qp = fvec(0.);
+    T.t  = time;
 
     T.C20 = T.C21 = fvec(0.);
     T.C30 = T.C31 = T.C32 = fvec(0.);
@@ -295,7 +294,7 @@ inline void L1Algo::findSingletsStep1(  /// input 1st stage of singlet search
       fit.AddTargetToLine(fTargX, fTargY, fTargZ, TargetXYInfo, fld0);
     }
 
-    fit.AddMsInMaterial(fParameters.GetMaterialThickness(istal, T.x, T.y), fMaxInvMom, fvec::One());
+    fit.AddMsInMaterial(fParameters.GetMaterialThickness(istal, T.x, T.y), fvec::One());
 
     // extrapolate to the middle hit
 
@@ -617,13 +616,11 @@ inline void L1Algo::findTripletsStep0(  // input
     fit.Filter(stam.backInfo, u_back_2, dv2_2, fvec::One());
     fit.FilterTime(t_2, dt2_2, fvec::One(), stam.timeInfo);
 
-    fit.fQp0 = fit.fTr.qp;
-
-    fit.AddMsInMaterial(fParameters.GetMaterialThickness(iStaM, T2.x, T2.y), isMomentumFitted ? fit.fQp0 : fMaxInvMom,
-                        fvec::One());
+    fit.fQp0 = isMomentumFitted ? fit.fTr.qp : fMaxInvMom;
 
+    fit.AddMsInMaterial(fParameters.GetMaterialThickness(iStaM, T2.x, T2.y), fvec::One());
 
-    //if ((iStaR >= fNstationsBeforePipe) && (iStaM <= fNstationsBeforePipe - 1)) { fit.L1AddPipeMaterial(T2, T2.qp, 1); }
+    fit.fQp0 = fit.fTr.qp;
 
     // extrapolate to the right hit station
 
@@ -958,7 +955,9 @@ inline void L1Algo::findTripletsStep2(Tindex n3, int istal, int istam, int istar
 
         for (int ih = 1; ih < NHits; ++ih) {
           fit.Extrapolate(z[ih], fld, fvec::One());
-          fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista[ih], T.x, T.y), fit.fQp0, fvec::One());
+          auto radThick = fParameters.GetMaterialThickness(ista[ih], T.x, T.y);
+          fit.AddMsInMaterial(radThick, fvec::One());
+          fit.EnergyLossCorrection(radThick, fvec(-1.f), 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);
@@ -990,7 +989,9 @@ inline void L1Algo::findTripletsStep2(Tindex n3, int istal, int istam, int istar
 
         for (int ih = NHits - 2; ih >= 0; --ih) {
           fit.Extrapolate(z[ih], fld, fvec::One());
-          fit.AddMsInMaterial(fParameters.GetMaterialThickness(ista[ih], T.x, T.y), fit.fQp0, fvec::One());
+          auto radThick = fParameters.GetMaterialThickness(ista[ih], T.x, T.y);
+          fit.AddMsInMaterial(radThick, fvec::One());
+          fit.EnergyLossCorrection(radThick, fvec(1.f), 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);
diff --git a/reco/L1/L1Algo/L1TrackFitter.cxx b/reco/L1/L1Algo/L1TrackFitter.cxx
index a07fa6e64f7a86c101dc1416ff5d97fcf2aab7fb..d9bed492b92e930d9ca1c406a2f74c3333d70ead 100644
--- a/reco/L1/L1Algo/L1TrackFitter.cxx
+++ b/reco/L1/L1Algo/L1TrackFitter.cxx
@@ -258,14 +258,10 @@ void L1Algo::L1KFTrackFitter()
         fld1 = fld;
 
         fit.Extrapolate(z[ista], fld1, 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.AddMsInMaterial(fParameters.GetMaterialThickness(ista, tr.x, tr.y), wExtr);
+        fit.EnergyLossCorrection(fParameters.GetMaterialThickness(ista, tr.x, tr.y), fvec(1.f), wExtr);
         fit.Filter(sta[ista].frontInfo, u[ista], du2[ista], w1);
         fit.Filter(sta[ista].backInfo, v[ista], dv2[ista], w1);
-
         fit.FilterTime(time[ista], dt2[ista], w1_time, sta[ista].timeInfo);
 
 
@@ -406,10 +402,8 @@ void L1Algo::L1KFTrackFitter()
         fvec wExtr        = iif(initialised, fvec::One(), fvec::Zero());
 
         fit.Extrapolate(z[ista], fld, w1);
-
-        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.AddMsInMaterial(fParameters.GetMaterialThickness(ista, tr.x, tr.y), wExtr);
+        fit.EnergyLossCorrection(fParameters.GetMaterialThickness(ista, tr.x, tr.y), fvec(-1.f), wExtr);
         fit.Filter(sta[ista].frontInfo, u[ista], du2[ista], w1);
         fit.Filter(sta[ista].backInfo, v[ista], dv2[ista], w1);
         fit.FilterTime(time[ista], dt2[ista], w1_time, sta[ista].timeInfo);
diff --git a/reco/L1/L1Algo/L1TrackParFit.cxx b/reco/L1/L1Algo/L1TrackParFit.cxx
index 27b328619e347a5aab6792317693e7d9df81a977..d595db3e3e35e3ac8eb0a6f41edec2a7bebdada2 100644
--- a/reco/L1/L1Algo/L1TrackParFit.cxx
+++ b/reco/L1/L1Algo/L1TrackParFit.cxx
@@ -993,7 +993,7 @@ void L1TrackParFit::ExtrapolateLine(fvec z_out, const fvec& w)
 }
 
 
-void L1TrackParFit::AddMsInMaterial(const fvec& radThick, fvec qp0, fvec w)
+void L1TrackParFit::AddMsInMaterial(const fvec& radThick, fvec w)
 {
   cnst ONE = 1.;
 
@@ -1005,20 +1005,20 @@ void L1TrackParFit::AddMsInMaterial(const fvec& radThick, fvec qp0, fvec w)
   fvec h     = txtx + tyty;
   fvec t     = sqrt(txtx1 + tyty);
   fvec h2    = h * h;
-  fvec qp0t  = qp0 * t;
+  fvec qp0t  = fQp0 * t;
 
   cnst c1 = 0.0136f, c2 = c1 * 0.038f, c3 = c2 * 0.5f, c4 = -c3 / 2.0f, c5 = c3 / 3.0f, c6 = -c3 / 4.0f;
 
   fvec s0 = (c1 + c2 * log(radThick) + c3 * h + h2 * (c4 + c5 * h + c6 * h2)) * qp0t;
   //fvec a = ( (ONE+mass2*qp0*qp0t)*radThick*s0*s0 );
-  fvec a = ((t + fMass2 * qp0 * qp0t) * radThick * s0 * s0);
+  fvec a = ((t + fMass2 * fQp0 * qp0t) * radThick * s0 * s0);
 
   fTr.C22 += w * txtx1 * a;
   fTr.C32 += w * tx * ty * a;
   fTr.C33 += w * (ONE + tyty) * a;
 }
 
-void L1TrackParFit::AddMsInThickMaterial(fvec radThick, fvec qp0, fvec w, fvec thickness, bool fDownstream)
+void L1TrackParFit::AddMsInThickMaterial(fvec radThick, fvec w, fvec thickness, bool fDownstream)
 {
   cnst ONE = 1.;
 
@@ -1030,14 +1030,14 @@ void L1TrackParFit::AddMsInThickMaterial(fvec radThick, fvec qp0, fvec w, fvec t
   fvec h     = txtx + tyty;
   fvec t     = sqrt(txtx1 + tyty);
   fvec h2    = h * h;
-  fvec qp0t  = qp0 * t;
+  fvec qp0t  = fQp0 * t;
 
   cnst c1(0.0136), c2 = c1 * fvec(0.038), c3 = c2 * fvec(0.5), c4 = -c3 / fvec(2.0), c5 = c3 / fvec(3.0),
                    c6 = -c3 / fvec(4.0);
 
   fvec s0 = (c1 + c2 * log(radThick) + c3 * h + h2 * (c4 + c5 * h + c6 * h2)) * qp0t;
   //fvec a = ( (ONE+mass2*qp0*qp0t)*radThick*s0*s0 );
-  fvec a = ((t + fMass2 * qp0 * qp0t) * radThick * s0 * s0);
+  fvec a = ((t + fMass2 * fQp0 * qp0t) * radThick * s0 * s0);
 
   fvec D   = (fDownstream) ? fvec(1.) : fvec(-1.);
   fvec T23 = (thickness * thickness) / fvec(3.0);
@@ -1058,10 +1058,10 @@ void L1TrackParFit::AddMsInThickMaterial(fvec radThick, fvec qp0, fvec w, fvec t
 }
 
 
-void L1TrackParFit::EnergyLossCorrection(const fvec& radThick, fvec& qp0, fvec direction, fvec w)
+void L1TrackParFit::EnergyLossCorrection(const fvec& radThick, fvec upstreamDirection, fvec w)
 {
   const fvec qp2cut(1. / (10. * 10.));  // 10 GeV cut
-  const fvec qp02 = max(qp0 * qp0, qp2cut);
+  const fvec qp02 = max(fQp0 * fQp0, qp2cut);
   const fvec p2   = fvec(1.) / qp02;
   const fvec E2   = fMass2 + p2;
 
@@ -1071,12 +1071,14 @@ void L1TrackParFit::EnergyLossCorrection(const fvec& radThick, fvec& qp0, fvec d
 
   const fvec dE = bethe * radThick * tr * 2.33f * 9.34961f;
 
-  const fvec E2Corrected = (sqrt(E2) + direction * dE) * (sqrt(E2) + direction * dE);
-  fvec corr              = sqrt(p2 / (E2Corrected - fMass2));
-  fmask ok               = (corr == corr) & (fvec::Zero() < w);
-  corr                   = iif(ok, corr, fvec::One());
+  const fvec ECorrected  = sqrt(E2) + upstreamDirection * dE;
+  const fvec E2Corrected = ECorrected * ECorrected;
+
+  fvec corr = sqrt(p2 / (E2Corrected - fMass2));
+  fmask ok  = (corr == corr) & (fvec::Zero() < w);
+  corr      = iif(ok, corr, fvec::One());
 
-  qp0 *= corr;
+  fQp0 *= corr;
   fTr.qp *= corr;
   fTr.C40 *= corr;
   fTr.C41 *= corr;
@@ -1087,11 +1089,11 @@ void L1TrackParFit::EnergyLossCorrection(const fvec& radThick, fvec& qp0, fvec d
 }
 
 template<int atomicZ>
-void L1TrackParFit::EnergyLossCorrection(float atomicA, float rho, float radLen, const fvec& radThick, fvec& qp0,
-                                         fvec direction, fvec w)
+void L1TrackParFit::EnergyLossCorrection(float atomicA, float rho, float radLen, const fvec& radThick, fvec direction,
+                                         fvec w)
 {
   const fvec qp2cut(1. / (10. * 10.));  // 10 GeV cut
-  const fvec qp02 = max(qp0 * qp0, qp2cut);
+  const fvec qp02 = max(fQp0 * fQp0, qp2cut);
   const fvec p2   = fvec(1.) / qp02;
   const fvec E2   = fMass2 + p2;
 
@@ -1111,7 +1113,7 @@ void L1TrackParFit::EnergyLossCorrection(float atomicA, float rho, float radLen,
   fmask ok               = (corr == corr) & (fvec::Zero() < w);
   corr                   = iif(ok, corr, fvec::One());
 
-  qp0 *= corr;
+  fQp0 *= corr;
   fTr.qp *= corr;
 
   fvec P(sqrt(p2));  // GeV
@@ -1151,32 +1153,32 @@ void L1TrackParFit::EnergyLossCorrection(float atomicA, float rho, float radLen,
 }
 
 
-void L1TrackParFit::EnergyLossCorrectionIron(const fvec& radThick, fvec& qp0, fvec direction, fvec w)
+void L1TrackParFit::EnergyLossCorrectionIron(const fvec& radThick, fvec direction, fvec w)
 {
   constexpr int atomicZ   = 26;
   constexpr float atomicA = 55.845f;
   constexpr float rho     = 7.87;
   constexpr float radLen  = 1.758f;
-  EnergyLossCorrection<atomicZ>(atomicA, rho, radLen, radThick, qp0, direction, w);
+  EnergyLossCorrection<atomicZ>(atomicA, rho, radLen, radThick, direction, w);
 }
 
 
-void L1TrackParFit::EnergyLossCorrectionCarbon(const fvec& radThick, fvec& qp0, fvec direction, fvec w)
+void L1TrackParFit::EnergyLossCorrectionCarbon(const fvec& radThick, fvec direction, fvec w)
 {
   constexpr int atomicZ   = 6;
   constexpr float atomicA = 12.011f;
   constexpr float rho     = 2.265;
   constexpr float radLen  = 18.76f;
-  EnergyLossCorrection<atomicZ>(atomicA, rho, radLen, radThick, qp0, direction, w);
+  EnergyLossCorrection<atomicZ>(atomicA, rho, radLen, radThick, direction, w);
 }
 
-void L1TrackParFit::EnergyLossCorrectionAl(const fvec& radThick, fvec& qp0, fvec direction, fvec w)
+void L1TrackParFit::EnergyLossCorrectionAl(const fvec& radThick, fvec direction, fvec w)
 {
   constexpr int atomicZ   = 13;
   constexpr float atomicA = 26.981f;
   constexpr float rho     = 2.70f;
   constexpr float radLen  = 2.265f;
-  EnergyLossCorrection<atomicZ>(atomicA, rho, radLen, radThick, qp0, direction, w);
+  EnergyLossCorrection<atomicZ>(atomicA, rho, radLen, radThick, direction, w);
 }
 
 void L1TrackParFit::GetExtrapolatedXYline(const fvec& z, const L1FieldRegion& F, fvec& extrX, fvec& extrY, fvec Jx[6],
diff --git a/reco/L1/L1Algo/L1TrackParFit.h b/reco/L1/L1Algo/L1TrackParFit.h
index 106a3b2ec5e7183e8a8195e5cb197adbba61549e..49bcc41c4da063f6916c2309e68cdaea6330c9c0 100644
--- a/reco/L1/L1Algo/L1TrackParFit.h
+++ b/reco/L1/L1Algo/L1TrackParFit.h
@@ -72,19 +72,18 @@ public:
   void ExtrapolateLine(fvec z_out, const fvec& w);
   void ExtrapolateLine(fvec z_out, const L1FieldRegion& F, const fvec& w);
 
-
-  void EnergyLossCorrection(const fvec& radThick, fvec& qp0, fvec direction, fvec w);
+  void EnergyLossCorrection(const fvec& radThick, fvec upstreamDirection, fvec w);
 
   template<int atomicZ>
-  void EnergyLossCorrection(float atomicA, float rho, float radLen, const fvec& radThick, fvec& qp0, fvec direction,
-                            fvec w);
+  void EnergyLossCorrection(float atomicA, float rho, float radLen, const fvec& radThick, fvec direction, fvec w);
+
+  void EnergyLossCorrectionIron(const fvec& radThick, fvec direction, fvec w);
+  void EnergyLossCorrectionCarbon(const fvec& radThick, fvec direction, fvec w);
+  void EnergyLossCorrectionAl(const fvec& radThick, fvec direction, fvec w);
 
-  void EnergyLossCorrectionIron(const fvec& radThick, fvec& qp0, fvec direction, fvec w);
-  void EnergyLossCorrectionCarbon(const fvec& radThick, fvec& qp0, fvec direction, fvec w);
-  void EnergyLossCorrectionAl(const fvec& radThick, fvec& qp0, fvec direction, fvec w);
+  void AddMsInMaterial(const fvec& radThick, fvec w);
 
-  void AddMsInMaterial(const fvec& radThick, fvec qp0, fvec w);
-  void AddMsInThickMaterial(fvec radThick, fvec qp0, fvec w, fvec thickness, bool fDownstream);
+  void AddMsInThickMaterial(fvec radThick, fvec w, fvec thickness, bool fDownstream);
 
   void GetExtrapolatedXYline(const fvec& z, const L1FieldRegion& F, fvec& extrX, fvec& extrY, fvec Jx[6],
                              fvec Jy[6]) const;
diff --git a/reco/L1/ParticleFinder/CbmL1PFFitter.cxx b/reco/L1/ParticleFinder/CbmL1PFFitter.cxx
index 3cfbf8665c5f155a8289a1f91239dafeb2e69a75..1ef9732af5d5d214684a9d2d17094ceb5db51c9a 100644
--- a/reco/L1/ParticleFinder/CbmL1PFFitter.cxx
+++ b/reco/L1/ParticleFinder/CbmL1PFFitter.cxx
@@ -328,8 +328,8 @@ void CbmL1PFFitter::Fit(vector<CbmStsTrack>& Tracks, vector<int>& pidHypo)
       fit.Filter(sta[i].frontInfo, u[i], du2[i], w1);
       fit.Filter(sta[i].backInfo, v[i], dv2[i], w1);
       fit.FilterTime(t[i], dt2[i], w1, sta[i].timeInfo);
-      fit.AddMsInMaterial(radThick, fit.fQp0, wIn);
-      fit.EnergyLossCorrection(radThick, fit.fQp0, -fvec::One(), wIn);
+      fit.AddMsInMaterial(radThick, wIn);
+      fit.EnergyLossCorrection(radThick, -fvec::One(), wIn);
 
       b2 = b1;
       z2 = z1;
@@ -397,8 +397,8 @@ void CbmL1PFFitter::Fit(vector<CbmStsTrack>& Tracks, vector<int>& pidHypo)
       fit.Filter(sta[i].frontInfo, u[i], du2[i], w1);
       fit.Filter(sta[i].backInfo, v[i], dv2[i], w1);
       fit.FilterTime(t[i], dt2[i], w1, sta[i].timeInfo);
-      fit.AddMsInMaterial(radThick, fit.fQp0, wIn);
-      fit.EnergyLossCorrection(radThick, fit.fQp0, fvec::One(), wIn);
+      fit.AddMsInMaterial(radThick, wIn);
+      fit.EnergyLossCorrection(radThick, fvec::One(), wIn);
 
       b2 = b1;
       z2 = z1;
@@ -558,12 +558,12 @@ void CbmL1PFFitter::GetChiToVertex(vector<CbmStsTrack>& Tracks, vector<PFFieldRe
 
       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.AddMsInMaterial(radThick, w);
+      fit.EnergyLossCorrection(radThick, fvec::One(), w);
     }
     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());
+    fit.AddMsInMaterial(fit.GetTargetRadThick(), fvec::One());
+    fit.EnergyLossCorrection(fit.GetTargetRadThick(), fvec::One(), fvec::One());
 
     Double_t Cv[3] = {primVtx.GetCovMatrix()[0], primVtx.GetCovMatrix()[1], primVtx.GetCovMatrix()[2]};