diff --git a/reco/L1/L1Algo/L1TrackFitter.cxx b/reco/L1/L1Algo/L1TrackFitter.cxx
index 799d4de8bf809db30ee0b831482d11cd45126ef9..1c47db2e0bb1f7b409b08fa719e2b1ec10c7a0c7 100644
--- a/reco/L1/L1Algo/L1TrackFitter.cxx
+++ b/reco/L1/L1Algo/L1TrackFitter.cxx
@@ -471,7 +471,7 @@ void L1Algo::L1KFTrackFitter()
 
       FilterFirst(T1, x_last, y_last, time_last, time_er_last, staLast, d_x_lst, d_y_lst, d_xy_lst);
 
-      T1.Filter(time[i], timeEr[i], w_time[i]);
+      T1.Filter(time[i], timeEr[i], w_time[i], sta[i].timeInfo);
 
       // fit.L1AddMaterial( T, sta[i].materialInfo, qp0, 1 );
 
@@ -539,7 +539,7 @@ void L1Algo::L1KFTrackFitter()
         L1Filter(T, sta[i].backInfo, v[i], w1);
         T1.Filter(info, v[i], w1);
 
-        T1.Filter(time[i], timeEr[i], w1_time);
+        T1.Filter(time[i], timeEr[i], w1_time, sta[i].timeInfo);
 
 
         fB2 = fB1;
@@ -633,7 +633,7 @@ void L1Algo::L1KFTrackFitter()
 
       FilterFirst(T1, x_first, y_first, time_first, time_er_first, staFirst, d_x_fst, d_y_fst, d_xy_fst);
 
-      T1.Filter(time[i], timeEr[i], w_time[i]);
+      T1.Filter(time[i], timeEr[i], w_time[i], sta[i].timeInfo);
 
       // fit.L1AddMaterial( T, sta[i].materialInfo, qp0, 1 );
       qp0  = T.qp;
@@ -698,7 +698,7 @@ void L1Algo::L1KFTrackFitter()
 
         T1.Filter(info, v[i], w1);
 
-        T1.Filter(time[i], timeEr[i], w1_time);
+        T1.Filter(time[i], timeEr[i], w1_time, sta[i].timeInfo);
 
         fB2 = fB1;
         fz2 = fz1;
@@ -976,7 +976,7 @@ void L1Algo::L1KFTrackFitterMuch()
           T1.Filter(info, v[i], w1);
 
 
-          T1.Filter(time[i], timeEr[i], w1);
+          T1.Filter(time[i], timeEr[i], w1, sta[i].timeInfo);
         }
 
         if (i >= 8) {
@@ -1061,7 +1061,7 @@ void L1Algo::L1KFTrackFitterMuch()
           L1Filter(T, info, v[i], w1);
           T1.Filter(info, v[i], w1);
 
-          T1.Filter(time[i], timeEr[i], w1);
+          T1.Filter(time[i], timeEr[i], w1, sta[i].timeInfo);
         }
       }
       // fit.L1AddHalfMaterial( T, sta[i].materialInfo, qp0 );
@@ -1208,7 +1208,7 @@ void L1Algo::L1KFTrackFitterMuch()
           L1Filter(T, info, v[i], w1);
           T1.Filter(info, v[i], w1);
 
-          T1.Filter(time[i], timeEr[i], w1);
+          T1.Filter(time[i], timeEr[i], w1, sta[i].timeInfo);
         }
 
         if (i < 7) {
@@ -1259,7 +1259,7 @@ void L1Algo::L1KFTrackFitterMuch()
           //   info.sigma2 = d_v[i] * d_v[i];
           T1.Filter(info, v[i], w1);
 
-          T1.Filter(time[i], timeEr[i], w1);
+          T1.Filter(time[i], timeEr[i], w1, sta[i].timeInfo);
 
 
           fB2 = fB1;
diff --git a/reco/L1/L1Algo/L1TrackParFit.cxx b/reco/L1/L1Algo/L1TrackParFit.cxx
index 934a0c8f93aed7929ed4f7701a2f521eafe08d65..07f1efefd9a217441590bff0d1a0b1bd692156ae 100644
--- a/reco/L1/L1Algo/L1TrackParFit.cxx
+++ b/reco/L1/L1Algo/L1TrackParFit.cxx
@@ -146,7 +146,7 @@ void L1TrackParFit::FilterNoP(L1UMeasurementInfo& info, fvec u, fvec w)
   C55 -= K5 * F5;
 }
 
-void L1TrackParFit::Filter(fvec t0, fvec dt0, fvec w)
+void L1TrackParFit::Filter(fvec t0, fvec dt0, fvec w, fvec timeInfo)
 {
   fvec wi, zeta, zetawi, HCH;
   fvec F0, F1, F2, F3, F4, F5;
@@ -165,16 +165,17 @@ void L1TrackParFit::Filter(fvec t0, fvec dt0, fvec w)
   F4 = C54;
   F5 = C55;
 
-#if 0  // use mask
-  const fvec mask = (HCH < info.sigma2 * 16.);
-  wi = w/( (mask & info.sigma2) +HCH );
-  zetawi = zeta *wi;
-  chi2 +=  mask & (zeta * zetawi);
+#if 1  // use mask
+  const fvec mask = (timeInfo > 0);
+  wi              = mask & w / (dt0 * dt0 + HCH);
+  zetawi          = zeta * wi;
+  chi2 += mask & (zeta * zetawi);
 #else
   wi     = w / (dt0 * dt0 + HCH);
   zetawi = zeta * wi;
   chi2 += zeta * zetawi;
 #endif  // 0
+
   NDF += w;
 
   K1 = F1 * wi;
diff --git a/reco/L1/L1Algo/L1TrackParFit.h b/reco/L1/L1Algo/L1TrackParFit.h
index 9e327be3b1c148798d5326488abfd1c98ceebbe6..d292523520249acd3e49500da8d3f8363935329b 100644
--- a/reco/L1/L1Algo/L1TrackParFit.h
+++ b/reco/L1/L1Algo/L1TrackParFit.h
@@ -106,7 +106,7 @@ public:
   fvec GetParticleMass2() const { return fMass2; }
 
   void Filter(L1UMeasurementInfo& info, fvec u, fvec w = 1.);
-  void Filter(fvec t0, fvec dt0, fvec w = 1.);
+  void Filter(fvec t0, fvec dt0, fvec w = 1., fvec timeInfo = 1.);
   void FilterNoP(L1UMeasurementInfo& info, fvec u, fvec w = 1.);
   void Extrapolate(fvec z_out, fvec qp0, const L1FieldRegion& F, fvec* w = 0);
   void ExtrapolateLine(fvec z_out, fvec* w = 0);