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  int GetBidimVarXIdx(int) const;
48  int GetBidimVarYIdx(int) const;
49  TTree* GetDataTree() {return fDataTree;}
50  TSHistogramFld* GetHistoFolder() const {return fHistoFld;}
51  int GetHistoTitleStyle() const {return fHistoTitleStyle;}
52  int GetNumOfVars() const {return fNumOfVars;}
53  int GetNumOfBidimPairs() const {return fNumOfBidimPairs;}
54  TSPhaseSpaceVolume* GetPhaseSpaceVolume() const {return fPhaseSpaceVol;}
55  const TSVariable* GetVariable(int) const;
56  int GetVarSettings(int var, int &auto_type, int &nbins, double &min, double &max) const;
57  bool HasPhaseSpaceVolume() const {return fHasPhaseSpaceVol;}
58  void Init();
59  bool IsPhaseSpace(int) const;
60  bool IsUnbinned() const {return fIsUnbinned;}
61  int SetBidimensional(TSVariable&, TSVariable&);
62  int SetBidimensional(int idx, int idy);
63  int SetHistoTitleStyle(int);
64  void SetName(TString);
65  int SetPhaseSpaceVolume(TSPhaseSpaceVolume&);
66  void SetUnbinned(bool);
67  int SetVariable(const TSVariable&);
68  int SetVariable(const TSVariable&, double range_min, double range_max);
69  int SetVariable(const TSVariable&, int n, double low, double up);
70 
71 
72 
73 private:
74 
75  TString fBuildEntriesTitle(float =0, TString="");
76  TString fBuildHistoName(int,int=0);
77  TString fBuildHistoNameBase();
78  TString fBuildHistoTitle(int,int=0);
79  TString fBuildAxisTitle(int);
80 
81  void fAddTreeVariable(int);
82  void fBuildHistogram1D(int ivar, int n=-1, double low=0, double up=0);
83  void fBuildHistogram2D(int varx, int vary);
84  void fInitDataTree();
85  void fInitHistoFld();
86  void fUpdateHistoTitles();
87  int fSetVariable(const TSVariable&, int n, double low, double up, int type);
88 
89 
90  TSHistogramFld *fHistoFld;
91  TSPhaseSpaceVolume *fPhaseSpaceVol;
92  TTree *fDataTree;
93 
94 
95  class VarSettings{
96  public:
97  int NumOfBins;
98  double Min;
99  double Max;
100  bool IsBinningAuto;
101  bool HasAutoRangeLimits;
102  double RangeLimLow;
103  double RangeLimUp;
104  bool IsPhaseSpace;
105 
106  VarSettings():NumOfBins(0),IsBinningAuto(0),HasAutoRangeLimits(0)
107  ,IsPhaseSpace(0)
108  ,Min(0),Max(0),RangeLimLow(0),RangeLimUp(0)
109  {}
110  };
111 
112  std::map<int,const TSVariable*> fVarList;
113  std::map<int,VarSettings*> fVarSetsList;
114 
115  int fNumOfBidimPairs;
116  std::vector<int> fBidimVarXIdx;
117  std::vector<int> fBidimVarYIdx;
118 
119 
120  static const int DATA_BUFF_SIZE=50;
121  float fDataBuffer[DATA_BUFF_SIZE];
122  int fDataBufferWeight[DATA_BUFF_SIZE];
123  bool fHasPhaseSpaceVol;
124  bool fIsUnbinned;
125  int fNumOfVars;
126 
127  int fHistoTitleStyle;
128  TString fHistoNameBase0;
129 
130 
131  int fPSHistoNBinsX;
132 
133 };
134 
135 #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