From 964439ec90c7f62ad833e32eb447fc0bb2accefe Mon Sep 17 00:00:00 2001
From: Florian Uhlig <f.uhlig@gsi.de>
Date: Fri, 29 Jul 2022 18:31:40 +0200
Subject: [PATCH] Use isfinite function instead of finite function

The C function to check if a number is finite is 'isfinite()'. Obviously the
'finite()' function is from C89 and was deprecated with C99 but not yet
removed. At least with the default compiler on macosx 12.5 (arm64) the function
was removed so we switch to 'isfinite()'.
---
 reco/KF/CbmKFFieldMath.cxx                    |  4 +--
 reco/KF/CbmKFMath.cxx                         |  2 +-
 reco/KF/CbmKFPixelMeasurement.cxx             |  5 +--
 reco/KF/CbmKFUMeasurement.cxx                 |  6 ++--
 reco/KF/Interface/CbmPVFinderKF.cxx           |  4 +--
 .../KF/Interface/CbmStsFitPerformanceTask.cxx |  6 ++--
 reco/KF/Interface/CbmStsKFTrackFitter.cxx     |  8 ++---
 reco/KF/KFQA/CbmKFTrackFitQa.cxx              | 32 +++++++++----------
 8 files changed, 35 insertions(+), 32 deletions(-)

