JG ROOT Tools libraries  version 5.0 - august 2014
RExtremaFinder.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file RExtremaFinder.hh
3  *
4  * Include file for class RExtremaFinder.
5  */
6 //======================================================================
7 
8 #ifndef R_EXTREMA_FINDER_HH
9 #define R_EXTREMA_FINDER_HH
10 
11 //======================================================================
12 #include "GExtremaFinder.hh"
13 #include "RRealSampleFFT.hh"
14 
15 // ROOT include files
16 #include "TGraph.h"
17 #include "TAxis.h"
18 #include "TH1D.h"
19 #include "TF1.h"
20 #include "TRandom3.h"
21 #include "TGraphAsymmErrors.h"
22 
23 //----------------------------------------------------------------------
24 /*! \class RExtremaFinder
25  *
26  * This class adds ROOT related functions to the base class GExtremaFinder.
27  */
28 class RExtremaFinder : public GExtremaFinder
29 {
30  //------------------------------------------------------------
31  /*! \object_doc{RExtremaFinder} */
33  //------------------------------------------------------------
34 
35  using GExtremaFinder::InitData;
36 
37  public:
38  /** @name Constructors, destructors, affectation */
39  //@{
40  // Constructors
41  RExtremaFinder ( u_int n = 0, double * data = NULL, double bin = 1. );
42  RExtremaFinder ( RRealSampleFFT * sptr );
44  RExtremaFinder ( TH1 * hptr );
45 
46  RExtremaFinder ( const RExtremaFinder & original );
47  RExtremaFinder ( const GExtremaFinder & original );
48 
49  // Affectation
50  RExtremaFinder & operator = ( const RExtremaFinder & original );
51 
52  // Destructors
53  virtual ~RExtremaFinder ( );
54  //@}
55 
56  //----------------------------------------------------------
57  /** @name Initialisation and setting functions */
58  //@{
59 
60  virtual int InitData ( u_int n, double * data, double bin = 1. );
61  virtual int InitData ( TH1 * hptr );
62 
63  //@}
64 
65  //----------------------------------------------------------
66  /** @name Access to data */
67  //@{
68  const RRealSampleFFT * GetSample ( ) const; // inline
69  RRealSampleFFT * GetSample ( ); // inline
70  const RRealSampleFFT * GetDerivativeSample ( ) const; // inline
71  RRealSampleFFT * GetDerivativeSample ( ); // inline
72 
73  //@}
74 
75  /** @name ROOT related function */
76  //@{
77  public:
78 
79  virtual TGraph * CreateExtremaGraph ( ) const;
80  virtual TGraph * CreateMaximaGraph ( ) const;
81  virtual TGraph * CreateAverageGraph ( bool ampl = true ) const;
82  virtual TGraphAsymmErrors * CreateMaxZoneGraph ( bool ampl = false ) const;
83  virtual TGraph * CreateMaxTriangleGraph ( ) const;
84 
85 
86  //----------------------------------------------------------
87  /*! for use within ROOT.*/
89  //@}
90 };
91 
92 //======================================================================
93 // Inline functions
94 #include "icc/RExtremaFinder.icc"
95 
96 
97 //======================================================================
98 #endif
Definition: RRealSampleFFT.hh:32
virtual TGraph * CreateExtremaGraph() const
Definition: RExtremaFinder.cpp:170
ClassDef(RExtremaFinder, 0)
RExtremaFinder(u_int n=0, double *data=NULL, double bin=1.)
Definition: RExtremaFinder.cpp:22
virtual TGraphAsymmErrors * CreateMaxZoneGraph(bool ampl=false) const
Definition: RExtremaFinder.cpp:230
virtual TGraph * CreateMaximaGraph() const
Definition: RExtremaFinder.cpp:185
virtual TGraph * CreateMaxTriangleGraph() const
Definition: RExtremaFinder.cpp:256
Definition: RExtremaFinder.hh:28
virtual ~RExtremaFinder()
Definition: RExtremaFinder.cpp:92
const RRealSampleFFT * GetSample() const
Definition: RExtremaFinder.icc:20
RExtremaFinder & operator=(const RExtremaFinder &original)
Definition: RExtremaFinder.cpp:81
virtual int InitData(u_int n, double *data, double bin=1.)
Definition: RExtremaFinder.cpp:106
GObject(RExtremaFinder)
virtual TGraph * CreateAverageGraph(bool ampl=true) const
Definition: RExtremaFinder.cpp:205
const RRealSampleFFT * GetDerivativeSample() const
Definition: RExtremaFinder.icc:24