APFEL 4.8.0
A PDF evolution library in C++
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
apfel::OgataQuadrature Class Reference

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>

Public Member Functions

 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 >
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.
 

Private Attributes

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.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ 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
nuthe order of the Bessel function (default: 0)
CutOffthe accuracy computed as a cutoff on the size of the last computed term relative to the total (default: 10-5)
hinternal variable of the algorithm (default: 0.001)
nZeroMaxmaximum 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.

Member Function Documentation

◆ 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
nZeroMaxmaximum 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
nuthe order of the Bessel function

◆ SetStepParameter()

void apfel::OgataQuadrature::SetStepParameter ( double const & h)
inline

Function that sets the Ogata step parameter.

Parameters
hstep parameter

◆ 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
funcfunction to be transformed
qTvalue of qT in which to compute the transform
Dynhswitch to compute the step parameter _h dynamically (default: true)
nmaxmaximum number of terms in the Ogata quadrature (default: 1000)
periodinterval 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.

Member Data Documentation

◆ _CutOff

double const apfel::OgataQuadrature::_CutOff
private

The target accuracy parameter.

◆ _h

double apfel::OgataQuadrature::_h
private

The step parameter.

◆ _nu

int const apfel::OgataQuadrature::_nu
private

The Bessel order.

◆ _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

Unscaled coordinates.


The documentation for this class was generated from the following file: