Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 3650)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 3651)
@@ -24,4 +24,5 @@
    * mcalib/Makefile
    * mcalib/CalibLinkDef.h
+   * manalysis/MGeomApply.cc
      - new class to store information obtained from MHPedestalCam
 
Index: /trunk/MagicSoft/Mars/macros/calibration.C
===================================================================
--- /trunk/MagicSoft/Mars/macros/calibration.C	(revision 3650)
+++ /trunk/MagicSoft/Mars/macros/calibration.C	(revision 3651)
@@ -59,4 +59,70 @@
   if (!pedloop.Process())
     return;
+
+  //
+  // Create a empty Parameter List and an empty Task List
+  // The tasklist is identified in the eventloop by its name
+  //
+  MParList  plist0;
+  MTaskList tlist0;
+  plist0.AddToList(&tlist0);
+  
+  //
+  // Now setup the tasks and tasklist for the pedestals:
+  // ---------------------------------------------------
+  //
+  MReadMarsFile read("Events");
+  read.DisableAutoScheme();
+  static_cast<MRead&>(read).AddFiles(pruns);
+
+  MGeomApply      geomapl;
+  MExtractSignal  sigcalc;
+  
+  //
+  // Additionally to calculating the pedestals, 
+  // you can fill histograms and look at them
+  //
+  MFillH fill("MHPedestalCam", "MExtractedSignalCam");
+  
+  tlist0.AddToList(&read);
+  tlist0.AddToList(&geomapl);
+  tlist0.AddToList(&sigcalc);
+  tlist0.AddToList(&fill);
+  
+  MGeomCamMagic  geomcam;
+  MHPedestalCam  hpedcam;
+  plist0.AddToList(&geomcam);
+  plist0.AddToList(&pedloop.GetPedestalCam());
+  plist0.AddToList(&badcam);
+  plist0.AddToList(&hpedcam);
+  
+  //
+  // Create and setup the eventloop
+  //
+  MEvtLoop evtloop0;
+  
+  evtloop0.SetParList(&plist0);
+  evtloop0.SetDisplay(display);
+  
+  //
+  // Execute first analysis
+  //
+  if (!evtloop0.Eventloop())
+    return;
+
+  tlist0.PrintStatistics();
+
+  for (Int_t aidx=0;aidx<2;aidx++)
+    {
+      hpedcam.GetAverageHiGainArea(aidx).DrawClone("fourierevents");
+      hpedcam.GetAverageLoGainArea(aidx).DrawClone("fourierevents");
+    }
+  
+  for (Int_t sector=1;sector<7;sector++)
+    {
+      hpedcam.GetAverageHiGainSector(sector).DrawClone("fourierevents");
+      hpedcam.GetAverageLoGainSector(sector).DrawClone("fourierevents");
+    }
+  
 
   // 
Index: /trunk/MagicSoft/Mars/manalysis/MGeomApply.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MGeomApply.cc	(revision 3650)
+++ /trunk/MagicSoft/Mars/manalysis/MGeomApply.cc	(revision 3651)
@@ -74,4 +74,5 @@
 #include "MCalibrationRelTimeCam.h"
 #include "MCalibrationQECam.h"
+#include "MCalibrationPedCam.h"
 #include "MPedPhotCam.h"
 #include "MExtractedSignalCam.h"
@@ -156,6 +157,19 @@
       (MCalibrationQECam*)pList->FindObject(AddSerialNumber("MCalibrationQECam"));
     if (qe)
-        qe->InitSize(cam->GetNumPixels());
-
+      {
+        qe->InitSize           ( cam->GetNumPixels()  );
+        qe->InitAverageAreas   ( cam->GetNumAreas()   );
+        qe->InitAverageSectors ( cam->GetNumSectors() );
+      }
+    
+    MCalibrationPedCam *pcam = 
+      (MCalibrationPedCam*)pList->FindObject(AddSerialNumber("MCalibrationPedCam"));
+    if (pcam)
+      {
+        pcam->InitSize           ( cam->GetNumPixels()  );
+        pcam->InitAverageAreas   ( cam->GetNumAreas()   );
+        pcam->InitAverageSectors ( cam->GetNumSectors() );
+      }
+    
     MPedPhotCam *pedphot = (MPedPhotCam*)pList->FindObject(AddSerialNumber("MPedPhotCam"));
     if (pedphot)
Index: /trunk/MagicSoft/Mars/manalysis/MHPedestalCam.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MHPedestalCam.cc	(revision 3650)
+++ /trunk/MagicSoft/Mars/manalysis/MHPedestalCam.cc	(revision 3651)
@@ -90,4 +90,5 @@
 /////////////////////////////////////////////////////////////////////////////
 #include "MHPedestalCam.h"
+#include "MHPedestalPix.h"
 
 #include "MLog.h"
