Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 3031)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 3032)
@@ -29,4 +29,10 @@
      - default step width 100 ps. 
      - look for half maximum (at rising edge)
+
+   * manalysis/MExtractSignal.[h,cc]
+     - removed uncommented code
+     - set start byte back by one like it was before TB's changes 
+       (does not affect the calculation of number of FADC slices)
+
 
 
Index: /trunk/MagicSoft/Mars/manalysis/MArrivalTimeCalc.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MArrivalTimeCalc.cc	(revision 3031)
+++ /trunk/MagicSoft/Mars/manalysis/MArrivalTimeCalc.cc	(revision 3032)
@@ -61,6 +61,8 @@
 // Default constructor.
 //
+// Initialize step size by default to 0.03 time slices == 100 ps.
+// 
 MArrivalTimeCalc::MArrivalTimeCalc(const char *name, const char *title)
-    : fStepSize(0.1)
+    : fStepSize(0.03) 
 {
 
@@ -80,6 +82,9 @@
 //  - MArrivalTime
 //
+
 Int_t MArrivalTimeCalc::PreProcess(MParList *pList)
 {
+
+
     fRawEvt = (MRawEvtData*)pList->FindObject(AddSerialNumber("MRawEvtData"));
     if (!fRawEvt)
@@ -186,5 +191,6 @@
 
   //
-  // Now find the maximum evaluating the spline function at every 1/10 time slice
+  // Now find the half maximum (!) 
+  // evaluating the spline function at every fStepSize time slice
   //
   Double_t abscissa=0;
@@ -201,8 +207,33 @@
           maxAb  = abscissa;
 	}
+      // make step size a bit bigger first
       abscissa += fStepSize;
-    }
-
-  return (Float_t)maxAb;
-}
-
+      //      abscissa += fStepSize;
+    }
+
+  //
+  // another (much smaller) loop to move back from the maximum 
+  //
+  Double_t halfMaxAb = 0;
+
+  abscissa = maxAb;
+  
+  while (abscissa > 0)
+    {
+      
+      const Double_t swap = spline.Eval(abscissa);
+      
+      if (swap < maxOrd/2.)
+        {
+          halfMaxAb = abscissa;
+          break;
+        }
+      
+      abscissa -= fStepSize;
+    }
+  
+
+  //  return (Float_t)maxAb;
+  return (Float_t)halfMaxAb;
+}
+
Index: /trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc
===================================================================
--- /trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 3031)
+++ /trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc	(revision 3032)
@@ -17,4 +17,5 @@
 !
 !   Author(s): Markus Gaug, 09/2003 <mailto:markus@ifae.es>
+!              Thomas Bretz, 01/2004 
 !
 !   Copyright: MAGIC Software Development, 2000-2004
@@ -124,15 +125,16 @@
 void MExtractSignal::FindSignal(Byte_t *ptr, Int_t size, Int_t &sum, Byte_t &sat) const
 {
-    Byte_t *end = ptr + size;
-
-    sum = 0;
-    sat = 0;
-
-    while (ptr<end)
-    {
-        sum += *ptr;
-
-        if (*ptr++ >= fSaturationLimit)
-            sat++;
+
+  Byte_t *end = ptr + size;
+  
+  sum = 0;
+  sat = 0;
+  
+  while (ptr<end)
+    {
+      sum += *ptr;
+      
+      if (*ptr++ >= fSaturationLimit)
+        sat++;
     }
 }
@@ -156,6 +158,6 @@
         Byte_t sathi, satlo;
 
-        FindSignal(pixel.GetHiGainSamples()+fHiGainFirst, fNumHiGainSamples, sumhi, sathi);
-        FindSignal(pixel.GetLoGainSamples()+fLoGainFirst, fNumLoGainSamples, sumlo, satlo);
+        FindSignal(pixel.GetHiGainSamples()+fHiGainFirst-1, fNumHiGainSamples, sumhi, sathi);
+        FindSignal(pixel.GetLoGainSamples()+fLoGainFirst-1, fNumLoGainSamples, sumlo, satlo);
 
         if (satlo)
@@ -170,4 +172,5 @@
         const Float_t pedrms = ped.GetPedestalRms();
 
+        
 	pix.SetExtractedSignal(sumhi - pedes*fNumHiGainSamples, pedrms*fSqrtHiGainSamples,
                                sumlo - pedes*fNumLoGainSamples, pedrms*fSqrtLoGainSamples);
