Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 8294)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 8297)
@@ -1,4 +1,4 @@
 /* ======================================================================== *\
-! $Name: not supported by cvs2svn $:$Id: MExtractTimeAndCharge.cc,v 1.61 2007-02-03 15:10:14 tbretz Exp $
+! $Name: not supported by cvs2svn $:$Id: MExtractTimeAndCharge.cc,v 1.62 2007-02-03 20:05:35 tbretz Exp $
 ! --------------------------------------------------------------------------
 !
@@ -32,6 +32,6 @@
 //   Base class for the signal extractors which extract the arrival time 
 //   and the signal at the same time. Uses the functions 
-//   FindTimeAndChargeHiGain() and FindTimeAndChargeLoGain() to extract the signal and 
-//   substract the pedestal value.
+//   FindTimeAndChargeHiGain() and FindTimeAndChargeLoGain() to extract
+//   the signal.
 //
 //   The following figure gives and example of possible inheritance trees. 
@@ -53,4 +53,10 @@
 //   - fSqrtHiGainSamples
 //   - fSqrtLoGainSamples
+//
+//
+// Class Version 3:
+// ----------------
+//   - Byte_t fMaxBinContent;
+//
 //
 // Input Containers:
@@ -243,9 +249,11 @@
         // For extractors like the digital filter and the spline
         // we allow extracpolation by one slice.
+        // FIXME: Defined Out-Of-Range better so that the extractors
+        //        know what to return!
         if (deltatimehi>-0.5 && (timehi<-1 || timehi>=rangehi))
         {
             // Flag this as unreliable!
             timehi = gRandom->Uniform(rangehi+1)-1;
-            // deltatimehi=-1;
+            // deltatimehi=-1; // Set PIXEL to UNRELIABLE?
         }
 
@@ -323,4 +331,10 @@
             numsatlo = fSignal->GetSaturation(pixidx, fSaturationLimit, satlo0, satlo1);
 
+            //if (satlo0>first && satlo1<last && numsatlo>2)
+            //{
+            //    fSignal->InterpolateSaturation(pixidx, fSaturationLimit, satlo0, satlo1);
+            //    numsatlo = 0;
+            //}
+
             const Int_t rangelo = last-first+1;
             FindTimeAndChargeLoGain2(sig+first, rangelo,
@@ -345,5 +359,5 @@
                 // Flag this as unreliable!
                 timelo = gRandom->Uniform(rangelo+1)-1;
-                //deltatimelo=-1;
+                //deltatimelo=-1; // Set PIXEL to UNRELIABLE?
             }
 
@@ -356,8 +370,12 @@
                 deltasumlo=deltatimelo=-1;
 
+            // The extracted lo-gain signal cannot be zero or
+            // negative at all, so it must be wrong
+            if (sumlo<=0)
+                deltasumlo=-1;
+
             //if (TMath::Abs(timelo-fOffsetLoGain - timehi)>1.0)
             //    deltatimelo = -1;
         }
-
 
         // Now store the result in the corresponding containers
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.h	(revision 8294)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.h	(revision 8297)
@@ -55,5 +55,5 @@
   void Print(Option_t *o="") const; //*MENU*
 
-  ClassDef(MExtractTimeAndCharge, 2)   // Time And Charge Extractor Base Class
+  ClassDef(MExtractTimeAndCharge, 3)   // Time And Charge Extractor Base Class
 };
 
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.cc	(revision 8294)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.cc	(revision 8297)
@@ -1,4 +1,4 @@
 /* ======================================================================== *\
-! $Name: not supported by cvs2svn $:$Id: MExtractTimeAndChargeSpline.cc,v 1.64 2006-10-25 18:41:47 tbretz Exp $
+! $Name: not supported by cvs2svn $:$Id: MExtractTimeAndChargeSpline.cc,v 1.65 2007-02-03 20:07:52 tbretz Exp $
 ! --------------------------------------------------------------------------
 !
@@ -161,6 +161,6 @@
 const Byte_t  MExtractTimeAndChargeSpline::fgLoGainLast       = 14;
 const Float_t MExtractTimeAndChargeSpline::fgResolution       = 0.05;
-const Float_t MExtractTimeAndChargeSpline::fgRiseTimeHiGain   = 0.7;
-const Float_t MExtractTimeAndChargeSpline::fgFallTimeHiGain   = 1.0;
+const Float_t MExtractTimeAndChargeSpline::fgRiseTimeHiGain   = 0.64;
+const Float_t MExtractTimeAndChargeSpline::fgFallTimeHiGain   = 0.76;
 const Float_t MExtractTimeAndChargeSpline::fgLoGainStretch    = 1.5;
 const Float_t MExtractTimeAndChargeSpline::fgOffsetLoGain     = 1.3;
@@ -181,5 +181,5 @@
 //
 MExtractTimeAndChargeSpline::MExtractTimeAndChargeSpline(const char *name, const char *title) 
-    : /*fRandomIter(0),*/ fExtractionType(kIntegral)
+    : fExtractionType(kIntegral)
 {
 
