From 414ab6acd92567e574be7970310cc7afe4e5568c Mon Sep 17 00:00:00 2001
From: "se.gorbunov" <se.gorbunov@gsi.de>
Date: Mon, 5 Sep 2022 12:51:03 +0000
Subject: [PATCH] L1: fix CI build

---
 reco/L1/CMakeLists.txt                |   2 +-
 reco/L1/CbmL1Performance.cxx          | 153 ++++++++++++--------------
 reco/L1/L1Algo/utils/L1AlgoPulls.cxx  |  22 ++--
 reco/detectors/trd/CMakeLists.txt     |   1 +
 reco/eventbuilder/CMakeLists.txt      |   2 +-
 reco/littrack/CMakeLists.txt          |   1 +
 reco/littrack/parallel/CMakeLists.txt |  19 ++--
 reco/littrack/parallel/LitTypes.h     |   7 +-
 8 files changed, 100 insertions(+), 107 deletions(-)

diff --git a/reco/L1/CMakeLists.txt b/reco/L1/CMakeLists.txt
index d61823b176..7e89dcffe2 100644
--- a/reco/L1/CMakeLists.txt
+++ b/reco/L1/CMakeLists.txt
@@ -247,6 +247,7 @@ Set(LINKDEF L1LinkDef.h)
 Set(LIBRARY_NAME L1)
 
 Set(DEPENDENCIES
+  Vc.a
   KF
   KFParticle
   Base
@@ -304,7 +305,6 @@ Install(FILES CbmL1Counters.h
   L1Algo/L1Constants.h
   L1Algo/L1Utils.h
   L1Algo/L1NaN.h
-  vectors/vec_arithmetic.h
   vectors/std_alloc.h
   DESTINATION include
 )
diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx
index a002a0d46b..ea920eba8a 100644
--- a/reco/L1/CbmL1Performance.cxx
+++ b/reco/L1/CbmL1Performance.cxx
@@ -1238,24 +1238,26 @@ void CbmL1::TrackFitPerformance()
       fld.Set(B[0], z[0], B[1], z[1], B[2], z[2]);
       L1Extrapolate(trPar, mcP.zIn, trPar.qp, fld);
 
-      double dx = trPar.x[0] - mcP.xIn;
-      double dy = trPar.y[0] - mcP.yIn;
+      const L1TrackPar& tr = trPar;
+
+      double dx = tr.x[0] - mcP.xIn;
+      double dy = tr.y[0] - mcP.yIn;
       double dt = sqrt(dx * dx + dy * dy);
       // make dt distance negative for the half of the tracks to ease the gaussian fit and the rms calculation
       if (mc.ID % 2) dt = -dt;
       double pt = sqrt(mcP.px * mcP.px + mcP.py * mcP.py);
       h_fit[0]->Fill(dx * 1.e4);
       h_fit[1]->Fill(dy * 1.e4);
-      h_fit[2]->Fill((trPar.tx[0] - mcP.pxIn / mcP.pzIn) * 1.e3);
-      h_fit[3]->Fill((trPar.ty[0] - mcP.pyIn / mcP.pzIn) * 1.e3);
-      h_fit[4]->Fill(fabs(1. / trPar.qp[0]) / mcP.p - 1);
+      h_fit[2]->Fill((tr.tx[0] - mcP.pxIn / mcP.pzIn) * 1.e3);
+      h_fit[3]->Fill((tr.ty[0] - mcP.pyIn / mcP.pzIn) * 1.e3);
+      h_fit[4]->Fill(fabs(1. / tr.qp[0]) / mcP.p - 1);
 
-      PRes2D->Fill(mcP.p, (1. / fabs(trPar.qp[0]) - mcP.p) / mcP.p * 100.);
+      PRes2D->Fill(mcP.p, (1. / fabs(tr.qp[0]) - mcP.p) / mcP.p * 100.);
 
       CbmL1MCTrack mcTrack = *(it->GetMCTracks()[0]);
 
       if (mcTrack.IsPrimary()) {
-        PRes2DPrim->Fill(mcP.p, (1. / fabs(trPar.qp[0]) - mcP.p) / mcP.p * 100.);
+        PRes2DPrim->Fill(mcP.p, (1. / fabs(tr.qp[0]) - mcP.p) / mcP.p * 100.);
 
         if (abs(mcTrack.pdg) == 211) {
           pion_res_p_fstt->Fill(mcP.p, dt * 1.e4);
@@ -1271,23 +1273,19 @@ void CbmL1::TrackFitPerformance()
         }
       }
       else {
-        PRes2DSec->Fill(mcP.p, (1. / fabs(trPar.qp[0]) - mcP.p) / mcP.p * 100.);
+        PRes2DSec->Fill(mcP.p, (1. / fabs(tr.qp[0]) - mcP.p) / mcP.p * 100.);
       }
 
-      if (std::isfinite(trPar.C00[0]) && trPar.C00[0] > 0) h_fit[5]->Fill((trPar.x[0] - mcP.xIn) / sqrt(trPar.C00[0]));
-      if (std::isfinite(trPar.C11[0]) && trPar.C11[0] > 0) h_fit[6]->Fill((trPar.y[0] - mcP.yIn) / sqrt(trPar.C11[0]));
-      if (std::isfinite(trPar.C22[0]) && trPar.C22[0] > 0)
-        h_fit[7]->Fill((trPar.tx[0] - mcP.pxIn / mcP.pzIn) / sqrt(trPar.C22[0]));
-      if (std::isfinite(trPar.C33[0]) && trPar.C33[0] > 0)
-        h_fit[8]->Fill((trPar.ty[0] - mcP.pyIn / mcP.pzIn) / sqrt(trPar.C33[0]));
-      if (std::isfinite(trPar.C44[0]) && trPar.C44[0] > 0)
-        h_fit[9]->Fill((trPar.qp[0] - mcP.q / mcP.p) / sqrt(trPar.C44[0]));
-      h_fit[10]->Fill(trPar.qp[0]);
+      if (std::isfinite(tr.C00[0]) && tr.C00[0] > 0) h_fit[5]->Fill((tr.x[0] - mcP.xIn) / sqrt(tr.C00[0]));
+      if (std::isfinite(tr.C11[0]) && tr.C11[0] > 0) h_fit[6]->Fill((tr.y[0] - mcP.yIn) / sqrt(tr.C11[0]));
+      if (std::isfinite(tr.C22[0]) && tr.C22[0] > 0) h_fit[7]->Fill((tr.tx[0] - mcP.pxIn / mcP.pzIn) / sqrt(tr.C22[0]));
+      if (std::isfinite(tr.C33[0]) && tr.C33[0] > 0) h_fit[8]->Fill((tr.ty[0] - mcP.pyIn / mcP.pzIn) / sqrt(tr.C33[0]));
+      if (std::isfinite(tr.C44[0]) && tr.C44[0] > 0) h_fit[9]->Fill((tr.qp[0] - mcP.q / mcP.p) / sqrt(tr.C44[0]));
+      h_fit[10]->Fill(tr.qp[0]);
       h_fit[11]->Fill(mcP.q / mcP.p);
-      if (last_station > fNMvdStations) h_fit[12]->Fill(trPar.t[0] - mcP.time);
+      if (last_station > fNMvdStations) h_fit[12]->Fill(tr.t[0] - mcP.time);
       if (last_station > fNMvdStations)
-        if (std::isfinite(trPar.C55[0]) && trPar.C55[0] > 0)
-          h_fit[13]->Fill((trPar.t[0] - mcP.time) / sqrt(trPar.C55[0]));
+        if (std::isfinite(tr.C55[0]) && tr.C55[0] > 0) h_fit[13]->Fill((tr.t[0] - mcP.time) / sqrt(tr.C55[0]));
 
 #else
       int iMC = fvHitPointIndexes[it->Hits.front()];  // TODO2: adapt to linking
@@ -1351,29 +1349,27 @@ void CbmL1::TrackFitPerformance()
       fld.Set(B[0], z[0], B[1], z[1], B[2], z[2]);
       L1Extrapolate(trPar, mcP.zOut, trPar.qp, fld);
 
-      h_fitL[0]->Fill((trPar.x[0] - mcP.xOut) * 1.e4);
-      h_fitL[1]->Fill((trPar.y[0] - mcP.yOut) * 1.e4);
-      h_fitL[2]->Fill((trPar.tx[0] - mcP.pxOut / mcP.pzOut) * 1.e3);
-      h_fitL[3]->Fill((trPar.ty[0] - mcP.pyOut / mcP.pzOut) * 1.e3);
-      h_fitL[4]->Fill(fabs(1. / trPar.qp[0]) / mcP.p - 1);
-      if (last_station > fNMvdStations) h_fitL[12]->Fill(trPar.t[0] - mcP.time);
-
-
-      if (std::isfinite(trPar.C00[0]) && trPar.C00[0] > 0)
-        h_fitL[5]->Fill((trPar.x[0] - mcP.xOut) / sqrt(trPar.C00[0]));
-      if (std::isfinite(trPar.C11[0]) && trPar.C11[0] > 0)
-        h_fitL[6]->Fill((trPar.y[0] - mcP.yOut) / sqrt(trPar.C11[0]));
-      if (std::isfinite(trPar.C22[0]) && trPar.C22[0] > 0)
-        h_fitL[7]->Fill((trPar.tx[0] - mcP.pxOut / mcP.pzOut) / sqrt(trPar.C22[0]));
-      if (std::isfinite(trPar.C33[0]) && trPar.C33[0] > 0)
-        h_fitL[8]->Fill((trPar.ty[0] - mcP.pyOut / mcP.pzOut) / sqrt(trPar.C33[0]));
-      if (std::isfinite(trPar.C44[0]) && trPar.C44[0] > 0)
-        h_fitL[9]->Fill((trPar.qp[0] - mcP.q / mcP.p) / sqrt(trPar.C44[0]));
-      h_fitL[10]->Fill(trPar.qp[0]);
+      const L1TrackPar& tr = trPar;
+
+      h_fitL[0]->Fill((tr.x[0] - mcP.xOut) * 1.e4);
+      h_fitL[1]->Fill((tr.y[0] - mcP.yOut) * 1.e4);
+      h_fitL[2]->Fill((tr.tx[0] - mcP.pxOut / mcP.pzOut) * 1.e3);
+      h_fitL[3]->Fill((tr.ty[0] - mcP.pyOut / mcP.pzOut) * 1.e3);
+      h_fitL[4]->Fill(fabs(1. / tr.qp[0]) / mcP.p - 1);
+      if (last_station > fNMvdStations) h_fitL[12]->Fill(tr.t[0] - mcP.time);
+
+
+      if (std::isfinite(tr.C00[0]) && tr.C00[0] > 0) h_fitL[5]->Fill((tr.x[0] - mcP.xOut) / sqrt(tr.C00[0]));
+      if (std::isfinite(tr.C11[0]) && tr.C11[0] > 0) h_fitL[6]->Fill((tr.y[0] - mcP.yOut) / sqrt(tr.C11[0]));
+      if (std::isfinite(tr.C22[0]) && tr.C22[0] > 0)
+        h_fitL[7]->Fill((tr.tx[0] - mcP.pxOut / mcP.pzOut) / sqrt(tr.C22[0]));
+      if (std::isfinite(tr.C33[0]) && tr.C33[0] > 0)
+        h_fitL[8]->Fill((tr.ty[0] - mcP.pyOut / mcP.pzOut) / sqrt(tr.C33[0]));
+      if (std::isfinite(tr.C44[0]) && tr.C44[0] > 0) h_fitL[9]->Fill((tr.qp[0] - mcP.q / mcP.p) / sqrt(tr.C44[0]));
+      h_fitL[10]->Fill(tr.qp[0]);
       h_fitL[11]->Fill(mcP.q / mcP.p);
       if (last_station > fNMvdStations)
-        if (std::isfinite(trPar.C55[0]) && trPar.C55[0] > 0)
-          h_fitL[13]->Fill((trPar.t[0] - mcP.time) / sqrt(trPar.C55[0]));
+        if (std::isfinite(tr.C55[0]) && tr.C55[0] > 0) h_fitL[13]->Fill((tr.t[0] - mcP.time) / sqrt(tr.C55[0]));
 #else
       CbmL1MCPoint& mc = fvMCPoints[iMC];
 
@@ -1435,9 +1431,12 @@ void CbmL1::TrackFitPerformance()
           }
         }
         if (mc.z != trPar.z[0]) continue;
