21 PV19b():
Parameterisation{
"PV19b", 2, std::vector<double> {0, 0, 0, 0, 0, 0, 0, 0, 0}} {};
23 double Evaluate(
double const& x,
double const& b,
double const& zeta,
int const& ifunc)
const
25 if (ifunc < 0 || ifunc >= this->_nfuncs)
26 throw std::runtime_error(
"[PV19b::Evaluate]: function index out of range");
33 const double g2 = this->_pars[0];
34 const double N1 = this->_pars[1];
35 const double alpha = this->_pars[2];
36 const double sigma = this->_pars[3];
37 const double lambda = this->_pars[4];
38 const double N1B = this->_pars[5];
39 const double alphaB = this->_pars[6];
40 const double sigmaB = this->_pars[7];
41 const double g2B = this->_pars[8];
44 const double g1 = exp( sigma * ( x / alpha - 1 ) );
45 const double g1B = N1B * exp( - pow( ( x - alphaB ) / sigmaB, 2 ) / 2 );
49 const double b2 = b * b;
52 const double term1 = 1 / ( 1 + g1 * b2 / 4 );
53 const double term2 = exp( - g1B * b2 / 4 );
56 const double lnz = log(zeta / _Q02);
57 const double NPevol = exp( - ( g2 + g2B * b2 ) * b2 * lnz / 4 );
59 return ( ( 1 - lambda ) * term1 + lambda * term2 - N1 ) * NPevol;
65 formula = R
"delimiter($$f_{\rm NP}(x,\zeta, b_T)= \Biggl((1-\lambda)
66\left(\frac{1}{1 + g_1(x) b_T^2/4}+N_1\right) + \lambda \exp \left(-g_{1B}(x) b_T^2 /4 \right)\Biggr) \exp\left[- g_2 \log\left(\frac{\zeta}{Q_0^2}\right) b_T^2/4 - g_{2B} \log\left(\frac{\zeta}{Q_0^2}\right) b_T^4/4 \right]$$)delimiter";
67 formula += R"delimiter($$g_1(x) = \exp\left[\sigma\left(\frac{x}{\alpha}-1\right)\right]$$)delimiter";
68 formula += R"delimiter($$g_{1B}(x) = N_{1B} \exp\left(-\frac{(x-\alpha_B)^2}{2\sigma_B^2}\right)$$)delimiter";
69 formula += R"delimiter($$Q_0^2 = 1\;{\rm GeV}^2$$)delimiter";
75 return {R
"delimiter($g_2$)delimiter",
76 R"delimiter($N_1$)delimiter",
77 R"delimiter($\alpha$)delimiter",
78 R"delimiter($\sigma$)delimiter",
79 R"delimiter($\lambda$)delimiter",
80 R"delimiter($N_{1B}$)delimiter",
81 R"delimiter($\alpha_B$)delimiter",
82 R"delimiter($\sigma_B$)delimiter",
83 R"delimiter($g_{2B}$)delimiter"};
88 return "Parameterisation used for the Pavia 2019 TMD analysis (b version).";
92 const double _Q02 = 1;
Pavia 2019 parameterisation derived from the "Parameterisation" mother class.
Definition: PV19b.h:18
std::string LatexFormula() const
Virtual function that returns a string with the formula of the non-perturbative function(s) in LaTex ...
Definition: PV19b.h:62
std::string GetDescription() const
Virtual function that returns a short description of the parametrisation.
Definition: PV19b.h:86
PV19b()
Definition: PV19b.h:21
std::vector< std::string > GetParameterNames() const
Virtual function that returns a vector of strings containing the names of the parameters in LaTex for...
Definition: PV19b.h:73
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: PV19b.h:23
Mother class that implements the main feautures of a functional parameterisation of non-perturbative ...
Definition: parameterisation.h:20