Index: trunk/MagicSoft/Mars/mbadpixels/MBadPixelsCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/mbadpixels/MBadPixelsCalc.cc	(revision 3126)
+++ trunk/MagicSoft/Mars/mbadpixels/MBadPixelsCalc.cc	(revision 3420)
@@ -51,5 +51,5 @@
 //
 //  Output Containers:
-//   MBadPixles
+//   MBadPixels
 //
 /////////////////////////////////////////////////////////////////////////////
@@ -150,5 +150,5 @@
 
         if (pixPedRms*nratio > fPedestalLevel * meanPedRMS || pixPedRms == 0)
-            (*fBadPixels)[i].SetUnsuitable(MBadPixelsPix::kUnsuitableEvt);
+            (*fBadPixels)[i].SetUnsuitableEvt(MBadPixelsPix::kUnsuitableEvt);
     }
 }
Index: trunk/MagicSoft/Mars/mbadpixels/MBadPixelsCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mbadpixels/MBadPixelsCam.cc	(revision 3126)
+++ trunk/MagicSoft/Mars/mbadpixels/MBadPixelsCam.cc	(revision 3420)
@@ -210,5 +210,5 @@
             InitSize(idx);
 
-        (*this)[idx].SetUnsuitable();
+        (*this)[idx].SetUnsuitableRun();
     }
 }
@@ -225,5 +225,5 @@
 
     for (int i=0; i<GetSize(); i++)
-        if ((*this)[i].IsUnsuitable())
+        if ((*this)[i].IsUnsuitableRun())
             fout << " " << i;
 
Index: trunk/MagicSoft/Mars/mbadpixels/MBadPixelsPix.h
===================================================================
--- trunk/MagicSoft/Mars/mbadpixels/MBadPixelsPix.h	(revision 3126)
+++ trunk/MagicSoft/Mars/mbadpixels/MBadPixelsPix.h	(revision 3420)
@@ -19,8 +19,29 @@
 
     enum UnsuitableType_t {
-        kUnsuitableRun = BIT(1),
-        kUnsuitableEvt = BIT(2)
+        kUnsuitableRun    = BIT(1),
+        kUnsuitableEvt    = BIT(2)
     };
 
+    enum CalibrationType_t {
+      kHiGainSaturation      = BIT(1),
+      kLoGainSaturation      = BIT(2),
+      kHiGainFitted          = BIT(3),
+      kLoGainFitted          = BIT(4), 
+      kCalcChargeNotPedestal = BIT(5),
+      kCalcChargeErrValid    = BIT(6),
+      kCalcChargeRelErrValid = BIT(7),
+      kCalcChargeSigmaValid  = BIT(8),
+      kConversionHiLoValid   = BIT(9),      
+      kHiGainOscillating     = BIT(10),
+      kLoGainOscillating     = BIT(11),
+      kMeanTimeInFirstBin    = BIT(12),
+      kMeanTimeInLastBin     = BIT(13), 
+      kBlindPixelMethodValid = BIT(14),
+      kFFactorMethodValid    = BIT(15), 
+      kPINDiodeMethodValid   = BIT(16),
+      kCombinedMethodValid   = BIT(17)
+    };
+    
+      
     static const Char_t fgRunMask; // All types which are not event wise determined
 
@@ -33,13 +54,74 @@
 
     // Setter
