Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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  class IBaseHistogram;
18  class IHistogram;
19  class IHistogram1D;
20  class IProfile1D;
21  class IHistogram2D;
22  class IProfile2D;
23  class IHistogram3D;
24  class IHistogramFactory;
25  class IAnnotation;
26  class IAxis;
27 } // namespace AIDA
28 
29 using AIDA::IAnnotation;
30 using AIDA::IAxis;
31 using AIDA::IBaseHistogram;
32 using AIDA::IHistogram;
33 using AIDA::IHistogram1D;
34 using AIDA::IHistogram2D;
35 using AIDA::IHistogram3D;
36 using AIDA::IHistogramFactory;
37 using AIDA::IProfile1D;
38 using AIDA::IProfile2D;
39 
46 class GAUDI_API IHistogramSvc : virtual public IDataProviderSvc {
47 public:
50 
52  virtual AIDA::IHistogramFactory* histogramFactory() = 0;
53 
70  // ==========================================================================
71  // Book 1D histogram with fixed binning
72  // ==========================================================================
73 
74  virtual AIDA::IHistogram1D* book( const std::string& fullPath, const std::string& title, int binsX, double lowX,
75  double highX ) = 0;
76  virtual AIDA::IHistogram1D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
77  int binsX, double lowX, double highX ) = 0;
78  virtual AIDA::IHistogram1D* book( const std::string& dirPath, int hID, const std::string& title, int binsX,
79  double lowX, double highX ) = 0;
80  virtual AIDA::IHistogram1D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
81  int binsX, double lowX, double highX ) = 0;
82  virtual AIDA::IHistogram1D* book( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
83  double highX ) = 0;
84 
85  // ==========================================================================
86  // Book 1D profile histogram with fixed binning
87  // ==========================================================================
88 
89  virtual AIDA::IProfile1D* bookProf( const std::string& fullPath, const std::string& title, int binsX, double lowX,
90  double highX, const std::string& opt = "" ) = 0;
91  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
92  int binsX, double lowX, double highX, const std::string& opt = "" ) = 0;
93  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, int hID, const std::string& title, int binsX,
94  double lowX, double highX, const std::string& opt = "" ) = 0;
95  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
96  int binsX, double lowX, double highX, const std::string& opt = "" ) = 0;
97  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
98  double highX, const std::string& opt = "" ) = 0;
99 
100  // ==========================================================================
101  // Book 1D profile histogram with fixed binning & Y-limits
102  // ==========================================================================
103 
104  virtual AIDA::IProfile1D* bookProf( const std::string& fullPath, const std::string& title, int binsX, double lowX,
105  double highX, double lowY, double highY, const std::string& opt = "s" ) = 0;
106  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
107  int binsX, double lowX, double highX, double lowY, double highY,
108  const std::string& opt = "s" ) = 0;
109  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, int hID, const std::string& title, int binsX,
110  double lowX, double highX, double lowY, double highY,
111  const std::string& opt = "s" ) = 0;
112  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
113  int binsX, double lowX, double highX, double lowY, double highY,
114  const std::string& opt = "s" ) = 0;
115  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
116  double highX, double lowY, double highY, const std::string& opt = "s" ) = 0;
117 
118  // ==========================================================================
119  // Book 1D histogram with variable binning
120  // ==========================================================================
121 
122  virtual AIDA::IHistogram1D* book( const std::string& fullPath, const std::string& title,
123  std::vector<double> edges ) = 0;
124  virtual AIDA::IHistogram1D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
125  std::vector<double> edges ) = 0;
126  virtual AIDA::IHistogram1D* book( const std::string& dirPath, int hID, const std::string& title,
127  std::vector<double> edges ) = 0;
128  virtual AIDA::IHistogram1D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
129  std::vector<double> edges ) = 0;
130  virtual AIDA::IHistogram1D* book( DataObject* pParent, int hID, const std::string& title,
131  std::vector<double> edges ) = 0;
132 
133  // ==========================================================================
134  // Book 1D profile histogram with variable binning
135  // ==========================================================================
136 
137  virtual AIDA::IProfile1D* bookProf( const std::string& fullPath, const std::string& title,
138  std::vector<double> edges ) = 0;
139  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
140  std::vector<double> edges ) = 0;
141  virtual AIDA::IProfile1D* bookProf( const std::string& dirPath, int hID, const std::string& title,
142  std::vector<double> edges ) = 0;
143  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
144  std::vector<double> edges ) = 0;
145  virtual AIDA::IProfile1D* bookProf( DataObject* pParent, int hID, const std::string& title,
146  std::vector<double> edges ) = 0;
147 
148  // ==========================================================================
149  // Book 2D histogram with fixed binning
150  // ==========================================================================
151 
152  virtual AIDA::IHistogram2D* book( const std::string& fullPath, const std::string& title, int binsX, double lowX,
153  double highX, int binsY, double lowY, double highY ) = 0;
154  virtual AIDA::IHistogram2D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
155  int binsX, double lowX, double highX, int binsY, double lowY, double highY ) = 0;
156  virtual AIDA::IHistogram2D* book( const std::string& dirPath, int hID, const std::string& title, int binsX,
157  double lowX, double highX, int binsY, double lowY, double highY ) = 0;
158  virtual AIDA::IHistogram2D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
159  int binsX, double lowX, double highX, int binsY, double lowY, double highY ) = 0;
160  virtual AIDA::IHistogram2D* book( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
161  double highX, int binsY, double lowY, double highY ) = 0;
162 
163  // ==========================================================================
164  // Book 2D profile histogram with fixed binning
165  // ==========================================================================
166 
167  virtual AIDA::IProfile2D* bookProf( const std::string& fullPath, const std::string& title, int binsX, double lowX,
168  double highX, int binsY, double lowY, double highY ) = 0;
169  virtual AIDA::IProfile2D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
170  int binsX, double lowX, double highX, int binsY, double lowY, double highY ) = 0;
171  virtual AIDA::IProfile2D* bookProf( const std::string& dirPath, int hID, const std::string& title, int binsX,
172  double lowX, double highX, int binsY, double lowY, double highY ) = 0;
173  virtual AIDA::IProfile2D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
174  int binsX, double lowX, double highX, int binsY, double lowY, double highY ) = 0;
175  virtual AIDA::IProfile2D* bookProf( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
176  double highX, int binsY, double lowY, double highY ) = 0;
177 
178  // ==========================================================================
179  // Book 2D histogram with variable binning
180  // ==========================================================================
181 
182  virtual AIDA::IHistogram2D* book( const std::string& fullPath, const std::string& title, std::vector<double> edgesX,
183  std::vector<double> edgesY ) = 0;
184  virtual AIDA::IHistogram2D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
185  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
186  virtual AIDA::IHistogram2D* book( const std::string& dirPath, int hID, const std::string& title,
187  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
188  virtual AIDA::IHistogram2D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
189  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
190  virtual AIDA::IHistogram2D* book( DataObject* pParent, int hID, const std::string& title, std::vector<double> edgesX,
191  std::vector<double> edgesY ) = 0;
192 
193  // ==========================================================================
194  // Book 2D profile histogram with variable binning
195  // ==========================================================================
196 
197  virtual AIDA::IProfile2D* bookProf( const std::string& fullPath, const std::string& title, std::vector<double> edgesX,
198  std::vector<double> edgesY ) = 0;
199  virtual AIDA::IProfile2D* bookProf( const std::string& dirPath, const std::string& relPath, const std::string& title,
200  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
201  virtual AIDA::IProfile2D* bookProf( const std::string& dirPath, int hID, const std::string& title,
202  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
203  virtual AIDA::IProfile2D* bookProf( DataObject* pParent, const std::string& relPath, const std::string& title,
204  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
205  virtual AIDA::IProfile2D* bookProf( DataObject* pParent, int hID, const std::string& title,
206  std::vector<double> edgesX, std::vector<double> edgesY ) = 0;
207 
208  // ==========================================================================
209  // Book 3D histogram with fixed binning
210  // ==========================================================================
211 
212  virtual AIDA::IHistogram3D* book( const std::string& fullPath, const std::string& title, int binsX, double lowX,
213  double highX, int binsY, double lowY, double highY, int binsZ, double lowZ,
214  double highZ ) = 0;
215  virtual AIDA::IHistogram3D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
216  int binsX, double lowX, double highX, int binsY, double lowY, double highY,
217  int binsZ, double lowZ, double highZ ) = 0;
218  virtual AIDA::IHistogram3D* book( const std::string& dirPath, int hID, const std::string& title, int binsX,
219  double lowX, double highX, int binsY, double lowY, double highY, int binsZ,
220  double lowZ, double highZ ) = 0;
221  virtual AIDA::IHistogram3D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
222  int binsX, double lowX, double highX, int binsY, double lowY, double highY,
223  int binsZ, double lowZ, double highZ ) = 0;
224  virtual AIDA::IHistogram3D* book( DataObject* pParent, int hID, const std::string& title, int binsX, double lowX,
225  double highX, int binsY, double lowY, double highY, int binsZ, double lowZ,
226  double highZ ) = 0;
227 
228  // ==========================================================================
229  // Book 3D histogram with variable binning
230  // ==========================================================================
231 
232  virtual AIDA::IHistogram3D* book( const std::string& fullPath, const std::string& title, std::vector<double> edgesX,
233  std::vector<double> edgesY, std::vector<double> edgesZ ) = 0;
234  virtual AIDA::IHistogram3D* book( const std::string& dirPath, const std::string& relPath, const std::string& title,
236  std::vector<double> edgesZ ) = 0;
237  virtual AIDA::IHistogram3D* book( const std::string& dirPath, int hID, const std::string& title,
239  std::vector<double> edgesZ ) = 0;
240  virtual AIDA::IHistogram3D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
242  std::vector<double> edgesZ ) = 0;
243  virtual AIDA::IHistogram3D* book( DataObject* pParent, int hID, const std::string& title, std::vector<double> edgesX,
244  std::vector<double> edgesY, std::vector<double> edgesZ ) = 0;
245 
246  // ==========================================================================
247  // Register histogram with the data store
248  // ==========================================================================
249 
251  virtual StatusCode registerObject( const std::string& fullPath, AIDA::IBaseHistogram* hObj ) = 0;
252  // ---------------------------
253  virtual StatusCode registerObject( const std::string& parentPath, const std::string& objPath,
254  AIDA::IBaseHistogram* hObj ) = 0;
255  // ---------------------------
256  StatusCode registerObject( const std::string& parentPath, int item, AIDA::IBaseHistogram* hObj ) {
257  return registerObject( parentPath, std::to_string( item ), hObj );
258  }
259  // ---------------------------
260  virtual StatusCode registerObject( DataObject* parentObj, const std::string& objPath,
261  AIDA::IBaseHistogram* hObj ) = 0;
262  virtual StatusCode registerObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
263  AIDA::IBaseHistogram* hObj ) = 0;
264  // ---------------------------
265  StatusCode registerObject( DataObject* parentObj, int item, AIDA::IBaseHistogram* hObj ) {
266  return registerObject( parentObj, std::to_string( item ), hObj );
267  }
268 
269  StatusCode registerObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IBaseHistogram* hObj ) {
270  return registerObject( parentObj, std::to_string( item ), hObj );
271  }
272 
273  // ==========================================================================
274  // Unregister histogram from the data store
275  // ==========================================================================
276 
278  virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj ) = 0;
279  // ---------------------------
280  virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj, const std::string& objectPath ) = 0;
281  // ---------------------------
282  virtual StatusCode unregisterObject( AIDA::IBaseHistogram* hObj, int item ) = 0;
283 
284  // ==========================================================================
285  // Retrieve histogram from data store
286  // ==========================================================================
287 
289  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram1D*& h1dObj ) = 0;
290  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IProfile1D*& h1dObj ) = 0;
291  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram2D*& h2dObj ) = 0;
292  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IProfile2D*& h2dObj ) = 0;
293  virtual StatusCode retrieveObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram3D*& h3dObj ) = 0;
294  // ---------------------------
295  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IHistogram1D*& h1dObj ) = 0;
296  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IProfile1D*& h1dObj ) = 0;
297  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IHistogram2D*& h2dObj ) = 0;
298  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IProfile2D*& h2dObj ) = 0;
299  virtual StatusCode retrieveObject( const std::string& fullPath, AIDA::IHistogram3D*& h3dObj ) = 0;
300  // ---------------------------
301  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
302  AIDA::IHistogram1D*& h1dObj ) = 0;
303  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
304  AIDA::IProfile1D*& h1dObj ) = 0;
305  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
306  AIDA::IHistogram2D*& h2dObj ) = 0;
307  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
308  AIDA::IProfile2D*& h2dObj ) = 0;
309  virtual StatusCode retrieveObject( const std::string& parentPath, const std::string& objPath,
310  AIDA::IHistogram3D*& h3dObj ) = 0;
311  // ---------------------------
312  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
313  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IProfile1D*& h1dObj ) = 0;
314  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
315  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IProfile2D*& h2dObj ) = 0;
316  virtual StatusCode retrieveObject( const std::string& parentPath, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
317  // ---------------------------
318  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath,
319  AIDA::IHistogram1D*& h1dObj ) = 0;
320  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath, AIDA::IProfile1D*& h1dObj ) = 0;
321  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath,
322  AIDA::IHistogram2D*& h2dObj ) = 0;
323  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath, AIDA::IProfile2D*& h2dObj ) = 0;
324  virtual StatusCode retrieveObject( DataObject* parentObj, const std::string& objPath,
325  AIDA::IHistogram3D*& h3dObj ) = 0;
326  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
327  AIDA::IHistogram1D*& h1dObj ) = 0;
328  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
329  AIDA::IProfile1D*& h1dObj ) = 0;
330  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
331  AIDA::IHistogram2D*& h2dObj ) = 0;
332  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
333  AIDA::IProfile2D*& h2dObj ) = 0;
334  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
335  AIDA::IHistogram3D*& h3dObj ) = 0;
336  // ---------------------------
337  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
338  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IProfile1D*& h1dObj ) = 0;
339  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
340  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IProfile2D*& h2dObj ) = 0;
341  virtual StatusCode retrieveObject( DataObject* parentObj, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
342  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
343  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IProfile1D*& h1dObj ) = 0;
344  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
345  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IProfile2D*& h2dObj ) = 0;
346  virtual StatusCode retrieveObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
347 
348  // ==========================================================================
349  // Find histogram identified by its full path in the data store
350  // ==========================================================================
351 
353  virtual StatusCode findObject( const std::string& fullPath, AIDA::IHistogram1D*& h1dObj ) = 0;
354  virtual StatusCode findObject( const std::string& fullPath, AIDA::IProfile1D*& h1dObj ) = 0;
355  virtual StatusCode findObject( const std::string& fullPath, AIDA::IHistogram2D*& h2dObj ) = 0;
356  virtual StatusCode findObject( const std::string& fullPath, AIDA::IProfile2D*& h2dObj ) = 0;
357  virtual StatusCode findObject( const std::string& fullPath, AIDA::IHistogram3D*& h3dObj ) = 0;
358  // ---------------------------
359  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram1D*& h1dObj ) = 0;
360  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IProfile1D*& h1dObj ) = 0;
361  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram2D*& h2dObj ) = 0;
362  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IProfile2D*& h2dObj ) = 0;
363  virtual StatusCode findObject( IRegistry* pDirectory, const std::string& path, AIDA::IHistogram3D*& h2dObj ) = 0;
364  // ---------------------------
365  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
366  AIDA::IHistogram1D*& h1dObj ) = 0;
367  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
368  AIDA::IProfile1D*& h1dObj ) = 0;
369  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
370  AIDA::IHistogram2D*& h2dObj ) = 0;
371  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
372  AIDA::IProfile2D*& h2dObj ) = 0;
373  virtual StatusCode findObject( const std::string& parentPath, const std::string& objPath,
374  AIDA::IHistogram3D*& h3dObj ) = 0;
375  // ---------------------------
376  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
377  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IProfile1D*& h1dObj ) = 0;
378  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
379  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IProfile2D*& h2dObj ) = 0;
380  virtual StatusCode findObject( const std::string& parentPath, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
381  // ---------------------------
382  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IHistogram1D*& h1dObj ) = 0;
383  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IProfile1D*& h1dObj ) = 0;
384  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IHistogram2D*& h2dObj ) = 0;
385  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IProfile2D*& h2dObj ) = 0;
386  virtual StatusCode findObject( DataObject* parentObj, const std::string& objPath, AIDA::IHistogram3D*& h3dObj ) = 0;
387  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
388  AIDA::IHistogram1D*& h1dObj ) = 0;
389  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
390  AIDA::IProfile1D*& h1dObj ) = 0;
391  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
392  AIDA::IHistogram2D*& h2dObj ) = 0;
393  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
394  AIDA::IProfile2D*& h2dObj ) = 0;
395  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, const std::string& objPath,
396  AIDA::IHistogram3D*& h3dObj ) = 0;
397  // ---------------------------
398  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
399  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IProfile1D*& h1dObj ) = 0;
400  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
401  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IProfile2D*& h2dObj ) = 0;
402  virtual StatusCode findObject( DataObject* parentObj, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
403  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram1D*& h1dObj ) = 0;
404  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IProfile1D*& h1dObj ) = 0;
405  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram2D*& h2dObj ) = 0;
406  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IProfile2D*& h2dObj ) = 0;
407  virtual StatusCode findObject( AIDA::IBaseHistogram* parentObj, int item, AIDA::IHistogram3D*& h3dObj ) = 0;
408 
409  // ==========================================================================
410  // ASCII output
411  // ==========================================================================
412  // --------------------------------------------------------------------------
413  // Print functions (ASCII graphical representation)
414 
415  // Print (ASCII) the histogram into the output stream
416  virtual std::ostream& print( AIDA::IBaseHistogram* h, std::ostream& s = std::cout ) const = 0;
417 
418  // --------------------------------------------------------------------------
419  // Write functions (ASCII table containing numbers e.g. bin height)
420 
422  virtual std::ostream& write( AIDA::IBaseHistogram* h, std::ostream& s = std::cout ) const = 0;
423 
425  virtual int write( AIDA::IBaseHistogram* h, const char* file_name ) const = 0;
426 
427  // ==========================================================================
428  // Create all directories in a given full path
429  // ==========================================================================
430 
431  virtual DataObject* createPath( const std::string& newPath ) = 0;
432 
438  virtual DataObject* createDirectory( const std::string& parentDir, const std::string& subDir ) = 0;
439 };
440 
441 #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:87
virtual StatusCode findObject(IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject)=0
Find object identified by its directory entry.
T to_string(T...args)
Data provider interface definition.
GaudiKernel.
Definition: Fill.h:10
STL class.
StatusCode registerObject(DataObject *parentObj, int item, AIDA::IBaseHistogram *hObj)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
#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
StatusCode registerObject(const std::string &parentPath, int item, AIDA::IBaseHistogram *hObj)
StatusCode registerObject(AIDA::IBaseHistogram *parentObj, int item, AIDA::IBaseHistogram *hObj)
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:46
virtual StatusCode retrieveObject(IRegistry *pDirectory, boost::string_ref path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
StatusCode registerObject(boost::string_ref fullPath, DataObject *pObject)
Register object with the data store.
virtual StatusCode unregisterObject(boost::string_ref fullPath)=0
Unregister object from the data store.
def bookProf(args, kwargs)
Definition: HistoUtils.py:256
string s
Definition: gaudirun.py:312
#define GAUDI_API
Definition: Kernel.h:71
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
STL class.