![]() |
|
|
Generated: 8 Jan 2009 |
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 <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