Index: trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 4635)
+++ trunk/MagicSoft/Mars/mcalib/MHCalibrationChargeCam.cc	(revision 4636)
@@ -121,4 +121,6 @@
 #include "MHCalibrationChargePix.h"
 
+#include "MCalibrationCam.h"
+
 #include "MCalibrationChargeCam.h"
 #include "MCalibrationChargePix.h"
@@ -362,5 +364,5 @@
           {
             hist.GetHGausHist()->SetTitle(Form("%s%s%s","Signal averaged on event-by-event basis ",
-                                               j==0 ? "Inner Pixels " : "Outer Pixels ","High Gain Runs: "));
+                                               j==0 ? "Inner Pixels " : "Outer Pixels ","Low Gain Runs: "));
             hist.InitBins();
             hist.SetEventFrequency(fPulserFrequency);
@@ -388,5 +390,4 @@
           hist.GetHGausHist()->SetTitle("Summed FADC slices average HiGain Sector ");
           hist.SetNbins(fAverageNbins);
-          hist.SetLast (2.*hist.GetLast());
           hist.GetHAbsTime()->SetTitle("Absolute Arrival Time average HiGain Sector ");
 
@@ -550,4 +551,7 @@
       const Int_t npix = fAverageAreaNum[j];
 
+      if (npix == 0)
+        continue;
+
       MHCalibrationChargePix &hipix = (MHCalibrationChargePix&)GetAverageHiGainArea(j);
       MHCalibrationChargePix &lopix = (MHCalibrationChargePix&)GetAverageLoGainArea(j);
@@ -556,6 +560,6 @@
       lopix.FillHistAndArray(sumloarea[j]/npix);
 
-      hipix.SetSaturated((Float_t)sathiarea[j]/npix); 
-      lopix.SetSaturated((Float_t)satloarea[j]/npix); 
+      hipix.SetSaturated(sathiarea[j]/npix); 
+      lopix.SetSaturated(satloarea[j]/npix); 
 
       hipix.FillAbsTime(timehiarea[j]/npix);
@@ -569,4 +573,7 @@
       const Int_t npix = fAverageSectorNum[j];
 
+      if (npix == 0)
+        continue;
+
       MHCalibrationChargePix &hipix = (MHCalibrationChargePix&)GetAverageHiGainSector(j);
       MHCalibrationChargePix &lopix = (MHCalibrationChargePix&)GetAverageLoGainSector(j);
@@ -575,6 +582,6 @@
       lopix.FillHistAndArray(sumlosector[j]/npix);
 
-      hipix.SetSaturated((Float_t)sathisector[j]/npix); 
-      lopix.SetSaturated((Float_t)satlosector[j]/npix); 
+      hipix.SetSaturated(sathisector[j]/npix); 
+      lopix.SetSaturated(satlosector[j]/npix); 
 
       hipix.FillAbsTime(timehisector[j]/npix);
@@ -871,26 +878,23 @@
   TVirtualPad *pad = gPad ? gPad : MH::MakeDefCanvas(this);  
   pad->SetBorderMode(0);
-
-  pad->Divide(2,nareas);
-
+  pad->Divide(1,nareas);
+
+  //
+  // Loop over inner and outer pixels
+  //  
   for (Int_t i=0; i<nareas;i++) 
-    {
-      pad->cd(2*(i+1)-1);
-      MHCalibrationChargePix &hipix = (MHCalibrationChargePix&)GetAverageHiGainArea(i);
-
-      if (i==0)
-        DrawDataCheckPixel(hipix,gkHiGainInnerRefLines);
-      else
-        DrawDataCheckPixel(hipix,gkHiGainOuterRefLines);
-
-      pad->cd(2*(i+1));
-
-      MHCalibrationChargePix &lopix = (MHCalibrationChargePix&)GetAverageLoGainArea(i);
-
-      if (i==0)
-        DrawDataCheckPixel(lopix,gkLoGainInnerRefLines);
-      else
-        DrawDataCheckPixel(lopix,gkLoGainOuterRefLines);
-
+     {
+       
+       pad->cd(i+1);
+       
+       MHCalibrationChargePix &hipix = (MHCalibrationChargePix&)GetAverageHiGainArea(i);
+       MHCalibrationChargePix &lopix = (MHCalibrationChargePix&)GetAverageLoGainArea(i);
+       //
+       // Ask for Hi-Gain saturation
+       //
+       if (hipix.GetSaturated() > fNumHiGainSaturationLimit*hipix.GetHGausHist()->GetEntries())
+         DrawDataCheckPixel(lopix,i ? gkLoGainOuterRefLines : gkLoGainInnerRefLines);
+       else
+         DrawDataCheckPixel(hipix,i ? gkHiGainOuterRefLines : gkHiGainInnerRefLines);
     }      
 }
