Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 4127)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 4128)
@@ -20,4 +20,17 @@
 
  2004/05/22: Markus Gaug
+
+   * mcalib/MHCalibrationChargePix.h
+   * mcalib/MHGausEvents.h
+     - put fSaturated from MHCalibrationChargePix into MHGausEvents
+
+   * mcalib/MHCalibrationChargeCam.[h,cc]
+   * mcalib/MHCalibrationCam.h
+     - put fNumHiGainSaturated and fNumLoGainSaturated from 
+       MHCalibrationChargeCam into MHCalibrationCam
+
+   * mcalib/MHCalibrationRelTimeCam.[h,cc]
+     - set flags fSaturated in order to distinguish if the hi-gain or 
+       the low-gain time has been extracted. 
 
    * mcalib/MHCalibrationCam.cc
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc	(revision 4127)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc	(revision 4128)
@@ -284,6 +284,6 @@
 {
 
-  const Int_t nhi   = fHiGainArray->GetEntries();
-  const Int_t nlo   = fLoGainArray->GetEntries();
+  //  const Int_t nhi   = fHiGainArray->GetEntries();
+  //  const Int_t nlo   = fLoGainArray->GetEntries();
   const Int_t navhi = fAverageHiGainAreas->GetEntries();
   const Int_t navlo = fAverageLoGainAreas->GetEntries();
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h	(revision 4127)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h	(revision 4128)
@@ -44,4 +44,7 @@
 
 protected:
+
+  Float_t fNumHiGainSaturationLimit;    // Rel. amount sat. higain FADC slices until pixel is called saturated
+  Float_t fNumLoGainSaturationLimit;    // Rel. amount sat. logain FADC slices until pixel is called saturated
 
   TArrayI    fAverageAreaNum;           // Number of pixels in average pixels per area
@@ -132,4 +135,6 @@
   const MHGausEvents  &GetAverageLoGainSector(UInt_t i)  const;
   const Int_t          GetAverageSectors     ()          const;
+  const Float_t        GetNumHiGainSaturationLimit()     const  { return fNumHiGainSaturationLimit; }
+  const Float_t        GetNumLoGainSaturationLimit()     const  { return fNumLoGainSaturationLimit; }
   const TArrayI       &GetRunNumbers         ()          const;
         MHGausEvents  &operator[]            (UInt_t i);
@@ -138,6 +143,8 @@
   const MHGausEvents  &operator()            (UInt_t i)  const;
  
-  void SetAverageNbins(   const Int_t bins=fgAverageNbins ) { fAverageNbins = bins; }
-  void SetPulserFrequency(const Int_t f=fgPulserFrequency)  { fPulserFrequency = f; }
+  void SetAverageNbins        ( const Int_t bins=fgAverageNbins ) { fAverageNbins = bins; }
+  void SetNumLoGainSaturationLimit( const Float_t lim) { fNumLoGainSaturationLimit = lim; }
+  void SetNumHiGainSaturationLimit( const Float_t lim) { fNumHiGainSaturationLimit = lim; }
+  void SetPulserFrequency      ( const Int_t f=fgPulserFrequency)  { fPulserFrequency = f; }
   
   ClassDef(MHCalibrationCam, 1)	// Base Histogram class for Calibration Camera
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 4127)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 4128)
@@ -165,6 +165,6 @@
   fTitle = title ? title : "Class to fill the calibration histograms ";
   
-  SetNumHiGainSaturationLimit();
-  SetNumLoGainSaturationLimit();
+  SetNumHiGainSaturationLimit(fgNumHiGainSaturationLimit);
+  SetNumLoGainSaturationLimit(fgNumLoGainSaturationLimit);
   SetTimeLowerLimit();
   SetTimeUpperLimit();
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.h	(revision 4127)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.h	(revision 4128)
@@ -19,6 +19,4 @@
   static const Float_t fgTimeUpperLimit;             //! Default for fTimeUpperLimit    (now set to: 2.)
   
