Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 2969)
+++ trunk/MagicSoft/Mars/Changelog	(revision 2970)
@@ -12,4 +12,8 @@
      - modified GetPixelContent
 
+   * manalysis/MPedestalCam.cc
+   * manalysis/MPedCalcPedRun.cc
+     - include storage of number of used FADC slices to compare later 
+       the pedestal per slice ( and sigma per slice_
 
  2004/01/29: Abelardo Moralejo
Index: trunk/MagicSoft/Mars/manalysis/MPedestalCam.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MPedestalCam.cc	(revision 2969)
+++ trunk/MagicSoft/Mars/manalysis/MPedestalCam.cc	(revision 2970)
@@ -48,5 +48,6 @@
 // Default constructor. Creates a MPedestalPix object for each pixel
 //
-MPedestalCam::MPedestalCam(const char *name, const char *title)
+MPedestalCam::MPedestalCam(const char *name, const char *title) 
+    : fNumTotSlices(0), fNumExtractSlices(0), fUseHists(kFALSE)
 {
     fName  = name  ? name  : "MPedestalCam";
@@ -54,5 +55,5 @@
 
     fArray = new TClonesArray("MPedestalPix", 1);
-
+    
 }
 
@@ -108,4 +109,7 @@
 {
     fArray->ForEach(TObject, Clear)();
+
+    fNumTotSlices     = 0;
+    fNumExtractSlices = 0;
 }
 
@@ -113,4 +117,6 @@
 {
     fArray->ForEach(MPedestalPix, InitUseHists)();
+
+    fUseHists = kTRUE;
 }
 
@@ -181,33 +187,35 @@
 {
 
+  if (!(*this)[idx].IsValid())
+    return kFALSE;
+
+  if (idx == 559)
+    return kFALSE;
+
+  const Float_t pederr   = (*this)[idx].GetPedestalRms()/TMath::Sqrt((Float_t)fNumTotSlices);
+  const Float_t rmserr   = (*this)[idx].GetPedestalRms()/TMath::Sqrt((Float_t)fNumTotSlices/2.);
+
+  const Float_t mean     = (*this)[idx].GetMean()     / (Float_t)fNumExtractSlices;
+  const Float_t meanerr  = (*this)[idx].GetMeanErr()  / (Float_t)fNumExtractSlices;
+  const Float_t sigma    = (*this)[idx].GetSigma()    / TMath::Sqrt((Float_t) fNumExtractSlices);
+  const Float_t sigmaerr = (*this)[idx].GetSigmaErr() / TMath::Sqrt((Float_t) fNumExtractSlices);
+
   switch (type)
     {
     case 0:
-      if ((*this)[idx].IsValid())
-        val = (*this)[idx].GetPedestal();
-      else 
-        return kFALSE;
+      val = (*this)[idx].GetPedestal();
       break;
     case 1:
-      if ((*this)[idx].IsValid())
-        val = (*this)[idx].GetPedestalRms();
-      else
-        return kFALSE;
+      val = pederr;
       break;
     case 2:
-      //      if ((*this)[idx].IsFitValid())
-        val = (*this)[idx].GetMean();
-        //      else
-        //        return kFALSE;
+      val = (*this)[idx].GetPedestalRms();
       break;
     case 3:
-      //      if ((*this)[idx].IsFitValid())
-        val = (*this)[idx].GetMeanErr();
-        //      else
-        //        return kFALSE;
+      val = rmserr;
       break;
     case 4:
       //      if ((*this)[idx].IsFitValid())
-        val = (*this)[idx].GetSigma();
+      val = mean;
         //      else
         //        return kFALSE;
@@ -215,5 +223,5 @@
     case 5:
       //      if ((*this)[idx].IsFitValid())
-        val = (*this)[idx].GetSigmaErr();
+      val = meanerr;
         //      else
         //        return kFALSE;
@@ -221,5 +229,5 @@
     case 6:
       //      if ((*this)[idx].IsFitValid())
-        val = (*this)[idx].GetProb();
+      val = sigma;
         //      else
         //        return kFALSE;
@@ -227,5 +235,5 @@
     case 7:
       //      if ((*this)[idx].IsFitValid())
-        val = ((*this)[idx].GetPedestal()-(*this)[idx].GetMean());
+      val = sigmaerr;
         //      else
         //        return kFALSE;
@@ -233,7 +241,22 @@
     case 8:
       //      if ((*this)[idx].IsFitValid())
-        val = ((*this)[idx].GetPedestalRms()-(*this)[idx].GetSigma());
-        //      else
-        //        return kFALSE;
+      val = (*this)[idx].GetProb();
+        //      else
+        //        return kFALSE;
+      break;
+    case 9:
+      //      if ((*this)[idx].IsFitValid())
+      val = ((*this)[idx].GetPedestal()-mean);
+        //      else
+        //        return kFALSE;
+      break;
+    case 10:
+      val = TMath::Sqrt(pederr*pederr + meanerr*meanerr);
+      break;
+    case 11:
+      val = (*this)[idx].GetPedestalRms()-sigma;
+      break;
+    case 12:
+      val = TMath::Sqrt(rmserr*rmserr + sigmaerr*sigmaerr);
       break;
     default:
