simple-tof-analysis
 All Classes Namespaces Functions Variables Groups Pages
TSDataBin.h
1 /*
2  * TSDataBin.h
3  *
4  * Created on: Jun 3, 2014
5  * Author: Silvestro di Luise
6  * Silvestro.Di.Luise@cern.ch
7  *
8  *
9  *
10  *
11  *
12  *
13  */
14 
15 #ifndef TSDATABIN_H_
16 #define TSDATABIN_H_
17 
18 #include <map>
19 
20 #include <TString.h>
21 #include <TTree.h>
22 
23 #include "TSVariable.h"
24 #include "TSPhaseSpaceVolume.h"
25 #include "TSHistogramFld.h"
26 
27 #include "TSArgList.h"
28 
29 #include "MessageMgr.h"
30 
31 
32 class VarSettings;
33 
34 
35 class TSDataBin: public TSNamed {
36 
37 public:
38 
39  TSDataBin();
40  TSDataBin(TString name, TString label, TString title);
41  TSDataBin(const TSDataBin&);
42  virtual ~TSDataBin();
43 
44  int Fill();
45  int Fill(const TSVariable &);
46  int Fill(const TSArgList &);
47  TTree* GetDataTree() {return fDataTree;}
48  TSHistogramFld* GetHistoFolder() const {return fHistoFld;}
49  int GetHistoTitleStyle() const {return fHistoTitleStyle;}
50  int GetNumOfVars() const {return fNumOfVars;}
51  TSPhaseSpaceVolume* GetPhaseSpaceVolume() const {return fPhaseSpaceVol;}
52  const TSVariable* GetVariable(int) const;
53  int GetVarSettings(int var, int &auto_type, int &nbins, double &min, double &max) const;
54  bool HasPhaseSpaceVolume() const {return fHasPhaseSpaceVol;}
55  void Init();
56  bool IsPhaseSpace(int) const;
57  bool IsUnbinned() const {return fIsUnbinned;}
58  int SetBidimensional(TSVariable&, TSVariable&);
59  int SetHistoTitleStyle(int);
60  void SetName(TString);
61  int SetPhaseSpaceVolume(TSPhaseSpaceVolume&);
62  void SetUnbinned(bool);
63  int SetVariable(const TSVariable&);
64  int SetVariable(const TSVariable&, double range_min, double range_max);
65  int SetVariable(const TSVariable&, int n, double low, double up);
66 
67 
68 private:
69 
70  TString fBuildEntriesTitle(float =0, TString="");
71  TString fBuildHistoName(int,int=0);
72  TString fBuildHistoNameBase();
73  TString fBuildHistoTitle(int,int=0);
74  TString fBuildAxisTitle(int);
75 
76  void fAddTreeVariable(int);
77  void fBuildHistogram1D(int ivar, int n=-1, double low=0, double up=0);
78  void fBuildHistogram2D(int varx, int vary);
79  void fInitDataTree();
80  void fInitHistoFld();
81  void fUpdateHistoTitles();
82  int fSetVariable(const TSVariable&, int n, double low, double up, int type);
83 
84 
85  TSHistogramFld *fHistoFld;
86  TSPhaseSpaceVolume *fPhaseSpaceVol;
87  TTree *fDataTree;
88 
89 
90  class VarSettings{
91  public:
92  int NumOfBins;
93  double Min;
94  double Max;
95  bool IsBinningAuto;
96  bool HasAutoRangeLimits;
97  double RangeLimLow;
98  double RangeLimUp;
99  bool IsPhaseSpace;
100 
101  VarSettings():NumOfBins(0),IsBinningAuto(0),HasAutoRangeLimits(0)
102  ,IsPhaseSpace(0)
103  ,Min(0),Max(0),RangeLimLow(0),RangeLimUp(0)
104  {}
105  };
106 
107  std::map<int,const TSVariable*> fVarList;
108  std::map<int,VarSettings*> fVarSetsList;
109 
110 
111  static const int DATA_BUFF_SIZE=50;
112  float fDataBuffer[DATA_BUFF_SIZE];
113  int fDataBufferWeight[DATA_BUFF_SIZE];
114  bool fHasPhaseSpaceVol;
115  bool fIsUnbinned;
116  int fNumOfVars;
117 
118  int fHistoTitleStyle;
119  TString fHistoNameBase0;
120 
121 
122  int fPSHistoNBinsX;
123 
124 };
125 
126 #endif /* TSDATABIN_H_ */
Definition: TSHistogramFld.h:39
int GetVarSettings(int var, int &auto_type, int &nbins, double &min, double &max) const
Definition: TSDataBin.cc:367
Definition: TSArgList.h:30
Definition: TSDataBin.h:35
Definition: TSVariable.h:55
int SetHistoTitleStyle(int)
Definition: TSDataBin.cc:479
Definition: TSNamed.h:38
Definition: TSPhaseSpaceVolume.h:28