From 41791b200304a6f938e1180c9584e4f122ec6502 Mon Sep 17 00:00:00 2001
From: "se.gorbunov" <se.gorbunov@gsi.de>
Date: Wed, 31 Aug 2022 16:19:35 +0000
Subject: [PATCH] L1: fit cleanup

---
 reco/L1/L1Algo/L1TrackParFit.cxx | 106 ++++++++++++++-----------------
 1 file changed, 46 insertions(+), 60 deletions(-)

diff --git a/reco/L1/L1Algo/L1TrackParFit.cxx b/reco/L1/L1Algo/L1TrackParFit.cxx
index 958d197e26..e7f98ae5a7 100644
--- a/reco/L1/L1Algo/L1TrackParFit.cxx
+++ b/reco/L1/L1Algo/L1TrackParFit.cxx
@@ -337,7 +337,6 @@ void L1TrackParFit::Extrapolate  // extrapolates track parameters and returns ja
   //========================================================================
 
 
-  cnst ZERO = 0.0, ONE = 1.;
   cnst c_light = 0.000299792458;
 
   const fvec a[4] = {0.0f, 0.5f, 0.5f, 1.0f};
@@ -351,6 +350,7 @@ void L1TrackParFit::Extrapolate  // extrapolates track parameters and returns ja
   //----------------------------------------------------------------
 
   if (w) { z_out = if3((fvec(0.f) < *w), z_out, fz); }
+
   fvec qp_in      = fqp;
   const fvec z_in = fz;
   const fvec h    = (z_out - fz);
@@ -424,18 +424,6 @@ void L1TrackParFit::Extrapolate  // extrapolates track parameters and returns ja
     k[step4 + 4] = At[step];
   }  // end of Runge-Kutta steps
 
-  fvec initialised = ZERO;
-  if (w)  //TODO use operator {?:}
-  {
-    const fvec zero = ZERO;
-    initialised     = fvec(zero < *w);
-  }
-  else {
-    const fvec one  = ONE;
-    const fvec zero = ZERO;
-    initialised     = fvec(zero < one);
-  }
-
   {
 
 
@@ -445,17 +433,12 @@ void L1TrackParFit::Extrapolate  // extrapolates track parameters and returns ja
     //     cout << "initialised = " << initialised << "; ";
     //     cout << "fx = " << fx;
 
-    fx = ((x0[0] + c[0] * k[0] + c[1] * k[5 + 0] + c[2] * k[10 + 0] + c[3] * k[15 + 0]) & initialised)
-         + ((!initialised) & fx);
-    fy = ((x0[1] + c[0] * k[1] + c[1] * k[5 + 1] + c[2] * k[10 + 1] + c[3] * k[15 + 1]) & initialised)
-         + ((!initialised) & fy);
-    ftx = ((x0[2] + c[0] * k[2] + c[1] * k[5 + 2] + c[2] * k[10 + 2] + c[3] * k[15 + 2]) & initialised)
-          + ((!initialised) & ftx);
-    fty = ((x0[3] + c[0] * k[3] + c[1] * k[5 + 3] + c[2] * k[10 + 3] + c[3] * k[15 + 3]) & initialised)
-          + ((!initialised) & fty);
-    ft = ((x0[4] + c[0] * k[4] + c[1] * k[5 + 4] + c[2] * k[10 + 4] + c[3] * k[15 + 4]) & initialised)
-         + ((!initialised) & ft);
-    fz = (z_out & initialised) + ((!initialised) & fz);
+    fx  = x0[0] + c[0] * k[0] + c[1] * k[5 + 0] + c[2] * k[10 + 0] + c[3] * k[15 + 0];
+    fy  = x0[1] + c[0] * k[1] + c[1] * k[5 + 1] + c[2] * k[10 + 1] + c[3] * k[15 + 1];
+    ftx = x0[2] + c[0] * k[2] + c[1] * k[5 + 2] + c[2] * k[10 + 2] + c[3] * k[15 + 2];
+    fty = x0[3] + c[0] * k[3] + c[1] * k[5 + 3] + c[2] * k[10 + 3] + c[3] * k[15 + 3];
+    ft  = x0[4] + c[0] * k[4] + c[1] * k[5 + 4] + c[2] * k[10 + 4] + c[3] * k[15 + 4];
+    fz  = z_out;
 
     //     cout << "; fx = " << fx << endl;
   }
