EvtGen
2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Toggle main menu visibility
Loading...
Searching...
No Matches
EvtGenModels
EvtItgAbsIntegrator.hh
Go to the documentation of this file.
1
2
/***********************************************************************
3
* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4
* *
5
* This file is part of EvtGen. *
6
* *
7
* EvtGen is free software: you can redistribute it and/or modify *
8
* it under the terms of the GNU General Public License as published by *
9
* the Free Software Foundation, either version 3 of the License, or *
10
* (at your option) any later version. *
11
* *
12
* EvtGen is distributed in the hope that it will be useful, *
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15
* GNU General Public License for more details. *
16
* *
17
* You should have received a copy of the GNU General Public License *
18
* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19
***********************************************************************/
20
21
#ifndef EVTITGABSINTEGRATOR_HH
22
#define EVTITGABSINTEGRATOR_HH
23
24
#include "
EvtGenModels/EvtItgAbsFunction.hh
"
25
26
// Description:
27
// Abstraction of a generic integrator (Stolen and modified from
28
// the BaBar IntegrationUtils package - author: Phil Strother).
29
30
class
EvtItgAbsIntegrator
{
31
public
:
32
EvtItgAbsIntegrator
(
const
EvtItgAbsFunction
& );
33
34
virtual
~EvtItgAbsIntegrator
() =
default
;
35
36
double
evaluate
(
double
lower,
double
upper )
const
;
37
38
double
normalisation
()
const
;
39
40
protected
:
41
double
trapezoid
(
double
lower,
double
higher,
int
n,
double
& result )
const
;
42
43
virtual
double
evaluateIt
(
double
lower,
double
higher )
const
= 0;
44
45
double
myFunction
(
double
x )
const
{
return
m_myFunction
( x ); }
46
47
private
:
48
const
EvtItgAbsFunction
&
m_myFunction
;
49
50
void
boundsCheck
(
double
&,
double
& )
const
;
51
52
// Note: if your class needs a copy constructor or an assignment operator,
53
// make one of the following public and implement it.
54
EvtItgAbsIntegrator
();
55
//EvtItgAbsIntegrator( const EvtItgAbsIntegrator& ); // Copy Constructor
56
//EvtItgAbsIntegrator& operator= ( const EvtItgAbsIntegrator& ); // Assignment op
57
};
58
59
#endif
// EVTITGABSINTEGRATOR_HH
EvtItgAbsFunction.hh
EvtItgAbsFunction
Definition
EvtItgAbsFunction.hh:35
EvtItgAbsIntegrator::trapezoid
double trapezoid(double lower, double higher, int n, double &result) const
Definition
EvtItgAbsIntegrator.cpp:56
EvtItgAbsIntegrator::~EvtItgAbsIntegrator
virtual ~EvtItgAbsIntegrator()=default
EvtItgAbsIntegrator::EvtItgAbsIntegrator
EvtItgAbsIntegrator()
EvtItgAbsIntegrator::m_myFunction
const EvtItgAbsFunction & m_myFunction
Definition
EvtItgAbsIntegrator.hh:48
EvtItgAbsIntegrator::evaluateIt
virtual double evaluateIt(double lower, double higher) const =0
EvtItgAbsIntegrator::myFunction
double myFunction(double x) const
Definition
EvtItgAbsIntegrator.hh:45
EvtItgAbsIntegrator::EvtItgAbsIntegrator
EvtItgAbsIntegrator(const EvtItgAbsFunction &)
Definition
EvtItgAbsIntegrator.cpp:37
EvtItgAbsIntegrator::evaluate
double evaluate(double lower, double upper) const
Definition
EvtItgAbsIntegrator.cpp:47
EvtItgAbsIntegrator::boundsCheck
void boundsCheck(double &, double &) const
Definition
EvtItgAbsIntegrator.cpp:86
EvtItgAbsIntegrator::normalisation
double normalisation() const
Definition
EvtItgAbsIntegrator.cpp:42
Generated by
1.17.0