This website is no longer maintained. Its content may be obsolete. Please visit http://home.cern/ for current CERN information.
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 00038 class IHistogramFactory { 00039 00040 public: 00042 virtual ~IHistogramFactory() { /* nop */; } 00043 00050 virtual bool destroy(IBaseHistogram * hist) = 0; 00051 00064 virtual ICloud1D * createCloud1D(const std::string & name, const std::string & title, int nMax = -1, const std::string & options = "") = 0; 00065 00072 virtual ICloud1D * createCloud1D(const std::string & nameAndTitle) = 0; 00073 00081 virtual ICloud1D * createCopy(const std::string & name, const ICloud1D & cloud) = 0; 00082 00095 virtual ICloud2D * createCloud2D(const std::string & name, const std::string & title, int nMax = -1, const std::string & options = "") = 0; 00096 00103 virtual ICloud2D * createCloud2D(const std::string & nameAndTitle) = 0; 00104 00112 virtual ICloud2D * createCopy(const std::string & name, const ICloud2D & cloud) = 0; 00113 00126 virtual ICloud3D * createCloud3D(const std::string & name, const std::string & title, int nMax = -1, const std::string & options = "") = 0; 00127 00134 virtual ICloud3D * createCloud3D(const std::string & nameAndTitle) = 0; 00135 00143 virtual ICloud3D * createCopy(const std::string & name, const ICloud3D & cloud) = 0; 00144 00157 virtual IHistogram1D * createHistogram1D(const std::string & name, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; 00158 00168 virtual IHistogram1D * createHistogram1D(const std::string & nameAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; 00169 00180 virtual IHistogram1D * createHistogram1D(const std::string & name, const std::string & title, const std::vector<double> & binEdges, const std::string & options = "") = 0; 00181 00189 virtual IHistogram1D * createCopy(const std::string & name, const IHistogram1D & hist) = 0; 00190 00206 virtual IHistogram2D * createHistogram2D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string & options = "") = 0; 00207 00220 virtual IHistogram2D * createHistogram2D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; 00221 00233 virtual IHistogram2D * createHistogram2D(const std::string & name, const std::string & title, const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY, const std::string & options = "") = 0; 00234 00242 virtual IHistogram2D * createCopy(const std::string & name, const IHistogram2D & hist) = 0; 00243 00262 virtual IHistogram3D * createHistogram3D(const std::string & name, 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; 00263 00279 virtual IHistogram3D * createHistogram3D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ) = 0; 00280 00293 virtual IHistogram3D * createHistogram3D(const std::string & name, const std::string & title, const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY, const std::vector<double> & binEdgesZ, const std::string & options = "") = 0; 00294 00302 virtual IHistogram3D * createCopy(const std::string & name, const IHistogram3D & hist) = 0; 00303 00315 virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; 00316 00330 virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue, const std::string & options = "") = 0; 00331 00341 virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, const std::vector<double> & binEdges, const std::string & options = "") = 0; 00342 00354 virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, const std::vector<double> & binEdges, double lowerValue, double upperValue, const std::string & options = "") = 0; 00355 00365 virtual IProfile1D * createProfile1D(const std::string & nameAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; 00366 00378 virtual IProfile1D * createProfile1D(const std::string & nameAndTitle, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue) = 0; 00379 00387 virtual IProfile1D * createCopy(const std::string & name, const IProfile1D & profile) = 0; 00388 00403 virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string & options = "") = 0; 00404 00421 virtual IProfile2D * createProfile2D(const std::string & name, 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; 00422 00433 virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY, const std::string & options = "") = 0; 00434 00447 virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, const std::vector<double> & binEdgesX, const std::vector<double> & binEdgesY, double lowerValue, double upperValue, const std::string & options = "") = 0; 00448 00461 virtual IProfile2D * createProfile2D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; 00462 00477 virtual IProfile2D * createProfile2D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, double lowerValue, double upperValue) = 0; 00478 00486 virtual IProfile2D * createCopy(const std::string & name, const IProfile2D & profile) = 0; 00487 00496 virtual IHistogram1D * add(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 00497 00506 virtual IHistogram1D * subtract(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 00507 00516 virtual IHistogram1D * multiply(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 00517 00526 virtual IHistogram1D * divide(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; 00527 00536 virtual IHistogram2D * add(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 00537 00546 virtual IHistogram2D * subtract(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 00547 00556 virtual IHistogram2D * multiply(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 00557 00566 virtual IHistogram2D * divide(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; 00567 00576 virtual IHistogram3D * add(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 00577 00586 virtual IHistogram3D * subtract(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 00587 00596 virtual IHistogram3D * multiply(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 00597 00606 virtual IHistogram3D * divide(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; 00607 00616 virtual IHistogram1D * projectionX(const std::string & name, const IHistogram2D & hist) = 0; 00617 00626 virtual IHistogram1D * projectionY(const std::string & name, const IHistogram2D & hist) = 0; 00627 00637 virtual IHistogram1D * sliceX(const std::string & name, const IHistogram2D & hist, int index) = 0; 00638 00648 virtual IHistogram1D * sliceY(const std::string & name, const IHistogram2D & hist, int index) = 0; 00649 00659 virtual IHistogram1D * sliceX(const std::string & name, const IHistogram2D & hist, int index1, int index2) = 0; 00660 00670 virtual IHistogram1D * sliceY(const std::string & name, const IHistogram2D & hist, int index1, int index2) = 0; 00671 00680 virtual IHistogram2D * projectionXY(const std::string & name, const IHistogram3D & hist) = 0; 00681 00690 virtual IHistogram2D * projectionXZ(const std::string & name, const IHistogram3D & hist) = 0; 00691 00700 virtual IHistogram2D * projectionYZ(const std::string & name, const IHistogram3D & hist) = 0; 00701 00714 virtual IHistogram2D * sliceXY(const std::string & name, const IHistogram3D & hist, int index1, int index2) = 0; 00715 00728 virtual IHistogram2D * sliceXZ(const std::string & name, const IHistogram3D & hist, int index1, int index2) = 0; 00729 00742 virtual IHistogram2D * sliceYZ(const std::string & name, const IHistogram3D & hist, int index1, int index2) = 0; 00743 }; // class 00744 }; // namespace AIDA 00745 #endif /* ifndef AIDA_IHISTOGRAMFACTORY_H */