cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
N/A
Central exclusive processes event generator
Toggle main menu visibility
Main Page
Related Pages
Packages
Package List
Package Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
x
y
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
x
y
Variables
Typedefs
Enumerations
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
Enumerator
b
c
d
e
g
h
i
l
m
n
p
r
t
u
w
x
y
z
Related Symbols
d
g
h
o
u
v
Files
File List
File Members
All
_
a
b
c
d
e
h
o
p
r
s
Functions
Variables
Macros
_
b
c
d
e
p
r
s
▼
CepGen
Reference manual
Bibliography
►
Packages
►
Classes
▼
Files
▼
File List
▼
include
▼
CepGen
►
Cards
►
Core
►
Event
►
EventFilter
►
FormFactors
▼
Integration
►
FunctionalIntegrand.h
►
FunctionIntegrand.h
►
GridParameters.h
►
GSLIntegrator.h
►
Integrand.h
►
Integrator.h
►
ProcessIntegrand.h
►
Modules
►
PartonFluxes
►
Physics
►
Process
►
StructureFunctions
►
Utils
►
Generator.h
►
Version.h
►
CepGenBoost
►
CepGenHepMC2
►
CepGenHepMC3
►
CepGenHerwig6
►
CepGenMadGraph
►
CepGenPythia6
►
CepGenPythia8
►
CepGenPython
►
CepGenRoot
►
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
Loading...
Searching...
No Matches
Integrator.h
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2022-2025 Laurent Forthomme
4
*
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation, either version 3 of the License, or
8
* any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#ifndef CepGen_Integration_Integrator_h
20
#define CepGen_Integration_Integrator_h
21
22
#include <functional>
23
24
#include "
CepGen/Modules/NamedModule.h
"
25
#include "
CepGen/Utils/Limits.h
"
26
#include "
CepGen/Utils/Value.h
"
27
28
namespace
cepgen
{
29
class
Integrand;
30
}
// namespace cepgen
31
32
namespace
cepgen
{
34
class
Integrator
:
public
NamedModule
<Integrator> {
35
public
:
36
explicit
Integrator
(
const
ParametersList
&);
37
38
static
ParametersDescription
description
();
39
40
virtual
bool
oneDimensional
()
const
{
return
false
; }
41
virtual
double
eval
(
Integrand
&,
const
std::vector<double>&)
const
;
42
44
Value
integrate
(
Integrand
& integrand,
const
std::vector<Limits>& = {});
48
Value
integrate
(
const
std::function<
double
(
double
)>& integrand,
const
Limits
& range_1d = {0., 1.});
52
Value
integrate
(
const
std::function<
double
(
const
std::vector<double>&)>& integrand,
53
const
std::vector<Limits>& range);
54
55
protected
:
59
virtual
Value
run
(
Integrand
& integrand,
const
std::vector<Limits>& range) = 0;
60
61
const
int
verbosity_
;
62
};
63
}
// namespace cepgen
64
65
#endif
41
virtual
double
eval
(
Integrand
&,
const
std::vector<double>&)
const
; {
…
}
34
class
Integrator
:
public
NamedModule
<Integrator> {
…
};
Limits.h
NamedModule.h
Value.h
cepgen::Integrand
An integrand wrapper placeholder.
Definition
Integrand.h:26
cepgen::Integrator
Integration algorithm.
Definition
Integrator.h:34
cepgen::Integrator::integrate
Value integrate(Integrand &integrand, const std::vector< Limits > &={})
Evaluate the integral for a given range.
cepgen::Integrator::integrate
Value integrate(const std::function< double(double)> &integrand, const Limits &range_1d={0., 1.})
Evaluate the integral of a function for a given range.
cepgen::Integrator::eval
virtual double eval(Integrand &, const std::vector< double > &) const
Compute function value at one point.
cepgen::Integrator::Integrator
Integrator(const ParametersList &)
cepgen::Integrator::run
virtual Value run(Integrand &integrand, const std::vector< Limits > &range)=0
Evaluate the integral of a function for a given range.
cepgen::Integrator::integrate
Value integrate(const std::function< double(const std::vector< double > &)> &integrand, const std::vector< Limits > &range)
Evaluate the integral of a function for a given range.
cepgen::Integrator::description
static ParametersDescription description()
cepgen::Integrator::oneDimensional
virtual bool oneDimensional() const
Is the integrator designed for one-dimensional case?
Definition
Integrator.h:40
cepgen::Integrator::verbosity_
const int verbosity_
Integrator verbosity.
Definition
Integrator.h:61
cepgen::Limits
Validity interval for a variable.
Definition
Limits.h:28
cepgen::NamedModule
Base runtime module object.
Definition
NamedModule.h:28
cepgen::ParametersDescription
A description object for parameters collection.
Definition
ParametersDescription.h:26
cepgen::ParametersList
Definition
ParametersList.h:52
cepgen::Value
A scalar value with its uncertainty.
Definition
Value.h:26
cepgen
Common namespace for this Monte Carlo generator.
Definition
Handler.h:26
include
CepGen
Integration
Integrator.h
Generated on Tue Apr 22 2025 for CepGen by
1.10.0