From 98675bfab49c68f55be029031dfa3cfa50c40e54 Mon Sep 17 00:00:00 2001
From: Valentina <v.akishina@gsi.de>
Date: Wed, 15 Sep 2021 14:56:47 +0200
Subject: [PATCH] L1: exclude MVD from time

---
 reco/L1/L1Algo/L1TrackFitter.cxx | 16 ++++++++--------
 reco/L1/L1Algo/L1TrackParFit.cxx | 13 +++++++------
 reco/L1/L1Algo/L1TrackParFit.h   |  2 +-
 3 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/reco/L1/L1Algo/L1TrackFitter.cxx b/reco/L1/L1Algo/L1TrackFitter.cxx
index 799d4de8bf..1c47db2e0b 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 934a0c8f93..07f1efefd9 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 9e327be3b1..d292523520 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);
-- 
GitLab