00001
00002 #ifndef ANAPHE_VARIABLEBINAXIS
00003 #define ANAPHE_VARIABLEBINAXIS 1
00004
00005
00006
00007 #include "AIDA/IAxis.h"
00008 #include <vector>
00009 #include <map>
00010
00011 namespace Anaphe {
00012 namespace AIDA_Histogram_native {
00013
00015
00016 class VariableBinAxis : virtual public AIDA::IAxis
00017 {
00018 public:
00020 VariableBinAxis( const std::vector< double> & edges );
00022 ~VariableBinAxis() {;}
00023
00025 bool isFixedBinning() const;
00026 double lowerEdge() const;
00027 double upperEdge() const;
00028 int bins() const;
00029 double binLowerEdge( int index ) const;
00030 double binUpperEdge( int index ) const;
00031 double binWidth( int index ) const;
00032 int coordToIndex( double coord ) const;
00033
00034 private:
00036 std::vector< double > m_binEdges;
00038 std::map< double, int > m_binUpperEdges;
00039 };
00040
00041 }
00042 }
00043
00044 #include "VariableBinAxis.inl"
00045
00046 #endif