10#include <apfel/constants.h>
22 QGG13():
Parameterisation{
"QGG13", 2, std::vector<double>{0.13, 0.285, 2.98, 0.173, 0.39, 0., 0.1, 0.1, 0., 0., 0., 0.1, 1.}} { };
24 double Evaluate(
double const& x,
double const& b,
double const& zeta,
int const& ifunc)
const
26 if (ifunc < 0 || ifunc >= this->_nfuncs)
27 throw std::runtime_error(
"[QGG13::Evaluate]: function index out of range");
34 const double g2 = this->_pars[0];
35 const double N1 = this->_pars[1];
36 const double alpha = this->_pars[2];
37 const double sigma = this->_pars[3];
38 const double delta = this->_pars[4];
39 const double lambdaB = this->_pars[5];
40 const double N1B = this->_pars[6];
41 const double alphaB = this->_pars[7];
42 const double sigmaB = this->_pars[8];
43 const double deltaB = this->_pars[9];
44 const double lambdaC = this->_pars[10];
45 const double g1C = this->_pars[11];
46 const double qq = this->_pars[12];
50 const double xhat = 0.1;
51 const double g1 = N1 * ( pow(x, sigma) + delta ) / ( pow(xhat, sigma) + delta ) * pow((1 - x) / (1 - xhat), alpha);
52 const double g1B = N1B * ( pow(x, sigmaB) + deltaB ) / ( pow(xhat, sigmaB) + deltaB ) * pow((1 - x) / (1 - xhat), alphaB);
55 ((1 - pow(lambdaB, 2)) / (pow(1 + g1/4 * b * b, qq)))
58 g1B * exp( - g1B / 4 * b * b )
59 + pow(lambdaC, 2) * pow(g1C, 2) * ( 1 - g1C / 4 * b * b )
60 * exp( - g1C / 4 * b * b )
62 / (g1B + pow(lambdaC, 2) * pow(g1C, 2))
64 * exp( - g2 * log(zeta / Q02) * b * b / 4 );
70 formula = R
"delimiter($$f_{\rm NP}(x,\zeta, b_T)= \Biggl(\frac{1-\lambda_B^2}{1 + g_1^2(x) b_T^2/4} + \lambda_B^2 \exp \left(-g_{1B} b_T^2 /4 \right)\Biggr) \exp\left[ - g_2 \log\left(\frac{\zeta}{Q_0^2}\right) b_T^2/4\right]$$)delimiter";
71 formula += R"delimiter($$g_1(x) = N_1 \frac{x^{\sigma}(1-x)^{\alpha}}{\hat{x}^{\sigma}(1-\hat{x})^{\alpha}}$$)delimiter";
72 formula += R"delimiter($$g_{1B}(x) = N_{1B} \frac{x^{\sigma_B}(1-x)^{\alpha_B}}{\hat{x}^{\sigma_B}(1-\hat{x})^{\alpha_B}}$$)delimiter";
73 formula += R"delimiter($$Q_0^2 = 1\;{\rm GeV}^2$$)delimiter";
74 formula += R"delimiter($$\hat{x} = 0.1$$)delimiter";
80 return {R
"delimiter($g_2$)delimiter",
81 R"delimiter($N_1$)delimiter",
82 R"delimiter($\alpha$)delimiter",
83 R"delimiter($\sigma$)delimiter",
84 R"delimiter($\delta$)delimiter",
85 R"delimiter($\lambdaB$)delimiter",
86 R"delimiter($N_{1B}$)delimiter",
87 R"delimiter($\alpha_B$)delimiter",
88 R"delimiter($\sigma_B$)delimiter",
89 R"delimiter($\delta_B$)delimiter",
90 R"delimiter($\lambdaC$)delimiter",
91 R"delimiter($g1C$)delimiter",
92 R"delimiter($qq$)delimiter"};
97 return "Parameterisation with a q-Gaussian and a Gaussian and 13 parameters.";
Mother class that implements the main feautures of a functional parameterisation of non-perturbative ...
Definition: parameterisation.h:20
Pavia 2019 parameterisation derived from the "Parameterisation" mother class.
Definition: QGG13.h:19
std::string LatexFormula() const
Virtual function that returns a string with the formula of the non-perturbative function(s) in LaTex ...
Definition: QGG13.h:67
std::vector< std::string > GetParameterNames() const
Virtual function that returns a vector of strings containing the names of the parameters in LaTex for...
Definition: QGG13.h:78
std::string GetDescription() const
Virtual function that returns a short description of the parametrisation.
Definition: QGG13.h:95
double Evaluate(double const &x, double const &b, double const &zeta, int const &ifunc) const
Virtual function that returns the value of one of the functions.
Definition: QGG13.h:24
QGG13()
Definition: QGG13.h:22