-    void   SetUnsuitable(UnsuitableType_t typ=kUnsuitableRun) { fInfo[0] |=  typ; }
-    void   SetSuitable(UnsuitableType_t typ=kUnsuitableRun)   { fInfo[0] &= ~typ; }
+    void   SetUnsuitableRun(UnsuitableType_t typ=kUnsuitableRun) { fInfo[0] |=  typ; }
+    void   SetSuitableRun(UnsuitableType_t typ=kUnsuitableRun)   { fInfo[0] &= ~typ; }
+
+    void   SetUnsuitableEvt(UnsuitableType_t typ=kUnsuitableEvt) { fInfo[0] |=  typ; }
+    void   SetSuitableEvt(UnsuitableType_t typ=kUnsuitableEvt)   { fInfo[0] &= ~typ; }
+
+    // Calibration
+    void   SetHiGainSaturation  ( CalibrationType_t typ=kHiGainSaturation )   { fInfo[1] |=  typ; }
+    void   SetNoHiGainSaturation( CalibrationType_t typ=kHiGainSaturation )   { fInfo[1] &= ~typ; }
+
+    void   SetLoGainSaturation  ( CalibrationType_t typ=kLoGainSaturation )   { fInfo[1] |=  typ; }
+    void   SetNoLoGainSaturation( CalibrationType_t typ=kLoGainSaturation )   { fInfo[1] &= ~typ; }
+
+    void   SetCombinedMethodValid  ( CalibrationType_t typ=kCombinedMethodValid )   { fInfo[1] |=  typ; }
+    void   SetNoCombinedMethodValid( CalibrationType_t typ=kCombinedMethodValid )   { fInfo[1] &= ~typ; }
+
+    void   SetPINDiodeMethodValid  ( CalibrationType_t typ=kPINDiodeMethodValid )   { fInfo[1] |=  typ; }
+    void   SetNoPINDiodeMethodValid( CalibrationType_t typ=kPINDiodeMethodValid )   { fInfo[1] &= ~typ; }
+
+    void   SetFFactorMethodValid  ( CalibrationType_t typ=kFFactorMethodValid )   { fInfo[1] |=  typ; }
+    void   SetNoFFactorMethodValid( CalibrationType_t typ=kFFactorMethodValid )   { fInfo[1] &= ~typ; }
+
+    void   SetBlindPixelMethodValid  ( CalibrationType_t typ=kBlindPixelMethodValid )   { fInfo[1] |=  typ; }
+    void   SetNoBlindPixelMethodValid( CalibrationType_t typ=kBlindPixelMethodValid )   { fInfo[1] &= ~typ; }
+
+    void   SetMeanTimeInLastBin  ( CalibrationType_t typ=kMeanTimeInLastBin )   { fInfo[1] |=  typ; }
+    void   SetNoMeanTimeInLastBin( CalibrationType_t typ=kMeanTimeInLastBin )   { fInfo[1] &= ~typ; }
+
+    void   SetMeanTimeInFirstBin  ( CalibrationType_t typ=kMeanTimeInFirstBin )   { fInfo[1] |=  typ; }
+    void   SetNoMeanTimeInFirstBin( CalibrationType_t typ=kMeanTimeInFirstBin )   { fInfo[1] &= ~typ; }
+
+    void   SetLoGainOscillating  ( CalibrationType_t typ=kLoGainOscillating )   { fInfo[1] |=  typ; }
+    void   SetNoLoGainOscillating( CalibrationType_t typ=kLoGainOscillating )   { fInfo[1] &= ~typ; }
+
+    void   SetHiGainOscillating  ( CalibrationType_t typ=kHiGainOscillating )   { fInfo[1] |=  typ; }
+    void   SetNoHiGainOscillating( CalibrationType_t typ=kHiGainOscillating )   { fInfo[1] &= ~typ; }
+
+    void   SetConversionHiLoValid  ( CalibrationType_t typ=kConversionHiLoValid )   { fInfo[1] |=  typ; }
+    void   SetNoConversionHiLoValid( CalibrationType_t typ=kConversionHiLoValid )   { fInfo[1] &= ~typ; }
+
+    void   SetCalcChargeSigmaValid  ( CalibrationType_t typ=kCalcChargeSigmaValid )   { fInfo[1] |=  typ; }
+    void   SetNoCalcChargeSigmaValid( CalibrationType_t typ=kCalcChargeSigmaValid )   { fInfo[1] &= ~typ; }
+
+    void   SetCalcChargeRelErrValid  ( CalibrationType_t typ=kCalcChargeRelErrValid )   { fInfo[1] |=  typ; }
+    void   SetNoCalcChargeRelErrValid( CalibrationType_t typ=kCalcChargeRelErrValid )   { fInfo[1] &= ~typ; }
+
+    void   SetCalcChargeErrValid  ( CalibrationType_t typ=kCalcChargeErrValid )   { fInfo[1] |=  typ; }
+    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   SetLoGainFitted  ( CalibrationType_t typ=kLoGainFitted )   { fInfo[1] |=  typ; }
+    void   SetNoLoGainFitted( CalibrationType_t typ=kLoGainFitted )   { fInfo[1] &= ~typ; }
+
+    void   SetHiGainFitted  ( CalibrationType_t typ=kHiGainFitted )   { fInfo[1] |=  typ; }
+    void   SetNoHiGainFitted( CalibrationType_t typ=kHiGainFitted )   { fInfo[1] &= ~typ; }
 
     // Getter
-    Bool_t IsUnsuitable(UnsuitableType_t typ=kUnsuitableRun) const { return   fInfo[0]&typ; }
-    Bool_t IsSuitable(UnsuitableType_t typ=kUnsuitableRun) const   { return !(fInfo[0]&typ); }
+    Bool_t IsUnsuitableRun(UnsuitableType_t typ=kUnsuitableRun) const { return   fInfo[0]&typ; }
+    Bool_t IsSuitableRun(UnsuitableType_t typ=kUnsuitableRun) const   { return !(fInfo[0]&typ); }
+
+    Bool_t IsUnsuitableEvt(UnsuitableType_t typ=kUnsuitableEvt) const { return   fInfo[0]&typ; }
+    Bool_t IsSuitableEvt(UnsuitableType_t typ=kUnsuitableEvt) const   { return !(fInfo[0]&typ); }
 
     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 ); }    
 
     void Merge(const MBadPixelsPix &pix);
Index: trunk/MagicSoft/Mars/mbadpixels/MMcBadPixelsSet.cc
===================================================================
--- trunk/MagicSoft/Mars/mbadpixels/MMcBadPixelsSet.cc	(revision 3126)
+++ trunk/MagicSoft/Mars/mbadpixels/MMcBadPixelsSet.cc	(revision 3420)
@@ -131,10 +131,10 @@
     // Case for Crab Nebula FOV
     //
-    (*fBadPixels)[400].SetUnsuitable();
-    (*fBadPixels)[401].SetUnsuitable();
-    (*fBadPixels)[402].SetUnsuitable();
-    (*fBadPixels)[437].SetUnsuitable();
-    (*fBadPixels)[438].SetUnsuitable();
-    (*fBadPixels)[439].SetUnsuitable();
+    (*fBadPixels)[400].SetUnsuitableRun();
+    (*fBadPixels)[401].SetUnsuitableRun();
+    (*fBadPixels)[402].SetUnsuitableRun();
+    (*fBadPixels)[437].SetUnsuitableRun();
+    (*fBadPixels)[438].SetUnsuitableRun();
+    (*fBadPixels)[439].SetUnsuitableRun();
 
     *fLog << inf;
