Index: /trunk/MagicSoft/Mars/mbadpixels/MBadPixelsPix.h
===================================================================
--- /trunk/MagicSoft/Mars/mbadpixels/MBadPixelsPix.h	(revision 3423)
+++ /trunk/MagicSoft/Mars/mbadpixels/MBadPixelsPix.h	(revision 3424)
@@ -28,5 +28,5 @@
       kHiGainFitted          = BIT(3),
       kLoGainFitted          = BIT(4), 
-      kCalcChargeNotPedestal = BIT(5),
+      kCalcChargePedestal    = BIT(5),
       kCalcChargeErrValid    = BIT(6),
       kCalcChargeRelErrValid = BIT(7),
@@ -103,6 +103,6 @@
     void   SetNoCalcChargeErrValid( CalibrationType_t typ=kCalcChargeErrValid )   { fInfo[1] &= ~typ; }
 
-    void   SetCalcChargeNotPedestal  ( CalibrationType_t typ=kCalcChargeNotPedestal )   { fInfo[1] |=  typ; }
-    void   SetNoCalcChargeNotPedestal( CalibrationType_t typ=kCalcChargeNotPedestal )   { fInfo[1] &= ~typ; }
+    void   SetCalcChargePedestal  ( CalibrationType_t typ=kCalcChargePedestal )   { fInfo[1] |=  typ; }
+    void   SetNoCalcChargePedestal( CalibrationType_t typ=kCalcChargePedestal )   { fInfo[1] &= ~typ; }
 
     void   SetLoGainFitted  ( CalibrationType_t typ=kLoGainFitted )   { fInfo[1] |=  typ; }
@@ -121,8 +121,35 @@
     Bool_t IsOK() const  { return fInfo[0]==0; }
     Bool_t IsBad() const { return fInfo[0]!=0; }
+
     Bool_t IsLoGainBad() const { return (fInfo[1]&kLoGainSaturation
                                          || !(fInfo[1]&kConversionHiLoValid)
                                          || fInfo[1]&kLoGainOscillating ); }    
-
+    Bool_t IsHiGainBad() const { return ( fInfo[1]&kHiGainSaturation
+                                           && !(fInfo[1]&kConversionHiLoValid) )
+                                   || fInfo[1]&kHiGainOscillating ;    }
+    Bool_t IsCalibrationSignalOK() const  { return !( fInfo[1]&kCalcChargePedestal
+                                                     || !(fInfo[1]&kCalcChargeErrValid)
+                                                     || !(fInfo[1]&kCalcChargeRelErrValid)
+                                                     || !(fInfo[1]&kCalcChargeSigmaValid)
+                                                     || fInfo[1]&kMeanTimeInFirstBin
+                                                     || fInfo[1]&kMeanTimeInLastBin ) ;  }
+    Bool_t IsCalibrationFitOK() const    { return ( fInfo[1]&kHiGainSaturation && kHiGainFitted )
+                                             || ( fInfo[1]&kLoGainSaturation && kLoGainFitted ) ; }
+    Bool_t IsCalibrationOscillating() const  { return ( fInfo[1]&kHiGainSaturation && kHiGainOscillating )
+                                                 || ( fInfo[1]&kLoGainSaturation && kLoGainOscillating ) ; }
+    Bool_t IsCalibrationResultOK() const  {  return ( IsCalibrationSignalOK()
+                                                      && !(IsCalibrationOscillating())
+                                                      && IsCalibrationFitOK()
+                                                      && (!fInfo[1]&kHiGainSaturation && !(IsHiGainBad())
+                                                          || fInfo[1]&kHiGainSaturation && !(IsLoGainBad())) );}
+    Bool_t IsCalibrationFFactorMethodOK() const  { return ( IsCalibrationResultOK()
+                                                            && (fInfo[1]&kFFactorMethodValid)) ; }
+    Bool_t IsCalibrationBlindPixelMethodOK() const  { return ( IsCalibrationResultOK()
+                                                            && (fInfo[1]&kBlindPixelMethodValid)) ; }
+    Bool_t IsCalibrationPINDiodeMethodOK() const  { return ( IsCalibrationResultOK()
+                                                            && (fInfo[1]&kPINDiodeMethodValid)) ; }
+    Bool_t IsCalibrationCombinedMethodOK() const  { return ( IsCalibrationResultOK()
+                                                            && (fInfo[1]&kCombinedMethodValid)) ; }
+    
     void Merge(const MBadPixelsPix &pix);
 