-  Float_t fNumHiGainSaturationLimit;  // Rel. amount sat. higain FADC slices until pixel is called saturated
-  Float_t fNumLoGainSaturationLimit;  // Rel. amount sat. logain FADC slices until pixel is called saturated
   Float_t fTimeLowerLimit;            // Limit dist. to first signal slice (in units of FADC slices) 
   Float_t fTimeUpperLimit;            // Limit dist. to last signal slice  (in units of FADC slices) 
@@ -45,12 +43,7 @@
   ~MHCalibrationChargeCam() {}
   
-  void SetNumLoGainSaturationLimit( const Float_t lim=fgNumLoGainSaturationLimit) { fNumLoGainSaturationLimit = lim; }
-  void SetNumHiGainSaturationLimit( const Float_t lim=fgNumHiGainSaturationLimit) { fNumHiGainSaturationLimit = lim; }
   void SetTimeLowerLimit    ( const Float_t f=fgTimeLowerLimit         ) { fTimeLowerLimit    = f;   }
   void SetTimeUpperLimit    ( const Float_t f=fgTimeUpperLimit         ) { fTimeUpperLimit    = f;   }
   
-  Float_t GetNumHiGainSaturationLimit()      const  { return fNumHiGainSaturationLimit; }
-  Float_t GetNumLoGainSaturationLimit()      const  { return fNumLoGainSaturationLimit; }
-
   Bool_t GetPixelContent ( Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const;
   void   DrawPixelContent( Int_t num )  const;    
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.h	(revision 4127)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.h	(revision 4128)
@@ -27,6 +27,4 @@
   Axis_t   fAbsTimeLast;   // Upper bound bin used for the fHAbsTime
 
-  Float_t  fSaturated;     // Number of events classified as saturated
-
 public:
 
@@ -43,6 +41,4 @@
   virtual void SetAbsTimeLast( const Axis_t last =fgAbsTimeLast)   { fAbsTimeLast  = last;  }
 
-  void SetSaturated          ( const Float_t f    )                { fSaturated += f;      }
-
   // Getters
   TH1F *GetHAbsTime()                         { return &fHAbsTime;  }
@@ -52,5 +48,4 @@
   const Float_t  GetAbsTimeRms()        const;
   const Float_t  GetIntegral()          const;
-  const Float_t  GetSaturated()         const { return fSaturated;   }
 
   // Fill histos
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimeCam.cc	(revision 4127)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimeCam.cc	(revision 4128)
@@ -105,9 +105,12 @@
 #include "MBadPixelsPix.h"
 
+#include "MHGausEvents.h"
+
 ClassImp(MHCalibrationRelTimeCam);
 
 using namespace std;
 
-const UInt_t MHCalibrationRelTimeCam::fgReferencePixel = 1;
+const Float_t MHCalibrationRelTimeCam::fgNumHiGainSaturationLimit = 0.25;
+const UInt_t  MHCalibrationRelTimeCam::fgReferencePixel = 1;
 // --------------------------------------------------------------------------
 //
@@ -123,4 +126,5 @@
   fTitle = title ? title : "Histogram class for the relative time calibration of the camera";
 
+  SetNumHiGainSaturationLimit(fgNumHiGainSaturationLimit);
   SetReferencePixel();
 }
