| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

IHistogramSvc.h

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

Generated on Mon Apr 11 19:56:57 2011 for GaudiKernel by doxygen 1.4.7