| The Gaudi Framework v32r1 (f65d50dc)

IHistogramSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IHISTOGRAMSVC_H
2 #define GAUDIKERNEL_IHISTOGRAMSVC_H
3
4 // Include files
5 #include "GaudiKernel/IDataProviderSvc.h"
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:
49 DeclareInterfaceID( IHistogramSvc, 5, 0 );
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,
235 std::vector<double> edgesX, std::vector<double> edgesY,
236 std::vector<double> edgesZ ) = 0;
237 virtual AIDA::IHistogram3D* book( const std::string& dirPath, int hID, const std::string& title,
238 std::vector<double> edgesX, std::vector<double> edgesY,
239 std::vector<double> edgesZ ) = 0;
240 virtual AIDA::IHistogram3D* book( DataObject* pParent, const std::string& relPath, const std::string& title,
241 std::vector<double> edgesX, std::vector<double> edgesY,
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
250 using IDataProviderSvc::registerObject;
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
277 using IDataProviderSvc::unregisterObject;
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
288 using IDataProviderSvc::retrieveObject;
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
352 using IDataProviderSvc::findObject;
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
GaudiPython.HistoUtils.path
path
Definition: HistoUtils.py:932
Gaudi::Histos::book
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
std::to_string
T to_string(T... args)
IDataProviderSvc
Data provider interface definition.
Definition: IDataProviderSvc.h:43
AIDA
GaudiKernel.
Definition: Fill.h:10
IDataProviderSvc::findObject
virtual StatusCode findObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Find object identified by its directory entry.
std::string
STL class.
IDataProviderSvc::unregisterObject
virtual StatusCode unregisterObject(std::string_view fullPath)=0
Unregister object from the data store.
IHistogramSvc::registerObject
StatusCode registerObject(DataObject *parentObj, int item, AIDA::IBaseHistogram *hObj)
Definition: IHistogramSvc.h:265
IDataProviderSvc.h
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
IHistogramSvc::registerObject
StatusCode registerObject(const std::string &parentPath, int item, AIDA::IBaseHistogram *hObj)
Definition: IHistogramSvc.h:256
IHistogramSvc::registerObject
StatusCode registerObject(AIDA::IBaseHistogram *parentObj, int item, AIDA::IBaseHistogram *hObj)
Definition: IHistogramSvc.h:269
IRegistry
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
IHistogramSvc
Definition of the IHistogramSvc interface class.
Definition: IHistogramSvc.h:46
IDataProviderSvc::DeclareInterfaceID
DeclareInterfaceID(IDataProviderSvc, 4, 0)
InterfaceID.
IService.h
std::vector< double >
IDataProviderSvc::retrieveObject
virtual StatusCode retrieveObject(IRegistry *pDirectory, std::string_view path, DataObject *&pObject)=0
Retrieve object identified by its directory entry.
IDataProviderSvc::registerObject
StatusCode registerObject(std::string_view fullPath, DataObject *pObject)
Register object with the data store.
Definition: IDataProviderSvc.h:62
gaudirun.s
string s
Definition: gaudirun.py:316
GaudiPython.HistoUtils.bookProf
def bookProf(*args, **kwargs)
Definition: HistoUtils.py:256
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:71
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
std::ostream
STL class.