Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:38:18

0001 // -*- C++ -*-
0002 //
0003 // AIHistogramFactory.h is a part of ThePEG - Toolkit for HEP Event Generation
0004 // Copyright (C) 1999-2019 Leif Lonnblad
0005 //
0006 // ThePEG is licenced under version 3 of the GPL, see COPYING for details.
0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
0008 //
0009 #ifndef LWH_AIHistogramFactory_H
0010 #define LWH_AIHistogramFactory_H
0011 
0012 
0013 
0014 /** @cond DONT_DOCUMENT_STRIPPED_DOWN_AIDA_INTERFACES */
0015 
0016 namespace AIDA {
0017 
0018 class ICloud1D;
0019 class ICloud2D;
0020 class ICloud3D;
0021 class IBaseHistogram;
0022 class IHistogram1D;
0023 class IHistogram2D;
0024 class IHistogram3D;
0025 class IProfile1D;
0026 class IProfile2D;
0027 
0028 class IHistogramFactory {
0029 
0030 public:
0031 
0032   virtual ~IHistogramFactory() {}
0033 
0034   virtual bool destroy(IBaseHistogram * hist) = 0;
0035   virtual IHistogram1D *
0036   createHistogram1D(const std::string &, const std::string &,
0037             int, double, double, const std::string & = "") = 0;
0038   virtual IHistogram1D *
0039   createHistogram1D(const std::string &, int, double, double) = 0;
0040   virtual IHistogram1D *
0041   createHistogram1D(const std::string &, const std::string & ,
0042             const std::vector<double> &, const std::string & = "") = 0;
0043   virtual IHistogram1D *
0044   createCopy(const std::string &, const IHistogram1D &) = 0;
0045   virtual IHistogram1D * add(const std::string &,
0046                  const IHistogram1D &, const IHistogram1D &) = 0;
0047   virtual IHistogram1D * subtract(const std::string &, const IHistogram1D &,
0048                   const IHistogram1D &) = 0;
0049   virtual IHistogram1D * multiply(const std::string &, const IHistogram1D &,
0050               const IHistogram1D &) = 0;
0051   virtual IHistogram1D * divide(const std::string &, const IHistogram1D &,
0052             const IHistogram1D &) = 0;
0053 
0054 
0055   virtual IHistogram2D *
0056   createHistogram2D(const std::string & path, const std::string & title,
0057             int nx, double xlo, double xup,
0058             int ny, double ylo, double yup,
0059             const std::string & = "") = 0;
0060 
0061   virtual IHistogram2D *
0062   createHistogram2D(const std::string & pathAndTitle,
0063             int nx, double xlo, double xup,
0064             int ny, double ylo, double yup) = 0;
0065 
0066   virtual IHistogram2D *
0067   createHistogram2D(const std::string & path, const std::string & title,
0068             const std::vector<double> & xedges,
0069             const std::vector<double> & yedges,
0070             const std::string & = "") = 0;
0071 
0072   virtual IHistogram2D *
0073   createCopy(const std::string & path, const IHistogram2D & hist) = 0;
0074   
0075   virtual IHistogram2D * add(const std::string &,
0076                  const IHistogram2D &, const IHistogram2D &) = 0;
0077   virtual IHistogram2D * subtract(const std::string &, const IHistogram2D &,
0078                   const IHistogram2D &) = 0;
0079   virtual IHistogram2D * multiply(const std::string &, const IHistogram2D &,
0080               const IHistogram2D &) = 0;
0081   virtual IHistogram2D * divide(const std::string &, const IHistogram2D &,
0082             const IHistogram2D &) = 0;
0083 
0084   virtual IHistogram1D *
0085   projectionX(const std::string &, const IHistogram2D &) = 0;
0086 
0087   virtual IHistogram1D *
0088   projectionY(const std::string &, const IHistogram2D &) = 0;
0089 
0090   virtual IHistogram1D *
0091   sliceX(const std::string &, const IHistogram2D &, int) = 0;
0092 
0093   virtual IHistogram1D *
0094   sliceY(const std::string &, const IHistogram2D &, int) = 0;
0095 
0096   virtual IHistogram1D *
0097   sliceX(const std::string &, const IHistogram2D &, int, int) = 0;
0098 
0099   virtual IHistogram1D *
0100   sliceY(const std::string &, const IHistogram2D &, int, int) = 0;
0101 
0102 };
0103 
0104 }
0105 
0106 /** @endcond */
0107 
0108 
0109 
0110 
0111 
0112 #endif /* LWH_AIHistogramFactory_H */