Anaphe Home Page Reference Documentation

Main Page     Namespaces     Classes     Source Code    

IHistoFactory.h

Go to the documentation of this file.
00001 // 
00002 // Copyright (C) CERN, Geneva 
00003 // 
00004 // header file for class IHistoFactory 
00005 // Created by: Andreas Pfeiffer  at Thu Jan 13 16:17:26 2000
00006 // 
00007 // Last update: 
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() { /* nop */; }
00036 
00037     // --------------------------------------------------------------------------------
00038 
00039   public: // need to re-declare those, as they are overloaded ...
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 /* def AIDA_DONT_USE_STD */
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 /* def AIDA_DONT_USE_STD */
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 }; // end namespace Anaphe
00138 #endif
00139 
00140 extern "C" {
00141   Anaphe::IHistoFactory * createIHistoFactory();
00142 }
00143 
00144 #endif /* INTERFACE_IHISTOFACTORY_H */ 


Anaphe documentation generated by Doxygen (www.doxygen.org)