Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.cc	(revision 5230)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.cc	(revision 5231)
@@ -380,8 +380,7 @@
         }
 
-      if (*p >= fSaturationLimit)
+      if (*p++ >= fSaturationLimit)
         sat++;
             
-      p++;
       count++;                                                    
     }
@@ -1046,2 +1045,63 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// In addition to the resources of the base-class MExtractor:
+//   MJPedestal.MExtractor.WindowSizeHiGain: 6
+//   MJPedestal.MExtractor.WindowSizeLoGain: 6
+//
+Int_t MExtractTimeAndChargeSpline::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
+{
+
+  Bool_t rc = kFALSE;
+  
+  if (IsEnvDefined(env, prefix, "Resolution", print))
+    {
+      SetResolution(GetEnvValue(env, prefix, "Resolution",fResolution));
+      rc  = kTRUE;
+    }
+  if (IsEnvDefined(env, prefix, "RiseTime", print))
+    {
+      SetRiseTime(GetEnvValue(env, prefix, "RiseTime", fRiseTime));
+      rc = kTRUE;
+    }
+  if (IsEnvDefined(env, prefix, "FallTime", print))
+    {
+      SetFallTime(GetEnvValue(env, prefix, "FallTime", fFallTime));
+      rc = kTRUE;
+    }
+  
+  Bool_t b = kFALSE;
+
+  if (IsEnvDefined(env, prefix, "Amplitude", print))
+    {
+      b = GetEnvValue(env, prefix, "Amplitude", IsExtractionType(kAmplitude));
+      if (b) 
+        SetChargeType(kAmplitude);
+      rc = kTRUE;
+    }
+  if (IsEnvDefined(env, prefix, "Integral", print))
+    {
+      b = GetEnvValue(env, prefix, "Integral", IsExtractionType(kIntegral));
+      if (b) 
+        SetChargeType(kIntegral);
+      rc = kTRUE;
+    }
+  if (IsEnvDefined(env, prefix, "Maximum", print))
+    {
+      b = GetEnvValue(env, prefix, "Maximum", IsExtractionType(kMaximum));
+      if (b) 
+        SetTimeType(kMaximum);
+      rc = kTRUE;
+    }
+  if (IsEnvDefined(env, prefix, "HalfMaximum", print))
+    {
+      b = GetEnvValue(env, prefix, "HalfMaximum", IsExtractionType(kHalfMaximum));
+      if (b) 
+        SetTimeType(kHalfMaximum);
+      rc = kTRUE;
+    }
+
+  return MExtractTimeAndCharge::ReadEnv(env, prefix, print) ? kTRUE : rc;
+
+}
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.h	(revision 5230)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.h	(revision 5231)
@@ -27,15 +27,15 @@
   Float_t *fLoGainSecondDeriv;           //!
 
+  Float_t fAbMax;                        //! Current maximum of the spline
+  Float_t fAbMaxPos;                     //! Current position of the maximum of the spline
+  Float_t fHalfMax;                      //! Current half maximum of the spline
+
   Float_t fResolution;                   // The time resolution in FADC units
   Float_t fRiseTime;                     // The usual rise time of the pulse
   Float_t fFallTime;                     // The usual fall time of the pulse
 
-  Float_t fAbMax;                        // Current maximum of the spline
-  Float_t fAbMaxPos;                     // Current position of the maximum of the spline
-  Float_t fHalfMax;                      // Current half maximum of the spline
-
   Byte_t  fFlags;                        // Bit-field to hold the time extraction types
   
-  Bool_t ReInit    (MParList *pList);
+  Bool_t ReInit( MParList *pList );
   
   void FindTimeAndChargeHiGain(Byte_t *first, Byte_t *logain, Float_t &sum, Float_t &dsum,
@@ -46,4 +46,6 @@
                                Byte_t &sat, const MPedestalPix &ped, const Bool_t abflag);
 
+  Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
+  
 public:
 
