Gaudi Framework, version v20r2

Generated: 18 Jul 2008

IHistogramSvc.h

Go to the documentation of this file.
00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/IHistogramSvc.h,v 1.12 2006/11/15 15:53:21 hmd Exp $
00002 #ifndef GAUDIKERNEL_IHISTOGRAMSVC_H
00003 #define GAUDIKERNEL_IHISTOGRAMSVC_H
00004 
00005 
00006 // Include files
00007 #include "GaudiKernel/IDataProviderSvc.h"
00008 #include <string>
00009 #include <vector>
00010 #include <iostream>
00011 
00012 // Forward declarations
00013 class DataObject;
00014 
00015 // added to allow use of AIDA in applications
00016 // without prefix AIDA:: (as before)
00017 namespace AIDA {
00018   class IBaseHistogram;
00019   class IHistogram;
00020   class IHistogram1D;
00021   class IProfile1D;
00022   class IHistogram2D;
00023   class IProfile2D;
00024   class IHistogram3D;
00025   class IHistogramFactory;
00026   class IAnnotation;
00027   class IAxis;
00028 }
00029 
00030 using AIDA::IHistogramFactory;
00031 using AIDA::IBaseHistogram;
00032 using AIDA::IHistogram;
00033 using AIDA::IHistogram1D;
00034 using AIDA::IProfile1D;
00035 using AIDA::IHistogram2D;
00036 using AIDA::IProfile2D;
00037 using AIDA::IHistogram3D;
00038 using AIDA::IAxis;
00039 using AIDA::IAnnotation;
00040 
00041 // Declaration of the interface ID ( interface id, major version, minor version) 
00042 static const InterfaceID IID_IHistogramSvc(60, 3 , 0); 
00043 
00044 
00051 class IHistogramSvc : virtual public IDataProviderSvc  {
00052 
00053 public:
00054 
00056   static const InterfaceID& interfaceID() { return IID_IHistogramSvc; }
00058   virtual AIDA::IHistogramFactory* histogramFactory() = 0;
00059 
00076   // ==========================================================================
00077   // Book 1D histogram with fixed binning
00078   // ==========================================================================
00079 
00080   virtual AIDA::IHistogram1D* book( const std::string& fullPath,
00081                               const std::string& title,
00082                               int binsX, double lowX, double highX )          = 0;
00083   virtual AIDA::IHistogram1D* book( const std::string& dirPath,
00084                               const std::string& relPath,
00085                               const std::string& title,
00086                               int binsX, double lowX, double highX )          = 0;
00087   virtual AIDA::IHistogram1D* book( const std::string& dirPath,
00088                               int hID,
00089                               const std::string& title,
00090                               int binsX, double lowX, double highX )          = 0;
00091   virtual AIDA::IHistogram1D* book( DataObject* pParent,
00092                               const std::string& relPath,
00093                               const std::string& title,
00094                               int binsX, double lowX, double highX )          = 0;
00095   virtual AIDA::IHistogram1D* book( DataObject* pParent,
00096                               int hID,
00097                               const std::string& title,
00098                               int binsX, double lowX, double highX )          = 0;
00099 
00100   // ==========================================================================
00101   // Book 1D profile histogram with fixed binning
00102   // ==========================================================================
00103 
00104   virtual AIDA::IProfile1D* bookProf( const std::string& fullPath,
00105                             const std::string& title,
00106                             int binsX, double lowX, double highX )          = 0;
00107   virtual AIDA::IProfile1D* bookProf( const std::string& dirPath,
00108                             const std::string& relPath,
00109                             const std::string& title,
00110                             int binsX, double lowX, double highX )          = 0;
00111   virtual AIDA::IProfile1D* bookProf( const std::string& dirPath,
00112                             int hID,
00113                             const std::string& title,
00114                             int binsX, double lowX, double highX )          = 0;
00115   virtual AIDA::IProfile1D* bookProf( DataObject* pParent,
00116                             const std::string& relPath,
00117                             const std::string& title,
00118                             int binsX, double lowX, double highX )          = 0;
00119   virtual AIDA::IProfile1D* bookProf( DataObject* pParent,
00120                             int hID,
00121                             const std::string& title,
00122                             int binsX, double lowX, double highX )          = 0;
00123 
00124   // ==========================================================================
00125   // Book 1D histogram with variable binning
00126   // ==========================================================================
00127 
00128   virtual AIDA::IHistogram1D* book( const std::string& fullPath,
00129                               const std::string& title,
00130                               std::vector<double> edges )                   = 0;
00131   virtual AIDA::IHistogram1D* book( const std::string& dirPath,
00132                               const std::string& relPath,
00133                               const std::string& title,
00134                               std::vector<double> edges )                   = 0;
00135   virtual AIDA::IHistogram1D* book( const std::string& dirPath,
00136                               int hID,
00137                               const std::string& title,
00138                               std::vector<double> edges )                   = 0;
00139   virtual AIDA::IHistogram1D* book( DataObject* pParent,
00140                               const std::string& relPath,
00141                               const std::string& title,
00142                               std::vector<double> edges )                   = 0;
00143   virtual AIDA::IHistogram1D* book( DataObject* pParent,
00144                               int hID,
00145                               const std::string& title,
00146                               std::vector<double> edges )                   = 0;
00147 
00148   // ==========================================================================
00149   // Book 1D profile histogram with variable binning
00150   // ==========================================================================
00151 
00152   virtual AIDA::IProfile1D* bookProf( const std::string& fullPath,
00153                               const std::string& title,
00154                               std::vector<double> edges )                   = 0;
00155   virtual AIDA::IProfile1D* bookProf( const std::string& dirPath,
00156                               const std::string& relPath,
00157                               const std::string& title,
00158                               std::vector<double> edges )                   = 0;
00159   virtual AIDA::IProfile1D* bookProf( const std::string& dirPath,
00160                               int hID,
00161                               const std::string& title,
00162                               std::vector<double> edges )                   = 0;
00163   virtual AIDA::IProfile1D* bookProf( DataObject* pParent,
00164                               const std::string& relPath,
00165                               const std::string& title,
00166                               std::vector<double> edges )                   = 0;
00167   virtual AIDA::IProfile1D* bookProf( DataObject* pParent,
00168                               int hID,
00169                               const std::string& title,
00170                               std::vector<double> edges )                   = 0;
00171 
00172   // ==========================================================================
00173   // Book 2D histogram with fixed binning
00174   // ==========================================================================
00175 
00176   virtual AIDA::IHistogram2D* book( const std::string& fullPath,
00177                               const std::string& title,
00178                               int binsX, double lowX, double highX,
00179                               int binsY, double lowY, double highY )          = 0;
00180   virtual AIDA::IHistogram2D* book( const std::string& dirPath,
00181                               const std::string& relPath,
00182                               const std::string& title,
00183                               int binsX, double lowX, double highX,
00184                               int binsY, double lowY, double highY )          = 0;
00185   virtual AIDA::IHistogram2D* book( const std::string& dirPath,
00186                               int hID,
00187                               const std::string& title,
00188                               int binsX, double lowX, double highX,
00189                               int binsY, double lowY, double highY )          = 0;
00190   virtual AIDA::IHistogram2D* book( DataObject* pParent,
00191                               const std::string& relPath,
00192                               const std::string& title,
00193                               int binsX, double lowX, double highX,
00194                               int binsY, double lowY, double highY )          = 0;
00195   virtual AIDA::IHistogram2D* book( DataObject* pParent,
00196                               int hID,
00197                               const std::string& title,
00198                               int binsX, double lowX, double highX,
00199                               int binsY, double lowY, double highY )          = 0;
00200 
00201   // ==========================================================================
00202   // Book 2D profile histogram with fixed binning
00203   // ==========================================================================
00204 
00205   virtual AIDA::IProfile2D* bookProf( const std::string& fullPath,
00206                               const std::string& title,
00207                               int binsX, double lowX, double highX,
00208                               int binsY, double lowY, double highY )          = 0;
00209   virtual AIDA::IProfile2D* bookProf( const std::string& dirPath,
00210                               const std::string& relPath,
00211                               const std::string& title,
00212                               int binsX, double lowX, double highX,
00213                               int binsY, double lowY, double highY )          = 0;
00214   virtual AIDA::IProfile2D* bookProf( const std::string& dirPath,
00215                               int hID,
00216                               const std::string& title,
00217                               int binsX, double lowX, double highX,
00218                               int binsY, double lowY, double highY )          = 0;
00219   virtual AIDA::IProfile2D* bookProf( DataObject* pParent,
00220                               const std::string& relPath,
00221                               const std::string& title,
00222                               int binsX, double lowX, double highX,
00223                               int binsY, double lowY, double highY )          = 0;
00224   virtual AIDA::IProfile2D* bookProf( DataObject* pParent,
00225                               int hID,
00226                               const std::string& title,
00227                               int binsX, double lowX, double highX,
00228                               int binsY, double lowY, double highY )          = 0;
00229 
00230   // ==========================================================================
00231   // Book 2D histogram with variable binning
00232   // ==========================================================================
00233 
00234   virtual AIDA::IHistogram2D* book( const std::string& fullPath,
00235                               const std::string& title,
00236                               std::vector<double> edgesX,
00237                               std::vector<double> edgesY )                    = 0;
00238   virtual AIDA::IHistogram2D* book( const std::string& dirPath,
00239                               const std::string& relPath,
00240                               const std::string& title,
00241                               std::vector<double> edgesX,
00242                               std::vector<double> edgesY )                    = 0;
00243   virtual AIDA::IHistogram2D* book( const std::string& dirPath,
00244                               int hID,
00245                               const std::string& title,
00246                               std::vector<double> edgesX,
00247                               std::vector<double> edgesY )                    = 0;
00248   virtual AIDA::IHistogram2D* book( DataObject* pParent,
00249                               const std::string& relPath,
00250                               const std::string& title,
00251                               std::vector<double> edgesX,
00252                               std::vector<double> edgesY )                    = 0;
00253   virtual AIDA::IHistogram2D* book( DataObject* pParent,
00254                               int hID,
00255                               const std::string& title,
00256                               std::vector<double> edgesX,
00257                               std::vector<double> edgesY )                    = 0;
00258 
00259 
00260   // ==========================================================================
00261   // Book 2D profile histogram with variable binning
00262   // ==========================================================================
00263 
00264   virtual AIDA::IProfile2D* bookProf( const std::string& fullPath,
00265                               const std::string& title,
00266                               std::vector<double> edgesX,
00267                               std::vector<double> edgesY )                    = 0;
00268   virtual AIDA::IProfile2D* bookProf( const std::string& dirPath,
00269                               const std::string& relPath,
00270                               const std::string& title,
00271                               std::vector<double> edgesX,
00272                               std::vector<double> edgesY )                    = 0;
00273   virtual AIDA::IProfile2D* bookProf( const std::string& dirPath,
00274                               int hID,
00275                               const std::string& title,
00276                               std::vector<double> edgesX,
00277                               std::vector<double> edgesY )                    = 0;
00278   virtual AIDA::IProfile2D* bookProf( DataObject* pParent,
00279                               const std::string& relPath,
00280                               const std::string& title,
00281                               std::vector<double> edgesX,
00282                               std::vector<double> edgesY )                    = 0;
00283   virtual AIDA::IProfile2D* bookProf( DataObject* pParent,
00284                               int hID,
00285                               const std::string& title,
00286                               std::vector<double> edgesX,
00287                               std::vector<double> edgesY )                    = 0;
00288 
00289 
00290   // ==========================================================================
00291   // Book 3D histogram with fixed binning
00292   // ==========================================================================
00293 
00294   virtual AIDA::IHistogram3D* book( const std::string& fullPath,
00295                               const std::string& title,
00296                               int binsX, double lowX, double highX,
00297                               int binsY, double lowY, double highY,
00298                               int binsZ, double lowZ, double highZ )          = 0;
00299   virtual AIDA::IHistogram3D* book( const std::string& dirPath,
00300                               const std::string& relPath,
00301                               const std::string& title,
00302                               int binsX, double lowX, double highX,
00303                               int binsY, double lowY, double highY,
00304                               int binsZ, double lowZ, double highZ )          = 0;
00305   virtual AIDA::IHistogram3D* book( const std::string& dirPath,
00306                               int hID,
00307                               const std::string& title,
00308                               int binsX, double lowX, double highX,
00309                               int binsY, double lowY, double highY,
00310                               int binsZ, double lowZ, double highZ )          = 0;
00311   virtual AIDA::IHistogram3D* book( DataObject* pParent,
00312                               const std::string& relPath,
00313                               const std::string& title,
00314                               int binsX, double lowX, double highX,
00315                               int binsY, double lowY, double highY,
00316                               int binsZ, double lowZ, double highZ )          = 0;
00317   virtual AIDA::IHistogram3D* book( DataObject* pParent,
00318                               int hID,
00319                               const std::string& title,
00320                               int binsX, double lowX, double highX,
00321                               int binsY, double lowY, double highY,
00322                               int binsZ, double lowZ, double highZ )          = 0;
00323 
00324   // ==========================================================================
00325   // Book 3D histogram with variable binning
00326   // ==========================================================================
00327 
00328   virtual AIDA::IHistogram3D* book( const std::string& fullPath,
00329                               const std::string& title,
00330                               std::vector<double> edgesX,
00331                               std::vector<double> edgesY,
00332                               std::vector<double> edgesZ )                    = 0;
00333   virtual AIDA::IHistogram3D* book( const std::string& dirPath,
00334                               const std::string& relPath,
00335                               const std::string& title,
00336                               std::vector<double> edgesX,
00337                               std::vector<double> edgesY,
00338                               std::vector<double> edgesZ )                    = 0;
00339   virtual AIDA::IHistogram3D* book( const std::string& dirPath,
00340                               int hID,
00341                               const std::string& title,
00342                               std::vector<double> edgesX,
00343                               std::vector<double> edgesY,
00344                               std::vector<double> edgesZ )                    = 0;
00345   virtual AIDA::IHistogram3D* book( DataObject* pParent,
00346                               const std::string& relPath,
00347                               const std::string& title,
00348                               std::vector<double> edgesX,
00349                               std::vector<double> edgesY,
00350                               std::vector<double> edgesZ )                    = 0;
00351   virtual AIDA::IHistogram3D* book( DataObject* pParent,
00352                               int hID,
00353                               const std::string& title,
00354                               std::vector<double> edgesX,
00355                               std::vector<double> edgesY,
00356                               std::vector<double> edgesZ )                    = 0;
00357 
00358   // ==========================================================================
00359   // Register histogram with the data store
00360   // ==========================================================================
00361 
00362   virtual StatusCode registerObject( const std::string& fullPath,
00363                                      AIDA::IBaseHistogram* hObj )                     = 0;
00364   // ---------------------------
00365   virtual StatusCode registerObject( const std::string& parentPath,
00366                                      const std::string& objPath,
00367                                      AIDA::IBaseHistogram* hObj )                     = 0;
00368   // ---------------------------
00369   virtual StatusCode registerObject( const std::string& parentPath,
00370                                      int item, AIDA::IBaseHistogram* hObj )           = 0;
00371   // ---------------------------
00372   virtual StatusCode registerObject( DataObject* parentObj,
00373                                      const std::string& objPath,
00374                                      AIDA::IBaseHistogram* hObj )                     = 0;
00375   virtual StatusCode registerObject( AIDA::IBaseHistogram* parentObj,
00376                                      const std::string& objPath,
00377                                      AIDA::IBaseHistogram* hObj )                     = 0;
00378   // ---------------------------
00379   virtual StatusCode registerObject( DataObject* parentObj,
00380                                      int item,
00381                                      AIDA::IBaseHistogram* hObj )                     = 0;
00382   virtual StatusCode registerObject( AIDA::IBaseHistogram* parentObj,
00383                                      int item,
00384                                      AIDA::IBaseHistogram* hObj )                     = 0;
00385 
00386 
00387   // ==========================================================================
00388   // Unregister histogram from the data store
00389   // ==========================================================================
00390 
00391   virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj )                   = 0;
00392   // ---------------------------
00393   virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj,
00394                                        const std::string& objectPath )      = 0;
00395   // ---------------------------
00396   virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj,
00397                                        int item )                           = 0;
00398 
00399 
00400   // ==========================================================================
00401   // Retrieve histogram from data store
00402   // ==========================================================================
00403 
00404   virtual StatusCode retrieveObject( IRegistry* pDirectory,
00405                                      const std::string& path,
00406                                      AIDA::IHistogram1D*& h1dObj )                = 0;
00407   virtual StatusCode retrieveObject( IRegistry* pDirectory,
00408                                      const std::string& path,
00409                                      AIDA::IProfile1D*& h1dObj )                  = 0;
00410   virtual StatusCode retrieveObject( IRegistry* pDirectory,
00411                                      const std::string& path,
00412                                      AIDA::IHistogram2D*& h2dObj )                = 0;
00413   virtual StatusCode retrieveObject( IRegistry* pDirectory,
00414                                      const std::string& path,
00415                                      AIDA::IProfile2D*& h2dObj )                = 0;
00416   virtual StatusCode retrieveObject( IRegistry* pDirectory,
00417                                      const std::string& path,
00418                                      AIDA::IHistogram3D*& h3dObj )                = 0;
00419   // ---------------------------
00420   virtual StatusCode retrieveObject( const std::string& fullPath,
00421                                      AIDA::IHistogram1D*& h1dObj )                = 0;
00422   virtual StatusCode retrieveObject( const std::string& fullPath,
00423                                      AIDA::IProfile1D*& h1dObj )                  = 0;
00424   virtual StatusCode retrieveObject( const std::string& fullPath,
00425                                      AIDA::IHistogram2D*& h2dObj )                = 0;
00426   virtual StatusCode retrieveObject( const std::string& fullPath,
00427                                      AIDA::IProfile2D*& h2dObj )                = 0;
00428   virtual StatusCode retrieveObject( const std::string& fullPath,
00429                                      AIDA::IHistogram3D*& h3dObj )                = 0;
00430   // ---------------------------
00431   virtual StatusCode retrieveObject( const std::string& parentPath,
00432                                      const std::string& objPath,
00433                                      AIDA::IHistogram1D*& h1dObj )                = 0;
00434   virtual StatusCode retrieveObject( const std::string& parentPath,
00435                                      const std::string& objPath,
00436                                      AIDA::IProfile1D*& h1dObj )                  = 0;
00437   virtual StatusCode retrieveObject( const std::string& parentPath,
00438                                      const std::string& objPath,
00439                                      AIDA::IHistogram2D*& h2dObj )                = 0;
00440   virtual StatusCode retrieveObject( const std::string& parentPath,
00441                                      const std::string& objPath,
00442                                      AIDA::IProfile2D*& h2dObj )                = 0;
00443   virtual StatusCode retrieveObject( const std::string& parentPath,
00444                                      const std::string& objPath,
00445                                      AIDA::IHistogram3D*& h3dObj )                = 0;
00446   // ---------------------------
00447   virtual StatusCode retrieveObject( const std::string& parentPath,
00448                                      int item, 
00449                                      AIDA::IHistogram1D*& h1dObj )                = 0;
00450   virtual StatusCode retrieveObject( const std::string& parentPath,
00451                                      int item, 
00452                                      AIDA::IProfile1D*& h1dObj )                  = 0;
00453   virtual StatusCode retrieveObject( const std::string& parentPath,
00454                                      int item, 
00455                                      AIDA::IHistogram2D*& h2dObj )                = 0;
00456   virtual StatusCode retrieveObject( const std::string& parentPath,
00457                                      int item, 
00458                                      AIDA::IProfile2D*& h2dObj )                = 0;
00459   virtual StatusCode retrieveObject( const std::string& parentPath,
00460                                      int item, 
00461                                      AIDA::IHistogram3D*& h3dObj )                = 0;
00462   // ---------------------------
00463   virtual StatusCode retrieveObject( DataObject* parentObj,
00464                                      const std::string& objPath,
00465                                      AIDA::IHistogram1D*& h1dObj )                = 0;
00466   virtual StatusCode retrieveObject( DataObject* parentObj,
00467                                      const std::string& objPath,
00468                                      AIDA::IProfile1D*& h1dObj )                  = 0;
00469   virtual StatusCode retrieveObject( DataObject* parentObj,
00470                                      const std::string& objPath,
00471                                      AIDA::IHistogram2D*& h2dObj )                = 0;
00472   virtual StatusCode retrieveObject( DataObject* parentObj,
00473                                      const std::string& objPath,
00474                                      AIDA::IProfile2D*& h2dObj )                = 0;
00475   virtual StatusCode retrieveObject( DataObject* parentObj,
00476                                      const std::string& objPath,
00477                                      AIDA::IHistogram3D*& h3dObj )                = 0;
00478   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00479                                      const std::string& objPath,
00480                                      AIDA::IHistogram1D*& h1dObj )                = 0;
00481   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00482                                      const std::string& objPath,
00483                                      AIDA::IProfile1D*& h1dObj )                  = 0;
00484   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00485                                      const std::string& objPath,
00486                                      AIDA::IHistogram2D*& h2dObj )                = 0;
00487   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00488                                      const std::string& objPath,
00489                                      AIDA::IProfile2D*& h2dObj )                = 0;
00490   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00491                                      const std::string& objPath,
00492                                      AIDA::IHistogram3D*& h3dObj )                = 0;
00493   // ---------------------------
00494   virtual StatusCode retrieveObject( DataObject* parentObj,
00495                                      int item,
00496                                      AIDA::IHistogram1D*& h1dObj )                = 0;
00497   virtual StatusCode retrieveObject( DataObject* parentObj,
00498                                      int item,
00499                                      AIDA::IProfile1D*& h1dObj )                  = 0;
00500   virtual StatusCode retrieveObject( DataObject* parentObj,
00501                                      int item,
00502                                      AIDA::IHistogram2D*& h2dObj )                = 0;
00503   virtual StatusCode retrieveObject( DataObject* parentObj,
00504                                      int item,
00505                                      AIDA::IProfile2D*& h2dObj )                = 0;
00506   virtual StatusCode retrieveObject( DataObject* parentObj,
00507                                      int item,
00508                                      AIDA::IHistogram3D*& h3dObj )                = 0;
00509   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00510                                      int item,
00511                                      AIDA::IHistogram1D*& h1dObj )                = 0;
00512   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00513                                      int item,
00514                                      AIDA::IProfile1D*& h1dObj )                  = 0;
00515   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00516                                      int item,
00517                                      AIDA::IHistogram2D*& h2dObj )                = 0;
00518   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00519                                      int item,
00520                                      AIDA::IProfile2D*& h2dObj )                = 0;
00521   virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
00522                                      int item,
00523                                      AIDA::IHistogram3D*& h3dObj )                = 0;
00524 
00525 
00526   // ==========================================================================
00527   // Find histogram identified by its full path in the data store
00528   // ==========================================================================
00529 
00530   virtual StatusCode findObject( const std::string& fullPath,
00531                                  AIDA::IHistogram1D*& h1dObj )                    = 0;
00532   virtual StatusCode findObject( const std::string& fullPath,
00533                                  AIDA::IProfile1D*& h1dObj )                      = 0;
00534   virtual StatusCode findObject( const std::string& fullPath,
00535                                  AIDA::IHistogram2D*& h2dObj )                    = 0;
00536   virtual StatusCode findObject( const std::string& fullPath,
00537                                  AIDA::IProfile2D*& h2dObj )                    = 0;
00538   virtual StatusCode findObject( const std::string& fullPath,
00539                                  AIDA::IHistogram3D*& h3dObj )                    = 0;
00540   // ---------------------------
00541   virtual StatusCode findObject( IRegistry* pDirectory,
00542                                  const std::string& path,
00543                                  AIDA::IHistogram1D*& h1dObj )                    = 0;
00544   virtual StatusCode findObject( IRegistry* pDirectory,
00545                                  const std::string& path,
00546                                  AIDA::IProfile1D*& h1dObj )                      = 0;
00547   virtual StatusCode findObject( IRegistry* pDirectory,
00548                                  const std::string& path,
00549                                  AIDA::IHistogram2D*& h2dObj )                    = 0;
00550   virtual StatusCode findObject( IRegistry* pDirectory,
00551                                  const std::string& path,
00552                                  AIDA::IProfile2D*& h2dObj )                    = 0;
00553   virtual StatusCode findObject( IRegistry* pDirectory,
00554                                  const std::string& path,
00555                                  AIDA::IHistogram3D*& h2dObj )                    = 0;
00556   // ---------------------------
00557   virtual StatusCode findObject( const std::string& parentPath,
00558                                  const std::string& objPath,
00559                                  AIDA::IHistogram1D*& h1dObj )                    = 0;
00560   virtual StatusCode findObject( const std::string& parentPath,
00561                                  const std::string& objPath,
00562                                  AIDA::IProfile1D*& h1dObj )                      = 0;
00563   virtual StatusCode findObject( const std::string& parentPath,
00564                                  const std::string& objPath,
00565                                  AIDA::IHistogram2D*& h2dObj )                    = 0;
00566   virtual StatusCode findObject( const std::string& parentPath,
00567                                  const std::string& objPath,
00568                                  AIDA::IProfile2D*& h2dObj )                    = 0;
00569   virtual StatusCode findObject( const std::string& parentPath,
00570                                  const std::string& objPath,
00571                                  AIDA::IHistogram3D*& h3dObj )                    = 0;
00572   // ---------------------------
00573   virtual StatusCode findObject( const std::string& parentPath,
00574                                  int item,
00575                                  AIDA::IHistogram1D*& h1dObj )                    = 0;
00576   virtual StatusCode findObject( const std::string& parentPath,
00577                                  int item,
00578                                  AIDA::IProfile1D*& h1dObj )                      = 0;
00579   virtual StatusCode findObject( const std::string& parentPath,
00580                                  int item,
00581                                  AIDA::IHistogram2D*& h2dObj )                    = 0;
00582   virtual StatusCode findObject( const std::string& parentPath,
00583                                  int item,
00584                                  AIDA::IProfile2D*& h2dObj )                    = 0;
00585   virtual StatusCode findObject( const std::string& parentPath,
00586                                  int item,
00587                                  AIDA::IHistogram3D*& h3dObj )                    = 0;
00588   // ---------------------------
00589   virtual StatusCode findObject( DataObject* parentObj,
00590                                  const std::string& objPath,
00591                                  AIDA::IHistogram1D*& h1dObj )                    = 0;
00592   virtual StatusCode findObject( DataObject* parentObj,
00593                                  const std::string& objPath,
00594                                  AIDA::IProfile1D*& h1dObj )                      = 0;
00595   virtual StatusCode findObject( DataObject* parentObj,
00596                                  const std::string& objPath,
00597                                  AIDA::IHistogram2D*& h2dObj )                    = 0;
00598   virtual StatusCode findObject( DataObject* parentObj,
00599                                  const std::string& objPath,
00600                                  AIDA::IProfile2D*& h2dObj )                    = 0;
00601   virtual StatusCode findObject( DataObject* parentObj,
00602                                  const std::string& objPath,
00603                                  AIDA::IHistogram3D*& h3dObj )                    = 0;
00604   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00605                                  const std::string& objPath,
00606                                  AIDA::IHistogram1D*& h1dObj )                    = 0;
00607   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00608                                  const std::string& objPath,
00609                                  AIDA::IProfile1D*& h1dObj )                      = 0;
00610   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00611                                  const std::string& objPath,
00612                                  AIDA::IHistogram2D*& h2dObj )                    = 0;
00613   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00614                                  const std::string& objPath,
00615                                  AIDA::IProfile2D*& h2dObj )                    = 0;
00616   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00617                                  const std::string& objPath,
00618                                  AIDA::IHistogram3D*& h3dObj )                    = 0;
00619   // ---------------------------
00620   virtual StatusCode findObject( DataObject* parentObj,
00621                                  int item,
00622                                  AIDA::IHistogram1D*& h1dObj )                    = 0;
00623   virtual StatusCode findObject( DataObject* parentObj,
00624                                  int item,
00625                                  AIDA::IProfile1D*& h1dObj )                      = 0;
00626   virtual StatusCode findObject( DataObject* parentObj,
00627                                  int item,
00628                                  AIDA::IHistogram2D*& h2dObj )                    = 0;
00629   virtual StatusCode findObject( DataObject* parentObj,
00630                                  int item,
00631                                  AIDA::IProfile2D*& h2dObj )                    = 0;
00632   virtual StatusCode findObject( DataObject* parentObj,
00633                                  int item,
00634                                  AIDA::IHistogram3D*& h3dObj )                    = 0;
00635   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00636                                  int item,
00637                                  AIDA::IHistogram1D*& h1dObj )                    = 0;
00638   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00639                                  int item,
00640                                  AIDA::IProfile1D*& h1dObj )                      = 0;
00641   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00642                                  int item,
00643                                  AIDA::IHistogram2D*& h2dObj )                    = 0;
00644   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00645                                  int item,
00646                                  AIDA::IProfile2D*& h2dObj )                    = 0;
00647   virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
00648                                  int item,
00649                                  AIDA::IHistogram3D*& h3dObj )                    = 0;
00650 
00651 
00652   // ==========================================================================
00653   // ASCII output
00654   // ==========================================================================
00655   // --------------------------------------------------------------------------
00656   // Print functions (ASCII graphical representation)
00657   
00658   // Print (ASCII) the histogram into the output stream
00659   virtual std::ostream& print( AIDA::IBaseHistogram* h,
00660                                std::ostream& s = std::cout) const           = 0;
00661 
00662   // --------------------------------------------------------------------------
00663   // Write functions (ASCII table containing numbers e.g. bin height)
00664 
00666   virtual std::ostream& write( AIDA::IBaseHistogram* h,
00667                                std::ostream& s = std::cout) const           = 0;
00668 
00670   virtual int write( AIDA::IBaseHistogram* h, const char* file_name ) const       = 0;
00671 
00672   // ==========================================================================
00673   // Create all directories in a given full path
00674   // ==========================================================================
00675 
00676   virtual DataObject* createPath( const std::string& newPath )              = 0;
00677 
00683   virtual DataObject* createDirectory   (
00684     const std::string& parentDir, 
00685     const std::string& subDir  ) = 0;
00686 
00689   virtual StatusCode registerObject(const std::string& fullPath, DataObject* pObject) = 0;
00690   virtual StatusCode registerObject(const std::string& parentPath, const std::string& objectPath, DataObject* pObject) = 0;
00691   virtual StatusCode registerObject(const std::string& parentPath, int item, DataObject* pObject) = 0;
00692   virtual StatusCode registerObject(DataObject* parentObj, const std::string& objectPath, DataObject* pObject) = 0;
00693   virtual StatusCode registerObject(DataObject* parentObj, int item, DataObject* pObject) = 0;
00694   virtual StatusCode unregisterObject(const std::string& fullPath) = 0;
00695   virtual StatusCode unregisterObject(const std::string& parentPath, const std::string& objPath) = 0;
00696   virtual StatusCode unregisterObject(const std::string& parentPath, int item) = 0;
00697   virtual StatusCode unregisterObject(DataObject* pObject) = 0;
00698   virtual StatusCode unregisterObject(DataObject* pParent, const std::string& objPath) = 0;
00699   virtual StatusCode unregisterObject(DataObject* pParent, int item) = 0;
00700   virtual StatusCode retrieveObject(IRegistry* pDirectory, const std::string& path, DataObject*& pObject) = 0;
00701   virtual StatusCode retrieveObject(const std::string& fullPath, DataObject*& pObject) = 0;
00702   virtual StatusCode retrieveObject(const std::string& parentPath, const std::string& objectPath, DataObject*& pObject) = 0;
00703   virtual StatusCode retrieveObject(const std::string& parentPath, int item, DataObject*& pObject) = 0;
00704   virtual StatusCode retrieveObject(DataObject* parentObj, const std::string& objectPath, DataObject*& pObject) = 0;
00705   virtual StatusCode retrieveObject(DataObject* parentObj, int item, DataObject*& pObject) = 0;
00706   virtual StatusCode findObject(IRegistry* pDirectory, const std::string& path, DataObject*& pObject) = 0;
00707   virtual StatusCode findObject(const std::string& fullPath, DataObject*& pObject) = 0;
00708   virtual StatusCode findObject(const std::string& parentPath, const std::string& objectPath, DataObject*& pObject) = 0;
00709   virtual StatusCode findObject(const std::string& parentPath, int item, DataObject*& pObject) = 0;
00710   virtual StatusCode findObject(DataObject* pNode, const std::string& objectPath, DataObject*& pObject) = 0;
00711   virtual StatusCode findObject(DataObject* parentObj, int item, DataObject*& pObject) = 0;
00712 };
00713 
00714 
00715 #endif  // INTERFACES_IHISTOGRAMSVC_H

Generated at Fri Jul 18 11:59:20 2008 for Gaudi Framework, version v20r2 by Doxygen version 1.5.1 written by Dimitri van Heesch, © 1997-2004