simple-tof-analysis
 All Classes Namespaces Functions Variables Groups Pages
TSFunc2DGaussPdf.h
1 /*
2  * TSFunc2DGaussPdf.h
3  *
4  * Created on: Aug 3, 2014
5  * Author: Silvestro di Luise
6  * Silvestro.Di.Luise@cern.ch
7  *
8  *
9  *
10  *
11  *
12  */
13 
14 #ifndef TSFUNC2DGAUSSPDF_H_
15 #define TSFUNC2DGAUSSPDF_H_
16 
17 #include <TString.h>
18 
19 #include <TMath.h>
20 
21 #include "TSVariable.h"
22 #include "TSParameter.h"
23 
24 #include "TSBaseFunction.h"
25 #include "TSFunction2D.h"
26 
27 
29 
30 
31 public:
32 
34  TSFunc2DGaussPdf(TString name,TString title);
35  TSFunc2DGaussPdf(TString name, TString title,
36  const TSVariable &var_x, const TSParameter &mean_x, const TSParameter &sigma_x,
37  const TSVariable &var_y, const TSParameter &mean_y, const TSParameter &sigma_y);
38  virtual ~TSFunc2DGaussPdf();
39 
40 
41 
42  virtual double Evaluate() const;
43 
44  virtual void Init();
45 
46  void SetSigmaSpreadX(double v) const {fsigma_spreadX=v;}
47  virtual double GetSigmaSpreadX() const {/*cout<<"gatspr:"<<this<<endl;*/ return fsigma_spreadX;}
48 
49  void SetSigmaSpreadY(double v) const {fsigma_spreadY=v;}
50  virtual double GetSigmaSpreadY() const {/*cout<<"gatspr:"<<this<<endl;*/return fsigma_spreadY;}
51 
52  //for direct access
53  double GetMeanX() const { return fMeanX ? fMeanX->GetValue(): 0; }
54  double GetSigmaX() const {
55  return fSigmaX ? TMath::Sqrt( TMath::Power(fSigmaX->GetValue(),2)+TMath::Power(fsigma_spreadX,2) ): 0;
56  }
57  double GetMeanY() const { return fMeanY ? fMeanY->GetValue(): 0; }
58  double GetSigmaY() const {
59  return fSigmaY ? TMath::Sqrt( TMath::Power(fSigmaY->GetValue(),2)+TMath::Power(fsigma_spreadY,2) ): 0;
60  }
61 
62  const TSParameter *GetParamMeanX() const {return fMeanX;}
63  const TSParameter *GetParamMeanY() const {return fMeanY;}
64  const TSParameter *GetParamSigmaX() const {return fSigmaX;}
65  const TSParameter *GetParamSigmaY() const {return fSigmaY;}
66 
67 
68 private:
69 
70 
71  //const TSVariable *fX;
72  const TSParameter *fMeanX;
73  const TSParameter *fSigmaX;
74 
75  //const TSVariable *fY;
76  const TSParameter *fMeanY;
77  const TSParameter *fSigmaY;
78 
79  mutable double fsigma_spreadX;
80  mutable double fsigma_spreadY;
81 
82 
83  double fParams[4];
84 };
85 
86 #endif /* TSFUNC1DGAUSSPDF_H_ */
Definition: TSFunc2DGaussPdf.h:28
Definition: TSVariable.h:55
Definition: TSParameter.h:39
Definition: TSFunction2D.h:27