Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 2995)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 2996)
@@ -108,4 +108,9 @@
    * manalysis/MCalibrationCalc.cc
      - retrieve default arrival time from MRawEvt 
+
+   * manalysis/MCalibrationBlindPix.cc
+   * manalysis/MCalibrationPix.cc
+     - check for NaN's in fit results
+
 
  2004/01/29: Abelardo Moralejo
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationBlindPix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationBlindPix.cc	(revision 2995)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationBlindPix.cc	(revision 2996)
@@ -92,15 +92,15 @@
     return kFALSE;
   
-  fLambda = fHist->GetLambda();
-  fMu0    = fHist->GetMu0();
-  fMu1    = fHist->GetMu1();
-  fSigma0 = fHist->GetSigma0();
-  fSigma1 = fHist->GetSigma1();
+  fLambda = TMath::IsNaN(fHist->GetLambda()) ? -1. : fHist->GetLambda();
+  fMu0    = TMath::IsNaN(fHist->GetMu0())    ? -1. : fHist->GetMu0();
+  fMu1    = TMath::IsNaN(fHist->GetMu1())    ? -1. : fHist->GetMu1();
+  fSigma0 = TMath::IsNaN(fHist->GetSigma0()) ? -1. : fHist->GetSigma0();
+  fSigma1 = TMath::IsNaN(fHist->GetSigma1()) ? -1. : fHist->GetSigma1();
 
-  fErrLambda = fHist->GetLambdaErr();
-  fErrMu0    = fHist->GetMu0Err();
-  fErrMu1    = fHist->GetMu1Err();
-  fErrSigma0 = fHist->GetSigma0Err();
-  fErrSigma1 = fHist->GetSigma1Err();
+  fErrLambda = TMath::IsNaN(fHist->GetLambdaErr()) ? -1. : fHist->GetLambdaErr();
+  fErrMu0    = TMath::IsNaN(fHist->GetMu0Err())    ? -1. : fHist->GetMu0Err();
+  fErrMu1    = TMath::IsNaN(fHist->GetMu1Err())    ? -1. : fHist->GetMu1Err();
+  fErrSigma0 = TMath::IsNaN(fHist->GetSigma0Err()) ? -1. : fHist->GetSigma0Err();
+  fErrSigma1 = TMath::IsNaN(fHist->GetSigma1Err()) ? -1. : fHist->GetSigma1Err();
 
   return kTRUE;
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationPix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationPix.cc	(revision 2995)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationPix.cc	(revision 2996)
@@ -319,5 +319,5 @@
 // The fits are declared valid (fFitValid = kTRUE), if:
 //
-// 1) Pixel has a fitted charge greater than 5*PedRMS
+// 1) Pixel has a fitted charge greater than 3*PedRMS
 // 2) Pixel has a fit error greater than 0.
 // 3) Pixel has a fit Probability greater than 0.0001 
@@ -513,6 +513,7 @@
 // The check return kTRUE if:
 //
-// 1) Pixel has a fitted charge greater than 5*PedRMS
-// 2) Pixel has a fit error greater than 0.
+// 0) No value is nan
+// 1) Pixel has a fitted charge greater than 3*PedRMS
+// 2) Pixel has a fit error greater than 0. 
 // 3) Pixel has a fitted charge greater its charge error
 // 4) Pixel has a fit Probability greater than 0.0001 
@@ -521,4 +522,16 @@
 Bool_t MCalibrationPix::CheckChargeFitValidity()
 {
+
+  if (TMath::IsNaN(fCharge)
+      || TMath::IsNaN(fErrCharge)
+      || TMath::IsNaN(fErrCharge)
+      || TMath::IsNaN(fSigmaCharge)
+      || TMath::IsNaN(fErrSigmaCharge)
+      || TMath::IsNaN(fChargeProb))
+    {
+      *fLog << warn << "WARNING: Some of the fit values are NAN in Pixel " << fPixId << endl;
+      return kFALSE;
+    }
+  
 
   if (TESTBIT(fFlags,kExcludeQualityCheck))