diff --git a/reco/KF/CbmKFFieldMath.cxx b/reco/KF/CbmKFFieldMath.cxx
index f79b626e92..884923b800 100644
--- a/reco/KF/CbmKFFieldMath.cxx
+++ b/reco/KF/CbmKFFieldMath.cxx
@@ -951,10 +951,10 @@ Int_t CbmKFFieldMath::ExtrapolateALight(const Double_t T_in[],  // input track p
   {
     bool ok = 1;
     for (int i = 0; i < 6; i++)
-      ok = ok && finite(T_in[i]) && (T_in[i] < 1.e5);
+      ok = ok && isfinite(T_in[i]) && (T_in[i] < 1.e5);
     if (C_in)
       for (int i = 0; i < 15; i++)
-        ok = ok && finite(C_in[i]);
+        ok = ok && isfinite(C_in[i]);
     if (!ok) {
       for (int i = 0; i < 6; i++)
         T_out[i] = 0;
diff --git a/reco/KF/CbmKFMath.cxx b/reco/KF/CbmKFMath.cxx
index cb30b20b93..a9cb33cba7 100644
--- a/reco/KF/CbmKFMath.cxx
+++ b/reco/KF/CbmKFMath.cxx
@@ -725,7 +725,7 @@ Int_t CbmKFMath::GetNoise(Double_t Lrl, Double_t F, Double_t Fe, Double_t tx, Do
   *Q9        = 0;
   *Ecor      = 1.;
   Double_t t = sqrt(1. + tx * tx + ty * ty);
-  if (!finite(t) || t > 1.e4) return 1;
+  if (!isfinite(t) || t > 1.e4) return 1;
   t          = sqrt(t);
   Double_t l = t * Lrl;
   if (l > 1.) l = 1.;  // protect against l too big
diff --git a/reco/KF/CbmKFPixelMeasurement.cxx b/reco/KF/CbmKFPixelMeasurement.cxx
index 0a486c5738..d3e150c024 100644
--- a/reco/KF/CbmKFPixelMeasurement.cxx
+++ b/reco/KF/CbmKFPixelMeasurement.cxx
@@ -6,6 +6,7 @@
 
 #include <cmath>
 
+using std::isfinite;
 using std::vector;
 
 ClassImp(CbmKFPixelMeasurement);
@@ -19,12 +20,12 @@ Int_t CbmKFPixelMeasurement::Filter(CbmKFTrackInterface& track)
   Double_t* C = track.GetCovMatrix();
 
   Double_t w = (C[0] + V[0]) * (C[2] + V[2]) - (C[1] + V[1]) * (C[1] + V[1]);
-  if (w < 1.E-20 || !finite(w)) {
+  if (w < 1.E-20 || !isfinite(w)) {
     err = 1;
     return err;
   }
   w = 1. / w;
-  if (!finite(w)) return 1;
+  if (!isfinite(w)) return 1;
 
   Double_t W[3]    = {w * (C[2] + V[2]), -w * (C[1] + V[1]), w * (C[0] + V[0])};
   Double_t zeta[2] = {T[0] - x, T[1] - y};
diff --git a/reco/KF/CbmKFUMeasurement.cxx b/reco/KF/CbmKFUMeasurement.cxx
index 0066a67a20..b7938711db 100644
--- a/reco/KF/CbmKFUMeasurement.cxx
+++ b/reco/KF/CbmKFUMeasurement.cxx
@@ -6,6 +6,8 @@
 
 #include <cmath>
 
+using std::isfinite;
+
 ClassImp(CbmKFUMeasurement)
 
   void CbmKFUMeasurement::Set(Double_t z_, Double_t u_, Double_t phi_, Double_t sigma2_)
@@ -28,9 +30,9 @@ Int_t CbmKFUMeasurement::Filter(CbmKFTrackInterface& track)
   Double_t* C = track.GetCovMatrix();
 
   Double_t W = sigma2 + phi_cc * C[0] + phi_2sc * C[1] + phi_ss * C[2];
-  if (!finite(W) || W < 1.e-10) return 1;
+  if (!isfinite(W) || W < 1.e-10) return 1;
   W = 1. / W;
-  if (!finite(W)) return 1;
+  if (!isfinite(W)) return 1;
 
   Double_t zeta = phi_c * T[0] + phi_s * T[1] - u;
 
diff --git a/reco/KF/Interface/CbmPVFinderKF.cxx b/reco/KF/Interface/CbmPVFinderKF.cxx
index 873f8695df..0adca96f47 100644
--- a/reco/KF/Interface/CbmPVFinderKF.cxx
+++ b/reco/KF/Interface/CbmPVFinderKF.cxx
@@ -33,7 +33,7 @@ ClassImp(CbmPVFinderKF)
     if (st->GetChiSq() < 0. || st->GetChiSq() > 3.5 * 3.5 * st->GetNDF()) continue;
     CbmKFTrack& T = CloneArray[i];
     T.SetStsTrack(*st);
-    if (!finite(T.GetTrack()[0]) || !finite(T.GetCovMatrix()[0])) continue;
+    if (!isfinite(T.GetTrack()[0]) || !isfinite(T.GetCovMatrix()[0])) continue;
     Finder.AddTrack(&T);
   }
   CbmKFVertex v;
@@ -70,7 +70,7 @@ Int_t CbmPVFinderKF::FindEventVertex(CbmEvent* event, TClonesArray* tracks)
       continue;
     CbmKFTrack& kTrack = trackArray[iTrack];
     kTrack.SetStsTrack(*track);
-    if (!finite(kTrack.GetTrack()[0]) || !finite(kTrack.GetCovMatrix()[0])) continue;
+    if (!isfinite(kTrack.GetTrack()[0]) || !isfinite(kTrack.GetCovMatrix()[0])) continue;
     vFinder.AddTrack(&kTrack);
   }
 
diff --git a/reco/KF/Interface/CbmStsFitPerformanceTask.cxx b/reco/KF/Interface/CbmStsFitPerformanceTask.cxx
index 915984512f..9206a881ab 100644
--- a/reco/KF/Interface/CbmStsFitPerformanceTask.cxx
+++ b/reco/KF/Interface/CbmStsFitPerformanceTask.cxx
@@ -496,7 +496,7 @@ void CbmStsFitPerformanceTask::Exec(Option_t* /*option*/)
         FairTrackParam paramI;
         fFitter.Extrapolate(trackI, z[iz], &paramI);
         CbmKFMath::CopyTrackParam2TC(&paramI, sT[iTrack][iz], sC[iTrack][iz]);
-        if (!finite(sC[iTrack][iz][0]) || sC[iTrack][iz][0] < 0 || sC[iTrack][iz][0] > 10.) {
+        if (!isfinite(sC[iTrack][iz][0]) || sC[iTrack][iz][0] < 0 || sC[iTrack][iz][0] > 10.) {
           flag[iTrack] = 0;
           break;
         }
@@ -850,9 +850,9 @@ void CbmStsFitPerformanceTask::FillTrackHisto(const Double_t mc[6], CbmStsTrack*
   CbmKFMath::CopyTrackParam2TC(&param, t, c);
   Bool_t ok = 1;
   for (int i = 0; i < 6; i++)
-    ok = ok && finite(t[i]);
+    ok = ok && isfinite(t[i]);
   for (int i = 0; i < 15; i++)
-    ok = ok && finite(c[i]);
+    ok = ok && isfinite(c[i]);
   if (!ok) return;
   //fhExtraTracks2ndMVD->Fill(t[0], t[1]);
 
diff --git a/reco/KF/Interface/CbmStsKFTrackFitter.cxx b/reco/KF/Interface/CbmStsKFTrackFitter.cxx
index 3310416c4d..b50a9bc484 100644
--- a/reco/KF/Interface/CbmStsKFTrackFitter.cxx
+++ b/reco/KF/Interface/CbmStsKFTrackFitter.cxx
@@ -205,7 +205,7 @@ Double_t CbmStsKFTrackFitter::FitToVertex(CbmStsTrack* track, CbmVertex* vtx, Fa
   T.GetTrackParam(*v_track);
   if (T.GetRefNDF() > 0 && T.GetRefChi2() >= 0) {
     ret = T.GetRefChi2() / T.GetRefNDF();
-    if (finite(ret)) ret = sqrt(ret);
+    if (isfinite(ret)) ret = sqrt(ret);
   }
   return ret;
 }
@@ -216,10 +216,10 @@ Bool_t CbmStsKFTrackFitter::CheckTrack(CbmKFTrack& T)
   Double_t* t = T.GetTrack();
   Double_t* c = T.GetCovMatrix();
   for (int i = 0; i < 6; i++)
-    ok = ok && finite(t[i]) && TMath::Abs(t[i]) < 1.e5;
+    ok = ok && isfinite(t[i]) && TMath::Abs(t[i]) < 1.e5;
   for (int i = 0; i < 15; i++)
-    ok = ok && finite(c[i]);
-  ok = ok && finite(T.GetMass()) && finite(T.GetRefChi2());
+    ok = ok && isfinite(c[i]);
+  ok = ok && isfinite(T.GetMass()) && isfinite(T.GetRefChi2());
   if (ok) {
     ok = ok && (c[0] > 0);
     ok = ok && (c[2] > 0);
diff --git a/reco/KF/KFQA/CbmKFTrackFitQa.cxx b/reco/KF/KFQA/CbmKFTrackFitQa.cxx
index 18c32875d7..18dd1a5c51 100644
--- a/reco/KF/KFQA/CbmKFTrackFitQa.cxx
+++ b/reco/KF/KFQA/CbmKFTrackFitQa.cxx
@@ -308,20 +308,20 @@ void CbmKFTrackFitQa::FillHistoAtParticleVertex(CbmMCTrack* track_mc, CbmKFTrack
   res_AtPV_y->Fill(ddy);
   res_AtPV_tx->Fill(ddtx);
   res_AtPV_ty->Fill(ddty);
-  if (finite(fT[4]) && (fabs(fT[4]) > 1.e-20)) res_AtPV_qp->Fill(ddqp);
+  if (isfinite(fT[4]) && (fabs(fT[4]) > 1.e-20)) res_AtPV_qp->Fill(ddqp);
   //pulls of the parameters
-  if (finite(fC[0]) && fC[0] > 0) pull_AtPV_x->Fill(ddx / sqrt(fC[0]));
-  if (finite(fC[2]) && fC[2] > 0) pull_AtPV_y->Fill(ddy / sqrt(fC[2]));
-  if (finite(fC[5]) && fC[5] > 0) pull_AtPV_tx->Fill(ddtx / sqrt(fC[5]));
-  if (finite(fC[9]) && fC[9] > 0) pull_AtPV_ty->Fill(ddty / sqrt(fC[9]));
-  if (finite(fC[14]) && fC[14] > 0) pull_AtPV_qp->Fill(ddqp_p / sqrt(fC[14]));
+  if (isfinite(fC[0]) && fC[0] > 0) pull_AtPV_x->Fill(ddx / sqrt(fC[0]));
+  if (isfinite(fC[2]) && fC[2] > 0) pull_AtPV_y->Fill(ddy / sqrt(fC[2]));
+  if (isfinite(fC[5]) && fC[5] > 0) pull_AtPV_tx->Fill(ddtx / sqrt(fC[5]));
+  if (isfinite(fC[9]) && fC[9] > 0) pull_AtPV_ty->Fill(ddty / sqrt(fC[9]));
+  if (isfinite(fC[14]) && fC[14] > 0) pull_AtPV_qp->Fill(ddqp_p / sqrt(fC[14]));
 
-  if (finite(fT[4]) && (fabs(fT[4]) > 1.e-20)) {
+  if (isfinite(fT[4]) && (fabs(fT[4]) > 1.e-20)) {
     if (qtrack == (fabs(fT[4]) / fT[4])) q_QA->Fill(P_mc, 100.0);
     else
       q_QA->Fill(P_mc, 0.0);
 
-    if (finite(fC[14]) && fC[14] > 0) dp_p->Fill(P_mc, fabs(1. / fT[4]) * sqrt(fC[14]) * 100, 1);
+    if (isfinite(fC[14]) && fC[14] > 0) dp_p->Fill(P_mc, fabs(1. / fT[4]) * sqrt(fC[14]) * 100, 1);
   }
 }
 
@@ -394,20 +394,20 @@ void CbmKFTrackFitQa::FillHistoAtFirstPoint(CbmKFTrErrMCPoints* mc_points, CbmMC
     res_AtFP_y->Fill(ddy * 10000.);
     res_AtFP_tx->Fill(ddtx);
     res_AtFP_ty->Fill(ddty);
-    if (finite(fT[4]) && (fabs(fT[4]) > 1.e-20)) res_AtFP_qp->Fill(ddqp);
+    if (isfinite(fT[4]) && (fabs(fT[4]) > 1.e-20)) res_AtFP_qp->Fill(ddqp);
     //pulls of the parameters
-    if (finite(fC[0]) && fC[0] > 0) pull_AtFP_x->Fill(ddx / sqrt(fC[0]));
-    if (finite(fC[2]) && fC[2] > 0) pull_AtFP_y->Fill(ddy / sqrt(fC[2]));
-    if (finite(fC[5]) && fC[5] > 0) pull_AtFP_tx->Fill(ddtx / sqrt(fC[5]));
-    if (finite(fC[9]) && fC[9] > 0) pull_AtFP_ty->Fill(ddty / sqrt(fC[9]));
-    if (finite(fC[14]) && fC[14] > 0) pull_AtFP_qp->Fill(ddqp_p / sqrt(fC[14]));
+    if (isfinite(fC[0]) && fC[0] > 0) pull_AtFP_x->Fill(ddx / sqrt(fC[0]));
+    if (isfinite(fC[2]) && fC[2] > 0) pull_AtFP_y->Fill(ddy / sqrt(fC[2]));
+    if (isfinite(fC[5]) && fC[5] > 0) pull_AtFP_tx->Fill(ddtx / sqrt(fC[5]));
+    if (isfinite(fC[9]) && fC[9] > 0) pull_AtFP_ty->Fill(ddty / sqrt(fC[9]));
+    if (isfinite(fC[14]) && fC[14] > 0) pull_AtFP_qp->Fill(ddqp_p / sqrt(fC[14]));
 
-    if (finite(fT[4]) && (fabs(fT[4]) > 1.e-20)) {
+    if (isfinite(fT[4]) && (fabs(fT[4]) > 1.e-20)) {
       if (qtrack == (fabs(fT[4]) / fT[4])) q_QA->Fill(P_mc, 100.0);
       else
         q_QA->Fill(P_mc, 0.0);
 
-      if (finite(fC[14]) && fC[14] > 0) dp_p->Fill(P_mc, fabs(1. / fT[4]) * sqrt(fC[14]) * 100, 1);
+      if (isfinite(fC[14]) && fC[14] > 0) dp_p->Fill(P_mc, fabs(1. / fT[4]) * sqrt(fC[14]) * 100, 1);
     }
     //cout << ddx <<"  "<< ddx/sqrt(fC[0]) << endl;
   }
-- 
GitLab