From e1303ec58e733a7e32e76d58cd14628246db4dd0 Mon Sep 17 00:00:00 2001
From: Tobias Boeckh <tobias.boeckh@cern.ch>
Date: Sun, 12 Jun 2022 23:29:19 +0200
Subject: [PATCH] set negative charge to -1 not 0

---
 Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx           | 3 ++-
 .../Acts/FaserActsKalmanFilter/src/KalmanFitterTool.cxx    | 7 +++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
index e7563242..3782556b 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/CKF2.cxx
@@ -421,7 +421,8 @@ CKF2::ConvertActsTrackParameterToATLAS(const Acts::BoundTrackParameters &actsPar
   double tqOverP=actsParameter.get<Acts::eBoundQOverP>()*1_MeV;
   double p = std::abs(1. / tqOverP);
   Amg::Vector3D tmom(p * std::cos(tphi) * std::sin(ttheta), p * std::sin(tphi) * std::sin(ttheta), p * std::cos(ttheta));
-  const Trk::CurvilinearParameters * curv = new Trk::CurvilinearParameters(pos,tmom,tqOverP>0, cov);
+  double charge = tqOverP > 0. ? 1. : -1.;
+  const Trk::CurvilinearParameters * curv = new Trk::CurvilinearParameters(pos,tmom,charge, cov);
   return curv;
 }
 
diff --git a/Tracking/Acts/FaserActsKalmanFilter/src/KalmanFitterTool.cxx b/Tracking/Acts/FaserActsKalmanFilter/src/KalmanFitterTool.cxx
index 52aae1d0..f1f8b1c6 100644
--- a/Tracking/Acts/FaserActsKalmanFilter/src/KalmanFitterTool.cxx
+++ b/Tracking/Acts/FaserActsKalmanFilter/src/KalmanFitterTool.cxx
@@ -221,9 +221,7 @@ KalmanFitterTool::getParametersFromTrack(const Trk::TrackParameters *inputParame
     params(1.0) = center[Trk::locX];
     params(2.0) = atlasParam[Trk::phi0];
     params(3.0) = atlasParam[Trk::theta];
-    // input charge is 1 for positively charged particles and 0 for negatively charged particles!
-    double charge = 2 * inputParameters->charge() - 1;
-    params(4.0) = charge / (inputParameters->momentum().norm() * 1_MeV);
+    params(4.0) = inputParameters->charge() / (inputParameters->momentum().norm() * 1_MeV);
     params(5.0) = 0.;
   } else {
     params = inputVector;
@@ -348,7 +346,8 @@ KalmanFitterTool::ConvertActsTrackParameterToATLAS(const Acts::BoundTrackParamet
   double tqOverP=actsParameter.get<Acts::eBoundQOverP>()*1_MeV;
   double p = std::abs(1. / tqOverP);
   Amg::Vector3D tmom(p * std::cos(tphi) * std::sin(ttheta), p * std::sin(tphi) * std::sin(ttheta), p * std::cos(ttheta));
-  const Trk::CurvilinearParameters * curv = new Trk::CurvilinearParameters(pos,tmom,tqOverP>0, cov);
+  double charge = tqOverP > 0. ? 1. : -1.;
+  const Trk::CurvilinearParameters * curv = new Trk::CurvilinearParameters(pos,tmom,charge, cov);
   return curv;
 }
 
-- 
GitLab