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