From 2e4df957843e7e700852e97baa84f67badab3f9c Mon Sep 17 00:00:00 2001
From: Yukihide Ochi <yukihide.ochi@cern.ch>
Date: Fri, 6 May 2022 14:40:56 +0200
Subject: [PATCH] L2MuonSA clean up

---
 .../TrigL2MuonSA/src/AlphaBetaEstimate.cxx    | 16 +++++-----
 .../TrigL2MuonSA/src/MuFastSteering.cxx       |  8 ++---
 .../TrigL2MuonSA/src/PtFromRadius.cxx         |  3 ++
 .../TrigL2MuonSA/src/TrackData.h              | 32 +++++++++----------
 4 files changed, 31 insertions(+), 28 deletions(-)

diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/AlphaBetaEstimate.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/AlphaBetaEstimate.cxx
index 738d90ebf22..4cf329b673b 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/AlphaBetaEstimate.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/AlphaBetaEstimate.cxx
@@ -193,14 +193,14 @@ StatusCode TrigL2MuonSA::AlphaBetaEstimate::setAlphaBeta(const TrigRoiDescriptor
     
   }
 
-  if (MiddleZ && OuterZ) {
+  if (!isZero(MiddleZ) && !isZero(OuterZ)) {
     double slope = (OuterR-MiddleR)/(OuterZ-MiddleZ);
     double inter = MiddleR - slope*MiddleZ;    
     
     trackPattern.endcapAlpha = (*m_ptEndcapLUT)->alpha(MiddleZ,MiddleR,OuterZ,OuterR);
     trackPattern.slope       = slope; 
     trackPattern.intercept   = inter;    
-    if (InnerR) {
+    if (!isZero(InnerR)) {
       trackPattern.endcapBeta   = std::abs( std::atan(InnerSlope) - std::atan(slope) ); 
       trackPattern.deltaR       = slope * InnerZ + MiddleIntercept - InnerR;
       double sign               = trackPattern.deltaR / std::abs(trackPattern.deltaR);
@@ -208,7 +208,7 @@ StatusCode TrigL2MuonSA::AlphaBetaEstimate::setAlphaBeta(const TrigRoiDescriptor
 		                              slope,      MiddleR, MiddleZ,
 					      sign);
     } 
-    if (CSCZ) {
+    if (!isZero(CSCZ)) {
       if(trackPattern.large_dPhidZ && (6==trackPattern.phiBin || 7==trackPattern.phiBin) ){
 	trackPattern.cscGamma = std::abs( std::atan( (MiddleR-CSCR)/(MiddleZ-CSCZ) ) - std::atan(MiddleSlope) );
       }else{     
@@ -220,7 +220,7 @@ StatusCode TrigL2MuonSA::AlphaBetaEstimate::setAlphaBeta(const TrigRoiDescriptor
     }
   } else {    
     if( trackPattern.pt >= 8. || !tgcFitResult.isSuccess) {
-      if(MiddleZ) {
+      if(!isZero(MiddleZ)) {
 	double Ze = MiddleZ+(std::abs(MiddleZ)/MiddleZ)*1000.;
 	double Re = MiddleSlope*(Ze) + MiddleIntercept;
 	
@@ -230,7 +230,7 @@ StatusCode TrigL2MuonSA::AlphaBetaEstimate::setAlphaBeta(const TrigRoiDescriptor
       }      
     } 
     
-    if (MiddleZ && InnerZ) {
+    if (!isZero(MiddleZ) && !isZero(InnerZ)) {
       trackPattern.endcapBeta   = std::abs( std::atan(InnerSlope) - std::atan(MiddleSlope) );
       trackPattern.deltaR       = MiddleSlope*InnerZ + MiddleIntercept - InnerR;
       double sign               = trackPattern.deltaR / std::abs(trackPattern.deltaR);
@@ -238,20 +238,20 @@ StatusCode TrigL2MuonSA::AlphaBetaEstimate::setAlphaBeta(const TrigRoiDescriptor
 						MiddleSlope, MiddleR, MiddleZ,
 						sign);
     }
-    if(MiddleZ && CSCZ){
+    if(!isZero(MiddleZ) && !isZero(CSCZ)){
       trackPattern.cscGamma = std::abs( std::atan( (MiddleR-CSCR)/(MiddleZ-CSCZ) ) - std::atan(MiddleSlope) );
     }
   }
 
   double distance=9999;//distance between track and IP
   if (std::abs(EEZ)>10000 && std::abs(EEZ)<10600){//Small
-      if ( (EBIZ && EEZ) && MiddleZ ){
+      if ( (!isZero(EBIZ) && !isZero(EEZ)) && !isZero(MiddleZ) ){
         trackPattern.endcapRadius3P = computeRadius3Points(EBIZ, EBIR, EEZ, EER, MiddleZ, MiddleR);
         distance = calcDistance(EBIZ, EBIR, EEZ, EER, MiddleZ, MiddleR);
       }
     }
   if (std::abs(EEZ)>10600 && std::abs(EEZ)<12000){//Large
-    if ( (InnerZ && EEZ) && MiddleZ ){
+    if ( (!isZero(InnerZ) && !isZero(EEZ)) && !isZero(MiddleZ) ){
       trackPattern.endcapRadius3P = computeRadius3Points(InnerZ, InnerR, EEZ, EER, MiddleZ, MiddleR);
       distance = calcDistance(InnerZ, InnerR, EEZ, EER, MiddleZ, MiddleR);
     }
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx
index c39edadfd96..7d3ba88de03 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/MuFastSteering.cxx
@@ -1414,8 +1414,8 @@ StatusCode MuFastSteering::findMuonSignatureIO(const xAOD::TrackParticleContaine
       muonCB->setStrategy(-9);
       muonCB->setErrorFlag(-9);
       muonCB->setPt(0);
-      muonCB->setEta(0);
-      muonCB->setPhi(0);
+      muonCB->setEta(99999.);
+      muonCB->setPhi(99999.);
       ElementLink<xAOD::L2StandAloneMuonContainer> muonSAEL(outputSAs, outputSAs.size()-1);
       muonCB->setMuSATrackLink(muonSAEL);
       outputCBs.push_back(muonCB);
@@ -1724,8 +1724,8 @@ StatusCode MuFastSteering::findMuonSignatureIO(const xAOD::TrackParticleContaine
       muonCB->setStrategy(-9);
       muonCB->setErrorFlag(-9);
       muonCB->setPt(0);
-      muonCB->setEta(0);
-      muonCB->setPhi(0);
+      muonCB->setEta(99999.);
+      muonCB->setPhi(99999.);
       ElementLink<xAOD::L2StandAloneMuonContainer> muonSAEL(outputSAs, outputSAs.size()-1);
       muonCB->setMuSATrackLink(muonSAEL);
       outputCBs.push_back(muonCB);
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtFromRadius.cxx b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtFromRadius.cxx
index ded9d599809..9c2609692f5 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtFromRadius.cxx
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/PtFromRadius.cxx
@@ -59,6 +59,9 @@ StatusCode TrigL2MuonSA::PtFromRadius::setPt(TrigL2MuonSA::TrackPattern& trackPa
     if(phibin<=-1) phibin = 0;
     if(phibin>=lut.NbinPhi[add]) phibin = lut.NbinPhi[add]-1;
 
+    trackPattern.etaBin = etabin;
+    trackPattern.phiBin = phibin;
+
     disteta = trackPattern.etaMap - (etabin*lut.EtaStep[add] +
         lut.EtaStep[add]/2. + lut.EtaMin[add]);
     distphi = trackPattern.phiMap - (phibin*lut.PhiStep[add] + 
diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TrackData.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TrackData.h
index 801d5caddf7..7968b60515e 100644
--- a/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TrackData.h
+++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/src/TrackData.h
@@ -20,23 +20,23 @@ class TrackPattern
  TrackPattern() :
    pt(0),
    charge(0),
-   etaVtx(0),
-   phiVtx(0),
-   deltaPt(0),
-   deltaEtaVtx(0),
-   deltaPhiVtx(0),
-   s_address(-1),
-   phiMS(0),
-   phiMSDir(0),
-   etaMap(0),
-   phiMap(0),
-   etaBin(0),
-   phiBin(0),
-   phiBinEE(0),
+   etaVtx(99999.),
+   phiVtx(99999.),
+   deltaPt(99999.),
+   deltaEtaVtx(99999.),
+   deltaPhiVtx(99999.),
+   s_address(99999),
+   phiMS(99999.),
+   phiMSDir(99999.),
+   etaMap(99999.),
+   phiMap(99999.),
+   etaBin(99999),
+   phiBin(99999),
+   phiBinEE(99999),
    barrelRadius(0),
-   barrelSagitta(0),
-   endcapAlpha(0),
-   endcapBeta(0),
+   barrelSagitta(99999.),
+   endcapAlpha(99999.),
+   endcapBeta(99999.),
    endcapRadius(0),
    endcapRadius3P(0),
    cscGamma(0),
-- 
GitLab