diff --git a/reco/detectors/rich/tracks/CbmRichProjectionProducerAnalytical.cxx b/reco/detectors/rich/tracks/CbmRichProjectionProducerAnalytical.cxx index e73f76c9329c74e449cfcf2b58e9976bc4da4ab3..df5958d2e483260e77fd610576162ce6269176d7 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.;