00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef INTERFACE_IHISTOGRAMMANAGER_H
00012 #define INTERFACE_IHISTOGRAMMANAGER_H 1
00013
00014 #include <iostream>
00015
00016 #ifndef ANAPHE_NO_NAMESPACE
00017 namespace Anaphe {
00018 #endif
00019
00020 class IHistogram1D;
00021 class IHistogram2D;
00022 class IHistoFactory;
00023
00024 class IHistogramManager {
00025
00026 public:
00027 virtual ~IHistogramManager() { ; }
00028
00029 public:
00030 virtual bool register1D(IHistogram1D *) = 0;
00031 virtual bool register2D(IHistogram2D *) = 0;
00032
00033 virtual IHistogram1D * retrieveHisto1D(int ) = 0;
00034 virtual IHistogram2D * retrieveHisto2D(int ) = 0;
00035
00036 virtual void deleteHisto(const char * label) = 0;
00037
00038 #ifdef AIDA_DONT_USE_STD
00039 virtual void list( ostream& os = cout) = 0;
00040 #else
00041 virtual void list(std::ostream& os = std::cout) = 0;
00042 #endif
00043
00044 virtual void disableOverwrite() = 0;
00045 virtual void enableOverwrite () = 0;
00046 virtual void disableWarnOverwrite() = 0;
00047 virtual void enableWarnOverwrite () = 0;
00048
00049 public:
00050 virtual void setFactory(IHistoFactory *f) = 0;
00051
00052 virtual IHistogram1D * create1D(std::string title, int nBinsx, double xmin, double xmax, int ID) = 0;
00053 virtual IHistogram2D * create2D(std::string title
00054 , int nBinsx, double xmin, double xmax
00055 , int nBinsy, double ymin, double ymax, int ID) = 0;
00056
00057 };
00058
00059 #ifndef ANAPHE_NO_NAMESPACE
00060 };
00061 #endif
00062
00063 extern "C" {
00064 Anaphe::IHistogramManager * createIHistogramManager();
00065 }
00066
00067 #endif