File indexing completed on 2026-08-06 09:38:18
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LWH_AIHistogramFactory_H
0010 #define LWH_AIHistogramFactory_H
0011
0012
0013
0014
0015
0016 namespace AIDA {
0017
0018 class ICloud1D;
0019 class ICloud2D;
0020 class ICloud3D;
0021 class IBaseHistogram;
0022 class IHistogram1D;
0023 class IHistogram2D;
0024 class IHistogram3D;
0025 class IProfile1D;
0026 class IProfile2D;
0027
0028 class IHistogramFactory {
0029
0030 public:
0031
0032 virtual ~IHistogramFactory() {}
0033
0034 virtual bool destroy(IBaseHistogram * hist) = 0;
0035 virtual IHistogram1D *
0036 createHistogram1D(const std::string &, const std::string &,
0037 int, double, double, const std::string & = "") = 0;
0038 virtual IHistogram1D *
0039 createHistogram1D(const std::string &, int, double, double) = 0;
0040 virtual IHistogram1D *
0041 createHistogram1D(const std::string &, const std::string & ,
0042 const std::vector<double> &, const std::string & = "") = 0;
0043 virtual IHistogram1D *
0044 createCopy(const std::string &, const IHistogram1D &) = 0;
0045 virtual IHistogram1D * add(const std::string &,
0046 const IHistogram1D &, const IHistogram1D &) = 0;
0047 virtual IHistogram1D * subtract(const std::string &, const IHistogram1D &,
0048 const IHistogram1D &) = 0;
0049 virtual IHistogram1D * multiply(const std::string &, const IHistogram1D &,
0050 const IHistogram1D &) = 0;
0051 virtual IHistogram1D * divide(const std::string &, const IHistogram1D &,
0052 const IHistogram1D &) = 0;
0053
0054
0055 virtual IHistogram2D *
0056 createHistogram2D(const std::string & path, const std::string & title,
0057 int nx, double xlo, double xup,
0058 int ny, double ylo, double yup,
0059 const std::string & = "") = 0;
0060
0061 virtual IHistogram2D *
0062 createHistogram2D(const std::string & pathAndTitle,
0063 int nx, double xlo, double xup,
0064 int ny, double ylo, double yup) = 0;
0065
0066 virtual IHistogram2D *
0067 createHistogram2D(const std::string & path, const std::string & title,
0068 const std::vector<double> & xedges,
0069 const std::vector<double> & yedges,
0070 const std::string & = "") = 0;
0071
0072 virtual IHistogram2D *
0073 createCopy(const std::string & path, const IHistogram2D & hist) = 0;
0074
0075 virtual IHistogram2D * add(const std::string &,
0076 const IHistogram2D &, const IHistogram2D &) = 0;
0077 virtual IHistogram2D * subtract(const std::string &, const IHistogram2D &,
0078 const IHistogram2D &) = 0;
0079 virtual IHistogram2D * multiply(const std::string &, const IHistogram2D &,
0080 const IHistogram2D &) = 0;
0081 virtual IHistogram2D * divide(const std::string &, const IHistogram2D &,
0082 const IHistogram2D &) = 0;
0083
0084 virtual IHistogram1D *
0085 projectionX(const std::string &, const IHistogram2D &) = 0;
0086
0087 virtual IHistogram1D *
0088 projectionY(const std::string &, const IHistogram2D &) = 0;
0089
0090 virtual IHistogram1D *
0091 sliceX(const std::string &, const IHistogram2D &, int) = 0;
0092
0093 virtual IHistogram1D *
0094 sliceY(const std::string &, const IHistogram2D &, int) = 0;
0095
0096 virtual IHistogram1D *
0097 sliceX(const std::string &, const IHistogram2D &, int, int) = 0;
0098
0099 virtual IHistogram1D *
0100 sliceY(const std::string &, const IHistogram2D &, int, int) = 0;
0101
0102 };
0103
0104 }
0105
0106
0107
0108
0109
0110
0111
0112 #endif