diff --git a/macro/L1/run_reco_L1global.C b/macro/L1/run_reco_L1global.C
index 705e046fe7a6e4ab0f0279c181d5775833117155..0d906f6d254e7a62155e2f7893a7f7128bb563aa 100644
--- a/macro/L1/run_reco_L1global.C
+++ b/macro/L1/run_reco_L1global.C
@@ -396,7 +396,7 @@ void run_reco_L1global(TString input = "", Int_t nTimeSlices = -1, Int_t firstTi
     }
 */
 
-    l1->SetInputConfigName("");
+    //l1->SetInputConfigName("");
     run->AddTask(l1);
     std::cout << "-I- " << myName << ": Added task " << l1->GetName() << std::endl;
 
diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx
index b1768e827998a26a2b619e72e36706b9f9bcf80e..492ad9fba256c2b7dbc0b36e1b2c1561c1abaa45 100644
--- a/reco/L1/CbmL1.cxx
+++ b/reco/L1/CbmL1.cxx
@@ -223,12 +223,12 @@ InitStatus CbmL1::Init()
     fUseMUCH = 0;
     fUseTRD  = 1;
     fUseTOF  = 0;
+
     L1FieldRegion::gkUseOriginalField = true;
     fInitManager.DevSetIgnoreHitSearchAreas(true);
     //fInitManager.DevSetFitSingletsFromTarget(true);
     //fInitManager.DevSetIsMatchDoubletsViaMc(true);
     //fInitManager.DevSetIsMatchTripletsViaMc(true);
-    //fInitManager.DevSetIsMatchNeighbourdViaMc(true);
     fInitManager.SetMaxTripletPerDoublets(1000);
   }
 
@@ -583,9 +583,9 @@ InitStatus CbmL1::Init()
         fscal trdBackPhi    = trdInterface->GetStripsStereoAngleBack(iSt);
         fscal trdFrontSigma = trdInterface->GetStripsSpatialRmsFront(iSt);
         fscal trdBackSigma  = trdInterface->GetStripsSpatialRmsBack(iSt);
