simple-tof-analysis
 All Classes Namespaces Functions Variables Groups Pages
TSFunction2D.h
1 /*
2  * TSFunction2D.h
3  *
4  * Created on: Aug 5, 2014
5  * Author: Silvestro di Luise
6  * Silvestro.Di.Luise@cern.ch
7  *
8  */
9 
10 #ifndef TSFUNCTION2D_H_
11 #define TSFUNCTION2D_H_
12 
13 
14 #include <TF2.h>
15 #include <TGraph.h>
16 #include <TGraph2D.h>
17 
18 /*
19  *
20  */
21 
22 
23 
24 #include "TSFunction1D.h"
25 
26 
27 class TSFunction2D: public TSFunction1D {
28 
29 public:
30 
31  TSFunction2D(TString name, TString title);
32  TSFunction2D(TString name, TString title, const TSVariable &var_x, const TSVariable &var_y);
33 
34  virtual ~TSFunction2D();
35 
36  //
37  virtual double Eval(double x, double y=0) const;
38  virtual double Eval() const;
39  virtual double EvalFunc(double *x, double *p) const {return Eval(x[0],x[1]);}
40 
41  //TGraph* BuildGraph(int ntpx=100, double y=0) const {return 0;}
42  //TGraph* BuildGraph(int ntps=100) const {return 0;}
43 
44 
45  TGraph2D* BuildGraph2D(double xmin, double xmax, double ymin, double ymax,int nptx=100, int npty=100) const;
46  TGraph2D* BuildGraph2D(int nptx=100, int npty=100) const;
47  TF2* BuildTF2(TString name="",int npx=100, int npy=100) const;
48  virtual double ComputeIntegral() const;
49  virtual double ComputeIntegral(double xmin, double xmax, double ymin, double ymax) const;
50 
51  TString GetAxisTitles() const;
52 
53  void InitFuncs();
54 
55  virtual void SetVarY(const TSVariable &);
56  const TSVariable* GetVariableY() const;
57 
58 
59 private:
60 
61  const TSVariable *fY;
62 
63 protected:
64  void fCacheY(double val) const {cached_y=val;}
65  double fGetCachedY() const {return cached_y;}
66 
67  mutable TF2* fTF2;
68 
69 protected:
70  mutable double cached_y;
71 
72 };
73 
74 #endif /* TSFUNCTION2D_H_ */
Definition: TSVariable.h:55
Definition: TSFunction1D.h:43
TGraph2D * BuildGraph2D(double xmin, double xmax, double ymin, double ymax, int nptx=100, int npty=100) const
Definition: TSFunction2D.cc:137
Definition: TSFunction2D.h:27