From c4cd757d93502d53ab07273706d014c081709994 Mon Sep 17 00:00:00 2001 From: drslebedev <dr.s.lebedev@gmail.com> Date: Mon, 19 Jul 2021 10:48:48 +0200 Subject: [PATCH] RICH track projection: Check for NaN in the input track params. --- .../rich/tracks/CbmRichProjectionProducerAnalytical.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/reco/detectors/rich/tracks/CbmRichProjectionProducerAnalytical.cxx b/reco/detectors/rich/tracks/CbmRichProjectionProducerAnalytical.cxx index e73f76c932..df5958d2e4 100644 --- a/reco/detectors/rich/tracks/CbmRichProjectionProducerAnalytical.cxx +++ b/reco/detectors/rich/tracks/CbmRichProjectionProducerAnalytical.cxx @@ -87,6 +87,9 @@ void CbmRichProjectionProducerAnalytical::DoProjection(CbmEvent* event, TClonesA if (trPar->GetX() == 0 && trPar->GetY() == 0 && trPar->GetZ() == 0 && trPar->GetTx() == 0 && trPar->GetTy() == 0) continue; if (trPar->GetQp() == 0) continue; + if (TMath::IsNaN(trPar->GetX()) || TMath::IsNaN(trPar->GetY()) || TMath::IsNaN(trPar->GetZ()) + || TMath::IsNaN(trPar->GetTx()) || TMath::IsNaN(trPar->GetTy()) || TMath::IsNaN(trPar->GetQp())) + continue; Double_t rho1 = 0.; TVector3 startP, momP, crossP, centerP; @@ -95,7 +98,7 @@ void CbmRichProjectionProducerAnalytical::DoProjection(CbmEvent* event, TClonesA Double_t p = 1. / TMath::Abs(trPar->GetQp()); Double_t pz; Double_t pz2 = 1 + trPar->GetTx() * trPar->GetTx() + trPar->GetTy() * trPar->GetTy(); - if (pz2 > 0.) pz = p / TMath::Sqrt(pz2); + if (pz2 > 0.) { pz = p / TMath::Sqrt(pz2); } else { LOG(error) << "CbmRichProjectionProducerAnalytical::DoProjection(): strange value for calculating pz: " << pz2; pz = 0.; -- GitLab