@@ -928,7 +932,7 @@
 
   for (int i=0; i<navhi; i++)
-    (*cam->fAverageHiGainAreas)[i] = (*fAverageHiGainAreas)[i]->Clone();
+    (*cam->fAverageHiGainAreas)  [i] = (*fAverageHiGainAreas)  [i]->Clone();
   for (int i=0; i<navlo; i++)
-    (*cam->fAverageLoGainAreas)[i] = (*fAverageLoGainAreas)[i]->Clone();
+    (*cam->fAverageLoGainAreas)  [i] = (*fAverageLoGainAreas)  [i]->Clone();
   for (int i=0; i<nsehi; i++)
     (*cam->fAverageHiGainSectors)[i] = (*fAverageHiGainSectors)[i]->Clone();
@@ -945,4 +949,5 @@
   cam->fRunNumbers             = fRunNumbers;
 
+  cam->fColor                  = fColor;
   cam->fPulserFrequency        = fPulserFrequency;
   cam->fAverageNbins           = fAverageNbins;
@@ -967,14 +972,25 @@
   TH1F *hist = pix.GetHGausHist();
   
-
-  TH2D *null = new TH2D("Null",hist->GetTitle(),100,pix.GetFirst(),pix.GetLast(),
+  TH2D *null = new TH2D("Null",hist->GetTitle(),100,pix.GetFirst() > -1. ? 0. : 100.,pix.GetLast()/2.,
                         100,0.,hist->GetEntries()/10.);
 
   null->SetDirectory(NULL);
   null->SetBit(kCanDelete);
-  null->GetXaxis()->SetTitle(hist->GetXaxis()->GetTitle());
-  null->GetYaxis()->SetTitle(hist->GetYaxis()->GetTitle());  
-  null->GetXaxis()->CenterTitle();
-  null->GetYaxis()->CenterTitle();
+  //
+  // set the labels bigger
+  //
+  TAxis *xaxe = null->GetXaxis();
+  TAxis *yaxe = null->GetYaxis();
+  xaxe->CenterTitle();
+  yaxe->CenterTitle();    
+  xaxe->SetTitleSize(0.07);
+  yaxe->SetTitleSize(0.07);    
+  xaxe->SetTitleOffset(0.7);
+  yaxe->SetTitleOffset(0.55);    
+  xaxe->SetLabelSize(0.06);
+  yaxe->SetLabelSize(0.06);    
+
+  xaxe->SetTitle(hist->GetXaxis()->GetTitle());
+  yaxe->SetTitle(hist->GetYaxis()->GetTitle());  
   null->Draw();
   hist->Draw("same");
@@ -984,10 +1000,25 @@
   if (pix.GetFGausFit())
   {
-      pix.GetFGausFit()->SetLineColor(pix.IsGausFitOK() ? kGreen : kRed);
-      pix.GetFGausFit()->Draw("same");
+    switch ( fColor )
+      {
+      case MCalibrationCam::kGREEN:
+        pix.GetFGausFit()->SetLineColor(kGreen);
+        break;
+      case MCalibrationCam::kBLUE:
+        pix.GetFGausFit()->SetLineColor(kBlue);
+        break;
+      case MCalibrationCam::kUV:  
+        pix.GetFGausFit()->SetLineColor(106);
+        break;
+      case MCalibrationCam::kCT1: 
+        pix.GetFGausFit()->SetLineColor(006);
+        break;
+      default:
+        pix.GetFGausFit()->SetLineColor(kRed);
+      }
+    pix.GetFGausFit()->Draw("same");
   }
 
   DisplayRefLines(null,refline);
-
 
   newpad->cd(2);
@@ -1019,5 +1050,5 @@
   TLine *blue1   = new TLine(refline[1],0.,refline[1],hist->GetYaxis()->GetXmax());
   blue1->SetBit(kCanDelete);
-  blue1->SetLineColor(007);
+  blue1->SetLineColor(227);
   blue1->SetLineStyle(2);
   blue1->SetLineWidth(3);
@@ -1026,5 +1057,5 @@
   TLine *blue5   = new TLine(refline[2],0.,refline[2],hist->GetYaxis()->GetXmax());
   blue5->SetBit(kCanDelete);
-  blue5->SetLineColor(062);
+  blue5->SetLineColor(68);
   blue5->SetLineStyle(2);
   blue5->SetLineWidth(3);
@@ -1033,5 +1064,5 @@
   TLine *blue10   = new TLine(refline[3],0.,refline[3],hist->GetYaxis()->GetXmax());
   blue10->SetBit(kCanDelete);
-  blue10->SetLineColor(004);
+  blue10->SetLineColor(4);
   blue10->SetLineStyle(2);
   blue10->SetLineWidth(3);
@@ -1047,10 +1078,10 @@
   TLine *ct1    = new TLine(refline[5],0.,refline[5],hist->GetYaxis()->GetXmax());
   ct1->SetBit(kCanDelete);
-  ct1->SetLineColor(006);
+  ct1->SetLineColor(6);
   ct1->SetLineStyle(2);
   ct1->SetLineWidth(3);
   ct1->Draw();
 
-  TLegend *leg = new TLegend(0.4,0.75,0.7,0.99);
+  TLegend *leg = new TLegend(0.7,0.35,0.9,0.99);
   leg->SetBit(kCanDelete);
   leg->AddEntry(green1,"1 Led GREEN","l");
Index: trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.cc	(revision 4635)
+++ trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.cc	(revision 4636)
@@ -128,21 +128,4 @@
   MHGausEvents::InitBins();
   fHAbsTime.SetBins(fAbsTimeNbins,fAbsTimeFirst,fAbsTimeLast);
-}
-
-// --------------------------------------------------------------------------
-//
-// Sets:
-// - fSaturated to 0.
-// 
-// Executes:
-// - MHGausEvents::Clear()
-//
-void MHCalibrationChargePix::Clear(Option_t *o)
-{
-
-  fSaturated = 0.;
-
-  MHGausEvents::Clear();
-  return;
 }
 