@@ -343,4 +347,5 @@
         { 
           const Float_t reltime = pix.GetArrivalTimeLoGain() - reftime;
+          histhi.SetSaturated(1); 
           histlo.FillHistAndArray(reltime);
           sumarealo  [aidx]   += reltime;
@@ -392,4 +397,54 @@
 {
 
+  for (Int_t i=0; i<fHiGainArray->GetSize(); i++)
+    {
+      
+      MHCalibrationRelTimePix &histhi = (MHCalibrationRelTimePix&)(*this)[i];
+      
+      if (histhi.IsExcluded())
+        continue;
+      
+      if (histhi.GetSaturated() > fNumHiGainSaturationLimit*histhi.GetHGausHist()->GetEntries())
+        {
+          (*fCam)[i].SetHiGainSaturation();
+          histhi.SetExcluded();
+        }
+      else
+        (*this)(i).SetExcluded();
+      
+    }
+  
+
+  for (Int_t j=0; j<fAverageHiGainAreas->GetSize(); j++)
+    {
+      
+      MHCalibrationRelTimePix &histhi = (MHCalibrationRelTimePix&)GetAverageHiGainArea(j);      
+
+      if (histhi.GetSaturated() > fNumHiGainSaturationLimit*histhi.GetHGausHist()->GetEntries())
+        {
+          fCam->GetAverageArea(j).SetHiGainSaturation();
+          histhi.SetExcluded();
+        }
+      else
+        GetAverageLoGainArea(j).SetExcluded();
+
+   }
+  
+
+  for (Int_t j=0; j<fAverageHiGainSectors->GetSize(); j++)
+    {
+      
+      MHCalibrationRelTimePix &histhi = (MHCalibrationRelTimePix&)GetAverageHiGainSector(j);      
+
+      if (histhi.GetSaturated() > fNumHiGainSaturationLimit*histhi.GetHGausHist()->GetEntries())
+        {
+          fCam->GetAverageSector(j).SetHiGainSaturation();
+          histhi.SetExcluded();
+        }
+      else
+        GetAverageHiGainSector(j).SetExcluded();
+    }
+  
+
   FitHiGainArrays((*fCam),*fBadPixels,
                   MBadPixelsPix::kRelTimeNotFitted,
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimeCam.h	(revision 4127)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimeCam.h	(revision 4128)
@@ -12,6 +12,7 @@
 private:
 
-  static const UInt_t fgReferencePixel;             // Default for fReferencePixel (now set to: 1)
-  UInt_t fReferencePixel;                          // The reference pixel for rel. times
+  static const Float_t fgNumHiGainSaturationLimit;   //! The default for fNumHiGainSaturationLimit (now at: 0.25)
+  static const UInt_t  fgReferencePixel;             //! Default for fReferencePixel (now set to: 1)
+  UInt_t fReferencePixel;                           //  The reference pixel for rel. times
 
   Bool_t ReInitHists(MParList *pList);
Index: /trunk/MagicSoft/Mars/mcalib/MHGausEvents.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHGausEvents.h	(revision 4127)
+++ /trunk/MagicSoft/Mars/mcalib/MHGausEvents.h	(revision 4128)
@@ -53,4 +53,5 @@
   Int_t    fNbins;                     // Number histogram bins for fHGausHist (used by InitBins())
   Int_t    fNDFLimit;                  // NDF limit for judgement if fit is OK
+  Float_t  fSaturated;                 // Number of events classified as saturated
   Double_t fSigma;                     // Sigma of the Gauss fit
   Double_t fSigmaErr;                  // Error of the sigma of the Gauss fit
@@ -67,6 +68,6 @@
 
   // Setters
+  void  SetBinsAfterStripping   ( const Int_t nbins=fgBinsAfterStripping   ) { fBinsAfterStripping  =nbins; }
   void  SetPowerProbabilityBins ( const Int_t nbins=fgPowerProbabilityBins ) { fPowerProbabilityBins=nbins; }
-  void  SetBinsAfterStripping   ( const Int_t nbins=fgBinsAfterStripping   ) { fBinsAfterStripping  =nbins; }
 
  public:
@@ -79,24 +80,7 @@
   virtual void InitBins();
   
-  // Setters
-  void  SetBlackoutLimit    ( const Float_t  lim=fgBlackoutLimit ) { fBlackoutLimit  = lim; }
-  void  SetEventFrequency   ( const Float_t  f                   ) { fEventFrequency = f;   }
-  void  SetExcluded         ( const Bool_t   b=kTRUE             );  
-  void  SetExpFitOK         ( const Bool_t   b=kTRUE             );
-  void  SetFourierSpectrumOK( const Bool_t   b=kTRUE             );
-  void  SetGausFitOK        ( const Bool_t   b=kTRUE             );
-  void  SetLast             ( const Double_t d                   ) { fLast           = d;   }
-  void  SetFirst            ( const Double_t d                   ) { fFirst          = d;   }
-  void  SetMean             ( const Double_t d                   ) { fMean           = d;   }
-  void  SetMeanErr          ( const Double_t d                   ) { fMeanErr        = d;   }
-  void  SetNbins            ( const Int_t    i                   ) { fNbins          = i;   }  
-  void  SetNDFLimit         ( const Int_t    lim=fgNDFLimit      ) { fNDFLimit       = lim; }  
-  void  SetPickupLimit      ( const Float_t  lim=fgPickupLimit   ) { fPickupLimit    = lim; }
-  void  SetPixId            ( const Int_t    i                   ) { fPixId          = i;   }
-  void  SetProb             ( const Double_t d                   ) { fProb           = d;   }
-  void  SetProbLimit        ( const Float_t  lim=fgProbLimit     ) { fProbLimit      = lim; }
-  void  SetSigma            ( const Double_t d                   ) { fSigma          = d;   }
-  void  SetSigmaErr         ( const Double_t d                   ) { fSigmaErr       = d;   }
-
+  // Draws
+  virtual void Draw(Option_t *option="");         // Default Draw 
+  
   // Getters
   const Double_t GetBlackout()           const;  
@@ -128,4 +112,5 @@
   const TArrayF *GetPowerSpectrum()      const { return fPowerSpectrum;      }
   const Double_t GetProb()               const { return fProb;               }
+  const Float_t  GetSaturated()          const { return fSaturated;          }
   const Double_t GetSigma()              const { return fSigma;              }
   const Double_t GetSigmaErr()           const { return fSigmaErr;           }
@@ -150,10 +135,28 @@
   void BypassFit();                               // Take mean and RMS from the histogram
   
-  // Draws
-  virtual void Draw(Option_t *option="");         // Default Draw 
-  
   // Prints
   virtual void Print(const Option_t *o="") const; // Default Print
   
+  // Setters
+  void  SetBlackoutLimit    ( const Float_t  lim=fgBlackoutLimit ) { fBlackoutLimit  = lim; }
+  void  SetEventFrequency   ( const Float_t  f                   ) { fEventFrequency = f;   }
+  void  SetExcluded         ( const Bool_t   b=kTRUE             );  
+  void  SetExpFitOK         ( const Bool_t   b=kTRUE             );
+  void  SetFourierSpectrumOK( const Bool_t   b=kTRUE             );
+  void  SetGausFitOK        ( const Bool_t   b=kTRUE             );
+  void  SetLast             ( const Double_t d                   ) { fLast           = d;   }
+  void  SetFirst            ( const Double_t d                   ) { fFirst          = d;   }
+  void  SetMean             ( const Double_t d                   ) { fMean           = d;   }
+  void  SetMeanErr          ( const Double_t d                   ) { fMeanErr        = d;   }
+  void  SetNbins            ( const Int_t    i                   ) { fNbins          = i;   }  
+  void  SetNDFLimit         ( const Int_t    lim=fgNDFLimit      ) { fNDFLimit       = lim; }  
+  void  SetPickupLimit      ( const Float_t  lim=fgPickupLimit   ) { fPickupLimit    = lim; }
+  void  SetPixId            ( const Int_t    i                   ) { fPixId          = i;   }
+  void  SetProb             ( const Double_t d                   ) { fProb           = d;   }
+  void  SetProbLimit        ( const Float_t  lim=fgProbLimit     ) { fProbLimit      = lim; }
+  void  SetSaturated        ( const Float_t f                    ) { fSaturated     += f;   }
+  void  SetSigma            ( const Double_t d                   ) { fSigma          = d;   }
+  void  SetSigmaErr         ( const Double_t d                   ) { fSigmaErr       = d;   }
+
   // Miscelleaneous
   virtual void ChangeHistId(const Int_t id);      // Changes names and titles of the histogram
