| # Gaudi Framework, version v20r2
Generated: 18 Jul 2008

- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages

- Search for |

- File List
- File Members

# 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