Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 4949)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 4950)
@@ -37,4 +37,9 @@
      - use new functions InitHiGainArrays and InitLoGainArrays
  
+   * mhcalib/MHCalibrationRelTimePix.[h,cc]
+   * mhcalib/MHCalibrationTestPix.[h,cc]
+   * mhcalib/MHCalibrationTestTimePix.[h,cc]
+     - removed
+
 
  2004/09/10: Antonio Stamerra
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.cc	(revision 4950)
@@ -154,9 +154,18 @@
 using namespace std;
 
+const Int_t   MHCalibrationChargeCam::fgChargeHiGainNbins =  550;
 const Axis_t  MHCalibrationChargeCam::fgChargeHiGainFirst = -100.5;
 const Axis_t  MHCalibrationChargeCam::fgChargeHiGainLast  = 999.5;
+const Int_t   MHCalibrationChargeCam::fgChargeLoGainNbins =  325;
 const Axis_t  MHCalibrationChargeCam::fgChargeLoGainFirst = -150.5;
-const Axis_t  MHCalibrationChargeCam::fgChargeLoGainLast  = 499.5;
-
+const Axis_t  MHCalibrationChargeCam::fgChargeLoGainLast  =  499.5;
+const TString MHCalibrationChargeCam::gsHistName          = "Charge";
+const TString MHCalibrationChargeCam::gsHistTitle         = "Signals";
+const TString MHCalibrationChargeCam::gsHistXTitle        = "Signal [FADC counts]";
+const TString MHCalibrationChargeCam::gsHistYTitle        = "Nr. events";
+const TString MHCalibrationChargeCam::gsAbsHistName       = "AbsTime";
+const TString MHCalibrationChargeCam::gsAbsHistTitle      = "Abs. Arr. Times";
+const TString MHCalibrationChargeCam::gsAbsHistXTitle     = "Time [FADC slices]";
+const TString MHCalibrationChargeCam::gsAbsHistYTitle     = "Nr. events";
 const Float_t MHCalibrationChargeCam::fgNumHiGainSaturationLimit = 0.01;
 const Float_t MHCalibrationChargeCam::fgNumLoGainSaturationLimit = 0.005;
@@ -180,7 +189,22 @@
 // - fTimeLowerLimit           to fgTimeLowerLimit 
 // - fTimeUpperLimit           to fgTimeUpperLimit 
-// - fNbins to fgChargeHiGainLast-fgChargeHiGainFirst
+//
+// - fNbins to fgChargeHiGainNbins
 // - fFirst to fgChargeHiGainFirst
 // - fLast  to fgChargeHiGainLast 
+//
+// - fLoGainNbins to fgChargeLoGainNbins
+// - fLoGainFirst to fgChargeLoGainFirst
+// - fLoGainLast  to fgChargeLoGainLast 
+//
+// - fHistName   to gsHistName  
+// - fHistTitle  to gsHistTitle 
+// - fHistXTitle to gsHistXTitle
+// - fHistYTitle to gsHistYTitle
+//
+// - fAbsHistName   to gsAbsHistName  
+// - fAbsHistTitle  to gsAbsHistTitle 
+// - fAbsHistXTitle to gsAbsHistXTitle
+// - fAbsHistYTitle to gsAbsHistYTitle
 //
 MHCalibrationChargeCam::MHCalibrationChargeCam(const char *name, const char *title)
@@ -196,11 +220,21 @@
   SetTimeUpperLimit();
 
-  SetNbins((Int_t)(fgChargeHiGainLast-fgChargeHiGainFirst)/2);
+  SetNbins(fgChargeHiGainNbins);
   SetFirst(fgChargeHiGainFirst);
   SetLast (fgChargeHiGainLast );
 
-  SetLoGainNbins((Int_t)(fgChargeLoGainLast-fgChargeLoGainFirst)/2);
+  SetLoGainNbins(fgChargeLoGainNbins);
   SetLoGainFirst(fgChargeLoGainFirst);
   SetLoGainLast (fgChargeLoGainLast );
+
+  SetHistName  (gsHistName  .Data());
+  SetHistTitle (gsHistTitle .Data());
+  SetHistXTitle(gsHistXTitle.Data());
+  SetHistYTitle(gsHistYTitle.Data());
+
+  SetAbsHistName  (gsAbsHistName  .Data());
+  SetAbsHistTitle (gsAbsHistTitle .Data());
+  SetAbsHistXTitle(gsAbsHistXTitle.Data());
+  SetAbsHistYTitle(gsAbsHistYTitle.Data());
 }
 
@@ -233,23 +267,22 @@
 // into MCalibrationChargeCam and test for changes in that variable
 //
-// Initializes, if empty to MGeomCam::GetNumPixels():
-// - MHCalibrationCam::fHiGainArray, MHCalibrationCam::fLoGainArray
-// - MHCalibrationCam::fHiGainOverflow, MHCalibrationCam::fLoGainOverflow
-//
-// Initializes, if empty to MGeomCam::GetNumAreas() for:
-// - MHCalibrationCam::fAverageHiGainAreas, MHCalibrationCam::fAverageLoGainAreas
-//
-// Initializes, if empty to MGeomCam::GetNumSectors() for:
-// - MHCalibrationCam::fAverageHiGainSectors, MHCalibrationCam::fAverageLoGainSectors
-//
-// Calls MHCalibrationCam::InitHists() for every entry in:
-// - MHCalibrationCam::fHiGainArray, MHCalibrationCam::fLoGainArray
-// - MHCalibrationCam::fAverageHiGainAreas, MHCalibrationCam::fAverageLoGainAreas
-// - MHCalibrationCam::fAverageHiGainSectors, MHCalibrationCam::fAverageLoGainSectors
-//
-// Sets Titles and Names for the Charge Histograms:
-// - MHCalibrationCam::fAverageHiGainAreas
-// - MHCalibrationCam::fAverageHiGainSectors
+// Calls:
+// - InitHiGainArrays()
+// - InitLoGainArrays()
 // 
