00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef AIDAHISTOGRAMFACTORY_H
00013 #define AIDAHISTOGRAMFACTORY_H
00014
00015
00016
00017 #include <string>
00018 #include <list>
00019 #include "Interfaces/IHistogramFactory.h"
00020
00021
00022
00023
00024 #ifdef AIDA_STD
00025 # undef AIDA_STD
00026 #endif
00027 #ifdef AIDA_NOT_USE_STD
00028 # define AIDA_STD
00029 #else
00030 # define AIDA_STD std
00031 #endif
00032
00033
00034 namespace Anaphe {
00035
00036 class IHistogram;
00037 class IHistogram1D;
00038 class IHistogram2D;
00039
00040 namespace AIDA_HBook {
00041
00042 class AIDAHistogramFactory : virtual public Anaphe::IHistogramFactory
00043 {
00044 public:
00045 AIDAHistogramFactory();
00046 virtual ~AIDAHistogramFactory();
00047
00048 public:
00049 virtual IHistogram1D* create1D(AIDA_STD::string title="",
00050 int nBinsx = 10, double xmin = 0.0, double xmax = 10.0,
00051 const int ID = 0);
00052 virtual IHistogram2D* create2D(AIDA_STD::string title="",
00053 int nBinsx = 10, double xmin = 0.0, double xmax = 10.0,
00054 int nBinsy = 10, double ymin = 0.0, double ymax = 10.0,
00055 const int ID = 0);
00056 virtual void unregister(IHistogram*);
00057 virtual void destroy(IHistogram*);
00058
00059 private:
00060 AIDA_STD::string intToString(int);
00061
00062 private:
00063 AIDA_STD::list<IHistogram*> hlist;
00064
00065 };
00066
00067
00068 }
00069 }
00070
00071 extern "C" {
00072 Anaphe::IHistogramFactory* createIHistogramFactory();
00073 }
00074
00075
00076 #endif
00077