00001 // -*- C++ -*- 00002 // AID-GENERATED 00003 // ========================================================================= 00004 // This class was generated by AID - Abstract Interface Definition 00005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 00006 // ========================================================================= 00007 #ifndef AIDA_IHISTOGRAMFACTORY_H 00008 #define AIDA_IHISTOGRAMFACTORY_H 1 00009 00010 // This file is part of the AIDA library 00011 // Copyright (C) 2002 by the AIDA team. All rights reserved. 00012 // This library is free software and under the terms of the 00013 // GNU Library General Public License described in the LGPL.txt 00014 00015 #include <string> 00016 #include <vector> 00017 00018 namespace AIDA { 00019 00020 class IBaseHistogram; 00021 class ICloud1D; 00022 class ICloud2D; 00023 class ICloud3D; 00024 class IHistogram1D; 00025 class IHistogram2D; 00026 class IHistogram3D; 00027 class IProfile1D; 00028 class IProfile2D; 00029 00030 /** 00031 * User level interface for factory classes of Histograms (binned, unbinned, and profile) 00032 * The created objects are assumed to be managed by the tree which is associated to the factory. 00033 * 00034 * @author The AIDA team (http://aida.freehep.org/) 00035 * 00036 */ 00037 00038 class IHistogramFactory { 00039 00040 public: 00041 /// Destructor. 00042 virtual ~IHistogramFactory() { /* nop */; } 00043 00044 /** 00045 * Destroy an IBaseHistogram ogject. 00046 * @param hist The IBaseHistogram to be destroyed. 00047 * @return false If the histogram cannot be destroyed. 00048 * 00049 */ 00050 virtual bool destroy(IBaseHistogram * hist) = 0; 00051 00052 /** 00053 * Create a ICloud1D, an unbinned 1-dimensional histogram. 00054 * @param path The path of the created ICloud. The path can either be a relative or full path. 00055 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00056 * All the directories in the path must exist. The characther `/` cannot be used 00057 * in names; it is only used to delimit directories within paths. 00058 * @param title The title of the ICloud1D. 00059 * @param nMax The maximum number of entries after which the ICloud1D 00060 * will convert to an IHistogram1D. The default nMax = -1 means no autoconversion. 00061 * @param options The options for the ICloud1D. "autoconvert=true" to enable autoconversion 00062 * to an IHistogram1D. 00063 * @return The newly created ICloud1D. 00064 * 00065 */ 00066 virtual ICloud1D * createCloud1D(const std::string & path, const std::string & title, int nMax = -1, const std::string & options = "") = 0; 00067 00068 /** 00069 * Create a ICloud1D, an unbinned 1-dimensional histogram. 00070 * @param pathAndTitle The path of the created ICloud. The path can either be a relative or full path. 00071 * The last part of the path is used as the title. 00072 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00073 * All the directories in the path must exist. The characther `/` cannot be used 00074 * in names; it is only used to delimit directories within paths. 00075 * @return The newly created ICloud1D. 00076 * 00077 */ 00078 virtual ICloud1D * createCloud1D(const std::string & pathAndTitle) = 0; 00079 00080 /** 00081 * Create a copy of an ICloud1D. 00082 * @param path The path of the resulting ICloud. The path can either be a relative or full path. 00083 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00084 * All the directories in the path must exist. The characther `/` cannot be used 00085 * in names; it is only used to delimit directories within paths. 00086 * @param cloud The ICloud1D to be copied. 00087 * @return The copy of the ICloud1D. 00088 * 00089 */ 00090 virtual ICloud1D * createCopy(const std::string & path, const ICloud1D & cloud) = 0; 00091 00092 /** 00093 * Create a ICloud2D, an unbinned 2-dimensional histogram. 00094 * @param path The path of the created ICloud. The path can either be a relative or full path. 00095 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00096 * All the directories in the path must exist. The characther `/` cannot be used 00097 * in names; it is only used to delimit directories within paths. 00098 * @param title The title of the ICloud2D. 00099 * @param nMax The maximum number of entries after which the ICloud2D 00100 * will convert to an IHistogram2D. The default nMax = -1 means no autoconversion. 00101 * @param options The options for the ICloud2D. "autoconvert=true" to enable autoconversion 00102 * to an IHistogram2D. 00103 * @return The newly created ICloud2D. 00104 * 00105 */ 00106 virtual ICloud2D * createCloud2D(const std::string & path, const std::string & title, int nMax = -1, const std::string & options = "") = 0; 00107 00108 /** 00109 * Create a ICloud2D, an unbinned 2-dimensional histogram. 00110 * @param pathAndTitle The path of the created created ICloud. The path can either be a relative or full path. 00111 * The last part of the path is used as the title. 00112 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00113 * All the directories in the path must exist. The characther `/` cannot be used 00114 * in names; it is only used to delimit directories within paths. 00115 * @return The newly created ICloud2D. 00116 * 00117 */ 00118 virtual ICloud2D * createCloud2D(const std::string & pathAndTitle) = 0; 00119 00120 /** 00121 * Create a copy of an ICloud2D. 00122 * @param path The path of the resulting ICloud. The path can either be a relative or full path. 00123 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00124 * All the directories in the path must exist. The characther `/` cannot be used 00125 * in names; it is only used to delimit directories within paths. 00126 * @param cloud The ICloud2D to be copied. 00127 * @return The copy of the ICloud2D. 00128 * 00129 */ 00130 virtual ICloud2D * createCopy(const std::string & path, const ICloud2D & cloud) = 0; 00131 00132 /** 00133 * Create a ICloud3D, an unbinned 3-dimensional histogram. 00134 * @param path The path of the created ICloud. The path can either be a relative or full path. 00135 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00136 * All the directories in the path must exist. The characther `/` cannot be used 00137 * in names; it is only used to delimit directories within paths. 00138 * @param title The title of the ICloud3D. 00139 * @param nMax The maximum number of entries after which the ICloud3D 00140 * will convert to an IHistogram3D. The default nMax = -1 means no autoconversion 00141 * @param options The options for the ICloud3D. "autoconvert=true" to enable autoconversion 00142 * to an IHistogram3D. 00143 * @return The newly created ICloud3D. 00144 * 00145 */ 00146 virtual ICloud3D * createCloud3D(const std::string & path, const std::string & title, int nMax = -1, const std::string & options = "") = 0; 00147 00148 /** 00149 * Create a ICloud3D, an unbinned 3-dimensional histogram. 00150 * @param pathAndTitle The path of the created created ICloud. The path can either be a relative or full path. 00151 * The last part of the path is used as the title. 00152 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00153 * All the directories in the path must exist. The characther `/` cannot be used 00154 * in names; it is only used to delimit directories within paths. 00155 * @return The newly created ICloud3D. 00156 * 00157 */ 00158 virtual ICloud3D * createCloud3D(const std::string & pathAndTitle) = 0; 00159 00160 /** 00161 * Create a copy of an ICloud3D. 00162 * @param path The path of the resulting ICloud. The path can either be a relative or full path. 00163 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00164 * All the directories in the path must exist. The characther `/` cannot be used 00165 * in names; it is only used to delimit directories within paths. 00166 * @param cloud The ICloud3D to be copied. 00167 * @return The copy of the ICloud3D. 00168 * 00169 */ 00170 virtual ICloud3D * createCopy(const std::string & path, const ICloud3D & cloud) = 0; 00171 00172 /** 00173 * Create a IHistogram1D. 00174 * @param path The path of the created IHistogram. The path can either be a relative or full path. 00175 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00176 * All the directories in the path must exist. The characther `/` cannot be used 00177 * in names; it is only used to delimit directories within paths. 00178 * @param title The title of the IHistogram1D. 00179 * @param nBins The number of bins of the x axis. 00180 * @param lowerEdge The lower edge of the x axis. 00181 * @param upperEdge The upper edge of the x axis. 00182 * @param options The options for the IHistogram1D. The default is "". 00183 * "type=efficiency" for an efficiency IHistogram1D. 00184 * @return The newly created IHistogram1D. 00185 * 00186 */ 00187 virtual IHistogram1D * createHistogram1D(const std::string & path, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; 00188 00189 /** 00190 * Create a IHistogram1D. 00191 * @param pathAndTitle The path of the created created IHistogram. The path can either be a relative or full path. 00192 * The last part of the path is used as the title. 00193 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00194 * All the directories in the path must exist. The characther `/` cannot be used 00195 * in names; it is only used to delimit directories within paths. 00196 * @param nBins The number of bins of the x axis. 00197 * @param lowerEdge The lower edge of the x axis. 00198 * @param upperEdge The upper edge of the x axis. 00199 * @return The newly created IHistogram1D. 00200 * 00201 */ 00202 virtual IHistogram1D * createHistogram1D(const std::string & pathAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; 00203 00204 /** 00205 * Create a IHistogram1D. 00206 * @param path The path of the created IHistogram. The path can either be a relative or full path. 00207 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00208 * All the directories in the path must exist. The characther `/` cannot be used 00209 * in names; it is only used to delimit directories within paths. 00210 * @param title The title of the IHistogram1D. 00211 * @param binEdges The array of the bin edges for the x axis. 00212 * @param options The options for the IHistogram1D. The default is "". 00213 * "type=efficiency" for an efficiency IHistogram1D. 00214 * @return The newly created IHistogram1D. 00215 * 00216 */ 00217 virtual IHistogram1D * createHistogram1D(const std::string & path, const std::string & title, const std::vector<double> & binEdges, const std::string & options = "") = 0; 00218 00219 /** 00220 * Create a copy of an IHistogram1D. 00221 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00222 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00223 * All the directories in the path must exist. The characther `/` cannot be used 00224 * in names; it is only used to delimit directories within paths. 00225 * @param hist The IHistogram1D to be copied. 00226 * @return The copy of the IHistogram1D. 00227 * 00228 */ 00229 virtual IHistogram1D * createCopy(const std::string & path, const IHistogram1D & hist) = 0; 00230 00231 /** 00232 * Create a IHistogram2D. 00233 * @param path The path of the created IHistogram. The path can either be a relative or full path. 00234 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00235 * All the directories in the path must exist. The characther `/` cannot be used 00236 * in names; it is only used to delimit directories within paths. 00237 * @param title The title of the IHistogram2D. 00238 * @param nBinsX The number of bins of the x axis. 00239 * @param lowerEdgeX The lower edge of the x axis. 00240 * @param upperEdgeX The upper edge of the x axis. 00241 * @param nBinsY The number of bins of the y axis. 00242 * @param lowerEdgeY The lower edge of the y axis. 00243 * @param upperEdgeY The upper edge of the y axis. 00244 * @param options The options for the IHistogram2D. The default is "". 00245 * "type=efficiency" for an efficiency IHistogram2D. 00246 * @return The newly created IHistogram2D. 00247 * 00248 */ 00249 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; 00250 00251 /** 00252 * Create a IHistogram2D. 00253 * @param pathAndTitle The path of the created created IHistogram. The path can either be a relative or full path. 00254 * The last part of the path is used as the title. 00255 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00256 * All the directories in the path must exist. The characther `/` cannot be used 00257 * in names; it is only used to delimit directories within paths. 00258 * @param nBinsX The number of bins of the x axis. 00259 * @param lowerEdgeX The lower edge of the x axis. 00260 * @param upperEdgeX The upper edge of the x axis. 00261 * @param nBinsY The number of bins of the y axis. 00262 * @param lowerEdgeY The lower edge of the y axis. 00263 * @param upperEdgeY The upper edge of the y axis. 00264 * @return The newly created IHistogram2D. 00265 * 00266 */ 00267 virtual IHistogram2D * createHistogram2D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; 00268 00269 /** 00270 * Create a IHistogram2D. 00271 * @param path The path of the created IHistogram. The path can either be a relative or full path. 00272 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00273 * All the directories in the path must exist. The characther `/` cannot be used 00274 * in names; it is only used to delimit directories within paths. 00275 * @param title The title of the IHistogram2D. 00276 * @param binEdgesX The array of the bin edges for the x axis. 00277 * @param binEdgesY The array of the bin edges for the y axis. 00278 * @param options The options for the IHistogram2D. The default is "". 00279 * "type=efficiency" for an efficiency IHistogram2D. 00280 * @return The newly created IHistogram2D. 00281 * 00282 */ 00283 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; 00284 00285 /** 00286 * Create a copy of an IHistogram2D. 00287 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00288 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00289 * All the directories in the path must exist. The characther `/` cannot be used 00290 * in names; it is only used to delimit directories within paths. 00291 * @param hist The IHistogram2D to be copied. 00292 * @return The copy of the IHistogram2D. 00293 * 00294 */ 00295 virtual IHistogram2D * createCopy(const std::string & copy, const IHistogram2D & hist) = 0; 00296 00297 /** 00298 * Create a IHistogram3D. 00299 * @param path The path of the created IHistogram. The path can either be a relative or full path. 00300 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00301 * All the directories in the path must exist. The characther `/` cannot be used 00302 * in names; it is only used to delimit directories within paths. 00303 * @param title The title of the IHistogram3D. 00304 * @param nBinsX The number of bins of the x axis. 00305 * @param lowerEdgeX The lower edge of the x axis. 00306 * @param upperEdgeX The upper edge of the x axis. 00307 * @param nBinsY The number of bins of the y axis. 00308 * @param lowerEdgeY The lower edge of the y axis. 00309 * @param upperEdgeY The upper edge of the y axis. 00310 * @param nBinsZ The number of bins of the z axis. 00311 * @param lowerEdgeZ The lower edge of the z axis. 00312 * @param upperEdgeZ The upper edge of the z axis. 00313 * @param options The options for the IHistogram3D. The default is "". 00314 * "type=efficiency" for an efficiency IHistogram3D. 00315 * @return The newly created IHistogram3D. 00316 * 00317 */ 00318 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; 00319 00320 /** 00321 * Create a IHistogram3D. 00322 * @param pathAndTitle The path of the created created IHistogram. The path can either be a relative or full path. 00323 * The last part of the path is used as the title. 00324 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00325 * All the directories in the path must exist. The characther `/` cannot be used 00326 * in names; it is only used to delimit directories within paths. 00327 * @param nBinsX The number of bins of the x axis. 00328 * @param lowerEdgeX The lower edge of the x axis. 00329 * @param upperEdgeX The upper edge of the x axis. 00330 * @param nBinsY The number of bins of the y axis. 00331 * @param lowerEdgeY The lower edge of the y axis. 00332 * @param upperEdgeY The upper edge of the y axis. 00333 * @param nBinsZ The number of bins of the z axis. 00334 * @param lowerEdgeZ The lower edge of the z axis. 00335 * @param upperEdgeZ The upper edge of the z axis. 00336 * @return The newly created IHistogram3D. 00337 * 00338 */ 00339 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; 00340 00341 /** 00342 * Create a IHistogram3D. 00343 * @param path The path of the created IHistogram. The path can either be a relative or full path. 00344 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00345 * All the directories in the path must exist. The characther `/` cannot be used 00346 * in names; it is only used to delimit directories within paths. 00347 * @param title The title of the IHistogram3D. 00348 * @param binEdgesX The array of the bin edges for the x axis. 00349 * @param binEdgesY The array of the bin edges for the y axis. 00350 * @param binEdgesZ The array of the bin edges for the z axis. 00351 * @param options The options for the IHistogram3D. The default is "". 00352 * "type=efficiency" for an efficiency IHistogram3D. 00353 * @return The newly created IHistogram3D. 00354 * 00355 */ 00356 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; 00357 00358 /** 00359 * Create a copy of an IHistogram3D. 00360 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00361 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00362 * All the directories in the path must exist. The characther `/` cannot be used 00363 * in names; it is only used to delimit directories within paths. 00364 * @param hist The IHistogram3D to be copied. 00365 * @return The copy of the IHistogram3D. 00366 * 00367 */ 00368 virtual IHistogram3D * createCopy(const std::string & path, const IHistogram3D & hist) = 0; 00369 00370 /** 00371 * Create a IProfile1D. 00372 * @param path The path of the created IProfile. The path can either be a relative or full path. 00373 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00374 * All the directories in the path must exist. The characther `/` cannot be used 00375 * in names; it is only used to delimit directories within paths. 00376 * @param title The title of the IProfile1D. 00377 * @param nBins The number of bins of the x axis. 00378 * @param lowerEdge The lower edge of the x axis. 00379 * @param upperEdge The upper edge of the x axis. 00380 * @param options The options for the IProfile1D. The default is "". 00381 * @return The newly created IProfile1D. 00382 * 00383 */ 00384 virtual IProfile1D * createProfile1D(const std::string & path, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; 00385 00386 /** 00387 * Create a IProfile1D. 00388 * @param path The path of the created IProfile. The path can either be a relative or full path. 00389 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00390 * All the directories in the path must exist. The characther `/` cannot be used 00391 * in names; it is only used to delimit directories within paths. 00392 * @param title The title of the IProfile1D. 00393 * @param nBins The number of bins of the x axis. 00394 * @param lowerEdge The lower edge of the x axis. 00395 * @param upperEdge The upper edge of the x axis. 00396 * @param lowerValue The lower value displayed along the y axis. 00397 * @param upperValue The upper value displayed along the y axis. 00398 * @param options The options for the IProfile1D. The default is "". 00399 * @return The newly created IProfile1D. 00400 * 00401 */ 00402 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; 00403 00404 /** 00405 * Create a IProfile1D. 00406 * @param path The path of the created IProfile. The path can either be a relative or full path. 00407 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00408 * All the directories in the path must exist. The characther `/` cannot be used 00409 * in names; it is only used to delimit directories within paths. 00410 * @param title The title of the IProfile1D. 00411 * @param binEdges The array of the bin edges for the x axis. 00412 * @param options The options for the IProfile1D. The default is "". 00413 * @return The newly created IProfile1D. 00414 * 00415 */ 00416 virtual IProfile1D * createProfile1D(const std::string & path, const std::string & title, const std::vector<double> & binEdges, const std::string & options = "") = 0; 00417 00418 /** 00419 * Create a IProfile1D. 00420 * @param path The path of the created IProfile. The path can either be a relative or full path. 00421 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00422 * All the directories in the path must exist. The characther `/` cannot be used 00423 * in names; it is only used to delimit directories within paths. 00424 * @param title The title of the IProfile1D. 00425 * @param binEdges The array of the bin edges for the x axis. 00426 * @param lowerValue The lower value displayed along the y axis. 00427 * @param upperValue The upper value displayed along the y axis. 00428 * @param options The options for the IProfile1D. The default is "". 00429 * @return The newly created IProfile1D. 00430 * 00431 */ 00432 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; 00433 00434 /** 00435 * Create a IProfile1D. 00436 * @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. 00437 * The last part of the path is used as the title. 00438 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00439 * All the directories in the path must exist. The characther `/` cannot be used 00440 * in names; it is only used to delimit directories within paths. 00441 * @param nBins The number of bins of the x axis. 00442 * @param lowerEdge The lower edge of the x axis. 00443 * @param upperEdge The upper edge of the x axis. 00444 * @return The newly created IProfile1D. 00445 * 00446 */ 00447 virtual IProfile1D * createProfile1D(const std::string & pathAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; 00448 00449 /** 00450 * Create a IProfile1D. 00451 * @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. 00452 * The last part of the path is used as the title. 00453 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00454 * All the directories in the path must exist. The characther `/` cannot be used 00455 * in names; it is only used to delimit directories within paths. 00456 * @param nBins The number of bins of the x axis. 00457 * @param lowerEdge The lower edge of the x axis. 00458 * @param upperEdge The upper edge of the x axis. 00459 * @param lowerValue The lower value displayed along the y axis. 00460 * @param upperValue The upper value displayed along the y axis. 00461 * @return The newly created IProfile1D. 00462 * 00463 */ 00464 virtual IProfile1D * createProfile1D(const std::string & pathAndTitle, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue) = 0; 00465 00466 /** 00467 * Create a copy of an IProfile1D. 00468 * @param path The path of the resulting IProfile. The path can either be a relative or full path. 00469 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00470 * All the directories in the path must exist. The characther `/` cannot be used 00471 * in names; it is only used to delimit directories within paths. 00472 * @param profile The IProfile1D to be copied. 00473 * @return The copy of the IProfile1D. 00474 * 00475 */ 00476 virtual IProfile1D * createCopy(const std::string & path, const IProfile1D & profile) = 0; 00477 00478 /** 00479 * Create a IProfile2D. 00480 * @param path The path of the created IProfile. The path can either be a relative or full path. 00481 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00482 * All the directories in the path must exist. The characther `/` cannot be used 00483 * in names; it is only used to delimit directories within paths. 00484 * @param title The title of the IProfile2D. 00485 * @param nBinsX The number of bins of the x axis. 00486 * @param lowerEdgeX The lower edge of the x axis. 00487 * @param upperEdgeX The upper edge of the x axis. 00488 * @param nBinsY The number of bins of the y axis. 00489 * @param lowerEdgeY The lower edge of the y axis. 00490 * @param upperEdgeY The upper edge of the y axis. 00491 * @param options The options for the IProfile2D. The default is "". 00492 * @return The newly created IProfile2D. 00493 * 00494 */ 00495 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; 00496 00497 /** 00498 * Create a IProfile2D. 00499 * @param path The path of the created IProfile. The path can either be a relative or full path. 00500 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00501 * All the directories in the path must exist. The characther `/` cannot be used 00502 * in names; it is only used to delimit directories within paths. 00503 * @param title The title of the IProfile2D. 00504 * @param nBinsX The number of bins of the x axis. 00505 * @param lowerEdgeX The lower edge of the x axis. 00506 * @param upperEdgeX The upper edge of the x axis. 00507 * @param nBinsY The number of bins of the y axis. 00508 * @param lowerEdgeY The lower edge of the y axis. 00509 * @param upperEdgeY The upper edge of the y axis. 00510 * @param lowerValue The lower value displayed along the z axis. 00511 * @param upperValue The upper value displayed along the z axis. 00512 * @param options The options for the IProfile2D. The default is "". 00513 * @return The newly created IProfile2D. 00514 * 00515 */ 00516 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; 00517 00518 /** 00519 * Create a IProfile2D. 00520 * @param path The path of the created IProfile. The path can either be a relative or full path. 00521 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00522 * All the directories in the path must exist. The characther `/` cannot be used 00523 * in names; it is only used to delimit directories within paths. 00524 * @param title The title of the IProfile2D. 00525 * @param binEdgesX The array of the bin edges for the x axis. 00526 * @param binEdgesY The array of the bin edges for the y axis. 00527 * @param options The options for the IProfile2D. The default is "". 00528 * @return The newly created IProfile2D. 00529 * 00530 */ 00531 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; 00532 00533 /** 00534 * Create a IProfile2D. 00535 * @param path The path of the created IProfile. The path can either be a relative or full path. 00536 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00537 * All the directories in the path must exist. The characther `/` cannot be used 00538 * in names; it is only used to delimit directories within paths. 00539 * @param title The title of the IProfile2D. 00540 * @param binEdgesX The array of the bin edges for the x axis. 00541 * @param binEdgesY The array of the bin edges for the y axis. 00542 * @param lowerValue The lower value displayed along the y axis. 00543 * @param upperValue The upper value displayed along the y axis. 00544 * @param options The options for the IProfile2D. The default is "". 00545 * @return The newly created IProfile2D. 00546 * 00547 */ 00548 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; 00549 00550 /** 00551 * Create a IProfile2D. 00552 * @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. 00553 * The last part of the path is used as the title. 00554 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00555 * All the directories in the path must exist. The characther `/` cannot be used 00556 * in names; it is only used to delimit directories within paths. 00557 * @param nBinsX The number of bins of the x axis. 00558 * @param lowerEdgeX The lower edge of the x axis. 00559 * @param upperEdgeX The upper edge of the x axis. 00560 * @param nBinsY The number of bins of the y axis. 00561 * @param lowerEdgeY The lower edge of the y axis. 00562 * @param upperEdgeY The upper edge of the y axis. 00563 * @return The newly created IProfile2D. 00564 * 00565 */ 00566 virtual IProfile2D * createProfile2D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; 00567 00568 /** 00569 * Create a IProfile2D. 00570 * @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. 00571 * The last part of the path is used as the title. 00572 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 00573 * All the directories in the path must exist. The characther `/` cannot be used 00574 * in names; it is only used to delimit directories within paths. 00575 * @param nBinsX The number of bins of the x axis. 00576 * @param lowerEdgeX The lower edge of the x axis. 00577 * @param upperEdgeX The upper edge of the x axis. 00578 * @param nBinsY The number of bins of the y axis. 00579 * @param lowerEdgeY The lower edge of the y axis. 00580 * @param upperEdgeY The upper edge of the y axis. 00581 * @param lowerValue The lower value displayed along the z axis. 00582 * @param upperValue The upper value displayed along the z axis. 00583 * @return The newly created IProfile2D. 00584 * 00585 */ 00586 virtual IProfile2D * createProfile2D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, double lowerValue, double upperValue) = 0; 00587 00588 /** 00589 * Create a copy of an IProfile2D. 00590 * @param path The path of the resulting IProfile. The path can either be a relative or full path. 00591 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00592 * All the directories in the path must exist. The characther `/` cannot be used 00593 * in names; it is only used to delimit directories within paths. 00594 * @param profile The IProfile2D to be copied. 00595 * @return The copy of the IProfile2D. 00596 * 00597 */ 00598 virtual IProfile2D * createCopy(const std::string & path, const IProfile2D & profile) = 0; 00599 00600 /** 00601 * Create an IHistogram1D by adding two IHistogram1D. 00602 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00603 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00604 * All the directories in the path must exist. The characther `/` cannot be used 00605 * in names; it is only used to delimit directories within paths. 00606 * @param hist1 The first member of the addition. 00607 * @param hist2 The second member of the addition. 00608 * @return The sum of the two IHistogram1D. 00609 * if a directory in the path does not exist, or the path is illegal. 00610 * 00611 */ 00612 virtual IHistogram1D * add(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 00613 00614 /** 00615 * Create an IHistogram1D by subtracting two IHistogram1D. 00616 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00617 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00618 * All the directories in the path must exist. The characther `/` cannot be used 00619 * in names; it is only used to delimit directories within paths. 00620 * @param hist1 The first member of the subtraction. 00621 * @param hist2 The second member of the subtraction. 00622 * @return The difference of the two IHistogram1D. 00623 * if a directory in the path does not exist, or the path is illegal. 00624 * 00625 */ 00626 virtual IHistogram1D * subtract(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 00627 00628 /** 00629 * Create an IHistogram1D by multiplying two IHistogram1D. 00630 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00631 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00632 * All the directories in the path must exist. The characther `/` cannot be used 00633 * in names; it is only used to delimit directories within paths. 00634 * @param hist1 The first member of the multiplication. 00635 * @param hist2 The second member of the multiplication. 00636 * @return The product of the two IHistogram1D. 00637 * if a directory in the path does not exist, or the path is illegal. 00638 * 00639 */ 00640 virtual IHistogram1D * multiply(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 00641 00642 /** 00643 * Create an IHistogram1D by dividing two IHistogram1D. 00644 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00645 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00646 * All the directories in the path must exist. The characther `/` cannot be used 00647 * in names; it is only used to delimit directories within paths. 00648 * @param hist1 The first member of the division. 00649 * @param hist2 The second member of the division. 00650 * @return The ration of the two IHistogram1D. 00651 * if a directory in the path does not exist, or the path is illegal. 00652 * 00653 */ 00654 virtual IHistogram1D * divide(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 00655 00656 /** 00657 * Create an IHistogram2D by adding two IHistogram2D. 00658 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00659 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00660 * All the directories in the path must exist. The characther `/` cannot be used 00661 * in names; it is only used to delimit directories within paths. 00662 * @param hist1 The first member of the addition. 00663 * @param hist2 The second member of the addition. 00664 * @return The sum of the two IHistogram2D. 00665 * if a directory in the path does not exist, or the path is illegal. 00666 * 00667 */ 00668 virtual IHistogram2D * add(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 00669 00670 /** 00671 * Create an IHistogram2D by subtracting two IHistogram2D. 00672 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00673 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00674 * All the directories in the path must exist. The characther `/` cannot be used 00675 * in names; it is only used to delimit directories within paths. 00676 * @param hist1 The first member of the subtraction. 00677 * @param hist2 The second member of the subtraction. 00678 * @return The difference of the two IHistogram2D. 00679 * if a directory in the path does not exist, or the path is illegal. 00680 * 00681 */ 00682 virtual IHistogram2D * subtract(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 00683 00684 /** 00685 * Create an IHistogram2D by multiplying two IHistogram2D. 00686 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00687 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00688 * All the directories in the path must exist. The characther `/` cannot be used 00689 * in names; it is only used to delimit directories within paths. 00690 * @param hist1 The first member of the multiplication. 00691 * @param hist2 The second member of the multiplication. 00692 * @return The product of the two IHistogram2D. 00693 * if a directory in the path does not exist, or the path is illegal. 00694 * 00695 */ 00696 virtual IHistogram2D * multiply(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 00697 00698 /** 00699 * Create an IHistogram2D by dividing two IHistogram2D. 00700 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00701 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00702 * All the directories in the path must exist. The characther `/` cannot be used 00703 * in names; it is only used to delimit directories within paths. 00704 * @param hist1 The first member of the division. 00705 * @param hist2 The second member of the division. 00706 * @return The ration of the two IHistogram2D. 00707 * if a directory in the path does not exist, or the path is illegal. 00708 * 00709 */ 00710 virtual IHistogram2D * divide(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 00711 00712 /** 00713 * Create an IHistogram3D by adding two IHistogram3D. 00714 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00715 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00716 * All the directories in the path must exist. The characther `/` cannot be used 00717 * in names; it is only used to delimit directories within paths. 00718 * @param hist1 The first member of the addition. 00719 * @param hist2 The second member of the addition. 00720 * @return The sum of the two IHistogram3D. 00721 * if a directory in the path does not exist, or the path is illegal. 00722 * 00723 */ 00724 virtual IHistogram3D * add(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 00725 00726 /** 00727 * Create an IHistogram3D by subtracting two IHistogram3D. 00728 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00729 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00730 * All the directories in the path must exist. The characther `/` cannot be used 00731 * in names; it is only used to delimit directories within paths. 00732 * @param hist1 The first member of the subtraction. 00733 * @param hist2 The second member of the subtraction. 00734 * @return The difference of the two IHistogram3D. 00735 * if a directory in the path does not exist, or the path is illegal. 00736 * 00737 */ 00738 virtual IHistogram3D * subtract(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 00739 00740 /** 00741 * Create an IHistogram3D by multiplying two IHistogram3D. 00742 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00743 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00744 * All the directories in the path must exist. The characther `/` cannot be used 00745 * in names; it is only used to delimit directories within paths. 00746 * @param hist1 The first member of the multiplication. 00747 * @param hist2 The second member of the multiplication. 00748 * @return The product of the two IHistogram3D. 00749 * if a directory in the path does not exist, or the path is illegal. 00750 * 00751 */ 00752 virtual IHistogram3D * multiply(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 00753 00754 /** 00755 * Create an IHistogram3D by dividing two IHistogram3D. 00756 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00757 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00758 * All the directories in the path must exist. The characther `/` cannot be used 00759 * in names; it is only used to delimit directories within paths. 00760 * @param hist1 The first member of the division. 00761 * @param hist2 The second member of the division. 00762 * @return The ration of the two IHistogram3D. 00763 * if a directory in the path does not exist, or the path is illegal. 00764 * 00765 */ 00766 virtual IHistogram3D * divide(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 00767 00768 /** 00769 * Create an IHistogram1D by projecting an IHistogram2D along its x axis. 00770 * This is equivalent to <tt>sliceX(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 00771 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00772 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00773 * All the directories in the path must exist. The characther `/` cannot be used 00774 * in names; it is only used to delimit directories within paths. 00775 * @param hist The IHistogram2D to be projected. 00776 * @return The resulting projection. 00777 * 00778 */ 00779 virtual IHistogram1D * projectionX(const std::string & path, const IHistogram2D & hist) = 0; 00780 00781 /** 00782 * Create an IHistogram1D by projecting an IHistogram2D along its y axis. 00783 * This is equivalent to <tt>sliceY(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 00784 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00785 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00786 * All the directories in the path must exist. The characther `/` cannot be used 00787 * in names; it is only used to delimit directories within paths. 00788 * @param hist The IHistogram2D to be projected. 00789 * @return The resulting projection. 00790 * 00791 */ 00792 virtual IHistogram1D * projectionY(const std::string & path, const IHistogram2D & hist) = 0; 00793 00794 /** 00795 * Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis at a given bin. 00796 * This is equivalent to <tt>sliceX(indexY,indexY)</tt>. 00797 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00798 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00799 * All the directories in the path must exist. The characther `/` cannot be used 00800 * in names; it is only used to delimit directories within paths. 00801 * @param hist The IHistogram2D to be sliced. 00802 * @param index The index of the bin along the y axis where the IHistogram2D has to be sliced. 00803 * @return The resulting slice. 00804 * 00805 */ 00806 virtual IHistogram1D * sliceX(const std::string & path, const IHistogram2D & hist, int index) = 0; 00807 00808 /** 00809 * Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis at a given bin. 00810 * This is equivalent to <tt>sliceY(indexX,indexX)</tt>. 00811 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00812 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00813 * All the directories in the path must exist. The characther `/` cannot be used 00814 * in names; it is only used to delimit directories within paths. 00815 * @param hist The IHistogram2D to be sliced. 00816 * @param index The index of the bin along the x axis where the IHistogram2D has to be sliced. 00817 * @return The resulting slice. 00818 * 00819 */ 00820 virtual IHistogram1D * sliceY(const std::string & path, const IHistogram2D & hist, int index) = 0; 00821 00822 /** 00823 * Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis between two bins (inclusive). 00824 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00825 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00826 * All the directories in the path must exist. The characther `/` cannot be used 00827 * in names; it is only used to delimit directories within paths. 00828 * @param hist The IHistogram2D to be sliced. 00829 * @param index1 The index of the bin along the y axis that marks the lower edge of the slice. 00830 * @param index2 The index of the bin along the y axis that marks the upper edge of the slice. 00831 * @return The resulting slice. 00832 * 00833 */ 00834 virtual IHistogram1D * sliceX(const std::string & path, const IHistogram2D & hist, int index1, int index2) = 0; 00835 00836 /** 00837 * Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis between two bins (inclusive). 00838 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00839 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00840 * All the directories in the path must exist. The characther `/` cannot be used 00841 * in names; it is only used to delimit directories within paths. 00842 * @param hist The IHistogram2D to be sliced. 00843 * @param index1 The index of the bin along the x axis that marks the lower edge of the slice. 00844 * @param index2 The index of the bin along the x axis that marks the upper edge of the slice. 00845 * @return The resulting slice. 00846 * 00847 */ 00848 virtual IHistogram1D * sliceY(const std::string & path, const IHistogram2D & hist, int index1, int index2) = 0; 00849 00850 /** 00851 * Create an IHistogram2D by projecting an IHistogram3D on the x-y plane. 00852 * This is equivalent to <tt>sliceXY(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 00853 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00854 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00855 * All the directories in the path must exist. The characther `/` cannot be used 00856 * in names; it is only used to delimit directories within paths. 00857 * @param hist The IHistogram3D to be projected. 00858 * @return The resulting projection. 00859 * 00860 */ 00861 virtual IHistogram2D * projectionXY(const std::string & path, const IHistogram3D & hist) = 0; 00862 00863 /** 00864 * Create an IHistogram2D by projecting an IHistogram3D on the x-z plane. 00865 * This is equivalent to <tt>sliceXZ(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 00866 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00867 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00868 * All the directories in the path must exist. The characther `/` cannot be used 00869 * in names; it is only used to delimit directories within paths. 00870 * @param hist The IHistogram3D to be projected. 00871 * @return The resulting projection. 00872 * 00873 */ 00874 virtual IHistogram2D * projectionXZ(const std::string & path, const IHistogram3D & hist) = 0; 00875 00876 /** 00877 * Create an IHistogram2D by projecting an IHistogram3D on the y-z plane. 00878 * This is equivalent to <tt>sliceYZ(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 00879 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00880 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00881 * All the directories in the path must exist. The characther `/` cannot be used 00882 * in names; it is only used to delimit directories within paths. 00883 * @param hist The IHistogram3D to be projected. 00884 * @return The resulting projection. 00885 * 00886 */ 00887 virtual IHistogram2D * projectionYZ(const std::string & path, const IHistogram3D & hist) = 0; 00888 00889 /** 00890 * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Z axis, 00891 * between "index1" and "index2" (inclusive). 00892 * The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. 00893 * The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. 00894 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00895 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00896 * All the directories in the path must exist. The characther `/` cannot be used 00897 * in names; it is only used to delimit directories within paths. 00898 * @param hist The IHistogram3D to sliced. 00899 * @param index1 The index of the bin along the z axis that marks the lower edge of the slice. 00900 * @param index2 The index of the bin along the z axis that marks the upper edge of the slice. 00901 * @return The resulting slice. 00902 * 00903 */ 00904 virtual IHistogram2D * sliceXY(const std::string & path, const IHistogram3D & hist, int index1, int index2) = 0; 00905 00906 /** 00907 * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Y axis, 00908 * between "index1" and "index2" (inclusive). 00909 * The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. 00910 * The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. 00911 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00912 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00913 * All the directories in the path must exist. The characther `/` cannot be used 00914 * in names; it is only used to delimit directories within paths. 00915 * @param hist The IHistogram3D to sliced. 00916 * @param index1 The index of the bin along the y axis that marks the lower edge of the slice. 00917 * @param index2 The index of the bin along the y axis that marks the upper edge of the slice. 00918 * @return The resulting slice. 00919 * 00920 */ 00921 virtual IHistogram2D * sliceXZ(const std::string & path, const IHistogram3D & hist, int index1, int index2) = 0; 00922 00923 /** 00924 * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the X axis, 00925 * between "index1" and "index2" (inclusive). 00926 * The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. 00927 * The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. 00928 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 00929 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 00930 * All the directories in the path must exist. The characther `/` cannot be used 00931 * in names; it is only used to delimit directories within paths. 00932 * @param hist The IHistogram3D to sliced. 00933 * @param index1 The index of the bin along the x axis that marks the lower edge of the slice. 00934 * @param index2 The index of the bin along the x axis that marks the upper edge of the slice. 00935 * @return The resulting slice. 00936 * 00937 */ 00938 virtual IHistogram2D * sliceYZ(const std::string & path, const IHistogram3D & hist, int index1, int index2) = 0; 00939 }; // class 00940 } // namespace AIDA 00941 #endif /* ifndef AIDA_IHISTOGRAMFACTORY_H */