Index: trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.h	(revision 4635)
+++ trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.h	(revision 4636)
@@ -32,5 +32,4 @@
   ~MHCalibrationChargePix() {}
 
-  virtual void Clear(Option_t *o="");
   virtual void Reset();  
   virtual void InitBins();
Index: trunk/MagicSoft/Mars/mcalib/MHGausEvents.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHGausEvents.cc	(revision 4635)
+++ trunk/MagicSoft/Mars/mcalib/MHGausEvents.cc	(revision 4636)
@@ -225,5 +225,6 @@
   fSigmaErr          = 0.;
   fProb              = 0.;
-  
+
+  fSaturated         = 0;
   fCurrentSize       = 0;
 
Index: trunk/MagicSoft/Mars/mcalib/MHGausEvents.h
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MHGausEvents.h	(revision 4635)
+++ trunk/MagicSoft/Mars/mcalib/MHGausEvents.h	(revision 4636)
@@ -53,5 +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
+  Int_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
@@ -81,5 +81,5 @@
   // Draws
   virtual void Draw(Option_t *option="");         // Default Draw 
-  void DrawEvents();                                  // Draw graph of fEvents
+  void DrawEvents();                              // Draw graph of fEvents
   
   // Getters
@@ -136,5 +136,5 @@
 	           const Double_t xmax=0.);       // Fit the histogram HGausHist with a Gaussian
   Bool_t RepeatFit(const Option_t *option="RQ0"); // Repeat fit within limits defined by fPickupLimit
-  void BypassFit();                               // Take mean and RMS from the histogram
+  void   BypassFit();                             // Take mean and RMS from the histogram
   
   // Prints
@@ -158,5 +158,5 @@
   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  SetSaturated        ( const Int_t    i                   ) { fSaturated     += i;   }
   void  SetSigma            ( const Double_t d                   ) { fSigma          = d;   }
   void  SetSigmaErr         ( const Double_t d                   ) { fSigmaErr       = d;   }