+
+        const L1TrackPar& tr = trPar;
+
         //       static int good = 0;
         //       static int bad = 0;
-        //       if (mc.z != trPar.z[0]){
+        //       if (mc.z != tr.z[0]){
         //         bad++;
         //         continue;
         //       }
@@ -1445,26 +1444,22 @@ void CbmL1::TrackFitPerformance()
         //       cout << "bad\\good" << bad << " " << good << endl;
 
         // calculate pulls
-        //h_fitSV[0]->Fill( (mc.x-trPar.x[0]) *1.e4);
-        //h_fitSV[1]->Fill( (mc.y-trPar.y[0]) *1.e4);
-        h_fitSV[0]->Fill((trPar.x[0] - mc.x));
-        h_fitSV[1]->Fill((trPar.y[0] - mc.y));
-        h_fitSV[2]->Fill((trPar.tx[0] - mc.px / mc.pz) * 1.e3);
-        h_fitSV[3]->Fill((trPar.ty[0] - mc.py / mc.pz) * 1.e3);
-        h_fitSV[4]->Fill(fabs(1. / trPar.qp[0]) / mc.p - 1);
-        if (std::isfinite(trPar.C00[0]) && trPar.C00[0] > 0) h_fitSV[5]->Fill((trPar.x[0] - mc.x) / sqrt(trPar.C00[0]));
-        if (std::isfinite(trPar.C11[0]) && trPar.C11[0] > 0) h_fitSV[6]->Fill((trPar.y[0] - mc.y) / sqrt(trPar.C11[0]));
-        if (std::isfinite(trPar.C22[0]) && trPar.C22[0] > 0)
-          h_fitSV[7]->Fill((trPar.tx[0] - mc.px / mc.pz) / sqrt(trPar.C22[0]));
-        if (std::isfinite(trPar.C33[0]) && trPar.C33[0] > 0)
-          h_fitSV[8]->Fill((trPar.ty[0] - mc.py / mc.pz) / sqrt(trPar.C33[0]));
-        if (std::isfinite(trPar.C44[0]) && trPar.C44[0] > 0)
-          h_fitSV[9]->Fill((trPar.qp[0] - mc.q / mc.p) / sqrt(trPar.C44[0]));
-        h_fitSV[10]->Fill(trPar.qp[0]);
+        //h_fitSV[0]->Fill( (mc.x-tr.x[0]) *1.e4);
+        //h_fitSV[1]->Fill( (mc.y-tr.y[0]) *1.e4);
+        h_fitSV[0]->Fill((tr.x[0] - mc.x));
+        h_fitSV[1]->Fill((tr.y[0] - mc.y));
+        h_fitSV[2]->Fill((tr.tx[0] - mc.px / mc.pz) * 1.e3);
+        h_fitSV[3]->Fill((tr.ty[0] - mc.py / mc.pz) * 1.e3);
+        h_fitSV[4]->Fill(fabs(1. / tr.qp[0]) / mc.p - 1);
+        if (std::isfinite(tr.C00[0]) && tr.C00[0] > 0) h_fitSV[5]->Fill((tr.x[0] - mc.x) / sqrt(tr.C00[0]));
+        if (std::isfinite(tr.C11[0]) && tr.C11[0] > 0) h_fitSV[6]->Fill((tr.y[0] - mc.y) / sqrt(tr.C11[0]));
+        if (std::isfinite(tr.C22[0]) && tr.C22[0] > 0) h_fitSV[7]->Fill((tr.tx[0] - mc.px / mc.pz) / sqrt(tr.C22[0]));
+        if (std::isfinite(tr.C33[0]) && tr.C33[0] > 0) h_fitSV[8]->Fill((tr.ty[0] - mc.py / mc.pz) / sqrt(tr.C33[0]));
+        if (std::isfinite(tr.C44[0]) && tr.C44[0] > 0) h_fitSV[9]->Fill((tr.qp[0] - mc.q / mc.p) / sqrt(tr.C44[0]));
+        h_fitSV[10]->Fill(tr.qp[0]);
         h_fitSV[11]->Fill(mc.q / mc.p);
