1 |
// -*- C++ -*- |
2 |
// AID-GENERATED |
3 |
// ========================================================================= |
4 |
// This class was generated by AID - Abstract Interface Definition |
5 |
// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. |
6 |
// ========================================================================= |
7 |
#ifndef AIDA_IHISTOGRAMFACTORY_H |
8 |
#define AIDA_IHISTOGRAMFACTORY_H 1 |
9 |
|
10 |
// This file is part of the AIDA library |
11 |
// Copyright (C) 2002 by the AIDA team. All rights reserved. |
12 |
// This library is free software and under the terms of the |
13 |
// GNU Library General Public License described in the LGPL.txt |
14 |
|
15 |
#include <string> |
16 |
#include <vector> |
17 |
|
18 |
namespace AIDA { |
19 |
|
20 |
class IBaseHistogram; |
21 |
class ICloud1D; |
22 |
class ICloud2D; |
23 |
class ICloud3D; |
24 |
class IHistogram1D; |
25 |
class IHistogram2D; |
26 |
class IHistogram3D; |
27 |
class IProfile1D; |
28 |
class IProfile2D; |
29 |
|
30 |
/** |
31 |
* User level interface for factory classes of Histograms (binned, unbinned, and profile) |
32 |
* The created objects are assumed to be managed by the tree which is associated to the factory. |
33 |
* |
34 |
* @author The AIDA team (http://aida.freehep.org/) |
35 |
* |
36 |
*/ |
37 |
|
38 |
class IHistogramFactory { |
39 |
|
40 |
public: |
41 |
/// Destructor. |
42 |
virtual ~IHistogramFactory() { /* nop */; } |
43 |
|
44 |
/** |
45 |
* Destroy an IBaseHistogram ogject. |
46 |
* @param hist The IBaseHistogram to be destroyed. |
47 |
* @return false If the histogram cannot be destroyed. |
48 |
* |
49 |
*/ |
50 |
virtual bool destroy(IBaseHistogram * hist) = 0; |
51 |
|
52 |
/** |
53 |
* Create a ICloud1D, an unbinned 1-dimensional histogram. |
54 |
* @param path The path of the created ICloud. The path can either be a relative or full path. |
55 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
56 |
* All the directories in the path must exist. The characther `/` cannot be used |
57 |
* in names; it is only used to delimit directories within paths. |
58 |
* @param title The title of the ICloud1D. |
59 |
* @param nMax The maximum number of entries after which the ICloud1D |
60 |
* will convert to an IHistogram1D. The default nMax = -1 means no autoconversion. |
61 |
* @param options The options for the ICloud1D. "autoconvert=true" to enable autoconversion |
62 |
* to an IHistogram1D. |
63 |
* @return The newly created ICloud1D. |
64 |
* |
65 |
*/ |
66 |
virtual ICloud1D * createCloud1D(const std::string & path, const std::string & title, int nMax = -1, const std::string & options = "") = 0; |
67 |
|
68 |
/** |
69 |
* Create a ICloud1D, an unbinned 1-dimensional histogram. |
70 |
* @param pathAndTitle The path of the created ICloud. The path can either be a relative or full path. |
71 |
* The last part of the path is used as the title. |
72 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
73 |
* All the directories in the path must exist. The characther `/` cannot be used |
74 |
* in names; it is only used to delimit directories within paths. |
75 |
* @return The newly created ICloud1D. |
76 |
* |
77 |
*/ |
78 |
virtual ICloud1D * createCloud1D(const std::string & pathAndTitle) = 0; |
79 |
|
80 |
/** |
81 |
* Create a copy of an ICloud1D. |
82 |
* @param path The path of the resulting ICloud. The path can either be a relative or full path. |
83 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
84 |
* All the directories in the path must exist. The characther `/` cannot be used |
85 |
* in names; it is only used to delimit directories within paths. |
86 |
* @param cloud The ICloud1D to be copied. |
87 |
* @return The copy of the ICloud1D. |
88 |
* |
89 |
*/ |
90 |
virtual ICloud1D * createCopy(const std::string & path, const ICloud1D & cloud) = 0; |
91 |
|
92 |
/** |
93 |
* Create a ICloud2D, an unbinned 2-dimensional histogram. |
94 |
* @param path The path of the created ICloud. The path can either be a relative or full path. |
95 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
96 |
* All the directories in the path must exist. The characther `/` cannot be used |
97 |
* in names; it is only used to delimit directories within paths. |
98 |
* @param title The title of the ICloud2D. |
99 |
* @param nMax The maximum number of entries after which the ICloud2D |
100 |
* will convert to an IHistogram2D. The default nMax = -1 means no autoconversion. |
101 |
* @param options The options for the ICloud2D. "autoconvert=true" to enable autoconversion |
102 |
* to an IHistogram2D. |
103 |
* @return The newly created ICloud2D. |
104 |
* |
105 |
*/ |
106 |
virtual ICloud2D * createCloud2D(const std::string & path, const std::string & title, int nMax = -1, const std::string & options = "") = 0; |
107 |
|
108 |
/** |
109 |
* Create a ICloud2D, an unbinned 2-dimensional histogram. |
110 |
* @param pathAndTitle The path of the created created ICloud. The path can either be a relative or full path. |
111 |
* The last part of the path is used as the title. |
112 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
113 |
* All the directories in the path must exist. The characther `/` cannot be used |
114 |
* in names; it is only used to delimit directories within paths. |
115 |
* @return The newly created ICloud2D. |
116 |
* |
117 |
*/ |
118 |
virtual ICloud2D * createCloud2D(const std::string & pathAndTitle) = 0; |
119 |
|
120 |
/** |
121 |
* Create a copy of an ICloud2D. |
122 |
* @param path The path of the resulting ICloud. The path can either be a relative or full path. |
123 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
124 |
* All the directories in the path must exist. The characther `/` cannot be used |
125 |
* in names; it is only used to delimit directories within paths. |
126 |
* @param cloud The ICloud2D to be copied. |
127 |
* @return The copy of the ICloud2D. |
128 |
* |
129 |
*/ |
130 |
virtual ICloud2D * createCopy(const std::string & path, const ICloud2D & cloud) = 0; |
131 |
|
132 |
/** |
133 |
* Create a ICloud3D, an unbinned 3-dimensional histogram. |
134 |
* @param path The path of the created ICloud. The path can either be a relative or full path. |
135 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
136 |
* All the directories in the path must exist. The characther `/` cannot be used |
137 |
* in names; it is only used to delimit directories within paths. |
138 |
* @param title The title of the ICloud3D. |
139 |
* @param nMax The maximum number of entries after which the ICloud3D |
140 |
* will convert to an IHistogram3D. The default nMax = -1 means no autoconversion |
141 |
* @param options The options for the ICloud3D. "autoconvert=true" to enable autoconversion |
142 |
* to an IHistogram3D. |
143 |
* @return The newly created ICloud3D. |
144 |
* |
145 |
*/ |
146 |
virtual ICloud3D * createCloud3D(const std::string & path, const std::string & title, int nMax = -1, const std::string & options = "") = 0; |
147 |
|
148 |
/** |
149 |
* Create a ICloud3D, an unbinned 3-dimensional histogram. |
150 |
* @param pathAndTitle The path of the created created ICloud. The path can either be a relative or full path. |
151 |
* The last part of the path is used as the title. |
152 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
153 |
* All the directories in the path must exist. The characther `/` cannot be used |
154 |
* in names; it is only used to delimit directories within paths. |
155 |
* @return The newly created ICloud3D. |
156 |
* |
157 |
*/ |
158 |
virtual ICloud3D * createCloud3D(const std::string & pathAndTitle) = 0; |
159 |
|
160 |
/** |
161 |
* Create a copy of an ICloud3D. |
162 |
* @param path The path of the resulting ICloud. The path can either be a relative or full path. |
163 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
164 |
* All the directories in the path must exist. The characther `/` cannot be used |
165 |
* in names; it is only used to delimit directories within paths. |
166 |
* @param cloud The ICloud3D to be copied. |
167 |
* @return The copy of the ICloud3D. |
168 |
* |
169 |
*/ |
170 |
virtual ICloud3D * createCopy(const std::string & path, const ICloud3D & cloud) = 0; |
171 |
|
172 |
/** |
173 |
* Create a IHistogram1D. |
174 |
* @param path The path of the created IHistogram. The path can either be a relative or full path. |
175 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
176 |
* All the directories in the path must exist. The characther `/` cannot be used |
177 |
* in names; it is only used to delimit directories within paths. |
178 |
* @param title The title of the IHistogram1D. |
179 |
* @param nBins The number of bins of the x axis. |
180 |
* @param lowerEdge The lower edge of the x axis. |
181 |
* @param upperEdge The upper edge of the x axis. |
182 |
* @param options The options for the IHistogram1D. The default is "". |
183 |
* "type=efficiency" for an efficiency IHistogram1D. |
184 |
* @return The newly created IHistogram1D. |
185 |
* |
186 |
*/ |
187 |
virtual IHistogram1D * createHistogram1D(const std::string & path, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; |
188 |
|
189 |
/** |
190 |
* Create a IHistogram1D. |
191 |
* @param pathAndTitle The path of the created created IHistogram. The path can either be a relative or full path. |
192 |
* The last part of the path is used as the title. |
193 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
194 |
* All the directories in the path must exist. The characther `/` cannot be used |
195 |
* in names; it is only used to delimit directories within paths. |
196 |
* @param nBins The number of bins of the x axis. |
197 |
* @param lowerEdge The lower edge of the x axis. |
198 |
* @param upperEdge The upper edge of the x axis. |
199 |
* @return The newly created IHistogram1D. |
200 |
* |
201 |
*/ |
202 |
virtual IHistogram1D * createHistogram1D(const std::string & pathAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; |
203 |
|
204 |
/** |
205 |
* Create a IHistogram1D. |
206 |
* @param path The path of the created IHistogram. The path can either be a relative or full path. |
207 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
208 |
* All the directories in the path must exist. The characther `/` cannot be used |
209 |
* in names; it is only used to delimit directories within paths. |
210 |
* @param title The title of the IHistogram1D. |
211 |
* @param binEdges The array of the bin edges for the x axis. |
212 |
* @param options The options for the IHistogram1D. The default is "". |
213 |
* "type=efficiency" for an efficiency IHistogram1D. |
214 |
* @return The newly created IHistogram1D. |
215 |
* |
216 |
*/ |
217 |
virtual IHistogram1D * createHistogram1D(const std::string & path, const std::string & title, const std::vector<double> & binEdges, const std::string & options = "") = 0; |
218 |
|
219 |
/** |
220 |
* Create a copy of an IHistogram1D. |
221 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
222 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
223 |
* All the directories in the path must exist. The characther `/` cannot be used |
224 |
* in names; it is only used to delimit directories within paths. |
225 |
* @param hist The IHistogram1D to be copied. |
226 |
* @return The copy of the IHistogram1D. |
227 |
* |
228 |
*/ |
229 |
virtual IHistogram1D * createCopy(const std::string & path, const IHistogram1D & hist) = 0; |
230 |
|
231 |
/** |
232 |
* Create a IHistogram2D. |
233 |
* @param path The path of the created IHistogram. The path can either be a relative or full path. |
234 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
235 |
* All the directories in the path must exist. The characther `/` cannot be used |
236 |
* in names; it is only used to delimit directories within paths. |
237 |
* @param title The title of the IHistogram2D. |
238 |
* @param nBinsX The number of bins of the x axis. |
239 |
* @param lowerEdgeX The lower edge of the x axis. |
240 |
* @param upperEdgeX The upper edge of the x axis. |
241 |
* @param nBinsY The number of bins of the y axis. |
242 |
* @param lowerEdgeY The lower edge of the y axis. |
243 |
* @param upperEdgeY The upper edge of the y axis. |
244 |
* @param options The options for the IHistogram2D. The default is "". |
245 |
* "type=efficiency" for an efficiency IHistogram2D. |
246 |
* @return The newly created IHistogram2D. |
247 |
* |
248 |
*/ |
249 |
virtual IHistogram2D * createHistogram2D(const std::string & path, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string & options = "") = 0; |
250 |
|
251 |
/** |
252 |
* Create a IHistogram2D. |
253 |
* @param pathAndTitle The path of the created created IHistogram. The path can either be a relative or full path. |
254 |
* The last part of the path is used as the title. |
255 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
256 |
* All the directories in the path must exist. The characther `/` cannot be used |
257 |
* in names; it is only used to delimit directories within paths. |
258 |
* @param nBinsX The number of bins of the x axis. |
259 |
* @param lowerEdgeX The lower edge of the x axis. |
260 |
* @param upperEdgeX The upper edge of the x axis. |
261 |
* @param nBinsY The number of bins of the y axis. |
262 |
* @param lowerEdgeY The lower edge of the y axis. |
263 |
* @param upperEdgeY The upper edge of the y axis. |
264 |
* @return The newly created IHistogram2D. |
265 |
* |
266 |
*/ |
267 |
virtual IHistogram2D * createHistogram2D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; |
268 |
|
269 |
/** |
270 |
* Create a IHistogram2D. |
271 |
* @param path The path of the created IHistogram. The path can either be a relative or full path. |
272 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
273 |
* All the directories in the path must exist. The characther `/` cannot be used |
274 |
* in names; it is only used to delimit directories within paths. |
275 |
* @param title The title of the IHistogram2D. |
276 |
* @param binEdgesX The array of the bin edges for the x axis. |
277 |
* @param binEdgesY The array of the bin edges for the y axis. |
278 |
* @param options The options for the IHistogram2D. The default is "". |
279 |
* "type=efficiency" for an efficiency IHistogram2D. |
280 |
* @return The newly created IHistogram2D. |
281 |
* |
282 |
*/ |
283 |
virtual IHistogram2D * createHistogram2D(const std::string & path, const std::string & title, const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY, const std::string & options = "") = 0; |
284 |
|
285 |
/** |
286 |
* Create a copy of an IHistogram2D. |
287 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
288 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
289 |
* All the directories in the path must exist. The characther `/` cannot be used |
290 |
* in names; it is only used to delimit directories within paths. |
291 |
* @param hist The IHistogram2D to be copied. |
292 |
* @return The copy of the IHistogram2D. |
293 |
* |
294 |
*/ |
295 |
virtual IHistogram2D * createCopy(const std::string & copy, const IHistogram2D & hist) = 0; |
296 |
|
297 |
/** |
298 |
* Create a IHistogram3D. |
299 |
* @param path The path of the created IHistogram. The path can either be a relative or full path. |
300 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
301 |
* All the directories in the path must exist. The characther `/` cannot be used |
302 |
* in names; it is only used to delimit directories within paths. |
303 |
* @param title The title of the IHistogram3D. |
304 |
* @param nBinsX The number of bins of the x axis. |
305 |
* @param lowerEdgeX The lower edge of the x axis. |
306 |
* @param upperEdgeX The upper edge of the x axis. |
307 |
* @param nBinsY The number of bins of the y axis. |
308 |
* @param lowerEdgeY The lower edge of the y axis. |
309 |
* @param upperEdgeY The upper edge of the y axis. |
310 |
* @param nBinsZ The number of bins of the z axis. |
311 |
* @param lowerEdgeZ The lower edge of the z axis. |
312 |
* @param upperEdgeZ The upper edge of the z axis. |
313 |
* @param options The options for the IHistogram3D. The default is "". |
314 |
* "type=efficiency" for an efficiency IHistogram3D. |
315 |
* @return The newly created IHistogram3D. |
316 |
* |
317 |
*/ |
318 |
virtual IHistogram3D * createHistogram3D(const std::string & path, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ, const std::string & options = "") = 0; |
319 |
|
320 |
/** |
321 |
* Create a IHistogram3D. |
322 |
* @param pathAndTitle The path of the created created IHistogram. The path can either be a relative or full path. |
323 |
* The last part of the path is used as the title. |
324 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
325 |
* All the directories in the path must exist. The characther `/` cannot be used |
326 |
* in names; it is only used to delimit directories within paths. |
327 |
* @param nBinsX The number of bins of the x axis. |
328 |
* @param lowerEdgeX The lower edge of the x axis. |
329 |
* @param upperEdgeX The upper edge of the x axis. |
330 |
* @param nBinsY The number of bins of the y axis. |
331 |
* @param lowerEdgeY The lower edge of the y axis. |
332 |
* @param upperEdgeY The upper edge of the y axis. |
333 |
* @param nBinsZ The number of bins of the z axis. |
334 |
* @param lowerEdgeZ The lower edge of the z axis. |
335 |
* @param upperEdgeZ The upper edge of the z axis. |
336 |
* @return The newly created IHistogram3D. |
337 |
* |
338 |
*/ |
339 |
virtual IHistogram3D * createHistogram3D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ) = 0; |
340 |
|
341 |
/** |
342 |
* Create a IHistogram3D. |
343 |
* @param path The path of the created IHistogram. The path can either be a relative or full path. |
344 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
345 |
* All the directories in the path must exist. The characther `/` cannot be used |
346 |
* in names; it is only used to delimit directories within paths. |
347 |
* @param title The title of the IHistogram3D. |
348 |
* @param binEdgesX The array of the bin edges for the x axis. |
349 |
* @param binEdgesY The array of the bin edges for the y axis. |
350 |
* @param binEdgesZ The array of the bin edges for the z axis. |
351 |
* @param options The options for the IHistogram3D. The default is "". |
352 |
* "type=efficiency" for an efficiency IHistogram3D. |
353 |
* @return The newly created IHistogram3D. |
354 |
* |
355 |
*/ |
356 |
virtual IHistogram3D * createHistogram3D(const std::string & path, const std::string & title, const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY, const std::vector<double> & binEdgesZ, const std::string & options = "") = 0; |
357 |
|
358 |
/** |
359 |
* Create a copy of an IHistogram3D. |
360 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
361 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
362 |
* All the directories in the path must exist. The characther `/` cannot be used |
363 |
* in names; it is only used to delimit directories within paths. |
364 |
* @param hist The IHistogram3D to be copied. |
365 |
* @return The copy of the IHistogram3D. |
366 |
* |
367 |
*/ |
368 |
virtual IHistogram3D * createCopy(const std::string & path, const IHistogram3D & hist) = 0; |
369 |
|
370 |
/** |
371 |
* Create a IProfile1D. |
372 |
* @param path The path of the created IProfile. The path can either be a relative or full path. |
373 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
374 |
* All the directories in the path must exist. The characther `/` cannot be used |
375 |
* in names; it is only used to delimit directories within paths. |
376 |
* @param title The title of the IProfile1D. |
377 |
* @param nBins The number of bins of the x axis. |
378 |
* @param lowerEdge The lower edge of the x axis. |
379 |
* @param upperEdge The upper edge of the x axis. |
380 |
* @param options The options for the IProfile1D. The default is "". |
381 |
* @return The newly created IProfile1D. |
382 |
* |
383 |
*/ |
384 |
virtual IProfile1D * createProfile1D(const std::string & path, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; |
385 |
|
386 |
/** |
387 |
* Create a IProfile1D. |
388 |
* @param path The path of the created IProfile. The path can either be a relative or full path. |
389 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
390 |
* All the directories in the path must exist. The characther `/` cannot be used |
391 |
* in names; it is only used to delimit directories within paths. |
392 |
* @param title The title of the IProfile1D. |
393 |
* @param nBins The number of bins of the x axis. |
394 |
* @param lowerEdge The lower edge of the x axis. |
395 |
* @param upperEdge The upper edge of the x axis. |
396 |
* @param lowerValue The lower value displayed along the y axis. |
397 |
* @param upperValue The upper value displayed along the y axis. |
398 |
* @param options The options for the IProfile1D. The default is "". |
399 |
* @return The newly created IProfile1D. |
400 |
* |
401 |
*/ |
402 |
virtual IProfile1D * createProfile1D(const std::string & path, const std::string & title, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue, const std::string & options = "") = 0; |
403 |
|
404 |
/** |
405 |
* Create a IProfile1D. |
406 |
* @param path The path of the created IProfile. The path can either be a relative or full path. |
407 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
408 |
* All the directories in the path must exist. The characther `/` cannot be used |
409 |
* in names; it is only used to delimit directories within paths. |
410 |
* @param title The title of the IProfile1D. |
411 |
* @param binEdges The array of the bin edges for the x axis. |
412 |
* @param options The options for the IProfile1D. The default is "". |
413 |
* @return The newly created IProfile1D. |
414 |
* |
415 |
*/ |
416 |
virtual IProfile1D * createProfile1D(const std::string & path, const std::string & title, const std::vector<double> & binEdges, const std::string & options = "") = 0; |
417 |
|
418 |
/** |
419 |
* Create a IProfile1D. |
420 |
* @param path The path of the created IProfile. The path can either be a relative or full path. |
421 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
422 |
* All the directories in the path must exist. The characther `/` cannot be used |
423 |
* in names; it is only used to delimit directories within paths. |
424 |
* @param title The title of the IProfile1D. |
425 |
* @param binEdges The array of the bin edges for the x axis. |
426 |
* @param lowerValue The lower value displayed along the y axis. |
427 |
* @param upperValue The upper value displayed along the y axis. |
428 |
* @param options The options for the IProfile1D. The default is "". |
429 |
* @return The newly created IProfile1D. |
430 |
* |
431 |
*/ |
432 |
virtual IProfile1D * createProfile1D(const std::string & path, const std::string & title, const std::vector<double> & binEdges, double lowerValue, double upperValue, const std::string & options = "") = 0; |
433 |
|
434 |
/** |
435 |
* Create a IProfile1D. |
436 |
* @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. |
437 |
* The last part of the path is used as the title. |
438 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
439 |
* All the directories in the path must exist. The characther `/` cannot be used |
440 |
* in names; it is only used to delimit directories within paths. |
441 |
* @param nBins The number of bins of the x axis. |
442 |
* @param lowerEdge The lower edge of the x axis. |
443 |
* @param upperEdge The upper edge of the x axis. |
444 |
* @return The newly created IProfile1D. |
445 |
* |
446 |
*/ |
447 |
virtual IProfile1D * createProfile1D(const std::string & pathAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; |
448 |
|
449 |
/** |
450 |
* Create a IProfile1D. |
451 |
* @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. |
452 |
* The last part of the path is used as the title. |
453 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
454 |
* All the directories in the path must exist. The characther `/` cannot be used |
455 |
* in names; it is only used to delimit directories within paths. |
456 |
* @param nBins The number of bins of the x axis. |
457 |
* @param lowerEdge The lower edge of the x axis. |
458 |
* @param upperEdge The upper edge of the x axis. |
459 |
* @param lowerValue The lower value displayed along the y axis. |
460 |
* @param upperValue The upper value displayed along the y axis. |
461 |
* @return The newly created IProfile1D. |
462 |
* |
463 |
*/ |
464 |
virtual IProfile1D * createProfile1D(const std::string & pathAndTitle, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue) = 0; |
465 |
|
466 |
/** |
467 |
* Create a copy of an IProfile1D. |
468 |
* @param path The path of the resulting IProfile. The path can either be a relative or full path. |
469 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
470 |
* All the directories in the path must exist. The characther `/` cannot be used |
471 |
* in names; it is only used to delimit directories within paths. |
472 |
* @param profile The IProfile1D to be copied. |
473 |
* @return The copy of the IProfile1D. |
474 |
* |
475 |
*/ |
476 |
virtual IProfile1D * createCopy(const std::string & path, const IProfile1D & profile) = 0; |
477 |
|
478 |
/** |
479 |
* Create a IProfile2D. |
480 |
* @param path The path of the created IProfile. The path can either be a relative or full path. |
481 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
482 |
* All the directories in the path must exist. The characther `/` cannot be used |
483 |
* in names; it is only used to delimit directories within paths. |
484 |
* @param title The title of the IProfile2D. |
485 |
* @param nBinsX The number of bins of the x axis. |
486 |
* @param lowerEdgeX The lower edge of the x axis. |
487 |
* @param upperEdgeX The upper edge of the x axis. |
488 |
* @param nBinsY The number of bins of the y axis. |
489 |
* @param lowerEdgeY The lower edge of the y axis. |
490 |
* @param upperEdgeY The upper edge of the y axis. |
491 |
* @param options The options for the IProfile2D. The default is "". |
492 |
* @return The newly created IProfile2D. |
493 |
* |
494 |
*/ |
495 |
virtual IProfile2D * createProfile2D(const std::string & path, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string & options = "") = 0; |
496 |
|
497 |
/** |
498 |
* Create a IProfile2D. |
499 |
* @param path The path of the created IProfile. The path can either be a relative or full path. |
500 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
501 |
* All the directories in the path must exist. The characther `/` cannot be used |
502 |
* in names; it is only used to delimit directories within paths. |
503 |
* @param title The title of the IProfile2D. |
504 |
* @param nBinsX The number of bins of the x axis. |
505 |
* @param lowerEdgeX The lower edge of the x axis. |
506 |
* @param upperEdgeX The upper edge of the x axis. |
507 |
* @param nBinsY The number of bins of the y axis. |
508 |
* @param lowerEdgeY The lower edge of the y axis. |
509 |
* @param upperEdgeY The upper edge of the y axis. |
510 |
* @param lowerValue The lower value displayed along the z axis. |
511 |
* @param upperValue The upper value displayed along the z axis. |
512 |
* @param options The options for the IProfile2D. The default is "". |
513 |
* @return The newly created IProfile2D. |
514 |
* |
515 |
*/ |
516 |
virtual IProfile2D * createProfile2D(const std::string & path, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, double lowerValue, double upperValue, const std::string & options = "") = 0; |
517 |
|
518 |
/** |
519 |
* Create a IProfile2D. |
520 |
* @param path The path of the created IProfile. The path can either be a relative or full path. |
521 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
522 |
* All the directories in the path must exist. The characther `/` cannot be used |
523 |
* in names; it is only used to delimit directories within paths. |
524 |
* @param title The title of the IProfile2D. |
525 |
* @param binEdgesX The array of the bin edges for the x axis. |
526 |
* @param binEdgesY The array of the bin edges for the y axis. |
527 |
* @param options The options for the IProfile2D. The default is "". |
528 |
* @return The newly created IProfile2D. |
529 |
* |
530 |
*/ |
531 |
virtual IProfile2D * createProfile2D(const std::string & path, const std::string & title, const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY, const std::string & options = "") = 0; |
532 |
|
533 |
/** |
534 |
* Create a IProfile2D. |
535 |
* @param path The path of the created IProfile. The path can either be a relative or full path. |
536 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
537 |
* All the directories in the path must exist. The characther `/` cannot be used |
538 |
* in names; it is only used to delimit directories within paths. |
539 |
* @param title The title of the IProfile2D. |
540 |
* @param binEdgesX The array of the bin edges for the x axis. |
541 |
* @param binEdgesY The array of the bin edges for the y axis. |
542 |
* @param lowerValue The lower value displayed along the y axis. |
543 |
* @param upperValue The upper value displayed along the y axis. |
544 |
* @param options The options for the IProfile2D. The default is "". |
545 |
* @return The newly created IProfile2D. |
546 |
* |
547 |
*/ |
548 |
virtual IProfile2D * createProfile2D(const std::string & path, const std::string & title, const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY, double lowerValue, double upperValue, const std::string & options = "") = 0; |
549 |
|
550 |
/** |
551 |
* Create a IProfile2D. |
552 |
* @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. |
553 |
* The last part of the path is used as the title. |
554 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
555 |
* All the directories in the path must exist. The characther `/` cannot be used |
556 |
* in names; it is only used to delimit directories within paths. |
557 |
* @param nBinsX The number of bins of the x axis. |
558 |
* @param lowerEdgeX The lower edge of the x axis. |
559 |
* @param upperEdgeX The upper edge of the x axis. |
560 |
* @param nBinsY The number of bins of the y axis. |
561 |
* @param lowerEdgeY The lower edge of the y axis. |
562 |
* @param upperEdgeY The upper edge of the y axis. |
563 |
* @return The newly created IProfile2D. |
564 |
* |
565 |
*/ |
566 |
virtual IProfile2D * createProfile2D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; |
567 |
|
568 |
/** |
569 |
* Create a IProfile2D. |
570 |
* @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. |
571 |
* The last part of the path is used as the title. |
572 |
* ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). |
573 |
* All the directories in the path must exist. The characther `/` cannot be used |
574 |
* in names; it is only used to delimit directories within paths. |
575 |
* @param nBinsX The number of bins of the x axis. |
576 |
* @param lowerEdgeX The lower edge of the x axis. |
577 |
* @param upperEdgeX The upper edge of the x axis. |
578 |
* @param nBinsY The number of bins of the y axis. |
579 |
* @param lowerEdgeY The lower edge of the y axis. |
580 |
* @param upperEdgeY The upper edge of the y axis. |
581 |
* @param lowerValue The lower value displayed along the z axis. |
582 |
* @param upperValue The upper value displayed along the z axis. |
583 |
* @return The newly created IProfile2D. |
584 |
* |
585 |
*/ |
586 |
virtual IProfile2D * createProfile2D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, double lowerValue, double upperValue) = 0; |
587 |
|
588 |
/** |
589 |
* Create a copy of an IProfile2D. |
590 |
* @param path The path of the resulting IProfile. The path can either be a relative or full path. |
591 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
592 |
* All the directories in the path must exist. The characther `/` cannot be used |
593 |
* in names; it is only used to delimit directories within paths. |
594 |
* @param profile The IProfile2D to be copied. |
595 |
* @return The copy of the IProfile2D. |
596 |
* |
597 |
*/ |
598 |
virtual IProfile2D * createCopy(const std::string & path, const IProfile2D & profile) = 0; |
599 |
|
600 |
/** |
601 |
* Create an IHistogram1D by adding two IHistogram1D. |
602 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
603 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
604 |
* All the directories in the path must exist. The characther `/` cannot be used |
605 |
* in names; it is only used to delimit directories within paths. |
606 |
* @param hist1 The first member of the addition. |
607 |
* @param hist2 The second member of the addition. |
608 |
* @return The sum of the two IHistogram1D. |
609 |
* if a directory in the path does not exist, or the path is illegal. |
610 |
* |
611 |
*/ |
612 |
virtual IHistogram1D * add(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; |
613 |
|
614 |
/** |
615 |
* Create an IHistogram1D by subtracting two IHistogram1D. |
616 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
617 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
618 |
* All the directories in the path must exist. The characther `/` cannot be used |
619 |
* in names; it is only used to delimit directories within paths. |
620 |
* @param hist1 The first member of the subtraction. |
621 |
* @param hist2 The second member of the subtraction. |
622 |
* @return The difference of the two IHistogram1D. |
623 |
* if a directory in the path does not exist, or the path is illegal. |
624 |
* |
625 |
*/ |
626 |
virtual IHistogram1D * subtract(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; |
627 |
|
628 |
/** |
629 |
* Create an IHistogram1D by multiplying two IHistogram1D. |
630 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
631 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
632 |
* All the directories in the path must exist. The characther `/` cannot be used |
633 |
* in names; it is only used to delimit directories within paths. |
634 |
* @param hist1 The first member of the multiplication. |
635 |
* @param hist2 The second member of the multiplication. |
636 |
* @return The product of the two IHistogram1D. |
637 |
* if a directory in the path does not exist, or the path is illegal. |
638 |
* |
639 |
*/ |
640 |
virtual IHistogram1D * multiply(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; |
641 |
|
642 |
/** |
643 |
* Create an IHistogram1D by dividing two IHistogram1D. |
644 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
645 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
646 |
* All the directories in the path must exist. The characther `/` cannot be used |
647 |
* in names; it is only used to delimit directories within paths. |
648 |
* @param hist1 The first member of the division. |
649 |
* @param hist2 The second member of the division. |
650 |
* @return The ration of the two IHistogram1D. |
651 |
* if a directory in the path does not exist, or the path is illegal. |
652 |
* |
653 |
*/ |
654 |
virtual IHistogram1D * divide(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; |
655 |
|
656 |
/** |
657 |
* Create an IHistogram2D by adding two IHistogram2D. |
658 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
659 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
660 |
* All the directories in the path must exist. The characther `/` cannot be used |
661 |
* in names; it is only used to delimit directories within paths. |
662 |
* @param hist1 The first member of the addition. |
663 |
* @param hist2 The second member of the addition. |
664 |
* @return The sum of the two IHistogram2D. |
665 |
* if a directory in the path does not exist, or the path is illegal. |
666 |
* |
667 |
*/ |
668 |
virtual IHistogram2D * add(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; |
669 |
|
670 |
/** |
671 |
* Create an IHistogram2D by subtracting two IHistogram2D. |
672 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
673 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
674 |
* All the directories in the path must exist. The characther `/` cannot be used |
675 |
* in names; it is only used to delimit directories within paths. |
676 |
* @param hist1 The first member of the subtraction. |
677 |
* @param hist2 The second member of the subtraction. |
678 |
* @return The difference of the two IHistogram2D. |
679 |
* if a directory in the path does not exist, or the path is illegal. |
680 |
* |
681 |
*/ |
682 |
virtual IHistogram2D * subtract(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; |
683 |
|
684 |
/** |
685 |
* Create an IHistogram2D by multiplying two IHistogram2D. |
686 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
687 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
688 |
* All the directories in the path must exist. The characther `/` cannot be used |
689 |
* in names; it is only used to delimit directories within paths. |
690 |
* @param hist1 The first member of the multiplication. |
691 |
* @param hist2 The second member of the multiplication. |
692 |
* @return The product of the two IHistogram2D. |
693 |
* if a directory in the path does not exist, or the path is illegal. |
694 |
* |
695 |
*/ |
696 |
virtual IHistogram2D * multiply(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; |
697 |
|
698 |
/** |
699 |
* Create an IHistogram2D by dividing two IHistogram2D. |
700 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
701 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
702 |
* All the directories in the path must exist. The characther `/` cannot be used |
703 |
* in names; it is only used to delimit directories within paths. |
704 |
* @param hist1 The first member of the division. |
705 |
* @param hist2 The second member of the division. |
706 |
* @return The ration of the two IHistogram2D. |
707 |
* if a directory in the path does not exist, or the path is illegal. |
708 |
* |
709 |
*/ |
710 |
virtual IHistogram2D * divide(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; |
711 |
|
712 |
/** |
713 |
* Create an IHistogram3D by adding two IHistogram3D. |
714 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
715 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
716 |
* All the directories in the path must exist. The characther `/` cannot be used |
717 |
* in names; it is only used to delimit directories within paths. |
718 |
* @param hist1 The first member of the addition. |
719 |
* @param hist2 The second member of the addition. |
720 |
* @return The sum of the two IHistogram3D. |
721 |
* if a directory in the path does not exist, or the path is illegal. |
722 |
* |
723 |
*/ |
724 |
virtual IHistogram3D * add(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; |
725 |
|
726 |
/** |
727 |
* Create an IHistogram3D by subtracting two IHistogram3D. |
728 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
729 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
730 |
* All the directories in the path must exist. The characther `/` cannot be used |
731 |
* in names; it is only used to delimit directories within paths. |
732 |
* @param hist1 The first member of the subtraction. |
733 |
* @param hist2 The second member of the subtraction. |
734 |
* @return The difference of the two IHistogram3D. |
735 |
* if a directory in the path does not exist, or the path is illegal. |
736 |
* |
737 |
*/ |
738 |
virtual IHistogram3D * subtract(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; |
739 |
|
740 |
/** |
741 |
* Create an IHistogram3D by multiplying two IHistogram3D. |
742 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
743 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
744 |
* All the directories in the path must exist. The characther `/` cannot be used |
745 |
* in names; it is only used to delimit directories within paths. |
746 |
* @param hist1 The first member of the multiplication. |
747 |
* @param hist2 The second member of the multiplication. |
748 |
* @return The product of the two IHistogram3D. |
749 |
* if a directory in the path does not exist, or the path is illegal. |
750 |
* |
751 |
*/ |
752 |
virtual IHistogram3D * multiply(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; |
753 |
|
754 |
/** |
755 |
* Create an IHistogram3D by dividing two IHistogram3D. |
756 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
757 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
758 |
* All the directories in the path must exist. The characther `/` cannot be used |
759 |
* in names; it is only used to delimit directories within paths. |
760 |
* @param hist1 The first member of the division. |
761 |
* @param hist2 The second member of the division. |
762 |
* @return The ration of the two IHistogram3D. |
763 |
* if a directory in the path does not exist, or the path is illegal. |
764 |
* |
765 |
*/ |
766 |
virtual IHistogram3D * divide(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; |
767 |
|
768 |
/** |
769 |
* Create an IHistogram1D by projecting an IHistogram2D along its x axis. |
770 |
* This is equivalent to <tt>sliceX(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. |
771 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
772 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
773 |
* All the directories in the path must exist. The characther `/` cannot be used |
774 |
* in names; it is only used to delimit directories within paths. |
775 |
* @param hist The IHistogram2D to be projected. |
776 |
* @return The resulting projection. |
777 |
* |
778 |
*/ |
779 |
virtual IHistogram1D * projectionX(const std::string & path, const IHistogram2D & hist) = 0; |
780 |
|
781 |
/** |
782 |
* Create an IHistogram1D by projecting an IHistogram2D along its y axis. |
783 |
* This is equivalent to <tt>sliceY(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. |
784 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
785 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
786 |
* All the directories in the path must exist. The characther `/` cannot be used |
787 |
* in names; it is only used to delimit directories within paths. |
788 |
* @param hist The IHistogram2D to be projected. |
789 |
* @return The resulting projection. |
790 |
* |
791 |
*/ |
792 |
virtual IHistogram1D * projectionY(const std::string & path, const IHistogram2D & hist) = 0; |
793 |
|
794 |
/** |
795 |
* Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis at a given bin. |
796 |
* This is equivalent to <tt>sliceX(indexY,indexY)</tt>. |
797 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
798 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
799 |
* All the directories in the path must exist. The characther `/` cannot be used |
800 |
* in names; it is only used to delimit directories within paths. |
801 |
* @param hist The IHistogram2D to be sliced. |
802 |
* @param index The index of the bin along the y axis where the IHistogram2D has to be sliced. |
803 |
* @return The resulting slice. |
804 |
* |
805 |
*/ |
806 |
virtual IHistogram1D * sliceX(const std::string & path, const IHistogram2D & hist, int index) = 0; |
807 |
|
808 |
/** |
809 |
* Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis at a given bin. |
810 |
* This is equivalent to <tt>sliceY(indexX,indexX)</tt>. |
811 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
812 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
813 |
* All the directories in the path must exist. The characther `/` cannot be used |
814 |
* in names; it is only used to delimit directories within paths. |
815 |
* @param hist The IHistogram2D to be sliced. |
816 |
* @param index The index of the bin along the x axis where the IHistogram2D has to be sliced. |
817 |
* @return The resulting slice. |
818 |
* |
819 |
*/ |
820 |
virtual IHistogram1D * sliceY(const std::string & path, const IHistogram2D & hist, int index) = 0; |
821 |
|
822 |
/** |
823 |
* Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis between two bins (inclusive). |
824 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
825 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
826 |
* All the directories in the path must exist. The characther `/` cannot be used |
827 |
* in names; it is only used to delimit directories within paths. |
828 |
* @param hist The IHistogram2D to be sliced. |
829 |
* @param index1 The index of the bin along the y axis that marks the lower edge of the slice. |
830 |
* @param index2 The index of the bin along the y axis that marks the upper edge of the slice. |
831 |
* @return The resulting slice. |
832 |
* |
833 |
*/ |
834 |
virtual IHistogram1D * sliceX(const std::string & path, const IHistogram2D & hist, int index1, int index2) = 0; |
835 |
|
836 |
/** |
837 |
* Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis between two bins (inclusive). |
838 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
839 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
840 |
* All the directories in the path must exist. The characther `/` cannot be used |
841 |
* in names; it is only used to delimit directories within paths. |
842 |
* @param hist The IHistogram2D to be sliced. |
843 |
* @param index1 The index of the bin along the x axis that marks the lower edge of the slice. |
844 |
* @param index2 The index of the bin along the x axis that marks the upper edge of the slice. |
845 |
* @return The resulting slice. |
846 |
* |
847 |
*/ |
848 |
virtual IHistogram1D * sliceY(const std::string & path, const IHistogram2D & hist, int index1, int index2) = 0; |
849 |
|
850 |
/** |
851 |
* Create an IHistogram2D by projecting an IHistogram3D on the x-y plane. |
852 |
* This is equivalent to <tt>sliceXY(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. |
853 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
854 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
855 |
* All the directories in the path must exist. The characther `/` cannot be used |
856 |
* in names; it is only used to delimit directories within paths. |
857 |
* @param hist The IHistogram3D to be projected. |
858 |
* @return The resulting projection. |
859 |
* |
860 |
*/ |
861 |
virtual IHistogram2D * projectionXY(const std::string & path, const IHistogram3D & hist) = 0; |
862 |
|
863 |
/** |
864 |
* Create an IHistogram2D by projecting an IHistogram3D on the x-z plane. |
865 |
* This is equivalent to <tt>sliceXZ(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. |
866 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
867 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
868 |
* All the directories in the path must exist. The characther `/` cannot be used |
869 |
* in names; it is only used to delimit directories within paths. |
870 |
* @param hist The IHistogram3D to be projected. |
871 |
* @return The resulting projection. |
872 |
* |
873 |
*/ |
874 |
virtual IHistogram2D * projectionXZ(const std::string & path, const IHistogram3D & hist) = 0; |
875 |
|
876 |
/** |
877 |
* Create an IHistogram2D by projecting an IHistogram3D on the y-z plane. |
878 |
* This is equivalent to <tt>sliceYZ(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. |
879 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
880 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
881 |
* All the directories in the path must exist. The characther `/` cannot be used |
882 |
* in names; it is only used to delimit directories within paths. |
883 |
* @param hist The IHistogram3D to be projected. |
884 |
* @return The resulting projection. |
885 |
* |
886 |
*/ |
887 |
virtual IHistogram2D * projectionYZ(const std::string & path, const IHistogram3D & hist) = 0; |
888 |
|
889 |
/** |
890 |
* Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Z axis, |
891 |
* between "index1" and "index2" (inclusive). |
892 |
* The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. |
893 |
* The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. |
894 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
895 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
896 |
* All the directories in the path must exist. The characther `/` cannot be used |
897 |
* in names; it is only used to delimit directories within paths. |
898 |
* @param hist The IHistogram3D to sliced. |
899 |
* @param index1 The index of the bin along the z axis that marks the lower edge of the slice. |
900 |
* @param index2 The index of the bin along the z axis that marks the upper edge of the slice. |
901 |
* @return The resulting slice. |
902 |
* |
903 |
*/ |
904 |
virtual IHistogram2D * sliceXY(const std::string & path, const IHistogram3D & hist, int index1, int index2) = 0; |
905 |
|
906 |
/** |
907 |
* Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Y axis, |
908 |
* between "index1" and "index2" (inclusive). |
909 |
* The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. |
910 |
* The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. |
911 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
912 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
913 |
* All the directories in the path must exist. The characther `/` cannot be used |
914 |
* in names; it is only used to delimit directories within paths. |
915 |
* @param hist The IHistogram3D to sliced. |
916 |
* @param index1 The index of the bin along the y axis that marks the lower edge of the slice. |
917 |
* @param index2 The index of the bin along the y axis that marks the upper edge of the slice. |
918 |
* @return The resulting slice. |
919 |
* |
920 |
*/ |
921 |
virtual IHistogram2D * sliceXZ(const std::string & path, const IHistogram3D & hist, int index1, int index2) = 0; |
922 |
|
923 |
/** |
924 |
* Create an IHistogram2D by slicing an IHistogram3D perpendicular to the X axis, |
925 |
* between "index1" and "index2" (inclusive). |
926 |
* The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. |
927 |
* The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. |
928 |
* @param path The path of the resulting IHistogram. The path can either be a relative or full path. |
929 |
* ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). |
930 |
* All the directories in the path must exist. The characther `/` cannot be used |
931 |
* in names; it is only used to delimit directories within paths. |
932 |
* @param hist The IHistogram3D to sliced. |
933 |
* @param index1 The index of the bin along the x axis that marks the lower edge of the slice. |
934 |
* @param index2 The index of the bin along the x axis that marks the upper edge of the slice. |
935 |
* @return The resulting slice. |
936 |
* |
937 |
*/ |
938 |
virtual IHistogram2D * sliceYZ(const std::string & path, const IHistogram3D & hist, int index1, int index2) = 0; |
939 |
}; // class |
940 |
} // namespace AIDA |
941 |
#endif /* ifndef AIDA_IHISTOGRAMFACTORY_H */ |