9 #ifndef LWH_AIHistogramFactory_H 10 #define LWH_AIHistogramFactory_H 12 #ifndef LWH_USING_AIDA 28 class IHistogramFactory {
32 virtual ~IHistogramFactory() {}
34 virtual bool destroy(IBaseHistogram * hist) = 0;
35 virtual IHistogram1D *
36 createHistogram1D(
const std::string &,
const std::string &,
37 int,
double,
double,
const std::string & =
"") = 0;
38 virtual IHistogram1D *
39 createHistogram1D(
const std::string &,
int,
double,
double) = 0;
40 virtual IHistogram1D *
41 createHistogram1D(
const std::string &,
const std::string & ,
42 const std::vector<double> &,
const std::string & =
"") = 0;
43 virtual IHistogram1D *
44 createCopy(
const std::string &,
const IHistogram1D &) = 0;
45 virtual IHistogram1D * add(
const std::string &,
46 const IHistogram1D &,
const IHistogram1D &) = 0;
47 virtual IHistogram1D * subtract(
const std::string &,
const IHistogram1D &,
48 const IHistogram1D &) = 0;
49 virtual IHistogram1D * multiply(
const std::string &,
const IHistogram1D &,
50 const IHistogram1D &) = 0;
51 virtual IHistogram1D * divide(
const std::string &,
const IHistogram1D &,
52 const IHistogram1D &) = 0;
55 virtual IHistogram2D *
56 createHistogram2D(
const std::string & path,
const std::string & title,
57 int nx,
double xlo,
double xup,
58 int ny,
double ylo,
double yup,
59 const std::string & =
"") = 0;
61 virtual IHistogram2D *
62 createHistogram2D(
const std::string & pathAndTitle,
63 int nx,
double xlo,
double xup,
64 int ny,
double ylo,
double yup) = 0;
66 virtual IHistogram2D *
67 createHistogram2D(
const std::string & path,
const std::string & title,
68 const std::vector<double> & xedges,
69 const std::vector<double> & yedges,
70 const std::string & =
"") = 0;
72 virtual IHistogram2D *
73 createCopy(
const std::string & path,
const IHistogram2D & hist) = 0;
75 virtual IHistogram2D * add(
const std::string &,
76 const IHistogram2D &,
const IHistogram2D &) = 0;
77 virtual IHistogram2D * subtract(
const std::string &,
const IHistogram2D &,
78 const IHistogram2D &) = 0;
79 virtual IHistogram2D * multiply(
const std::string &,
const IHistogram2D &,
80 const IHistogram2D &) = 0;
81 virtual IHistogram2D * divide(
const std::string &,
const IHistogram2D &,
82 const IHistogram2D &) = 0;
84 virtual IHistogram1D *
85 projectionX(
const std::string &,
const IHistogram2D &) = 0;
87 virtual IHistogram1D *
88 projectionY(
const std::string &,
const IHistogram2D &) = 0;
90 virtual IHistogram1D *
91 sliceX(
const std::string &,
const IHistogram2D &,
int) = 0;
93 virtual IHistogram1D *
94 sliceY(
const std::string &,
const IHistogram2D &,
int) = 0;
96 virtual IHistogram1D *
97 sliceX(
const std::string &,
const IHistogram2D &,
int,
int) = 0;
99 virtual IHistogram1D *
100 sliceY(
const std::string &,
const IHistogram2D &,
int,
int) = 0;
109 #include "AIDA/IHistogramFactory.h"