The Gaudi Framework  v30r3 (a5ef0a68)
IHistogramSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IHISTOGRAMSVC_H
2 #define GAUDIKERNEL_IHISTOGRAMSVC_H
3 
4 // Include files
6 #include "GaudiKernel/IService.h"
7 #include <iostream>
8 #include <string>
9 #include <vector>
10 
11 // Forward declarations
12 class DataObject;
13 
14 // added to allow use of AIDA in applications
15 // without prefix AIDA:: (as before)
16 namespace AIDA
17 {
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, const std::string& title, int binsX, double lowX,
77  double highX ) = 0;
78  virtual AIDA::IHistogram1D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
79  int binsX, double lowX, double highX ) = 0;
80  virtual AIDA::IHistogram1D* book( const std::string& dirPath, int hID, const std::string& title, int binsX,
81  double lowX, double highX ) = 0;
82  virtual AIDA::IHistogram1D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
83  int binsX, double lowX, double highX ) = 0;
84  virtual AIDA::IHistogram1D* book( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
85  double highX ) = 0;
86 
87  // ==========================================================================
88  // Book 1D profile histogram with fixed binning
89  // ==========================================================================
90 
91  virtual AIDA::IProfile1D* bookProf( const std::string& fullPath, const std::string& title, int binsX, double lowX,
92  double highX, const std::string& opt = "" ) = 0;
93  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
94  int binsX, double lowX, double highX, const std::string& opt = "" ) = 0;
95  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, int hID, const std::string& title, int binsX,
96  double lowX, double highX, const std::string& opt = "" ) = 0;
97  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
98  int binsX, double lowX, double highX, const std::string& opt = "" ) = 0;
99  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
100  double highX, const std::string& opt = "" ) = 0;
101 
102  // ==========================================================================
103  // Book 1D profile histogram with fixed binning & Y-limits
104  // ==========================================================================
105 
106  virtual AIDA::IProfile1D* bookProf( const std::string& fullPath, const std::string& title, int binsX, double lowX,
107  double highX, double lowY, double highY, const std::string& opt = "s" ) = 0;
108  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
109  int binsX, double lowX, double highX, double lowY, double highY,
110  const std::string& opt = "s" ) = 0;
111  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, int hID, const std::string& title, int binsX,
112  double lowX, double highX, double lowY, double highY,
113  const std::string& opt = "s" ) = 0;
114  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
115  int binsX, double lowX, double highX, double lowY, double highY,
116  const std::string& opt = "s" ) = 0;
117  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
118  double highX, double lowY, double highY, const std::string& opt = "s" ) = 0;
119 
120  // ==========================================================================
121  // Book 1D histogram with variable binning
122  // ==========================================================================
123 
124  virtual AIDA::IHistogram1D* book( const std::string& fullPath, const std::string& title,
125  std::vector<double> edges ) = 0;
126  virtual AIDA::IHistogram1D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
127  std::vector<double> edges ) = 0;
128  virtual AIDA::IHistogram1D* book( const std::string& dirPath, int hID, const std::string& title,
129  std::vector<double> edges ) = 0;
130  virtual AIDA::IHistogram1D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
131  std::vector<double> edges ) = 0;
132  virtual AIDA::IHistogram1D* book( DataObject* pParent, int hID, const std::string& title,
133  std::vector<double> edges ) = 0;
134 
135  // ==========================================================================
136  // Book 1D profile histogram with variable binning
137  // ==========================================================================
138 
139  virtual AIDA::IProfile1D* bookProf( const std::string& fullPath, const std::string& title,
140  std::vector<double> edges ) = 0;
141  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
142  std::vector<double> edges ) = 0;
143  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, int hID, const std::string& title,
144  std::vector<double> edges ) = 0;
145  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
146  std::vector<double> edges ) = 0;
147  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, int hID, const std::string& title,
148  std::vector<double> edges ) = 0;
149 
150  // ==========================================================================
151  // Book 2D histogram with fixed binning
152  // ==========================================================================
153 
154  virtual AIDA::IHistogram2D* book( const std::string& fullPath, const std::string& title, int binsX, double lowX,
155  double highX, int binsY, double lowY, double highY ) = 0;
156  virtual AIDA::IHistogram2D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
157  int binsX, double lowX, double highX, int binsY, double lowY, double highY ) = 0;
158  virtual AIDA::IHistogram2D* book( const std::string& dirPath, int hID, const std::string& title, int binsX,
159  double lowX, double highX, int binsY, double lowY, double highY ) = 0;
160  virtual AIDA::IHistogram2D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
161  int binsX, double lowX, double highX, int binsY, double lowY, double highY ) = 0;
162  virtual AIDA::IHistogram2D* book( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
163  double highX, int binsY, double lowY, double highY ) = 0;
164 
165  // ==========================================================================
166  // Book 2D profile histogram with fixed binning
167  // ==========================================================================
168 
169  virtual AIDA::IProfile2D* bookProf( const std::string& fullPath, const std::string& title, int binsX, double lowX,
170  double highX, int binsY, double lowY, double highY ) = 0;
171  virtual AIDA::IProfile2D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
172  int binsX, double lowX, double highX, int binsY, double lowY, double highY ) = 0;
173  virtual AIDA::IProfile2D* bookProf( const std::string& dirPath, int hID, const std::string& title, int binsX,
174  double lowX, double highX, int binsY, double lowY, double highY ) = 0;
175  virtual AIDA::IProfile2D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
176  int binsX, double lowX, double highX, int binsY, double lowY, double highY ) = 0;
177  virtual AIDA::IProfile2D* bookProf( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
178  double highX, int binsY, double lowY, double highY ) = 0;
179 
180  // ==========================================================================
181  // Book 2D histogram with variable binning
182  // ==========================================================================
183 
184  virtual AIDA::IHistogram2D* book( const std::string& fullPath, const std::string& title, std::vector<double> edgesX,
185  std::vector<double> edgesY ) = 0;
186  virtual AIDA::IHistogram2D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
187  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
188  virtual AIDA::IHistogram2D* book( const std::string& dirPath, int hID, const std::string& title,
189  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
190  virtual AIDA::IHistogram2D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
191  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
192  virtual AIDA::IHistogram2D* book( DataObject* pParent, int hID, const std::string& title, std::vector<double> edgesX,
193  std::vector<double> edgesY ) = 0;
194 
195  // ==========================================================================
196  // Book 2D profile histogram with variable binning
197  // ==========================================================================
198 
199  virtual AIDA::IProfile2D* bookProf( const std::string& fullPath, const std::string& title, std::vector<double> edgesX,
200  std::vector<double> edgesY ) = 0;
201  virtual AIDA::IProfile2D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
202  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
203  virtual AIDA::IProfile2D* bookProf( const std::string& dirPath, int hID, const std::string& title,
204  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
205  virtual AIDA::IProfile2D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
206  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
207  virtual AIDA::IProfile2D* bookProf( DataObject* pParent, int hID, const std::string& title,
208  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
209 
210  // ==========================================================================
211  // Book 3D histogram with fixed binning
212  // ==========================================================================
213 
214  virtual AIDA::IHistogram3D* book( const std::string& fullPath, const std::string& title, int binsX, double lowX,
215  double highX, int binsY, double lowY, double highY, int binsZ, double lowZ,
216  double highZ ) = 0;
217  virtual AIDA::IHistogram3D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
218  int binsX, double lowX, double highX, int binsY, double lowY, double highY,
219  int binsZ, double lowZ, double highZ ) = 0;
220  virtual AIDA::IHistogram3D* book( const std::string& dirPath, int hID, const std::string& title, int binsX,
221  double lowX, double highX, int binsY, double lowY, double highY, int binsZ,
222  double lowZ, double highZ ) = 0;
223  virtual AIDA::IHistogram3D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
224  int binsX, double lowX, double highX, int binsY, double lowY, double highY,
225  int binsZ, double lowZ, double highZ ) = 0;
226  virtual AIDA::IHistogram3D* book( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
227  double highX, int binsY, double lowY, double highY, int binsZ, double lowZ,
228  double highZ ) = 0;
229 
230  // ==========================================================================
231  // Book 3D histogram with variable binning
232  // ==========================================================================
233 
234  virtual AIDA::IHistogram3D* book( const std::string& fullPath, const std::string& title, std::vector<double> edgesX,
235  std::vector<double> edgesY, std::vector<double> edgesZ ) = 0;
236  virtual AIDA::IHistogram3D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
238  std::vector<double> edgesZ ) = 0;
239  virtual AIDA::IHistogram3D* book( const std::string& dirPath, int hID, const std::string& title,
241  std::vector<double> edgesZ ) = 0;
242  virtual AIDA::IHistogram3D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
244  std::vector<double> edgesZ ) = 0;
245  virtual AIDA::IHistogram3D* book( DataObject* pParent, int hID, const std::string& title, std::vector<double> edgesX,
246  std::vector<double> edgesY, std::vector<double> edgesZ ) = 0;
247 
248  // ==========================================================================
249  // Register histogram with the data store
250  // ==========================================================================
251 
252  virtual StatusCode registerObject( const std::string& fullPath, AIDA::IBaseHistogram* hObj ) = 0;
253  // ---------------------------
254  virtual StatusCode registerObject( const std::string& parentPath, const std::string& objPath,
255  AIDA::IBaseHistogram* hObj ) = 0;
256  // ---------------------------
257  virtual StatusCode registerObject( const std::string& parentPath, int item, AIDA::IBaseHistogram* hObj ) = 0;
258  // ---------------------------
259  virtual StatusCode registerObject( DataObject* parentObj, const std::string& objPath,
260  AIDA::IBaseHistogram* hObj ) = 0;
261  virtual StatusCode registerObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
262  AIDA::IBaseHistogram* hObj ) = 0;
263  // ---------------------------
264  virtual StatusCode registerObject( DataObject* parentObj, int item, AIDA::IBaseHistogram* hObj ) = 0;
265  virtual StatusCode registerObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IBaseHistogram* hObj ) = 0;
266 
267  // ==========================================================================
268  // Unregister histogram from the data store
269  // ==========================================================================
270 
271  virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj ) = 0;
272  // ---------------------------
273  virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj, const std::string& objectPath ) = 0;
274  // ---------------------------
275  virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj, int item ) = 0;
276 
277  // ==========================================================================
278  // Retrieve histogram from data store
279  // ==========================================================================
280 
281  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram1D*& h1dObj ) = 0;
282  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IProfile1D*& h1dObj ) = 0;
283  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram2D*& h2dObj ) = 0;
284  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IProfile2D*& h2dObj ) = 0;
285  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram3D*& h3dObj ) = 0;
286  // ---------------------------
287  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IHistogram1D*& h1dObj ) = 0;
288  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IProfile1D*& h1dObj ) = 0;
289  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IHistogram2D*& h2dObj ) = 0;
290  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IProfile2D*& h2dObj ) = 0;
291  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IHistogram3D*& h3dObj ) = 0;
292  // ---------------------------
293  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
294  AIDA::IHistogram1D*& h1dObj ) = 0;
295  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
296  AIDA::IProfile1D*& h1dObj ) = 0;
297  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
298  AIDA::IHistogram2D*& h2dObj ) = 0;
299  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
300  AIDA::IProfile2D*& h2dObj ) = 0;
301  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
302  AIDA::IHistogram3D*& h3dObj ) = 0;
303  // ---------------------------
304  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
305  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IProfile1D*& h1dObj ) = 0;
306  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
307  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IProfile2D*& h2dObj ) = 0;
308  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
309  // ---------------------------
310  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath,
311  AIDA::IHistogram1D*& h1dObj ) = 0;
312  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath, AIDA::IProfile1D*& h1dObj ) = 0;
313  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath,
314  AIDA::IHistogram2D*& h2dObj ) = 0;
315  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath, AIDA::IProfile2D*& h2dObj ) = 0;
316  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath,
317  AIDA::IHistogram3D*& h3dObj ) = 0;
318  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
319  AIDA::IHistogram1D*& h1dObj ) = 0;
320  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
321  AIDA::IProfile1D*& h1dObj ) = 0;
322  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
323  AIDA::IHistogram2D*& h2dObj ) = 0;
324  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
325  AIDA::IProfile2D*& h2dObj ) = 0;
326  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
327  AIDA::IHistogram3D*& h3dObj ) = 0;
328  // ---------------------------
329  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
330  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IProfile1D*& h1dObj ) = 0;
331  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
332  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IProfile2D*& h2dObj ) = 0;
333  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
334  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
335  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IProfile1D*& h1dObj ) = 0;
336  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
337  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IProfile2D*& h2dObj ) = 0;
338  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
339 
340  // ==========================================================================
341  // Find histogram identified by its full path in the data store
342  // ==========================================================================
343 
344  virtual StatusCode findObject( const std::string& fullPath, AIDA::IHistogram1D*& h1dObj ) = 0;
345  virtual StatusCode findObject( const std::string& fullPath, AIDA::IProfile1D*& h1dObj ) = 0;
346  virtual StatusCode findObject( const std::string& fullPath, AIDA::IHistogram2D*& h2dObj ) = 0;
347  virtual StatusCode findObject( const std::string& fullPath, AIDA::IProfile2D*& h2dObj ) = 0;
348  virtual StatusCode findObject( const std::string& fullPath, AIDA::IHistogram3D*& h3dObj ) = 0;
349  // ---------------------------
350  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram1D*& h1dObj ) = 0;
351  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IProfile1D*& h1dObj ) = 0;
352  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram2D*& h2dObj ) = 0;
353  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IProfile2D*& h2dObj ) = 0;
354  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram3D*& h2dObj ) = 0;
355  // ---------------------------
356  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
357  AIDA::IHistogram1D*& h1dObj ) = 0;
358  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
359  AIDA::IProfile1D*& h1dObj ) = 0;
360  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
361  AIDA::IHistogram2D*& h2dObj ) = 0;
362  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
363  AIDA::IProfile2D*& h2dObj ) = 0;
364  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
365  AIDA::IHistogram3D*& h3dObj ) = 0;
366  // ---------------------------
367  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
368  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IProfile1D*& h1dObj ) = 0;
369  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
370  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IProfile2D*& h2dObj ) = 0;
371  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
372  // ---------------------------
373  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IHistogram1D*& h1dObj ) = 0;
374  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IProfile1D*& h1dObj ) = 0;
375  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IHistogram2D*& h2dObj ) = 0;
376  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IProfile2D*& h2dObj ) = 0;
377  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IHistogram3D*& h3dObj ) = 0;
378  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
379  AIDA::IHistogram1D*& h1dObj ) = 0;
380  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
381  AIDA::IProfile1D*& h1dObj ) = 0;
382  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
383  AIDA::IHistogram2D*& h2dObj ) = 0;
384  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
385  AIDA::IProfile2D*& h2dObj ) = 0;
386  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
387  AIDA::IHistogram3D*& h3dObj ) = 0;
388  // ---------------------------
389  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
390  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IProfile1D*& h1dObj ) = 0;
391  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
392  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IProfile2D*& h2dObj ) = 0;
393  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
394  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
395  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IProfile1D*& h1dObj ) = 0;
396  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
397  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IProfile2D*& h2dObj ) = 0;
398  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
399 
400  // ==========================================================================
401  // ASCII output
402  // ==========================================================================
403  // --------------------------------------------------------------------------
404  // Print functions (ASCII graphical representation)
405 
406  // Print (ASCII) the histogram into the output stream
407  virtual std::ostream& print( AIDA::IBaseHistogram* h, std::ostream& s = std::cout ) const = 0;
408 
409  // --------------------------------------------------------------------------
410  // Write functions (ASCII table containing numbers e.g. bin height)
411 
413  virtual std::ostream& write( AIDA::IBaseHistogram* h, std::ostream& s = std::cout ) const = 0;
414 
416  virtual int write( AIDA::IBaseHistogram* h, const char* file_name ) const = 0;
417 
418  // ==========================================================================
419  // Create all directories in a given full path
420  // ==========================================================================
421 
422  virtual DataObject* createPath( const std::string& newPath ) = 0;
423 
429  virtual DataObject* createDirectory( const std::string& parentDir, const std::string& subDir ) = 0;
430 
436 };
437 
438 #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:95
virtual StatusCode findObject(IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject)=0
Find object identified by its directory entry.
Data provider interface definition.
GaudiKernel.
Definition: Fill.h:10
STL class.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:51
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:13
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
virtual StatusCode retrieveObject(IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
virtual StatusCode unregisterObject(boost::string_ref fullPath)=0
Unregister object from the data store.
def bookProf(args, kwargs)
Definition: HistoUtils.py:252
virtual StatusCode registerObject(boost::string_ref fullPath, DataObject *pObject)=0
Register object with the data store.
string s
Definition: gaudirun.py:253
#define GAUDI_API
Definition: Kernel.h:104
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
STL class.