The OgataQuadrature class implements the Hankel-transform of the input function using the Ogata quadrature method described here: http://www.kurims.kyoto-u.ac.jp/~okamoto/paper/Publ_RIMS_DE/41-4-40.pdf.
More...
#include <ogataquadrature.h>
|
| OgataQuadrature (int const &nu=0, double const &CutOff=1e-5, double const &h=0.001, int const &nZeroMax=1000) |
| The Integrator constructor.
|
|
void | InitialiseWeights (int const &nZeroMax) |
| Function that initialises the coordinates and the weights for the Ogata quadrature.
|
|
template<typename T > |
T | transform (std::function< T(double const &)> const &func, double const &qT, bool const &Dynh=true, int const &nmax=1000, int const &period=10) const |
| Function that transform the input function.
|
|
double | GetBesselOrder () const |
| Function that returns the Bessel order.
|
|
double | GetCutOff () const |
| Function that returns the Ogata cut-off parameter.
|
|
double | GetStepParameter () const |
| Function that returns the Ogata step parameter.
|
|
std::vector< double > | GetCoordinates () const |
| Function that returns the unscaled coordinates used in the Ogata quadrature.
|
|
std::vector< double > | GetWeights () const |
| Function that returns the weights used in the Ogata quadrature.
|
|
void | SetStepParameter (double const &h) |
| Function that sets the Ogata step parameter.
|
|
void | JnuZerosGenerator (int const &nu) const |
| Function that writes on screan the first 1000 zeros of the Bessel function J0. This function essentially generates the std::vector<double> j0Zeros above. This function requires BOOST and thus it is not available by defaults.
|
|
|
int const | _nu |
| The Bessel order.
|
|
double const | _CutOff |
| The target accuracy parameter.
|
|
double | _h |
| The step parameter.
|
|
int const | _nZeroMax |
| The maximum number of zero's initialised.
|
|
std::vector< double > | _xf |
| Unscaled coordinates.
|
|
std::vector< double > | _weights |
| Weights of the quadrature.
|
|
The OgataQuadrature class implements the Hankel-transform of the input function using the Ogata quadrature method described here: http://www.kurims.kyoto-u.ac.jp/~okamoto/paper/Publ_RIMS_DE/41-4-40.pdf.
- Examples
- ogata_test.cc, and tmd_test.cc.
◆ OgataQuadrature()
apfel::OgataQuadrature::OgataQuadrature |
( |
int const & | nu = 0, |
|
|
double const & | CutOff = 1e-5, |
|
|
double const & | h = 0.001, |
|
|
int const & | nZeroMax = 1000 ) |
The Integrator constructor.
- Parameters
-
nu | the order of the Bessel function (default: 0) |
CutOff | the accuracy computed as a cutoff on the size of the last computed term relative to the total (default: 10-5) |
h | internal variable of the algorithm (default: 0.001) |
nZeroMax | maximum number of terms in the Ogata quadrature (default: 1000) |
- Note
- Note that the default value of the parameter 'h' (0.001) is based of studies of Drell-Yan transverse-momentum distributions. However, this values could possibly be badly non-optimal in other contexts. A good value of 'h' should take into account the decay rate of the integrand. In particular, the faster the decay the smaller the value of 'h' has to be.
◆ GetBesselOrder()
double apfel::OgataQuadrature::GetBesselOrder |
( |
| ) |
const |
|
inline |
Function that returns the Bessel order.
- Returns
- the Bessel order
◆ GetCoordinates()
std::vector< double > apfel::OgataQuadrature::GetCoordinates |
( |
| ) |
const |
|
inline |
Function that returns the unscaled coordinates used in the Ogata quadrature.
- Returns
- the unscales coordinates
◆ GetCutOff()
double apfel::OgataQuadrature::GetCutOff |
( |
| ) |
const |
|
inline |
Function that returns the Ogata cut-off parameter.
- Returns
- the cut-off parameter
◆ GetStepParameter()
double apfel::OgataQuadrature::GetStepParameter |
( |
| ) |
const |
|
inline |
Function that returns the Ogata step parameter.
- Returns
- the step parameter
◆ GetWeights()
std::vector< double > apfel::OgataQuadrature::GetWeights |
( |
| ) |
const |
|
inline |
Function that returns the weights used in the Ogata quadrature.
- Returns
- the weights
◆ InitialiseWeights()
void apfel::OgataQuadrature::InitialiseWeights |
( |
int const & | nZeroMax | ) |
|
Function that initialises the coordinates and the weights for the Ogata quadrature.
- Parameters
-
nZeroMax | maximum number of terms in the Ogata quadrature |
◆ JnuZerosGenerator()
void apfel::OgataQuadrature::JnuZerosGenerator |
( |
int const & | nu | ) |
const |
Function that writes on screan the first 1000 zeros of the Bessel function J0. This function essentially generates the std::vector<double> j0Zeros above. This function requires BOOST and thus it is not available by defaults.
- Parameters
-
nu | the order of the Bessel function |
◆ SetStepParameter()
void apfel::OgataQuadrature::SetStepParameter |
( |
double const & | h | ) |
|
|
inline |
Function that sets the Ogata step parameter.
- Parameters
-
◆ transform()
template<typename T >
T apfel::OgataQuadrature::transform |
( |
std::function< T(double const &)> const & | func, |
|
|
double const & | qT, |
|
|
bool const & | Dynh = true, |
|
|
int const & | nmax = 1000, |
|
|
int const & | period = 10 ) const |
Function that transform the input function.
- Parameters
-
func | function to be transformed |
qT | value of qT in which to compute the transform |
Dynh | switch to compute the step parameter _h dynamically (default: true) |
nmax | maximum number of terms in the Ogata quadrature (default: 1000) |
period | interval across which the integral is checked to determine where the sum is truncated (default: 10) |
- Returns
- the value of the transform
- Examples
- tmd_test.cc.
◆ _CutOff
double const apfel::OgataQuadrature::_CutOff |
|
private |
The target accuracy parameter.
◆ _h
double apfel::OgataQuadrature::_h |
|
private |
◆ _nu
int const apfel::OgataQuadrature::_nu |
|
private |
◆ _nZeroMax
int const apfel::OgataQuadrature::_nZeroMax |
|
private |
The maximum number of zero's initialised.
◆ _weights
std::vector<double> apfel::OgataQuadrature::_weights |
|
private |
Weights of the quadrature.
◆ _xf
std::vector<double> apfel::OgataQuadrature::_xf |
|
private |
The documentation for this class was generated from the following file: