Index: trunk/Mars/msignal/MExtractBlindPixel.cc
===================================================================
--- trunk/Mars/msignal/MExtractBlindPixel.cc	(revision 11567)
+++ trunk/Mars/msignal/MExtractBlindPixel.cc	(revision 11568)
@@ -150,5 +150,5 @@
 }
 
-void MExtractBlindPixel::SetRange(Byte_t hifirst, Byte_t hilast, Int_t lofirst, Byte_t lolast)
+void MExtractBlindPixel::SetRange(UShort_t hifirst, UShort_t hilast, Int_t lofirst, Byte_t lolast)
 {
 
Index: trunk/Mars/msignal/MExtractBlindPixel.h
===================================================================
--- trunk/Mars/msignal/MExtractBlindPixel.h	(revision 11567)
+++ trunk/Mars/msignal/MExtractBlindPixel.h	(revision 11568)
@@ -87,6 +87,6 @@
 //  void SetNumBlindPixels( const Int_t   num=1 )  { fNumBlindPixels = num;   }
   
-  void SetRange         ( const Byte_t  hifirst=0, const Byte_t hilast=0, 
-   		          const Int_t   lofirst=0, const Byte_t lolast=0 );
+  void SetRange         ( const UShort_t hifirst=0, const UShort_t hilast=0,
+   		          const Int_t    lofirst=0, const Byte_t   lolast=0 );
   void SetResolution    ( const Float_t f=fgResolution       )  { fResolution     = f;     }
   
Index: trunk/Mars/msignal/MExtractPINDiode.cc
===================================================================
--- trunk/Mars/msignal/MExtractPINDiode.cc	(revision 11567)
+++ trunk/Mars/msignal/MExtractPINDiode.cc	(revision 11568)
@@ -146,5 +146,5 @@
 // - fSqrtLoGainSamples to: 0.
 //  
-void MExtractPINDiode::SetRange(Byte_t hifirst, Byte_t hilast, Int_t lofirst, Byte_t lolast)
+void MExtractPINDiode::SetRange(UShort_t hifirst, UShort_t hilast, Int_t lofirst, Byte_t lolast)
 {
 
Index: trunk/Mars/msignal/MExtractPINDiode.h
===================================================================
--- trunk/Mars/msignal/MExtractPINDiode.h	(revision 11567)
+++ trunk/Mars/msignal/MExtractPINDiode.h	(revision 11568)
@@ -56,5 +56,5 @@
 
   // Setters
-  void SetRange(Byte_t hifirst=0, Byte_t hilast=0, Int_t lofirst=0, Byte_t lolast=0);
+  void SetRange(UShort_t hifirst=0, UShort_t hilast=0, Int_t lofirst=0, Byte_t lolast=0);
   void SetPINDiodeIdx  ( const UInt_t idx=fgPINDiodeIdx    ) { fPINDiodeIdx   = idx; }
   void SetLowerFitLimit( const Byte_t lim=fgLowerFitLimit  ) { fLowerFitLimit = lim; }
Index: trunk/Mars/msignal/MExtractTimeAndCharge.cc
===================================================================
--- trunk/Mars/msignal/MExtractTimeAndCharge.cc	(revision 11567)
+++ trunk/Mars/msignal/MExtractTimeAndCharge.cc	(revision 11568)
@@ -237,4 +237,8 @@
     const UInt_t satlim = fSaturationLimit*fRunHeader->GetScale();
 
+    // Do not even try to extract the hi-gain if we have
+    // more than one saturating slice
+    const Int_t rangehi = fHiGainLast - fHiGainFirst + 1;
+
     MRawEvtPixelIter pixel(fRawEvt);
     while (pixel.Next())
@@ -251,8 +255,4 @@
         Float_t sumhi =0., deltasumhi =-1; // Set hi-gain of MExtractedSignalPix valid
         Float_t timehi=0., deltatimehi=-1; // Set hi-gain of MArrivalTimePix valid
-
-        // Do not even try to extract the hi-gain if we have
-        // more than one saturating slice
-        const Int_t rangehi = fHiGainLast - fHiGainFirst + 1;
 
         if (numsathi<2)
Index: trunk/Mars/msignal/MExtractTimeAndChargeSpline.cc
===================================================================
--- trunk/Mars/msignal/MExtractTimeAndChargeSpline.cc	(revision 11567)
+++ trunk/Mars/msignal/MExtractTimeAndChargeSpline.cc	(revision 11568)
@@ -201,5 +201,5 @@
 // explicit call to SetChargeType().
 //
-void MExtractTimeAndChargeSpline::SetRange(Byte_t hifirst, Byte_t hilast, Int_t lofirst, Byte_t lolast)
+void MExtractTimeAndChargeSpline::SetRange(UShort_t hifirst, UShort_t hilast, Int_t lofirst, Byte_t lolast)
 {
   MExtractor::SetRange(hifirst, hilast, lofirst, lolast);
@@ -347,5 +347,4 @@
     s.GetTime(time, dtime);
     s.GetSignal(sum, dsum);
-
 }
 
Index: trunk/Mars/msignal/MExtractTimeAndChargeSpline.h
===================================================================
--- trunk/Mars/msignal/MExtractTimeAndChargeSpline.h	(revision 11567)
+++ trunk/Mars/msignal/MExtractTimeAndChargeSpline.h	(revision 11568)
@@ -61,5 +61,5 @@
     Float_t GetFallTimeHiGain() const { return fFallTimeHiGain; }
 
-    void SetRange(Byte_t hifirst=0, Byte_t hilast=0, Int_t lofirst=0, Byte_t lolast=0 );
+    void SetRange(UShort_t hifirst=0, UShort_t hilast=0, Int_t lofirst=0, Byte_t lolast=0 );
 
     void SetResolution(const Float_t f=fgResolution)  { fResolution  = f;  }
Index: trunk/Mars/msignal/MExtractor.cc
===================================================================
--- trunk/Mars/msignal/MExtractor.cc	(revision 11567)
+++ trunk/Mars/msignal/MExtractor.cc	(revision 11568)
@@ -147,5 +147,5 @@
 }
 
-void MExtractor::SetRange(Byte_t hifirst, Byte_t hilast, Int_t lofirst, Byte_t lolast)
+void MExtractor::SetRange(UShort_t hifirst, UShort_t hilast, Int_t lofirst, Byte_t lolast)
 {
     fHiGainFirst = hifirst;
@@ -303,8 +303,8 @@
 Int_t MExtractor::ReadEnv(const TEnv &env, TString prefix, Bool_t print)
 {
-    Byte_t hf = fHiGainFirst;
-    Int_t  lf = fLoGainFirst;
-    Byte_t hl = fHiGainLast;
-    Byte_t ll = fLoGainLast;
+    UShort_t hf = fHiGainFirst;
+    UShort_t hl = fHiGainLast;
+    Int_t    lf = fLoGainFirst;
+    Byte_t   ll = fLoGainLast;
 
     Bool_t rc = kFALSE;
Index: trunk/Mars/msignal/MExtractor.h
===================================================================
--- trunk/Mars/msignal/MExtractor.h	(revision 11567)
+++ trunk/Mars/msignal/MExtractor.h	(revision 11568)
@@ -43,6 +43,6 @@
   MPedestalSubtractedEvt *fSignal;         //!
 
-  Byte_t   fHiGainFirst;                   // First FADC slice nr. to extract the High Gain signal
-  Byte_t   fHiGainLast;                    // Last FADC slice nr. to extract the High Gain signal
+  UShort_t fHiGainFirst;                   // First FADC slice nr. to extract the High Gain signal
+  UShort_t fHiGainLast;                    // Last FADC slice nr. to extract the High Gain signal
   Int_t    fLoGainFirst;                   // First FADC slice nr. to extract the Low Gain signal
   Byte_t   fLoGainLast;                    // Last FADC slice nr. to extract the Low Gain signal
@@ -81,14 +81,14 @@
   
   // getter
-  Byte_t  GetHiGainFirst()      const { return fHiGainFirst;      }
-  Byte_t  GetHiGainLast ()      const { return fHiGainLast ;      }
-  Int_t   GetLoGainFirst()      const { return fLoGainFirst;      }
-  Byte_t  GetLoGainLast ()      const { return fLoGainLast ;      }
-  Float_t GetNumHiGainSamples() const { return fNumHiGainSamples; }
-  Float_t GetNumLoGainSamples() const { return fNumLoGainSamples; }
-  Float_t GetOffsetLoGain()     const { return fOffsetLoGain;     }
-  Float_t GetResolutionPerPheHiGain() const { return fResolutionPerPheHiGain; }
-  Float_t GetResolutionPerPheLoGain() const { return fResolutionPerPheLoGain; }
-  UInt_t  GetSaturationLimit() const { return fSaturationLimit; }
+  UShort_t GetHiGainFirst()      const { return fHiGainFirst;      }
+  UShort_t GetHiGainLast ()      const { return fHiGainLast ;      }
+  Int_t    GetLoGainFirst()      const { return fLoGainFirst;      }
+  Byte_t   GetLoGainLast ()      const { return fLoGainLast ;      }
+  Float_t  GetNumHiGainSamples() const { return fNumHiGainSamples; }
+  Float_t  GetNumLoGainSamples() const { return fNumLoGainSamples; }
+  Float_t  GetOffsetLoGain()     const { return fOffsetLoGain;     }
+  Float_t  GetResolutionPerPheHiGain() const { return fResolutionPerPheHiGain; }
+  Float_t  GetResolutionPerPheLoGain() const { return fResolutionPerPheLoGain; }
+  UInt_t   GetSaturationLimit() const { return fSaturationLimit; }
 
   Bool_t  HasLoGain() const { return fLoGainFirst>0 || fLoGainLast>0; }
@@ -99,5 +99,5 @@
   Float_t SetResolutionPerPheLoGain() const { return fResolutionPerPheLoGain; }
 
-  virtual void SetRange(Byte_t hifirst=0, Byte_t hilast=0, Int_t lofirst=0, Byte_t lolast=0);
+  virtual void SetRange(UShort_t hifirst=0, UShort_t hilast=0, Int_t lofirst=0, Byte_t lolast=0);
 
   void SetOffsetLoGain    ( const Float_t  f=fgOffsetLoGain          ) { fOffsetLoGain     = f;    }
