Back to home page

EIC code displayed by LXR

 
 

    


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 namespace apfel
0012 {
0013   /**
0014    * @defgroup NCMassless Zero-mass coefficient functions for unpolarised DIS
0015    * Collection of the Zero-mass coefficient functions for
0016    * F<SUB>2</SUB>, F<SUB>L</SUB>, and F<SUB>3</SUB> up to
0017    * O(&alpha;<SUB>s</SUB><SUP>3</SUP>).
0018    * @note While for the O(&alpha;<SUB>s</SUB>) coefficient functions
0019    * exact expressions are used, a fast parameterisation for the
0020    * O(&alpha;<SUB>s</SUB><SUP>2</SUP>) ones is used. See
0021    * https://www.liverpool.ac.uk/~avogt/coeff.html for more details.
0022    */
0023   ///@{
0024   /**
0025    * @defgroup NLOzm NLO zero-mass coefficient functions
0026    * @ingroup NCMassless
0027    */
0028   ///@{
0029   /**
0030    * @brief O(&alpha;<SUB>s</SUB>) non-singlet coefficient function
0031    * for F2.
0032    */
0033   class C21ns: public Expression
0034   {
0035   public:
0036     C21ns();
0037     double Regular(double const& x)  const;
0038     double Singular(double const& x) const;
0039     double Local(double const& x)    const;
0040   };
0041 
0042   /**
0043    * @brief O(&alpha;<SUB>s</SUB>) gluon coefficient function for F2.
0044    */
0045   class C21g: public Expression
0046   {
0047   public:
0048     C21g();
0049     double Regular(double const& x) const;
0050   };
0051 
0052   /**
0053    * @brief O(&alpha;<SUB>s</SUB>) non-singlet coefficient function
0054    * for FL.
0055    */
0056   class CL1ns: public Expression
0057   {
0058   public:
0059     CL1ns();
0060     double Regular(double const& x) const;
0061   };
0062 
0063   /**
0064    * @brief O(&alpha;<SUB>s</SUB>) gluon coefficient function for FL.
0065    */
0066   class CL1g: public Expression
0067   {
0068   public:
0069     CL1g();
0070     double Regular(double const& x) const;
0071   };
0072 
0073   /**
0074    * @brief O(&alpha;<SUB>s</SUB>) non-singlet coefficient function
0075    * for F3.
0076    */
0077   class C31ns: public Expression
0078   {
0079   public:
0080     C31ns();
0081     double Regular(double const& x)  const;
0082     double Singular(double const& x) const;
0083     double Local(double const& x)    const;
0084   };
0085   ///@}
0086 
0087   /**
0088    * @defgroup NNLOzm NNLO zero-mass coefficient functions
0089    * @ingroup NCMassless
0090    */
0091   ///@{
0092   /**
0093    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet-plus
0094    * coefficient function for F2.
0095    */
0096   class C22nsp: public Expression
0097   {
0098   public:
0099     C22nsp(int const& nf);
0100     double Regular(double const& x)  const;
0101     double Singular(double const& x) const;
0102     double Local(double const& x)    const;
0103   private:
0104     int const _nf;
0105   };
0106 
0107   /**
0108    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet-minus
0109    * coefficient function for F2.
0110    */
0111   class C22nsm: public Expression
0112   {
0113   public:
0114     C22nsm(int const& nf);
0115     double Regular(double const& x)  const;
0116     double Singular(double const& x) const;
0117     double Local(double const& x)    const;
0118   private:
0119     int const _nf;
0120   };
0121 
0122   /**
0123    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0124    * coefficient function for F2.
0125    */
0126   class C22ps: public Expression
0127   {
0128   public:
0129     C22ps();
0130     double Regular(double const& x) const;
0131   };
0132 
0133   /**
0134    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0135    * function for F2.
0136    */
0137   class C22g: public Expression
0138   {
0139   public:
0140     C22g();
0141     double Regular(double const& x) const;
0142     double Local(double const& x)   const;
0143   };
0144 
0145   /**
0146    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet-plus
0147    * coefficient function for FL.
0148    */
0149   class CL2nsp: public Expression
0150   {
0151   public:
0152     CL2nsp(int const& nf);
0153     double Regular(double const& x) const;
0154     double Local(double const&)     const;
0155   private:
0156     int const _nf;
0157   };
0158 
0159   /**
0160    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet-minus
0161    * coefficient function for FL.
0162    */
0163   class CL2nsm: public Expression
0164   {
0165   public:
0166     CL2nsm(int const& nf);
0167     double Regular(double const& x) const;
0168     double Local(double const&)     const;
0169   private:
0170     int const _nf;
0171   };
0172 
0173   /**
0174    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0175    * coefficient function for FL.
0176    */
0177   class CL2ps: public Expression
0178   {
0179   public:
0180     CL2ps();
0181     double Regular(double const& x) const;
0182   };
0183 
0184   /**
0185    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon coefficient
0186    * function for FL.
0187    */
0188   class CL2g: public Expression
0189   {
0190   public:
0191     CL2g();
0192     double Regular(double const& x) const;
0193   };
0194 
0195   /**
0196    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet-plus
0197    * coefficient function for F3.
0198    */
0199   class C32nsp: public Expression
0200   {
0201   public:
0202     C32nsp(int const& nf);
0203     double Regular(double const& x)  const;
0204     double Singular(double const& x) const;
0205     double Local(double const& x)    const;
0206   private:
0207     int const _nf;
0208   };
0209 
0210   /**
0211    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) non-singlet-minus
0212    * coefficient function for F3.
0213    */
0214   class C32nsm: public Expression
0215   {
0216   public:
0217     C32nsm(int const& nf);
0218     double Regular(double const& x)  const;
0219     double Singular(double const& x) const;
0220     double Local(double const& x)    const;
0221   private:
0222     int const _nf;
0223   };
0224   ///@}
0225 
0226   /**
0227    * @defgroup NNNLOzm NNNLO zero-mass coefficient functions
0228    * @ingroup NCMassless
0229    */
0230   ///@{
0231   /**
0232    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) non-singlet-plus
0233    * coefficient function for F2.
0234    */
0235   class C23nsp: public Expression
0236   {
0237   public:
0238     C23nsp(int const& nf, bool const& fl11 = true);
0239     double Regular(double const& x)  const;
0240     double Singular(double const& x) const;
0241     double Local(double const& x)    const;
0242   private:
0243     int  const _nf;
0244     bool const _fl11;
0245   };
0246 
0247   /**
0248    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) non-singlet-minus
0249    * coefficient function for F2.
0250    */
0251   class C23nsm: public Expression
0252   {
0253   public:
0254     C23nsm(int const& nf, bool const& fl11 = true);
0255     double Regular(double const& x)  const;
0256     double Singular(double const& x) const;
0257     double Local(double const& x)    const;
0258   private:
0259     int  const _nf;
0260     bool const _fl11;
0261   };
0262 
0263   /**
0264    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) pure-singlet
0265    * coefficient function for F2.
0266    */
0267   class C23ps: public Expression
0268   {
0269   public:
0270     C23ps(int const& nf, bool const& fl11 = true);
0271     double Regular(double const& x) const;
0272     double Local(double const& x)   const;
0273   private:
0274     int  const _nf;
0275     bool const _fl11;
0276   };
0277 
0278   /**
0279    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) gluon coefficient
0280    * function for F2.
0281    */
0282   class C23g: public Expression
0283   {
0284   public:
0285     C23g(int const& nf, bool const& fl11 = true);
0286     double Regular(double const& x) const;
0287     double Local(double const& x)   const;
0288   private:
0289     int  const _nf;
0290     bool const _fl11;
0291   };
0292 
0293   /**
0294    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) non-singlet-plus
0295    * coefficient function for FL.
0296    */
0297   class CL3nsp: public Expression
0298   {
0299   public:
0300     CL3nsp(int const& nf, bool const& fl11 = true);
0301     double Regular(double const& x) const;
0302     double Local(double const&)     const;
0303   private:
0304     int  const _nf;
0305     bool const _fl11;
0306   };
0307 
0308   /**
0309    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) non-singlet-minus
0310    * coefficient function for FL.
0311    */
0312   class CL3nsm: public Expression
0313   {
0314   public:
0315     CL3nsm(int const& nf, bool const& fl11 = true);
0316     double Regular(double const& x) const;
0317     double Local(double const&)     const;
0318   private:
0319     int  const _nf;
0320     bool const _fl11;
0321   };
0322 
0323   /**
0324    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) pure-singlet
0325    * coefficient function for FL.
0326    */
0327   class CL3ps: public Expression
0328   {
0329   public:
0330     CL3ps(int const& nf, bool const& fl11 = true);
0331     double Regular(double const& x) const;
0332   private:
0333     int  const _nf;
0334     bool const _fl11;
0335   };
0336 
0337   /**
0338    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) gluon coefficient
0339    * function for FL.
0340    */
0341   class CL3g: public Expression
0342   {
0343   public:
0344     CL3g(int const& nf, bool const& fl11 = true);
0345     double Regular(double const& x) const;
0346   private:
0347     int  const _nf;
0348     bool const _fl11;
0349   };
0350 
0351   /**
0352    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) non-singlet-plus
0353    * coefficient function for F3.
0354    */
0355   class C33nsp: public Expression
0356   {
0357   public:
0358     C33nsp(int const& nf);
0359     double Regular(double const& x)  const;
0360     double Singular(double const& x) const;
0361     double Local(double const& x)    const;
0362   private:
0363     int const _nf;
0364   };
0365 
0366   /**
0367    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) non-singlet-minus
0368    * coefficient function for F3.
0369    */
0370   class C33nsm: public Expression
0371   {
0372   public:
0373     C33nsm(int const& nf);
0374     double Regular(double const& x)  const;
0375     double Singular(double const& x) const;
0376     double Local(double const& x)    const;
0377   private:
0378     int const _nf;
0379   };
0380 
0381   /**
0382    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) total-valence
0383    * coefficient function for F3.
0384    */
0385   class C33nsv: public Expression
0386   {
0387   public:
0388     C33nsv();
0389     double Regular(double const& x) const;
0390   };
0391   ///@}
0392   ///@}
0393 }