GET library
GETFilterRef.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GETFilterRef.hh
3  *
4  * Include file for the GETFilterRef class.
5  */
6 //======================================================================
7 
8 #ifndef GET_FILTER_REF_HH
9 #define GET_FILTER_REF_HH
10 
11 //----------------------------------------------------------------------
12 
13 #include "GETFilter.hh"
14 #include "GETObject.hh"
15 
16 //======================================================================
17 /*! \class GETFilterRef
18  *
19  * This class defines a filter adapted for a refence signal.
20  *
21  * It is based on the optimal filter, considering constant noise
22  * spectral density, corresponding to the reference signal PSD at
23  * cut frequency.
24  *
25  * The picture below shows the construction of such a filter for
26  * a Gauss reference signal.
27  *
28  * \image html FilterGaus.png
29  */
30 class GETFilterRef : public GETFilter
31 {
32  //------------------------------------------------------------
33  /*! \object_doc */
35  //------------------------------------------------------------
36 
37  protected:
38 
39  double cut_frequency; ///< Filter cut frequency
40  GETSample ref_signal; ///< Reference Gaus signal
41 
42  public:
43  //----------------------------------------------------------
44  /** @name Constructors, affectation, destructor */
45  //@{
46  GETFilterRef ( GETObject & obj, double fcut = 0. );
47  GETFilterRef ( u_int n = 0, double dt = 0.01, double fcut = 0. );
48  GETFilterRef ( const GETFilterRef & proc );
49  virtual ~GETFilterRef ( );
50  //@}
51 
52 
53  //----------------------------------------------------------
54  /** @name Initialization functions */
55  //@{
56  virtual void Init ( u_int n, double dt );
57  virtual void SetCutFrequency ( double fcut );
58 
59  /*! Compute the reference and the filter sample.*/
60  virtual void UpdateFilter ( ) = 0;
61 
62  double GetCutFrequency ( ); // inline
63  GETSample & GetReference ( ); // inline
64  //@}
65 
66  //----------------------------------------------------------
67  /** @name ROOT related functions */
68  //@{
69  public:
70 
71  /*! for use within ROOT.*/
73  //@}
74 };
75 
76 
77 //----------------------------------------------------------------------
78 // Inline functions
79 #include "icc/GETFilterRef.icc"
80 
81 
82 //======================================================================
83 #endif
ClassDef(GETFilterRef, 0)
Definition: GETFilter.hh:21
virtual ~GETFilterRef()
Definition: GETFilterRef.cpp:47
virtual void Init(u_int n, double dt)
Definition: GETFilterRef.cpp:60
double cut_frequency
Filter cut frequency.
Definition: GETFilterRef.hh:39
Definition: GETFilterRef.hh:30
GETFilterRef(GETObject &obj, double fcut=0.)
Definition: GETFilterRef.cpp:20
GObjectV(GETFilterRef)
Definition: GETObject.hh:38
RRealSampleFFT GETSample
Define the data type for samples.
Definition: GETCommon.hh:27
GETSample & GetReference()
Definition: GETFilterRef.icc:19
GETSample ref_signal
Reference Gaus signal.
Definition: GETFilterRef.hh:40
virtual void UpdateFilter()=0
virtual void SetCutFrequency(double fcut)
Definition: GETFilterRef.icc:11
double GetCutFrequency()
Definition: GETFilterRef.icc:15