Index: trunk/MagicSoft/Mars/Changelog
===================================================================
--- trunk/MagicSoft/Mars/Changelog	(revision 5487)
+++ trunk/MagicSoft/Mars/Changelog	(revision 5488)
@@ -20,4 +20,10 @@
 
                                                  -*-*- END OF LINE -*-*-
+
+ 2004/11/28: Markus Gaug
+
+   * msignal/MExtractTimeAndChargeDigitalFilter.[h,cc]
+     - fixed documentation of data members
+     - Introduced setter and getter for name of weights file
 
  2004/11/26: Markus Gaug
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 5487)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 5488)
@@ -78,4 +78,5 @@
 const Int_t  MExtractTimeAndChargeDigitalFilter::fgSignalStartBinHiGain    =  4;
 const Int_t  MExtractTimeAndChargeDigitalFilter::fgSignalStartBinLoGain    =  4;
+const TString MExtractTimeAndChargeDigitalFilter::fgNameWeightsFile        = "cosmics_weights.dat";
 // --------------------------------------------------------------------------
 //
@@ -90,4 +91,5 @@
 //
 MExtractTimeAndChargeDigitalFilter::MExtractTimeAndChargeDigitalFilter(const char *name, const char *title) 
+    : fWeightsSet(kFALSE)
 {
     fName  = name  ? name  : "MExtractTimeAndChargeDigitalFilter";
@@ -99,5 +101,5 @@
     SetSignalStartBin();
 
-    ReadWeightsFile("");
+    SetNameWeightsFile();
 }
 