-        h_fitSV[12]->Fill(trPar.t[0] - mc.time);
-        if (std::isfinite(trPar.C55[0]) && trPar.C55[0] > 0)
-          h_fitSV[13]->Fill((trPar.t[0] - mc.time) / sqrt(trPar.C55[0]));
+        h_fitSV[12]->Fill(tr.t[0] - mc.time);
+        if (std::isfinite(tr.C55[0]) && tr.C55[0] > 0) h_fitSV[13]->Fill((tr.t[0] - mc.time) / sqrt(tr.C55[0]));
       }
       else {  // primary
 
@@ -1527,8 +1522,10 @@ void CbmL1::TrackFitPerformance()
         }
         if (mc.z != trPar.z[0]) continue;
 
-        double dx = trPar.x[0] - mc.x;
-        double dy = trPar.y[0] - mc.y;
+        const L1TrackPar& tr = trPar;
+
+        double dx = tr.x[0] - mc.x;
+        double dy = tr.y[0] - mc.y;
         double dt = sqrt(dx * dx + dy * dy);
         // make dt distance negative for the half of the tracks to ease the gaussian fit and the rms calculation
         if (mc.ID % 2) dt = -dt;
@@ -1549,24 +1546,20 @@ void CbmL1::TrackFitPerformance()
         }
 
         // calculate pulls