@@ -96,6 +97,4 @@
 #include "MParList.h"
 
-#include "MHPedestalPix.h"
-
 #include "MExtractedSignalCam.h"
 #include "MExtractedSignalPix.h"
@@ -106,4 +105,6 @@
 #include "MGeomCam.h"
 #include "MGeomPix.h"
+
+#include "MCalibrationPedCam.h"
 
 ClassImp(MHPedestalCam);
@@ -133,4 +134,7 @@
 // - MPedestalCam
 // - MExtractedSignalCam
+//
+// Searches or creates:
+// - MCalibrationPedCam
 //
 // Retrieves from MExtractedSignalCam:
@@ -179,34 +183,51 @@
     }
 
-  Float_t sliceshi = signal->GetNumUsedHiGainFADCSlices();
-  Float_t sliceslo = signal->GetNumUsedLoGainFADCSlices();
-
-  if (sliceshi == 0.)
-    {
-      gLog << err << "Number of used signal slices in MExtractedSignalCam is zero  ... abort." 
-           << endl;
-      return kFALSE;
-    }
-
-  if (fExtractHiGainSlices != 0. && sliceshi != fExtractHiGainSlices )
-    {
-      gLog << err << "Number of used High Gain signal slices changed in MExtractedSignalCam  ... abort." 
-           << endl;
-      return kFALSE;
-    }
-
-  if (fExtractLoGainSlices != 0. && sliceslo != fExtractLoGainSlices )
-    {
-      gLog << err << "Number of used Low Gain signal slices changed in MExtractedSignalCam  ... abort." 
-           << endl;
-      return kFALSE;
-    }
-
-  fExtractHiGainSlices = sliceshi;
-  fExtractLoGainSlices = sliceslo;
-
   const Int_t npixels  = fGeom->GetNumPixels();
   const Int_t nsectors = fGeom->GetNumSectors();
   const Int_t nareas   = fGeom->GetNumAreas();
+
+  fCam = (MCalibrationCam*)pList->FindObject("MCalibrationPedCam");
+  if (!fCam)
+    {
+      fCam = (MCalibrationCam*)pList->FindCreateObj(AddSerialNumber("MCalibrationPedCam"));
+      if (!fCam)
+        {
+          gLog << err << "Cannot find nor create MCalibrationPedCam ... abort." << endl;
+          return kFALSE;
+        }
+      else 
+        {
+          fCam->InitSize(npixels);
+          fCam->InitAverageAreas(nareas);
+          fCam->InitAverageSectors(nsectors);
+        }
+    }
+  
+  Float_t sliceshi = signal->GetNumUsedHiGainFADCSlices();
+  Float_t sliceslo = signal->GetNumUsedLoGainFADCSlices();
+
+  if (sliceshi == 0.)
+    {
+      gLog << err << "Number of used signal slices in MExtractedSignalCam is zero  ... abort." 
+           << endl;
+      return kFALSE;
+    }
+
+  if (fExtractHiGainSlices != 0. && sliceshi != fExtractHiGainSlices )
+    {
+      gLog << err << "Number of used High Gain signal slices changed in MExtractedSignalCam  ... abort." 
+           << endl;
+      return kFALSE;
+    }
+
+  if (fExtractLoGainSlices != 0. && sliceslo != fExtractLoGainSlices )
+    {
+      gLog << err << "Number of used Low Gain signal slices changed in MExtractedSignalCam  ... abort." 
+           << endl;
+      return kFALSE;
+    }
+
+  fExtractHiGainSlices = sliceshi;
+  fExtractLoGainSlices = sliceslo;
 
   if (fHiGainArray->GetEntries()==0)
