diff --git a/reco/L1/CbmL1.cxx b/reco/L1/CbmL1.cxx
index ec688711b48f71f6ab9c3e3c590e052870986ed3..2193a757c07cb5c48d247981a5c0b4f577c2cf50 100644
--- a/reco/L1/CbmL1.cxx
+++ b/reco/L1/CbmL1.cxx
@@ -434,7 +434,9 @@ InitStatus CbmL1::Init()
           float z = fChannelInfo->GetZ();
           float x = fChannelInfo->GetX();
           float y = fChannelInfo->GetY();
-          
+
+          if (station < 0) continue;
+
           if (fMissingHits) {
             if ((x > 20) && (z > 270) && (station == 1)) station = 2;
             if (z > 400) continue;
@@ -565,8 +567,8 @@ InitStatus CbmL1::Init()
       b_phi = f_phi;
       f_phi += station->GetSensorStereoAngle(0) * Pi / 180.;
       b_phi += station->GetSensorStereoAngle(1) * Pi / 180.;
-      f_sigma = station->GetSensorPitch(0) / TMath::Sqrt(12);
-      b_sigma = f_sigma;
+      f_sigma  = station->GetSensorPitch(0) / TMath::Sqrt(12);
+      b_sigma  = f_sigma;
       fscal dt = 5;
       //f_sigma *= cos(f_phi);  // TODO: think about this
       //b_sigma *= cos(b_phi);
@@ -606,7 +608,7 @@ InitStatus CbmL1::Init()
       geo.push_back(100);  //station->GetRmax()
       geo.push_back(0);
 
-     // fscal f_phi = 0, f_sigma = 0.1, b_phi = 3.14159265358 / 2., b_sigma = 0.1;
+      // fscal f_phi = 0, f_sigma = 0.1, b_phi = 3.14159265358 / 2., b_sigma = 0.1;
       fscal f_phi = 0, f_sigma = 0.35, b_phi = 3.14159265358 / 2., b_sigma = 0.35, dt = 3.9;
       geo.push_back(f_phi);
       geo.push_back(f_sigma);
@@ -655,7 +657,7 @@ InitStatus CbmL1::Init()
       geo.push_back(2 * module->GetSizeX());
       geo.push_back(10);
 
-    //  fscal f_phi = 0, f_sigma = 1., b_phi = 3.14159265358 / 2., b_sigma = 1.;
+      //  fscal f_phi = 0, f_sigma = 1., b_phi = 3.14159265358 / 2., b_sigma = 1.;
       fscal f_phi = 0, f_sigma = 0.15, b_phi = 3.14159265358 / 2., b_sigma = 0.15, dt = 10;
       geo.push_back(f_phi);
       geo.push_back(f_sigma);
@@ -681,7 +683,7 @@ InitStatus CbmL1::Init()
       geo.push_back(150);  /// TODO: add Tof max radius
       geo.push_back(10);
 
-     // fscal f_phi = 0, f_sigma = 1 / 10000, b_phi = 3.14159265358 / 2., b_sigma = 1 / 10000;
+      // fscal f_phi = 0, f_sigma = 1 / 10000, b_phi = 3.14159265358 / 2., b_sigma = 1 / 10000;
       fscal f_phi = 0, f_sigma = 0.42, b_phi = 3.14159265358 / 2., b_sigma = 0.23, dt = 0.075;
       geo.push_back(f_phi);
       geo.push_back(f_sigma);
@@ -1084,7 +1086,7 @@ InitStatus CbmL1::Init()
         const float RMax = hStaRadLen->GetXaxis()->GetXmax();  // should be same as min
         algo->fRadThick[iSta].SetBins(NBins, RMax);
         algo->fRadThick[iSta].table.resize(NBins);
-        
+
         float hole = 0.15;
 
         for (int iB = 0; iB < NBins; iB++) {
diff --git a/reco/L1/CbmL1ReadEvent.cxx b/reco/L1/CbmL1ReadEvent.cxx
index a32954f56107c564c97e12fff9118f7db27ff1a5..de6f5ded87d1b777a32be6e569e6ef7d0c5858a8 100644
--- a/reco/L1/CbmL1ReadEvent.cxx
+++ b/reco/L1/CbmL1ReadEvent.cxx
@@ -97,7 +97,7 @@ struct TmpHit {  // used for sort Hits before writing in the normal arrays
     id       = nTmpHits;  //tmpHits.size();
     iStation = point.iStation;
 
-    dt   = st.dt[0];
+    dt   = 5;           //st.dt[0];
     time = point.time;  // + gRandom->Gaus(0, dt);
 
     iStripF = nStripF + ip;  //firstDetStrip + ip;
@@ -108,14 +108,14 @@ struct TmpHit {  // used for sort Hits before writing in the normal arrays
     //1.;
     float b_sigma = 0.1;  // sqrt(st.backInfo.sigma2[0]);//1.;
 
-    dx            = f_sigma;
-    dy            = b_sigma;
-    dxy           = 0;
-    du            = f_sigma;
-    dv            = b_sigma;
+    dx  = f_sigma;
+    dy  = b_sigma;
+    dxy = 0;
+    du  = f_sigma;
+    dv  = b_sigma;
 
-    x = point.x + gRandom->Gaus(0, dx);
-    y = point.y + gRandom->Gaus(0, dy);
+    x = point.x;  // + gRandom->Gaus(0, dx);
+    y = point.y;  // + gRandom->Gaus(0, dy);
     z = point.z;
 
     xmc = point.x;
@@ -212,8 +212,6 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
   int firstMuchPoint = 0;
   int firstTofPoint  = 0;
 
-  // L1Vector<CbmLink*> ToFPointsMatch("CbmL1ReadEvent::ToFPointsMatch");
-
   if (fPerformance) {
     Fill_vMCTracks();
     vMCPoints.clear();
@@ -350,7 +348,6 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
           }
         }
 
-      //ToFPointsMatch.clear();
 
       firstTofPoint = vMCPoints.size();
       if (fTofPoints) {
@@ -410,7 +407,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
               MC.iStation    = -1;
               L1Station* sta = algo->vStations + NMvdStations + NStsStations + NMuchStations + NTrdStations;
               for (Int_t iSt = 0; iSt < NTOFStation; iSt++)
-                MC.iStation = (MC.z > sta[iSt].z[0] - 5)
+                MC.iStation = (MC.z > sta[iSt].z[0] - 15)
                                 ? (NMvdStations + NStsStations + NMuchStations + NTrdStations + iSt)
                                 : MC.iStation;
 
@@ -512,9 +509,9 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
     int firstDetStrip = NStrips;
     for (int ip = firstStsPoint; ip < firstStsPoint + nStsPoints; ip++) {
       const CbmL1MCPoint& p = vMCPoints[ip];
-//       int mcTrack           = p.ID;
-//       if (mcTrack < 0) continue;
-//       const CbmL1MCTrack& t = vMCTracks[mcTrack];
+      //       int mcTrack           = p.ID;
+      //       if (mcTrack < 0) continue;
+      //       const CbmL1MCTrack& t = vMCTracks[mcTrack];
       //if (t.p < 1) continue;
       // if (t.Points.size() > 4) continue;
       // cout << "sts mc: station " << p.iStation - NMvdStations << " x " << p.x << " y " << p.y << " z " << p.z << " t "
@@ -663,9 +660,9 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
     for (int ip = firstMuchPoint; ip < firstMuchPoint + nMuchPoints; ip++) {
       const CbmL1MCPoint& p = vMCPoints[ip];
 
-//       int mcTrack = p.ID;
-//       if (mcTrack < 0) continue;
-//       const CbmL1MCTrack& t = vMCTracks[mcTrack];
+      //       int mcTrack = p.ID;
+      //       if (mcTrack < 0) continue;
+      //       const CbmL1MCTrack& t = vMCTracks[mcTrack];
       //if (t.p < 1) continue;
       // if (t.Points.size() > 4) continue;
 
@@ -768,9 +765,9 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
     for (int ip = firstTrdPoint; ip < firstTrdPoint + nTrdPoints; ip++) {
       const CbmL1MCPoint& p = vMCPoints[ip];
 
-//       int mcTrack = p.ID;
-//       if (mcTrack < 0) continue;
-//       const CbmL1MCTrack& t = vMCTracks[mcTrack];
+      //       int mcTrack = p.ID;
+      //       if (mcTrack < 0) continue;
+      //       const CbmL1MCTrack& t = vMCTracks[mcTrack];
 
       TmpHit th;
       int DetId = 3;
@@ -902,7 +899,7 @@ void CbmL1::ReadEvent(L1AlgoInputData* fData_, float& TsStart, float& TsLength,
     for (int ip = firstTofPoint; ip < firstTofPoint + nTofPoints; ip++) {
       const CbmL1MCPoint& p = vMCPoints[ip];
 
-//       int mcTrack = p.ID;
+      //       int mcTrack = p.ID;
       //  if (mcTrack < 0) continue;
       //const CbmL1MCTrack& t = vMCTracks[mcTrack];
       //if (t.p < 1) continue;
@@ -1225,17 +1222,17 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
   if (MVD == 0) {
     CbmStsPoint* pt = L1_DYNAMIC_CAST<CbmStsPoint*>(fStsPoints->Get(file, event, iPoint));  // file, event, object
     if (!pt) return 1;
-    //     if ( !fLegacyEventMode )
-    //     {
-    //       Double_t StartTime = fTimeSlice->GetStartTime();
-    //       Double_t EndTime = fTimeSlice->GetEndTime();
-    //       Double_t Time_MC_point =  pt->GetTime() + fEventList->GetEventTime(event, file);
-    //       if (Time_MC_point < StartTime )
-    //         return 1;
-    //
-    //       if (Time_MC_point > EndTime )
-    //         return 1;
-    //     }
+    if (!fLegacyEventMode) {
+      Double_t StartTime     = fTimeSlice->GetStartTime();
+      Double_t EndTime       = fTimeSlice->GetEndTime();
+      Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file);
+
+      if (StartTime > 0)
+        if (Time_MC_point < StartTime) return 1;
+
+      if (EndTime > 0)
+        if (Time_MC_point > EndTime) return 1;
+    }
 
     pt->Position(xyzI);
     pt->Momentum(PI);
@@ -1253,11 +1250,12 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
       Double_t StartTime     = fTimeSlice->GetStartTime();
       Double_t EndTime       = fTimeSlice->GetEndTime();
       Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file);
-      
-      cout<<StartTime<<" StartTime "<<EndTime<<" EndTime "<<Time_MC_point<<" Time_MC_point "<<fEventList->GetEventTime(event, file)<<endl;
-      //       if (Time_MC_point < StartTime) return 1;
-      //
-      //       if (Time_MC_point > EndTime) return 1;
+
+      if (StartTime > 0)
+        if (Time_MC_point < StartTime) return 1;
+
+      if (EndTime > 0)
+        if (Time_MC_point > EndTime) return 1;
     }
 
     pt->Position(xyzI);
@@ -1274,14 +1272,15 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
 
     if (!pt) return 1;
     if (!fLegacyEventMode) {
-      //Double_t StartTime = fTimeSlice->GetStartTime();  // not used
-      //Double_t EndTime = fTimeSlice->GetEndTime();      // not used
-      //Double_t Time_MC_point =  pt->GetTime() + fEventList->GetEventTime(event, file); // not used
-      //       if (Time_MC_point < StartTime )
-      //         return 1;
-      //
-      //       if (Time_MC_point > EndTime )
-      //         return 1;
+      Double_t StartTime     = fTimeSlice->GetStartTime();                             // not used
+      Double_t EndTime       = fTimeSlice->GetEndTime();                               // not used
+      Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file);  // not used
+
+      if (StartTime > 0)
+        if (Time_MC_point < StartTime) return 1;
+
+      if (EndTime > 0)
+        if (Time_MC_point > EndTime) return 1;
     }
 
     pt->Position(xyzI);
@@ -1297,12 +1296,15 @@ bool CbmL1::ReadMCPoint(CbmL1MCPoint* MC, int iPoint, int file, int event, int M
     CbmTofPoint* pt = L1_DYNAMIC_CAST<CbmTofPoint*>(fTofPoints->Get(file, event, iPoint));  // file, event, object
     if (!pt) return 1;
     if (!fLegacyEventMode) {
-      //       Double_t StartTime     = fTimeSlice->GetStartTime();
-      //       Double_t EndTime       = fTimeSlice->GetEndTime();
-      //       Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file);
-      //       if (Time_MC_point < StartTime) return 1;
-      //
-      //       if (Time_MC_point > EndTime) return 1; continue!!!!
+      Double_t StartTime     = fTimeSlice->GetStartTime();
+      Double_t EndTime       = fTimeSlice->GetEndTime();
+      Double_t Time_MC_point = pt->GetTime() + fEventList->GetEventTime(event, file);
+
+      if (StartTime > 0)
+        if (Time_MC_point < StartTime) return 1;
+
+      if (EndTime > 0)
+        if (Time_MC_point > EndTime) return 1;
     }
 
     pt->Position(xyzI);