diff --git a/reco/L1/L1Algo/L1CATrackFinder.cxx b/reco/L1/L1Algo/L1CATrackFinder.cxx
index 427a5c1b4460b6845bccf36e7214af43f63cc79c..8e909cf55803d43a31cc78d6a9c99e65f2c4ee46 100644
--- a/reco/L1/L1Algo/L1CATrackFinder.cxx
+++ b/reco/L1/L1Algo/L1CATrackFinder.cxx
@@ -213,15 +213,21 @@ inline void L1Algo::findSingletsStep1(  /// input 1st stage of singlet search
   const L1Station& fld1Sta1 = fParameters.GetStation(fld1Ista1);
   const L1Station& fld1Sta2 = fParameters.GetStation(fld1Ista2);
 
-  L1Fit fit;
+  L1Fit fitOld;
+  L1TrackParFit fit;
+  fit.fQp0 = fvec(0.);
 
-  if (fpCurrentIteration->GetElectronFlag()) { fit.SetParticleMass(L1Constants::phys::kElectronMass); }
+  if (fpCurrentIteration->GetElectronFlag()) {
+    fitOld.SetParticleMass(L1Constants::phys::kElectronMass);
+    fit.SetParticleMass(L1Constants::phys::kElectronMass);
+  }
   else {
+    fitOld.SetParticleMass(fDefaultMass);
     fit.SetParticleMass(fDefaultMass);
   }
 
   for (int i1_V = 0; i1_V < n1_V; i1_V++) {
-    L1TrackPar& T = T_1[i1_V];
+    L1TrackPar& T = fit1.fTr;
 
     // field made by  the left hit, the target and the station istac in-between.
     // is used for extrapolation to the target and to the middle hit
@@ -311,15 +317,15 @@ inline void L1Algo::findSingletsStep1(  /// input 1st stage of singlet search
     //assert(T.IsConsistent(true, -1));
 
     if (kMcbm == fTrackingMode) {
-      fit.L1AddThickMaterial(T, fParameters.GetMaterialThickness(istal, T.x, T.y), fMaxInvMom, fvec::One(),
-                             stal.fZthick, 1);
+      fitOld.L1AddThickMaterial(T, fParameters.GetMaterialThickness(istal, T.x, T.y), fMaxInvMom, fvec::One(),
+                                stal.fZthick, 1);
     }
     else {
-      fit.L1AddMaterial(T, fParameters.GetMaterialThickness(istal, T.x, T.y), fMaxInvMom, fvec::One());
+      fitOld.L1AddMaterial(T, fParameters.GetMaterialThickness(istal, T.x, T.y), fMaxInvMom, fvec::One());
     }
 
     //if ((istam >= fNstationsBeforePipe) && (istal <= fNstationsBeforePipe - 1)) {
-    //fit.L1AddPipeMaterial(T, fMaxInvMom, fvec::One());
+    //fitOld.L1AddPipeMaterial(T, fMaxInvMom, fvec::One());
     //}
 
     fvec dz = stam.fZ - zl;
@@ -327,7 +333,7 @@ inline void L1Algo::findSingletsStep1(  /// input 1st stage of singlet search
 
     // extrapolate to the middle hit
     L1Extrapolate0(T, stam.fZ, fld0);
-
+    T_1[i1_V] = T;
   }  // i1_V
 }
 
@@ -505,7 +511,9 @@ inline void L1Algo::findTripletsStep0(  // input
   L1TrackPar_0.C55 = 1.f;
   */
 
-  L1Fit fit;
+  L1Fit fitOld;
+  L1TrackParFit fit;
+  fitOld.SetParticleMass(fDefaultMass);
   fit.SetParticleMass(fDefaultMass);
 
   n3          = 0;
@@ -527,7 +535,8 @@ inline void L1Algo::findTripletsStep0(  // input
   // ---- Add the middle hits to parameters estimation. Propagate to right station. ----
 
   for (Tindex i2 = 0; i2 < n2;) {
-    L1TrackPar T2 = L1TrackPar_0;
+    L1TrackPar& T2 = fit.fTr;
+    T2             = L1TrackPar_0;
     L1FieldRegion f2;
     // pack the data
     fvec u_front_2 = 0.f;
@@ -588,17 +597,17 @@ inline void L1Algo::findTripletsStep0(  // input
     FilterTime(T2, t_2, dt2_2, stam.timeInfo);
 
     if (kMcbm == fTrackingMode) {
-      fit.L1AddThickMaterial(T2, fParameters.GetMaterialThickness(iStaM, T2.x, T2.y), fMaxInvMom, fvec::One(),
-                             stam.fZthick, 1);
+      fitOld.L1AddThickMaterial(T2, fParameters.GetMaterialThickness(iStaM, T2.x, T2.y), fMaxInvMom, fvec::One(),
+                                stam.fZthick, 1);
     }
     else if (kGlobal == fTrackingMode) {
-      fit.L1AddMaterial(T2, fParameters.GetMaterialThickness(iStaM, T2.x, T2.y), fMaxInvMom, fvec::One());
+      fitOld.L1AddMaterial(T2, fParameters.GetMaterialThickness(iStaM, T2.x, T2.y), fMaxInvMom, fvec::One());
     }
     else {
-      fit.L1AddMaterial(T2, fParameters.GetMaterialThickness(iStaM, T2.x, T2.y), T2.qp, fvec::One());
+      fitOld.L1AddMaterial(T2, fParameters.GetMaterialThickness(iStaM, T2.x, T2.y), T2.qp, fvec::One());
     }
 
-    //if ((iStaR >= fNstationsBeforePipe) && (iStaM <= fNstationsBeforePipe - 1)) { fit.L1AddPipeMaterial(T2, T2.qp, 1); }
+    //if ((iStaR >= fNstationsBeforePipe) && (iStaM <= fNstationsBeforePipe - 1)) { fitOld.L1AddPipeMaterial(T2, T2.qp, 1); }
 
     fvec dz2 = star.fZ - T2.z;
     L1ExtrapolateTime(T2, dz2, stam.timeInfo);