Back to home page

EIC code displayed by LXR

 
 

    


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

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 TLMatchFunc Time-like matching functions
0015    * TMD mathing functions for FFs (time-like hard scales)
0016    * @ingroup TMDMatchingFunctions
0017    */
0018   ///@{
0019   ///@}
0020   /**
0021    * @defgroup NLOff NLO matching functions for FFs
0022    * @ingroup TLMatchFunc
0023    */
0024   ///@{
0025   /**
0026    * @brief The O(&alpha;<SUB>s</SUB>) non-singlet matching function
0027    * for FFs (references: https://arxiv.org/pdf/1604.07869.pdf and
0028    * https://arxiv.org/pdf/1706.01473.pdf).
0029    */
0030   class C1nsff: public Expression
0031   {
0032   public:
0033     C1nsff();
0034     double Regular(double const& x) const;
0035     double Local(double const&)     const;
0036   };
0037 
0038   /**
0039    * @brief The O(&alpha;<SUB>s</SUB>) quark-gluon matching function
0040    * for FFs (references: https://arxiv.org/pdf/1604.07869.pdf and
0041    * https://arxiv.org/pdf/1706.01473.pdf).
0042    */
0043   class C1qgff: public Expression
0044   {
0045   public:
0046     C1qgff();
0047     double Regular(double const& x) const;
0048   };
0049 
0050   /**
0051    * @brief The O(&alpha;<SUB>s</SUB>) gluon-quark matching function
0052    * for FFs (references: https://arxiv.org/pdf/1604.07869.pdf and
0053    * https://arxiv.org/pdf/1706.01473.pdf).
0054    */
0055   class C1gqff: public Expression
0056   {
0057   public:
0058     C1gqff();
0059     double Regular(double const& x) const;
0060   };
0061 
0062   /**
0063    * @brief The O(&alpha;<SUB>s</SUB>) gluon-gluon matching function
0064    * for FFs (references: https://arxiv.org/pdf/1604.07869.pdf and
0065    * https://arxiv.org/pdf/1706.01473.pdf).
0066    */
0067   class C1ggff: public Expression
0068   {
0069   public:
0070     C1ggff();
0071     double Regular(double const& x) const;
0072     double Local(double const&)     const;
0073   };
0074   ///@}
0075 
0076   /**
0077    * @defgroup NNLOff NNLO matching functions for FFs
0078    * @ingroup TLMatchFunc
0079    */
0080   ///@{
0081   /**
0082    * @brief The O(&alpha;<SUB>s</SUB><SUP>2</SUP>) quark-quark
0083    * matching function for FFs (references:
0084    * https://arxiv.org/pdf/1604.07869.pdf and
0085    * https://arxiv.org/pdf/1706.01473.pdf).
0086    */
0087   class C2nspff: public Expression
0088   {
0089   public:
0090     C2nspff(int const& nf);
0091     double Regular(double const& x)  const;
0092     double Singular(double const& x) const;
0093     double Local(double const& x)    const;
0094   protected:
0095     int const _nf;
0096     double    _A2;
0097   };
0098 
0099   /**
0100    * @brief The O(&alpha;<SUB>s</SUB><SUP>2</SUP>) quark-antiquark
0101    * matching function for FFs (references:
0102    * https://arxiv.org/pdf/1604.07869.pdf and
0103    * https://arxiv.org/pdf/1706.01473.pdf).
0104    */
0105   class C2nsmff: public Expression
0106   {
0107   public:
0108     C2nsmff(int const& nf);
0109     double Regular(double const& x) const;
0110     double Singular(double const& x) const;
0111     double Local(double const& x)    const;
0112   protected:
0113     int const _nf;
0114     double    _A2;
0115   };
0116 
0117   /**
0118    * @brief The O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0119    * matching function for FFs (references:
0120    * https://arxiv.org/pdf/1604.07869.pdf and
0121    * https://arxiv.org/pdf/1706.01473.pdf).
0122    */
0123   class C2psff: public Expression
0124   {
0125   public:
0126     C2psff();
0127     double Regular(double const& x) const;
0128   };
0129 
0130   /**
0131    * @brief The O(&alpha;<SUB>s</SUB><SUP>2</SUP>) quark-gluon
0132    * matching function for FFs (references:
0133    * https://arxiv.org/pdf/1604.07869.pdf and
0134    * https://arxiv.org/pdf/1706.01473.pdf).
0135    */
0136   class C2qgff: public Expression
0137   {
0138   public:
0139     C2qgff();
0140     double Regular(double const& x) const;
0141   };
0142 
0143   /**
0144    * @brief The O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon-quark
0145    * matching function for FFs (references:
0146    * https://arxiv.org/pdf/1604.07869.pdf and
0147    * https://arxiv.org/pdf/1706.01473.pdf).
0148    */
0149   class C2gqff: public Expression
0150   {
0151   public:
0152     C2gqff(int const& nf);
0153     double Regular(double const& x) const;
0154   private:
0155     int const _nf;
0156   };
0157 
0158   /**
0159    * @brief The O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon-gluon
0160    * matching function for FFs (references:
0161    * https://arxiv.org/pdf/1604.07869.pdf and
0162    * https://arxiv.org/pdf/1706.01473.pdf).
0163    */
0164   class C2ggff: public Expression
0165   {
0166   public:
0167     C2ggff(int const& nf);
0168     double Regular(double const& x)  const;
0169     double Singular(double const& x) const;
0170     double Local(double const& x)    const;
0171   private:
0172     int const _nf;
0173     double    _A2;
0174   };
0175   ///@}
0176 
0177   /**
0178    * @defgroup NNNLOff NNNLO matching functions for FFs
0179    * @ingroup TLMatchFunc
0180    */
0181   ///@{
0182   /**
0183    * @brief The O(&alpha;<SUB>s</SUB><SUP>3</SUP>) valence plus
0184    * matching function for FFs (reference:
0185    * https://arxiv.org/pdf/2012.03256.pdf).
0186    */
0187   class C3nspff: public Expression
0188   {
0189   public:
0190     C3nspff(int const& nf);
0191     double Regular(double const& x)  const;
0192     double Singular(double const& x) const;
0193     double Local(double const& x)    const;
0194   protected:
0195     int const _nf;
0196     double    _A2;
0197   };
0198 
0199   /**
0200    * @brief The O(&alpha;<SUB>s</SUB><SUP>3</SUP>) valence minus
0201    * matching function for FFs (reference:
0202    * https://arxiv.org/pdf/2012.03256.pdf).
0203    */
0204   class C3nsmff: public Expression
0205   {
0206   public:
0207     C3nsmff(int const& nf);
0208     double Regular(double const& x)  const;
0209     double Singular(double const& x) const;
0210     double Local(double const& x)    const;
0211   protected:
0212     int const _nf;
0213     double    _A2;
0214   };
0215 
0216   /**
0217    * @brief The O(&alpha;<SUB>s</SUB><SUP>3</SUP>) pure-valence
0218    * matching function for FFs (reference:
0219    * https://arxiv.org/pdf/2012.03256.pdf).
0220    */
0221   class C3pvff: public Expression
0222   {
0223   public:
0224     C3pvff();
0225     double Regular(double const& x) const;
0226   };
0227 
0228   /**
0229    * @brief The O(&alpha;<SUB>s</SUB><SUP>3</SUP>) pure-singlet
0230    * matching function for FFs (reference:
0231    * https://arxiv.org/pdf/2012.03256.pdf).
0232    */
0233   class C3psff: public Expression
0234   {
0235   public:
0236     C3psff(int const& nf);
0237     double Regular(double const& x) const;
0238   protected:
0239     int const _nf;
0240   };
0241 
0242   /**
0243    * @brief The O(&alpha;<SUB>s</SUB><SUP>3</SUP>) quark-gluon
0244    * matching function for FFs (reference:
0245    * https://arxiv.org/pdf/2012.03256.pdf).
0246    */
0247   class C3qgff: public Expression
0248   {
0249   public:
0250     C3qgff(int const& nf);
0251     double Regular(double const& x) const;
0252   protected:
0253     int const _nf;
0254   };
0255 
0256   /**
0257    * @brief The O(&alpha;<SUB>s</SUB><SUP>3</SUP>) gluon-quark
0258    * matching function for FFs (reference:
0259    * https://arxiv.org/pdf/2012.03256.pdf).
0260    */
0261   class C3gqff: public Expression
0262   {
0263   public:
0264     C3gqff(int const& nf);
0265     double Regular(double const& x) const;
0266   protected:
0267     int const _nf;
0268   };
0269 
0270   /**
0271    * @brief The O(&alpha;<SUB>s</SUB><SUP>3</SUP>) gluon-gluon
0272    * matching function for FFs (reference:
0273    * https://arxiv.org/pdf/2012.03256.pdf).
0274    */
0275   class C3ggff: public Expression
0276   {
0277   public:
0278     C3ggff(int const& nf);
0279     double Regular(double const& x)  const;
0280     double Singular(double const& x) const;
0281     double Local(double const& x)    const;
0282   protected:
0283     int const _nf;
0284     double    _A2;
0285   };
0286   ///@}
0287 
0288   /**
0289    * @defgroup NLOffg1 NLO matching functions for the helicity FFs g1
0290    * NLO matching functions for the helicity FFs g1
0291    * @ingroup TLMatchFunc
0292    */
0293   ///@{
0294   /**
0295    * @brief The O(&alpha;<SUB>s</SUB>) non-singlet longitudinally
0296    * polarised matching function for FFs.
0297    */
0298   class C1nsffg1: public Expression
0299   {
0300   public:
0301     C1nsffg1();
0302     double Regular(double const& x) const;
0303     double Local(double const&)     const;
0304   };
0305 
0306   /**
0307    * @brief The O(&alpha;<SUB>s</SUB>) quark-gluon longitudinally
0308    * polarised matching function for FFs.
0309    */
0310   class C1qgffg1: public Expression
0311   {
0312   public:
0313     C1qgffg1();
0314     double Regular(double const& x) const;
0315   };
0316 
0317   /**
0318    * @brief The O(&alpha;<SUB>s</SUB>) gluon-quark longitudinally
0319    * polarised matching function for FFs.
0320    */
0321   class C1gqffg1: public Expression
0322   {
0323   public:
0324     C1gqffg1();
0325     double Regular(double const& x) const;
0326   };
0327 
0328   /**
0329    * @brief The O(&alpha;<SUB>s</SUB>) gluon-gluon longitudinally
0330    * polarised matching function for FFs.
0331    */
0332   class C1ggffg1: public Expression
0333   {
0334   public:
0335     C1ggffg1();
0336     double Regular(double const& x) const;
0337     double Local(double const&)     const;
0338   };
0339   ///@}
0340 }