-        h_fitPV[0]->Fill((mc.x - trPar.x[0]));
-        h_fitPV[1]->Fill((mc.y - trPar.y[0]));
-        h_fitPV[2]->Fill((mc.px / mc.pz - trPar.tx[0]) * 1.e3);
-        h_fitPV[3]->Fill((mc.py / mc.pz - trPar.ty[0]) * 1.e3);
-        h_fitPV[4]->Fill(fabs(1 / trPar.qp[0]) / mc.p - 1);
-        if (std::isfinite(trPar.C00[0]) && trPar.C00[0] > 0) h_fitPV[5]->Fill((mc.x - trPar.x[0]) / sqrt(trPar.C00[0]));
-        if (std::isfinite(trPar.C11[0]) && trPar.C11[0] > 0) h_fitPV[6]->Fill((mc.y - trPar.y[0]) / sqrt(trPar.C11[0]));
-        if (std::isfinite(trPar.C22[0]) && trPar.C22[0] > 0)
-          h_fitPV[7]->Fill((mc.px / mc.pz - trPar.tx[0]) / sqrt(trPar.C22[0]));
-        if (std::isfinite(trPar.C33[0]) && trPar.C33[0] > 0)
-          h_fitPV[8]->Fill((mc.py / mc.pz - trPar.ty[0]) / sqrt(trPar.C33[0]));
-        if (std::isfinite(trPar.C44[0]) && trPar.C44[0] > 0)
-          h_fitPV[9]->Fill((mc.q / mc.p - trPar.qp[0]) / sqrt(trPar.C44[0]));
-        h_fitPV[10]->Fill(trPar.qp[0]);
+        h_fitPV[0]->Fill((mc.x - tr.x[0]));
+        h_fitPV[1]->Fill((mc.y - tr.y[0]));
+        h_fitPV[2]->Fill((mc.px / mc.pz - tr.tx[0]) * 1.e3);
+        h_fitPV[3]->Fill((mc.py / mc.pz - tr.ty[0]) * 1.e3);
+        h_fitPV[4]->Fill(fabs(1 / tr.qp[0]) / mc.p - 1);
+        if (std::isfinite(tr.C00[0]) && tr.C00[0] > 0) h_fitPV[5]->Fill((mc.x - tr.x[0]) / sqrt(tr.C00[0]));
+        if (std::isfinite(tr.C11[0]) && tr.C11[0] > 0) h_fitPV[6]->Fill((mc.y - tr.y[0]) / sqrt(tr.C11[0]));
+        if (std::isfinite(tr.C22[0]) && tr.C22[0] > 0) h_fitPV[7]->Fill((mc.px / mc.pz - tr.tx[0]) / sqrt(tr.C22[0]));
+        if (std::isfinite(tr.C33[0]) && tr.C33[0] > 0) h_fitPV[8]->Fill((mc.py / mc.pz - tr.ty[0]) / sqrt(tr.C33[0]));
+        if (std::isfinite(tr.C44[0]) && tr.C44[0] > 0) h_fitPV[9]->Fill((mc.q / mc.p - tr.qp[0]) / sqrt(tr.C44[0]));
+        h_fitPV[10]->Fill(tr.qp[0]);
         h_fitPV[11]->Fill(mc.q / mc.p);
