00001 #ifndef INTERFACES_IHISTOGRAM3D_H
00002 #define INTERFACES_IHISTOGRAM3D_H 1
00003
00004
00005
00006 #include "Interfaces/IHistogram.h"
00007
00008 #ifndef ANAPHE_NO_NAMESPACE
00009 namespace Anaphe {
00010 #endif
00011
00012
00013 class IHistogram1D;
00014 class IHistogram2D;
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 class IHistogram3D : virtual public IHistogram {
00041
00042 public:
00043 virtual ~IHistogram3D() { }
00045 virtual void fill( double x, double y, double z, double weight = 1. ) = 0;
00047 virtual int binEntries( int indexX, int indexY, int indexZ ) const = 0;
00048
00049
00050
00051
00052
00054 virtual double binHeight( int indexX, int indexY, int indexZ ) const = 0;
00056 virtual double binError( int indexX, int indexY, int indexZ ) const = 0;
00059 virtual double meanX() const = 0;
00060 virtual double meanY() const = 0;
00061 virtual double meanZ() const = 0;
00064 virtual double rmsX() const = 0;
00065 virtual double rmsY() const = 0;
00066 virtual double rmsZ() const = 0;
00068 virtual double minBinHeight() const = 0;
00070 virtual int minBinX() const = 0;
00071 virtual int minBinY() const = 0;
00072 virtual int minBinZ() const = 0;
00074 virtual double maxBinHeight() const = 0;
00076 virtual int maxBinX() const = 0;
00077 virtual int maxBinY() const = 0;
00078 virtual int maxBinZ() const = 0;
00080 virtual IAxis* xAxis() const = 0;
00081 virtual IAxis* yAxis() const = 0;
00082 virtual IAxis* zAxis() const = 0;
00083 virtual int coordToIndexX( double coordX ) const = 0;
00084 virtual int coordToIndexY( double coordY ) const = 0;
00085 virtual int coordToIndexZ( double coordZ ) const = 0;
00086
00087
00088
00089
00090
00091
00092
00097 virtual IHistogram2D* projectionXY()const = 0;
00102 virtual IHistogram2D* projectionXZ() const = 0;
00107 virtual IHistogram2D* projectionYZ() const = 0;
00108
00114 virtual IHistogram2D* sliceXY( int indexZ1, int indexZ2 ) const = 0;
00115
00119 virtual IHistogram2D* sliceXZ( int indexY1, int indexY2 ) const = 0;
00120
00124 virtual IHistogram2D* sliceYZ( int indexX1, int indexX2 ) const = 0;
00125
00126 };
00127
00128
00129 #ifndef ANAPHE_NO_NAMESPACE
00130 };
00131 #endif
00132
00133 #endif // INTERFACES_IHISTOGRAM3D_H
00134