@@ -187,4 +189,8 @@
 {
     if (!MExtractTimeAndCharge::ReInit(pList))
+        return kFALSE;
+
+    if (!fWeightsSet)
+      if (!ReadWeightsFile(fNameWeightsFile));
         return kFALSE;
 
@@ -566,6 +572,9 @@
 Bool_t MExtractTimeAndChargeDigitalFilter::ReadWeightsFile(TString filename)
 {
+  
     // This is a fix for TEnv files edited with windows editors
     filename.ReplaceAll("\015", "");
+
+    SetNameWeightsFile(filename);
 
     fAmpWeightsHiGain .Set(fBinningResolutionHiGain*fWindowSizeHiGain);
@@ -574,5 +583,5 @@
     fTimeWeightsLoGain.Set(fBinningResolutionLoGain*fWindowSizeLoGain);
 
-    if (filename.IsNull())
+    if (fNameWeightsFile.IsNull())
     {
         fAmpWeightsHiGain.Reset(1);
@@ -696,4 +705,6 @@
     *fLog << inf << " File contains " << fWindowSizeLoGain << " lo-gain slices ";
     *fLog << "with a resolution of " << fBinningResolutionLoGain << endl;
+
+    fWeightsSet = kTRUE;
 
     return kTRUE;
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.h	(revision 5487)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.h	(revision 5488)
@@ -16,42 +16,46 @@
 {
 private:
-  static const Byte_t fgHiGainFirst;
-  static const Byte_t fgHiGainLast;
-  static const Byte_t fgLoGainFirst;
-  static const Byte_t fgLoGainLast;
-  static const Int_t  fgWindowSizeHiGain;
-  static const Int_t  fgWindowSizeLoGain;
-  static const Int_t  fgBinningResolutionHiGain;
-  static const Int_t  fgBinningResolutionLoGain;
-  static const Int_t  fgSignalStartBinHiGain;
-  static const Int_t  fgSignalStartBinLoGain;
+
+  static const Byte_t fgHiGainFirst;             //! Default for fHiGainFirst       (now set to: 0)
+  static const Byte_t fgHiGainLast;              //! Default for fHiGainLast        (now set to:14)
+  static const Byte_t fgLoGainFirst;             //! Default for fLoGainFirst       (now set to: 3)
+  static const Byte_t fgLoGainLast;              //! Default for fLoGainLast        (now set to:14)
+  static const Int_t  fgWindowSizeHiGain;        //! Default for fWindowSizeHiGain  (now set to: 6)
+  static const Int_t  fgWindowSizeLoGain;        //! Default for fWindowSizeLoGain  (now set to: 6)
+  static const Int_t  fgBinningResolutionHiGain; //! Default for fBinningResolutionHiGain (now set to: 10)
+  static const Int_t  fgBinningResolutionLoGain; //! Default for fBinningResolutionLoGain (now set to: 10)
+  static const Int_t  fgSignalStartBinHiGain;    //! Default for fSignalStartBinHiGain (now set to: 4)
+  static const Int_t  fgSignalStartBinLoGain;    //! Default for fSignalStartBinLoGain (now set to: 4)
+  static const TString fgNameWeightsFile;        //! "cosmics_weights.dat"
+
+  MArrayF fHiGainSignal;                        //! Need fast access to the signals in a float way
+  MArrayF fLoGainSignal;                        //! Store them in separate arrays
+
+  Float_t fTimeShiftHiGain;                     //  Time shift from when on to apply the filter
+  Float_t fTimeShiftLoGain;                     //  Time shift from when on to apply the filter
   
-  MArrayF fHiGainSignal;          //! Need fast access to the signals in a float way
-  MArrayF fLoGainSignal;          //! Store them in separate arrays
+  Int_t   fSignalStartBinHiGain;                //! Start bin from when on to apply weights
+  Int_t   fSignalStartBinLoGain;                //! Start bin from when on to apply weights
 
-  Float_t fTimeShiftHiGain;
-  Float_t fTimeShiftLoGain;
+  Int_t   fWindowSizeHiGain;                    //  Weights Window Size High-Gain
+  Int_t   fWindowSizeLoGain;                    //  Weights Window Size Low-Gain
+
+  Int_t   fBinningResolutionHiGain;             //  Number of weights per bin High-Gain
+  Int_t   fBinningResolutionHalfHiGain;         //  Half Number of weights per bin High-Gain
+  Int_t   fBinningResolutionLoGain;             //  Number of weights per bin Low-Gain
+  Int_t   fBinningResolutionHalfLoGain;         //  Half Number of weights per bin Low-Gain
   
-  Int_t   fSignalStartBinHiGain; //!
-  Int_t   fSignalStartBinLoGain; //!
+  MArrayF fAmpWeightsHiGain;                    //! Amplitude weights High-Gain (from weights file)
+  MArrayF fTimeWeightsHiGain;                   //! Time weights High-Gain (from weights file)
+  MArrayF fAmpWeightsLoGain;                    //! Amplitude weights Low-Gain (from weights file)
+  MArrayF fTimeWeightsLoGain;                   //! Time weights Low-Gain (from weights file)
 
-  Int_t   fWindowSizeHiGain;
-  Int_t   fWindowSizeLoGain;
-
-  Int_t   fBinningResolutionHiGain;
-  Int_t   fBinningResolutionHalfHiGain;
-  Int_t   fBinningResolutionLoGain;
-  Int_t   fBinningResolutionHalfLoGain;
+  TString fNameWeightsFile;                     // Name of the weights file
+  Bool_t  fWeightsSet;                          // Flag if weights have alreayd been set
   
-  MArrayF fAmpWeightsHiGain;     //!
-  MArrayF fTimeWeightsHiGain;    //!
-  MArrayF fAmpWeightsLoGain;     //!
-  MArrayF fTimeWeightsLoGain;    //!
-
   Bool_t ReInit(MParList *pList);
   Int_t PreProcess(MParList *pList);
 
   Int_t  ReadEnv(const TEnv &env, TString prefix, Bool_t print);
-
 
 public:
@@ -63,5 +67,7 @@
                           TH1F *shapelo=NULL, TH2F *autocorrlo=NULL );
 
-  Bool_t ReadWeightsFile(TString filename="cosmic_weights.dat");
+  Bool_t ReadWeightsFile(TString filename);
+
+  void SetNameWeightsFile( TString s = fgNameWeightsFile )   { fNameWeightsFile = s; }
   void SetWindowSize(Int_t windowh=fgWindowSizeHiGain,
                      Int_t windowl=fgWindowSizeLoGain);
@@ -80,4 +86,6 @@
   }
 
+  TString GetNameWeightsFile() const  { return fNameWeightsFile; }
+
   void Print(Option_t *o) const;
   