-        h_fitPV[12]->Fill(mc.time - trPar.t[0]);
-        if (std::isfinite(trPar.C55[0]) && trPar.C55[0] > 0)
-          h_fitPV[13]->Fill((mc.time - trPar.t[0]) / sqrt(trPar.C55[0]));
+        h_fitPV[12]->Fill(mc.time - tr.t[0]);
+        if (std::isfinite(tr.C55[0]) && tr.C55[0] > 0) h_fitPV[13]->Fill((mc.time - tr.t[0]) / sqrt(tr.C55[0]));
 #else
         FairTrackParam fTP;
 
diff --git a/reco/L1/L1Algo/utils/L1AlgoPulls.cxx b/reco/L1/L1Algo/utils/L1AlgoPulls.cxx
index 796c8c9bc5..269ad148cc 100644
--- a/reco/L1/L1Algo/utils/L1AlgoPulls.cxx
+++ b/reco/L1/L1Algo/utils/L1AlgoPulls.cxx
@@ -113,16 +113,18 @@ void L1AlgoPulls::AddOne(L1TrackPar& T_, int i, L1HitIndex_t ih)
   if (T_.chi2[i] > csCut * T_.NDF[i]) return;
   // get error
   TL1TrackParameters err;
-  if (!(finite(T_.C00[i]) && T_.C00[i] > 0)) return;
-  if (!(finite(T_.C11[i]) && T_.C11[i] > 0)) return;
-  if (!(finite(T_.C22[i]) && T_.C22[i] > 0)) return;
-  if (!(finite(T_.C33[i]) && T_.C33[i] > 0)) return;
-  if (!(finite(T_.C44[i]) && T_.C44[i] > 0)) return;
-  err.x  = sqrt(T_.C00[i]);
-  err.y  = sqrt(T_.C11[i]);
-  err.tx = sqrt(T_.C22[i]);
-  err.ty = sqrt(T_.C33[i]);
-  err.qp = sqrt(T_.C44[i]);
+  const L1TrackPar& tr = T_;
+
+  if (!(finite(tr.C00[i]) && tr.C00[i] > 0)) return;
+  if (!(finite(tr.C11[i]) && tr.C11[i] > 0)) return;
+  if (!(finite(tr.C22[i]) && tr.C22[i] > 0)) return;
+  if (!(finite(tr.C33[i]) && tr.C33[i] > 0)) return;
+  if (!(finite(tr.C44[i]) && tr.C44[i] > 0)) return;
+  err.x  = sqrt(tr.C00[i]);
+  err.y  = sqrt(tr.C11[i]);
+  err.tx = sqrt(tr.C22[i]);
+  err.ty = sqrt(tr.C33[i]);
+  err.qp = sqrt(tr.C44[i]);
 
   // mc data
   int iMCP = fL1->fvHitPointIndexes[ih];