+// Sets:
+// - fSumhiarea   to nareas 
+// - fSumloarea   to nareas 
+// - fTimehiarea  to nareas 
+// - fTimeloarea  to nareas
+// - fSumhisector to nsectors 
+// - fSumlosector to nsectors 
+// - fTimehisector to nsectors 
+// - fTimelosector to nsectors
+// - fSathiarea   to nareas 
+// - fSatloarea   to nareas
+// - fSathisector to nsectors 
+// - fSatlosector to nsectors
+//
 Bool_t MHCalibrationChargeCam::ReInitHists(MParList *pList)
 {
@@ -313,11 +346,55 @@
   */
 
-  
   const Int_t npixels  = fGeom->GetNumPixels();
   const Int_t nsectors = fGeom->GetNumSectors();
   const Int_t nareas   = fGeom->GetNumAreas();
 
+  InitHiGainArrays(npixels,nareas,nsectors);
+  InitLoGainArrays(npixels,nareas,nsectors);
+
+  fSumhiarea  .Set(nareas); 
+  fSumloarea  .Set(nareas); 
+  fTimehiarea .Set(nareas); 
+  fTimeloarea .Set(nareas);
+  fSumhisector.Set(nsectors); 
+  fSumlosector.Set(nsectors); 
+  fTimehisector.Set(nsectors); 
+  fTimelosector.Set(nsectors);
+
+  fSathiarea  .Set(nareas); 
+  fSatloarea  .Set(nareas);
+  fSathisector.Set(nsectors); 
+  fSatlosector.Set(nsectors);
+
+  return kTRUE;
+}
+
+// --------------------------------------------------------------------------
+//
+// Retrieve:
+// - fRunHeader->GetNumSamplesHiGain();
+//
+// Initializes the High Gain Arrays:
+//
+// - Expand fHiGainArrays to npixels
+// - Expand fAverageHiGainAreas to nareas
+// - Expand fAverageHiGainSectors to nsectors
+// 
+// - For every entry in the expanded arrays: 
+//   * call new MHCalibrationPix(fHistName,fHistTitle)
+//   * SetNbins(fNbins), SetFirst(fFirst), SetLast(fLast)
+//   * SetAbsTimeNbins(samples hi gain), SetAbsTimeFirst(-0.5), SetAbsTimeLast(samples hi-gain-0.5)
+//   * Set fHistName and fHistTitle in the Histogram of MHCalibrationPix
+//   * Set Name and Title in the Abs Time Histogram of MHCalibrationPix
+//   * Set X-axis and Y-axis titles with fHistXTitle and fHistYTitle
+//   * Call InitHists
+//
+//
+void MHCalibrationChargeCam::InitHiGainArrays(const Int_t npixels, const Int_t nareas, const Int_t nsectors)
+{
+  
+  TH1F *h;
+
   const Int_t higainsamples = fRunHeader->GetNumSamplesHiGain();
-  const Int_t logainsamples = fRunHeader->GetNumSamplesLoGain();
 
   if (fHiGainArray->GetEntries()==0)
@@ -326,6 +403,12 @@
       for (Int_t i=0; i<npixels; i++)
       {
-        (*fHiGainArray)[i] = new MHCalibrationChargePix("ChargeHiGainPix","Signals of the HiGain");
+        (*fHiGainArray)[i] = new MHCalibrationChargePix(Form("%s%s",fHistName.Data(),"HiGainPix"),
+                                                  Form("%s%s",fHistTitle.Data()," High Gain Pixel"));
+
         MHCalibrationChargePix &pix = (MHCalibrationChargePix&)(*this)[i];
+
+        pix.SetNbins(fNbins);
+        pix.SetFirst(fFirst);
+        pix.SetLast (fLast);
 
         pix.SetAbsTimeNbins(higainsamples);
@@ -333,17 +416,17 @@
         pix.SetAbsTimeLast(higainsamples-0.5);
 
-        pix.SetNbins(fNbins);
-        pix.SetFirst(fFirst);
-        pix.SetLast (fLast);
-
-        TH1F *h =  pix.GetHGausHist();
-
-        h->SetName ("HChargeHiGainPix");
-        h->SetTitle("Signals High Gain Pixel ");  
-        h->SetXTitle("Signal [FADC counts]");
-        h->SetYTitle("Nr. of events");
-
-        pix.GetHAbsTime()->SetName ("HAbsTimeHiGainPix");
-        pix.GetHAbsTime()->SetTitle("Absolute Arrival Times High Gain Pixel ");  
+        h = pix.GetHGausHist();
+
+        h->SetName (Form("%s%s%s","H",fHistName.Data(),"HiGainPix"));
+        h->SetTitle(Form("%s%s",fHistTitle.Data()," High Gain Pixel "));  
+        h->SetXTitle(fHistXTitle.Data());
+        h->SetYTitle(fHistYTitle.Data());
+        
+        h = pix.GetHAbsTime();
+
+        h->SetName (Form("%s%s%s","H",fAbsHistName.Data(),"HiGainPix"));
+        h->SetTitle(Form("%s%s",fAbsHistTitle.Data()," High Gain Pixel "));
+        h->SetXTitle(fAbsHistXTitle.Data());
+        h->SetYTitle(fAbsHistYTitle.Data());
 
         InitHists((*this)[i],(*fBadPixels)[i],i);
@@ -351,5 +434,128 @@
   }
 
-  if (fLoGainArray->GetEntries()==0 && IsLoGain())
+
+  if (fAverageHiGainAreas->GetEntries()==0)
+  {
+    fAverageHiGainAreas->Expand(nareas);
+    
+    for (Int_t j=0; j<nareas; j++)
+      {
+        (*fAverageHiGainAreas)[j] = 
+          new MHCalibrationChargePix(Form("%s%s",fHistName.Data(),"HiGainArea"),
+                                     Form("%s%s",fHistTitle.Data()," High Gain Area Idx "));
+        
+        MHCalibrationChargePix &pix = (MHCalibrationChargePix&)GetAverageHiGainArea(j);
+        
+        pix.SetNbins(fNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
+        pix.SetFirst(fFirst);
+        pix.SetLast (fLast);
+        
+        pix.SetAbsTimeNbins(higainsamples);
+        pix.SetAbsTimeFirst(-0.5);
+        pix.SetAbsTimeLast(higainsamples-0.5);
+
+        h =  pix.GetHGausHist();
+        
+        h->SetName (Form("%s%s%s","H",fHistName.Data(),"HiGainArea"));
+        h->SetXTitle(fHistXTitle.Data());
+        h->SetYTitle(fHistYTitle.Data());
+        
+        if (fGeom->InheritsFrom("MGeomCamMagic"))
+          {
+            h->SetTitle(Form("%s%s%s%s",fHistTitle.Data()," averaged on event-by-event basis ",
+                             j==0 ? "Inner Pixels " : "Outer Pixels ","High Gain Runs: "));
+            pix.InitBins();
+            pix.SetEventFrequency(fPulserFrequency);
+          }
+        else
+          {
+            h->SetTitle(Form("%s%s",fHistTitle.Data(),
+                             " averaged on event-by-event basis High Gain Area Idx "));
+            InitHists(pix,fIntensCam ? fIntensCam->GetAverageBadArea(j) : fCam->GetAverageBadArea(j),j);
+          }
+
+        h =  pix.GetHAbsTime();
+        
+        h->SetName (Form("%s%s%s","H",fAbsHistName.Data(),"HiGainArea"));
+        h->SetTitle(Form("%s%s",fAbsHistTitle.Data(),
+                         " averaged on event-by-event basis High Gain Area Idx "));
+        h->SetXTitle(fAbsHistXTitle.Data());
+        h->SetYTitle(fAbsHistYTitle.Data());
+      }
+  }
+  
+  if (fAverageHiGainSectors->GetEntries()==0)
+  {
+      fAverageHiGainSectors->Expand(nsectors);
+
+      for (Int_t j=0; j<nsectors; j++)
+      {
+	  (*fAverageHiGainSectors)[j] = 
+            new MHCalibrationChargePix(Form("%s%s",fHistName.Data(),"HiGainSector"),
+                                       Form("%s%s",fHistTitle.Data()," High Gain Sector "));
+
+          MHCalibrationChargePix &pix = (MHCalibrationChargePix&)GetAverageHiGainSector(j);
+
+          pix.SetNbins(fNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
+          pix.SetFirst(fFirst);
+          pix.SetLast (fLast);
+
+          pix.SetAbsTimeNbins(higainsamples);
+          pix.SetAbsTimeFirst(-0.5);
+          pix.SetAbsTimeLast(higainsamples-0.5);
+          
+          h =  pix.GetHGausHist();
+          
+          h->SetName (Form("%s%s%s","H",fHistName.Data(),"HiGainSector"));
+          h->SetTitle(Form("%s%s",fHistTitle.Data()," High Gain Sector "));  
+          h->SetXTitle(fHistXTitle.Data());
+          h->SetYTitle(fHistYTitle.Data());
+
+          h =  pix.GetHAbsTime();
+          
+          h->SetName (Form("%s%s%s","H",fAbsHistName.Data(),"HiGainSector"));
+          h->SetTitle(Form("%s%s",fAbsHistTitle.Data(),
+                           " averaged on event-by-event basis High Gain Area Sector "));
+          h->SetXTitle(fAbsHistXTitle.Data());
+          h->SetYTitle(fAbsHistYTitle.Data());
+          
+          InitHists(pix,fIntensCam ? fIntensCam->GetAverageBadSector(j) : fCam->GetAverageBadSector(j),j);
+      }
+  }
+}
+
+//--------------------------------------------------------------------------------------
+//
+// Return, if IsLoGain() is kFALSE 
+//
+// Retrieve:
+// - fRunHeader->GetNumSamplesHiGain();
+//
+// Initializes the Low Gain Arrays:
+//
+// - Expand fLoGainArrays to npixels
+// - Expand fAverageLoGainAreas to nareas
+// - Expand fAverageLoGainSectors to nsectors
+// 
+// - For every entry in the expanded arrays: 
+//   * call new MHCalibrationPix(fHistName,fHistTitle)
+//   * SetBins(fNbins), SetFirst(fFirst), SetLast(fLast)
+//   * SetAbsTimeNbins(samples lo gain), SetAbsTimeFirst(-0.5), SetAbsTimeLast(samples lo-gain-0.5)
+//   * Set fHistName and fHistTitle in the Histogram of MHCalibrationPix
+//   * Set fHistName and fHistTitle in the Histogram of MHCalibrationPix
+//   * Set X-axis and Y-axis titles with fHistXTitle and fHistYTitle
+//   * Call InitHists
+//
+void MHCalibrationChargeCam::InitLoGainArrays(const Int_t npixels, const Int_t nareas, const Int_t nsectors)
+{
+
+  if (!IsLoGain())
+    return;
+
+  const Int_t logainsamples = fRunHeader->GetNumSamplesLoGain();
+
+  TH1F *h;
+
+  if (fLoGainArray->GetEntries()==0 )
     {
       fLoGainArray->Expand(npixels);
@@ -357,25 +563,31 @@
       for (Int_t i=0; i<npixels; i++)
         {
-          (*fLoGainArray)[i] = new MHCalibrationChargePix("ChargeLoGainPix","Signals of the LoGain");
+          (*fLoGainArray)[i] = 
+            new MHCalibrationChargePix(Form("%s%s",fHistName.Data(),"LoGainPix"),
+                                       Form("%s%s",fHistTitle.Data()," Low Gain Pixel"));
+
           MHCalibrationChargePix &pix = (MHCalibrationChargePix&)(*this)(i);
 
+          pix.SetNbins(fLoGainNbins);
+          pix.SetFirst(fLoGainFirst);
+          pix.SetLast (fLoGainLast);
+          
           pix.SetAbsTimeNbins(logainsamples);
           pix.SetAbsTimeFirst(-0.5);
           pix.SetAbsTimeLast(logainsamples-0.5);
           
-          pix.SetNbins(fLoGainNbins);
-          pix.SetFirst(fLoGainFirst);
-          pix.SetLast (fLoGainLast);
-          
-          TH1F *h =  pix.GetHGausHist();
-          
-          h->SetName ("HChargeLoGainPix");
-          h->SetTitle("Signals Low Gain Pixel ");  
-          h->SetXTitle("Signal [FADC counts]");
-          h->SetYTitle("Nr. of events");
-        
-          pix.GetHAbsTime()->SetName ("HAbsTimeLoGainPix");
-          pix.GetHAbsTime()->SetTitle("Absolute Arrival Times Low Gain Pixel ");  
-
+          h =  pix.GetHGausHist();
+          
+          h->SetName (Form("%s%s%s","H",fHistName.Data(),"LoGainPix"));
+          h->SetTitle(Form("%s%s",fHistTitle.Data()," Low Gain Pixel "));  
+          h->SetXTitle(fHistXTitle.Data());
+          h->SetYTitle(fHistYTitle.Data());
+          
+          h = pix.GetHAbsTime();
+          
+          h->SetName (Form("%s%s%s","H",fAbsHistName.Data(),"HiGainPix"));
+          h->SetTitle(Form("%s%s",fAbsHistTitle.Data()," High Gain Pixel "));
+          h->SetXTitle(fAbsHistXTitle.Data());
+          h->SetYTitle(fAbsHistYTitle.Data());
           //
           // Adapt the range for the case, the intense blue is used:
@@ -395,49 +607,5 @@
   }
 
-  if (fAverageHiGainAreas->GetEntries()==0)
-  {
-    fAverageHiGainAreas->Expand(nareas);
-    
-    for (Int_t j=0; j<nareas; j++)
-      {
-        (*fAverageHiGainAreas)[j] = new MHCalibrationChargePix("ChargeAverageHiGainArea",
-                                                               "Average HiGain FADC sums area idx ");
-
-        MHCalibrationChargePix &pix = (MHCalibrationChargePix&)GetAverageHiGainArea(j);
-        
-        pix.SetAbsTimeNbins(higainsamples);
-        pix.SetAbsTimeFirst(-0.5);
-        pix.SetAbsTimeLast(higainsamples-0.5);
-
-        pix.SetNbins(fNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
-        pix.SetFirst(fFirst);
-        pix.SetLast (fLast);
-        
-        TH1F *h =  pix.GetHGausHist();
-        
-        h->SetName ("HChargeHiGainAreaIdx");
-        h->SetXTitle("Signal [FADC counts]");
-        h->SetYTitle("Nr. of events");
-        
-        pix.GetHAbsTime()->SetName ("HAbsTimeHiGainAreaIdx");
-        pix.GetHAbsTime()->SetTitle("Absolute Arrival Times average Hi Gain Area Idx ");  
-        
-        if (fGeom->InheritsFrom("MGeomCamMagic"))
-          {
-            h->SetTitle(Form("%s%s%s","Signals averaged on event-by-event basis ",
-                             j==0 ? "Inner Pixels " : "Outer Pixels ","High Gain Runs: "));
-            pix.InitBins();
-            pix.SetEventFrequency(fPulserFrequency);
-          }
-        else
-          {
-            h->SetTitle("Signals averaged on event-by-event basis High Gain Area Idx ");
-            InitHists(pix,fIntensCam ? fIntensCam->GetAverageBadArea(j) : fCam->GetAverageBadArea(j),j);
-          }
-      }
-  }
-  
-  
-  if (fAverageLoGainAreas->GetEntries()==0 && IsLoGain())
+  if (fAverageLoGainAreas->GetEntries()==0)
     {
       fAverageLoGainAreas->Expand(nareas);
@@ -445,8 +613,13 @@
       for (Int_t j=0; j<nareas; j++)
         {
-	  (*fAverageLoGainAreas)[j] = new MHCalibrationChargePix("ChargeAverageLoGainArea",
-                                                                 "Average LoGain FADC sums area idx ");
-
+	  (*fAverageLoGainAreas)[j] = 
+            new MHCalibrationChargePix(Form("%s%s",fHistName.Data(),"LoGainArea"),
+                                       Form("%s%s",fHistTitle.Data()," Low Gain Area Idx "));
+        
         MHCalibrationChargePix &pix = (MHCalibrationChargePix&)GetAverageLoGainArea(j);
+
+        pix.SetNbins(fLoGainNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
+        pix.SetFirst(fLoGainFirst);
+        pix.SetLast (fLoGainLast);
 
         pix.SetAbsTimeNbins(logainsamples);
@@ -454,16 +627,10 @@
         pix.SetAbsTimeLast(logainsamples-0.5);
 
-        pix.SetNbins(fLoGainNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
-        pix.SetFirst(fLoGainFirst);
-        pix.SetLast (fLoGainLast);
-
-        TH1F *h =  pix.GetHGausHist();
-        
-        h->SetName ("HChargeLoGainAreaIdx");
-        h->SetXTitle("Signal [FADC counts]");
-        h->SetYTitle("Nr. of events");
-        
-        pix.GetHAbsTime()->SetName ("HAbsTimeLoGainAreaIdx");
-        pix.GetHAbsTime()->SetTitle("Absolute Arrival Times average Low Gain Area Idx ");  
+        h =  pix.GetHGausHist();
+        
+        h->SetName (Form("%s%s%s","H",fHistName.Data(),"LoGainArea"));
+        h->SetXTitle(fHistXTitle.Data());
+        h->SetYTitle(fHistYTitle.Data());
+
         //
         // Adapt the range for the case, the intense blue is used:
@@ -483,5 +650,5 @@
         if (fGeom->InheritsFrom("MGeomCamMagic"))
           {
-            h->SetTitle(Form("%s%s%s","Signals averaged on event-by-event basis ",
+            h->SetTitle(Form("%s%s%s%s",fHistTitle.Data()," averaged on event-by-event basis ",
                              j==0 ? "Inner Pixels " : "Outer Pixels ","Low Gain Runs: "));
             pix.InitBins();
@@ -490,42 +657,19 @@
         else
           {
-            h->SetTitle("Signals averaged on event-by-event basis Low Gain Area Idx ");
+            h->SetTitle(Form("%s%s",fHistTitle.Data()," averaged on event-by-event basis Low Gain Area Idx ")); 
             InitHists(pix,fIntensCam ? fIntensCam->GetAverageBadArea(j) : fCam->GetAverageBadArea(j),j);
           }
+
+        h =  pix.GetHAbsTime();
+        
+        h->SetName (Form("%s%s%s","H",fAbsHistName.Data(),"LoGainArea"));
+        h->SetTitle(Form("%s%s",fAbsHistTitle.Data(),
+                         " averaged on event-by-event basis Low Gain Area Idx "));
+        h->SetXTitle(fAbsHistXTitle.Data());
+        h->SetYTitle(fAbsHistYTitle.Data());
+
         }
     }
   
-  if (fAverageHiGainSectors->GetEntries()==0)
-  {
-      fAverageHiGainSectors->Expand(nsectors);
-
-      for (Int_t j=0; j<nsectors; j++)
-      {
-	  (*fAverageHiGainSectors)[j] = new MHCalibrationChargePix("ChargeAverageHiGainSector",
-                                                                   "Averaged HiGain Signals Sector ");
-
-          MHCalibrationChargePix &pix = (MHCalibrationChargePix&)GetAverageHiGainSector(j);
-
-          pix.SetAbsTimeNbins(higainsamples);
-          pix.SetAbsTimeFirst(-0.5);
-          pix.SetAbsTimeLast(higainsamples-0.5);
-          
-          pix.SetNbins(fNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
-          pix.SetFirst(fFirst);
-          pix.SetLast (fLast);
-
-          TH1F *h =  pix.GetHGausHist();
-          
-          h->SetName ("HChargeHiGainSector");
-          h->SetTitle("Signals averaged on event-by-event basis HiGain Sector ");  
-          h->SetXTitle("Signal [FADC counts]");
-          h->SetYTitle("Nr. of events");
-        
-          pix.GetHAbsTime()->SetName ("HAbsTimeHiGainPix");
-          pix.GetHAbsTime()->SetTitle("Absolute Arrival Time average HiGain Sector ");  
-
-          InitHists(pix,fIntensCam ? fIntensCam->GetAverageBadSector(j) : fCam->GetAverageBadSector(j),j);
-      }
-  }
 
   if (fAverageLoGainSectors->GetEntries()==0 && IsLoGain())
@@ -535,8 +679,13 @@
       for (Int_t j=0; j<nsectors; j++)
       {
-	  (*fAverageLoGainSectors)[j] = new MHCalibrationChargePix("ChargeAverageLoGainSector",
-                                                                   "Average LoGain Signals Sector ");
+	  (*fAverageLoGainSectors)[j] = 
+            new MHCalibrationChargePix(Form("%s%s",fHistName.Data(),"LoGainSector"),
+                                       Form("%s%s",fHistTitle.Data()," Low Gain Sector "));
 
           MHCalibrationChargePix &pix = (MHCalibrationChargePix&)GetAverageLoGainSector(j);
+
+          pix.SetNbins(fLoGainNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
+          pix.SetFirst(fLoGainFirst);
+          pix.SetLast (fLoGainLast);
 
           pix.SetAbsTimeNbins(logainsamples);
@@ -544,18 +693,19 @@
           pix.SetAbsTimeLast(logainsamples-0.5);
           
-          pix.SetNbins(fLoGainNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
-          pix.SetFirst(fLoGainFirst);
-          pix.SetLast (fLoGainLast);
-
-          TH1F *h =  pix.GetHGausHist();
-          
-          h->SetName ("HChargeLoGainSector");
-          h->SetTitle("Signals averaged on event-by-event basis LoGain Sector ");  
-          h->SetXTitle("Signal [FADC counts]");
-          h->SetYTitle("Nr. of events");
-        
-          pix.GetHAbsTime()->SetName ("HAbsTimeLoGainPix");
-          pix.GetHAbsTime()->SetTitle("Absolute Arrival Time average LoGain Sector ");  
-
+          h =  pix.GetHGausHist();
+          
+          h->SetName (Form("%s%s%s","H",fHistName.Data(),"LoGainSector"));
+          h->SetTitle(Form("%s%s",fHistTitle.Data()," Low Gain Sector "));  
+          h->SetXTitle(fHistXTitle.Data());
+          h->SetYTitle(fHistYTitle.Data());
+
+          h =  pix.GetHAbsTime();
+          
+          h->SetName (Form("%s%s%s","H",fAbsHistName.Data(),"LoGainSector"));
+          h->SetTitle(Form("%s%s",fAbsHistTitle.Data(),
+                           " averaged on event-by-event basis Low Gain Area Sector "));
+          h->SetXTitle(fAbsHistXTitle.Data());
+          h->SetYTitle(fAbsHistYTitle.Data());
+          
           //
           // Adapt the range for the case, the intense blue is used:
@@ -576,20 +726,4 @@
       }
   }
-
-  fSumhiarea  .Set(nareas); 
-  fSumloarea  .Set(nareas); 
-  fTimehiarea .Set(nareas); 
-  fTimeloarea .Set(nareas);
-  fSumhisector.Set(nsectors); 
-  fSumlosector.Set(nsectors); 
-  fTimehisector.Set(nsectors); 
-  fTimelosector.Set(nsectors);
-
-  fSathiarea  .Set(nareas); 
-  fSatloarea  .Set(nareas);
-  fSathisector.Set(nsectors); 
-  fSatlosector.Set(nsectors);
-
-  return kTRUE;
 }
 
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargeCam.h	(revision 4950)
@@ -24,8 +24,20 @@
 private:
 
-  static const Axis_t  fgChargeHiGainFirst;          //! First Bin of HiGain Histograms (nw set to: -100.5)
-  static const Axis_t  fgChargeHiGainLast;           //! Last Bin of HiGain Histograms (nw set to:   999.5)
-  static const Axis_t  fgChargeLoGainFirst;          //! First Bin of LoGain Histograms (nw set to: -150.5)
-  static const Axis_t  fgChargeLoGainLast;           //! Last Bin of LoGain Histograms (nw set to:   499.5)
+  static const Int_t   fgChargeHiGainNbins;          //! Nr. bins of HiGain Histograms  (now set to:  550  )
+  static const Axis_t  fgChargeHiGainFirst;          //! First Bin of HiGain Histograms (now set to: -100.5)
+  static const Axis_t  fgChargeHiGainLast;           //! Last Bin of HiGain Histograms  (now set to:  999.5)
+  static const Int_t   fgChargeLoGainNbins;          //! First Bin of LoGain Histograms (now set to:  325  )
+  static const Axis_t  fgChargeLoGainFirst;          //! First Bin of LoGain Histograms (now set to: -150.5)
+  static const Axis_t  fgChargeLoGainLast;           //! Last Bin of LoGain Histograms  (now set to:  499.5)
+  
+  static const TString gsHistName;                   //! Default Histogram names
+  static const TString gsHistTitle;                  //! Default Histogram titles
+  static const TString gsHistXTitle;                 //! Default Histogram x-axis titles
+  static const TString gsHistYTitle;                 //! Default Histogram y-axis titles
+  
+  static const TString gsAbsHistName;               //! Default Histogram names abs.times
+  static const TString gsAbsHistTitle;              //! Default Histogram titles abs.times
+  static const TString gsAbsHistXTitle;             //! Default Histogram x-axis titles abs.times
+  static const TString gsAbsHistYTitle;             //! Default Histogram y-axis titles abs.times
   
   static const Float_t fgNumHiGainSaturationLimit;   //! The default for fNumHiGainSaturationLimit (now at: 0.01)
@@ -43,4 +55,9 @@
   Axis_t  fLoGainLast;                               // Upper histogram limit low gain  
 
+  TString fAbsHistName;                              // Histogram names abs.times
+  TString fAbsHistTitle;                             // Histogram titles abs. times
+  TString fAbsHistXTitle;                            // Histogram x-axis titles abs. times
+  TString fAbsHistYTitle;                            // Histogram y-axis titles abs. times
+  
   MArrayD fSumhiarea  ;                              //!
   MArrayD fSumloarea  ;                              //!
@@ -70,4 +87,7 @@
   Bool_t FillHists(const MParContainer *par, const Stat_t w=1);
 
+  void   InitHiGainArrays( const Int_t npix, const Int_t nareas, const Int_t nsectors );
+  void   InitLoGainArrays( const Int_t npix, const Int_t nareas, const Int_t nsectors );
+
   void   FinalizeAbsTimes (MHCalibrationChargePix &hist, MCalibrationChargePix &pix, MBadPixelsPix &bad,
                            Byte_t first, Byte_t last);  
@@ -92,4 +112,9 @@
   void SetTimeUpperLimit    ( const Float_t f=fgTimeUpperLimit ) { fTimeUpperLimit = f; }
   
+  void SetAbsHistName  ( const char *name )  { fAbsHistName  = name;  }
+  void SetAbsHistTitle ( const char *name )  { fAbsHistTitle = name;  }
+  void SetAbsHistXTitle( const char *name )  { fAbsHistXTitle = name; }
+  void SetAbsHistYTitle( const char *name )  { fAbsHistYTitle = name; }
+   
   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/mhcalib/MHCalibrationChargePINDiode.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.cc	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.cc	(revision 4950)
@@ -63,4 +63,12 @@
 const Float_t MHCalibrationChargePINDiode::fgTimeLowerLimit  = 3.;
 const Float_t MHCalibrationChargePINDiode::fgTimeUpperLimit  = 4.;
+const TString MHCalibrationChargePINDiode::gsHistName          = "Charge";
+const TString MHCalibrationChargePINDiode::gsHistTitle         = "Signals";
+const TString MHCalibrationChargePINDiode::gsHistXTitle        = "Signal [FADC counts]";
+const TString MHCalibrationChargePINDiode::gsHistYTitle        = "Nr. events";
+const TString MHCalibrationChargePINDiode::gsAbsHistName       = "AbsTime";
+const TString MHCalibrationChargePINDiode::gsAbsHistTitle      = "Abs. Arr. Times";
+const TString MHCalibrationChargePINDiode::gsAbsHistXTitle     = "Time [FADC slices]";
+const TString MHCalibrationChargePINDiode::gsAbsHistYTitle     = "Nr. events";
 // --------------------------------------------------------------------------
 //
@@ -95,4 +103,14 @@
 // - the current style for fHRmsCharge (NULL)
 //
+// - fHistName   to gsHistName  
+// - fHistTitle  to gsHistTitle 
+// - fHistXTitle to gsHistXTitle
+// - fHistYTitle to gsHistYTitle
+//
+// - fAbsHistName   to gsAbsHistName  
+// - fAbsHistTitle  to gsAbsHistTitle 
+// - fAbsHistXTitle to gsAbsHistXTitle
+// - fAbsHistYTitle to gsAbsHistYTitle
+//
 // Initializes:
 // - fHRmsCharge()
@@ -124,13 +142,13 @@
   SetTimeUpperLimit();
 
-  fHGausHist.SetName("HCalibrationChargePINDiode");
-  fHGausHist.SetTitle("Distribution of Summed FADC slices PIN Diode");  
-  fHGausHist.SetXTitle("Sum FADC Slices");
-  fHGausHist.SetYTitle("Nr. of events");
-
-  fHAbsTime.SetName("HAbsTimePINDiode");
-  fHAbsTime.SetTitle("Distribution of Absolute Arrival Times PIN Diode");  
-  fHAbsTime.SetXTitle("Absolute Arrival Time [FADC slice nr]");
-  fHAbsTime.SetYTitle("Nr. of events");
+  SetHistName  (gsHistName  .Data());
+  SetHistTitle (gsHistTitle .Data());
+  SetHistXTitle(gsHistXTitle.Data());
+  SetHistYTitle(gsHistYTitle.Data());
+
+  SetAbsHistName  (gsAbsHistName  .Data());
+  SetAbsHistTitle (gsAbsHistTitle .Data());
+  SetAbsHistXTitle(gsAbsHistXTitle.Data());
+  SetAbsHistYTitle(gsAbsHistYTitle.Data());
 
   fHRmsCharge.SetName("HRmsChargePINDiode");
@@ -154,4 +172,18 @@
 {
 
+  TH1F *h = GetHGausHist();
+
+  h->SetName (fHistName.Data());
+  h->SetTitle(fHistTitle.Data());  
+  h->SetXTitle(fHistXTitle.Data());
+  h->SetYTitle(fHistYTitle.Data());
+  
+  h = GetHAbsTime();
+
+  h->SetName (fAbsHistName.Data());
+  h->SetTitle(fAbsHistTitle.Data());
+  h->SetXTitle(fAbsHistXTitle.Data());
+  h->SetYTitle(fAbsHistYTitle.Data());
+  
   MHCalibrationPix::InitBins();
 
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.h
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.h	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePINDiode.h	(revision 4950)
@@ -25,4 +25,24 @@
   static const Float_t fgTimeLowerLimit;  //! Default for fTimeLowerLimit    (now set to: 1.) 
   static const Float_t fgTimeUpperLimit;  //! Default for fTimeUpperLimit    (now set to: 2.)
+
+  static const TString gsHistName;        //! Default Histogram names
+  static const TString gsHistTitle;       //! Default Histogram titles
+  static const TString gsHistXTitle;      //! Default Histogram x-axis titles
+  static const TString gsHistYTitle;      //! Default Histogram y-axis titles
+  
+  static const TString gsAbsHistName;     //! Default Histogram names abs.times
+  static const TString gsAbsHistTitle;    //! Default Histogram titles abs.times
+  static const TString gsAbsHistXTitle;   //! Default Histogram x-axis titles abs.times
+  static const TString gsAbsHistYTitle;   //! Default Histogram y-axis titles abs.times
+  
+  TString fHistName;                      // Histogram names
+  TString fHistTitle;                     // Histogram titles
+  TString fHistXTitle;                    // Histogram x-axis titles
+  TString fHistYTitle;                    // Histogram y-axis titles
+  
+  TString fAbsHistName;                   // Histogram names abs.times
+  TString fAbsHistTitle;                  // Histogram titles abs. times
+  TString fAbsHistXTitle;                 // Histogram x-axis titles abs. times
+  TString fAbsHistYTitle;                 // Histogram y-axis titles abs. times
   
   MCalibrationChargePINDiode *fPINDiode;  //! Storage container of the results
@@ -80,4 +100,14 @@
   void SetTimeUpperLimit ( const Float_t f=fgTimeUpperLimit     ) { fTimeUpperLimit = f;     }
 
+  void SetAbsHistName  ( const char *name )  { fAbsHistName  = name;  }
+  void SetAbsHistTitle ( const char *name )  { fAbsHistTitle = name;  }
+  void SetAbsHistXTitle( const char *name )  { fAbsHistXTitle = name; }
+  void SetAbsHistYTitle( const char *name )  { fAbsHistYTitle = name; }
+   
+  void SetHistName  ( const char *name )  { fHistName  = name;  }
+  void SetHistTitle ( const char *name )  { fHistTitle = name;  }
+  void SetHistXTitle( const char *name )  { fHistXTitle = name; }
+  void SetHistYTitle( const char *name )  { fHistYTitle = name; }
+   
   ClassDef(MHCalibrationChargePINDiode, 1)  // Histogram class for Charge PIN Diode Calibration 
 };
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePix.cc	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePix.cc	(revision 4950)
@@ -50,10 +50,4 @@
 using namespace std;
 
-const Int_t   MHCalibrationChargePix::fgChargeNbins     = 2000;
-const Axis_t  MHCalibrationChargePix::fgChargeFirst     = -0.5;
-const Axis_t  MHCalibrationChargePix::fgChargeLast      = 1999.5;
-const Int_t   MHCalibrationChargePix::fgAbsTimeNbins    = 15;
-const Axis_t  MHCalibrationChargePix::fgAbsTimeFirst    = -0.5;
-const Axis_t  MHCalibrationChargePix::fgAbsTimeLast     = 14.5;
 // --------------------------------------------------------------------------
 //
@@ -61,18 +55,4 @@
 //
 // Sets: 
-// - the default number for fNbins        (fgChargeNbins)
-// - the default number for fFirst        (fgChargeFirst)
-// - the default number for fLast         (fgChargeLast)
-// - the default number for fAbsTimeNbins (fgAbsTimeNbins)
-// - the default number for fAbsTimeFirst (fgAbsTimeFirst)
-// - the default number for fAbsTimeLast  (fgAbsTimeLast)
-//
-// - the default name of the  fHGausHist ("HCalibrationCharge")
-// - the default title of the fHGausHist ("Distribution of Summed FADC slices Pixel ")
-// - the default x-axis title for fHGausHist ("Sum FADC Slices")
-// - the default y-axis title for fHGausHist ("Nr. of events")
-//
-// - the default name of the  fHAbsTime ("HAbsTimePixel")
-// - the default title of the fHAbsTime ("Distribution of Absolute Arrival Times Pixel ")
 // - the default x-axis title for fHAbsTime ("Absolute Arrival Time [FADC slice nr]")
 // - the default y-axis title for fHAbsTime ("Nr. of events"); 
@@ -87,27 +67,10 @@
 //
 MHCalibrationChargePix::MHCalibrationChargePix(const char *name, const char *title)
-    : fHAbsTime()
+    : fHAbsTime(), 
+      fAbsTimeNbins(1), fAbsTimeFirst(0.), fAbsTimeLast(1.)
 { 
   
   fName  = name  ? name  : "MHCalibrationChargePix";
   fTitle = title ? title : "Statistics of the FADC sums of calibration events";
-
-  SetNbins ( fgChargeNbins );
-  SetFirst ( fgChargeFirst );
-  SetLast  ( fgChargeLast  );
-
-  SetAbsTimeNbins();
-  SetAbsTimeFirst();
-  SetAbsTimeLast();
-
-  fHGausHist.SetName("HCalibrationCharge");
-  fHGausHist.SetTitle("Distribution of Summed FADC slices Pixel");  
-  fHGausHist.SetXTitle("Sum FADC Slices");
-  fHGausHist.SetYTitle("Nr. of events");
-
-  fHAbsTime.SetName("HAbsTimePixel");
-  fHAbsTime.SetTitle("Distribution of Absolute Arrival Times Pixel ");  
-  fHAbsTime.SetXTitle("Absolute Arrival Time [FADC slice nr]");
-  fHAbsTime.SetYTitle("Nr. of events");
 
   fHAbsTime.UseCurrentStyle();
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePix.h
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePix.h	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationChargePix.h	(revision 4950)
@@ -8,13 +8,4 @@
 class MHCalibrationChargePix : public MHCalibrationPix
 {
-
-private:
-
-  static const Int_t   fgChargeNbins;        // Default for fNBins          (now set to: 2000  )
-  static const Axis_t  fgChargeFirst;        // Default for fFirst          (now set to: -0.5  )
-  static const Axis_t  fgChargeLast;         // Default for fLast           (now set to: 1999.5)
-  static const Int_t   fgAbsTimeNbins;       // Default for fAbsTimeNbins   (now set to: 15    )
-  static const Axis_t  fgAbsTimeFirst;       // Default for fAbsTimeFirst   (now set to: -0.5  )
-  static const Axis_t  fgAbsTimeLast;        // Default for fAbsTimeLast    (now set to: 14.5  )
 
 protected:
@@ -37,7 +28,7 @@
   
   // Setters 
-  virtual void SetAbsTimeNbins(const Int_t  bins =fgAbsTimeNbins)  { fAbsTimeNbins = bins;  }
-  virtual void SetAbsTimeFirst(const Axis_t first=fgAbsTimeFirst)  { fAbsTimeFirst = first; }
-  virtual void SetAbsTimeLast( const Axis_t last =fgAbsTimeLast)   { fAbsTimeLast  = last;  }
+  virtual void SetAbsTimeNbins(const Int_t  bins )  { fAbsTimeNbins = bins;  }
+  virtual void SetAbsTimeFirst(const Axis_t first)  { fAbsTimeFirst = first; }
+  virtual void SetAbsTimeLast( const Axis_t last )   { fAbsTimeLast  = last;  }
 
   // Getters
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestCam.cc	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestCam.cc	(revision 4950)
@@ -107,7 +107,11 @@
 using namespace std;
 
-const Int_t   MHCalibrationTestCam::fgTestNbins    = 900;
-const Axis_t  MHCalibrationTestCam::fgTestFirst    = -5.;
-const Axis_t  MHCalibrationTestCam::fgTestLast     =  5.;
+const Int_t   MHCalibrationTestCam::fgNbins    = 900;
+const Axis_t  MHCalibrationTestCam::fgFirst    = -5.;
+const Axis_t  MHCalibrationTestCam::fgLast     =  5.;
+const TString MHCalibrationTestCam::gsHistName   = "Test";
+const TString MHCalibrationTestCam::gsHistTitle  = "Calibrated Calibration Signals";  
+const TString MHCalibrationTestCam::gsHistXTitle = "Nr. Photons";
+const TString MHCalibrationTestCam::gsHistYTitle = "Nr. events";
 // --------------------------------------------------------------------------
 //
@@ -115,7 +119,12 @@
 //
 // Sets: 
-// - fNbins to fgTestNbins
-// - fFirst to fgTestFirst
-// - fLast  to fgTestLast 
+// - fNbins to fgNbins
+// - fFirst to fgFirst
+// - fLast  to fgLast 
+//
+// - fHistName   to gsHistName  
+// - fHistTitle  to gsHistTitle 
+// - fHistXTitle to gsHistXTitle
+// - fHistYTitle to gsHistYTitle
 //
 MHCalibrationTestCam::MHCalibrationTestCam(const char *name, const char *title) 
@@ -125,7 +134,13 @@
   fTitle = title ? title : "Histogram class for testing the calibration";
   
-  SetNbins(fgTestNbins);
-  SetFirst(fgTestFirst);
-  SetLast (fgTestLast );
+  SetNbins(fgNbins);
+  SetFirst(fgFirst);
+  SetLast (fgLast );
+
+  SetHistName  (gsHistName  .Data());
+  SetHistTitle (gsHistTitle .Data());
+  SetHistXTitle(gsHistXTitle.Data());
+  SetHistYTitle(gsHistYTitle.Data());
+
 }
 
@@ -135,19 +150,14 @@
 // - MCerPhotEvt
 //
-// Initializes, if empty to MGeomCam::GetNumAreas() for:
-// - MHCalibrationCam::fAverageHiGainAreas
-//
-// Initializes, if empty to MGeomCam::GetNumSectors() for:
-// - MHCalibrationCam::fAverageHiGainSectors
+// Calls:
+// - MHCalibrationCam::InitHiGainArrays()
 // 
-// Calls MHCalibrationCam::InitHists() for every entry in:
-// - MHCalibrationCam::fHiGainArray
-// - MHCalibrationCam::fAverageHiGainAreas
-// - MHCalibrationCam::fAverageHiGainSectors
-//
-// Sets Titles and Names for the Histograms 
-// - MHCalibrationCam::fAverageHiGainAreas
-// - MHCalibrationCam::fAverageHiGainSectors
-// 
+// Sets: 
+// - SetLoGain(kFALSE);
+// - fMeanMeanPhotPerArea to nareas
+// - fRmsMeanPhotPerArea  to nareas
+// - fMeanSigmaPhotPerArea to nareas
+// - fRmsSigmaPhotPerArea  to nareas
+//
 Bool_t MHCalibrationTestCam::ReInitHists(MParList *pList)
 {
@@ -165,98 +175,5 @@
   const Int_t nareas   = fGeom->GetNumAreas();
 
-  if (fHiGainArray->GetEntries()==0)
-  {
-      fHiGainArray->Expand(npixels);
-      for (Int_t i=0; i<npixels; i++)
-      {
-	  (*fHiGainArray)[i] = new MHCalibrationPix("TestPix",
-                                                "Test Calibration Pixel");
-
-          MHCalibrationPix &pix = (*this)[i];          
-
-          pix.SetNbins(fNbins);
-          pix.SetFirst(fFirst);
-          pix.SetLast (fLast);
-
-          TH1F *h =  pix.GetHGausHist();
-        
-          h->SetName ("HTestPix");
-          h->SetTitle("Calibrated Calibration Signals Pixel ");  
-          h->SetXTitle("Nr. Photons");
-          h->SetYTitle("Nr. of events");
-
-          InitHists((*this)[i],(*fBadPixels)[i],i);
-      }
-  }
-
-
-  if (fAverageHiGainAreas->GetEntries()==0)
-  {
-    fAverageHiGainAreas->Expand(nareas);
-    
-    for (Int_t j=0; j<nareas; j++)
-      {
-        (*fAverageHiGainAreas)[j] = 
-          new MHCalibrationPix("TestArea",
-                           "Average Test Calibrations Area Idx ");
-
-        MHCalibrationPix &pix = GetAverageHiGainArea(j);
-
-        pix.SetNbins(fNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
-        pix.SetFirst(fFirst);
-        pix.SetLast (fLast);
-        
-        pix.InitBins();
-        pix.SetEventFrequency(fPulserFrequency);
-            
-        TH1F *h =  pix.GetHGausHist();
-
-        h->SetName ("HTestArea");
-        h->SetTitle("Calibrated Calibration Signals Area Idx ");
-        h->SetXTitle("Nr. Photons");
-        h->SetYTitle("Nr. of events");
-
-        if (fGeom->InheritsFrom("MGeomCamMagic"))
-          h->SetTitle(Form("%s%s%s","Calibrated Calibration Signals averaged on event-by-event basis ",
-                           j==0 ? "Inner Pixels " : "Outer Pixels Runs: "));
-        else
-          {
-            pix.ChangeHistId(j);
-            h->SetTitle( Form("%s%s", h->GetTitle()," Runs: "));
-          }
-      }
-  }
-
-  if (fAverageHiGainSectors->GetEntries()==0)
-  {
-      fAverageHiGainSectors->Expand(nsectors);
-
-      for (Int_t j=0; j<nsectors; j++)
-      {
-	  (*fAverageHiGainSectors)[j] = 
-            new MHCalibrationPix("TestSector",
-                                 "Average Test Calibrations Sector ");
-
-        MHCalibrationPix &pix = GetAverageHiGainSector(j);
-
-        pix.SetNbins(fNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nsectors));
-        pix.SetFirst(fFirst);
-        pix.SetLast (fLast);
-        
-        TH1F *h =  pix.GetHGausHist();
-
-        h->SetName ("HTestSector");
-        h->SetTitle("Calibrated Calibration Signals Sector ");
-        h->SetXTitle("Nr. Photons");
-        h->SetYTitle("Nr. of events");
-
-        pix.InitBins();
-        pix.ChangeHistId(j);
-        pix.SetEventFrequency(fPulserFrequency);
-
-        h->SetTitle( Form("%s%s", h->GetTitle()," Runs: "));
-      }
-  }
-
+  InitHiGainArrays(npixels,nareas,nsectors);
 
   fMeanMeanPhotPerArea.Set(nareas);   
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestCam.h	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestCam.h	(revision 4950)
@@ -18,8 +18,13 @@
 private:
 
-  static const Int_t   fgTestNbins;        // Default for fNBins  (now set to: 2000  )
-  static const Axis_t  fgTestFirst;        // Default for fFirst  (now set to: -0.5  )
-  static const Axis_t  fgTestLast;         // Default for fLast   (now set to: 1999.5)
+  static const Int_t   fgNbins;        // Default for fNBins  (now set to: 2000  )
+  static const Axis_t  fgFirst;        // Default for fFirst  (now set to: -0.5  )
+  static const Axis_t  fgLast;         // Default for fLast   (now set to: 1999.5)
 
+  static const TString gsHistName;     //! Default Histogram names
+  static const TString gsHistTitle;    //! Default Histogram titles
+  static const TString gsHistXTitle;   //! Default Histogram x-axis titles
+  static const TString gsHistYTitle;   //! Default Histogram y-axis titles
+  
   TArrayF fMeanMeanPhotPerArea;
   TArrayF fRmsMeanPhotPerArea   ;
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestTimeCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestTimeCam.cc	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestTimeCam.cc	(revision 4950)
@@ -106,7 +106,11 @@
 using namespace std;
 
-const Int_t   MHCalibrationTestTimeCam::fgTestNbins     = 600;
-const Axis_t  MHCalibrationTestTimeCam::fgTestFirst     = -0.5;
-const Axis_t  MHCalibrationTestTimeCam::fgTestLast      = 29.5;
+const Int_t   MHCalibrationTestTimeCam::fgNbins      = 600;
+const Axis_t  MHCalibrationTestTimeCam::fgFirst      = -0.5;
+const Axis_t  MHCalibrationTestTimeCam::fgLast       = 29.5;
+const TString MHCalibrationTestTimeCam::gsHistName   = "TestTime";
+const TString MHCalibrationTestTimeCam::gsHistTitle  = "Calibrated Calibration Arrival Times";  
+const TString MHCalibrationTestTimeCam::gsHistXTitle = "Arrival Time [FADC slices]";
+const TString MHCalibrationTestTimeCam::gsHistYTitle = "Nr. events";
 // --------------------------------------------------------------------------
 //
@@ -114,7 +118,12 @@
 //
 // Sets: 
-// - fNbins to fgTestNbins
-// - fFirst to fgTestFirst
-// - fLast  to fgTestLast 
+// - fNbins to fgNbins
+// - fFirst to fgFirst
+// - fLast  to fgLast 
+//
+// - fHistName   to gsHistName  
+// - fHistTitle  to gsHistTitle 
+// - fHistXTitle to gsHistXTitle
+// - fHistYTitle to gsHistYTitle
 //
 MHCalibrationTestTimeCam::MHCalibrationTestTimeCam(const char *name, const char *title) 
@@ -124,35 +133,25 @@
   fTitle = title ? title : "Histogram class for testing the calibration of arrival times";
 
-  SetNbins(fgTestNbins);
-  SetFirst(fgTestFirst);
-  SetLast (fgTestLast );
-
-}
-
-// --------------------------------------------------------------------------
-//
-// Gets or creates the pointers to:
+  SetNbins(fgNbins);
+  SetFirst(fgFirst);
+  SetLast (fgLast );
+
+  SetHistName  (gsHistName  .Data());
+  SetHistTitle (gsHistTitle .Data());
+  SetHistXTitle(gsHistXTitle.Data());
+  SetHistYTitle(gsHistYTitle.Data());
+
+}
+
+// --------------------------------------------------------------------------
 //
 // Searches pointer to:
 // - MArrivalTime
 //
-// Initializes, if empty to MGeomCam::GetNumAreas() for:
-// - MHCalibrationCam::fAverageHiGainAreas
-//
-// Initializes, if empty to MGeomCam::GetNumSectors() for:
-// - MHCalibrationCam::fAverageHiGainSectors
+// Calls:
+// - MHCalibrationCam::InitHiGainArrays()
 // 
-// Calls MHCalibrationCam::InitHists() for every entry in:
-// - MHCalibrationCam::fHiGainArray
-// - MHCalibrationCam::fAverageHiGainAreas
-// - MHCalibrationCam::fAverageHiGainSectors
-//
-// Sets Titles and Names for the Histograms 
-// - MHCalibrationCam::fAverageHiGainAreas
-// - MHCalibrationCam::fAverageHiGainSectors
-// 
-// Sets number of bins to MHCalibrationCam::fAverageNbins for:
-// - MHCalibrationCam::fAverageHiGainAreas
-// - MHCalibrationCam::fAverageHiGainSectors
+// Sets: 
+// - SetLoGain(kFALSE);
 //
 Bool_t MHCalibrationTestTimeCam::ReInitHists(MParList *pList)
@@ -170,96 +169,5 @@
   const Int_t nareas   = fGeom->GetNumAreas();
 
-  if (fHiGainArray->GetEntries()==0)
-  {
-      fHiGainArray->Expand(npixels);
-      for (Int_t i=0; i<npixels; i++)
-      {
-	  (*fHiGainArray)[i] = new MHCalibrationPix("TestTimePix",
-                                                "TestTime Calibration Pixel");
-          MHCalibrationPix &pix = (*this)[i];          
-
-          pix.SetNbins(fNbins);
-          pix.SetFirst(fFirst);
-          pix.SetLast (fLast);
-
-          TH1F *h =  pix.GetHGausHist();
-        
-          h->SetName ("HTestHiGainPix");
-          h->SetTitle("Calibrated Rel. Arrival Times Pixel ");  
-          h->SetXTitle("Arrival Time [FADC slices]");
-          h->SetYTitle("Nr. of events");
-
-          InitHists((*this)[i],(*fBadPixels)[i],i);
-      }
-  }
-
-  if (fAverageHiGainAreas->GetEntries()==0)
-  {
-    fAverageHiGainAreas->Expand(nareas);
-    
-    for (Int_t j=0; j<nareas; j++)
-      {
-        (*fAverageHiGainAreas)[j] = 
-          new MHCalibrationPix("TestTimeArea",
-                           "Average TestTime Calibrations Area Idx ");
-
-        MHCalibrationPix &pix = GetAverageHiGainArea(j);
-
-        pix.SetNbins(fNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nareas));
-        pix.SetFirst(fFirst);
-        pix.SetLast (fLast);
-        
-        pix.InitBins();
-        pix.SetEventFrequency(fPulserFrequency);
-            
-        TH1F *h =  pix.GetHGausHist();
-
-        h->SetName ("HTestTimeArea");
-        h->SetTitle("Calibrated Rel. Arrival Times Area Idx ");
-        h->SetXTitle("Arrival Time [FADC slices]");
-        h->SetYTitle("Nr. of events");
-
-        if (fGeom->InheritsFrom("MGeomCamMagic"))
-          h->SetTitle(Form("%s%s%s","Calibrated Rel. Times averaged on event-by-event basis ",
-                           j==0 ? "Inner Pixels " : "Outer Pixels Runs: "));
-        else
-          {
-            pix.ChangeHistId(j);
-            h->SetTitle( Form("%s%s", h->GetTitle()," Runs: "));
-          }
-      }
-  }
-
-
-  if (fAverageHiGainSectors->GetEntries()==0)
-  {
-      fAverageHiGainSectors->Expand(nsectors);
-
-      for (Int_t j=0; j<nsectors; j++)
-      {
-	  (*fAverageHiGainSectors)[j] = 
-            new MHCalibrationPix("TestTimeSector",
-                             "Average TestTime Calibrations Sector ");
-
-        MHCalibrationPix &pix = GetAverageHiGainSector(j);
-
-        pix.SetNbins(fNbins*(Int_t)TMath::Sqrt((Float_t)npixels/nsectors));
-        pix.SetFirst(fFirst);
-        pix.SetLast (fLast);
-        
-        TH1F *h =  pix.GetHGausHist();
-
-        h->SetName ("HTestTimeSector");
-        h->SetTitle("Calibrated Rel. Arr. Times Sector ");
-        h->SetXTitle("Arrival Time [FADC slices]");
-        h->SetYTitle("Nr. of events");
-
-        pix.InitBins();
-        pix.ChangeHistId(j);
-        pix.SetEventFrequency(fPulserFrequency);
-
-        h->SetTitle( Form("%s%s", h->GetTitle()," Runs: "));
-      }
-  }
+  InitHiGainArrays(npixels,nareas,nsectors);
 
   SetLoGain(kFALSE);
Index: /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestTimeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestTimeCam.h	(revision 4949)
+++ /trunk/MagicSoft/Mars/mhcalib/MHCalibrationTestTimeCam.h	(revision 4950)
@@ -11,8 +11,13 @@
 private:
 
-  static const Int_t   fgTestNbins;        // Default for fTestNBins  (now set to: 600  )
-  static const Axis_t  fgTestFirst;        // Default for fTestFirst  (now set to: -0.5  )
-  static const Axis_t  fgTestLast;         // Default for fTestLast   (now set to: 29.5)
+  static const Int_t   fgNbins;        // Default for fNBins  (now set to: 600  )
+  static const Axis_t  fgFirst;        // Default for fFirst  (now set to: -0.5 )
+  static const Axis_t  fgLast;         // Default for fLast   (now set to: 29.5 )
 
+  static const TString gsHistName;     //! Default Histogram names
+  static const TString gsHistTitle;    //! Default Histogram titles
+  static const TString gsHistXTitle;   //! Default Histogram x-axis titles
+  static const TString gsHistYTitle;   //! Default Histogram y-axis titles
+  
   Bool_t ReInitHists(MParList *pList);
   Bool_t FillHists(const MParContainer *par, const Stat_t w=1);
