Gaudi Framework, version v23r4

Home   Generated: Mon Sep 17 2012

IHistogramSvc.h

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

Generated at Mon Sep 17 2012 13:49:30 for Gaudi Framework, version v23r4 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004