@@ -431,8 +452,8 @@
 {
 
-  FitHiGainArrays((MCalibrationCam&)(*fCam),*fBadPixels, 
+  FitHiGainArrays((*fCam),*fBadPixels, 
                   MBadPixelsPix::kHiGainNotFitted,
                   MBadPixelsPix::kHiGainOscillating);
-  FitLoGainArrays((MCalibrationCam&)(*fCam),*fBadPixels,
+  FitLoGainArrays((*fCam),*fBadPixels,
                   MBadPixelsPix::kLoGainNotFitted,
                   MBadPixelsPix::kLoGainOscillating);
Index: /trunk/MagicSoft/Mars/manalysis/MHPedestalPix.h
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MHPedestalPix.h	(revision 3650)
+++ /trunk/MagicSoft/Mars/manalysis/MHPedestalPix.h	(revision 3651)
@@ -11,7 +11,7 @@
 private:
 
-  static const Int_t   fgChargeNbins;        // Default for fNbins          (now set to: 450  )
-  static const Axis_t  fgChargeFirst;        // Default for fFirst          (now set to: -0.5  )
-  static const Axis_t  fgChargeLast;         // Default for fLast           (now set to: 449.5)
+  static const Int_t   fgChargeNbins;        // Default for fNbins   (now set to: 450  )
+  static const Axis_t  fgChargeFirst;        // Default for fFirst   (now set to: -0.5 )
+  static const Axis_t  fgChargeLast;         // Default for fLast    (now set to: 449.5)
 
   Float_t fNSlices;                         // Number of FADC slices summed in extraction
Index: /trunk/MagicSoft/Mars/mcalib/CalibLinkDef.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/CalibLinkDef.h	(revision 3650)
+++ /trunk/MagicSoft/Mars/mcalib/CalibLinkDef.h	(revision 3651)
@@ -12,4 +12,5 @@
 #pragma link C++ class MCalibrationRelTimeCam+;
 #pragma link C++ class MCalibrationRelTimePix+;
+#pragma link C++ class MCalibrationPedCam+;
 #pragma link C++ class MCalibrationQECam+;
 #pragma link C++ class MCalibrationQEPix+;
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.h	(revision 3650)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargeCam.h	(revision 3651)
@@ -12,6 +12,4 @@
 class MCalibrationChargePINDiode;
 class MCalibrationChargePix;
-class MGeomCam;
-class MBadPixelsCam;
 class MCalibrationChargeCam : public MCalibrationCam
 {
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h	(revision 3650)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationChargePix.h	(revision 3651)
@@ -28,6 +28,6 @@
   Float_t fConversionHiLo;                  // Conversion factor betw. Hi Gain and Lo Gain  
   Float_t fConversionHiLoVar;               // Variance Conversion factor betw. Hi and Lo Gain
-  Float_t fLoGainPedRms;                    // Pedestal RMS of Low Gain
-  Float_t fLoGainPedRmsVar;                 // Pedestal RMS Variance of Low Gain
+  Float_t fLoGainPedRmsSquare;              // Pedestal RMS square of Low Gain
+  Float_t fLoGainPedRmsSquareVar;           // Pedestal RMS square Variance of Low Gain
   Float_t fMeanConversionFFactorMethod;     // Conversion factor (F-factor method)
   Float_t fMeanConversionBlindPixelMethod;  // Conversion factor (Blind Pixel method)
@@ -40,6 +40,6 @@
   Float_t fPheFFactorMethodVar;             // Variance number of Phe's (F-factor method)
   Float_t fPheFFactorMethodLimit;           // Min. number Photo-electrons for pix to be accepted.
-  Float_t fRSigma;                          // Reduced sigma
-  Float_t fRSigmaVar;                       // Variance Reduced sigma
+  Float_t fRSigmaSquare;                    // Square of Reduced sigma
+  Float_t fRSigmaSquareVar;                 // Variance Reduced sigma
   Float_t fSigmaConversionFFactorMethod;    // Sigma Conversion factor (F-factor method)
   Float_t fSigmaConversionBlindPixelMethod; // Sigma Conversion factor (Blind Pixel method)
@@ -57,4 +57,7 @@
   enum  { kBlindPixelMethodValid, kFFactorMethodValid,
           kPINDiodeMethodValid, kCombinedMethodValid }; // Possible bits to be set
+
+  const Float_t GetConversionHiLoRelVar()  const;
+  const Float_t GetChargeRelVar()  const;
 
 public:
Index: /trunk/MagicSoft/Mars/mcalib/MCalibrationPedCam.h
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/MCalibrationPedCam.h	(revision 3651)
+++ /trunk/MagicSoft/Mars/mcalib/MCalibrationPedCam.h	(revision 3651)
@@ -0,0 +1,23 @@
+#ifndef MARS_MCalibrationPedCam
+#define MARS_MCalibrationPedCam
+
+#ifndef MARS_MCalibrationCam
+#include "MCalibrationCam.h"
+#endif
+
+class MCalibrationPedCam : public MCalibrationCam
+{
+private:
+  
+  
+public:
+
+  MCalibrationPedCam(const char *name=NULL, const char *title=NULL);
+  ~MCalibrationPedCam() {}
+
+  Bool_t GetPixelContent(Double_t &val, Int_t idx, const MGeomCam &cam, Int_t type=0) const;
+  
+  ClassDef(MCalibrationPedCam, 1)	// Container Pedestal Calibration Results Camera
+};
+
+#endif
Index: /trunk/MagicSoft/Mars/mcalib/Makefile
===================================================================
--- /trunk/MagicSoft/Mars/mcalib/Makefile	(revision 3650)
+++ /trunk/MagicSoft/Mars/mcalib/Makefile	(revision 3651)
@@ -45,4 +45,5 @@
            MCalibrationQECam.cc \
            MCalibrationQEPix.cc  \
+           MCalibrationPedCam.cc \
 	   MCalibrationChargeCalc.cc \
            MCalibrationChargeCam.cc \
