Skip to content

Commit

Permalink
Updating parameterisation of the O(as^4) (i.e. N3LO) splitting functi…
Browse files Browse the repository at this point in the history
…ons (benchmark against HOPPET)
  • Loading branch information
vbertone committed Apr 7, 2024
1 parent b156a55 commit edd4ae8
Show file tree
Hide file tree
Showing 3 changed files with 824 additions and 279 deletions.
153 changes: 111 additions & 42 deletions inc/apfel/splittingfunctionsunp_sl.h
Original file line number Diff line number Diff line change
Expand Up @@ -290,31 +290,52 @@ namespace apfel
/**
* @defgroup NNNLOunpsf NNNLO splitting functions
* @ingroup UnpSF
* @note For now only the plus, minus, and valence contributions
* have been computed (parameterised and leading color).
* @note For now only leading-color plus, minus, and valence
* contributions have been computed and parameterised. The singlet
* ones are also parameterised and using the first Mellin moments
* and the small- and large-x asymptotic behaviours.
*/
///@{
/* /\** */
/* * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) non-singlet-plus */
/* * unpolarised splitting function. */
/* *\/ */
/* class P3nsp: public Expression */
/* { */
/* public: */
/* P3nsp(int const& nf, int const& imod = 0, double const& rho = 0.007); */
/* double Regular(double const& x) const; */
/* double Singular(double const& x) const; */
/* double Local(double const& x) const; */
/* private: */
/* int const _nf; */
/* int const _imod; */
/* double const _rho; */
/* std::vector<double> _C; */
/* }; */

/**
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) non-singlet-plus
* unpolarised splitting function.
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>)
* non-singlet-plus unpolarised splitting function. Parameterisation
* determined in https://arxiv.org/pdf/1707.08315.pdf
*/
class P3nsp: public Expression
{
public:
P3nsp(int const& nf, int const& imod = 0, double const& rho = 0.007);
P3nsp(int const& nf, int const& imod = 0);
double Regular(double const& x) const;
double Singular(double const& x) const;
double Local(double const& x) const;
private:
int const _nf;
int const _imod;
double const _rho;
std::vector<double> _C;
int const _nf;
int const _imod;
};

/**
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) non-singlet-minus
* unpolarised splitting function.
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>)
* non-singlet-minus unpolarised splitting
* function. Parameterisation determined in
* https://arxiv.org/pdf/1707.08315.pdf
*/
class P3nsm: public Expression
{
Expand All @@ -329,9 +350,10 @@ namespace apfel
};

/**
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) non-singlet-valence
* unpolarised splitting function minus non-singlet-minus
* unpolarised splitting function.
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>)
* non-singlet-valence unpolarised splitting
* function. Parameterisation determined in
* https://arxiv.org/pdf/1707.08315.pdf
*/
class P3nss: public Expression
{
Expand All @@ -343,77 +365,124 @@ namespace apfel
int const _imod;
};

/* /\** */
/* * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) pure-singlet */
/* * unpolarised splitting function. */
/* *\/ */
/* class P3ps: public Expression */
/* { */
/* public: */
/* P3ps(int const& nf, int const& imod = 0); */
/* double Regular(double const& x) const; */
/* private: */
/* int const _nf; */
/* int const _imod; */
/* }; */

/**
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) pure-singlet
* unpolarised splitting function.
* unpolarised splitting function. Parameterisation determined in
* https://arxiv.org/pdf/2302.07593.pdf
*/
class P3ps: public Expression
{
public:
P3ps(int const& nf, double const& rho = -0.501);
P3ps(int const& nf, int const& imod = 0);
double Regular(double const& x) const;
private:
int const _nf;
double const _rho;
std::vector<double> _C;
int const _nf;
int const _imod;
};