@@ -563,7 +546,7 @@ void L1TrackParFit::Extrapolate  // extrapolates track parameters and returns ja
     k1[step4]     = x[2] * h;
     k1[step4 + 1] = x[3] * h;
     k1[step4 + 2] = Ax_tx[step] * x[2] + Ax_ty[step] * x[3];
-    //    k1[step4+3] = Ay_tx[step] * x[2] + Ay_ty[step] * x[3];
+    // k1[step4+3] = Ay_tx[step] * x[2] + Ay_ty[step] * x[3]; //  TODO: SG: check if the simplification below is ok
     k1[step4 + 4] = At_tx[step] * x[2] + At_ty[step] * x[3];
   }  // end of Runge-Kutta steps for derivatives dx/dty
 
@@ -571,28 +554,31 @@ void L1TrackParFit::Extrapolate  // extrapolates track parameters and returns ja
     J[18 + i] = x0[i] + c[0] * k1[i] + c[1] * k1[5 + i] + c[2] * k1[10 + i] + c[3] * k1[15 + i];
   }
   //      end of derivatives dx/dty
-  J[21] = 1.;
-  J[22] = 0.;
+  J[21] = fvec(1.);
+  J[22] = fvec(0.);
   J[23] = x0[4] + c[0] * k1[4] + c[1] * k1[5 + 4] + c[2] * k1[10 + 4] + c[3] * k1[15 + 4];
   //
   //    derivatives dx/dx and dx/dy
 
-  for (i = 0; i < 12; ++i)
-    J[i] = 0.;
-  J[0] = 1.;
-  J[7] = 1.;
-  for (i = 30; i < 35; i++)
-    J[i] = 0.f;
-  J[35] = 1.f;
+  for (i = 0; i < 12; ++i) {
+    J[i] = fvec(0.);
+  }
+
+  J[0] = fvec(1.);
+  J[7] = fvec(1.);
+  for (i = 30; i < 35; i++) {
+    J[i] = fvec(0.);
+  }
+  J[35] = fvec(1.);
 
   fvec dqp = qp_in - qp0;
 
   {  // update parameters
-    fx += ((J[6 * 4 + 0] * dqp) & initialised);
-    fy += ((J[6 * 4 + 1] * dqp) & initialised);
-    ftx += ((J[6 * 4 + 2] * dqp) & initialised);
-    fty += ((J[6 * 4 + 3] * dqp) & initialised);
-    ft += ((J[6 * 4 + 5] * dqp) & initialised);
+    fx += J[6 * 4 + 0] * dqp;
+    fy += J[6 * 4 + 1] * dqp;
+    ftx += J[6 * 4 + 2] * dqp;
+    fty += J[6 * 4 + 3] * dqp;
+    ft += J[6 * 4 + 5] * dqp;
   }
   //    cout<<fx<<" fx"<<endl;
   //          covariance matrix transport
@@ -658,32 +644,32 @@ void L1TrackParFit::Extrapolate  // extrapolates track parameters and returns ja
   const fvec cj55 = C55 + C52 * J[17] + C53 * J[23] + C54 * J[29];
 
 
-  C00 = ((cj00 + cj20 * J[12] + cj30 * J[18] + cj40 * J[24]) & initialised) + ((!initialised) & C00);
+  C00 = cj00 + cj20 * J[12] + cj30 * J[18] + cj40 * J[24];
 
