00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef LWH_AIHistogramFactory_H
00010 #define LWH_AIHistogramFactory_H
00011
00012 #ifndef LWH_USING_AIDA
00013
00016 namespace AIDA {
00017
00018 class ICloud1D;
00019 class ICloud2D;
00020 class ICloud3D;
00021 class IBaseHistogram;
00022 class IHistogram1D;
00023 class IHistogram2D;
00024 class IHistogram3D;
00025 class IProfile1D;
00026 class IProfile2D;
00027
00028 class IHistogramFactory {
00029
00030 public:
00031
00032 virtual ~IHistogramFactory() {}
00033
00034 virtual bool destroy(IBaseHistogram * hist) = 0;
00035 virtual IHistogram1D *
00036 createHistogram1D(const std::string &, const std::string &,
00037 int, double, double, const std::string & = "") = 0;
00038 virtual IHistogram1D *
00039 createHistogram1D(const std::string &, int, double, double) = 0;
00040 virtual IHistogram1D *
00041 createHistogram1D(const std::string &, const std::string & ,
00042 const std::vector<double> &, const std::string & = "") = 0;
00043 virtual IHistogram1D *
00044 createCopy(const std::string &, const IHistogram1D &) = 0;
00045 virtual IHistogram1D * add(const std::string &,
00046 const IHistogram1D &, const IHistogram1D &) = 0;
00047 virtual IHistogram1D * subtract(const std::string &, const IHistogram1D &,
00048 const IHistogram1D &) = 0;
00049 virtual IHistogram1D * multiply(const std::string &, const IHistogram1D &,
00050 const IHistogram1D &) = 0;
00051 virtual IHistogram1D * divide(const std::string &, const IHistogram1D &,
00052 const IHistogram1D &) = 0;
00053
00054 };
00055
00056 }
00057
00060 #else
00061 #include "AIDA/IHistogramFactory.h"
00062 #endif
00063
00064 #endif