New classes plus some renamed for a better user friendly interface
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnHistoDef.h
1 //
2 // Class AliRsnHistoDef
3 //
4 // Definition for a histogram type.
5 // Since one could do an analysis which is not an invariant mass
6 // the histogram definition should be more flexible, and it is stored
7 // separately in a new class.
8 // This class considers the possibility of a 1D or 2D histograms
9 // with its related binning, and can create a new histo from his definitions
10 //
11
12 #ifndef AliRsnHistoDef_H
13 #define AliRsnHistoDef_H
14
15 class TH1;
16 class TH1D;
17 class TH2D;
18
19 class AliRsnHistoDef : public TObject
20 {
21 public:
22
23     AliRsnHistoDef();
24     AliRsnHistoDef(Int_t n, Double_t min, Double_t max);
25     AliRsnHistoDef(Int_t nX, Double_t minX, Double_t maxX, Int_t nY, Double_t minY, Double_t maxY);
26     virtual ~AliRsnHistoDef() { }
27
28     Int_t    GetNDimensions() const {return fNDim;}
29     Int_t    GetNBins(Int_t axis=0) const {return (axis==0)?fNBins[0]:fNBins[1];}
30     Double_t GetMin(Int_t axis=0) const {return (axis==0)?fMin[0]:fMin[1];}
31     Double_t GetMax(Int_t axis=0) const {return (axis==0)?fMax[0]:fMax[1];}
32
33     void     SetBins(Int_t n, Double_t min, Double_t max);
34     void     SetBins(Int_t nX, Double_t minX, Double_t maxX, Int_t nY, Double_t minY, Double_t maxY);
35
36     TH1D*    Create1DHistogram(const char *name, const char *title);
37     TH2D*    Create2DHistogram(const char *name, const char *title);
38
39 private:
40
41     void  CheckEdges();
42
43     Int_t        fNDim;       // number of dimensions
44     Int_t        fNBins[2];   // number of bins
45     Double_t     fMin[2];     // lower edge
46     Double_t     fMax[2];     // upper edge
47     
48     // ROOT dictionary
49     ClassDef(AliRsnHistoDef, 1)
50 };
51
52 #endif