Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 5968)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 5969)
@@ -334,31 +334,4 @@
     }
   
-  dtime = 1.0;
-  const Int_t uplim = range-fWindowSizeHiGain+1;
-
-  if (maxpos > uplim)
-    {
-      time = 1.+uplim;
-      for (Int_t ids=0; ids < fWindowSizeHiGain; ids++)
-        {
-          const Int_t   idx = fArrBinningResHiGain[ids] + fRandomIter;
-          sum              += fAmpWeightsHiGain [idx]*fHiGainSignal[range-fWindowSizeHiGain+ids]; 
-        }
-      return;
-    }
-  
-  maxpos -= 3;
-  
-  if (maxpos < 0)
-    {
-      time = 0.;
-      for (Int_t ids=0; ids < fWindowSizeHiGain; ids++)
-        {
-          const Int_t   idx = fArrBinningResHiGain[ids] + fRandomIter;
-          sum              += fAmpWeightsHiGain [idx]*fHiGainSignal[ids]; 
-        }
-      return;
-    }
-      
   Float_t time_sum  = 0.;
   Float_t fmax      = 0.;
@@ -367,32 +340,31 @@
   
   //
-  // Perform first only 3 temptative calculations around the maximum!
-  //
-  for (Int_t i=maxpos; i<maxpos+fWindowSizeHiGain+3;i++)
+  // Calculate the sum of the first fWindowSize slices
+  //
+  for (Int_t i=0;i<range-fWindowSizeHiGain+1;i++)
     {
       sum      = 0.;
       time_sum = 0.;
-      
+
       //
-      // Slide with a window of size fWindowSizeHiGain over the sample 
+      // Slide with a window of size fWindowSizeHiGain over the sample
       // and multiply the entries with the corresponding weights
       //
       for (Int_t sample=0; sample < fWindowSizeHiGain; sample++)
       {
-        const Int_t   idx = fArrBinningResHalfHiGain[sample];
+        const Int_t   idx = fBinningResolutionHiGain*sample+fBinningResolutionHalfHiGain;
         const Float_t pex = fHiGainSignal[sample+i];
-	sum              += fAmpWeightsHiGain [idx]*pex; 
-	time_sum         += fTimeWeightsHiGain[idx]*pex;
+        sum              += fAmpWeightsHiGain [idx]*pex;
+        time_sum         += fTimeWeightsHiGain[idx]*pex;
       }
 
       if (sum>fmax)
       {
-	fmax      = sum;
-	ftime_max = time_sum;
-	max_p     = i;
+        fmax      = sum;
+        ftime_max = time_sum;
+        max_p     = i;
       }
-    } /*   for (Int_t i=maxpos;i<maxpos+fWindowSizeHiGain+3;i++) */
-
-  time = 0;
+    } /*   for (Int_t i=0;i<range-fWindowSizeHiGain+1;i++) */
+
   if (fmax==0)
       return;
