diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx
index 7f6c60d73e8491834221eb9fa1c060c3740ce8e0..6e430593537c0e1da6540e4d45312d5e9795f03f 100644
--- a/reco/L1/CbmL1.cxx
+++ b/reco/L1/CbmL1.cxx
@@ -188,6 +188,8 @@ InitStatus CbmL1::Init()
   fpAlgo->Init(fUseHitErrors, fTrackingMode, fMissingHits);
 
   fHistoDir = gROOT->mkdir("L1");
+  fHistoDir->mkdir("Input");
+  fHistoDir->mkdir("Fit");
 
 
   // turn on reconstruction in sub-detectors
@@ -215,7 +217,7 @@ InitStatus CbmL1::Init()
 
 
   if (L1Algo::TrackingMode::kGlobal == fTrackingMode) {
-    //SGtrd2D!!
+    //at the moment trd2d tracking only
     fUseMVD  = 0;
     fUseSTS  = 0;
     fUseMUCH = 0;
@@ -1022,15 +1024,11 @@ void CbmL1::Reconstruct(CbmEvent* event)
       L1FieldValue b = fpAlgo->GetParameters()->GetVertexFieldValue();
 
       if ((fabs(b.x[0]) < 0.0000001) && (fabs(b.y[0]) < 0.0000001) && (fabs(b.z[0]) < 0.0000001)) {
+        // no field
         fpAlgo->KFTrackFitter_simple();
       }
       else {
-        if (L1Algo::TrackingMode::kGlobal == fTrackingMode || L1Algo::TrackingMode::kMcbm == fTrackingMode) {
-          fpAlgo->L1KFTrackFitterMuch();
-        }
-        else {
-          fpAlgo->L1KFTrackFitter();
-        }
+        fpAlgo->L1KFTrackFitter();
       }
     }
 
diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx
index 904a756bd3cc85bbc4245193998839103da719d7..559285ec3ef0d9b566a53b0a54fb129c9c05ebf1 100644
--- a/reco/L1/CbmL1Performance.cxx
+++ b/reco/L1/CbmL1Performance.cxx
@@ -1107,7 +1107,6 @@ void CbmL1::TrackFitPerformance()
 
     TDirectory* currentDir = gDirectory;
     gDirectory             = fHistoDir;
-    gDirectory->mkdir("Fit");
     gDirectory->cd("Fit");
     {
       PRes2D     = new TH2F("PRes2D", "Resolution P vs P [100%]", 100, 0., 20., 100, -.15, .15);
@@ -1184,6 +1183,11 @@ void CbmL1::TrackFitPerformance()
                                  {"t", "Residual T [ns]", 100, -10., 10.},
                                  {"pt", "Pull T [residual/estimated_error]", 100, -6., 6.}};
 
+      if (L1Algo::kGlobal == fpAlgo->fTrackingMode) {
+        TableVertex[4].l = -1.;
+        TableVertex[4].r = 1.;
+      }
+
       for (int i = 0; i < Nh_fit; i++) {
         char n[225], t[255];
         sprintf(n, "fst_%s", Table[i].name);
@@ -1826,7 +1830,6 @@ void CbmL1::InputPerformance()
 
     TDirectory* currentDir = gDirectory;
     gDirectory             = fHistoDir;
-    gDirectory->mkdir("Input");
     gDirectory->cd("Input");
     gDirectory->mkdir("STS");
     gDirectory->cd("STS");
diff --git a/reco/L1/L1Algo/L1Extrapolation.cxx b/reco/L1/L1Algo/L1Extrapolation.cxx
index 73174f8d406eba33d33265b3cc43650e5cc51bec..cbb081f5697dc221dd5312da580cea9379cdecda 100644
--- a/reco/L1/L1Algo/L1Extrapolation.cxx
+++ b/reco/L1/L1Algo/L1Extrapolation.cxx
@@ -19,7 +19,7 @@ void L1Extrapolate  // extrapolates track parameters and returns jacobian for ex
   (L1TrackPar& T,   // input track parameters (x,y,tx,ty,Q/p) and cov.matrix
    fvec z_out,      // extrapolate to this z position
    fvec qp0,        // use Q/p linearisation at this value
-   const L1FieldRegion& F, fvec* w)
+   const L1FieldRegion& F, const fvec* w)
 {
   L1ExtrapolateRungeKutta(T, z_out, qp0, F, w);
   //L1ExtrapolateAnalytic(T, z_out, qp0, F, w);
diff --git a/reco/L1/L1Algo/L1Extrapolation.h b/reco/L1/L1Algo/L1Extrapolation.h
index 4887f7769fc315681ced4d096b0011ae0664bf1d..f4ec3a4b5c8d5d8c53afe178ee69f9dd2dcee3a0 100644
--- a/reco/L1/L1Algo/L1Extrapolation.h
+++ b/reco/L1/L1Algo/L1Extrapolation.h
@@ -13,7 +13,7 @@ void L1Extrapolate  // extrapolates track parameters and returns jacobian for ex
   (L1TrackPar& T,   // input track parameters (x,y,tx,ty,Q/p) and cov.matrix
    fvec z_out,      // extrapolate to this z position
    fvec qp0,        // use Q/p linearisation at this value
-   const L1FieldRegion& F, fvec* w = nullptr);
+   const L1FieldRegion& F, const fvec* w = nullptr);
 
 void L1Extrapolate0(L1TrackPar& T,  // input track parameters (x,y,tx,ty,Q/p) and cov.matrix
                     fvec z_out,     // extrapolate to this z position
diff --git a/reco/L1/L1Algo/L1TrackPar.h b/reco/L1/L1Algo/L1TrackPar.h
index a6e838a490b09b4b7c756cf54730a8e7606c85d6..75b1d4ec2b03a4b3bb361ce166e75fde43009142 100644
--- a/reco/L1/L1Algo/L1TrackPar.h
+++ b/reco/L1/L1Algo/L1TrackPar.h
@@ -112,7 +112,8 @@ public:
 
 inline void L1TrackPar::Print(int i) const
 {
-  // std::cout.setf(std::ios::scientific, std::ios::floatfield);
+  std::ios_base::fmtflags coutFlags(std::cout.flags());
+  std::cout.setf(std::ios::scientific, std::ios::floatfield);
   if (i == -1) {
     std::cout << "T = " << std::endl;
     std::cout << " x " << x << std::endl;
@@ -148,6 +149,7 @@ inline void L1TrackPar::Print(int i) const
     std::cout << " c55 " << C55[i] << std::endl;
   }
   PrintCorrelations(i);
+  std::cout.flags( coutFlags );
 }
 
 inline void L1TrackPar::PrintCorrelations(int i) const