IHistogramSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IHISTOGRAMSVC_H
2 #define GAUDIKERNEL_IHISTOGRAMSVC_H
3 
4 
5 // Include files
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 
48 {
49 public:
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 
742 
743 };
744 
745 
746 #endif // INTERFACES_IHISTOGRAMSVC_H
GAUDI_API AIDA::IHistogram1D * book(IHistogramSvc *svc, const std::string &path, const Gaudi::Histo1DDef &hist)
helper function to book 1D-histogram
Definition: HistoDef.cpp:124
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:14
Data provider interface definition.
GaudiKernel.
Definition: Fill.h:8
STL class.
virtual StatusCode findObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Find object identified by its directory entry.
virtual StatusCode unregisterObject(const std::string &fullPath)=0
Unregister object from the data store.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
Definition of the IHistogramSvc interface class.
Definition: IHistogramSvc.h:47
def bookProf(args, kwargs)
The trivial function to book 1D&2D profile histograms:
Definition: HistoUtils.py:232
void print(string text)
Definition: mergesort.cpp:33
string s
Definition: gaudirun.py:245
virtual StatusCode registerObject(const std::string &fullPath, DataObject *pObject)=0
Register object with the data store.
#define GAUDI_API
Definition: Kernel.h:107
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
STL class.
virtual StatusCode retrieveObject(IRegistry *pDirectory, const std::string &path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.