Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-06-02 08:17:13

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 #include "apfel/zeromasscoefficientfunctionsunp_sl.h"
0011 
0012 namespace apfel
0013 {
0014   /**
0015    * @defgroup NCMassiveZero Massless limit of the massive neutral current coefficient functions
0016    * Collection of the neutral current massless limit of the massive
0017    * coefficient functions for F<SUB>2</SUB> and F<SUB>L</SUB> up to
0018    * O(&alpha;<SUB>s</SUB>).
0019    * @note In the following "xi"
0020    * indicates the ratio Q<SUP>2</SUP> / M<SUP>2</SUP> and "xiF" is
0021    * equal to M<SUP>2</SUP> / &mu;<SUB>F</SUB><SUP>2</SUP>. See Appendix D of
0022    * https://arxiv.org/pdf/hep-ph/9601302.pdf. The suffix "_c" in the
0023    * classes below stands for "constant", that is no dependence on
0024    * "xi" or "xiF". "_l" or "_l2" instead means that that term is
0025    * proportional to log(xi) or log<SUP>2</SUP>(xi),
0026    * respectively. While "_f" means proportional to log(xiF) amd "_lf"
0027    * proportional to log(xi)log(xiF).
0028    */
0029   ///@{
0030   /**
0031    * @defgroup LOZero LO massive-zero coefficient functions
0032    * @ingroup NCMassiveZero
0033    */
0034   ///@{
0035   /**
0036    * @brief O(&alpha;<SUB>s</SUB>) gluon coefficient function for
0037    * F2. Constant term.
0038    */
0039   class Cm021gNC_c: public Expression
0040   {
0041   public:
0042     Cm021gNC_c();
0043     double Regular(double const& x) const;
0044   };
0045 
0046   /**
0047    * @brief O(&alpha;<SUB>s</SUB>) gluon coefficient function for
0048    * F2. Single-log term.
0049    */
0050   class Cm021gNC_l: public Expression
0051   {
0052   public:
0053     Cm021gNC_l();
0054     double Regular(double const& x) const;
0055   };
0056 
0057   /**
0058    * @brief O(&alpha;<SUB>s</SUB>) gluon coefficient function for
0059    * FL. Constant term.
0060    */
0061   class Cm0L1gNC_c: public Expression
0062   {
0063   public:
0064     Cm0L1gNC_c();
0065     double Regular(double const& x) const;
0066   };
0067   ///@}
0068 
0069   /**
0070    * @defgroup NLOZero NLO massive-zero coefficient functions
0071    * @ingroup NCMassiveZero
0072    */
0073   ///@{
0074   /**
0075    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet coefficient
0076    * function for F2. Constant term.
0077    */
0078   class Cm022nsNC_c: public Expression
0079   {
0080   public:
0081     Cm022nsNC_c();
0082     double Regular(double const& x)  const;
0083     double Singular(double const& x) const;
0084     double Local(double const& x)    const;
0085   };
0086 
0087   /**
0088    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet coefficient
0089    * function for F2. Single-log term.
0090    */
0091   class Cm022nsNC_l: public Expression
0092   {
0093   public:
0094     Cm022nsNC_l();
0095     double Regular(double const& x)  const;
0096     double Singular(double const& x) const;
0097     double Local(double const& x)    const;
0098   };
0099 
0100   /**
0101    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet coefficient
0102    * function for F2. Double-log term.
0103    */
0104   class Cm022nsNC_l2: public Expression
0105   {
0106   public:
0107     Cm022nsNC_l2();
0108     double Regular(double const& x)  const;
0109     double Singular(double const& x) const;
0110     double Local(double const& x)    const;
0111   };
0112 
0113   /**
0114    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet coefficient
0115    * function for FL. Constant term.
0116    */
0117   class Cm0L2nsNC_c: public Expression
0118   {
0119   public:
0120     Cm0L2nsNC_c();
0121     double Regular(double const& x) const;
0122   };
0123 
0124   /**
0125    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet coefficient
0126    * function for FL. Single-log term.
0127    */
0128   class Cm0L2nsNC_l: public Expression
0129   {
0130   public:
0131     Cm0L2nsNC_l();
0132     double Regular(double const& x) const;
0133   };
0134 
0135   /**
0136    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0137    * coefficient function for F2. Constant term.
0138    */
0139   class Cm022psNC_c: public Expression
0140   {
0141   public:
0142     Cm022psNC_c();
0143     double Regular(double const& x) const;
0144   };
0145 
0146   /**
0147    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0148    * coefficient function for F2. Single-log term.
0149    */
0150   class Cm022psNC_l: public Expression
0151   {
0152   public:
0153     Cm022psNC_l();
0154     double Regular(double const& x) const;
0155   };
0156 
0157   /**
0158    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0159    * coefficient function for F2. Double-log term.
0160    */
0161   class Cm022psNC_l2: public Expression
0162   {
0163   public:
0164     Cm022psNC_l2();
0165     double Regular(double const& x) const;
0166   };
0167 
0168   /**
0169    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0170    * coefficient function for F2. Single-log(&mu;<SUB>F</SUB>) term.
0171    */
0172   class Cm022psNC_f: public Expression
0173   {
0174   public:
0175     Cm022psNC_f();
0176     double Regular(double const& x) const;
0177   };
0178 
0179   /**
0180    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0181    * coefficient function for F2. Mixed-double-log term.
0182    */
0183   class Cm022psNC_lf: public Expression
0184   {
0185   public:
0186     Cm022psNC_lf();
0187     double Regular(double const& x) const;
0188   };
0189 
0190   /**
0191    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0192    * coefficient function for FL. Constant term.
0193    */
0194   class Cm0L2psNC_c: public Expression
0195   {
0196   public:
0197     Cm0L2psNC_c();
0198     double Regular(double const& x) const;
0199   };
0200 
0201   /**
0202    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0203    * coefficient function for FL. Single-log term.
0204    */
0205   class Cm0L2psNC_l: public Expression
0206   {
0207   public:
0208     Cm0L2psNC_l();
0209     double Regular(double const& x) const;
0210   };
0211 
0212   /**
0213    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0214    * coefficient function for FL. Single-log(&mu;<SUB>F</SUB>) term.
0215    */
0216   class Cm0L2psNC_f: public Expression
0217   {
0218   public:
0219     Cm0L2psNC_f();
0220     double Regular(double const& x) const;
0221   };
0222 
0223   /**
0224    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0225    * function for F2. Constant term.
0226    */
0227   class Cm022gNC_c: public Expression
0228   {
0229   public:
0230     Cm022gNC_c();
0231     double Regular(double const& x) const;
0232   };
0233 
0234   /**
0235    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0236    * function for F2. Single-log term.
0237    */
0238   class Cm022gNC_l: public Expression
0239   {
0240   public:
0241     Cm022gNC_l();
0242     double Regular(double const& x) const;
0243   };
0244 
0245   /**
0246    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0247    * function for F2. Double-log term.
0248    */
0249   class Cm022gNC_l2: public Expression
0250   {
0251   public:
0252     Cm022gNC_l2();
0253     double Regular(double const& x) const;
0254   };
0255 
0256   /**
0257    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0258    * function for F2. Single-log(&mu;<SUB>F</SUB>) term.
0259    */
0260   class Cm022gNC_f: public Expression
0261   {
0262   public:
0263     Cm022gNC_f();
0264     double Regular(double const& x) const;
0265   };
0266 
0267   /**
0268    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0269    * function for F2. Mixed-double-log term.
0270    */
0271   class Cm022gNC_lf: public Expression
0272   {
0273   public:
0274     Cm022gNC_lf();
0275     double Regular(double const& x) const;
0276   };
0277 
0278   /**
0279    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0280    * function for FL. Constant term.
0281    */
0282   class Cm0L2gNC_c: public Expression
0283   {
0284   public:
0285     Cm0L2gNC_c();
0286     double Regular(double const& x) const;
0287   };
0288 
0289   /**
0290    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0291    * function for FL. Single-log term.
0292    */
0293   class Cm0L2gNC_l: public Expression
0294   {
0295   public:
0296     Cm0L2gNC_l();
0297     double Regular(double const& x) const;
0298   };
0299 
0300   /**
0301    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0302    * function for FL. Single-log(&mu;<SUB>F</SUB>) term.
0303    */
0304   class Cm0L2gNC_f: public Expression
0305   {
0306   public:
0307     Cm0L2gNC_f();
0308     double Regular(double const& x) const;
0309   };
0310   ///@}
0311 
0312   /**
0313    * @defgroup NNLOZero NNLO massive-zero coefficient functions
0314    * @ingroup NCMassiveZero
0315    */
0316   ///@{
0317   /**
0318    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term of gluon
0319    * coefficient function for F2. Reference:
0320    * https://arxiv.org/pdf/1205.5727.
0321    */
0322   class Cm023gNC_c: public Expression
0323   {
0324   public:
0325     Cm023gNC_c(int const& nf);
0326     double Regular(double const& x) const;
0327   private:
0328     int  const _nf;
0329     C23g const _c23g;
0330     C21g const _c21g;
0331   };
0332 
0333   /**
0334    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) linear log of gluon
0335    * coefficient function for F2. Reference:
0336    * https://arxiv.org/pdf/1205.5727.
0337    */
0338   class Cm023gNC_l: public Expression
0339   {
0340   public:
0341     Cm023gNC_l(int const& nf, bool const& muterms = true);
0342     double Regular(double const& x) const;
0343   private:
0344     int  const _nf;
0345     bool const _muterms;
0346     C22g const _c22g;
0347     C21g const _c21g;
0348   };
0349 
0350   /**
0351    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) quadratic log of gluon
0352    * coefficient function for F2. Reference:
0353    * https://arxiv.org/pdf/1205.5727.
0354    */
0355   class Cm023gNC_l2: public Expression
0356   {
0357   public:
0358     Cm023gNC_l2(int const& nf, bool const& muterms = true);
0359     double Regular(double const& x) const;
0360   private:
0361     int  const _nf;
0362     bool const _muterms;
0363     C21g const _c21g;
0364   };
0365 
0366   /**
0367    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) cubic log of gluon
0368    * coefficient function for F2. Reference:
0369    * https://arxiv.org/pdf/1205.5727.
0370    */
0371   class Cm023gNC_l3: public Expression
0372   {
0373   public:
0374     Cm023gNC_l3(int const& nf, bool const& muterms = true);
0375     double Regular(double const& x) const;
0376   private:
0377     int  const _nf;
0378     bool const _muterms;
0379   };
0380 
0381   /**
0382    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term of
0383    * pure-single coefficient function for F2. Reference:
0384    * https://arxiv.org/pdf/1205.5727.
0385    */
0386   class Cm023psNC_c: public Expression
0387   {
0388   public:
0389     Cm023psNC_c(int const& nf);
0390     double Regular(double const& x) const;
0391   private:
0392     int   const _nf;
0393     C23ps const _c23ps;
0394   };
0395 
0396   /**
0397    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) linear log of
0398    * pure-single coefficient function for F2. Reference:
0399    * https://arxiv.org/pdf/1205.5727.
0400    */
0401   class Cm023psNC_l: public Expression
0402   {
0403   public:
0404     Cm023psNC_l(int const& nf, bool const& muterms = true);
0405     double Regular(double const& x) const;
0406   private:
0407     int  const _nf;
0408     bool const _muterms;
0409   };
0410 
0411   /**
0412    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) quadratic log of
0413    * pure-single coefficient function for F2. Reference:
0414    * https://arxiv.org/pdf/1205.5727.
0415    */
0416   class Cm023psNC_l2: public Expression
0417   {
0418   public:
0419     Cm023psNC_l2(int const& nf, bool const& muterms = true);
0420     double Regular(double const& x) const;
0421   private:
0422     int  const _nf;
0423     bool const _muterms;
0424   };
0425 
0426   /**
0427    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) cubic log of
0428    * pure-single coefficient function for F2. Reference:
0429    * https://arxiv.org/pdf/1205.5727.
0430    */
0431   class Cm023psNC_l3: public Expression
0432   {
0433   public:
0434     Cm023psNC_l3(int const& nf, bool const& muterms = true);
0435     double Regular(double const& x) const;
0436   private:
0437     int  const _nf;
0438     bool const _muterms;
0439   };
0440 
0441   /**
0442    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term of gluon
0443    * coefficient function for FL. Reference:
0444    * https://arxiv.org/pdf/1205.5727.
0445    */
0446   class Cm0L3gNC_c: public Expression
0447   {
0448   public:
0449     Cm0L3gNC_c(int const& nf);
0450     double Regular(double const& x) const;
0451   private:
0452     CL3g const _cL3g;
0453   };
0454 
0455   /**
0456    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) linear log term of
0457    * gluon coefficient function for FL. Reference:
0458    * https://arxiv.org/pdf/1205.5727.
0459    */
0460   class Cm0L3gNC_l: public Expression
0461   {
0462   public:
0463     Cm0L3gNC_l(int const& nf, bool const& muterms = true);
0464     double Regular(double const& x) const;
0465   private:
0466     int  const _nf;
0467     bool const _muterms;
0468   };
0469 
0470   /**
0471    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) quadratic log term of
0472    * gluon coefficient function for FL. Reference:
0473    * https://arxiv.org/pdf/1205.5727.
0474    */
0475   class Cm0L3gNC_l2: public Expression
0476   {
0477   public:
0478     Cm0L3gNC_l2(int const& nf, bool const& muterms = true);
0479     double Regular(double const& x) const;
0480   private:
0481     int  const _nf;
0482     bool const _muterms;
0483   };
0484 
0485   /**
0486    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term of
0487    * pure-single coefficient function for FL. Reference:
0488    * https://arxiv.org/pdf/1205.5727.
0489    */
0490   class Cm0L3psNC_c: public Expression
0491   {
0492   public:
0493     Cm0L3psNC_c(int const& nf);
0494     double Regular(double const& x) const;
0495   private:
0496     CL3ps const _cL3ps;
0497   };
0498 
0499   /**
0500    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) linear log of
0501    * pure-single coefficient function for FL. Reference:
0502    * https://arxiv.org/pdf/1205.5727.
0503    */
0504   class Cm0L3psNC_l: public Expression
0505   {
0506   public:
0507     Cm0L3psNC_l(int const& nf, bool const& muterms = true);
0508     double Regular(double const& x) const;
0509   private:
0510     int  const _nf;
0511     bool const _muterms;
0512   };
0513 
0514   /**
0515    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) quadratic log of
0516    * pure-single coefficient function for FL. Reference:
0517    * https://arxiv.org/pdf/1205.5727.
0518    */
0519   class Cm0L3psNC_l2: public Expression
0520   {
0521   public:
0522     Cm0L3psNC_l2(int const& nf, bool const& muterms = true);
0523     double Regular(double const& x) const;
0524   private:
0525     int  const _nf;
0526     bool const _muterms;
0527   };
0528   ///@}
0529   ///@}
0530 }