Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 3675)
+++ trunk/MagicSoft/Mars/Changelog	(revision 3676)
@@ -166,4 +166,6 @@
 
    * mcalib/MHGausEvents.[h,cc]
+   * mcalib/MCalibrationPix.[h,cc]
+   * mcalib/MHCalibrationCam.cc
      - add to Pickup also Blackout events
 
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationPix.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationPix.cc	(revision 3675)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationPix.cc	(revision 3676)
@@ -33,6 +33,7 @@
 //
 // Calls to GetMean(), GetMeanErr(), GetSigma(), GetSigmaErr(), GetProb() or 
-// GetNumPickup() test first the bit kHiGainSaturation before returning 
-// the high-gain or low-gain value, analogue for the corr. Setters.
+// GetNumPickup() and GetNumBlackout() test first the bit kHiGainSaturation 
+// before returning the high-gain or low-gain value, analogue for the 
+// corr. Setters.
 //
 // The three flags: kValid, kExcluded and kHiGainSaturation may be set.
@@ -77,4 +78,5 @@
 {
 
+  fHiGainNumBlackout   =  -1 ;
   fHiGainNumPickup     =  -1 ;
   fHiGainMean          =  -1.;
@@ -84,4 +86,5 @@
   fHiGainSigmaVar      =  -1.;
 
+  fLoGainNumBlackout   =  -1 ;
   fLoGainNumPickup     =  -1 ;
   fLoGainMean          =  -1.;
Index: trunk/MagicSoft/Mars/mcalib/MCalibrationPix.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrationPix.h	(revision 3675)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrationPix.h	(revision 3676)
@@ -10,21 +10,21 @@
 protected:
 
-  Int_t   fPixId;       // the pixel Id
+  Int_t   fPixId;             // the pixel Id
 
-  UInt_t  fFlags;       // Flag for the set bits
- 
-  Float_t fHiGainMean;      // Mean from fit to high gain values
-  Float_t fHiGainMeanVar;   // Error of mean from fit to high gain values
-  Float_t fHiGainSigma;     // Sigma from fit to high gain values
-  Float_t fHiGainSigmaVar;  // Error of sigma from fit to high gain values
-  Float_t fHiGainProb;      // Probability of fit to high gain values
-  Float_t fHiGainNumPickup; // Number of pickup events in high-gain
-  
-  Float_t fLoGainMean;      // Mean from fit to high gain values
-  Float_t fLoGainMeanVar;   // Error of mean from fit to low gain values
-  Float_t fLoGainSigma;     // Sigma of from fit to low gain values
-  Float_t fLoGainSigmaVar;  // Error of sigma from fit to low gain values
-  Float_t fLoGainProb;      // Probability of fit to low gain values
-  Float_t fLoGainNumPickup; // Number of pickup events in low-gain
+  UInt_t  fFlags;             // Flag for the set bits
+  Float_t fHiGainMean;        // Mean from fit to high gain values
+  Float_t fHiGainMeanVar;     // Error of mean from fit to high gain values
+  Float_t fHiGainNumBlackout; // Number blackout events in high-gain
+  Float_t fHiGainNumPickup;   // Number pickup events in high-gain
+  Float_t fHiGainSigma;       // Sigma from fit to high gain values
+  Float_t fHiGainSigmaVar;    // Error of sigma from fit to high gain values
+  Float_t fHiGainProb;        // Probability of fit to high gain values
+  Float_t fLoGainMean;        // Mean from fit to high gain values
+  Float_t fLoGainMeanVar;     // Error of mean from fit to low gain values
+  Float_t fLoGainNumBlackout; // Number blackout events in low-gain
+  Float_t fLoGainNumPickup;   // Number pickup events in low-gain
+  Float_t fLoGainSigma;       // Sigma of from fit to low gain values
+  Float_t fLoGainSigmaVar;    // Error of sigma from fit to low gain values
+  Float_t fLoGainProb;        // Probability of fit to low gain values
 
   enum  { kHiGainSaturation, kExcluded, kValid };
@@ -40,24 +40,25 @@
   void SetPixId( const Int_t i )   { fPixId = i; }
 
-  void SetHiGainMean      ( const Float_t f ) { fHiGainMean      = f;   }
-  void SetHiGainMeanVar   ( const Float_t f ) { fHiGainMeanVar   = f; }
-  void SetHiGainProb      ( const Float_t f ) { fHiGainProb      = f;   }
-  void SetHiGainSigma     ( const Float_t f ) { fHiGainSigma     = f;   }
-  void SetHiGainSigmaVar  ( const Float_t f ) { fHiGainSigmaVar  = f; }
-  void SetHiGainNumPickup ( const Float_t f ) { fHiGainNumPickup = f;   }
-
-  void SetLoGainMean      ( const Float_t f ) { fLoGainMean      = f;   }
-  void SetLoGainMeanVar   ( const Float_t f ) { fLoGainMeanVar   = f; }
-  void SetLoGainProb      ( const Float_t f ) { fLoGainProb      = f;   }
-  void SetLoGainSigma     ( const Float_t f ) { fLoGainSigma     = f;   }
-  void SetLoGainSigmaVar  ( const Float_t f ) { fLoGainSigmaVar  = f; }
-  void SetLoGainNumPickup ( const Float_t f ) { fLoGainNumPickup = f;   }
-
-  void SetMean       ( const Float_t f ) { IsHiGainSaturation() ? fLoGainMean = f       : fHiGainMean = f      ; }
-  void SetMeanVar    ( const Float_t f ) { IsHiGainSaturation() ? fLoGainMeanVar = f    : fHiGainMeanVar = f  ;  }
-  void SetProb       ( const Float_t f ) { IsHiGainSaturation() ? fLoGainProb = f       : fHiGainProb = f      ; }
-  void SetSigma      ( const Float_t f ) { IsHiGainSaturation() ? fLoGainSigma = f      : fHiGainSigma = f     ; }
-  void SetSigmaVar   ( const Float_t f ) { IsHiGainSaturation() ? fLoGainSigmaVar = f   : fHiGainSigmaVar = f  ; }
-  void SetNumPickup  ( const Float_t f ) { IsHiGainSaturation() ? fLoGainNumPickup = f  : fHiGainNumPickup = f ; }
+  void SetHiGainMean        ( const Float_t f ) { fHiGainMean        = f; }
+  void SetHiGainMeanVar     ( const Float_t f ) { fHiGainMeanVar     = f; }
+  void SetHiGainNumBlackout ( const Float_t f ) { fHiGainNumBlackout = f; }
+  void SetHiGainNumPickup   ( const Float_t f ) { fHiGainNumPickup   = f; }
+  void SetHiGainProb        ( const Float_t f ) { fHiGainProb        = f; }
+  void SetHiGainSigma       ( const Float_t f ) { fHiGainSigma       = f; }
+  void SetHiGainSigmaVar    ( const Float_t f ) { fHiGainSigmaVar    = f; }
+  void SetLoGainMean        ( const Float_t f ) { fLoGainMean        = f; }
+  void SetLoGainMeanVar     ( const Float_t f ) { fLoGainMeanVar     = f; }
+  void SetLoGainNumBlackout ( const Float_t f ) { fLoGainNumBlackout = f; }  
+  void SetLoGainNumPickup   ( const Float_t f ) { fLoGainNumPickup   = f; }
+  void SetLoGainProb        ( const Float_t f ) { fLoGainProb        = f; }
+  void SetLoGainSigma       ( const Float_t f ) { fLoGainSigma       = f; }
+  void SetLoGainSigmaVar    ( const Float_t f ) { fLoGainSigmaVar    = f; }
+  void SetMean       ( const Float_t f ) { IsHiGainSaturation() ? fLoGainMean        = f : fHiGainMean        = f      ; }
+  void SetMeanVar    ( const Float_t f ) { IsHiGainSaturation() ? fLoGainMeanVar     = f : fHiGainMeanVar     = f  ;  }
+  void SetNumBlackout( const Float_t f ) { IsHiGainSaturation() ? fLoGainNumBlackout = f : fHiGainNumBlackout = f ; }  
+  void SetNumPickup  ( const Float_t f ) { IsHiGainSaturation() ? fLoGainNumPickup   = f : fHiGainNumPickup   = f ; }
+  void SetProb       ( const Float_t f ) { IsHiGainSaturation() ? fLoGainProb        = f : fHiGainProb        = f      ; }
+  void SetSigma      ( const Float_t f ) { IsHiGainSaturation() ? fLoGainSigma       = f : fHiGainSigma       = f     ; }
+  void SetSigmaVar   ( const Float_t f ) { IsHiGainSaturation() ? fLoGainSigmaVar    = f : fHiGainSigmaVar    = f  ; }
   
   void SetExcluded        ( const Bool_t  b = kTRUE );
@@ -66,28 +67,30 @@
 
   // Getters
-  Float_t GetHiGainMean     () const { return fHiGainMean   ;   }
-  Float_t GetHiGainMeanErr  () const;
-  Float_t GetHiGainProb     () const { return fHiGainProb   ;   }
-  Float_t GetHiGainSigma    () const { return fHiGainSigma  ;   }
-  Float_t GetHiGainSigmaErr () const;
-  Float_t GetHiGainNumPickup() const { return fHiGainNumPickup; }
+  Float_t GetHiGainMean       () const { return fHiGainMean   ;     }
+  Float_t GetHiGainMeanErr    () const;
+  Float_t GetHiGainProb       () const { return fHiGainProb   ;     }
+  Float_t GetHiGainSigma      () const { return fHiGainSigma  ;     }
+  Float_t GetHiGainSigmaErr   () const;
+  Float_t GetHiGainNumPickup  () const { return fHiGainNumPickup;   }
+  Float_t GetHiGainNumBlackout() const { return fHiGainNumBlackout; }  
 
-  virtual Float_t GetLoGainMean      () const { return fLoGainMean   ;   }
-  virtual Float_t GetLoGainMeanErr   () const;
-  virtual Float_t GetLoGainMeanRelVar() const;  
-  virtual Float_t GetLoGainProb      () const { return fLoGainProb   ;   }
-  virtual Float_t GetLoGainSigma     () const { return fLoGainSigma  ;   }
-  virtual Float_t GetLoGainSigmaErr  () const;
-  virtual Float_t GetLoGainNumPickup () const { return fLoGainNumPickup; }
+  virtual Float_t GetLoGainMean       () const { return fLoGainMean;        }
+  virtual Float_t GetLoGainMeanErr    () const;
+  virtual Float_t GetLoGainMeanRelVar () const;  
+  virtual Float_t GetLoGainProb       () const { return fLoGainProb;        }
+  virtual Float_t GetLoGainSigma      () const { return fLoGainSigma;       }
+  virtual Float_t GetLoGainSigmaErr   () const;
+  virtual Float_t GetLoGainNumPickup  () const { return fLoGainNumPickup;   }
+  virtual Float_t GetLoGainNumBlackout() const { return fLoGainNumBlackout; }  
 
-  Float_t GetMean       () const { return IsHiGainSaturation() ? GetLoGainMean()      : GetHiGainMean()     ; }
-  Float_t GetMeanErr    () const { return IsHiGainSaturation() ? GetLoGainMeanErr()   : GetHiGainMeanErr()  ; }
+  Float_t GetMean       () const { return IsHiGainSaturation() ? GetLoGainMean()        : GetHiGainMean()     ;   }
+  Float_t GetMeanErr    () const { return IsHiGainSaturation() ? GetLoGainMeanErr()     : GetHiGainMeanErr()  ;   }
   Float_t GetMeanRelVar () const;
-  Float_t GetProb       () const { return IsHiGainSaturation() ? GetLoGainProb()      : GetHiGainProb()     ; }
-  Float_t GetSigma      () const { return IsHiGainSaturation() ? GetLoGainSigma()     : GetHiGainSigma()    ; }
-  Float_t GetSigmaErr   () const { return IsHiGainSaturation() ? GetLoGainSigmaErr()  : GetHiGainSigmaErr() ; }
+  Float_t GetProb       () const { return IsHiGainSaturation() ? GetLoGainProb()        : GetHiGainProb()     ;   }
+  Float_t GetSigma      () const { return IsHiGainSaturation() ? GetLoGainSigma()       : GetHiGainSigma()    ;   }
+  Float_t GetSigmaErr   () const { return IsHiGainSaturation() ? GetLoGainSigmaErr()    : GetHiGainSigmaErr() ;   }
   Float_t GetSigmaRelVar() const;
-  Float_t GetNumPickup  () const { return IsHiGainSaturation() ? GetLoGainNumPickup() : GetHiGainNumPickup(); }
-
+  Float_t GetNumPickup  () const { return IsHiGainSaturation() ? GetLoGainNumPickup()   : GetHiGainNumPickup();   }
+  Float_t GetNumBlackout() const { return IsHiGainSaturation() ? GetLoGainNumBlackout() : GetHiGainNumBlackout(); }
   Int_t   GetPixId      () const { return fPixId ;  }
 
Index: trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc	(revision 3675)
+++ trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc	(revision 3676)
@@ -713,10 +713,11 @@
   // 5) Retrieve the results and store them in this class
   //
-  pix.SetHiGainMean      ( hist.GetMean()      );
-  pix.SetHiGainMeanVar   ( hist.GetMeanErr() * hist.GetMeanErr()   );
-  pix.SetHiGainSigma     ( hist.GetSigma()     );
-  pix.SetHiGainSigmaVar  ( hist.GetSigmaErr()* hist.GetSigmaErr()  );
-  pix.SetHiGainProb      ( hist.GetProb()      );
-  pix.SetHiGainNumPickup ( hist.GetPickup()    );
+  pix.SetHiGainMean       ( hist.GetMean()      );
+  pix.SetHiGainMeanVar    ( hist.GetMeanErr() * hist.GetMeanErr()   );
+  pix.SetHiGainSigma      ( hist.GetSigma()     );
+  pix.SetHiGainSigmaVar   ( hist.GetSigmaErr()* hist.GetSigmaErr()  );
+  pix.SetHiGainProb       ( hist.GetProb()      );
+  pix.SetHiGainNumBlackout( hist.GetBlackout()  );
+  pix.SetHiGainNumPickup  ( hist.GetPickup()    );
   
 }
@@ -776,10 +777,11 @@
   // 5) Retrieve the results and store them in this class
   //
-  pix.SetLoGainMean      ( hist.GetMean()      );
-  pix.SetLoGainMeanVar   ( hist.GetMeanErr()  * hist.GetMeanErr()   );
-  pix.SetLoGainSigma     ( hist.GetSigma()     );
-  pix.SetLoGainSigmaVar  ( hist.GetSigmaErr() * hist.GetSigmaErr()  );
-  pix.SetLoGainProb      ( hist.GetProb()      );
-  pix.SetLoGainNumPickup ( hist.GetPickup()    );
+  pix.SetLoGainMean       ( hist.GetMean()      );
+  pix.SetLoGainMeanVar    ( hist.GetMeanErr()  * hist.GetMeanErr()   );
+  pix.SetLoGainSigma      ( hist.GetSigma()     );
+  pix.SetLoGainSigmaVar   ( hist.GetSigmaErr() * hist.GetSigmaErr()  );
+  pix.SetLoGainProb       ( hist.GetProb()      );
+  pix.SetLoGainNumBlackout( hist.GetBlackout()  );
+  pix.SetLoGainNumPickup  ( hist.GetPickup()    );
   
 }
