|
||||
File indexing completed on 2025-01-18 09:28:08
0001 // -*- C++ -*- 0002 // AID-GENERATED 0003 // ========================================================================= 0004 // This class was generated by AID - Abstract Interface Definition 0005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 0006 // ========================================================================= 0007 #ifndef AIDA_IHISTOGRAMFACTORY_H 0008 #define AIDA_IHISTOGRAMFACTORY_H 1 0009 0010 // This file is part of the AIDA library 0011 // Copyright (C) 2002 by the AIDA team. All rights reserved. 0012 // This library is free software and under the terms of the 0013 // GNU Library General Public License described in the LGPL.txt 0014 0015 #include <string> 0016 #include <vector> 0017 0018 namespace AIDA { 0019 0020 class IBaseHistogram; 0021 class ICloud1D; 0022 class ICloud2D; 0023 class ICloud3D; 0024 class IHistogram1D; 0025 class IHistogram2D; 0026 class IHistogram3D; 0027 class IProfile1D; 0028 class IProfile2D; 0029 0030 /** 0031 * User level interface for factory classes of Histograms (binned, unbinned, and profile) 0032 * The created objects are assumed to be managed by the tree which is associated to the factory. 0033 * 0034 * @author The AIDA team (http://aida.freehep.org/) 0035 * 0036 */ 0037 0038 class IHistogramFactory { 0039 0040 public: 0041 /// Destructor. 0042 virtual ~IHistogramFactory() { /* nop */; } 0043 0044 /** 0045 * Destroy an IBaseHistogram ogject. 0046 * @param hist The IBaseHistogram to be destroyed. 0047 * @return false If the histogram cannot be destroyed. 0048 * 0049 */ 0050 virtual bool destroy(IBaseHistogram * hist) = 0; 0051 0052 /** 0053 * Create a ICloud1D, an unbinned 1-dimensional histogram. 0054 * @param path The path of the created ICloud. The path can either be a relative or full path. 0055 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0056 * All the directories in the path must exist. The characther `/` cannot be used 0057 * in names; it is only used to delimit directories within paths. 0058 * @param title The title of the ICloud1D. 0059 * @param nMax The maximum number of entries after which the ICloud1D 0060 * will convert to an IHistogram1D. The default nMax = -1 means no autoconversion. 0061 * @param options The options for the ICloud1D. "autoconvert=true" to enable autoconversion 0062 * to an IHistogram1D. 0063 * @return The newly created ICloud1D. 0064 * 0065 */ 0066 virtual ICloud1D * createCloud1D(const std::string & path, const std::string & title, int nMax = -1, const std::string & options = "") = 0; 0067 0068 /** 0069 * Create a ICloud1D, an unbinned 1-dimensional histogram. 0070 * @param pathAndTitle The path of the created ICloud. The path can either be a relative or full path. 0071 * The last part of the path is used as the title. 0072 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0073 * All the directories in the path must exist. The characther `/` cannot be used 0074 * in names; it is only used to delimit directories within paths. 0075 * @return The newly created ICloud1D. 0076 * 0077 */ 0078 virtual ICloud1D * createCloud1D(const std::string & pathAndTitle) = 0; 0079 0080 /** 0081 * Create a copy of an ICloud1D. 0082 * @param path The path of the resulting ICloud. The path can either be a relative or full path. 0083 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0084 * All the directories in the path must exist. The characther `/` cannot be used 0085 * in names; it is only used to delimit directories within paths. 0086 * @param cloud The ICloud1D to be copied. 0087 * @return The copy of the ICloud1D. 0088 * 0089 */ 0090 virtual ICloud1D * createCopy(const std::string & path, const ICloud1D & cloud) = 0; 0091 0092 /** 0093 * Create a ICloud2D, an unbinned 2-dimensional histogram. 0094 * @param path The path of the created ICloud. The path can either be a relative or full path. 0095 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0096 * All the directories in the path must exist. The characther `/` cannot be used 0097 * in names; it is only used to delimit directories within paths. 0098 * @param title The title of the ICloud2D. 0099 * @param nMax The maximum number of entries after which the ICloud2D 0100 * will convert to an IHistogram2D. The default nMax = -1 means no autoconversion. 0101 * @param options The options for the ICloud2D. "autoconvert=true" to enable autoconversion 0102 * to an IHistogram2D. 0103 * @return The newly created ICloud2D. 0104 * 0105 */ 0106 virtual ICloud2D * createCloud2D(const std::string & path, const std::string & title, int nMax = -1, const std::string & options = "") = 0; 0107 0108 /** 0109 * Create a ICloud2D, an unbinned 2-dimensional histogram. 0110 * @param pathAndTitle The path of the created created ICloud. The path can either be a relative or full path. 0111 * The last part of the path is used as the title. 0112 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0113 * All the directories in the path must exist. The characther `/` cannot be used 0114 * in names; it is only used to delimit directories within paths. 0115 * @return The newly created ICloud2D. 0116 * 0117 */ 0118 virtual ICloud2D * createCloud2D(const std::string & pathAndTitle) = 0; 0119 0120 /** 0121 * Create a copy of an ICloud2D. 0122 * @param path The path of the resulting ICloud. The path can either be a relative or full path. 0123 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0124 * All the directories in the path must exist. The characther `/` cannot be used 0125 * in names; it is only used to delimit directories within paths. 0126 * @param cloud The ICloud2D to be copied. 0127 * @return The copy of the ICloud2D. 0128 * 0129 */ 0130 virtual ICloud2D * createCopy(const std::string & path, const ICloud2D & cloud) = 0; 0131 0132 /** 0133 * Create a ICloud3D, an unbinned 3-dimensional histogram. 0134 * @param path The path of the created ICloud. The path can either be a relative or full path. 0135 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0136 * All the directories in the path must exist. The characther `/` cannot be used 0137 * in names; it is only used to delimit directories within paths. 0138 * @param title The title of the ICloud3D. 0139 * @param nMax The maximum number of entries after which the ICloud3D 0140 * will convert to an IHistogram3D. The default nMax = -1 means no autoconversion 0141 * @param options The options for the ICloud3D. "autoconvert=true" to enable autoconversion 0142 * to an IHistogram3D. 0143 * @return The newly created ICloud3D. 0144 * 0145 */ 0146 virtual ICloud3D * createCloud3D(const std::string & path, const std::string & title, int nMax = -1, const std::string & options = "") = 0; 0147 0148 /** 0149 * Create a ICloud3D, an unbinned 3-dimensional histogram. 0150 * @param pathAndTitle The path of the created created ICloud. The path can either be a relative or full path. 0151 * The last part of the path is used as the title. 0152 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0153 * All the directories in the path must exist. The characther `/` cannot be used 0154 * in names; it is only used to delimit directories within paths. 0155 * @return The newly created ICloud3D. 0156 * 0157 */ 0158 virtual ICloud3D * createCloud3D(const std::string & pathAndTitle) = 0; 0159 0160 /** 0161 * Create a copy of an ICloud3D. 0162 * @param path The path of the resulting ICloud. The path can either be a relative or full path. 0163 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0164 * All the directories in the path must exist. The characther `/` cannot be used 0165 * in names; it is only used to delimit directories within paths. 0166 * @param cloud The ICloud3D to be copied. 0167 * @return The copy of the ICloud3D. 0168 * 0169 */ 0170 virtual ICloud3D * createCopy(const std::string & path, const ICloud3D & cloud) = 0; 0171 0172 /** 0173 * Create a IHistogram1D. 0174 * @param path The path of the created IHistogram. The path can either be a relative or full path. 0175 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0176 * All the directories in the path must exist. The characther `/` cannot be used 0177 * in names; it is only used to delimit directories within paths. 0178 * @param title The title of the IHistogram1D. 0179 * @param nBins The number of bins of the x axis. 0180 * @param lowerEdge The lower edge of the x axis. 0181 * @param upperEdge The upper edge of the x axis. 0182 * @param options The options for the IHistogram1D. The default is "". 0183 * "type=efficiency" for an efficiency IHistogram1D. 0184 * @return The newly created IHistogram1D. 0185 * 0186 */ 0187 virtual IHistogram1D * createHistogram1D(const std::string & path, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; 0188 0189 /** 0190 * Create a IHistogram1D. 0191 * @param pathAndTitle The path of the created created IHistogram. The path can either be a relative or full path. 0192 * The last part of the path is used as the title. 0193 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0194 * All the directories in the path must exist. The characther `/` cannot be used 0195 * in names; it is only used to delimit directories within paths. 0196 * @param nBins The number of bins of the x axis. 0197 * @param lowerEdge The lower edge of the x axis. 0198 * @param upperEdge The upper edge of the x axis. 0199 * @return The newly created IHistogram1D. 0200 * 0201 */ 0202 virtual IHistogram1D * createHistogram1D(const std::string & pathAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; 0203 0204 /** 0205 * Create a IHistogram1D. 0206 * @param path The path of the created IHistogram. The path can either be a relative or full path. 0207 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0208 * All the directories in the path must exist. The characther `/` cannot be used 0209 * in names; it is only used to delimit directories within paths. 0210 * @param title The title of the IHistogram1D. 0211 * @param binEdges The array of the bin edges for the x axis. 0212 * @param options The options for the IHistogram1D. The default is "". 0213 * "type=efficiency" for an efficiency IHistogram1D. 0214 * @return The newly created IHistogram1D. 0215 * 0216 */ 0217 virtual IHistogram1D * createHistogram1D(const std::string & path, const std::string & title, const std::vector<double> & binEdges, const std::string & options = "") = 0; 0218 0219 /** 0220 * Create a copy of an IHistogram1D. 0221 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0222 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0223 * All the directories in the path must exist. The characther `/` cannot be used 0224 * in names; it is only used to delimit directories within paths. 0225 * @param hist The IHistogram1D to be copied. 0226 * @return The copy of the IHistogram1D. 0227 * 0228 */ 0229 virtual IHistogram1D * createCopy(const std::string & path, const IHistogram1D & hist) = 0; 0230 0231 /** 0232 * Create a IHistogram2D. 0233 * @param path The path of the created IHistogram. The path can either be a relative or full path. 0234 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0235 * All the directories in the path must exist. The characther `/` cannot be used 0236 * in names; it is only used to delimit directories within paths. 0237 * @param title The title of the IHistogram2D. 0238 * @param nBinsX The number of bins of the x axis. 0239 * @param lowerEdgeX The lower edge of the x axis. 0240 * @param upperEdgeX The upper edge of the x axis. 0241 * @param nBinsY The number of bins of the y axis. 0242 * @param lowerEdgeY The lower edge of the y axis. 0243 * @param upperEdgeY The upper edge of the y axis. 0244 * @param options The options for the IHistogram2D. The default is "". 0245 * "type=efficiency" for an efficiency IHistogram2D. 0246 * @return The newly created IHistogram2D. 0247 * 0248 */ 0249 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; 0250 0251 /** 0252 * Create a IHistogram2D. 0253 * @param pathAndTitle The path of the created created IHistogram. The path can either be a relative or full path. 0254 * The last part of the path is used as the title. 0255 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0256 * All the directories in the path must exist. The characther `/` cannot be used 0257 * in names; it is only used to delimit directories within paths. 0258 * @param nBinsX The number of bins of the x axis. 0259 * @param lowerEdgeX The lower edge of the x axis. 0260 * @param upperEdgeX The upper edge of the x axis. 0261 * @param nBinsY The number of bins of the y axis. 0262 * @param lowerEdgeY The lower edge of the y axis. 0263 * @param upperEdgeY The upper edge of the y axis. 0264 * @return The newly created IHistogram2D. 0265 * 0266 */ 0267 virtual IHistogram2D * createHistogram2D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; 0268 0269 /** 0270 * Create a IHistogram2D. 0271 * @param path The path of the created IHistogram. The path can either be a relative or full path. 0272 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0273 * All the directories in the path must exist. The characther `/` cannot be used 0274 * in names; it is only used to delimit directories within paths. 0275 * @param title The title of the IHistogram2D. 0276 * @param binEdgesX The array of the bin edges for the x axis. 0277 * @param binEdgesY The array of the bin edges for the y axis. 0278 * @param options The options for the IHistogram2D. The default is "". 0279 * "type=efficiency" for an efficiency IHistogram2D. 0280 * @return The newly created IHistogram2D. 0281 * 0282 */ 0283 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; 0284 0285 /** 0286 * Create a copy of an IHistogram2D. 0287 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0288 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0289 * All the directories in the path must exist. The characther `/` cannot be used 0290 * in names; it is only used to delimit directories within paths. 0291 * @param hist The IHistogram2D to be copied. 0292 * @return The copy of the IHistogram2D. 0293 * 0294 */ 0295 virtual IHistogram2D * createCopy(const std::string & copy, const IHistogram2D & hist) = 0; 0296 0297 /** 0298 * Create a IHistogram3D. 0299 * @param path The path of the created IHistogram. The path can either be a relative or full path. 0300 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0301 * All the directories in the path must exist. The characther `/` cannot be used 0302 * in names; it is only used to delimit directories within paths. 0303 * @param title The title of the IHistogram3D. 0304 * @param nBinsX The number of bins of the x axis. 0305 * @param lowerEdgeX The lower edge of the x axis. 0306 * @param upperEdgeX The upper edge of the x axis. 0307 * @param nBinsY The number of bins of the y axis. 0308 * @param lowerEdgeY The lower edge of the y axis. 0309 * @param upperEdgeY The upper edge of the y axis. 0310 * @param nBinsZ The number of bins of the z axis. 0311 * @param lowerEdgeZ The lower edge of the z axis. 0312 * @param upperEdgeZ The upper edge of the z axis. 0313 * @param options The options for the IHistogram3D. The default is "". 0314 * "type=efficiency" for an efficiency IHistogram3D. 0315 * @return The newly created IHistogram3D. 0316 * 0317 */ 0318 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; 0319 0320 /** 0321 * Create a IHistogram3D. 0322 * @param pathAndTitle The path of the created created IHistogram. The path can either be a relative or full path. 0323 * The last part of the path is used as the title. 0324 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0325 * All the directories in the path must exist. The characther `/` cannot be used 0326 * in names; it is only used to delimit directories within paths. 0327 * @param nBinsX The number of bins of the x axis. 0328 * @param lowerEdgeX The lower edge of the x axis. 0329 * @param upperEdgeX The upper edge of the x axis. 0330 * @param nBinsY The number of bins of the y axis. 0331 * @param lowerEdgeY The lower edge of the y axis. 0332 * @param upperEdgeY The upper edge of the y axis. 0333 * @param nBinsZ The number of bins of the z axis. 0334 * @param lowerEdgeZ The lower edge of the z axis. 0335 * @param upperEdgeZ The upper edge of the z axis. 0336 * @return The newly created IHistogram3D. 0337 * 0338 */ 0339 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; 0340 0341 /** 0342 * Create a IHistogram3D. 0343 * @param path The path of the created IHistogram. The path can either be a relative or full path. 0344 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0345 * All the directories in the path must exist. The characther `/` cannot be used 0346 * in names; it is only used to delimit directories within paths. 0347 * @param title The title of the IHistogram3D. 0348 * @param binEdgesX The array of the bin edges for the x axis. 0349 * @param binEdgesY The array of the bin edges for the y axis. 0350 * @param binEdgesZ The array of the bin edges for the z axis. 0351 * @param options The options for the IHistogram3D. The default is "". 0352 * "type=efficiency" for an efficiency IHistogram3D. 0353 * @return The newly created IHistogram3D. 0354 * 0355 */ 0356 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; 0357 0358 /** 0359 * Create a copy of an IHistogram3D. 0360 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0361 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0362 * All the directories in the path must exist. The characther `/` cannot be used 0363 * in names; it is only used to delimit directories within paths. 0364 * @param hist The IHistogram3D to be copied. 0365 * @return The copy of the IHistogram3D. 0366 * 0367 */ 0368 virtual IHistogram3D * createCopy(const std::string & path, const IHistogram3D & hist) = 0; 0369 0370 /** 0371 * Create a IProfile1D. 0372 * @param path The path of the created IProfile. The path can either be a relative or full path. 0373 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0374 * All the directories in the path must exist. The characther `/` cannot be used 0375 * in names; it is only used to delimit directories within paths. 0376 * @param title The title of the IProfile1D. 0377 * @param nBins The number of bins of the x axis. 0378 * @param lowerEdge The lower edge of the x axis. 0379 * @param upperEdge The upper edge of the x axis. 0380 * @param options The options for the IProfile1D. The default is "". 0381 * @return The newly created IProfile1D. 0382 * 0383 */ 0384 virtual IProfile1D * createProfile1D(const std::string & path, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; 0385 0386 /** 0387 * Create a IProfile1D. 0388 * @param path The path of the created IProfile. The path can either be a relative or full path. 0389 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0390 * All the directories in the path must exist. The characther `/` cannot be used 0391 * in names; it is only used to delimit directories within paths. 0392 * @param title The title of the IProfile1D. 0393 * @param nBins The number of bins of the x axis. 0394 * @param lowerEdge The lower edge of the x axis. 0395 * @param upperEdge The upper edge of the x axis. 0396 * @param lowerValue The lower value displayed along the y axis. 0397 * @param upperValue The upper value displayed along the y axis. 0398 * @param options The options for the IProfile1D. The default is "". 0399 * @return The newly created IProfile1D. 0400 * 0401 */ 0402 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; 0403 0404 /** 0405 * Create a IProfile1D. 0406 * @param path The path of the created IProfile. The path can either be a relative or full path. 0407 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0408 * All the directories in the path must exist. The characther `/` cannot be used 0409 * in names; it is only used to delimit directories within paths. 0410 * @param title The title of the IProfile1D. 0411 * @param binEdges The array of the bin edges for the x axis. 0412 * @param options The options for the IProfile1D. The default is "". 0413 * @return The newly created IProfile1D. 0414 * 0415 */ 0416 virtual IProfile1D * createProfile1D(const std::string & path, const std::string & title, const std::vector<double> & binEdges, const std::string & options = "") = 0; 0417 0418 /** 0419 * Create a IProfile1D. 0420 * @param path The path of the created IProfile. The path can either be a relative or full path. 0421 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0422 * All the directories in the path must exist. The characther `/` cannot be used 0423 * in names; it is only used to delimit directories within paths. 0424 * @param title The title of the IProfile1D. 0425 * @param binEdges The array of the bin edges for the x axis. 0426 * @param lowerValue The lower value displayed along the y axis. 0427 * @param upperValue The upper value displayed along the y axis. 0428 * @param options The options for the IProfile1D. The default is "". 0429 * @return The newly created IProfile1D. 0430 * 0431 */ 0432 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; 0433 0434 /** 0435 * Create a IProfile1D. 0436 * @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. 0437 * The last part of the path is used as the title. 0438 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0439 * All the directories in the path must exist. The characther `/` cannot be used 0440 * in names; it is only used to delimit directories within paths. 0441 * @param nBins The number of bins of the x axis. 0442 * @param lowerEdge The lower edge of the x axis. 0443 * @param upperEdge The upper edge of the x axis. 0444 * @return The newly created IProfile1D. 0445 * 0446 */ 0447 virtual IProfile1D * createProfile1D(const std::string & pathAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; 0448 0449 /** 0450 * Create a IProfile1D. 0451 * @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. 0452 * The last part of the path is used as the title. 0453 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0454 * All the directories in the path must exist. The characther `/` cannot be used 0455 * in names; it is only used to delimit directories within paths. 0456 * @param nBins The number of bins of the x axis. 0457 * @param lowerEdge The lower edge of the x axis. 0458 * @param upperEdge The upper edge of the x axis. 0459 * @param lowerValue The lower value displayed along the y axis. 0460 * @param upperValue The upper value displayed along the y axis. 0461 * @return The newly created IProfile1D. 0462 * 0463 */ 0464 virtual IProfile1D * createProfile1D(const std::string & pathAndTitle, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue) = 0; 0465 0466 /** 0467 * Create a copy of an IProfile1D. 0468 * @param path The path of the resulting IProfile. The path can either be a relative or full path. 0469 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0470 * All the directories in the path must exist. The characther `/` cannot be used 0471 * in names; it is only used to delimit directories within paths. 0472 * @param profile The IProfile1D to be copied. 0473 * @return The copy of the IProfile1D. 0474 * 0475 */ 0476 virtual IProfile1D * createCopy(const std::string & path, const IProfile1D & profile) = 0; 0477 0478 /** 0479 * Create a IProfile2D. 0480 * @param path The path of the created IProfile. The path can either be a relative or full path. 0481 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0482 * All the directories in the path must exist. The characther `/` cannot be used 0483 * in names; it is only used to delimit directories within paths. 0484 * @param title The title of the IProfile2D. 0485 * @param nBinsX The number of bins of the x axis. 0486 * @param lowerEdgeX The lower edge of the x axis. 0487 * @param upperEdgeX The upper edge of the x axis. 0488 * @param nBinsY The number of bins of the y axis. 0489 * @param lowerEdgeY The lower edge of the y axis. 0490 * @param upperEdgeY The upper edge of the y axis. 0491 * @param options The options for the IProfile2D. The default is "". 0492 * @return The newly created IProfile2D. 0493 * 0494 */ 0495 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; 0496 0497 /** 0498 * Create a IProfile2D. 0499 * @param path The path of the created IProfile. The path can either be a relative or full path. 0500 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0501 * All the directories in the path must exist. The characther `/` cannot be used 0502 * in names; it is only used to delimit directories within paths. 0503 * @param title The title of the IProfile2D. 0504 * @param nBinsX The number of bins of the x axis. 0505 * @param lowerEdgeX The lower edge of the x axis. 0506 * @param upperEdgeX The upper edge of the x axis. 0507 * @param nBinsY The number of bins of the y axis. 0508 * @param lowerEdgeY The lower edge of the y axis. 0509 * @param upperEdgeY The upper edge of the y axis. 0510 * @param lowerValue The lower value displayed along the z axis. 0511 * @param upperValue The upper value displayed along the z axis. 0512 * @param options The options for the IProfile2D. The default is "". 0513 * @return The newly created IProfile2D. 0514 * 0515 */ 0516 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; 0517 0518 /** 0519 * Create a IProfile2D. 0520 * @param path The path of the created IProfile. The path can either be a relative or full path. 0521 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0522 * All the directories in the path must exist. The characther `/` cannot be used 0523 * in names; it is only used to delimit directories within paths. 0524 * @param title The title of the IProfile2D. 0525 * @param binEdgesX The array of the bin edges for the x axis. 0526 * @param binEdgesY The array of the bin edges for the y axis. 0527 * @param options The options for the IProfile2D. The default is "". 0528 * @return The newly created IProfile2D. 0529 * 0530 */ 0531 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; 0532 0533 /** 0534 * Create a IProfile2D. 0535 * @param path The path of the created IProfile. The path can either be a relative or full path. 0536 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0537 * All the directories in the path must exist. The characther `/` cannot be used 0538 * in names; it is only used to delimit directories within paths. 0539 * @param title The title of the IProfile2D. 0540 * @param binEdgesX The array of the bin edges for the x axis. 0541 * @param binEdgesY The array of the bin edges for the y axis. 0542 * @param lowerValue The lower value displayed along the y axis. 0543 * @param upperValue The upper value displayed along the y axis. 0544 * @param options The options for the IProfile2D. The default is "". 0545 * @return The newly created IProfile2D. 0546 * 0547 */ 0548 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; 0549 0550 /** 0551 * Create a IProfile2D. 0552 * @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. 0553 * The last part of the path is used as the title. 0554 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0555 * All the directories in the path must exist. The characther `/` cannot be used 0556 * in names; it is only used to delimit directories within paths. 0557 * @param nBinsX The number of bins of the x axis. 0558 * @param lowerEdgeX The lower edge of the x axis. 0559 * @param upperEdgeX The upper edge of the x axis. 0560 * @param nBinsY The number of bins of the y axis. 0561 * @param lowerEdgeY The lower edge of the y axis. 0562 * @param upperEdgeY The upper edge of the y axis. 0563 * @return The newly created IProfile2D. 0564 * 0565 */ 0566 virtual IProfile2D * createProfile2D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; 0567 0568 /** 0569 * Create a IProfile2D. 0570 * @param pathAndTitle The path of the created created IProfile. The path can either be a relative or full path. 0571 * The last part of the path is used as the title. 0572 * ("/folder1/folder2/dataTitle" and "../folder/dataTitle" are valid paths). 0573 * All the directories in the path must exist. The characther `/` cannot be used 0574 * in names; it is only used to delimit directories within paths. 0575 * @param nBinsX The number of bins of the x axis. 0576 * @param lowerEdgeX The lower edge of the x axis. 0577 * @param upperEdgeX The upper edge of the x axis. 0578 * @param nBinsY The number of bins of the y axis. 0579 * @param lowerEdgeY The lower edge of the y axis. 0580 * @param upperEdgeY The upper edge of the y axis. 0581 * @param lowerValue The lower value displayed along the z axis. 0582 * @param upperValue The upper value displayed along the z axis. 0583 * @return The newly created IProfile2D. 0584 * 0585 */ 0586 virtual IProfile2D * createProfile2D(const std::string & pathAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, double lowerValue, double upperValue) = 0; 0587 0588 /** 0589 * Create a copy of an IProfile2D. 0590 * @param path The path of the resulting IProfile. The path can either be a relative or full path. 0591 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0592 * All the directories in the path must exist. The characther `/` cannot be used 0593 * in names; it is only used to delimit directories within paths. 0594 * @param profile The IProfile2D to be copied. 0595 * @return The copy of the IProfile2D. 0596 * 0597 */ 0598 virtual IProfile2D * createCopy(const std::string & path, const IProfile2D & profile) = 0; 0599 0600 /** 0601 * Create an IHistogram1D by adding two IHistogram1D. 0602 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0603 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0604 * All the directories in the path must exist. The characther `/` cannot be used 0605 * in names; it is only used to delimit directories within paths. 0606 * @param hist1 The first member of the addition. 0607 * @param hist2 The second member of the addition. 0608 * @return The sum of the two IHistogram1D. 0609 * if a directory in the path does not exist, or the path is illegal. 0610 * 0611 */ 0612 virtual IHistogram1D * add(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 0613 0614 /** 0615 * Create an IHistogram1D by subtracting two IHistogram1D. 0616 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0617 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0618 * All the directories in the path must exist. The characther `/` cannot be used 0619 * in names; it is only used to delimit directories within paths. 0620 * @param hist1 The first member of the subtraction. 0621 * @param hist2 The second member of the subtraction. 0622 * @return The difference of the two IHistogram1D. 0623 * if a directory in the path does not exist, or the path is illegal. 0624 * 0625 */ 0626 virtual IHistogram1D * subtract(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 0627 0628 /** 0629 * Create an IHistogram1D by multiplying two IHistogram1D. 0630 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0631 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0632 * All the directories in the path must exist. The characther `/` cannot be used 0633 * in names; it is only used to delimit directories within paths. 0634 * @param hist1 The first member of the multiplication. 0635 * @param hist2 The second member of the multiplication. 0636 * @return The product of the two IHistogram1D. 0637 * if a directory in the path does not exist, or the path is illegal. 0638 * 0639 */ 0640 virtual IHistogram1D * multiply(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 0641 0642 /** 0643 * Create an IHistogram1D by dividing two IHistogram1D. 0644 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0645 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0646 * All the directories in the path must exist. The characther `/` cannot be used 0647 * in names; it is only used to delimit directories within paths. 0648 * @param hist1 The first member of the division. 0649 * @param hist2 The second member of the division. 0650 * @return The ration of the two IHistogram1D. 0651 * if a directory in the path does not exist, or the path is illegal. 0652 * 0653 */ 0654 virtual IHistogram1D * divide(const std::string & path, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 0655 0656 /** 0657 * Create an IHistogram2D by adding two IHistogram2D. 0658 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0659 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0660 * All the directories in the path must exist. The characther `/` cannot be used 0661 * in names; it is only used to delimit directories within paths. 0662 * @param hist1 The first member of the addition. 0663 * @param hist2 The second member of the addition. 0664 * @return The sum of the two IHistogram2D. 0665 * if a directory in the path does not exist, or the path is illegal. 0666 * 0667 */ 0668 virtual IHistogram2D * add(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 0669 0670 /** 0671 * Create an IHistogram2D by subtracting two IHistogram2D. 0672 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0673 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0674 * All the directories in the path must exist. The characther `/` cannot be used 0675 * in names; it is only used to delimit directories within paths. 0676 * @param hist1 The first member of the subtraction. 0677 * @param hist2 The second member of the subtraction. 0678 * @return The difference of the two IHistogram2D. 0679 * if a directory in the path does not exist, or the path is illegal. 0680 * 0681 */ 0682 virtual IHistogram2D * subtract(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 0683 0684 /** 0685 * Create an IHistogram2D by multiplying two IHistogram2D. 0686 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0687 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0688 * All the directories in the path must exist. The characther `/` cannot be used 0689 * in names; it is only used to delimit directories within paths. 0690 * @param hist1 The first member of the multiplication. 0691 * @param hist2 The second member of the multiplication. 0692 * @return The product of the two IHistogram2D. 0693 * if a directory in the path does not exist, or the path is illegal. 0694 * 0695 */ 0696 virtual IHistogram2D * multiply(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 0697 0698 /** 0699 * Create an IHistogram2D by dividing two IHistogram2D. 0700 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0701 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0702 * All the directories in the path must exist. The characther `/` cannot be used 0703 * in names; it is only used to delimit directories within paths. 0704 * @param hist1 The first member of the division. 0705 * @param hist2 The second member of the division. 0706 * @return The ration of the two IHistogram2D. 0707 * if a directory in the path does not exist, or the path is illegal. 0708 * 0709 */ 0710 virtual IHistogram2D * divide(const std::string & path, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 0711 0712 /** 0713 * Create an IHistogram3D by adding two IHistogram3D. 0714 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0715 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0716 * All the directories in the path must exist. The characther `/` cannot be used 0717 * in names; it is only used to delimit directories within paths. 0718 * @param hist1 The first member of the addition. 0719 * @param hist2 The second member of the addition. 0720 * @return The sum of the two IHistogram3D. 0721 * if a directory in the path does not exist, or the path is illegal. 0722 * 0723 */ 0724 virtual IHistogram3D * add(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 0725 0726 /** 0727 * Create an IHistogram3D by subtracting two IHistogram3D. 0728 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0729 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0730 * All the directories in the path must exist. The characther `/` cannot be used 0731 * in names; it is only used to delimit directories within paths. 0732 * @param hist1 The first member of the subtraction. 0733 * @param hist2 The second member of the subtraction. 0734 * @return The difference of the two IHistogram3D. 0735 * if a directory in the path does not exist, or the path is illegal. 0736 * 0737 */ 0738 virtual IHistogram3D * subtract(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 0739 0740 /** 0741 * Create an IHistogram3D by multiplying two IHistogram3D. 0742 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0743 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0744 * All the directories in the path must exist. The characther `/` cannot be used 0745 * in names; it is only used to delimit directories within paths. 0746 * @param hist1 The first member of the multiplication. 0747 * @param hist2 The second member of the multiplication. 0748 * @return The product of the two IHistogram3D. 0749 * if a directory in the path does not exist, or the path is illegal. 0750 * 0751 */ 0752 virtual IHistogram3D * multiply(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 0753 0754 /** 0755 * Create an IHistogram3D by dividing two IHistogram3D. 0756 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0757 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0758 * All the directories in the path must exist. The characther `/` cannot be used 0759 * in names; it is only used to delimit directories within paths. 0760 * @param hist1 The first member of the division. 0761 * @param hist2 The second member of the division. 0762 * @return The ration of the two IHistogram3D. 0763 * if a directory in the path does not exist, or the path is illegal. 0764 * 0765 */ 0766 virtual IHistogram3D * divide(const std::string & path, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 0767 0768 /** 0769 * Create an IHistogram1D by projecting an IHistogram2D along its x axis. 0770 * This is equivalent to <tt>sliceX(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 0771 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0772 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0773 * All the directories in the path must exist. The characther `/` cannot be used 0774 * in names; it is only used to delimit directories within paths. 0775 * @param hist The IHistogram2D to be projected. 0776 * @return The resulting projection. 0777 * 0778 */ 0779 virtual IHistogram1D * projectionX(const std::string & path, const IHistogram2D & hist) = 0; 0780 0781 /** 0782 * Create an IHistogram1D by projecting an IHistogram2D along its y axis. 0783 * This is equivalent to <tt>sliceY(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 0784 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0785 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0786 * All the directories in the path must exist. The characther `/` cannot be used 0787 * in names; it is only used to delimit directories within paths. 0788 * @param hist The IHistogram2D to be projected. 0789 * @return The resulting projection. 0790 * 0791 */ 0792 virtual IHistogram1D * projectionY(const std::string & path, const IHistogram2D & hist) = 0; 0793 0794 /** 0795 * Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis at a given bin. 0796 * This is equivalent to <tt>sliceX(indexY,indexY)</tt>. 0797 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0798 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0799 * All the directories in the path must exist. The characther `/` cannot be used 0800 * in names; it is only used to delimit directories within paths. 0801 * @param hist The IHistogram2D to be sliced. 0802 * @param index The index of the bin along the y axis where the IHistogram2D has to be sliced. 0803 * @return The resulting slice. 0804 * 0805 */ 0806 virtual IHistogram1D * sliceX(const std::string & path, const IHistogram2D & hist, int index) = 0; 0807 0808 /** 0809 * Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis at a given bin. 0810 * This is equivalent to <tt>sliceY(indexX,indexX)</tt>. 0811 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0812 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0813 * All the directories in the path must exist. The characther `/` cannot be used 0814 * in names; it is only used to delimit directories within paths. 0815 * @param hist The IHistogram2D to be sliced. 0816 * @param index The index of the bin along the x axis where the IHistogram2D has to be sliced. 0817 * @return The resulting slice. 0818 * 0819 */ 0820 virtual IHistogram1D * sliceY(const std::string & path, const IHistogram2D & hist, int index) = 0; 0821 0822 /** 0823 * Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis between two bins (inclusive). 0824 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0825 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0826 * All the directories in the path must exist. The characther `/` cannot be used 0827 * in names; it is only used to delimit directories within paths. 0828 * @param hist The IHistogram2D to be sliced. 0829 * @param index1 The index of the bin along the y axis that marks the lower edge of the slice. 0830 * @param index2 The index of the bin along the y axis that marks the upper edge of the slice. 0831 * @return The resulting slice. 0832 * 0833 */ 0834 virtual IHistogram1D * sliceX(const std::string & path, const IHistogram2D & hist, int index1, int index2) = 0; 0835 0836 /** 0837 * Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis between two bins (inclusive). 0838 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0839 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0840 * All the directories in the path must exist. The characther `/` cannot be used 0841 * in names; it is only used to delimit directories within paths. 0842 * @param hist The IHistogram2D to be sliced. 0843 * @param index1 The index of the bin along the x axis that marks the lower edge of the slice. 0844 * @param index2 The index of the bin along the x axis that marks the upper edge of the slice. 0845 * @return The resulting slice. 0846 * 0847 */ 0848 virtual IHistogram1D * sliceY(const std::string & path, const IHistogram2D & hist, int index1, int index2) = 0; 0849 0850 /** 0851 * Create an IHistogram2D by projecting an IHistogram3D on the x-y plane. 0852 * This is equivalent to <tt>sliceXY(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 0853 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0854 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0855 * All the directories in the path must exist. The characther `/` cannot be used 0856 * in names; it is only used to delimit directories within paths. 0857 * @param hist The IHistogram3D to be projected. 0858 * @return The resulting projection. 0859 * 0860 */ 0861 virtual IHistogram2D * projectionXY(const std::string & path, const IHistogram3D & hist) = 0; 0862 0863 /** 0864 * Create an IHistogram2D by projecting an IHistogram3D on the x-z plane. 0865 * This is equivalent to <tt>sliceXZ(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 0866 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0867 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0868 * All the directories in the path must exist. The characther `/` cannot be used 0869 * in names; it is only used to delimit directories within paths. 0870 * @param hist The IHistogram3D to be projected. 0871 * @return The resulting projection. 0872 * 0873 */ 0874 virtual IHistogram2D * projectionXZ(const std::string & path, const IHistogram3D & hist) = 0; 0875 0876 /** 0877 * Create an IHistogram2D by projecting an IHistogram3D on the y-z plane. 0878 * This is equivalent to <tt>sliceYZ(UNDERFLOW_BIN,OVERFLOW_BIN)</tt>. 0879 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0880 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0881 * All the directories in the path must exist. The characther `/` cannot be used 0882 * in names; it is only used to delimit directories within paths. 0883 * @param hist The IHistogram3D to be projected. 0884 * @return The resulting projection. 0885 * 0886 */ 0887 virtual IHistogram2D * projectionYZ(const std::string & path, const IHistogram3D & hist) = 0; 0888 0889 /** 0890 * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Z axis, 0891 * between "index1" and "index2" (inclusive). 0892 * The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. 0893 * The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. 0894 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0895 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0896 * All the directories in the path must exist. The characther `/` cannot be used 0897 * in names; it is only used to delimit directories within paths. 0898 * @param hist The IHistogram3D to sliced. 0899 * @param index1 The index of the bin along the z axis that marks the lower edge of the slice. 0900 * @param index2 The index of the bin along the z axis that marks the upper edge of the slice. 0901 * @return The resulting slice. 0902 * 0903 */ 0904 virtual IHistogram2D * sliceXY(const std::string & path, const IHistogram3D & hist, int index1, int index2) = 0; 0905 0906 /** 0907 * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Y axis, 0908 * between "index1" and "index2" (inclusive). 0909 * The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. 0910 * The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. 0911 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0912 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0913 * All the directories in the path must exist. The characther `/` cannot be used 0914 * in names; it is only used to delimit directories within paths. 0915 * @param hist The IHistogram3D to sliced. 0916 * @param index1 The index of the bin along the y axis that marks the lower edge of the slice. 0917 * @param index2 The index of the bin along the y axis that marks the upper edge of the slice. 0918 * @return The resulting slice. 0919 * 0920 */ 0921 virtual IHistogram2D * sliceXZ(const std::string & path, const IHistogram3D & hist, int index1, int index2) = 0; 0922 0923 /** 0924 * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the X axis, 0925 * between "index1" and "index2" (inclusive). 0926 * The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. 0927 * The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. 0928 * @param path The path of the resulting IHistogram. The path can either be a relative or full path. 0929 * ("/folder1/folder2/dataName" and "../folder/dataName" are valid paths). 0930 * All the directories in the path must exist. The characther `/` cannot be used 0931 * in names; it is only used to delimit directories within paths. 0932 * @param hist The IHistogram3D to sliced. 0933 * @param index1 The index of the bin along the x axis that marks the lower edge of the slice. 0934 * @param index2 The index of the bin along the x axis that marks the upper edge of the slice. 0935 * @return The resulting slice. 0936 * 0937 */ 0938 virtual IHistogram2D * sliceYZ(const std::string & path, const IHistogram3D & hist, int index1, int index2) = 0; 0939 }; // class 0940 } // namespace AIDA 0941 #endif /* ifndef AIDA_IHISTOGRAMFACTORY_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |