diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx
index d2132e9abe3b114b2096659c0be8c9e3ba7efeed..a9b184d2969589df08cd5c045853229e9dd20d5e 100644
--- a/reco/L1/CbmL1.cxx
+++ b/reco/L1/CbmL1.cxx
@@ -954,8 +954,11 @@ InitStatus CbmL1::Init()
     fpInitManager->InitTargetField(2.5);
 
 
-    // Step 4: initialize IDs of detectors active in tracking
-    // TODO: temporary for tests, must be initialized somewhere in run_reco.C or similar (S.Zh.)
+    /*
+     * Step 4: initialize IDs of detectors active in tracking. The order of the tracking 
+     * detectors is defined in the L1DetectorID enumeration
+     */
+    fActiveTrackingDetectorIDs.insert(L1DetectorID::kSts);
     if (fUseMVD)  { fActiveTrackingDetectorIDs.insert(L1DetectorID::kMvd); }
     if (fUseMUCH) { fActiveTrackingDetectorIDs.insert(L1DetectorID::kMuch); }
     if (fUseTRD)  { fActiveTrackingDetectorIDs.insert(L1DetectorID::kTrd); }
@@ -983,6 +986,7 @@ InitStatus CbmL1::Init()
       stationInfo.SetStationType(1);
       // MVD // TODO: to be exchanged with specific flags (timeInfo, fieldInfo etc.) (S.Zh.)
       stationInfo.SetTimeInfo(0);
+      stationInfo.SetTimeResolution(1000.);
       stationInfo.SetFieldStatus(fTrackingMode == L1Algo::TrackingMode::kMcbm ? 0 : 1);
       stationInfo.SetZ(t.z);
       stationInfo.SetMaterial(t.dz, t.RadLength);
@@ -991,7 +995,7 @@ InitStatus CbmL1::Init()
       stationInfo.SetRmin(t.r);
       stationInfo.SetRmax(t.R);
       fscal mvdFrontPhi   = 0;
-      fscal mvdBackPhi    = PI / 2.;
+      fscal mvdBackPhi    = TMath::Pi() / 2.;
       fscal mvdFrontSigma = mvdStationPar->GetXRes(iSt) / 10000;
       fscal mvdBackSigma  = mvdStationPar->GetYRes(iSt) / 10000;
       stationInfo.SetFrontBackStripsGeometry(mvdFrontPhi, mvdFrontSigma, mvdBackPhi, mvdBackSigma);
@@ -1001,28 +1005,27 @@ InitStatus CbmL1::Init()
     // Setup STS stations info
     for (int iSt = 0; iSt < NStsStations; ++iSt) {  // NOTE: example using smart pointers
       auto cbmSts = CbmStsSetup::Instance()->GetStation(iSt);
-      std::unique_ptr<L1BaseStationInfo> stationInfo(new L1BaseStationInfo(L1DetectorID::kSts, iSt));
-      // TODO: replace with std::make_unique, when C++14 is avaliable!!!! (S.Zh.)
-      // auto stsStation = std::make_unique<L1BaseStationInfo>(L1DetectorID::kSts, iSt);
-      stationInfo->SetStationType(0);  // STS
-      stationInfo->SetTimeInfo(1);
-      stationInfo->SetFieldStatus(fTrackingMode == L1Algo::TrackingMode::kMcbm ? 0 : 1);
+      auto stationInfo = L1BaseStationInfo(L1DetectorID::kSts, iSt);
+      stationInfo.SetStationType(0);  // STS
+      stationInfo.SetTimeInfo(1);
+      stationInfo.SetTimeResolution(5.);
+      stationInfo.SetFieldStatus(fTrackingMode == L1Algo::TrackingMode::kMcbm ? 0 : 1);
       // Setup station geometry and material
-      stationInfo->SetZ(cbmSts->GetZ());
+      stationInfo.SetZ(cbmSts->GetZ());
       double stsXmax = cbmSts->GetXmax();
       double stsYmax = cbmSts->GetYmax();
-      stationInfo->SetXmax(stsXmax);
-      stationInfo->SetYmax(stsYmax);
-      stationInfo->SetRmin(0);
-      stationInfo->SetRmax(stsXmax > stsYmax ? stsXmax : stsYmax);
-      stationInfo->SetMaterial(cbmSts->GetSensorD(), cbmSts->GetRadLength());
+      stationInfo.SetXmax(stsXmax);
+      stationInfo.SetYmax(stsYmax);
+      stationInfo.SetRmin(0);
+      stationInfo.SetRmax(stsXmax > stsYmax ? stsXmax : stsYmax);
+      stationInfo.SetMaterial(cbmSts->GetSensorD(), cbmSts->GetRadLength());
 
       // Setup strips geometry
       fscal stsFrontPhi   = cbmSts->GetSensorRotation() + cbmSts->GetSensorStereoAngle(0) * PI / 180.;
       fscal stsBackPhi    = cbmSts->GetSensorRotation() + cbmSts->GetSensorStereoAngle(1) * PI / 180.;
       fscal stsFrontSigma = cbmSts->GetSensorPitch(0) / sqrt(12);
       fscal stsBackSigma  = stsFrontSigma;
-      stationInfo->SetFrontBackStripsGeometry(stsFrontPhi, stsFrontSigma, stsBackPhi, stsBackSigma);
+      stationInfo.SetFrontBackStripsGeometry(stsFrontPhi, stsFrontSigma, stsBackPhi, stsBackSigma);
       fpInitManager->AddStation(stationInfo);
     }
 
@@ -1037,17 +1040,18 @@ InitStatus CbmL1::Init()
       stationInfo.SetStationType(2);
       // MVD // TODO: to be exchanged with specific flags (timeInfo, fieldInfo etc.) (S.Zh.)
       stationInfo.SetTimeInfo(1);
+      stationInfo.SetTimeResolution(3.9);
       stationInfo.SetFieldStatus(0);
       stationInfo.SetZ(layer->GetZ());
-      stationInfo.SetMaterial(layer->GetDz(), 10);  // TODO: Why rad len is 0????? (S.Zh.)
+      stationInfo.SetMaterial(layer->GetDz(), 0);  // TODO: Why rad len is 0????? (S.Zh.)
       stationInfo.SetXmax(100.);
       stationInfo.SetYmax(100.);
-      stationInfo.SetRmin(0.);
+      stationInfo.SetRmin(10.);
       stationInfo.SetRmax(100.);
       fscal muchFrontPhi   = 0;
-      fscal muchBackPhi    = PI / 2.;
-      fscal muchFrontSigma = 0.1;
-      fscal muchBackSigma  = 0.1;
+      fscal muchBackPhi    = TMath::Pi() / 2.;
+      fscal muchFrontSigma = 0.35;
+      fscal muchBackSigma  = 0.35;
       stationInfo.SetFrontBackStripsGeometry(muchFrontPhi, muchFrontSigma, muchBackPhi, muchBackSigma);
       fpInitManager->AddStation(stationInfo);
     }
@@ -1064,17 +1068,18 @@ InitStatus CbmL1::Init()
       int stationType          = (iSt == 1 || iSt == 3) ? 6 : 3;
       stationInfo.SetStationType(stationType);
       stationInfo.SetTimeInfo(1);
+      stationInfo.SetTimeResolution(10.);
       stationInfo.SetFieldStatus(0);
       stationInfo.SetZ(module->GetZ());
-      stationInfo.SetMaterial(2. * module->GetSizeZ(), 10.);
+      stationInfo.SetMaterial(2. * module->GetSizeZ(), 1.6);
       stationInfo.SetXmax(module->GetSizeX());
       stationInfo.SetYmax(module->GetSizeY());
       stationInfo.SetRmin(0.);
       stationInfo.SetRmax(2. * module->GetSizeX());  // TODO: Why multiplied with 2.?
       fscal trdFrontPhi   = 0;
-      fscal trdBackPhi    = PI / 2.;
-      fscal trdFrontSigma = 1.;
-      fscal trdBackSigma  = 1.;
+      fscal trdBackPhi    = TMath::Pi() / 2.;
+      fscal trdFrontSigma = 0.15;
+      fscal trdBackSigma  = 0.15;
       stationInfo.SetFrontBackStripsGeometry(trdFrontPhi, trdFrontSigma, trdBackPhi, trdBackSigma);
       fpInitManager->AddStation(stationInfo);
     }
@@ -1084,17 +1089,18 @@ InitStatus CbmL1::Init()
       auto stationInfo = L1BaseStationInfo(L1DetectorID::kTof, iSt);
       stationInfo.SetStationType(4);
       stationInfo.SetTimeInfo(1);
+      stationInfo.SetTimeResolution(0.075);
       stationInfo.SetFieldStatus(0);
       stationInfo.SetZ(TofStationZ[iSt]);
-      stationInfo.SetMaterial(10., 10.);  // TODO: add Tof width dz and rad. len
+      stationInfo.SetMaterial(10., 2.);  // TODO: add Tof width dz and rad. len
       stationInfo.SetXmax(20.);
       stationInfo.SetYmax(20.);
       stationInfo.SetRmin(0.);
       stationInfo.SetRmax(150.);
       fscal tofFrontPhi   = 0;
-      fscal tofBackPhi    = PI / 2.;
-      fscal tofFrontSigma = 1.;
-      fscal tofBackSigma  = 1.;
+      fscal tofBackPhi    = TMath::Pi() / 2.;
+      fscal tofFrontSigma = 0.42;
+      fscal tofBackSigma  = 0.23;
       stationInfo.SetFrontBackStripsGeometry(tofFrontPhi, tofFrontSigma, tofBackPhi, tofBackSigma);
       fpInitManager->AddStation(stationInfo);
     }
@@ -1272,7 +1278,7 @@ InitStatus CbmL1::Init()
   /********************************************************************************************************************
    ********************************************************************************************************************/
 
-  algo->Init(geo, fUseHitErrors, fTrackingMode, fMissingHits);
+  algo->Init(fUseHitErrors, fTrackingMode, fMissingHits);
   geo.clear();
 
   algo->fRadThick.reset(algo->GetNstations());
diff --git a/reco/L1/CbmL1.h b/reco/L1/CbmL1.h
index da09b0569a5e7e5ffa13f2cfdfc4d0f909234b2b..2ef9cd3c414974137314396243c81cc4038b5c7a 100644
--- a/reco/L1/CbmL1.h
+++ b/reco/L1/CbmL1.h
@@ -88,6 +88,8 @@ public:
 
 
 /// Enumeration for the detector subsystems used in L1 tracking
+/// It is important for the subsystems to be specified in the actual order. The order is used
+/// for the L1Station array filling.
 /// Note: L1DetectorID has a forward declaration in L1InitManager.h and L1BaseStationInfo.h
 enum class L1DetectorID
 {
@@ -294,7 +296,7 @@ private:
 
   L1InitManager* fpInitManager {nullptr};  ///< Pointer to L1InitManager object of L1 algorithm core
 
-  std::set<L1DetectorID> fActiveTrackingDetectorIDs {L1DetectorID::kSts};  ///< Set of detectors active in tracking
+  std::set<L1DetectorID> fActiveTrackingDetectorIDs {};  ///< Set of detectors active in tracking
 
   L1AlgoInputData* fData {nullptr};
 
diff --git a/reco/L1/L1Algo/L1Algo.cxx b/reco/L1/L1Algo/L1Algo.cxx
index 407071e5683cdeb9685e1aa552bbf4f410f30c5d..a752cafbd2b7a8c78d53f93ba9bff0814e294bc6 100644
--- a/reco/L1/L1Algo/L1Algo.cxx
+++ b/reco/L1/L1Algo/L1Algo.cxx
@@ -59,7 +59,7 @@ void L1Algo::SetNThreads(unsigned int n)
 }
 
 
-void L1Algo::Init(const L1Vector<fscal>& geo, const bool UseHitErrors, const TrackingMode mode, const bool MissingHits)
+void L1Algo::Init(const bool UseHitErrors, const TrackingMode mode, const bool MissingHits)
 {
   for (int iProc = 0; iProc < 4; iProc++) {
     for (int i = 0; i < 8; i++) {
@@ -76,32 +76,6 @@ void L1Algo::Init(const L1Vector<fscal>& geo, const bool UseHitErrors, const Tra
   fTrackingMode = mode;
   fMissingHits  = MissingHits;
 
-  //lxir039
-  //  for (int i=0; i<8; i++){
-  //     threadNumberToCpuMap[2*i+0] = 15-i;
-  //     threadNumberToCpuMap[2*i+1] = 15-(i+8);
-  //   }
-
-  //int ind = 0;
-  //{
-  //  L1FieldValue B[3];
-  //  fvec z[3];
-  //  for (int i = 0; i < 3; i++) {
-  //    z[i]   = geo[ind++];
-  //    B[i].x = geo[ind++];
-  //    B[i].y = geo[ind++];
-  //    B[i].z = geo[ind++];
-//#ifndef TBB2
-  //    std::cout << "L1Algo Input Magnetic field:" << z[i][0] << " " << B[i].x[0] << " " << B[i].y[0] << " " << B[i].z[0]
-  //              << std::endl;
-//#endif  // TBB2
-  //  }
-  //  //fVtxFieldRegion.Set(B[0], z[0], B[1], z[1], B[2], z[2]);
-  //  //fVtxFieldValue = B[0];
-  //}
-  //vStations.clear();
-  //L1Station vStations[L1Parameters::kMaxNstations] _fvecalignment;
-  //int NStations    = static_cast<int>(geo[ind++]);
   
   //int NMvdStations = static_cast<int>(geo[ind++]);  // TODO: get rid of NMbdStations (S. Zh.)
   int nStationsSts     = fInitManager.GetStationsNumber(static_cast<L1DetectorID>(1));
@@ -113,140 +87,13 @@ void L1Algo::Init(const L1Vector<fscal>& geo, const bool UseHitErrors, const Tra
   if (fTrackingMode == kMcbm) { fNfieldStations = -1; }
 
 
-  // cout << "N MVD & STS stations: " << NMvdStations << " " << NStations-NMvdStations << endl;
-//#ifndef TBB2
-  //std::cout << "L1Algo Input " << NStations << " Stations:" << std::endl;
-//#endif  // TBB2
- // for (int i = 0; i < NStations; i++) {
- //   L1Station& st = vStations[i];
- //   st.type       = geo[ind++];
- //   st.timeInfo   = 1;
- //   if (st.type == 1) st.timeInfo = 0;
- //   st.z                        = geo[ind++];
- //   st.materialInfo.thick       = geo[ind++];
- //   st.Rmin                     = geo[ind++];
- //   st.Rmax                     = geo[ind++];
- //   st.materialInfo.RL          = geo[ind++];
- //   st.materialInfo.RadThick    = st.materialInfo.thick / st.materialInfo.RL;
- //   st.materialInfo.logRadThick = log(st.materialInfo.RadThick);
-
- //   double f_phi   = geo[ind++];
- //   double f_sigma = geo[ind++];
- //   double b_phi   = geo[ind++];
- //   double b_sigma = geo[ind++];
- //   double dt      = geo[ind++];  //TODO: Add this field to L1BaseStationInfo and to ToString fcn (S.Zharko)
- //   double c_f     = cos(f_phi);
- //   double s_f     = sin(f_phi);
- //   double c_b     = cos(b_phi);
- //   double s_b     = sin(b_phi);
-
- //   st.frontInfo.cos_phi = c_f;
- //   st.frontInfo.sin_phi = s_f;
- //   st.frontInfo.sigma2  = f_sigma * f_sigma;
-
- //   st.backInfo.cos_phi = c_b;
- //   st.backInfo.sin_phi = s_b;
- //   st.backInfo.sigma2  = b_sigma * b_sigma;
- //   st.dt               = dt;
-
- //   if (fabs(b_phi - f_phi) < .1) {
- //     double th  = b_phi - f_phi;
- //     double det = cos(th);
- //     det *= det;
- //     st.XYInfo.C00 = (s_b * s_b * f_sigma * f_sigma + s_f * s_f * b_sigma * b_sigma) / det;
- //     st.XYInfo.C10 = -(s_b * c_b * f_sigma * f_sigma + s_f * c_f * b_sigma * b_sigma) / det;
- //     st.XYInfo.C11 = (c_b * c_b * f_sigma * f_sigma + c_f * c_f * b_sigma * b_sigma) / det;
- //     //std::cout << "!!!   det  "<< det<<std::endl;
- //   }
- //   else {
- //     double det = c_f * s_b - s_f * c_b;
- //     det *= det;
- //     st.XYInfo.C00 = (s_b * s_b * f_sigma * f_sigma + s_f * s_f * b_sigma * b_sigma) / det;
- //     st.XYInfo.C10 = -(s_b * c_b * f_sigma * f_sigma + s_f * c_f * b_sigma * b_sigma) / det;
- //     st.XYInfo.C11 = (c_b * c_b * f_sigma * f_sigma + c_f * c_f * b_sigma * b_sigma) / det;
- //     //std::cout << "!!!   det  "<< det<<std::endl;
- //   }
- //   //std::cout.precision(10);
- //   //std::cout << "Station  "<<i<<"  " << st.XYInfo.C00[0]<<"  "<<st.XYInfo.C11[0]<<"  "<<st.XYInfo.C10[0]<<std::endl;
- //   //std::cout << "         "<< i<<"   fsigma " << f_sigma<<" bsigma "<<b_sigma<<std::endl;
-
- //   //    st.xInfo.cos_phi = c_f/(c_f*s_b - c_b*s_f);
- //   //    st.xInfo.sin_phi =-c_b/(c_f*s_b - c_b*s_f);
- //   st.xInfo.cos_phi = -s_f / (c_f * s_b - c_b * s_f);
- //   st.xInfo.sin_phi = s_b / (c_f * s_b - c_b * s_f);
- //   st.xInfo.sigma2  = st.XYInfo.C00;
-
- //   st.yInfo.cos_phi = c_b / (c_b * s_f - c_f * s_b);
- //   st.yInfo.sin_phi = -c_f / (c_b * s_f - c_f * s_b);
- //   st.yInfo.sigma2  = st.XYInfo.C11;
- //   //std::cout << "st.xInfo.cos_phi "<<st.xInfo.cos_phi<< " st.yInfo.cos_phi " << st.yInfo.cos_phi << std::endl;
- //   //std::cout << "st.xInfo.sin_phi "<<st.xInfo.sin_phi<< " st.yInfo.sin_phi " << st.yInfo.sin_phi << std::endl;
-
- //   //std::cout << "cos_b "<<c_b<< " sin_b " << s_b << std::endl;
- //   //std::cout << "cos_f "<<c_f<< " sin_f " << s_f << std::endl;
-
-
- //   int N = static_cast<int>(geo[ind++]);
- //   for (int iC = 0; iC < N; iC++)
- //     st.fieldSlice.cx[iC] = geo[ind++];
- //   for (int iC = 0; iC < N; iC++)
- //     st.fieldSlice.cy[iC] = geo[ind++];
- //   for (int iC = 0; iC < N; iC++)
- //     st.fieldSlice.cz[iC] = geo[ind++];
-//#ifndef TBB2
-//    std::cout << "    " << st.z[0] << " " << st.materialInfo.thick[0] << " " << st.materialInfo.RL[0] << ", " << N
-//              << " field coeff." << std::endl;
-//    std::cout << "       " << f_phi << " " << f_sigma << " " << b_phi << " " << b_sigma << std::endl;
-//#endif  // TBB2
-  //}
-
-  //fTrackingLevel    = static_cast<int>(geo[ind++]);
-  //fMomentumCutOff   = geo[ind++];
-  //fGhostSuppression = static_cast<int>(geo[ind++]);
-
-  //{
-  //  //   fvec By0 = vStations[NStations-1].fieldSlice.cy[0];
-  //  fvec z0 = vStations[NStations - 1].z;
-  //  fvec sy = 0., Sy = 0.;
-  //  for (int i = NStations - 1; i >= 0; i--) {
-  //    L1Station& st = vStations[i];
-  //    fvec dz       = st.z - z0;
-  //    fvec By       = vStations[i].fieldSlice.cy[0];
-  //    Sy += dz * sy + dz * dz * By / 2.;
-  //    sy += dz * By;
-  //    //st.Sy = Sy; // commented, because is not used in the code (S.Zharko)
-  //    z0    = st.z;
-  //  }
-  //}
-  //    for( int iS = 0; iS < NStations; ++iS ) {     /// Grid is created for each station with the same step: xStep,yStep
-  //       L1Grid &grid = vGrid[iS];
-  //
-  //      // grid.Create(-1,1,-0.6,0.6,xStep,yStep);
-  //       grid.Create(-1,1,-0.6,0.6,0.00317899,0.00105966);
-  //     }
-
-//#ifndef TBB2
-  //std::cout << "L1Algo initialized" << std::endl;
-//#endif  // TBB2
-
-  //
-  // NEW INITIALIZATION (BETA)
-  //
-
-  // Final init checks (the function provides purity of fields initialization and turn on the last bits of
+  // Final init checks (the function provides purity of fields initialization and turns on the last bit of
   // the L1ObjectInitController):
   fInitManager.CheckInit();  // NOTE: after passing this frontier L1Algo is (will be) accounted as initialized
 
-  // Check initialization
+  // Print out the bits of the init manager
   LOG(info) << "InitManager " << fInitManager.GetInitController().ToString();
-
-  // Get number of stations
-  //int nStationsNew = fInitManager.GetStationsNumber();
-  // TODO: we must to get rid of station specification in the L1Algo (S.Zh.)
-  //int nMvdStationsNew   = fInitManager.GetStationsNumber(static_cast<L1DetectorID>(0));
-  //int nStsStationsNew   = fInitManager.GetStationsNumber(static_cast<L1DetectorID>(1));
-  //int nFieldStationsNew = nMvdStationsNew + nStsStationsNew;
-
+  
   fNstations = fInitManager.GetStationsNumber();
 
   // Get field near target
@@ -265,16 +112,16 @@ void L1Algo::Init(const L1Vector<fscal>& geo, const bool UseHitErrors, const Tra
   LOG(info) << "  ***********************";
   LOG(info) << "";
 
-  LOG(info) << "** Number of stations (new) **";
+  LOG(info) << "----- Number of stations -----";
   LOG(info) << "\tTotal stations:           " << fNstations;
   LOG(info) << "\tStations before pipe:     " << fNstationsBeforePipe;
   LOG(info) << "\tStations in field region: " << fNfieldStations;
 
-  LOG(info) << "** Magnetic field near target **";
+  LOG(info) << "----- Magnetic field near target -----";
   LOG(info) << "\tField Value:  " << '\n' << fVtxFieldValue.ToString(/*indent = */ 1) << '\n';
   LOG(info) << "\tField Region: " << '\n' << fVtxFieldRegion.ToString(/*indent = */ 1) << '\n';
 
-  LOG(info) << "** L1 active stations list **";
+  LOG(info) << "----- L1 active stations list -----";
   for (int iSt = 0; iSt < fNstations; ++iSt) {
     LOG(info) << " #" << iSt << " " << fStations[iSt].ToString(/*verbosity = */ 0);
   }
diff --git a/reco/L1/L1Algo/L1Algo.h b/reco/L1/L1Algo/L1Algo.h
index ef6a5199031cef43e37a15b85517779a1a75a2c0..55c7a385c8b1169436987d50ad8bbc0da015b47e 100644
--- a/reco/L1/L1Algo/L1Algo.h
+++ b/reco/L1/L1Algo/L1Algo.h
@@ -199,7 +199,7 @@ public:
     kMcbm
   };
 
-  void Init(const L1Vector<fscal>& geo, const bool UseHitErrors, const TrackingMode mode, const bool MissingHits);
+  void Init(const bool UseHitErrors, const TrackingMode mode, const bool MissingHits);
 
   void SetData(L1Vector<L1Hit>& StsHits_, int nStsStrips_, L1Vector<unsigned char>& SFlag_,
                const L1HitIndex_t* StsHitsStartIndex_, const L1HitIndex_t* StsHitsStopIndex_);
diff --git a/reco/L1/L1Algo/L1BaseStationInfo.cxx b/reco/L1/L1Algo/L1BaseStationInfo.cxx
index 05518eb21dbb4df2ecd8a6d17ce1c6e56ed77efb..6d9ebafae04c4a29ac993e7ea95968d719efb229 100644
--- a/reco/L1/L1Algo/L1BaseStationInfo.cxx
+++ b/reco/L1/L1Algo/L1BaseStationInfo.cxx
@@ -336,7 +336,7 @@ void L1BaseStationInfo::SetFrontBackStripsGeometry(double frontPhi, double front
 //
 void L1BaseStationInfo::SetMaterial(double inThickness, double inRL)
 {
-  L1MASSERT(0, inRL, "Attempt of entering zero inRL (radiational length) value");
+  //L1MASSERT(0, inRL, "Attempt of entering zero inRL (radiational length) value");
 
   fL1Station.materialInfo.thick       = inThickness;
   fL1Station.materialInfo.RL          = inRL;
@@ -396,6 +396,14 @@ void L1BaseStationInfo::SetTimeInfo(int inTimeInfo)
   fInitController.SetFlag(InitKey::keTimeInfo);
 }
 
+//----------------------------------------------------------------------------------------------------------------------//
+//
+void L1BaseStationInfo::SetTimeResolution(double dt)
+{
+  fL1Station.dt = dt;
+  fInitController.SetFlag(InitKey::keTimeResolution);
+}
+
 //----------------------------------------------------------------------------------------------------------------------//
 //
 void L1BaseStationInfo::SetZ(double inZ)
diff --git a/reco/L1/L1Algo/L1BaseStationInfo.h b/reco/L1/L1Algo/L1BaseStationInfo.h
index 4dfb5b8ccb2a6c3b8a94f817b9946ec7f2609464..77e1418f3ee1cece7563a23f68f8988048dc3293 100644
--- a/reco/L1/L1Algo/L1BaseStationInfo.h
+++ b/reco/L1/L1Algo/L1BaseStationInfo.h
@@ -49,6 +49,7 @@ public:
     keStripsFrontSigma,   ///<
     keStripsBackPhi,      ///<
     keStripsBackSigma,    ///<
+    keTimeResolution,     ///< time resolution
     // The last item is equal to the number of bits in fInitFlags
     keEnd
   };
@@ -122,6 +123,8 @@ public:
   int GetStationID() const { return fStationID; }
   /// Gets station type
   int GetStationType() const { return fL1Station.type; }
+  /// Gets time resolution
+  fvec GetTimeResolution() const { return fL1Station.dt; }
   /// Gets maximum distance between station center and its edge in x direction
   double GetXmax() const { return fXmax; }
   /// Gets maximum distance between station center and its edge in y direction
@@ -176,6 +179,8 @@ public:
   /// Sets flag: 0 - time information is not provided by this detector type
   ///            1 - time information is provided by the detector and can be used in tracking
   void SetTimeInfo(int inTimeInfo);
+  /// Sets time resolution
+  void SetTimeResolution(double dt);
   /// Sets maximum distance between station center and its edge in x direction
   void SetXmax(double aSize);
   /// Sets maximum distance between station center and its edge in y direction