diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx
index 70996109620b874d097e9833d466a74940266403..f71cb12b6c0dcd0238c83e4e2903aa5318c84811 100644
--- a/reco/L1/CbmL1Performance.cxx
+++ b/reco/L1/CbmL1Performance.cxx
@@ -1946,20 +1946,19 @@ void CbmL1::InputPerformance()
         mcPos.SetY(pt->GetYIn() + t * (pt->GetYOut() - pt->GetYIn()));
         mcPos.SetZ(hitPos.Z());
 
-#if 0    // standard errors
-      if (hitErr.X() != 0) pullXsts->Fill( (hitPos.X() - mcPos.X()) / hitErr.X() ); // standard errors
-      if (hitErr.Y() != 0) pullYsts->Fill( (hitPos.Y() - mcPos.Y()) / hitErr.Y() );
-#elif 1  // qa errors
-        if (hitErr.X() != 0) pullXsts->Fill((hitPos.X() - mcPos.X()) / sh->GetDx());  // qa errors
-        if (hitErr.Y() != 0) pullYsts->Fill((hitPos.Y() - mcPos.Y()) / sh->GetDy());
-
-        pullTsts->Fill((sh->GetTime() - mcTime) / sh->GetTimeError());
-#else    // errors used in TF
-        if (hitErr.X() != 0)
+        if (0) {  // standard errors
+          if (hitErr.X() > 1.e-8) pullXsts->Fill((hitPos.X() - mcPos.X()) / hitErr.X());
+          if (hitErr.Y() > 1.e-8) pullYsts->Fill((hitPos.Y() - mcPos.Y()) / hitErr.Y());
+        }
+        else if (1) {  // qa errors
+          if (sh->GetDx() > 1.e-8) pullXsts->Fill((hitPos.X() - mcPos.X()) / sh->GetDx());
+          if (sh->GetDy() > 1.e-8) pullYsts->Fill((hitPos.Y() - mcPos.Y()) / sh->GetDy());
+          pullTsts->Fill((sh->GetTime() - mcTime) / sh->GetTimeError());
+        }
+        else {  // errors used in TF
           pullXsts->Fill((hitPos.X() - mcPos.X()) / sqrt(algo->vStations[NMvdStations].XYInfo.C00[0]));
-        if (hitErr.Y() != 0)
           pullYsts->Fill((hitPos.Y() - mcPos.Y()) / sqrt(algo->vStations[NMvdStations].XYInfo.C11[0]));
-#endif
+        }
 
         resXsts->Fill((hitPos.X() - mcPos.X()) * 10 * 1000);
         resYsts->Fill((hitPos.Y() - mcPos.Y()) * 10 * 1000);
@@ -2060,20 +2059,19 @@ void CbmL1::InputPerformance()
       mcPos.SetY(0.5 * (pt->GetYIn() + pt->GetYOut()));
       mcPos.SetZ(hitPos.Z());
 
-#if 0    // standard errors
-      if (hitErr.X() != 0) pullXmuch->Fill( (hitPos.X() - mcPos.X()) / hitErr.X() ); // standard errors
-      if (hitErr.Y() != 0) pullYmuch->Fill( (hitPos.Y() - mcPos.Y()) / hitErr.Y() );
-#elif 1  // qa errors
-      if (hitErr.X() != 0) pullXmuch->Fill((h.x - mcPos.X()) / sh->GetDx());  // qa errors
-      if (hitErr.Y() != 0) pullYmuch->Fill((h.y - mcPos.Y()) / sh->GetDy());
-
-      pullTmuch->Fill((h.t - mcTime) / sh->GetTimeError());
-#else    // errors used in TF
-      if (hitErr.X() != 0)
+      if (0) {  // standard errors
+        if (hitErr.X() > 1.e-8) pullXmuch->Fill((hitPos.X() - mcPos.X()) / hitErr.X());
+        if (hitErr.Y() > 1.e-8) pullYmuch->Fill((hitPos.Y() - mcPos.Y()) / hitErr.Y());
+      }
+      else if (1) {  // qa errors
+        if (sh->GetDx() > 1.e-8) pullXmuch->Fill((h.x - mcPos.X()) / sh->GetDx());
+        if (sh->GetDy() > 1.e-8) pullYmuch->Fill((h.y - mcPos.Y()) / sh->GetDy());
+        pullTmuch->Fill((h.t - mcTime) / sh->GetTimeError());
+      }
+      else {  // errors used in TF
         pullXmuch->Fill((hitPos.X() - mcPos.X()) / sqrt(algo->vStations[NMvdStations].XYInfo.C00[0]));
-      if (hitErr.Y() != 0)
         pullYmuch->Fill((hitPos.Y() - mcPos.Y()) / sqrt(algo->vStations[NMvdStations].XYInfo.C11[0]));
-#endif
+      }
 
       resXmuch->Fill((h.x - mcPos.X()) * 10 * 1000);
       resYmuch->Fill((h.y - mcPos.Y()) * 10 * 1000);
