Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 2877)
+++ trunk/MagicSoft/Mars/Changelog	(revision 2878)
@@ -12,4 +12,7 @@
      - put fSignals->SetUsedFADCSlices into PreProcess
 
+   * manalysis/MPedCalcPedRun.cc
+     - calculate PedRMS as RMS of the sums, later renormalized to units 
+       of RMS/slice (eliminate the wrong effect of odd and even slices)
 
  2004/01/21: Abelardo Moralejo
Index: trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 2877)
+++ trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 2878)
@@ -106,4 +106,7 @@
         return kFALSE;
 
+    fSignals->SetUsedFADCSlices(fHiGainFirst, fHiGainFirst+fNumHiGainSamples-1,
+                                fLoGainFirst, fLoGainFirst+fNumLoGainSamples-1);
+
     fPedestals = (MPedestalCam*)pList->FindObject("MPedestalCam");
     if (!fPedestals)
@@ -135,7 +138,4 @@
     //        (Have to think about the mean size of both solutions)
     fSignals->InitSize(cam->GetNumPixels());    
-
-    fSignals->SetUsedFADCSlices(fHiGainFirst, fHiGainFirst+fNumHiGainSamples-1,
-                                fLoGainFirst, fLoGainFirst+fNumLoGainSamples-1);
 
     return kTRUE;
Index: trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.cc
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.cc	(revision 2877)
+++ trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.cc	(revision 2878)
@@ -179,9 +179,16 @@
 	
 	fSumx[idx]  += msum;
-	fSumx2[idx] += sqr;
+        //
+        // The old version:
+        //
+        //	fSumx2[idx] += msqr;
+        //
+        // The new version:
+        //
+	fSumx2[idx] += msum*msum;
     }
     
     fPedestals->SetReadyToSave();
-    fNumSamplesTot+=fNumHiGainSamples;
+    fNumSamplesTot += fNumHiGainSamples;
     
     return kTRUE;
@@ -195,6 +202,7 @@
 {
   // Compute pedestals and rms from the whole run
-  const Int_t n  = fNumSamplesTot;
-  
+  const ULong_t n     = fNumSamplesTot;
+  const ULong_t nevts = GetNumExecutions();
+
   MRawEvtPixelIter pixel(fRawEvt);
   
@@ -207,5 +215,12 @@
       
       const Float_t higainped = sum/n;
-      const Float_t higainrms = TMath::Sqrt((sum2-sum*sum/n)/(n-1.));
+      //
+      // The old version:
+      //
+      //      const Float_t higainrms = TMath::Sqrt((sum2-sum*sum/n)/(n-1.));
+      //
+      // The new version:
+      //
+      const Float_t higainrms = TMath::Sqrt((sum2-sum*sum/nevts)/(nevts-1.)/(Float_t)fNumHiGainSamples);
       
       (*fPedestals)[pixid].Set(higainped, higainrms);
Index: trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.h
===================================================================
--- trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.h	(revision 2877)
+++ trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.h	(revision 2878)
@@ -23,5 +23,5 @@
     Byte_t   fNumHiGainSamples;
     UShort_t fNumPixels;
-    ULong_t   fNumSamplesTot;
+    ULong_t  fNumSamplesTot;
 
     MRawEvtData  *fRawEvt;     // raw event data (time slices)