diff --git a/reco/detectors/trd/CMakeLists.txt b/reco/detectors/trd/CMakeLists.txt
index 1a597c1d90..67d9216f7f 100644
--- a/reco/detectors/trd/CMakeLists.txt
+++ b/reco/detectors/trd/CMakeLists.txt
@@ -110,6 +110,7 @@ Set(DEPENDENCIES
   Base
   CbmTrdBase
   TMVA
+  Vc.a
 )
 
 GENERATE_LIBRARY()
diff --git a/reco/eventbuilder/CMakeLists.txt b/reco/eventbuilder/CMakeLists.txt
index 9c19042b0d..dbbd738472 100644
--- a/reco/eventbuilder/CMakeLists.txt
+++ b/reco/eventbuilder/CMakeLists.txt
@@ -89,7 +89,7 @@ ENDIF (SSE_FOUND)
 set(LINKDEF CbmEventBuilderLinkDef.h)
 Set(LIBRARY_NAME CbmEventBuilder)
 Set(DEPENDENCIES
-    CbmData CbmBase CbmField CbmStsBase CbmMvd Base CbmQaBase
+    CbmData CbmBase CbmField CbmStsBase CbmMvd Base CbmQaBase Vc.a
 )
 
 GENERATE_LIBRARY()
diff --git a/reco/littrack/CMakeLists.txt b/reco/littrack/CMakeLists.txt
index 15cd7a0194..cb31c94913 100644
--- a/reco/littrack/CMakeLists.txt
+++ b/reco/littrack/CMakeLists.txt
@@ -50,6 +50,7 @@ ${CBMDETECTORBASE_DIR}/rich/utils
 
 ${CBMROOT_SOURCE_DIR}/reco/KF
 ${CBMROOT_SOURCE_DIR}/reco/KF/Interface
