thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
AIHistogram1D.h
1 // -*- C++ -*-
2 //
3 // AIHistogram1D.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2019 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef LWH_AIHistorgram1D_H
10 #define LWH_AIHistorgram1D_H
11 
12 
13 
16 namespace AIDA {
17 
18 class IAnnotation;
19 
20 class IBaseHistogram {
21 
22 public:
23 
24  virtual ~IBaseHistogram() {}
25 
26  virtual std::string title() const = 0;
27  virtual bool setTitle(const std::string & title) = 0;
28  virtual int dimension() const = 0;
29  virtual bool reset() = 0;
30  virtual int entries() const = 0;
31 
32 };
33 
34 class IHistogram : virtual public IBaseHistogram {
35 
36 public:
37 
38  virtual ~IHistogram() {}
39 
40  virtual int allEntries() const = 0;
41  virtual int extraEntries() const = 0;
42  virtual double equivalentBinEntries() const = 0;
43  virtual double sumBinHeights() const = 0;
44  virtual double sumAllBinHeights() const = 0;
45  virtual double sumExtraBinHeights() const = 0;
46  virtual double minBinHeight() const = 0;
47  virtual double maxBinHeight() const = 0;
48 
49 };
50 
51 class IAxis;
52 
53 class IHistogram1D: virtual public IHistogram {
54 
55 public:
56 
57  virtual ~IHistogram1D() {}
58 
59  virtual bool fill(double x, double weight = 1.) = 0;
60  virtual double binMean(int index) const = 0;
61  virtual int binEntries(int index) const = 0;
62  virtual double binHeight(int index) const = 0;
63  virtual double binError(int index) const = 0;
64  virtual double mean() const = 0;
65  virtual double rms() const = 0;
66  virtual const IAxis & axis() const = 0;
67  virtual int coordToIndex(double coord) const = 0;
68  virtual bool add(const IHistogram1D & hist) = 0;
69  virtual bool scale(double scaleFactor) = 0;
70 
71 };
72 
73 }
74 
81 #endif /* LWH_AIHistorgram1D_H */