Index: trunk/MagicSoft/Mars/msignal/MExtractBlindPixel.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractBlindPixel.cc	(revision 8502)
+++ trunk/MagicSoft/Mars/msignal/MExtractBlindPixel.cc	(revision 8519)
@@ -362,6 +362,5 @@
     Int_t sat1 = fHiGainLast;  // Last  slice to extract and last saturating slice
 
-    UInt_t maxcont;
-    Int_t maxpos = fSignal->GetMax(idx, sat0, sat1, maxcont);
+    Int_t maxpos = fSignal->GetMaxPos(idx, sat0, sat1);
 
 //    numsat = fSignal->GetSaturation(idx, fSaturationLimit, sat0, sat1);
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 8502)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 8519)
@@ -1,4 +1,4 @@
 /* ======================================================================== *\
-! $Name: not supported by cvs2svn $:$Id: MExtractTimeAndCharge.cc,v 1.64 2007-03-04 13:25:07 tbretz Exp $
+! $Name: not supported by cvs2svn $:$Id: MExtractTimeAndCharge.cc,v 1.65 2007-05-16 13:56:17 tbretz Exp $
 ! --------------------------------------------------------------------------
 !
@@ -189,9 +189,11 @@
 // order polynomial interpolation.
 //
-Double_t MExtractTimeAndCharge::GetSaturationTime(Int_t sat0, const Float_t *sig, Int_t maxcont) const
+Double_t MExtractTimeAndCharge::GetSaturationTime(Int_t sat0, const Float_t *sig, Int_t maxpos) const
 {
     const Int_t p = sat0>1 ? sat0-2 : sat0-1;
     if (sat0<=0)
         return 0;
+
+    const Float_t &maxcont = sig[maxpos];
     if (sat0==1)
         return sig[0]>maxcont/2 ? 0 : 0.5;
@@ -228,10 +230,10 @@
         const Float_t *sig = fSignal->GetSamples(pixidx);
 
-        Int_t sathi0 = fHiGainFirst;  // First slice to extract and first saturating slice
-        Int_t sathi1 = fHiGainLast;   // Last  slice to extract and last saturating slice
-
-        UInt_t maxcont;
-        Int_t maxposhi = fSignal->GetMax(pixidx, sathi0, sathi1, maxcont);
+        const UInt_t maxcont  = fSignal->GetRawMaxVal(pixidx, fHiGainFirst, fHiGainLast);
+        const  Int_t maxposhi = fSignal->GetMaxPos(pixidx, fHiGainFirst, fHiGainLast);
+
         // Would it be better to take lastsat-firstsat?
+        Int_t sathi0   = fHiGainFirst;  // First slice to extract and first saturating slice
+        Int_t sathi1   = fHiGainLast;   // Last  slice to extract and last saturating slice
         Int_t numsathi = fSignal->GetSaturation(pixidx, fSaturationLimit, sathi0, sathi1);
 
@@ -253,5 +255,5 @@
         if (numsathi>1)
         {
-            timehi = GetSaturationTime(sathi0, sig, maxcont)-fHiGainFirst;
+            timehi = GetSaturationTime(sathi0, sig, fHiGainFirst+maxposhi)-fHiGainFirst;
             deltatimehi = 0;
         }
@@ -335,10 +337,9 @@
                 first = numh+fLoGainFirst;
              */
+            // Would it be better to take lastsat-firstsat?
+            const Int_t maxposlo = fSignal->GetMaxPos(pixidx, first, last);
+
             Int_t satlo0 = first;   // First slice to extract and first saturating slice
             Int_t satlo1 = last;    // Last  slice to extract and last saturating slice
-
-            // Would it be better to take lastsat-firstsat?
-            UInt_t maxlo;
-            Int_t maxposlo = fSignal->GetMax(pixidx, satlo0, satlo1, maxlo);
             numsatlo = fSignal->GetSaturation(pixidx, fSaturationLimit, satlo0, satlo1);
 
@@ -359,5 +360,5 @@
             if (numsatlo>1)
             {
-                timelo = GetSaturationTime(satlo0, sig, maxlo)-numh-first;
+                timelo = GetSaturationTime(satlo0, sig, first+maxposlo)-numh-first;
                 deltatimelo = 0;
             }
Index: trunk/MagicSoft/Mars/msignal/MSignalCalc.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MSignalCalc.cc	(revision 8502)
+++ trunk/MagicSoft/Mars/msignal/MSignalCalc.cc	(revision 8519)
@@ -137,5 +137,5 @@
 
         Byte_t *ptr   = raw;
-        Byte_t *max   = ptr+fRawEvt->GetMax(i, 0, nhi);
+        Byte_t *max   = ptr+fRawEvt->GetMaxPos(i, 0, nhi);
 	Byte_t *end   = ptr+nhi;
         Byte_t *first = max-fBefore;
@@ -199,5 +199,5 @@
             // Area: x9
             ptr = raw+nhi;
-            max = ptr+fRawEvt->GetMax(i, nhi, nhi+nlo);
+            max = ptr+fRawEvt->GetMaxPos(i, nhi, nhi+nlo);
 
             if (*max>250)
