Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 5772)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 5773)
@@ -41,4 +41,9 @@
    * msignal/MExtractor.h
      - added Getter for fOffsetLoGain (was still missing)
+
+   * mhcalib/MHCalibrationChargeCam.[h,cc]
+     - remove pixels with histogram overflow only if their percentage 
+       passes a certain limit (default: 0.5%). Before, every overflow 
+       lead to an unsuitable pixel.
 
 
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 5772)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 5773)
@@ -172,4 +172,5 @@
 const Float_t MHCalibrationChargeCam::fgNumHiGainSaturationLimit = 0.01;
 const Float_t MHCalibrationChargeCam::fgNumLoGainSaturationLimit = 0.005;
+const Float_t MHCalibrationChargeCam::fgNumOverflowLimit         = 0.005;
 const Float_t MHCalibrationChargeCam::fgTimeLowerLimit           = 1.;
 const Float_t MHCalibrationChargeCam::fgTimeUpperLimit           = 2.;
@@ -219,4 +220,6 @@
   SetNumHiGainSaturationLimit(fgNumHiGainSaturationLimit);
   SetNumLoGainSaturationLimit(fgNumLoGainSaturationLimit);
+  SetNumOverflowLimit(fgNumOverflowLimit);
+
   SetTimeLowerLimit();
   SetTimeUpperLimit();
@@ -925,18 +928,18 @@
 
       Stat_t overflow = h->GetBinContent(h->GetNbinsX()+1);
-      if (overflow > 0.1)
+      if (overflow > fNumOverflowLimit*histhi.GetHGausHist()->GetEntries())
         {
           *fLog << warn
                 << "HiGain Hist-overflow " << overflow
-                << " times in pix: " << i << " (w/o saturation!) " << endl;
+                << " times in: " << histhi.GetName() << " (w/o saturation!) " << endl;
           bad.SetUncalibrated( MBadPixelsPix::kHiGainOverFlow ); 
         }
 
       overflow = h->GetBinContent(0);
-      if (overflow > 0.1)
+      if (overflow >  fNumOverflowLimit*histhi.GetHGausHist()->GetEntries())
         {
           *fLog << warn
                 << "HiGain Hist-underflow " << overflow
-                << " times in pix: " << i << " (w/o saturation!) " << endl;
+                << " times in pix: " << histhi.GetName() << " (w/o saturation!) " << endl;
           bad.SetUncalibrated( MBadPixelsPix::kHiGainOverFlow ); 
         }
@@ -967,18 +970,18 @@
 
         Stat_t overflow = h->GetBinContent(h->GetNbinsX()+1);
-        if (overflow > 0.1)
+        if (overflow >  fNumOverflowLimit*histlo.GetHGausHist()->GetEntries())
           {
               *fLog << warn
                   << "LoGain Hist-overflow " << overflow
-                  << " times in pix: " << i << " (w/o saturation!) " << endl;
+                  << " times in: " << histlo.GetName() << " (w/o saturation!) " << endl;
             bad.SetUncalibrated( MBadPixelsPix::kLoGainOverFlow ); 
           }
 
         overflow = h->GetBinContent(0);
-        if (overflow > 0.1)
+        if (overflow > fNumOverflowLimit*histlo.GetHGausHist()->GetEntries())
           {
             *fLog << warn
                   << "LoGain Hist-underflow " << overflow
-                  << " times in pix: " << i << " (w/o saturation!) " << endl;
+                  << " times in: " << histlo.GetName() << " (w/o saturation!) " << endl;
             bad.SetUncalibrated( MBadPixelsPix::kLoGainOverFlow ); 
           }
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h	(revision 5772)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h	(revision 5773)
@@ -44,4 +44,6 @@
   static const Float_t fgNumHiGainSaturationLimit;   //! The default for fNumHiGainSaturationLimit (now at: 0.01)
   static const Float_t fgNumLoGainSaturationLimit;   //! The default for fNumLoGainSaturationLimit (now at: 0.005)
+  static const Float_t fgNumOverflowLimit;           //! The default for fNumOverflowLimit         (now at: 0.005)
+
   static const Float_t fgTimeLowerLimit;             //! Default for fTimeLowerLimit    (now set to: 1.) 
   static const Float_t fgTimeUpperLimit;             //! Default for fTimeUpperLimit    (now set to: 2.)
@@ -56,4 +58,6 @@
   Axis_t  fLoGainLast;                               // Upper histogram limit low gain  
 
+  Float_t fNumOverflowLimit;                         // Part of maximum allowed overflow events
+  
   TString fAbsHistName;                              // Histogram names abs.times
   TString fAbsHistTitle;                             // Histogram titles abs. times
@@ -113,4 +117,6 @@
   void SetLoGainLast        ( const Axis_t f )       { fLoGainLast    = f; }  
 
+  void SetNumOverflowLimit ( const Float_t f=fgNumOverflowLimit ) { fNumOverflowLimit = f; }
+  
   void SetTimeLowerLimit    ( const Float_t f=fgTimeLowerLimit ) { fTimeLowerLimit = f; }
   void SetTimeUpperLimit    ( const Float_t f=fgTimeUpperLimit ) { fTimeUpperLimit = f; }
