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.;