00001
00002
00003
00004
00005
00006
00007 #ifndef AIDA_IHISTOGRAM3D_H
00008 #define AIDA_IHISTOGRAM3D_H 1
00009
00010
00011
00012
00013
00014
00015 #include "AIDA/IHistogram.h"
00016
00017 namespace AIDA {
00018
00019 class IAxis;
00020
00028 class IHistogram3D : virtual public IHistogram {
00029
00030 public:
00032 virtual ~IHistogram3D() { ; }
00033
00044 virtual bool fill(double x, double y, double z, double weight = 1.) = 0;
00045
00054 virtual double binMeanX(int indexX, int indexY, int indexZ) const = 0;
00055
00064 virtual double binMeanY(int indexX, int indexY, int indexZ) const = 0;
00065
00074 virtual double binMeanZ(int indexX, int indexY, int indexZ) const = 0;
00075
00084 virtual int binEntries(int indexX, int indexY, int indexZ) const = 0;
00085
00093 virtual int binEntriesX(int index) const = 0;
00094
00102 virtual int binEntriesY(int index) const = 0;
00103
00111 virtual int binEntriesZ(int index) const = 0;
00112
00121 virtual double binHeight(int indexX, int indexY, int indexZ) const = 0;
00122
00130 virtual double binHeightX(int index) const = 0;
00131
00139 virtual double binHeightY(int index) const = 0;
00140
00148 virtual double binHeightZ(int index) const = 0;
00149
00158 virtual double binError(int indexX, int indexY, int indexZ) const = 0;
00159
00165 virtual double meanX() const = 0;
00166
00172 virtual double meanY() const = 0;
00173
00179 virtual double meanZ() const = 0;
00180
00186 virtual double rmsX() const = 0;
00187
00193 virtual double rmsY() const = 0;
00194
00200 virtual double rmsZ() const = 0;
00201
00207 virtual const IAxis & xAxis() const = 0;
00208
00214 virtual const IAxis & yAxis() const = 0;
00215
00221 virtual const IAxis & zAxis() const = 0;
00222
00231 virtual int coordToIndexX(double coord) const = 0;
00232
00241 virtual int coordToIndexY(double coord) const = 0;
00242
00251 virtual int coordToIndexZ(double coord) const = 0;
00252
00259 virtual bool add(const IHistogram3D & hist) = 0;
00260 };
00261 };
00262 #endif