EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
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
25
26// Description:
27// Abstraction of a generic integrator (Stolen and modified from
28// the BaBar IntegrationUtils package - author: Phil Strother).
29
31 public:
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:
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.
55 //EvtItgAbsIntegrator( const EvtItgAbsIntegrator& ); // Copy Constructor
56 //EvtItgAbsIntegrator& operator= ( const EvtItgAbsIntegrator& ); // Assignment op
57};
58
59#endif // EVTITGABSINTEGRATOR_HH
double trapezoid(double lower, double higher, int n, double &result) const
virtual ~EvtItgAbsIntegrator()=default
const EvtItgAbsFunction & m_myFunction
virtual double evaluateIt(double lower, double higher) const =0
double myFunction(double x) const
EvtItgAbsIntegrator(const EvtItgAbsFunction &)
double evaluate(double lower, double upper) const
void boundsCheck(double &, double &) const