00001
00002
00003
00004
00005
00006
00007 #ifndef AIDA_ICLOUD3D_H
00008 #define AIDA_ICLOUD3D_H 1
00009
00010
00011
00012
00013
00014
00015 #include <vector>
00016
00017 #include "AIDA/ICloud.h"
00018
00019 namespace AIDA {
00020
00021 class IHistogram3D;
00022
00030 class ICloud3D : virtual public ICloud {
00031
00032 public:
00034 virtual ~ICloud3D() { ; }
00035
00046 virtual bool fill(double x, double y, double z, double weight = 1.) = 0;
00047
00053 virtual double lowerEdgeX() const = 0;
00054
00060 virtual double lowerEdgeY() const = 0;
00061
00067 virtual double lowerEdgeZ() const = 0;
00068
00074 virtual double upperEdgeX() const = 0;
00075
00081 virtual double upperEdgeY() const = 0;
00082
00088 virtual double upperEdgeZ() const = 0;
00089
00107 virtual double valueX(int index) const = 0;
00108
00126 virtual double valueY(int index) const = 0;
00127
00145 virtual double valueZ(int index) const = 0;
00146
00164 virtual double weight(int index) const = 0;
00165
00171 virtual double meanX() const = 0;
00172
00178 virtual double meanY() const = 0;
00179
00185 virtual double meanZ() const = 0;
00186
00192 virtual double rmsX() const = 0;
00193
00199 virtual double rmsY() const = 0;
00200
00206 virtual double rmsZ() const = 0;
00207
00223 virtual bool convert(int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ) = 0;
00224
00234 virtual bool convert(const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY, const std::vector<double> & binEdgesZ) = 0;
00235
00242 virtual const IHistogram3D & histogram() const = 0;
00243
00250 virtual bool fillHistogram(IHistogram3D & hist) const = 0;
00251 };
00252 };
00253 #endif