thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
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
16namespace AIDA {
17
18class IAnnotation;
19
20class IBaseHistogram {
21
22public:
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
34class IHistogram : virtual public IBaseHistogram {
35
36public:
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
51class IAxis;
52
53class IHistogram1D: virtual public IHistogram {
54
55public:
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 */