Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 4900)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 4901)
@@ -53,4 +53,11 @@
        occurrance of multiple intensities and the new *Intensity* 
        containers
+
+   * mcalib/MHCalibrationChargePix.[h,cc]
+   * mcalib/MHCalibrationRelTimePix.[h,cc]
+   * mcalib/MHCalibrationTestPix.[h,cc]
+   * mcalib/MHCalibrationTestTimePix.[h,cc]
+     - derive from MHCalibrationPix
+     - new functions Reset()
 
    * msignal/MExtractor.cc
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc	(revision 4900)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.cc	(revision 4901)
@@ -39,5 +39,5 @@
 // GetAverageLoGainArea(), GetAverageHiGainSector() and GetAverageLoGainSector() 
 // have to be cast to the corresponding class. It is assumed that all classes 
-// dealing with calibration pixels derive from MHGausEvents.
+// dealing with calibration pixels derive from MHCalibrationPix.
 //
 // The following flag can be set:
@@ -63,5 +63,5 @@
 #include "MCalibrationCam.h"
 
-#include "MHGausEvents.h"
+#include "MHCalibrationPix.h"
 
 #include "MBadPixelsPix.h"
@@ -99,5 +99,5 @@
 MHCalibrationCam::MHCalibrationCam(const char *name, const char *title)
     :  fColor(MCalibrationCam::kNONE), 
-       fBadPixels(NULL), fCam(NULL), fGeom(NULL), fRunHeader(NULL), 
+       fBadPixels(NULL), fIntensCam(NULL), fCam(NULL), fGeom(NULL), fRunHeader(NULL), 
        fDebug(kFALSE), fLoGain(kFALSE)
 {
@@ -151,11 +151,32 @@
 }
 
+void MHCalibrationCam::ResetHists()
+{
+  
+  if (fHiGainArray)
+    { fHiGainArray->ForEach(MHCalibrationPix,Reset)();  }
+  if (fLoGainArray)
+    { fLoGainArray->ForEach(MHCalibrationPix,Reset)();  }
+  
+  if (fAverageHiGainAreas)
+    { fAverageHiGainAreas->ForEach(MHCalibrationPix,Reset)();  }
+  if (fAverageLoGainAreas)
+    { fAverageLoGainAreas->ForEach(MHCalibrationPix,Reset)();  }
+  if (fAverageHiGainSectors)
+    { fAverageHiGainSectors->ForEach(MHCalibrationPix,Reset)();  }
+  if (fAverageLoGainSectors)
+    { fAverageLoGainSectors->ForEach(MHCalibrationPix,Reset)();  }
+  
+}
+
+
+
 // --------------------------------------------------------------------------
 //
 // Get i-th High Gain pixel (pixel number)
 //
