| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

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

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IHistogramSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IHISTOGRAMSVC_H
2 #define GAUDIKERNEL_IHISTOGRAMSVC_H
3
4
5 // Include files
6 #include "GaudiKernel/IDataProviderSvc.h"
7 #include "GaudiKernel/IService.h"
8 #include <string>
9 #include <vector>
10 #include <iostream>
11
12 // Forward declarations
13 class DataObject;
14
15 // added to allow use of AIDA in applications
16 // without prefix AIDA:: (as before)
17 namespace AIDA {
18 class IBaseHistogram;
19 class IHistogram;
20 class IHistogram1D;
21 class IProfile1D;
22 class IHistogram2D;
23 class IProfile2D;
24 class IHistogram3D;
25 class IHistogramFactory;
26 class IAnnotation;
27 class IAxis;
28 }
29
30 using AIDA::IHistogramFactory;
31 using AIDA::IBaseHistogram;
32 using AIDA::IHistogram;
33 using AIDA::IHistogram1D;
34 using AIDA::IProfile1D;
35 using AIDA::IHistogram2D;
36 using AIDA::IProfile2D;
37 using AIDA::IHistogram3D;
38 using AIDA::IAxis;
39 using AIDA::IAnnotation;
40
47 class GAUDI_API IHistogramSvc: virtual public IDataProviderSvc
48 {
49 public:
51 DeclareInterfaceID(IHistogramSvc,5,0);
52
54 virtual AIDA::IHistogramFactory* histogramFactory() = 0;
55
72 // ==========================================================================
73 // Book 1D histogram with fixed binning
74 // ==========================================================================
75
76 virtual AIDA::IHistogram1D* book( const std::string& fullPath,
77 const std::string& title,
78 int binsX, double lowX, double highX ) = 0;
79 virtual AIDA::IHistogram1D* book( const std::string& dirPath,
80 const std::string& relPath,
81 const std::string& title,
82 int binsX, double lowX, double highX ) = 0;
83 virtual AIDA::IHistogram1D* book( const std::string& dirPath,
84 int hID,
85 const std::string& title,
86 int binsX, double lowX, double highX ) = 0;
87 virtual AIDA::IHistogram1D* book( DataObject* pParent,
88 const std::string& relPath,
89 const std::string& title,
90 int binsX, double lowX, double highX ) = 0;
91 virtual AIDA::IHistogram1D* book( DataObject* pParent,
92 int hID,
93 const std::string& title,
94 int binsX, double lowX, double highX ) = 0;
95
96 // ==========================================================================
97 // Book 1D profile histogram with fixed binning
98 // ==========================================================================
99
100 virtual AIDA::IProfile1D* bookProf
101 ( const std::string& fullPath,
102 const std::string& title,
103 int binsX, double lowX, double highX ,
104 const std::string& opt = "" ) = 0;
105 virtual AIDA::IProfile1D* bookProf
106 ( const std::string& dirPath,
107 const std::string& relPath,
108 const std::string& title,
109 int binsX, double lowX, double highX ,
110 const std::string& opt = "" ) = 0;
111 virtual AIDA::IProfile1D* bookProf
112 ( const std::string& dirPath,
113 int hID,
114 const std::string& title,
115 int binsX, double lowX, double highX ,
116 const std::string& opt = "" ) = 0;
117 virtual AIDA::IProfile1D* bookProf
118 ( DataObject* pParent,
119 const std::string& relPath,
120 const std::string& title,
121 int binsX, double lowX, double highX ,
122 const std::string& opt = "" ) = 0;
123 virtual AIDA::IProfile1D* bookProf
124 ( DataObject* pParent,
125 int hID,
126 const std::string& title,
127 int binsX, double lowX, double highX ,
128 const std::string& opt = "" ) = 0;
129
130 // ==========================================================================
131 // Book 1D profile histogram with fixed binning & Y-limits
132 // ==========================================================================
133
134 virtual AIDA::IProfile1D* bookProf
135 ( const std::string& fullPath ,
136 const std::string& title ,
137 int binsX ,
138 double lowX , double highX ,
139 double lowY , double highY ,
140 const std::string& opt = "s" ) = 0;
141 virtual AIDA::IProfile1D* bookProf
142 ( const std::string& dirPath ,
143 const std::string& relPath ,
144 const std::string& title ,
145 int binsX ,
146 double lowX , double highX ,
147 double lowY , double highY ,
148 const std::string& opt = "s" ) = 0;
149 virtual AIDA::IProfile1D* bookProf
150 ( const std::string& dirPath ,
151 int hID ,
152 const std::string& title ,
153 int binsX ,
154 double lowX , double highX ,
155 double lowY , double highY ,
156 const std::string& opt = "s" ) = 0;
157 virtual AIDA::IProfile1D* bookProf
158 ( DataObject* pParent ,
159 const std::string& relPath ,
160 const std::string& title ,
161 int binsX ,
162 double lowX , double highX ,
163 double lowY , double highY ,
164 const std::string& opt = "s" ) = 0;
165 virtual AIDA::IProfile1D* bookProf
166 ( DataObject* pParent ,
167 int hID ,
168 const std::string& title ,
169 int binsX ,
170 double lowX , double highX ,
171 double lowY , double highY ,
172 const std::string& opt = "s" ) = 0;
173
174 // ==========================================================================
175 // Book 1D histogram with variable binning
176 // ==========================================================================
177
178 virtual AIDA::IHistogram1D* book( const std::string& fullPath,
179 const std::string& title,
180 std::vector<double> edges ) = 0;
181 virtual AIDA::IHistogram1D* book( const std::string& dirPath,
182 const std::string& relPath,
183 const std::string& title,
184 std::vector<double> edges ) = 0;
185 virtual AIDA::IHistogram1D* book( const std::string& dirPath,
186 int hID,
187 const std::string& title,
188 std::vector<double> edges ) = 0;
189 virtual AIDA::IHistogram1D* book( DataObject* pParent,
190 const std::string& relPath,
191 const std::string& title,
192 std::vector<double> edges ) = 0;
193 virtual AIDA::IHistogram1D* book( DataObject* pParent,
194 int hID,
195 const std::string& title,
196 std::vector<double> edges ) = 0;
197
198 // ==========================================================================
199 // Book 1D profile histogram with variable binning
200 // ==========================================================================
201
202 virtual AIDA::IProfile1D* bookProf( const std::string& fullPath,
203 const std::string& title,
204 std::vector<double> edges ) = 0;
205 virtual AIDA::IProfile1D* bookProf( const std::string& dirPath,
206 const std::string& relPath,
207 const std::string& title,
208 std::vector<double> edges ) = 0;
209 virtual AIDA::IProfile1D* bookProf( const std::string& dirPath,
210 int hID,
211 const std::string& title,
212 std::vector<double> edges ) = 0;
213 virtual AIDA::IProfile1D* bookProf( DataObject* pParent,
214 const std::string& relPath,
215 const std::string& title,
216 std::vector<double> edges ) = 0;
217 virtual AIDA::IProfile1D* bookProf( DataObject* pParent,
218 int hID,
219 const std::string& title,
220 std::vector<double> edges ) = 0;
221
222 // ==========================================================================
223 // Book 2D histogram with fixed binning
224 // ==========================================================================
225
226 virtual AIDA::IHistogram2D* book( const std::string& fullPath,
227 const std::string& title,
228 int binsX, double lowX, double highX,
229 int binsY, double lowY, double highY ) = 0;
230 virtual AIDA::IHistogram2D* book( const std::string& dirPath,
231 const std::string& relPath,
232 const std::string& title,
233 int binsX, double lowX, double highX,
234 int binsY, double lowY, double highY ) = 0;
235 virtual AIDA::IHistogram2D* book( const std::string& dirPath,
236 int hID,
237 const std::string& title,
238 int binsX, double lowX, double highX,
239 int binsY, double lowY, double highY ) = 0;
240 virtual AIDA::IHistogram2D* book( DataObject* pParent,
241 const std::string& relPath,
242 const std::string& title,
243 int binsX, double lowX, double highX,
244 int binsY, double lowY, double highY ) = 0;
245 virtual AIDA::IHistogram2D* book( DataObject* pParent,
246 int hID,
247 const std::string& title,
248 int binsX, double lowX, double highX,
249 int binsY, double lowY, double highY ) = 0;
250
251 // ==========================================================================
252 // Book 2D profile histogram with fixed binning
253 // ==========================================================================
254
255 virtual AIDA::IProfile2D* bookProf( const std::string& fullPath,
256 const std::string& title,
257 int binsX, double lowX, double highX,
258 int binsY, double lowY, double highY ) = 0;
259 virtual AIDA::IProfile2D* bookProf( const std::string& dirPath,
260 const std::string& relPath,
261 const std::string& title,
262 int binsX, double lowX, double highX,
263 int binsY, double lowY, double highY ) = 0;
264 virtual AIDA::IProfile2D* bookProf( const std::string& dirPath,
265 int hID,
266 const std::string& title,
267 int binsX, double lowX, double highX,
268 int binsY, double lowY, double highY ) = 0;
269 virtual AIDA::IProfile2D* bookProf( DataObject* pParent,
270 const std::string& relPath,
271 const std::string& title,
272 int binsX, double lowX, double highX,
273 int binsY, double lowY, double highY ) = 0;
274 virtual AIDA::IProfile2D* bookProf( DataObject* pParent,
275 int hID,
276 const std::string& title,
277 int binsX, double lowX, double highX,
278 int binsY, double lowY, double highY ) = 0;
279
280 // ==========================================================================
281 // Book 2D histogram with variable binning
282 // ==========================================================================
283
284 virtual AIDA::IHistogram2D* book( const std::string& fullPath,
285 const std::string& title,
286 std::vector<double> edgesX,
287 std::vector<double> edgesY ) = 0;
288 virtual AIDA::IHistogram2D* book( const std::string& dirPath,
289 const std::string& relPath,
290 const std::string& title,
291 std::vector<double> edgesX,
292 std::vector<double> edgesY ) = 0;
293 virtual AIDA::IHistogram2D* book( const std::string& dirPath,
294 int hID,
295 const std::string& title,
296 std::vector<double> edgesX,
297 std::vector<double> edgesY ) = 0;
298 virtual AIDA::IHistogram2D* book( DataObject* pParent,
299 const std::string& relPath,
300 const std::string& title,
301 std::vector<double> edgesX,
302 std::vector<double> edgesY ) = 0;
303 virtual AIDA::IHistogram2D* book( DataObject* pParent,
304 int hID,
305 const std::string& title,
306 std::vector<double> edgesX,
307 std::vector<double> edgesY ) = 0;
308
309
310 // ==========================================================================
311 // Book 2D profile histogram with variable binning
312 // ==========================================================================
313
314 virtual AIDA::IProfile2D* bookProf( const std::string& fullPath,
315 const std::string& title,
316 std::vector<double> edgesX,
317 std::vector<double> edgesY ) = 0;
318 virtual AIDA::IProfile2D* bookProf( const std::string& dirPath,
319 const std::string& relPath,
320 const std::string& title,
321 std::vector<double> edgesX,
322 std::vector<double> edgesY ) = 0;
323 virtual AIDA::IProfile2D* bookProf( const std::string& dirPath,
324 int hID,
325 const std::string& title,
326 std::vector<double> edgesX,
327 std::vector<double> edgesY ) = 0;
328 virtual AIDA::IProfile2D* bookProf( DataObject* pParent,
329 const std::string& relPath,
330 const std::string& title,
331 std::vector<double> edgesX,
332 std::vector<double> edgesY ) = 0;
333 virtual AIDA::IProfile2D* bookProf( DataObject* pParent,
334 int hID,
335 const std::string& title,
336 std::vector<double> edgesX,
337 std::vector<double> edgesY ) = 0;
338
339
340 // ==========================================================================
341 // Book 3D histogram with fixed binning
342 // ==========================================================================
343
344 virtual AIDA::IHistogram3D* book( const std::string& fullPath,
345 const std::string& title,
346 int binsX, double lowX, double highX,
347 int binsY, double lowY, double highY,
348 int binsZ, double lowZ, double highZ ) = 0;
349 virtual AIDA::IHistogram3D* book( const std::string& dirPath,
350 const std::string& relPath,
351 const std::string& title,
352 int binsX, double lowX, double highX,
353 int binsY, double lowY, double highY,
354 int binsZ, double lowZ, double highZ ) = 0;
355 virtual AIDA::IHistogram3D* book( const std::string& dirPath,
356 int hID,
357 const std::string& title,
358 int binsX, double lowX, double highX,
359 int binsY, double lowY, double highY,
360 int binsZ, double lowZ, double highZ ) = 0;
361 virtual AIDA::IHistogram3D* book( DataObject* pParent,
362 const std::string& relPath,
363 const std::string& title,
364 int binsX, double lowX, double highX,
365 int binsY, double lowY, double highY,
366 int binsZ, double lowZ, double highZ ) = 0;
367 virtual AIDA::IHistogram3D* book( DataObject* pParent,
368 int hID,
369 const std::string& title,
370 int binsX, double lowX, double highX,
371 int binsY, double lowY, double highY,
372 int binsZ, double lowZ, double highZ ) = 0;
373
374 // ==========================================================================
375 // Book 3D histogram with variable binning
376 // ==========================================================================
377
378 virtual AIDA::IHistogram3D* book( const std::string& fullPath,
379 const std::string& title,
380 std::vector<double> edgesX,
381 std::vector<double> edgesY,
382 std::vector<double> edgesZ ) = 0;
383 virtual AIDA::IHistogram3D* book( const std::string& dirPath,
384 const std::string& relPath,
385 const std::string& title,
386 std::vector<double> edgesX,
387 std::vector<double> edgesY,
388 std::vector<double> edgesZ ) = 0;
389 virtual AIDA::IHistogram3D* book( const std::string& dirPath,
390 int hID,
391 const std::string& title,
392 std::vector<double> edgesX,
393 std::vector<double> edgesY,
394 std::vector<double> edgesZ ) = 0;
395 virtual AIDA::IHistogram3D* book( DataObject* pParent,
396 const std::string& relPath,
397 const std::string& title,
398 std::vector<double> edgesX,
399 std::vector<double> edgesY,
400 std::vector<double> edgesZ ) = 0;
401 virtual AIDA::IHistogram3D* book( DataObject* pParent,
402 int hID,
403 const std::string& title,
404 std::vector<double> edgesX,
405 std::vector<double> edgesY,
406 std::vector<double> edgesZ ) = 0;
407
408 // ==========================================================================
409 // Register histogram with the data store
410 // ==========================================================================
411
412 virtual StatusCode registerObject( const std::string& fullPath,
413 AIDA::IBaseHistogram* hObj ) = 0;
414 // ---------------------------
415 virtual StatusCode registerObject( const std::string& parentPath,
416 const std::string& objPath,
417 AIDA::IBaseHistogram* hObj ) = 0;
418 // ---------------------------
419 virtual StatusCode registerObject( const std::string& parentPath,
420 int item, AIDA::IBaseHistogram* hObj ) = 0;
421 // ---------------------------
422 virtual StatusCode registerObject( DataObject* parentObj,
423 const std::string& objPath,
424 AIDA::IBaseHistogram* hObj ) = 0;
425 virtual StatusCode registerObject( AIDA::IBaseHistogram* parentObj,
426 const std::string& objPath,
427 AIDA::IBaseHistogram* hObj ) = 0;
428 // ---------------------------
429 virtual StatusCode registerObject( DataObject* parentObj,
430 int item,
431 AIDA::IBaseHistogram* hObj ) = 0;
432 virtual StatusCode registerObject( AIDA::IBaseHistogram* parentObj,
433 int item,
434 AIDA::IBaseHistogram* hObj ) = 0;
435
436
437 // ==========================================================================
438 // Unregister histogram from the data store
439 // ==========================================================================
440
441 virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj ) = 0;
442 // ---------------------------
443 virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj,
444 const std::string& objectPath ) = 0;
445 // ---------------------------
446 virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj,
447 int item ) = 0;
448
449
450 // ==========================================================================
451 // Retrieve histogram from data store
452 // ==========================================================================
453
454 virtual StatusCode retrieveObject( IRegistry* pDirectory,
455 const std::string& path,
456 AIDA::IHistogram1D*& h1dObj ) = 0;
457 virtual StatusCode retrieveObject( IRegistry* pDirectory,
458 const std::string& path,
459 AIDA::IProfile1D*& h1dObj ) = 0;
460 virtual StatusCode retrieveObject( IRegistry* pDirectory,
461 const std::string& path,
462 AIDA::IHistogram2D*& h2dObj ) = 0;
463 virtual StatusCode retrieveObject( IRegistry* pDirectory,
464 const std::string& path,
465 AIDA::IProfile2D*& h2dObj ) = 0;
466 virtual StatusCode retrieveObject( IRegistry* pDirectory,
467 const std::string& path,
468 AIDA::IHistogram3D*& h3dObj ) = 0;
469 // ---------------------------
470 virtual StatusCode retrieveObject( const std::string& fullPath,
471 AIDA::IHistogram1D*& h1dObj ) = 0;
472 virtual StatusCode retrieveObject( const std::string& fullPath,
473 AIDA::IProfile1D*& h1dObj ) = 0;
474 virtual StatusCode retrieveObject( const std::string& fullPath,
475 AIDA::IHistogram2D*& h2dObj ) = 0;
476 virtual StatusCode retrieveObject( const std::string& fullPath,
477 AIDA::IProfile2D*& h2dObj ) = 0;
478 virtual StatusCode retrieveObject( const std::string& fullPath,
479 AIDA::IHistogram3D*& h3dObj ) = 0;
480 // ---------------------------
481 virtual StatusCode retrieveObject( const std::string& parentPath,
482 const std::string& objPath,
483 AIDA::IHistogram1D*& h1dObj ) = 0;
484 virtual StatusCode retrieveObject( const std::string& parentPath,
485 const std::string& objPath,
486 AIDA::IProfile1D*& h1dObj ) = 0;
487 virtual StatusCode retrieveObject( const std::string& parentPath,
488 const std::string& objPath,
489 AIDA::IHistogram2D*& h2dObj ) = 0;
490 virtual StatusCode retrieveObject( const std::string& parentPath,
491 const std::string& objPath,
492 AIDA::IProfile2D*& h2dObj ) = 0;
493 virtual StatusCode retrieveObject( const std::string& parentPath,
494 const std::string& objPath,
495 AIDA::IHistogram3D*& h3dObj ) = 0;
496 // ---------------------------
497 virtual StatusCode retrieveObject( const std::string& parentPath,
498 int item,
499 AIDA::IHistogram1D*& h1dObj ) = 0;
500 virtual StatusCode retrieveObject( const std::string& parentPath,
501 int item,
502 AIDA::IProfile1D*& h1dObj ) = 0;
503 virtual StatusCode retrieveObject( const std::string& parentPath,
504 int item,
505 AIDA::IHistogram2D*& h2dObj ) = 0;
506 virtual StatusCode retrieveObject( const std::string& parentPath,
507 int item,
508 AIDA::IProfile2D*& h2dObj ) = 0;
509 virtual StatusCode retrieveObject( const std::string& parentPath,
510 int item,
511 AIDA::IHistogram3D*& h3dObj ) = 0;
512 // ---------------------------
513 virtual StatusCode retrieveObject( DataObject* parentObj,
514 const std::string& objPath,
515 AIDA::IHistogram1D*& h1dObj ) = 0;
516 virtual StatusCode retrieveObject( DataObject* parentObj,
517 const std::string& objPath,
518 AIDA::IProfile1D*& h1dObj ) = 0;
519 virtual StatusCode retrieveObject( DataObject* parentObj,
520 const std::string& objPath,
521 AIDA::IHistogram2D*& h2dObj ) = 0;
522 virtual StatusCode retrieveObject( DataObject* parentObj,
523 const std::string& objPath,
524 AIDA::IProfile2D*& h2dObj ) = 0;
525 virtual StatusCode retrieveObject( DataObject* parentObj,
526 const std::string& objPath,
527 AIDA::IHistogram3D*& h3dObj ) = 0;
528 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
529 const std::string& objPath,
530 AIDA::IHistogram1D*& h1dObj ) = 0;
531 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
532 const std::string& objPath,
533 AIDA::IProfile1D*& h1dObj ) = 0;
534 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
535 const std::string& objPath,
536 AIDA::IHistogram2D*& h2dObj ) = 0;
537 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
538 const std::string& objPath,
539 AIDA::IProfile2D*& h2dObj ) = 0;
540 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
541 const std::string& objPath,
542 AIDA::IHistogram3D*& h3dObj ) = 0;
543 // ---------------------------
544 virtual StatusCode retrieveObject( DataObject* parentObj,
545 int item,
546 AIDA::IHistogram1D*& h1dObj ) = 0;
547 virtual StatusCode retrieveObject( DataObject* parentObj,
548 int item,
549 AIDA::IProfile1D*& h1dObj ) = 0;
550 virtual StatusCode retrieveObject( DataObject* parentObj,
551 int item,
552 AIDA::IHistogram2D*& h2dObj ) = 0;
553 virtual StatusCode retrieveObject( DataObject* parentObj,
554 int item,
555 AIDA::IProfile2D*& h2dObj ) = 0;
556 virtual StatusCode retrieveObject( DataObject* parentObj,
557 int item,
558 AIDA::IHistogram3D*& h3dObj ) = 0;
559 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
560 int item,
561 AIDA::IHistogram1D*& h1dObj ) = 0;
562 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
563 int item,
564 AIDA::IProfile1D*& h1dObj ) = 0;
565 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
566 int item,
567 AIDA::IHistogram2D*& h2dObj ) = 0;
568 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
569 int item,
570 AIDA::IProfile2D*& h2dObj ) = 0;
571 virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj,
572 int item,
573 AIDA::IHistogram3D*& h3dObj ) = 0;
574
575
576 // ==========================================================================
577 // Find histogram identified by its full path in the data store
578 // ==========================================================================
579
580 virtual StatusCode findObject( const std::string& fullPath,
581 AIDA::IHistogram1D*& h1dObj ) = 0;
582 virtual StatusCode findObject( const std::string& fullPath,
583 AIDA::IProfile1D*& h1dObj ) = 0;
584 virtual StatusCode findObject( const std::string& fullPath,
585 AIDA::IHistogram2D*& h2dObj ) = 0;
586 virtual StatusCode findObject( const std::string& fullPath,
587 AIDA::IProfile2D*& h2dObj ) = 0;
588 virtual StatusCode findObject( const std::string& fullPath,
589 AIDA::IHistogram3D*& h3dObj ) = 0;
590 // ---------------------------
591 virtual StatusCode findObject( IRegistry* pDirectory,
592 const std::string& path,
593 AIDA::IHistogram1D*& h1dObj ) = 0;
594 virtual StatusCode findObject( IRegistry* pDirectory,
595 const std::string& path,
596 AIDA::IProfile1D*& h1dObj ) = 0;
597 virtual StatusCode findObject( IRegistry* pDirectory,
598 const std::string& path,
599 AIDA::IHistogram2D*& h2dObj ) = 0;
600 virtual StatusCode findObject( IRegistry* pDirectory,
601 const std::string& path,
602 AIDA::IProfile2D*& h2dObj ) = 0;
603 virtual StatusCode findObject( IRegistry* pDirectory,
604 const std::string& path,
605 AIDA::IHistogram3D*& h2dObj ) = 0;
606 // ---------------------------
607 virtual StatusCode findObject( const std::string& parentPath,
608 const std::string& objPath,
609 AIDA::IHistogram1D*& h1dObj ) = 0;
610 virtual StatusCode findObject( const std::string& parentPath,
611 const std::string& objPath,
612 AIDA::IProfile1D*& h1dObj ) = 0;
613 virtual StatusCode findObject( const std::string& parentPath,
614 const std::string& objPath,
615 AIDA::IHistogram2D*& h2dObj ) = 0;
616 virtual StatusCode findObject( const std::string& parentPath,
617 const std::string& objPath,
618 AIDA::IProfile2D*& h2dObj ) = 0;
619 virtual StatusCode findObject( const std::string& parentPath,
620 const std::string& objPath,
621 AIDA::IHistogram3D*& h3dObj ) = 0;
622 // ---------------------------
623 virtual StatusCode findObject( const std::string& parentPath,
624 int item,
625 AIDA::IHistogram1D*& h1dObj ) = 0;
626 virtual StatusCode findObject( const std::string& parentPath,
627 int item,
628 AIDA::IProfile1D*& h1dObj ) = 0;
629 virtual StatusCode findObject( const std::string& parentPath,
630 int item,
631 AIDA::IHistogram2D*& h2dObj ) = 0;
632 virtual StatusCode findObject( const std::string& parentPath,
633 int item,
634 AIDA::IProfile2D*& h2dObj ) = 0;
635 virtual StatusCode findObject( const std::string& parentPath,
636 int item,
637 AIDA::IHistogram3D*& h3dObj ) = 0;
638 // ---------------------------
639 virtual StatusCode findObject( DataObject* parentObj,
640 const std::string& objPath,
641 AIDA::IHistogram1D*& h1dObj ) = 0;
642 virtual StatusCode findObject( DataObject* parentObj,
643 const std::string& objPath,
644 AIDA::IProfile1D*& h1dObj ) = 0;
645 virtual StatusCode findObject( DataObject* parentObj,
646 const std::string& objPath,
647 AIDA::IHistogram2D*& h2dObj ) = 0;
648 virtual StatusCode findObject( DataObject* parentObj,
649 const std::string& objPath,
650 AIDA::IProfile2D*& h2dObj ) = 0;
651 virtual StatusCode findObject( DataObject* parentObj,
652 const std::string& objPath,
653 AIDA::IHistogram3D*& h3dObj ) = 0;
654 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
655 const std::string& objPath,
656 AIDA::IHistogram1D*& h1dObj ) = 0;
657 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
658 const std::string& objPath,
659 AIDA::IProfile1D*& h1dObj ) = 0;
660 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
661 const std::string& objPath,
662 AIDA::IHistogram2D*& h2dObj ) = 0;
663 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
664 const std::string& objPath,
665 AIDA::IProfile2D*& h2dObj ) = 0;
666 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
667 const std::string& objPath,
668 AIDA::IHistogram3D*& h3dObj ) = 0;
669 // ---------------------------
670 virtual StatusCode findObject( DataObject* parentObj,
671 int item,
672 AIDA::IHistogram1D*& h1dObj ) = 0;
673 virtual StatusCode findObject( DataObject* parentObj,
674 int item,
675 AIDA::IProfile1D*& h1dObj ) = 0;
676 virtual StatusCode findObject( DataObject* parentObj,
677 int item,
678 AIDA::IHistogram2D*& h2dObj ) = 0;
679 virtual StatusCode findObject( DataObject* parentObj,
680 int item,
681 AIDA::IProfile2D*& h2dObj ) = 0;
682 virtual StatusCode findObject( DataObject* parentObj,
683 int item,
684 AIDA::IHistogram3D*& h3dObj ) = 0;
685 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
686 int item,
687 AIDA::IHistogram1D*& h1dObj ) = 0;
688 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
689 int item,
690 AIDA::IProfile1D*& h1dObj ) = 0;
691 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
692 int item,
693 AIDA::IHistogram2D*& h2dObj ) = 0;
694 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
695 int item,
696 AIDA::IProfile2D*& h2dObj ) = 0;
697 virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj,
698 int item,
699 AIDA::IHistogram3D*& h3dObj ) = 0;
700
701
702 // ==========================================================================
703 // ASCII output
704 // ==========================================================================
705 // --------------------------------------------------------------------------
706 // Print functions (ASCII graphical representation)
707
708 // Print (ASCII) the histogram into the output stream
709 virtual std::ostream& print( AIDA::IBaseHistogram* h,
710 std::ostream& s = std::cout) const = 0;
711
712 // --------------------------------------------------------------------------
713 // Write functions (ASCII table containing numbers e.g. bin height)
714
716 virtual std::ostream& write( AIDA::IBaseHistogram* h,
717 std::ostream& s = std::cout) const = 0;
718
720 virtual int write( AIDA::IBaseHistogram* h, const char* file_name ) const = 0;
721
722 // ==========================================================================
723 // Create all directories in a given full path
724 // ==========================================================================
725
726 virtual DataObject* createPath( const std::string& newPath ) = 0;
727
733 virtual DataObject* createDirectory (
734 const std::string& parentDir,
735 const std::string& subDir ) = 0;
736
738 virtual ~IHistogramSvc() {}
739
741 using IDataProviderSvc::registerObject;
742 using IDataProviderSvc::unregisterObject;
743 using IDataProviderSvc::retrieveObject;
744 using IDataProviderSvc::findObject;
745
746 };
747
748
749 #endif // INTERFACES_IHISTOGRAMSVC_H