Index: trunk/MagicSoft/Mars/mpedestal/MExtractPedestal.cc
===================================================================
--- trunk/MagicSoft/Mars/mpedestal/MExtractPedestal.cc	(revision 5502)
+++ trunk/MagicSoft/Mars/mpedestal/MExtractPedestal.cc	(revision 5504)
@@ -150,4 +150,5 @@
 /////////////////////////////////////////////////////////////////////////////
 #include "MExtractPedestal.h"
+#include "MExtractTimeAndCharge.h"
 
 #include "MParList.h"
@@ -355,5 +356,4 @@
   
   *fLog << inf;
-  Print();
   
   return kTRUE;
@@ -419,5 +419,9 @@
   }
   
-  
+  if (fExtractor)
+    fExtractor->InitArrays();
+  
+  Print();
+
   return kTRUE;
 }
Index: trunk/MagicSoft/Mars/mpedestal/MPedCalcFromLoGain.cc
===================================================================
--- trunk/MagicSoft/Mars/mpedestal/MPedCalcFromLoGain.cc	(revision 5502)
+++ trunk/MagicSoft/Mars/mpedestal/MPedCalcFromLoGain.cc	(revision 5504)
@@ -100,5 +100,5 @@
 //   fCheckWinFirst   =  fgCheckWinFirst   =  0 
 //   fCheckWinLast    =  fgCheckWinLast    =  29
-//   fExtractWinFirst =  fgExtractWinFirst =  0 
+//   fExtractWinFirst =  fgExtractWinFirst =  15 
 //   fExtractWinSize  =  fgExtractWinSize  =  6
 //   fMaxSignalVar    =  fgMaxSignalVar    = 40;
@@ -108,5 +108,5 @@
 //  to set the Window in which a signal is searched
 //
-//  SetExtractWindow(fExtractWindFirst,fExtractWinSize);
+//  SetExtractWindow(fExtractWinFirst,fExtractWinSize);
 //  to set the Window from which a signal is extracted
 //
@@ -239,7 +239,12 @@
   const UShort_t losamples = fRunHeader->GetNumSamplesLoGain();
 
+  UShort_t lastavailable   = hisamples+losamples-1;
+
   if (fExtractor)
-    SetExtractWindow(hisamples+fExtractor->GetHiGainFirst(),hisamples+fExtractor->GetHiGainLast());
-  
+    {
+      SetExtractWindow(fExtractor->GetHiGainFirst(),(Int_t)fExtractor->GetNumHiGainSamples());
+      lastavailable = losamples-1;
+    }
+
   // If the size is not yet set, set the size
   if (fSumx.GetSize()==0)
@@ -250,9 +255,5 @@
   }
   
-  MExtractPedestal::ReInit(pList);
-  
-  UShort_t lastavailable = hisamples+losamples-1;
-
-   if (fExtractWinLast > lastavailable) //changed to override check
+  if (fExtractWinLast > lastavailable) //changed to override check
    {
      const UShort_t diff = fExtractWinLast - lastavailable;
@@ -264,16 +265,18 @@
      fExtractWinSize -= diff;
    }
-
-   lastavailable = fRunHeader->GetNumSamplesHiGain()-1;
-
+  
+   lastavailable = hisamples + losamples -1;
+   
    if (fCheckWinLast > lastavailable) //changed to override check
-   {
+     {
        *fLog << warn << GetDescriptor();
        *fLog << " - WARNING: Last Check Window slice out of range...adjusting to last available slice ";
        *fLog << lastavailable << endl;
-
+       
        fCheckWinLast = lastavailable;
-   }
-
+     }
+
+  MExtractPedestal::ReInit(pList);
+  
   return kTRUE;
 }
@@ -488,4 +491,5 @@
 
   fPedestalsOut->SetReadyToSave();
+
   return kTRUE;
 }
Index: trunk/MagicSoft/Mars/mpedestal/MPedCalcPedRun.cc
===================================================================
--- trunk/MagicSoft/Mars/mpedestal/MPedCalcPedRun.cc	(revision 5502)
+++ trunk/MagicSoft/Mars/mpedestal/MPedCalcPedRun.cc	(revision 5504)
@@ -202,4 +202,7 @@
 Bool_t MPedCalcPedRun::ReInit(MParList *pList)
 {
+
+  if (fExtractor)
+    SetExtractWindow(fExtractor->GetHiGainFirst(),(Int_t)fExtractor->GetNumHiGainSamples());
 
   MExtractPedestal::ReInit(pList);
@@ -291,11 +294,9 @@
         CalcSums( &pixel, sum, ab0, ab1);
 
-      const Float_t msum = (Float_t)sum;
-      
-      fSumx[idx]          += msum;
-      fAreaSumx[aidx]     += msum;
-      fSectorSumx[sector] += msum;      
-
-      const Float_t sqrsum  = msum*msum;
+      fSumx[idx]          += sum;
+      fAreaSumx[aidx]     += sum;
+      fSectorSumx[sector] += sum;      
+
+      const Float_t sqrsum  = sum*sum;
       fSumx2[idx]          += sqrsum;
       fAreaSumx2[aidx]     += sqrsum;
@@ -316,6 +317,4 @@
   return kTRUE;
 }
-
-
 
 void MPedCalcPedRun::CalcExtractor( MRawEvtPixelIter *pixel, Float_t &sum, MPedestalPix &ped)
@@ -328,4 +327,5 @@
   Float_t dummy;
   fExtractor->FindTimeAndChargeHiGain(first,logain,sum,dummy,dummy,dummy,sat,ped,abflag);
+
 }
 
@@ -458,4 +458,5 @@
 Bool_t MPedCalcPedRun::IsPedBitSet()
 {
+
   if (fRunHeader->GetRunNumber() < gkFirstRunWithFinalBits)
     return kFALSE;