/* /\** */
/* * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) pure-singlet */
/* * unpolarised splitting function. Parameterisation determined in */
/* * https://arxiv.org/pdf/2302.07593.pdf */
/* * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) quark-gluon unpolarised */
/* * splitting function. */
/* *\/ */
/* class P3ps: public Expression */
/* class P3qg: public Expression */
/* { */
/* public: */
/* P3ps(int const& nf, int const& imod = 0); */
/* P3qg(int const& nf, double const& rho = -1.754); */
/* double Regular(double const& x) const; */
/* private: */
/* int const _nf; */
/* int const _imod; */
/* int const _nf; */
/* double const _rho; */
/* std::vector<double> _C; */
/* }; */

/**
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) quark-gluon unpolarised
* splitting function.
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) quark-gluon
* unpolarised splitting function. Parameterisation determined in
* https://arxiv.org/pdf/2307.04158.pdf
*/
class P3qg: public Expression
{
public:
P3qg(int const& nf, double const& rho = -1.754);
P3qg(int const& nf, int const& imod = 0);
double Regular(double const& x) const;
private:
int const _nf;
double const _rho;
std::vector<double> _C;
int const _nf;
int const _imod;
};

/* /\** */
/* * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) gluon-quark unpolarised */
/* * splitting function. */
/* *\/ */
/* class P3gq: public Expression */
/* { */
/* public: */
/* P3gq(double const& rho = -1.784); */
/* double Regular(double const& x) const; */
/* private: */
/* double const _rho; */
/* std::vector<double> _C; */
/* }; */

/**
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) gluon-quark unpolarised
* splitting function.
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) gluon-quark
* unpolarised splitting function. Parameterisation determined in
* https://arxiv.org/pdf/2310.05744.pdf
*/
class P3gq: public Expression
{
public:
P3gq(double const& rho = -1.784);
P3gq(int const& nf, int const& imod = 0);
double Regular(double const& x) const;
private:
double const _rho;
std::vector<double> _C;
int const _nf;
int const _imod;
};

/* /\** */
/* * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) gluon-gluon unpolarised */
/* * splitting function. */
/* *\/ */
/* class P3gg: public Expression */
/* { */
/* public: */
/* P3gg(double const& rho = 19.245); */
/* double Regular(double const& x) const; */
/* private: */
/* double const _rho; */
/* std::vector<double> _C; */
/* }; */

/**
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) gluon-gluon unpolarised
* splitting function.
* @brief Space-like O(&alpha;<SUB>s</SUB><SUP>4</SUP>) gluon-gluon
* unpolarised splitting function. Parameterisation determined in
* https://arxiv.org/pdf/2310.05744.pdf
*/
class P3gg: public Expression
{
public:
P3gg(double const& rho = 19.245);
P3gg(int const& nf, int const& imod = 0);
double Regular(double const& x) const;
double Singular(double const& x) const;
double Local(double const& x) const;
private:
double const _rho;
std::vector<double> _C;
int const _nf;
int const _imod;
double _A4gluon;
};
///@}
}
4 changes: 2 additions & 2 deletions src/evolution/dglapbuilder.cc
Original file line number Diff line number Diff line change
Expand Up @@ -269,15 +269,15 @@ namespace apfel
// approximate parameterisation. In addition, the approximations
// of https://arxiv.org/pdf/2207.04739.pdf are used.
std::map<int, std::map<int, Operator>> OpMapNNNLO;
const Operator O3gq{g, P3gq{}, IntEps};
const Operator O3gg{g, P3gg{}, IntEps};
for (int nf = nfi; nf <= nff; nf++)
{
const Operator O3nsp{g, P3nsp{nf}, IntEps};
const Operator O3nsm{g, P3nsm{nf}, IntEps};
const Operator O3nss{g, P3nss{nf}, IntEps};
const Operator O3ps {g, P3ps{nf}, IntEps};
const Operator O3qg {g, P3qg{nf}, IntEps};
const Operator O3gq {g, P3gq{nf}, IntEps};
const Operator O3gg {g, P3gg{nf}, IntEps};
const Operator O3qq = O3nsp + O3ps;
const Operator O3nsv = O3nsm + O3nss;
std::map<int, Operator> OM;
Expand Down
Loading

0 comments on commit edd4ae8

Please sign in to comment.