+${CBMROOT_SOURCE_DIR}/reco/L1/vectors 
 
 ${CBMROOT_SOURCE_DIR}/run
 )
diff --git a/reco/littrack/parallel/CMakeLists.txt b/reco/littrack/parallel/CMakeLists.txt
index 770175e4dd..8aa95f147c 100644
--- a/reco/littrack/parallel/CMakeLists.txt
+++ b/reco/littrack/parallel/CMakeLists.txt
@@ -1,40 +1,41 @@
 # Create a library called "libLittrackparallel".
 
 set(INCLUDE_DIRECTORIES
-
+  ${CBMROOT_SOURCE_DIR}/reco/L1/vectors
 )
 
-include_directories( ${INCLUDE_DIRECTORIES})
+include_directories(${INCLUDE_DIRECTORIES})
 
 set(LINK_DIRECTORIES
-
+  ${Vc_LIB_DIR}
 )
 
 link_directories(${LINK_DIRECTORIES})
 
 set(LITTRACKPARALLEL_SRCS
-    LitTrackFinderNN.cxx
+  LitTrackFinderNN.cxx
 )
 
 set(LITTRACKPARALLEL_HEADERS
-
 )
 
 if(RULE_CHECKER_FOUND)
   CHECK_RULES("${LITTRACKPARALLEL_SRCS}" "${INCLUDE_DIRECTORIES}" LITTRACKPARALLEL_RULES)
 endif(RULE_CHECKER_FOUND)
 
-IF (SSE_FOUND)
+IF(SSE_FOUND)
   ADD_DEFINITIONS(-DHAVE_SSE)
   SET_SOURCE_FILES_PROPERTIES(${LITTRACKPARALLEL_SRCS} PROPERTIES COMPILE_FLAGS "-msse -O3 ")
   Message(STATUS "Littrackparallel will be compiled with SSE support")
-ELSE (SSE_FOUND)
+ELSE(SSE_FOUND)
   Message(STATUS "Littrackparallel will be compiled without SSE support")
   SET_SOURCE_FILES_PROPERTIES(${LITTRACKPARALLEL_SRCS} PROPERTIES COMPILE_FLAGS "-O3 ")
-ENDIF (SSE_FOUND)
+ENDIF(SSE_FOUND)
 
 add_library(Littrackparallel SHARED ${LITTRACKPARALLEL_SRCS})
 set_target_properties(Littrackparallel PROPERTIES ${FAIRROOT_LIBRARY_PROPERTIES})
 
-#install(TARGETS Littrackparallel DESTINATION ${CMAKE_BINARY_DIR}/lib)
+target_link_libraries(Littrackparallel Vc.a)
+
+# install(TARGETS Littrackparallel DESTINATION ${CMAKE_BINARY_DIR}/lib)
 install(TARGETS Littrackparallel DESTINATION lib)
diff --git a/reco/littrack/parallel/LitTypes.h b/reco/littrack/parallel/LitTypes.h
index ac7dc2706c..ebb98961d3 100644
--- a/reco/littrack/parallel/LitTypes.h
+++ b/reco/littrack/parallel/LitTypes.h
@@ -12,11 +12,6 @@
 #ifndef LITTYPES_H_
 #define LITTYPES_H_
 
-#ifdef HAVE_SSE
-#include "vectors/P4_F32vec4.h"
-#else
-#include "vectors/PSEUDO_F32vec1.h"
-#error LitNoSseFound
-#endif
+#include "L1vecVc.h"
 
 #endif /* LITTYPES_H_ */
-- 
GitLab