Index: /trunk/MagicSoft/Mars/Changelog
===================================================================
--- /trunk/MagicSoft/Mars/Changelog	(revision 3950)
+++ /trunk/MagicSoft/Mars/Changelog	(revision 3951)
@@ -79,5 +79,13 @@
      - take out pixvstime.C which does not exist
 
-
+   * msignal/MExtractFixedWindow.[h,cc]
+   * msignal/MExtractSlidingWindow.[h,cc]
+   * msignal/MExtractFixedWindowPeakSearch.[h,cc]
+   * msignal/MExtractor.[h,cc]
+   * msignal/MExtractPINDiode.[h,cc]
+   * msignal/MExtractTime.[h,cc]
+     - set number of slices not in base class, but in derived one. 
+       Like this, extractors setting their signal in other containers 
+       don't have a conflict with the ReInit() in MExtractor.
 
  2004/05/01: Thomas Bretz
Index: /trunk/MagicSoft/Mars/msignal/MExtractFixedWindow.cc
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractFixedWindow.cc	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractFixedWindow.cc	(revision 3951)
@@ -46,4 +46,6 @@
 #include <fstream>
 
+#include "MExtractedSignalCam.h"
+
 #include "MLog.h"
 #include "MLogManip.h"
@@ -141,4 +143,22 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// The ReInit calls:
+// -  MExtractor::ReInit()
+// -  fSignals->SetUsedFADCSlices(fHiGainFirst, fHiGainLast+fHiLoLast, fNumHiGainSamples,
+//                                fLoGainFirst, fLoGainLast, fNumLoGainSamples);
+//
+Bool_t MExtractFixedWindow::ReInit(MParList *pList)
+{
+
+  MExtractor::ReInit(pList);
+  
+  fSignals->SetUsedFADCSlices(fHiGainFirst, fHiGainLast+fHiLoLast, fNumHiGainSamples,
+                              fLoGainFirst, fLoGainLast, fNumLoGainSamples);
+
+  return kTRUE;
+  
+}
 
 // --------------------------------------------------------------------------
Index: /trunk/MagicSoft/Mars/msignal/MExtractFixedWindow.h
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractFixedWindow.h	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractFixedWindow.h	(revision 3951)
@@ -24,7 +24,8 @@
   void   FindSignalHiGain(Byte_t *ptr, Byte_t *logain, Int_t &sum, Byte_t &sat) const;
   void   FindSignalLoGain(Byte_t *ptr, Int_t &sum, Byte_t &sat) const;
-
   void   StreamPrimitive(ofstream &out) const;
   
+  Bool_t ReInit(MParList *pList);
+
 public:
 
Index: /trunk/MagicSoft/Mars/msignal/MExtractFixedWindowPeakSearch.cc
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractFixedWindowPeakSearch.cc	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractFixedWindowPeakSearch.cc	(revision 3951)
@@ -211,4 +211,24 @@
 }
 
+
+// --------------------------------------------------------------------------
+//
+// The ReInit calls:
+// -  MExtractor::ReInit()
+// -  fSignals->SetUsedFADCSlices(fHiGainFirst, fHiGainLast+fHiLoLast, fNumHiGainSamples,
+//                                fLoGainFirst, fLoGainLast, fNumLoGainSamples);
+//
+Bool_t MExtractFixedWindowPeakSearch::ReInit(MParList *pList)
+{
+
+  MExtractor::ReInit(pList);
+  
+  fSignals->SetUsedFADCSlices(fHiGainFirst, fHiGainLast+fHiLoLast, fNumHiGainSamples,
+                              fLoGainFirst, fLoGainLast, fNumLoGainSamples);
+
+  return kTRUE;
+  
+}
+
 // --------------------------------------------------------------------------
 //
Index: /trunk/MagicSoft/Mars/msignal/MExtractFixedWindowPeakSearch.h
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractFixedWindowPeakSearch.h	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractFixedWindowPeakSearch.h	(revision 3951)
@@ -29,4 +29,5 @@
   void   FindPeak(Byte_t *ptr, Byte_t window, Byte_t &startslice, Int_t &signal, Int_t &sat) const;
 
+  Bool_t  ReInit(MParList *pList);
   Int_t  Process();
   
Index: /trunk/MagicSoft/Mars/msignal/MExtractPINDiode.cc
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractPINDiode.cc	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractPINDiode.cc	(revision 3951)
@@ -161,6 +161,4 @@
     return kFALSE;
 
-  fPINDiode->SetUsedFADCSlices(fHiGainFirst, fLoGainLast);
-
   const MPedestalPix &ped   = (*fPedestals)[fPINDiodeIdx]; 
 
@@ -180,4 +178,23 @@
 }
 
+// --------------------------------------------------------------------------
+//
+// The ReInit calls:
+// -  MExtractor::ReInit()
+// -  fPINDiode->SetUsedFADCSlices(fHiGainFirst, fLoGainLast);
+//
+Bool_t MExtractPINDiode::ReInit(MParList *pList)
+{
+
+  MExtractor::ReInit(pList);
+  
+  fPINDiode->SetUsedFADCSlices(fHiGainFirst, fLoGainLast);
+  
+  return kTRUE;
+  
+}
+
+
+
 void MExtractPINDiode::FindSignalandVarianceHiGain(Byte_t *ptr, Int_t &sum, Int_t &sum2, Byte_t &sat) const
 {
Index: /trunk/MagicSoft/Mars/msignal/MExtractPINDiode.h
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractPINDiode.h	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractPINDiode.h	(revision 3951)
@@ -38,4 +38,5 @@
 
   Int_t  PreProcess(MParList *pList);
+  Bool_t ReInit(MParList *pList);  
   Int_t  Process();
   void   StreamPrimitive(ofstream &out) const;
Index: /trunk/MagicSoft/Mars/msignal/MExtractSlidingWindow.cc
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractSlidingWindow.cc	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractSlidingWindow.cc	(revision 3951)
@@ -58,4 +58,5 @@
 #include "MLogManip.h"
 
+#include "MExtractedSignalCam.h"
 
 ClassImp(MExtractSlidingWindow);
@@ -109,4 +110,24 @@
 
   SetWindowSize(fWindowSizeHiGain,fWindowSizeLoGain);
+  
+}
+
+
+// --------------------------------------------------------------------------
+//
+// The ReInit calls:
+// -  MExtractor::ReInit()
+// -  fSignals->SetUsedFADCSlices(fHiGainFirst, fHiGainLast+fHiLoLast, fNumHiGainSamples,
+//                                fLoGainFirst, fLoGainLast, fNumLoGainSamples);
+//
+Bool_t MExtractSlidingWindow::ReInit(MParList *pList)
+{
+
+  MExtractor::ReInit(pList);
+  
+  fSignals->SetUsedFADCSlices(fHiGainFirst, fHiGainLast+fHiLoLast, fNumHiGainSamples,
+                              fLoGainFirst, fLoGainLast, fNumLoGainSamples);
+
+  return kTRUE;
   
 }
Index: /trunk/MagicSoft/Mars/msignal/MExtractSlidingWindow.h
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractSlidingWindow.h	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractSlidingWindow.h	(revision 3951)
@@ -23,4 +23,5 @@
   void   FindSignalLoGain(Byte_t *ptr, Int_t &max, Byte_t &sat) const;  
 
+  Bool_t  ReInit(MParList *pList);
   
 public:
Index: /trunk/MagicSoft/Mars/msignal/MExtractTime.cc
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractTime.cc	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractTime.cc	(revision 3951)
@@ -140,61 +140,15 @@
 // --------------------------------------------------------------------------
 //
-// The ReInit searches for:
-// -  MRawRunHeader::GetNumSamplesHiGain()
-// -  MRawRunHeader::GetNumSamplesLoGain()
-//
-// In case that the variable fLoGainLast is smaller than 
-// the even part of the number of samples obtained from the run header, a
-// warning is given an the range is set back accordingly. A call to:  
-// - SetRange(fHiGainFirst, fHiGainLast, fLoGainFirst, fLoGainLast-diff) 
-// is performed in that case. The variable diff means here the difference 
-// between the requested range (fLoGainLast) and the available one. Note that 
-// the functions SetRange() are mostly overloaded and perform more checks, 
-// modifying the ranges again, if necessary.
-//
-// In case that the variable fHiGainLast is smaller than the available range 
-// obtained from the run header, a warning is given that a part of the low-gain 
-// samples are used for the extraction of the high-gain signal. 
+// The ReInit calls:
+// -  MExtractor::ReInit()
 //
 // Call: 
 // - MArrivalTimeCam::SetUsedFADCSlices(fHiGainFirst, fHiGainLast, fNumHiGainSamples,