-  C10 = ((cj10 + cj20 * J[13] + cj30 * J[19] + cj40 * J[25]) & initialised) + ((!initialised) & C10);
-  C11 = ((cj11 + cj21 * J[13] + cj31 * J[19] + cj41 * J[25]) & initialised) + ((!initialised) & C11);
+  C10 = cj10 + cj20 * J[13] + cj30 * J[19] + cj40 * J[25];
+  C11 = cj11 + cj21 * J[13] + cj31 * J[19] + cj41 * J[25];
 
-  C20 = ((cj20 + cj30 * J[20] + cj40 * J[26]) & initialised) + ((!initialised) & C20);
-  C21 = ((cj21 + cj31 * J[20] + cj41 * J[26]) & initialised) + ((!initialised) & C21);
-  C22 = ((cj22 + cj32 * J[20] + cj42 * J[26]) & initialised) + ((!initialised) & C22);
+  C20 = cj20 + cj30 * J[20] + cj40 * J[26];
+  C21 = cj21 + cj31 * J[20] + cj41 * J[26];
+  C22 = cj22 + cj32 * J[20] + cj42 * J[26];
 
-  C30 = ((cj30 + cj20 * J[15] + cj40 * J[27]) & initialised) + ((!initialised) & C30);
-  C31 = ((cj31 + cj21 * J[15] + cj41 * J[27]) & initialised) + ((!initialised) & C31);
-  C32 = ((cj32 + cj22 * J[15] + cj42 * J[27]) & initialised) + ((!initialised) & C32);
-  C33 = ((cj33 + cj23 * J[15] + cj43 * J[27]) & initialised) + ((!initialised) & C33);
+  C30 = cj30 + cj20 * J[15] + cj40 * J[27];
+  C31 = cj31 + cj21 * J[15] + cj41 * J[27];
+  C32 = cj32 + cj22 * J[15] + cj42 * J[27];
+  C33 = cj33 + cj23 * J[15] + cj43 * J[27];
 
-  C40 = ((cj40) &initialised) + ((!initialised) & C40);
-  C41 = ((cj41) &initialised) + ((!initialised) & C41);
-  C42 = ((cj42) &initialised) + ((!initialised) & C42);
-  C43 = ((cj43) &initialised) + ((!initialised) & C43);
-  C44 = ((cj44) &initialised) + ((!initialised) & C44);
+  C40 = cj40;
+  C41 = cj41;
+  C42 = cj42;
+  C43 = cj43;
+  C44 = cj44;
 
-  C50 = ((cj50 + cj20 * J[17] + cj30 * J[23] + cj40 * J[29]) & initialised) + ((!initialised) & C50);
-  C51 = ((cj51 + cj21 * J[17] + cj31 * J[23] + cj41 * J[29]) & initialised) + ((!initialised) & C51);
-  C52 = ((cj52 + cj22 * J[17] + cj32 * J[23] + cj42 * J[29]) & initialised) + ((!initialised) & C52);
-  C53 = ((cj53 + cj23 * J[17] + cj33 * J[23] + cj43 * J[29]) & initialised) + ((!initialised) & C53);
-  C54 = ((cj54 + cj24 * J[17] + cj34 * J[23] + cj44 * J[29]) & initialised) + ((!initialised) & C54);
-  C55 = ((cj55 + cj25 * J[17] + cj35 * J[23] + cj45 * J[29]) & initialised) + ((!initialised) & C55);
+  C50 = cj50 + cj20 * J[17] + cj30 * J[23] + cj40 * J[29];
+  C51 = cj51 + cj21 * J[17] + cj31 * J[23] + cj41 * J[29];
+  C52 = cj52 + cj22 * J[17] + cj32 * J[23] + cj42 * J[29];
+  C53 = cj53 + cj23 * J[17] + cj33 * J[23] + cj43 * J[29];
+  C54 = cj54 + cj24 * J[17] + cj34 * J[23] + cj44 * J[29];
+  C55 = cj55 + cj25 * J[17] + cj35 * J[23] + cj45 * J[29];
 }
 
 void L1TrackParFit::L1AddPipeMaterial(fvec qp0, fvec w)
-- 
GitLab