Fast Evolution of Parton Distributions
Public Member Functions | Protected Attributes | Private Member Functions | Friends | List of all members
partondistribution Class Reference

#include <partondistribution.h>

Inheritance diagram for partondistribution:
partondistribution_with_qed

Public Member Functions

 partondistribution (void)
 
 partondistribution (int n, double Q0, double A[], double alpha[], double beta[], int eta=1)
 
 partondistribution (int n, double Q0, const std::valarray< double > &A, const std::valarray< double > &alpha, const std::valarray< double > &beta, int eta=1)
 
double get_Q0 (void) const
 
int get_eta (void) const
 
complex_d get_Mellin_transform (complex_d z) const
 
double get_F (double x, double z) const
 
double get_dF (double x, double z) const
 
double get_ddF (double x, double z) const
 
double get_dddF (double x, double z) const
 
double get_c0 (double x) const
 
virtual bool with_qed (void) const
 
virtual double get_electric_charge (void) const
 

Protected Attributes

int n
 
double Q0
 
std::valarray< double > A
 
std::valarray< double > alpha
 
std::valarray< double > beta
 
int eta
 

Private Member Functions

double root_safeI (double a, double b, double x) const
 

Friends

partondistribution operator+ (const partondistribution &f1, const partondistribution &f2)
 

Detailed Description

The class partondistribution represents the parameterization of a parton distribution in the form

\[ x f(x,Q_0^2) = \sum\limits_{i=0}^{n-1} A_i x^{\alpha_i} (1-x)^{\beta_i} \]

In addition this class has a data member $\eta = \pm 1$, which selects odd or even moments for the evolution. The default value for $\eta$ in the constructor is $+1$, which is good for the singlet distributions and non-singlet non-valence distributions like

\[ (u+\bar{u}) - ( d + \bar{d} ), \]

\[ (u+\bar{u}) + ( d + \bar{d} ) - 2 ( s + \bar{s} ), ... \]

Valence non-singlet distributions like

\[ (u-\bar{u}), (d - \bar{d}), ... \]

need $\eta=-1$, which has to passed explicitly to the constructor.

Constructor & Destructor Documentation

§ partondistribution() [1/3]

partondistribution ( void  )

Default constructor

§ partondistribution() [2/3]

partondistribution ( int  nr,
double  Q0r,
double  Ar[],
double  alphar[],
double  betar[],
int  etar = 1 
)

Standard constructor

§ partondistribution() [3/3]

partondistribution ( int  nr,
double  Q0r,
const std::valarray< double > &  Ar,
const std::valarray< double > &  alphar,
const std::valarray< double > &  betar,
int  etar = 1 
)

Standard constructor from valarray

Member Function Documentation

§ get_c0()

double get_c0 ( double  x) const

Returns for fixed $x$ the position of the minimum in the $z$-plane of the function

\[ F(x,z) = x^{-z} \sum\limits_{i=0}^{n-1} A_i B(z+\alpha_i-1,1+\beta_i). \]

on the real axis right to the rightmost pole.

§ get_dddF()

double get_dddF ( double  x,
double  z 
) const

Evaluates

\[ \frac{d^3}{dz^3} F(x,z) = \sum\limits_{i=0}^{n-1} \left( G_i''' + 3 G_i'' G_i' + G_i'^3 \right) F_i \]

where

\[ G_i''' = \Psi''(z+\alpha_i-1) - \Psi''(z+\alpha_i+\beta_i) \]

§ get_ddF()

double get_ddF ( double  x,
double  z 
) const

Evaluates

\[ \frac{d^2}{dz^2} F(x,z) = \sum\limits_{i=0}^{n-1} \left( G_i'' + G_i'^2 \right) F_i \]

where

\[ G_i'' = \Psi'(z+\alpha_i-1) - \Psi'(z+\alpha_i+\beta_i) \]

§ get_dF()

double get_dF ( double  x,
double  z 
) const

Evaluates

\[ \frac{d}{dz} F(x,z) = \sum\limits_{i=0}^{n-1} G_i' F_i \]

where

\[ F_i = x^{-z} A_i B(z+\alpha_i-1,1+\beta_i), \]

\[ G_i = \ln \left( x^{-z} B(z+\alpha_i-1,1+\beta_i) \right) \]

\[ G_i' = -\ln x + \Psi(z+\alpha_i-1) - \Psi(z+\alpha_i+\beta_i) \]

§ get_electric_charge()

virtual double get_electric_charge ( void  ) const
inlinevirtual

Return zero for a partondistribution. The method is overridden by the derived class partondistribution_with_qed.

Reimplemented in partondistribution_with_qed.

§ get_eta()

int get_eta ( void  ) const

Returns $\eta$.

§ get_F()

double get_F ( double  x,
double  z 
) const

Evaluates the function

\[ F(x,z) = x^{-z} \sum\limits_{i=0}^{n-1} A_i B(z+\alpha_i-1,1+\beta_i). \]

for the given pair $(x,z)$.

§ get_Mellin_transform()

complex_d get_Mellin_transform ( complex_d  z) const

Evaluates the Mellin transform of the parton distribution

\[ f^z(Q_0^2) = \sum\limits_{i=0}^{n-1} A_i B(z+\alpha_i-1,1+\beta_i) \]

at the point $z$.

§ get_Q0()

double get_Q0 ( void  ) const

Returns $Q_0$.

§ root_safeI()

double root_safeI ( double  a,
double  b,
double  x 
) const
private

Solves numerically the equation

\[ \frac{d}{dz} F(x,z) = 0 \]

for $z$.

§ with_qed()

virtual bool with_qed ( void  ) const
inlinevirtual

Return false for a partondistribution. The method is overridden by the derived class partondistribution_with_qed.

Reimplemented in partondistribution_with_qed.

Friends And Related Function Documentation

§ operator+

partondistribution operator+ ( const partondistribution f1,
const partondistribution f2 
)
friend

Addition of two parton distributions

The sum of two parton distributions is given by

\[ \sum\limits_{i=0}^{n-1} A_i x^{\alpha_i} (1-x)^{\beta_i} + \sum\limits_{i=0}^{n'-1} A_i' x^{\alpha_i'} (1-x)^{\beta_i'} \]

The values of $Q_0$ and $\eta$ of the two summands have to agree, otherwise the function throws an exception.


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