00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef INTERFACE_IHISTOFACTORY_H
00011 #define INTERFACE_IHISTOFACTORY_H 1
00012
00013 #include <vector>
00014
00015 #include "Interfaces/IHistogramFactory.h"
00016
00017 #ifndef ANAPHE_NO_NAMESPACE
00018 namespace Anaphe {
00019 #endif
00020
00021 class HistoParameters1D;
00022 class HistoParameters2D;
00023
00024 class IHistogram1D;
00025 class IHistogram2D;
00026 class IHistogram3D;
00027
00028 class IProfileHistogram;
00029
00030 class IHistoManager;
00031
00032 class IHistoFactory : virtual public IHistogramFactory {
00033
00034 public:
00035 virtual ~IHistoFactory() { ; }
00036
00037
00038
00039 public:
00040 virtual IHistogram1D * create1D( std::string title
00041 , int nBinsx, double xmin, double xmax
00042 , const int ID = 0) = 0;
00043
00044 virtual IHistogram2D * create2D(std::string title
00045 , int nBinsx, double xmin, double xmax
00046 , int nBinsy, double ymin, double ymax
00047 , const int ID = 0) = 0;
00048
00049
00050
00051 public:
00053 virtual IHistogram1D * create1D( const HistoParameters1D & par) = 0;
00054 virtual IHistogram2D * create2D( const HistoParameters2D & par) = 0;
00055
00056
00057
00058 public:
00060 virtual IHistogram1D * create1D(const char *label, const char *title,
00061 int nBinsx, double xmin, double xmax
00062 , const char *options = 0 ) = 0;
00063
00064 virtual IHistogram2D * create2D(const char *label, const char *title
00065 , int nBinsx, double xmin, double xmax
00066 , int nBinsy, double ymin, double ymax
00067 , const char *options = 0 ) = 0;
00068
00069 virtual IHistogram3D * create3D(const char *label, const char *title
00070 , int nBinsx, double xmin, double xmax
00071 , int nBinsy, double ymin, double ymax
00072 , int nBinsz, double zmin, double zmax
00073 , const char *options = 0 ) = 0;
00074
00076 virtual IProfileHistogram * createProfile(const char *label, const char *title
00077 , int nBinsx, double xmin, double xmax
00078 , const char *options = 0 ) = 0;
00079
00081 virtual IHistogram1D * dynamic1D(const char * label, const char * title, const int nBinsX) = 0;
00082
00083 #ifdef AIDA_DONT_USE_STD
00084
00085 virtual IHistogram1D * create1DVar(const char *label, const char *title,
00086 vector<float> binEdge,
00087 const char * options = 0 ) = 0;
00088
00089 virtual IHistogram2D * create2DVar(const char *label, const char *title,
00090 vector<float> binEdgeX,
00091 vector<float> binEdgeY,
00092 const char * options = 0 ) = 0;
00093 #else
00094
00095 virtual IHistogram1D * create1DVar(const char *label, const char *title,
00096 std::vector<float> binEdge,
00097 const char * options = 0 ) = 0;
00098
00099 virtual IHistogram2D * create2DVar(const char *label, const char *title,
00100 std::vector<float> binEdgeX,
00101 std::vector<float> binEdgeY,
00102 const char * options = 0 ) = 0;
00103 #endif
00104
00105
00107 virtual void selectStore(const char * store, const char * topDir=0) = 0;
00108
00110 virtual IHistogram1D * load1D(const char * label) = 0;
00111 virtual IHistogram2D * load2D(const char * label) = 0;
00112 virtual IHistogram3D * load3D(const char * label) = 0;
00113 virtual IProfileHistogram * loadProf(const char * label) = 0;
00114
00116 virtual void scratchHisto(const char * label) = 0;
00117
00119 virtual bool store1D(IHistogram1D * h) = 0;
00120 virtual bool store2D(IHistogram2D * h) = 0;
00121 virtual bool store3D(IHistogram3D * h) = 0;
00122 virtual bool storeProf(IProfileHistogram * h) = 0;
00123
00125 virtual void mkdir(const char * label) = 0;
00126 virtual void rmdir(const char * label) = 0;
00127 virtual void cd (const char * label) = 0;
00128 virtual void ls () const = 0;
00129 virtual void pwd () const = 0;
00130
00132 virtual void setManager(IHistoManager * hm) = 0;
00133
00134 };
00135
00136 #ifndef ANAPHE_NO_NAMESPACE
00137 };
00138 #endif
00139
00140 extern "C" {
00141 Anaphe::IHistoFactory * createIHistoFactory();
00142 }
00143
00144 #endif