thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Analysis
LWH
AIHistogramFactory.h
1
// -*- C++ -*-
2
//
3
// AIHistogramFactory.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_AIHistogramFactory_H
10
#define LWH_AIHistogramFactory_H
11
12
13
16
namespace
AIDA {
17
18
class
ICloud1D;
19
class
ICloud2D;
20
class
ICloud3D;
21
class
IBaseHistogram;
22
class
IHistogram1D;
23
class
IHistogram2D;
24
class
IHistogram3D;
25
class
IProfile1D;
26
class
IProfile2D;
27
28
class
IHistogramFactory {
29
30
public
:
31
32
virtual
~IHistogramFactory() {}
33
34
virtual
bool
destroy(IBaseHistogram * hist) = 0;
35
virtual
IHistogram1D *
36
createHistogram1D(
const
std::string &,
const
std::string &,
37
int
,
double
,
double
,
const
std::string & =
""
) = 0;
38
virtual
IHistogram1D *
39
createHistogram1D(
const
std::string &,
int
,
double
,
double
) = 0;
40
virtual
IHistogram1D *
41
createHistogram1D(
const
std::string &,
const
std::string & ,
42
const
std::vector<double> &,
const
std::string & =
""
) = 0;
43
virtual
IHistogram1D *
44
createCopy(
const
std::string &,
const
IHistogram1D &) = 0;
45
virtual
IHistogram1D * add(
const
std::string &,
46
const
IHistogram1D &,
const
IHistogram1D &) = 0;
47
virtual
IHistogram1D * subtract(
const
std::string &,
const
IHistogram1D &,
48
const
IHistogram1D &) = 0;
49
virtual
IHistogram1D * multiply(
const
std::string &,
const
IHistogram1D &,
50
const
IHistogram1D &) = 0;
51
virtual
IHistogram1D * divide(
const
std::string &,
const
IHistogram1D &,
52
const
IHistogram1D &) = 0;
53
54
55
virtual
IHistogram2D *
56
createHistogram2D(
const
std::string & path,
const
std::string & title,
57
int
nx,
double
xlo,
double
xup,
58
int
ny,
double
ylo,
double
yup,
59
const
std::string & =
""
) = 0;
60
61
virtual
IHistogram2D *
62
createHistogram2D(
const
std::string & pathAndTitle,
63
int
nx,
double
xlo,
double
xup,
64
int
ny,
double
ylo,
double
yup) = 0;
65
66
virtual
IHistogram2D *
67
createHistogram2D(
const
std::string & path,
const
std::string & title,
68
const
std::vector<double> & xedges,
69
const
std::vector<double> & yedges,
70
const
std::string & =
""
) = 0;
71
72
virtual
IHistogram2D *
73
createCopy(
const
std::string & path,
const
IHistogram2D & hist) = 0;
74
75
virtual
IHistogram2D * add(
const
std::string &,
76
const
IHistogram2D &,
const
IHistogram2D &) = 0;
77
virtual
IHistogram2D * subtract(
const
std::string &,
const
IHistogram2D &,
78
const
IHistogram2D &) = 0;
79
virtual
IHistogram2D * multiply(
const
std::string &,
const
IHistogram2D &,
80
const
IHistogram2D &) = 0;
81
virtual
IHistogram2D * divide(
const
std::string &,
const
IHistogram2D &,
82
const
IHistogram2D &) = 0;
83
84
virtual
IHistogram1D *
85
projectionX(
const
std::string &,
const
IHistogram2D &) = 0;
86
87
virtual
IHistogram1D *
88
projectionY(
const
std::string &,
const
IHistogram2D &) = 0;
89
90
virtual
IHistogram1D *
91
sliceX(
const
std::string &,
const
IHistogram2D &,
int
) = 0;
92
93
virtual
IHistogram1D *
94
sliceY(
const
std::string &,
const
IHistogram2D &,
int
) = 0;
95
96
virtual
IHistogram1D *
97
sliceX(
const
std::string &,
const
IHistogram2D &,
int
,
int
) = 0;
98
99
virtual
IHistogram1D *
100
sliceY(
const
std::string &,
const
IHistogram2D &,
int
,
int
) = 0;
101
102
};
103
104
}
105
112
#endif
/* LWH_AIHistogramFactory_H */
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6