81a5f6f7a3bec98fdeb020f831aa75d3c0df5688
[u/mrichter/AliRoot.git] / FMD / flow / AliFMDFlowAxis.h
1 // -*- mode: C++ -*-
2 /** @file 
3     @brief Declaration of an Axis in a Flow "histogram" */
4 #ifndef FLOW_AXIS_H
5 #define FLOW_AXIS_H
6 #ifndef ROOT_TObject
7 # include <TObject.h>
8 #endif
9
10 //______________________________________________________
11 /** @class AliFMDFlowAxis flow/AliFMDFlowAxis.h <flow/AliFMDFlowAxis.h>
12     @brief Axis object for the AliFMDFlowBinned1D and
13     AliFMDFlowBinned2D "histograms" of  objects of class AliFMDFlowBin. 
14     @ingroup c_binned 
15 */
16 class AliFMDFlowAxis : public TObject
17 {
18 public:
19   /** Constructor 
20       @param n    Number of bins 
21       @param bins Bin limits (@a n+1 entries) */
22   AliFMDFlowAxis(UShort_t n, Double_t* bins);
23   /** Constructor 
24       @param n    Number of bins 
25       @param min  Minimum 
26       @param max  Maximum */
27   AliFMDFlowAxis(UShort_t n, Double_t min, Double_t max);
28   /** Copy constructor 
29       @param other Object to copy from */
30   AliFMDFlowAxis(const AliFMDFlowAxis& other);
31   /** Assignement operator 
32       @param other Object to assign from */ 
33   AliFMDFlowAxis& operator=(const AliFMDFlowAxis& other);
34   /** Destructor */ 
35   virtual ~AliFMDFlowAxis();
36   /** Find a bin 
37       @param v Value to look for 
38       @return bin number of @a v */
39   Int_t FindBin(Double_t v) const;
40   /** Get the width of the @a i th bin 
41       @param i  Bin to get width of */
42   Double_t BinWidth(UShort_t i) const;
43   /** Get the center of a bin 
44       @param i Bin to get center of 
45       @return Center of the @a i th bin */
46   Double_t BinCenter(UShort_t i) const;
47   /** Get the lower limit of a bin 
48       @param i Bin to get the lower limit of 
49       @return lower limit of bin @a i */
50   Double_t BinLower(UShort_t i) const;
51   /** Get the upper limit of a bin 
52       @param i Bin to get the upper limit of 
53       @return upper limit of bin @a i */
54   Double_t BinUpper(UShort_t i) const;
55   /** Get a pointer to the bins 
56       @return pointer to the bins */ 
57   Double_t* Bins() const { return fBins; }
58   /** Get the number of bins */ 
59   UShort_t N() const { return fN; }
60 protected:
61   /** Number of bins */ 
62   UShort_t fN;
63   /** Borders of the bins */ 
64   Double_t* fBins; //[fN]
65   /** Define for ROOT I/O */
66   ClassDef(AliFMDFlowAxis,1);
67 };  
68
69
70 #endif
71 //
72 // EOF
73 //