-//                                          fLoGainFirst, fLoGainLast, fNumLoGainSamples);
+//                                      fLoGainFirst, fLoGainLast, fNumLoGainSamples);
 //
 Bool_t MExtractTime::ReInit(MParList *pList)
 {
   
-  Int_t lastdesired   = (Int_t)(fLoGainLast);
-  Int_t lastavailable = (Int_t)fRunHeader->GetNumSamplesLoGain()-1;
-  
-  if (lastdesired > lastavailable)
-    {
-      const Int_t diff = lastdesired - lastavailable;
-      *fLog << endl; 
-      *fLog << warn << GetDescriptor()
-            << Form("%s%2i%s%2i%s%2i%s",": Selected Lo Gain FADC Window [",
-                    (int)fLoGainFirst,",",lastdesired,
-                    "] ranges out of the available limits: [0,",lastavailable,"].") << endl;
-      *fLog << GetDescriptor() << ": Will reduce the upper edge to " << (int)(fLoGainLast - diff) << endl;
-      SetRange(fHiGainFirst, fHiGainLast, fLoGainFirst, fLoGainLast-diff);
-    }
-
-  lastdesired   = (Int_t)fHiGainLast;
-  lastavailable = (Int_t)fRunHeader->GetNumSamplesHiGain()-1;
-  
-  if (lastdesired > lastavailable)
-    {
-      const Int_t diff = lastdesired - lastavailable;
-      *fLog << endl;
-      *fLog << warn << GetDescriptor()
-            << Form("%s%2i%s%2i%s%2i%s",": Selected Hi Gain FADC Window [",
-                    (int)fHiGainFirst,",",lastdesired,
-                    "] ranges out of the available limits: [0,",lastavailable,"].") << endl;
-      *fLog << warn << GetDescriptor() 
-            << Form("%s%2i%s",": Will use ",diff," samples from the Low-Gain for the High-Gain extraction")
-            << endl;
-      fHiGainLast -= diff;
-      fHiLoLast    = diff;
-    }
-
+  MExtractor::ReInit(pList);
 
   fArrTime->SetUsedFADCSlices(fHiGainFirst, fHiGainLast+fHiLoLast, fLoGainFirst, fLoGainLast);
Index: /trunk/MagicSoft/Mars/msignal/MExtractor.cc
===================================================================
--- /trunk/MagicSoft/Mars/msignal/MExtractor.cc	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/MExtractor.cc	(revision 3951)
@@ -101,7 +101,7 @@
   
   fHiGainFirst = hifirst;
+  fHiGainLast  = hilast;
+
   fLoGainFirst = lofirst;
-  
-  fHiGainLast  = hilast;
   fLoGainLast  = lolast;
 
@@ -212,8 +212,4 @@
     }
 
-
-  fSignals->SetUsedFADCSlices(fHiGainFirst, fHiGainLast+fHiLoLast, fNumHiGainSamples,
-                              fLoGainFirst, fLoGainLast, fNumLoGainSamples);
-
   return kTRUE;
 }
Index: /trunk/MagicSoft/Mars/msignal/Makefile
===================================================================
--- /trunk/MagicSoft/Mars/msignal/Makefile	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/Makefile	(revision 3951)
@@ -30,4 +30,6 @@
 SRCFILES = MExtractedSignalCam.cc \
            MExtractedSignalPix.cc \
+	   MExtractedSignalPINDiode.cc \
+	   MExtractedSignalBlindPixel.cc \
            MExtractor.cc \
            MExtractFixedWindow.cc \
@@ -38,7 +40,5 @@
            MExtractSignal3.cc \
 	   MExtractPINDiode.cc \
-	   MExtractedSignalPINDiode.cc \
 	   MExtractBlindPixel.cc \
-	   MExtractedSignalBlindPixel.cc \
            MExtractTime.cc \
            MExtractTimeSpline.cc \
Index: /trunk/MagicSoft/Mars/msignal/SignalLinkDef.h
===================================================================
--- /trunk/MagicSoft/Mars/msignal/SignalLinkDef.h	(revision 3950)
+++ /trunk/MagicSoft/Mars/msignal/SignalLinkDef.h	(revision 3951)
@@ -7,4 +7,7 @@
 #pragma link C++ class MExtractedSignalCam+;
 #pragma link C++ class MExtractedSignalPix+;
+#pragma link C++ class MExtractedSignalPINDiode++;
+#pragma link C++ class MExtractedSignalBlindPixel++;
+
 #pragma link C++ class MExtractSignal+;
 #pragma link C++ class MExtractSignal2+;
@@ -15,10 +18,6 @@
 #pragma link C++ class MExtractSlidingWindow+;
 #pragma link C++ class MExtractFixedWindowPeakSearch+;
-   
-
 #pragma link C++ class MExtractPINDiode++;
-#pragma link C++ class MExtractedSignalPINDiode++;
 #pragma link C++ class MExtractBlindPixel++;
-#pragma link C++ class MExtractedSignalBlindPixel++;
 
 #pragma link C++ class MExtractTime+;
