00001
00002 #ifndef GAUDIKERNEL_IAXIS_H
00003 #define GAUDIKERNEL_IAXIS_H
00004
00005
00006 #include <vector>
00007
00022 class IAxis {
00023
00024 public:
00025
00029
00031 virtual const std::vector<double>& edges() const = 0;
00032
00034 virtual double lowerEdge() const = 0;
00035
00037 virtual double upperEdge() const = 0;
00038
00039
00043
00046
00048 virtual int bins() const = 0;
00049
00052
00054 virtual double binLowerEdge( int index ) const = 0;
00055
00057 virtual double binUpperEdge( int index ) const = 0;
00058
00061
00063 virtual double binWidth( int index ) const = 0;
00064
00067
00069 virtual double binCentre( int index ) const = 0;
00070
00071
00075
00078 virtual int coordToIndex( double coord ) const = 0;
00079
00080 };
00081
00082
00083 #endif // INTERFACES_IAXIS_H