@@ -2128,18 +2126,19 @@ void CbmL1::InputPerformance()
       mcPos.SetY((pt->GetYIn() + pt->GetYOut()) / 2.);
       mcPos.SetZ(hitPos.Z());
 
-#if 0    // standard errors
-    if (hitErr.X() != 0) pullXtrd->Fill( (hitPos.X() - mcPos.X()) / hitErr.X() ); // standard errors
-    if (hitErr.Y() != 0) pullYtrd->Fill( (hitPos.Y() - mcPos.Y()) / hitErr.Y() );
-#elif 1  // qa errors
-      if (hitErr.X() != 0) pullXtrd->Fill((h.x - mcPos.X()) / sh->GetDx());  // qa errors
-      if (hitErr.Y() != 0) pullYtrd->Fill((h.y - mcPos.Y()) / sh->GetDy());
-
-      pullTtrd->Fill((h.t - mcTime) / sh->GetTimeError());
-#else    // errors used in TF
-      if (hitErr.X() != 0) pullXtrd->Fill((hitPos.X() - mcPos.X()) / sqrt(algo->vStations[NMvdStations].XYInfo.C00[0]));
-      if (hitErr.Y() != 0) pullYtrd->Fill((hitPos.Y() - mcPos.Y()) / sqrt(algo->vStations[NMvdStations].XYInfo.C11[0]));
-#endif
+      if (0) {  // standard errors
+        if (hitErr.X() > 1.e-8) pullXtrd->Fill((hitPos.X() - mcPos.X()) / hitErr.X());
+        if (hitErr.Y() > 1.e-8) pullYtrd->Fill((hitPos.Y() - mcPos.Y()) / hitErr.Y());
+      }
+      else if (1) {  // qa errors
+        if (sh->GetDx() > 1.e-8) pullXtrd->Fill((h.x - mcPos.X()) / sh->GetDx());
+        if (sh->GetDy() > 1.e-8) pullYtrd->Fill((h.y - mcPos.Y()) / sh->GetDy());
+        pullTtrd->Fill((h.t - mcTime) / sh->GetTimeError());
+      }
+      else {  // errors used in TF
+        pullXtrd->Fill((hitPos.X() - mcPos.X()) / sqrt(algo->vStations[NMvdStations].XYInfo.C00[0]));
+        pullYtrd->Fill((hitPos.Y() - mcPos.Y()) / sqrt(algo->vStations[NMvdStations].XYInfo.C11[0]));
+      }
 
       resXtrd->Fill((h.x - mcPos.X()) * 10 * 1000);
       resYtrd->Fill((h.y - mcPos.Y()) * 10 * 1000);
@@ -2195,18 +2194,19 @@ void CbmL1::InputPerformance()
       mcPos.SetY((pt->GetY()));
       mcPos.SetZ(hitPos.Z());
 
-#if 0    // standard errors
-    if (hitErr.X() != 0) pullXmuch->Fill( (hitPos.X() - mcPos.X()) / hitErr.X() ); // standard errors
-    if (hitErr.Y() != 0) pullYmuch->Fill( (hitPos.Y() - mcPos.Y()) / hitErr.Y() );
-#elif 1  // qa errors
-      if (hitErr.X() != 0) pullXtof->Fill((h.x - mcPos.X()) / sh->GetDx());  // qa errors
-      if (hitErr.Y() != 0) pullYtof->Fill((h.y - mcPos.Y()) / sh->GetDy());
-
-      pullTtof->Fill((sh->GetTime() - mcTime) / sh->GetTimeError());
-#else    // errors used in TF
-      if (hitErr.X() != 0) pullXtof->Fill((hitPos.X() - mcPos.X()) / sqrt(algo->vStations[NMvdStations].XYInfo.C00[0]));
-      if (hitErr.Y() != 0) pullYtof->Fill((hitPos.Y() - mcPos.Y()) / sqrt(algo->vStations[NMvdStations].XYInfo.C11[0]));
-#endif
+      if (0) {  // standard errors
+        if (hitErr.X() > 1.e-8) pullXmuch->Fill((hitPos.X() - mcPos.X()) / hitErr.X());
+        if (hitErr.Y() > 1.e-8) pullYmuch->Fill((hitPos.Y() - mcPos.Y()) / hitErr.Y());
+      }
+      else if (1) {  // qa errors
+        if (sh->GetDx() > 1.e-8) pullXtof->Fill((h.x - mcPos.X()) / sh->GetDx());
+        if (sh->GetDy() > 1.e-8) pullYtof->Fill((h.y - mcPos.Y()) / sh->GetDy());
+        pullTtof->Fill((sh->GetTime() - mcTime) / sh->GetTimeError());
+      }
+      else {  // errors used in TF
+        pullXtof->Fill((hitPos.X() - mcPos.X()) / sqrt(algo->vStations[NMvdStations].XYInfo.C00[0]));
+        pullYtof->Fill((hitPos.Y() - mcPos.Y()) / sqrt(algo->vStations[NMvdStations].XYInfo.C11[0]));
+      }
 
       resXtof->Fill((h.x - mcPos.X()) * 10 * 1000);
       resYtof->Fill((h.y - mcPos.Y()) * 10 * 1000);