-MHGausEvents &MHCalibrationCam::operator[](UInt_t i)
-{
-  return *static_cast<MHGausEvents*>(fHiGainArray->UncheckedAt(i));
+MHCalibrationPix &MHCalibrationCam::operator[](UInt_t i)
+{
+  return *static_cast<MHCalibrationPix*>(fHiGainArray->UncheckedAt(i));
 }
 
@@ -164,7 +185,7 @@
 // Get i-th High Gain pixel (pixel number)
 //
-const MHGausEvents &MHCalibrationCam::operator[](UInt_t i) const
-{
-  return *static_cast<MHGausEvents*>(fHiGainArray->UncheckedAt(i));
+const MHCalibrationPix &MHCalibrationCam::operator[](UInt_t i) const
+{
+  return *static_cast<MHCalibrationPix*>(fHiGainArray->UncheckedAt(i));
 }
 
@@ -173,7 +194,7 @@
 // Get i-th Low Gain pixel (pixel number)
 //
-MHGausEvents  &MHCalibrationCam::operator()(UInt_t i)
-{
-  return *static_cast<MHGausEvents*>(fLoGainArray->UncheckedAt(i));
+MHCalibrationPix  &MHCalibrationCam::operator()(UInt_t i)
+{
+  return *static_cast<MHCalibrationPix*>(fLoGainArray->UncheckedAt(i));
 }
 
@@ -182,7 +203,7 @@
 // Get i-th Low Gain pixel (pixel number)
 //
-const MHGausEvents  &MHCalibrationCam::operator()(UInt_t i) const
-{
-  return *static_cast<MHGausEvents*>(fLoGainArray->UncheckedAt(i));
+const MHCalibrationPix  &MHCalibrationCam::operator()(UInt_t i) const
+{
+  return *static_cast<MHCalibrationPix*>(fLoGainArray->UncheckedAt(i));
 }
 
@@ -190,5 +211,5 @@
 //
 // Returns the current size of the TObjArray fAverageHiGainAreas
-// independently if the MHGausEvents is filled with values or not.
+// independently if the MHCalibrationPix is filled with values or not.
 //
 const Int_t MHCalibrationCam::GetAverageAreas() const
@@ -201,7 +222,7 @@
 // Get i-th High Gain pixel Area (area number)
 //
-MHGausEvents  &MHCalibrationCam::GetAverageHiGainArea(UInt_t i)
-{
-  return *static_cast<MHGausEvents*>(fAverageHiGainAreas->UncheckedAt(i));
+MHCalibrationPix  &MHCalibrationCam::GetAverageHiGainArea(UInt_t i)
+{
+  return *static_cast<MHCalibrationPix*>(fAverageHiGainAreas->UncheckedAt(i));
 }
 
@@ -210,7 +231,7 @@
 // Get i-th High Gain pixel Area (area number)
 //
-const MHGausEvents  &MHCalibrationCam::GetAverageHiGainArea(UInt_t i) const
-{
-  return *static_cast<MHGausEvents *>(fAverageHiGainAreas->UncheckedAt(i));
+const MHCalibrationPix  &MHCalibrationCam::GetAverageHiGainArea(UInt_t i) const
+{
+  return *static_cast<MHCalibrationPix *>(fAverageHiGainAreas->UncheckedAt(i));
 }
 
@@ -219,7 +240,7 @@
 // Get i-th Low Gain pixel Area (area number)
 //
-MHGausEvents  &MHCalibrationCam::GetAverageLoGainArea(UInt_t i)
-{
-  return *static_cast<MHGausEvents*>(fAverageLoGainAreas->UncheckedAt(i));
+MHCalibrationPix  &MHCalibrationCam::GetAverageLoGainArea(UInt_t i)
+{
+  return *static_cast<MHCalibrationPix*>(fAverageLoGainAreas->UncheckedAt(i));
 }
 
@@ -228,7 +249,7 @@
 // Get i-th Low Gain pixel Area (area number)
 //
-const MHGausEvents  &MHCalibrationCam::GetAverageLoGainArea(UInt_t i) const
-{
-  return *static_cast<MHGausEvents*>(fAverageLoGainAreas->UncheckedAt(i));
+const MHCalibrationPix  &MHCalibrationCam::GetAverageLoGainArea(UInt_t i) const
+{
+  return *static_cast<MHCalibrationPix*>(fAverageLoGainAreas->UncheckedAt(i));
 }
 
@@ -236,5 +257,5 @@
 //
 // Returns the current size of the TObjArray fAverageHiGainSectors
-// independently if the MHGausEvents is filled with values or not.
+// independently if the MHCalibrationPix is filled with values or not.
 //
 const Int_t MHCalibrationCam::GetAverageSectors() const
@@ -247,7 +268,7 @@
 // Get i-th High Gain Sector (sector number)
 //
-MHGausEvents  &MHCalibrationCam::GetAverageHiGainSector(UInt_t i)
-{
-  return *static_cast<MHGausEvents*>(fAverageHiGainSectors->UncheckedAt(i));
+MHCalibrationPix  &MHCalibrationCam::GetAverageHiGainSector(UInt_t i)
+{
+  return *static_cast<MHCalibrationPix*>(fAverageHiGainSectors->UncheckedAt(i));
 }
 
@@ -256,7 +277,7 @@
 // Get i-th High Gain Sector (sector number)
 //
-const MHGausEvents  &MHCalibrationCam::GetAverageHiGainSector(UInt_t i) const
-{
-  return *static_cast<MHGausEvents*>(fAverageHiGainSectors->UncheckedAt(i));
+const MHCalibrationPix  &MHCalibrationCam::GetAverageHiGainSector(UInt_t i) const
+{
+  return *static_cast<MHCalibrationPix*>(fAverageHiGainSectors->UncheckedAt(i));
 }
 
@@ -265,7 +286,7 @@
 // Get i-th Low Gain Sector (sector number)
 //
-MHGausEvents  &MHCalibrationCam::GetAverageLoGainSector(UInt_t i)
-{
-  return *static_cast<MHGausEvents*>(fAverageLoGainSectors->UncheckedAt(i));
+MHCalibrationPix  &MHCalibrationCam::GetAverageLoGainSector(UInt_t i)
+{
+  return *static_cast<MHCalibrationPix*>(fAverageLoGainSectors->UncheckedAt(i));
 }
 
@@ -274,7 +295,7 @@
 // Get i-th Low Gain Sector (sector number)
 //
-const MHGausEvents  &MHCalibrationCam::GetAverageLoGainSector(UInt_t i) const
-{
-  return *static_cast<MHGausEvents*>(fAverageLoGainSectors->UncheckedAt(i));
+const MHCalibrationPix  &MHCalibrationCam::GetAverageLoGainSector(UInt_t i) const
+{
+  return *static_cast<MHCalibrationPix*>(fAverageLoGainSectors->UncheckedAt(i));
 }
 
@@ -666,12 +687,12 @@
 //
 // If MBadPixelsPix::IsBad():
-// - calls MHGausEvents::SetExcluded()
+// - calls MHCalibrationPix::SetExcluded()
 //
 // Calls:
 // - MHGausEvents::InitBins()
-// - MHGausEvents::ChangeHistId(i)
-// - MHGausEvents::SetEventFrequency(fPulserFrequency)
+// - MHCalibrationPix::ChangeHistId(i)
+// - MHCalibrationPix::SetEventFrequency(fPulserFrequency)
 // 
-void MHCalibrationCam::InitHists(MHGausEvents &hist, MBadPixelsPix &bad, const Int_t i)
+void MHCalibrationCam::InitHists(MHCalibrationPix &hist, MBadPixelsPix &bad, const Int_t i)
 {
 
@@ -695,5 +716,5 @@
     {
       
-      MHGausEvents &hist = (*this)[i];
+      MHCalibrationPix &hist = (*this)[i];
       
       if (hist.IsExcluded())
@@ -710,5 +731,5 @@
     {
       
-      MHGausEvents     &hist = GetAverageHiGainArea(j);      
+      MHCalibrationPix     &hist = GetAverageHiGainArea(j);      
       MCalibrationPix  &pix  = calcam.GetAverageArea(j);
       MBadPixelsPix    &bad  = calcam.GetAverageBadArea(j);        
@@ -721,5 +742,5 @@
     {
       
-      MHGausEvents     &hist = GetAverageHiGainSector(j);      
+      MHCalibrationPix     &hist = GetAverageHiGainSector(j);      
       MCalibrationPix  &pix  = calcam.GetAverageSector(j);
       MBadPixelsPix    &bad  = calcam.GetAverageBadSector(j);        
@@ -738,5 +759,5 @@
     {
       
-      MHGausEvents &hist = (*this)(i);
+      MHCalibrationPix &hist = (*this)(i);
       
       if (hist.IsExcluded())
@@ -753,5 +774,5 @@
     {
       
-      MHGausEvents     &hist = GetAverageLoGainArea(j);      
+      MHCalibrationPix     &hist = GetAverageLoGainArea(j);      
       MCalibrationPix  &pix  = calcam.GetAverageArea(j);
       MBadPixelsPix    &bad  = calcam.GetAverageBadArea(j);        
@@ -764,5 +785,5 @@
     {
       
-      MHGausEvents     &hist = GetAverageLoGainSector(j);      
+      MHCalibrationPix     &hist = GetAverageLoGainSector(j);      
       MCalibrationPix  &pix  = calcam.GetAverageSector(j);
       MBadPixelsPix    &bad  = calcam.GetAverageBadSector(j);        
@@ -779,4 +800,7 @@
 void MHCalibrationCam::CalcAverageSigma()
 {
+
+  if (!fCam)
+    return;
   
   for (UInt_t j=0; j<fGeom->GetNumAreas(); j++)
@@ -805,6 +829,6 @@
 //
 // Fits the histograms with a Gaussian, in case of failure 
-// calls MHGausEvents::RepeatFit(), in case of repeated failure 
-// calls MHGausEvents::BypassFit() and sets the following flags:
+// calls MHCalibrationPix::RepeatFit(), in case of repeated failure 
+// calls MHCalibrationPix::BypassFit() and sets the following flags:
 // - MBadPixelsPix::SetUncalibrated( MBadPixelsPix::UncalibratedType_t fittyp )
 // - MBadPixelsPix::SetUnsuitable(   MBadPixelsPix::kUnreliableRun   )
@@ -817,5 +841,5 @@
 // Retrieves the results and store them in MCalibrationPix
 //
-void MHCalibrationCam::FitHiGainHists(MHGausEvents &hist, 
+void MHCalibrationCam::FitHiGainHists(MHCalibrationPix &hist, 
                                       MCalibrationPix &pix, 
                                       MBadPixelsPix &bad, 
@@ -885,6 +909,6 @@
 //
 // Fits the histograms with a Gaussian, in case of failure 
-// calls MHGausEvents::RepeatFit(), in case of repeated failure 
-// calls MHGausEvents::BypassFit() and sets the following flags:
+// calls MHCalibrationPix::RepeatFit(), in case of repeated failure 
+// calls MHCalibrationPix::BypassFit() and sets the following flags:
 // - MBadPixelsPix::SetUncalibrated( MBadPixelsPix::UncalibratedType_t fittyp )
 // - MBadPixelsPix::SetUnsuitable(   MBadPixelsPix::kUnreliableRun   )
@@ -897,5 +921,5 @@
 // Retrieves the results and store them in MCalibrationPix
 //
-void MHCalibrationCam::FitLoGainHists(MHGausEvents &hist, 
+void MHCalibrationCam::FitLoGainHists(MHCalibrationPix &hist, 
                                       MCalibrationPix &pix, 
                                       MBadPixelsPix &bad, 
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h	(revision 4900)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationCam.h	(revision 4901)
@@ -28,7 +28,8 @@
 class TObjArray;
 
-class MHGausEvents;
+class MHCalibrationPix;
 class MGeomCam;
 class MRawRunHeader;
+class MCalibrationIntensityCam;
 class MCalibrationCam;
 class MCalibrationPix;
@@ -62,10 +63,9 @@
   TArrayI    fAverageSectorNum;          // Number of pixels in average pixels per sector 
   TArrayI    fRunNumbers;                // Numbers of runs used
-  TArrayI    fHiGainOverFlow;            // Number of times overflow occurred in whole run
-  TArrayI    fLoGainOverFlow;            // Number of times overflow occurred in whole run
 
   MCalibrationCam::PulserColor_t fColor; // Colour of the pulsed LEDs
   
   MBadPixelsCam    *fBadPixels;          //! Bad Pixels storage container
+  MCalibrationIntensityCam *fIntensCam;  //! Intensity Calibration Cam with the results
   MCalibrationCam  *fCam;                //! Calibration Cam with the results
   MGeomCam         *fGeom;               //! Camera geometry
@@ -95,5 +95,5 @@
                        MBadPixelsPix::UncalibratedType_t osctyp);
   
-  void FitHiGainHists(MHGausEvents &hist, 
+  void FitHiGainHists(MHCalibrationPix &hist, 
                       MCalibrationPix &pix, 
                       MBadPixelsPix &bad, 
@@ -105,5 +105,5 @@
                        MBadPixelsPix::UncalibratedType_t osctyp);
   
-  void FitLoGainHists(MHGausEvents &hist, 
+  void FitLoGainHists(MHCalibrationPix &hist, 
                       MCalibrationPix &pix, 
                       MBadPixelsPix &bad, 
@@ -111,5 +111,5 @@
                       MBadPixelsPix::UncalibratedType_t osctyp);
 
-  void InitHists(MHGausEvents &hist, MBadPixelsPix &bad, const Int_t i);
+  void InitHists(MHCalibrationPix &hist, MBadPixelsPix &bad, const Int_t i);
 
   Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
@@ -125,4 +125,6 @@
   virtual Bool_t Finalize ( );
 
+  virtual void ResetHists();
+  
   // Clone
   virtual TObject *Clone(const char *name="") const;
@@ -135,12 +137,12 @@
 
   const Int_t          GetAverageAreas       ()          const;	 
-        MHGausEvents  &GetAverageHiGainArea  (UInt_t i);
-  const MHGausEvents  &GetAverageHiGainArea  (UInt_t i)  const;
-        MHGausEvents  &GetAverageLoGainArea  (UInt_t i);
-  const MHGausEvents  &GetAverageLoGainArea  (UInt_t i)  const;
-        MHGausEvents  &GetAverageHiGainSector(UInt_t i);
-  const MHGausEvents  &GetAverageHiGainSector(UInt_t i)  const;
-        MHGausEvents  &GetAverageLoGainSector(UInt_t i);
-  const MHGausEvents  &GetAverageLoGainSector(UInt_t i)  const;
+        MHCalibrationPix  &GetAverageHiGainArea  (UInt_t i);
+  const MHCalibrationPix  &GetAverageHiGainArea  (UInt_t i)  const;
+        MHCalibrationPix  &GetAverageLoGainArea  (UInt_t i);
+  const MHCalibrationPix  &GetAverageLoGainArea  (UInt_t i)  const;
+        MHCalibrationPix  &GetAverageHiGainSector(UInt_t i);
+  const MHCalibrationPix  &GetAverageHiGainSector(UInt_t i)  const;
+        MHCalibrationPix  &GetAverageLoGainSector(UInt_t i);
+  const MHCalibrationPix  &GetAverageLoGainSector(UInt_t i)  const;
   const Int_t          GetAverageSectors     ()          const;
   const MCalibrationCam::PulserColor_t GetColor   ()     const  { return fColor;                    }
@@ -152,8 +154,8 @@
   const Bool_t         IsDebug               ()          const  { return fDebug; }
   
-        MHGausEvents  &operator[]            (UInt_t i);
-  const MHGausEvents  &operator[]            (UInt_t i)  const;
-        MHGausEvents  &operator()            (UInt_t i);
-  const MHGausEvents  &operator()            (UInt_t i)  const;
+        MHCalibrationPix  &operator[]            (UInt_t i);
+  const MHCalibrationPix  &operator[]            (UInt_t i)  const;
+        MHCalibrationPix  &operator()            (UInt_t i);
+  const MHCalibrationPix  &operator()            (UInt_t i)  const;
  
   void SetColor               ( const MCalibrationCam::PulserColor_t color ) { fColor   = color; }
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.cc	(revision 4900)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.cc	(revision 4901)
@@ -136,9 +136,11 @@
 void MHCalibrationChargePix::Reset()
 {
-}
-
-// --------------------------------------------------------------------------
-//
-// Calls MHGausEvents::ChangeHistId()
+  MHGausEvents::Reset();
+  fHAbsTime.Reset();
+}
+
+// --------------------------------------------------------------------------
+//
+// Calls MHCalibrationPix::ChangeHistId()
 //
 // Add id to names and titles of: 
@@ -148,5 +150,5 @@
 {
 
-  MHGausEvents::ChangeHistId(id);
+  MHCalibrationPix::ChangeHistId(id);
 
   fHAbsTime.SetName (Form("%s%d", fHAbsTime.GetName(),  id));
@@ -199,5 +201,5 @@
 //
 // "": displays the fHGausHist and the fHAbsTime
-// "all": executes additionally MHGausEvents::Draw(), with options
+// "all": executes additionally MHCalibrationPix::Draw(), with options
 //
 // The following picture shows a typical outcome of call to Draw("all"): 
@@ -248,5 +250,5 @@
   else if (option.Contains("datacheck"))
     {
-      MHGausEvents::Draw("events");
+      MHCalibrationPix::Draw("events");
       return;
     }
@@ -303,5 +305,5 @@
 
   oldpad->cd(2);
-  MHGausEvents::Draw("fourierevents");
-
-}
+  MHCalibrationPix::Draw("fourierevents");
+
+}
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.h	(revision 4900)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationChargePix.h	(revision 4901)
@@ -2,9 +2,9 @@
 #define MARS_MHCalibrationChargePix
 
-#ifndef MARS_MHGausEvents
-#include "MHGausEvents.h"
+#ifndef MARS_MHCalibrationPix
+#include "MHCalibrationPix.h"
 #endif
 
-class MHCalibrationChargePix : public MHGausEvents
+class MHCalibrationChargePix : public MHCalibrationPix
 {
 
@@ -31,6 +31,6 @@
   ~MHCalibrationChargePix() {}
 
-  virtual void Reset();  
-  virtual void InitBins();
+  void Reset();  
+  void InitBins();
   
   // Setters 
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimePix.cc
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimePix.cc	(revision 4900)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimePix.cc	(revision 4901)
@@ -79,11 +79,2 @@
 }
 
-
-// --------------------------------------------------------------------------
-//
-// Empty function to overload MHGausEvents::Reset()
-//
-void MHCalibrationRelTimePix::Reset()
-{
-}
-
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimePix.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimePix.h	(revision 4900)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationRelTimePix.h	(revision 4901)
@@ -2,9 +2,9 @@
 #define MARS_MHCalibrationRelTimePix
 
-#ifndef MARS_MHGausEvents
-#include "MHGausEvents.h"
+#ifndef MARS_MHCalibrationPix
+#include "MHCalibrationPix.h"
 #endif
 
-class MHCalibrationRelTimePix : public MHGausEvents
+class MHCalibrationRelTimePix : public MHCalibrationPix
 {
 
@@ -29,6 +29,4 @@
   void SetFADCSliceWidth( const Float_t f=fgFADCSliceWidth )  {  fFADCSliceWidth = f; }
   
-  void Reset();
-  
   ClassDef(MHCalibrationRelTimePix, 1)     // Histogram class for Relative Time Pixel Calibration
 };
Index: /trunk/MagicSoft/Mars/mcalib/MHCalibrationTestPix.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MHCalibrationTestPix.h	(revision 4900)
+++ /trunk/MagicSoft/Mars/mcalib/MHCalibrationTestPix.h	(revision 4901)
@@ -20,6 +20,4 @@
   ~MHCalibrationTestPix() {}
 
-  virtual void Reset();  
-  
   const Float_t  GetIntegral()          const;
   
