simple-tof-analysis
 All Classes Namespaces Functions Variables Groups Pages
TSOscProb.h
1 /*
2  * TSOscProb.h
3  *
4  * Created on: Oct 20, 2014
5  * Author: Silvestro di Luise
6  * Silvestro.Di.Luise@cern.ch
7  *
8  */
9 
10 #ifndef TSOSCPROB_H_
11 #define TSOSCPROB_H_
12 
13 #include <vector>
14 
15 #include <TGraph.h>
16 
17 #include "TSNamed.h"
18 
19 #include "TSParameter.h"
20 #include "TSParamList.h"
21 #include "TSVariable.h"
22 
23 /*
24  *
25  */
26 
27 class TSOscProb: public TSNamed {
28 
29 
30 public:
31 
32  TSOscProb();
33  TSOscProb(TString name, TString title);
34  virtual ~TSOscProb();
35 
36  void BindToEnergyVariable(TSVariable &);
37  void BindToLengthVariable(TSVariable &);
38 
39 
40  TGraph* BuildGraph_ProbVsE(int npts, double min, double max);
41  TGraph* BuildGraph_ProbVsL(int npts, double min, double max);
42  TGraph* BuildGraph_ProbVsLoverE(int npts, double min, double max);
43  TGraph* BuildGraph_ProbVsParam(TSParameter &, int npts, double min, double max);
44 
45 
46  virtual double Eval() =0;
47 
48  void FillHistogram(TH1F&,TString opt="");
49 
50  virtual void FillParameter(int);
51  virtual void FillParameters();
52 
53  virtual TString GetTransitionLabel() {return "";}
54 
55  TSVariable *GetEnergyVariableBound() {return fBindVarEne;}
56  TSVariable *GetLengthVariableBound() {return fBindVarLen;}
57 
58  void Init();
59 
60  bool IsXbinningLog() const {return fIsXbinningLog;}
61 
62  void OscillateHistogram(TH1 &, TH1 *, TString opt="");
63 
64 
65  void Print();
66 
67  void SetE(double E) const {mE = E;}
68  void SetL(double L) const {mL = L;}
69  void SetEandL(double E, double L) const {mE=E;mL=L;}
70 
71  void SetEnergyUnit(TString ="MeV");
72  void SetLengthUnit(TString ="km");
73 
74  void SetBinAveNumOfPoints(int n) {fNptBinAve=n;}
75 
76  virtual void SetParameters(const TSParamList& );
77 
78  void SetXbinningLog(bool b) {fIsXbinningLog = b;}
79 
80 protected:
81 
82  TSVariable fVarEne;
83  TSVariable fVarLen;
84 
85  TSVariable *fBindVarEne;
86  TSVariable *fBindVarLen;
87 
88 
89  double mArgBase;
90  double mArgConst;
91  double mArgEScale;
92  double mArgLScale;
93 
94  mutable double mE;
95  mutable double mL;
96 
97  bool fIsXbinningLog;
98 
99  int fTransitionId;
100  TString fTranstionName;
101  TString fTransitionLabel;
102 
103  int fNumOfParams;
104 
105  TSParamList fParamList;
106  std::vector<TSParameter*> fArrayOfPars;
107  double *fParamCache;
108 
109  int fNptBinAve;
110 };
111 
112 #endif /* TSOSCPROB_H_ */
Definition: TSParamList.h:29
Definition: TSVariable.h:55
Definition: TSParameter.h:39
Definition: TSNamed.h:38
Definition: TSOscProb.h:27