Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 7005)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 7013)
@@ -171,9 +171,10 @@
 const TString MHCalibrationChargeCam::gsAbsHistXTitle     = "Time [FADC slices]";
 const TString MHCalibrationChargeCam::gsAbsHistYTitle     = "Nr. events";
-const Float_t MHCalibrationChargeCam::fgNumHiGainSaturationLimit = 0.05;
+const Float_t MHCalibrationChargeCam::fgNumHiGainSaturationLimit = 0.085;
 const Float_t MHCalibrationChargeCam::fgNumLoGainSaturationLimit = 0.005;
 const Float_t MHCalibrationChargeCam::fgTimeLowerLimit           = 1.;
 const Float_t MHCalibrationChargeCam::fgTimeUpperLimit           = 3.;
 const TString MHCalibrationChargeCam::fgReferenceFile = "mjobs/calibrationref.rc";
+
 // --------------------------------------------------------------------------
 //
@@ -883,5 +884,9 @@
       MCalibrationChargePix  &pix = (MCalibrationChargePix&)(*chargecam)[i] ;
 
-      if (histhi.GetSaturated() > fNumHiGainSaturationLimit*histhi.GetHGausHist()->GetEntries())
+      const Int_t numsat = histhi.GetSaturated();
+
+      pix.SetNumSaturated(numsat);
+
+      if (numsat > fNumHiGainSaturationLimit*histhi.GetHGausHist()->GetEntries())
         {
           pix.SetHiGainSaturation();
@@ -1418,4 +1423,16 @@
     }
 
+  if (IsEnvDefined(env, prefix, "NumHiGainSaturationLimit", print))
+  {
+      SetNumHiGainSaturationLimit(GetEnvValue(env, prefix, "NumHiGainSaturationLimit", fNumHiGainSaturationLimit));
+      rc = kTRUE;
+  }
+
+  if (IsEnvDefined(env, prefix, "NumLoGainSaturationLimit", print))
+  {
+      SetNumLoGainSaturationLimit(GetEnvValue(env, prefix, "NumLoGainSaturationLimit", fNumLoGainSaturationLimit));
+      rc = kTRUE;
+  }
+
   TEnv refenv(fReferenceFile);
 
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.cc	(revision 7005)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationHiLoCam.cc	(revision 7013)
@@ -342,5 +342,5 @@
       MHCalibrationPix &histhi = (*this)[i];
 
-      histhi.FillHistAndArray(ratio);
+      histhi.FillHist(ratio);
       fSumareahi  [aidx]   += ratio;
       fNumareahi  [aidx]   ++;
@@ -355,5 +355,5 @@
 	  const Float_t diff = tix.GetArrivalTimeLoGain() - tix.GetArrivalTimeHiGain();
 
-	  histlo.FillHistAndArray(diff);
+	  histlo.FillHist(diff);
 	  fSumarealo  [aidx]   += diff;
 	  fNumarealo  [aidx]   ++;
@@ -362,4 +362,7 @@
 	}
     }
+
+  if (!IsAverageing())
+      return kTRUE;
   
   for (Int_t j=0; j<nareas; j++)
@@ -420,23 +423,16 @@
     }
 
-  for (Int_t j=0; j<nareas; j++)
-    {
-      
-      MHCalibrationPix    &hist = GetAverageHiGainArea(j);      
-      //
-      // Check histogram overflow
-      // 
-      CheckOverflow(hist);
-   }
-  
-  for (Int_t j=0; j<fAverageHiGainSectors->GetSize(); j++)
-    {
-      
-      MHCalibrationPix &hist = GetAverageHiGainSector(j);      
-      //
-      // Check histogram overflow
-      // 
-      CheckOverflow(hist);
-    }
+  //
+  // Check histogram overflow
+  //
+  if (IsAverageing())
+  {
+      for (Int_t j=0; j<nareas; j++)
+          GetAverageHiGainArea(j).CheckOverflow(hist);
+
+      for (Int_t j=0; j<fAverageHiGainSectors->GetSize(); j++)
+          GetAverageHiGainSector(j).CheckOverflow(hist);
+  }
+
 
   FitHiGainArrays(*hilocam,*badcam,
@@ -458,17 +454,12 @@
     }
 
-  for (Int_t j=0; j<nareas; j++)
-    {
-      
-      MHCalibrationPix    &hist = GetAverageLoGainArea(j);      
-      CheckOverflow(hist);
-   }
-  
-  for (Int_t j=0; j<nsectors; j++)
-    {
-      
-      MHCalibrationPix &hist = GetAverageLoGainSector(j);      
-      CheckOverflow(hist);
-    }
+  if (IsAverageing())
+  {
+      for (Int_t j=0; j<nareas; j++)
+          GetAverageLoGainArea(j).CheckOverflow(hist);
+
+      for (Int_t j=0; j<nsectors; j++)
+          GetAverageLoGainSector(j).CheckOverflow(hist);
+  }
 
   FitLoGainArrays(*hilocam,*badcam,
Index: trunk/MagicSoft/Mars/mhcalib/MHCalibrationPix.h
===================================================================
--- trunk/MagicSoft/Mars/mhcalib/MHCalibrationPix.h	(revision 7005)
+++ trunk/MagicSoft/Mars/mhcalib/MHCalibrationPix.h	(revision 7013)
@@ -27,7 +27,7 @@
   
   // Getters
-  const Double_t GetBlackout       () const;  
-  const Double_t GetPickup         () const;
-  const Float_t  GetSaturated      () const { return fSaturated;      }
+  const Double_t GetBlackout() const;
+  const Double_t GetPickup() const;
+  const Int_t    GetSaturated() const { return fSaturated;      }
 
   // Fits
