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 TLSplittings Time-like splitting functions
0015    * Collection of the MSbar time-like splitting functions up to the
0016    * highest order currently known for unpolarised, polarised (not
0017    * yet!), and transversity evolution.
0018    * @note While for the O(&alpha;<SUB>s</SUB>) and
0019    * O(&alpha;<SUB>s</SUB><SUP>2</SUP>) splitting functions exact
0020    * expressions are used, a fast parameterisation for the
0021    * O(&alpha;<SUB>s</SUB><SUP>3</SUP>) ones is used. See
0022    * https://www.liverpool.ac.uk/~avogt/split.html for more details.
0023    */
0024   ///@{
0025   ///@}
0026   /**
0027    * @defgroup UnpSFtl Unpolarised splitting functions
0028    * @ingroup TLSplittings
0029    */
0030   ///@{
0031   ///@}
0032   /**
0033    * @defgroup LOunpsftl LO splitting functions
0034    * @ingroup UnpSFtl
0035    */
0036   ///@{
0037   /**
0038    * @brief Time-like O(&alpha;<SUB>s</SUB>) non-singlet unpolarised
0039    * splitting function.
0040    */
0041   class P0Tns: public Expression
0042   {
0043   public:
0044     P0Tns();
0045     double Regular(double const& x)  const;
0046     double Singular(double const& x) const;
0047     double Local(double const& x)    const;
0048   };
0049 
0050   /**
0051    * @brief Time-like O(&alpha;<SUB>s</SUB>) quark-gluon unpolarised
0052    * splitting function.
0053    */
0054   class P0Tqg: public Expression
0055   {
0056   public:
0057     P0Tqg(int const& nf);
0058     double Regular(double const& x) const;
0059   private:
0060     int const _nf;
0061   };
0062 
0063   /**
0064    * @brief Time-like O(&alpha;<SUB>s</SUB>) gluon-quark unpolarised
0065    * splitting function.
0066    */
0067   class P0Tgq: public Expression
0068   {
0069   public:
0070     P0Tgq();
0071     double Regular(double const& x) const;
0072   };
0073 
0074   /**
0075    * @brief Time-like O(&alpha;<SUB>s</SUB>) gluon-gluon unpolarised
0076    * splitting function.
0077    */
0078   class P0Tgg: public Expression
0079   {
0080   public:
0081     P0Tgg(int const& nf);
0082     double Regular(double const& x)  const;
0083     double Singular(double const& x) const;
0084     double Local(double const& x)    const;
0085   private:
0086     int const _nf;
0087   };
0088   ///@}
0089 
0090   /**
0091    * @defgroup NLOunpsftl NLO splitting functions
0092    * @ingroup UnpSFtl
0093    */
0094   ///@{
0095   /**
0096    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>)
0097    * non-singlet-plus unpolarised splitting function.
0098    */
0099   class P1Tnsp: public Expression
0100   {
0101   public:
0102     P1Tnsp(int const& nf);
0103     double Regular(double const& x)  const;
0104     double Singular(double const& x) const;
0105     double Local(double const& x)    const;
0106   protected:
0107     int const _nf;
0108     double    _a2;
0109   };
0110 
0111   /**
0112    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>)
0113    * non-singlet-minus unpolarised splitting function.
0114    */
0115   class P1Tnsm: public P1Tnsp
0116   {
0117   public:
0118     P1Tnsm(int const& nf);
0119     double Regular(double const& x) const;
0120   };
0121 
0122   /**
0123    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0124    * unpolarised splitting function.
0125    */
0126   class P1Tps: public Expression
0127   {
0128   public:
0129     P1Tps(int const& nf);
0130     double Regular(double const& x) const;
0131   private:
0132     int const _nf;
0133   };
0134 
0135   /**
0136    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>) quark-gluon
0137    * unpolarised splitting function.
0138    */
0139   class P1Tqg: public Expression
0140   {
0141   public:
0142     P1Tqg(int const& nf);
0143     double Regular(double const& x) const;
0144   private:
0145     int const _nf;
0146   };
0147 
0148   /**
0149    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon-quark
0150    * unpolarised splitting function.
0151    */
0152   class P1Tgq: public Expression
0153   {
0154   public:
0155     P1Tgq(int const& nf);
0156     double Regular(double const& x) const;
0157   private:
0158     int const _nf;
0159   };
0160 
0161   /**
0162    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon-gluon
0163    * unpolarised splitting function.
0164    */
0165   class P1Tgg: public Expression
0166   {
0167   public:
0168     P1Tgg(int const& nf);
0169     double Regular(double const& x)  const;
0170     double Singular(double const& x) const;
0171     double Local(double const& x)    const;
0172   private:
0173     int const _nf;
0174     double    _a2g;
0175   };
0176   ///@}
0177 
0178   /**
0179    * @defgroup NNLOunpsftl NNLO splitting functions
0180    * @ingroup UnpSFtl
0181    */
0182   ///@{
0183   /**
0184    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>)
0185    * non-singlet-plus unpolarised splitting function.
0186    */
0187   class P2Tnsp: public Expression
0188   {
0189   public:
0190     P2Tnsp(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   private:
0195     int const _nf;
0196   };
0197 
0198   /**
0199    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>)
0200    * non-singlet-minus unpolarised splitting function.
0201    */
0202   class P2Tnsm: public Expression
0203   {
0204   public:
0205     P2Tnsm(int const& nf);
0206     double Regular(double const& x)  const;
0207     double Singular(double const& x) const;
0208     double Local(double const& x)    const;
0209   private:
0210     int const _nf;
0211   };
0212 
0213   /**
0214    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>)
0215    * non-singlet-valence unpolarised splitting function minus
0216    * non-singlet-minus unpolarised splitting function.
0217    */
0218   class P2Tnss: public Expression
0219   {
0220   public:
0221     P2Tnss(int const& nf);
0222     double Regular(double const& x) const;
0223   private:
0224     int const _nf;
0225   };
0226 
0227   /**
0228    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>) pure-singlet
0229    * unpolarised splitting function.
0230    */
0231   class P2Tps: public Expression
0232   {
0233   public:
0234     P2Tps(int const& nf);
0235     double Regular(double const& x) const;
0236   private:
0237     int const _nf;
0238   };
0239 
0240   /**
0241    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>) quark-gluon
0242    * unpolarised splitting function.
0243    */
0244   class P2Tqg: public Expression
0245   {
0246   public:
0247     P2Tqg(int const& nf);
0248     double Regular(double const& x) const;
0249   private:
0250     int const _nf;
0251   };
0252 
0253   /**
0254    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>) gluon-quark
0255    * unpolarised splitting function.
0256    */
0257   class P2Tgq: public Expression
0258   {
0259   public:
0260     P2Tgq(int const& nf);
0261     double Regular(double const& x) const;
0262   private:
0263     int const _nf;
0264   };
0265 
0266   /**
0267    * @brief Time-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>) gluon-gluon
0268    * unpolarised splitting function.
0269    */
0270   class P2Tgg: public Expression
0271   {
0272   public:
0273     P2Tgg(int const& nf);
0274     double Regular(double const& x)  const;
0275     double Singular(double const& x) const;
0276     double Local(double const& x)    const;
0277   private:
0278     int const _nf;
0279   };
0280   ///@}
0281 }