00001
00002 #ifndef INTERFACES_IHISTOGRAM2D_H
00003 #define INTERFACES_IHISTOGRAM2D_H 1
00004
00005
00006
00007 #include "Interfaces/IHistogram.h"
00008
00009 #ifndef ANAPHE_NO_NAMESPACE
00010 namespace Anaphe {
00011 #endif
00012
00013
00014 class IHistogram1D;
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 class IHistogram2D : virtual public IHistogram {
00037
00038 public:
00039 virtual ~IHistogram2D() { }
00040
00041 public:
00043 virtual void fill( double x, double y, double weight = 1 ) = 0;
00045 virtual int binEntries( int indexX, int indexY ) const = 0;
00048 virtual int binEntriesX( int indexX ) const = 0;
00050 virtual int binEntriesY( int indexY ) const = 0;
00052 virtual double binHeight( int indexX, int indexY ) const = 0;
00055 virtual double binHeightX( int indexX ) const = 0;
00057 virtual double binHeightY( int indexY ) const = 0;
00059 virtual double binError( int indexX, int indexY ) const = 0;
00062 virtual double meanX() const = 0;
00063 virtual double meanY() const = 0;
00066 virtual double rmsX() const = 0;
00067 virtual double rmsY() const = 0;
00069 virtual double minBinHeight() const = 0;
00071 virtual int minBinX() const = 0;
00073 virtual int minBinY() const = 0;
00075 virtual double maxBinHeight() const = 0;
00077 virtual int maxBinX() const = 0;
00079 virtual int maxBinY() const = 0;
00081 virtual IAxis* xAxis() const = 0;
00083 virtual IAxis* yAxis() const = 0;
00085 virtual int coordToIndexX( double coordX ) const = 0;
00087 virtual int coordToIndexY( double coordY ) const = 0;
00090 virtual IHistogram1D* projectionX() const = 0;
00093 virtual IHistogram1D* projectionY() const = 0;
00096 virtual IHistogram1D* sliceX( int indexY ) const = 0;
00099 virtual IHistogram1D* sliceY( int indexX ) const = 0;
00101 virtual IHistogram1D* sliceX( int indexY1, int indexY2 ) const = 0;
00103 virtual IHistogram1D* sliceY( int indexX1, int indexX2 ) const = 0;
00104
00105 };
00106
00107
00108 #ifndef ANAPHE_NO_NAMESPACE
00109 };
00110 #endif
00111
00112 #endif // INTERFACES_IHISTOGRAM2D_H
00113