-        if (L1Algo::TrackingMode::kGlobal == fTrackingMode) {  //SGtrd2D!!
-          trdFrontSigma = .1;
-          trdBackSigma  = .1;
+        if (L1Algo::TrackingMode::kGlobal == fTrackingMode) {
+          trdFrontSigma = 1.1;
+          trdBackSigma  = 1.1;
           // stationInfo.SetTimeResolution(1.e10);
           stationInfo.SetTimeInfo(false);
         }
@@ -806,24 +806,27 @@ InitStatus CbmL1::Init()
       fInitManager.PushBackCAIteration(trackingIterAllSec);
     }
     else if (L1Algo::TrackingMode::kGlobal == fTrackingMode) {
-      // SGtrd2d!!
 
       // Initialize CA track finder iterations sequence
 
-      auto trd2dIter1 = L1CAIteration("Trd2dIter1");
-      trd2dIter1.SetTrackChi2Cut(7.f);              //10.f
-      trd2dIter1.SetTripletChi2Cut(2 * 23.4450f);   // = 7.815 * 3;  // prob = 0.05
-      trd2dIter1.SetDoubletChi2Cut(4. * 7.56327f);  // = 1.3449 * 2.f / 3.f;  // prob = 0.1
-      trd2dIter1.SetPickGather(3.0f);
-      trd2dIter1.SetPickNeighbour(4.0f);
-      trd2dIter1.SetMaxInvMom(1.0 / 0.05);  //(1.0 / 0.5);
-      trd2dIter1.SetMaxSlopePV(.5f);
-      trd2dIter1.SetMaxSlope(.5f);
-      trd2dIter1.SetMaxDZ(0.05);
-      trd2dIter1.SetTargetPosSigmaXY(1., 1.);  //(1, 1);
-      trd2dIter1.SetMinLevelTripletStart(1);
-      trd2dIter1.SetPrimaryFlag(false);
-      trd2dIter1.SetExtendTracksFlag(false);
+      auto globalIterPrimFast = L1CAIteration("globalIterPrimFast");
+      {
+        auto& it = globalIterPrimFast;
+        it.SetTrackChi2Cut(7.f);              //10.f
+        it.SetTripletChi2Cut(2 * 23.4450f);   // = 7.815 * 3;  // prob = 0.05
+        it.SetDoubletChi2Cut(4. * 7.56327f);  // = 1.3449 * 2.f / 3.f;  // prob = 0.1
+        it.SetPickGather(3.0f);
+        it.SetPickNeighbour(4.0f);
+        it.SetMaxInvMom(1.0 / 0.05);  //(1.0 / 0.5);
+        it.SetMaxSlopePV(.5f);
+        it.SetMaxSlope(.5f);
+        it.SetMaxDZ(0.05);
+        it.SetTargetPosSigmaXY(1., 1.);  //(1, 1);
+        it.SetMinLevelTripletStart(1);
+        it.SetPrimaryFlag(true);
+        it.SetExtendTracksFlag(true);
+        //it.SetFirstStationIndex(11);
+      }
 
       auto trd2dIter2 = L1CAIteration("Trd2dIter2");
       trd2dIter2.SetTrackChi2Cut(7.f);              //10.f
@@ -838,11 +841,14 @@ InitStatus CbmL1::Init()
       trd2dIter2.SetTargetPosSigmaXY(8 * 10, 6 * 10);  //(1, 1);
       trd2dIter2.SetMinLevelTripletStart(0);
       trd2dIter2.SetPrimaryFlag(false);
-      trd2dIter2.SetExtendTracksFlag(false);
+      trd2dIter2.SetExtendTracksFlag(true);
+      //trd2dIter2.SetFirstStationIndex(12);
 
       // Initialize CA track finder iterations sequence
 
       fInitManager.SetCAIterationsNumberCrosscheck(1);
+      //fInitManager.PushBackCAIteration(globalIterPrimFast);
+      fInitManager.PushBackCAIteration(trd2dIter2);
       /*
       fInitManager.SetCAIterationsNumberCrosscheck(5);
       fInitManager.PushBackCAIteration(trackingIterFastPrim);
@@ -850,7 +856,6 @@ InitStatus CbmL1::Init()
       fInitManager.PushBackCAIteration(trackingIterAllPrimJump);
       fInitManager.PushBackCAIteration(trackingIterAllSec);
        */
-      fInitManager.PushBackCAIteration(trd2dIter2);
     }
     else {
       fInitManager.SetCAIterationsNumberCrosscheck(4);
diff --git a/reco/L1/CbmL1Constants.h b/reco/L1/CbmL1Constants.h
index 93e9ccf385d0b103d4fe3ead8c45fa19cf8b7316..6ef8bf3e8800eaab0a2753459583d9864b8580d1 100644
--- a/reco/L1/CbmL1Constants.h
+++ b/reco/L1/CbmL1Constants.h
@@ -9,7 +9,7 @@ namespace CbmL1Constants
 {
   /// Performance constants
   const double MinRecoMom   = 0.1;  // Extra set of tracks = (MinRecoMom, MinRefMom)
-  const double MinRefMom    = 1.;   // Primary set of tracks = (MinRefMom, +inf)  //All reco tracks = (MinRecoMom, +inf)
+  const double MinFastMom   = 1.;   // Primary set of tracks = (MinRefMom, +inf)  //All reco tracks = (MinRecoMom, +inf)
   const double MinPurity    = 0.7;  // min NStationInRecoTrack/NStationInMCTrack
   const double MinNStations = 4.;   // min number of stations in track to be reconstructable
 }  // namespace CbmL1Constants
diff --git a/reco/L1/CbmL1Counters.h b/reco/L1/CbmL1Counters.h
index c50f82730848d7691e079aa0c28d9371f993eb6c..5187502fa6afc2c5754b9a4bcd170e147bebd285 100644
--- a/reco/L1/CbmL1Counters.h
+++ b/reco/L1/CbmL1Counters.h
@@ -203,6 +203,7 @@ inline void TL1Efficiencies::Inc(bool isReco, TString name)
 
 inline void TL1Efficiencies::PrintEff()
 {
+  std::ios_base::fmtflags coutFlags(std::cout.flags());
   std::cout.setf(std::ios::fixed);
   std::cout.setf(std::ios::showpoint);
   std::cout.precision(3);
@@ -219,6 +220,7 @@ inline void TL1Efficiencies::PrintEff()
 
   std::cout << "Clone     probability  : " << ratio_clones << " | " << clones << std::endl;
   std::cout << "Ghost     probability  : " << ratio_ghosts << " | " << ghosts << std::endl;
+  std::cout.flags(coutFlags);
 };
 
 #endif
diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx
index 559285ec3ef0d9b566a53b0a54fb129c9c05ebf1..d073ee2d09408ca00e4bd3f23f2e56260aa956e8 100644
--- a/reco/L1/CbmL1Performance.cxx
+++ b/reco/L1/CbmL1Performance.cxx
@@ -148,13 +148,13 @@ struct TL1PerfEfficiencies : public TL1Efficiencies {
   {
     // add total efficiency
     AddCounter("long_fast_prim", "LongRPrim efficiency");
-    AddCounter("fast_prim", "RefPrim   efficiency");
-    AddCounter("fast_sec", "RefSec    efficiency");
-    AddCounter("fast", "Refset    efficiency");
+    AddCounter("fast_prim", "FastPrim  efficiency");
+    AddCounter("fast_sec", "FastSec   efficiency");
+    AddCounter("fast", "Fastset   efficiency");
     AddCounter("total", "Allset    efficiency");
-    AddCounter("slow_prim", "ExtraPrim efficiency");
-    AddCounter("slow_sec", "ExtraSec  efficiency");
-    AddCounter("slow", "Extra     efficiency");
+    AddCounter("slow_prim", "SlowPrim  efficiency");
+    AddCounter("slow_sec", "SlowSec   efficiency");
+    AddCounter("slow", "Slow      efficiency");
     AddCounter("d0", "D0        efficiency");
     AddCounter("short", "Short123s efficiency");
     AddCounter("shortPion", "Short123s pion   eff");
@@ -163,11 +163,11 @@ struct TL1PerfEfficiencies : public TL1Efficiencies {
     AddCounter("shortE", "Short123s e      eff");
     AddCounter("shortRest", "Short123s rest   eff");
 
-    AddCounter("fast_sec_e", "RefSec  E efficiency");
-    AddCounter("fast_e", "Refset  E efficiency");
+    AddCounter("fast_sec_e", "FastSec E efficiency");
+    AddCounter("fast_e", "Fastset E efficiency");
     AddCounter("total_e", "Allset  E efficiency");
-    AddCounter("slow_sec_e", "ExtraSecE efficiency");
-    AddCounter("slow_e", "Extra   E efficiency");
+    AddCounter("slow_sec_e", "SlowSec E efficiency");
+    AddCounter("slow_e", "Slow    E efficiency");
   }
 
   virtual ~TL1PerfEfficiencies() {};
@@ -383,51 +383,51 @@ void CbmL1::EfficienciesPerformance()
         ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "d0");
       }
 
-      if (mtra.p > CbmL1Constants::MinRefMom) {  // reference tracks
+      if (mtra.p > CbmL1Constants::MinFastMom) {  // fast tracks
         ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "fast");
 
-        if (mtra.IsPrimary()) {                  // reference primary
-          if (mtra.NStations() == fNStations) {  // long reference primary
+        if (mtra.IsPrimary()) {                  // fast primary
+          if (mtra.NStations() == fNStations) {  // long fast primary
             ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "long_fast_prim");
           }
           ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "fast_prim");
         }
-        else {  // reference secondary
+        else {  // fast secondary
           ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "fast_sec");
         }
       }
-      else {  // extra set of tracks
+      else {  // slow set of tracks
         ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "slow");
 
-        if (mtra.IsPrimary()) {  // extra primary
+        if (mtra.IsPrimary()) {  // slow primary
           ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "slow_prim");
         }
         else {
           ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "slow_sec");
         }
-      }  // if extra
+      }  // if slow
 
       if (mtra.pdg == 11 || mtra.pdg == -11) {
         ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "total_e");
 
