00001
00002
00003
00004
00005
00006
00007 #ifndef AIDA_ICLOUD2D_H
00008 #define AIDA_ICLOUD2D_H 1
00009
00010
00011
00012
00013
00014
00015 #include <vector>
00016
00017 #include "AIDA/ICloud.h"
00018
00019 namespace AIDA {
00020
00021 class IHistogram2D;
00022
00030 class ICloud2D : virtual public ICloud {
00031
00032 public:
00034 virtual ~ICloud2D() { ; }
00035
00045 virtual bool fill(double x, double y, double weight = 1.) = 0;
00046
00052 virtual double lowerEdgeX() const = 0;
00053
00059 virtual double lowerEdgeY() const = 0;
00060
00066 virtual double upperEdgeX() const = 0;
00067
00073 virtual double upperEdgeY() const = 0;
00074
00092 virtual double valueX(int index) const = 0;
00093
00111 virtual double valueY(int index) const = 0;
00112
00130 virtual double weight(int index) const = 0;
00131
00137 virtual double meanX() const = 0;
00138
00144 virtual double meanY() const = 0;
00145
00151 virtual double rmsX() const = 0;
00152
00158 virtual double rmsY() const = 0;
00159
00172 virtual bool convert(int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0;
00173
00182 virtual bool convert(const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY) = 0;
00183
00190 virtual const IHistogram2D & histogram() const = 0;
00191
00198 virtual bool fillHistogram(IHistogram2D & hist) const = 0;
00199 };
00200 };
00201 #endif