Index: /trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.cc	(revision 840)
+++ /trunk/MagicSoft/Mars/manalysis/MPedCalcPedRun.cc	(revision 841)
@@ -74,4 +74,5 @@
 
     MRawEvtPixelIter pixel(fRawEvt);
+    const Byte_t HiGainSamples = fRawEvt->GetNumHiGainSamples();
 
     while (pixel.Next())
@@ -80,11 +81,11 @@
 
         Byte_t *ptr = pixel.GetHiGainFadcSamples();
-        const Byte_t *end = ptr + fRawEvt->GetNumHiGainSamples();
+        const Byte_t *end = ptr + HiGainSamples;
 
-        Float_t HiGainPed = PedMeanCalcHiGain(ptr,end);
-        Float_t HiGainRms = PedRmsCalcHiGain(ptr,end,HiGainPed);
+        Float_t HiGainPed = PedMeanCalcHiGain(ptr,end,HiGainSamples);
+        Float_t HiGainRms = PedRmsCalcHiGain(ptr,end,HiGainPed,HiGainSamples);
 
-        Float_t HiGainPedErr = PedMeanErrCalcHiGain(HiGainRms);
-        Float_t HiGainRmsErr = PedRmsErrCalcHiGain(HiGainRms);
+        Float_t HiGainPedErr = PedMeanErrCalcHiGain(HiGainRms,HiGainSamples);
+        Float_t HiGainRmsErr = PedRmsErrCalcHiGain(HiGainRms,HiGainSamples);
 
         (*fPedestals)[pixid].SetPedestal(HiGainPed,HiGainRms);
@@ -99,5 +100,5 @@
 
 
-Float_t MPedCalcPedRun::PedMeanCalcHiGain(Byte_t *ptr, const Byte_t *end)
+Float_t MPedCalcPedRun::PedMeanCalcHiGain(Byte_t *ptr, const Byte_t *end, const Byte_t HiGainSamples)
 {
     Float_t sum=0;
@@ -106,5 +107,5 @@
     while (ptr != end);
 
-    sum = sum/(Int_t)fRawEvt->GetNumHiGainSamples();
+    sum = sum/(Int_t)HiGainSamples;
 
     return sum;
@@ -112,5 +113,5 @@
 
 
-Float_t MPedCalcPedRun::PedRmsCalcHiGain(Byte_t *ptr, const Byte_t *end, Float_t HiGainPed)
+Float_t MPedCalcPedRun::PedRmsCalcHiGain(Byte_t *ptr, const Byte_t *end, Float_t HiGainPed, const Byte_t HiGainSamples)
 {
 
@@ -118,9 +119,9 @@
 
   do{
-    rms = rms + pow((*ptr - HiGainPed),2);
+    rms = rms + (*ptr - HiGainPed)*(*ptr - HiGainPed);
     *ptr++;
     }while (ptr != end);
 
-    rms = sqrt((Float_t)rms/((Int_t)fRawEvt->GetNumHiGainSamples()-1));
+    rms = sqrt((Float_t)rms/((Int_t)HiGainSamples-1));
 
   return rms;
@@ -128,11 +129,11 @@
 
 
-Float_t MPedCalcPedRun::PedMeanErrCalcHiGain(Float_t HiGainRms){
-  return HiGainRms/sqrt((Int_t)fRawEvt->GetNumHiGainSamples());
+Float_t MPedCalcPedRun::PedMeanErrCalcHiGain(Float_t HiGainRms, const Byte_t HiGainSamples){
+  return HiGainRms/sqrt((Int_t)HiGainSamples);
 }
 
 
-Float_t MPedCalcPedRun::PedRmsErrCalcHiGain(Float_t HiGainRms){
-  return HiGainRms/sqrt(2*(Int_t)fRawEvt->GetNumHiGainSamples());
+Float_t MPedCalcPedRun::PedRmsErrCalcHiGain(Float_t HiGainRms, const Byte_t HiGainSamples){
+  return HiGainRms/sqrt(2*(Int_t)HiGainSamples);
 }
 