-        if (mtra.p > CbmL1Constants::MinRefMom) {  // reference tracks
+        if (mtra.p > CbmL1Constants::MinFastMom) {  // fast tracks
           ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "fast_e");
 
-          if (mtra.IsPrimary()) {  // reference primary
+          if (mtra.IsPrimary()) {  // fast primary
           }
-          else {  // reference secondary
+          else {  // fast secondary
             ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "fast_sec_e");
           }
         }
-        else {  // extra set of tracks
+        else {  // slow set of tracks
           ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "slow_e");
 
-          if (mtra.IsPrimary()) {  // extra primary
+          if (mtra.IsPrimary()) {  // slow primary
           }
           else {
             ntra.Inc(reco, killed, ratio_length, ratio_fakes, nclones, mc_length, mc_length_hits, "slow_sec_e");
           }
-        }  // if extra
+        }  // if slow
       }
     }
 
@@ -462,7 +462,7 @@ void CbmL1::EfficienciesPerformance()
   }
 }  // void CbmL1::Performance()
 
-void CbmL1::HistoPerformance()  // TODO: check if works correctly. Change vHitRef on match data in CbmL1**Track classes
+void CbmL1::HistoPerformance()  // TODO: check if works correctly. Change vHitFast on match data in CbmL1**Track classes
 {
 
   //CbmKF &KF = *CbmKF::Instance();