|
|
|||
File indexing completed on 2026-06-02 08:17:15
0001 // 0002 // APFEL++ 2017 0003 // 0004 // Author: Valerio Bertone: valerio.bertone@cern.ch 0005 // 0006 0007 #pragma once 0008 0009 #include "apfel/expression.h" 0010 0011 #include <vector> 0012 0013 namespace apfel 0014 { 0015 /** 0016 * @defgroup SLSplittings Space-like splitting functions 0017 * Collection of the MSbar space-like splitting functions up to the 0018 * highest order currently known for unpolarised, polarised, and 0019 * transversity evolution. 0020 * @note While for the O(α<SUB>s</SUB>) and 0021 * O(α<SUB>s</SUB><SUP>2</SUP>) splitting functions exact 0022 * expressions are used, a fast parameterisation for the 0023 * O(α<SUB>s</SUB><SUP>3</SUP>) (and 0024 * O(α<SUB>s</SUB><SUP>4</SUP>) when available) ones is 0025 * used. See https://www.liverpool.ac.uk/~avogt/split.html for more 0026 * details. 0027 */ 0028 ///@{ 0029 ///@} 0030 /** 0031 * @defgroup UnpSF Unpolarised splitting functions 0032 * @ingroup SLSplittings 0033 */ 0034 ///@{ 0035 ///@} 0036 /** 0037 * @defgroup LOunpsf LO splitting functions 0038 * @ingroup UnpSF 0039 */ 0040 ///@{ 0041 /** 0042 * @brief Space-like O(α<SUB>s</SUB>) non-singlet unpolarised splitting 0043 * function. 0044 */ 0045 class P0ns: public Expression 0046 { 0047 public: 0048 P0ns(); 0049 double Regular(double const& x) const; 0050 double Singular(double const& x) const; 0051 double Local(double const& x) const; 0052 }; 0053 0054 /** 0055 * @brief Space-like O(α<SUB>s</SUB>) quark-gluon unpolarised splitting 0056 * function. 0057 */ 0058 class P0qg: public Expression 0059 { 0060 public: 0061 P0qg(int const& nf); 0062 double Regular(double const& x) const; 0063 private: 0064 int const _nf; 0065 }; 0066 0067 /** 0068 * @brief Space-like O(α<SUB>s</SUB>) gluon-quark unpolarised splitting 0069 * function. 0070 */ 0071 class P0gq: public Expression 0072 { 0073 public: 0074 P0gq(); 0075 double Regular(double const& x) const; 0076 }; 0077 0078 /** 0079 * @brief Space-like O(α<SUB>s</SUB>) gluon-gluon unpolarised splitting 0080 * function. 0081 */ 0082 class P0gg: public Expression 0083 { 0084 public: 0085 P0gg(int const& nf); 0086 double Regular(double const& x) const; 0087 double Singular(double const& x) const; 0088 double Local(double const& x) const; 0089 private: 0090 int const _nf; 0091 }; 0092 ///@} 0093 0094 /** 0095 * @defgroup NLOunpsf NLO splitting functions 0096 * @ingroup UnpSF 0097 */ 0098 ///@{ 0099 /** 0100 * @brief Space-like O(α<SUB>s</SUB><SUP>2</SUP>) non-singlet-plus 0101 * unpolarised splitting function. 0102 */ 0103 class P1nsp: public Expression 0104 { 0105 public: 0106 P1nsp(int const& nf); 0107 double Regular(double const& x) const; 0108 double Singular(double const& x) const; 0109 double Local(double const& x) const; 0110 protected: 0111 int const _nf; 0112 double _a2; 0113 }; 0114 0115 /** 0116 * @brief Space-like O(α<SUB>s</SUB><SUP>2</SUP>) non-singlet-minus 0117 * unpolarised splitting function. 0118 */ 0119 class P1nsm: public P1nsp 0120 { 0121 public: 0122 P1nsm(int const& nf); 0123 double Regular(double const& x) const; 0124 }; 0125 0126 /** 0127 * @brief Space-like O(α<SUB>s</SUB><SUP>2</SUP>) pure-singlet 0128 * unpolarised splitting function. 0129 */ 0130 class P1ps: public Expression 0131 { 0132 public: 0133 P1ps(int const& nf); 0134 double Regular(double const& x) const; 0135 private: 0136 int const _nf; 0137 }; 0138 0139 /** 0140 * @brief Space-like O(α<SUB>s</SUB><SUP>2</SUP>) quark-gluon unpolarised 0141 * splitting function. 0142 */ 0143 class P1qg: public Expression 0144 { 0145 public: 0146 P1qg(int const& nf); 0147 double Regular(double const& x) const; 0148 private: 0149 int const _nf; 0150 }; 0151 0152 /** 0153 * @brief Space-like O(α<SUB>s</SUB><SUP>2</SUP>) gluon-quark unpolarised 0154 * splitting function. 0155 */ 0156 class P1gq: public Expression 0157 { 0158 public: 0159 P1gq(int const& nf); 0160 double Regular(double const& x) const; 0161 private: 0162 int const _nf; 0163 }; 0164 0165 /** 0166 * @brief Space-like O(α<SUB>s</SUB><SUP>2</SUP>) gluon-gluon unpolarised 0167 * splitting function. 0168 */ 0169 class P1gg: public Expression 0170 { 0171 public: 0172 P1gg(int const& nf); 0173 double Regular(double const& x) const; 0174 double Singular(double const& x) const; 0175 double Local(double const& x) const; 0176 private: 0177 int const _nf; 0178 double _a2g; 0179 }; 0180 ///@} 0181 0182 /** 0183 * @defgroup NNLOunpsf NNLO splitting functions 0184 * @ingroup UnpSF 0185 */ 0186 ///@{ 0187 /** 0188 * @brief Space-like O(α<SUB>s</SUB><SUP>3</SUP>) non-singlet-plus 0189 * unpolarised splitting function. 0190 */ 0191 class P2nsp: public Expression 0192 { 0193 public: 0194 P2nsp(int const& nf); 0195 double Regular(double const& x) const; 0196 double Singular(double const& x) const; 0197 double Local(double const& x) const; 0198 private: 0199 int const _nf; 0200 }; 0201 0202 /** 0203 * @brief Space-like O(α<SUB>s</SUB><SUP>3</SUP>) non-singlet-minus 0204 * unpolarised splitting function. 0205 */ 0206 class P2nsm: public Expression 0207 { 0208 public: 0209 P2nsm(int const& nf); 0210 double Regular(double const& x) const; 0211 double Singular(double const& x) const; 0212 double Local(double const& x) const; 0213 private: 0214 int const _nf; 0215 }; 0216 0217 /** 0218 * @brief Space-like O(α<SUB>s</SUB><SUP>3</SUP>) non-singlet-valence 0219 * unpolarised splitting function minus non-singlet-minus 0220 * unpolarised splitting function. 0221 */ 0222 class P2nss: public Expression 0223 { 0224 public: 0225 P2nss(int const& nf); 0226 double Regular(double const& x) const; 0227 private: 0228 int const _nf; 0229 }; 0230 0231 /** 0232 * @brief Space-like O(α<SUB>s</SUB><SUP>3</SUP>) pure-singlet 0233 * unpolarised splitting function. 0234 */ 0235 class P2ps: public Expression 0236 { 0237 public: 0238 P2ps(int const& nf); 0239 double Regular(double const& x) const; 0240 private: 0241 int const _nf; 0242 }; 0243 0244 /** 0245 * @brief Space-like O(α<SUB>s</SUB><SUP>3</SUP>) quark-gluon unpolarised 0246 * splitting function. 0247 */ 0248 class P2qg: public Expression 0249 { 0250 public: 0251 P2qg(int const& nf); 0252 double Regular(double const& x) const; 0253 private: 0254 int const _nf; 0255 }; 0256 0257 /** 0258 * @brief Space-like O(α<SUB>s</SUB><SUP>3</SUP>) gluon-quark unpolarised 0259 * splitting function. 0260 */ 0261 class P2gq: public Expression 0262 { 0263 public: 0264 P2gq(int const& nf); 0265 double Regular(double const& x) const; 0266 private: 0267 int const _nf; 0268 }; 0269 0270 /** 0271 * @brief Space-like O(α<SUB>s</SUB><SUP>3</SUP>) gluon-gluon unpolarised 0272 * splitting function. 0273 */ 0274 class P2gg: public Expression 0275 { 0276 public: 0277 P2gg(int const& nf); 0278 double Regular(double const& x) const; 0279 double Singular(double const& x) const; 0280 double Local(double const& x) const; 0281 private: 0282 int const _nf; 0283 }; 0284 ///@} 0285 0286 /** 0287 * @defgroup NNNLOunpsf NNNLO splitting functions 0288 * @ingroup UnpSF 0289 * @note For now only leading-color plus, minus, and valence 0290 * contributions have been computed and parameterised. The singlet 0291 * ones are also parameterised and using the first Mellin moments 0292 * and the small- and large-x asymptotic behaviours. 0293 */ 0294 ///@{ 0295 /* /\** */ 0296 /* * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) non-singlet-plus */ 0297 /* * unpolarised splitting function. */ 0298 /* *\/ */ 0299 /* class P3nsp: public Expression */ 0300 /* { */ 0301 /* public: */ 0302 /* P3nsp(int const& nf, int const& imod = 0, double const& rho = 0.007); */ 0303 /* double Regular(double const& x) const; */ 0304 /* double Singular(double const& x) const; */ 0305 /* double Local(double const& x) const; */ 0306 /* private: */ 0307 /* int const _nf; */ 0308 /* int const _imod; */ 0309 /* double const _rho; */ 0310 /* std::vector<double> _C; */ 0311 /* }; */ 0312 0313 /** 0314 * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) 0315 * non-singlet-plus unpolarised splitting function. Parameterisation 0316 * determined in https://arxiv.org/pdf/1707.08315.pdf 0317 */ 0318 class P3nsp: public Expression 0319 { 0320 public: 0321 P3nsp(int const& nf, int const& imod = 0); 0322 double Regular(double const& x) const; 0323 double Singular(double const& x) const; 0324 double Local(double const& x) const; 0325 private: 0326 int const _nf; 0327 int const _imod; 0328 }; 0329 0330 /** 0331 * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) 0332 * non-singlet-minus unpolarised splitting 0333 * function. Parameterisation determined in 0334 * https://arxiv.org/pdf/1707.08315.pdf 0335 */ 0336 class P3nsm: public Expression 0337 { 0338 public: 0339 P3nsm(int const& nf, int const& imod = 0); 0340 double Regular(double const& x) const; 0341 double Singular(double const& x) const; 0342 double Local(double const& x) const; 0343 private: 0344 int const _nf; 0345 int const _imod; 0346 }; 0347 0348 /** 0349 * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) 0350 * non-singlet-valence unpolarised splitting 0351 * function. Parameterisation determined in 0352 * https://arxiv.org/pdf/1707.08315.pdf 0353 */ 0354 class P3nss: public Expression 0355 { 0356 public: 0357 P3nss(int const& nf, int const& imod = 0); 0358 double Regular(double const& x) const; 0359 private: 0360 int const _nf; 0361 int const _imod; 0362 }; 0363 0364 /* /\** */ 0365 /* * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) pure-singlet */ 0366 /* * unpolarised splitting function. */ 0367 /* *\/ */ 0368 /* class P3ps: public Expression */ 0369 /* { */ 0370 /* public: */ 0371 /* P3ps(int const& nf, int const& imod = 0); */ 0372 /* double Regular(double const& x) const; */ 0373 /* private: */ 0374 /* int const _nf; */ 0375 /* int const _imod; */ 0376 /* }; */ 0377 0378 /** 0379 * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) pure-singlet 0380 * unpolarised splitting function. Parameterisation determined in 0381 * https://arxiv.org/pdf/2512.10783.pdf 0382 */ 0383 class P3ps: public Expression 0384 { 0385 public: 0386 P3ps(int const& nf, int const& imod = 0); 0387 double Regular(double const& x) const; 0388 private: 0389 int const _nf; 0390 int const _imod; 0391 }; 0392 0393 /* /\** */ 0394 /* * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) quark-gluon unpolarised */ 0395 /* * splitting function. */ 0396 /* *\/ */ 0397 /* class P3qg: public Expression */ 0398 /* { */ 0399 /* public: */ 0400 /* P3qg(int const& nf, double const& rho = -1.754); */ 0401 /* double Regular(double const& x) const; */ 0402 /* private: */ 0403 /* int const _nf; */ 0404 /* double const _rho; */ 0405 /* std::vector<double> _C; */ 0406 /* }; */ 0407 0408 /** 0409 * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) quark-gluon 0410 * unpolarised splitting function. Parameterisation determined in 0411 * https://arxiv.org/pdf/2512.10783.pdf 0412 */ 0413 class P3qg: public Expression 0414 { 0415 public: 0416 P3qg(int const& nf, int const& imod = 0); 0417 double Regular(double const& x) const; 0418 private: 0419 int const _nf; 0420 int const _imod; 0421 }; 0422 0423 /* /\** */ 0424 /* * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) gluon-quark unpolarised */ 0425 /* * splitting function. */ 0426 /* *\/ */ 0427 /* class P3gq: public Expression */ 0428 /* { */ 0429 /* public: */ 0430 /* P3gq(double const& rho = -1.784); */ 0431 /* double Regular(double const& x) const; */ 0432 /* private: */ 0433 /* double const _rho; */ 0434 /* std::vector<double> _C; */ 0435 /* }; */ 0436 0437 /** 0438 * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) gluon-quark 0439 * unpolarised splitting function. Parameterisation determined in 0440 * https://arxiv.org/pdf/2512.10783.pdf 0441 */ 0442 class P3gq: public Expression 0443 { 0444 public: 0445 P3gq(int const& nf, int const& imod = 0); 0446 double Regular(double const& x) const; 0447 private: 0448 int const _nf; 0449 int const _imod; 0450 }; 0451 0452 /* /\** */ 0453 /* * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) gluon-gluon unpolarised */ 0454 /* * splitting function. */ 0455 /* *\/ */ 0456 /* class P3gg: public Expression */ 0457 /* { */ 0458 /* public: */ 0459 /* P3gg(double const& rho = 19.245); */ 0460 /* double Regular(double const& x) const; */ 0461 /* private: */ 0462 /* double const _rho; */ 0463 /* std::vector<double> _C; */ 0464 /* }; */ 0465 0466 /* /\** */ 0467 /* * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) gluon-gluon */ 0468 /* * unpolarised splitting function. Parameterisation determined in */ 0469 /* * https://arxiv.org/pdf/2310.05744.pdf. */ 0470 /* *\/ */ 0471 /* class P3gg: public Expression */ 0472 /* { */ 0473 /* public: */ 0474 /* P3gg(int const& nf, int const& imod = 0); */ 0475 /* double Regular(double const& x) const; */ 0476 /* double Singular(double const& x) const; */ 0477 /* double Local(double const& x) const; */ 0478 /* private: */ 0479 /* int const _nf; */ 0480 /* int const _imod; */ 0481 /* double _A4gluon; */ 0482 /* }; */ 0483 0484 /** 0485 * @brief Space-like O(α<SUB>s</SUB><SUP>4</SUP>) gluon-gluon 0486 * unpolarised splitting function. Parameterisation determined in 0487 * https://arxiv.org/pdf/2512.10783.pdf 0488 */ 0489 class P3gg: public Expression 0490 { 0491 public: 0492 P3gg(int const& nf, int const& imod = 0); 0493 double Regular(double const& x) const; 0494 double Singular(double const& x) const; 0495 double Local(double const& x) const; 0496 private: 0497 int const _nf; 0498 int const _imod; 0499 double _A4gluon; 0500 }; 0501 ///@} 0502 }
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|