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], ¶mI); CbmKFMath::CopyTrackParam2TC(¶mI, 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(¶m, 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