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 #include "apfel/splittingfunctionsunp_sl.h"
0011 
0012 namespace apfel
0013 {
0014   /**
0015    * @defgroup PolSF Longitudinally polarised splitting functions
0016    * @ingroup SLSplittings
0017    * @note Reference: https://arxiv.org/pdf/hep-ph/9603366.pdf
0018    */
0019   ///@{
0020   ///@}
0021   /**
0022    * @defgroup LOpolsf LO splitting functions
0023    * @ingroup PolSF
0024    */
0025   ///@{
0026   /**
0027    * @brief Space-like O(&alpha;<SUB>s</SUB>) non-singlet
0028    * longitudinally polarised splitting function. This is equal to the
0029    * non-singlet unpolarised splitting function.
0030    */
0031   class P0polns: public P0ns
0032   {
0033   public:
0034     P0polns();
0035   };
0036 
0037   /**
0038    * @brief Space-like O(&alpha;<SUB>s</SUB>) quark-gluon
0039    * longitudinally polarised splitting function.
0040    */
0041   class P0polqg: public Expression
0042   {
0043   public:
0044     P0polqg(int const& nf);
0045     double Regular(double const& x) const;
0046   private:
0047     int const _nf;
0048   };
0049 
0050   /**
0051    * @brief Space-like O(&alpha;<SUB>s</SUB>) gluon-quark
0052    * longitudinally polarised splitting function.
0053    */
0054   class P0polgq: public Expression
0055   {
0056   public:
0057     P0polgq();
0058     double Regular(double const& x) const;
0059   };
0060 
0061   /**
0062    * @brief Space-like O(&alpha;<SUB>s</SUB>) gluon-gluon
0063    * longitudinally polarised splitting function.
0064    */
0065   class P0polgg: public Expression
0066   {
0067   public:
0068     P0polgg(int const& nf);
0069     double Regular(double const& x)  const;
0070     double Singular(double const& x) const;
0071     double Local(double const& x)    const;
0072   private:
0073     int const _nf;
0074   };
0075   ///@}
0076 
0077   /**
0078    * @defgroup NLOpolsf NLO splitting functions
0079    * @ingroup PolSF
0080    */
0081   ///@{
0082   /**
0083    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>)
0084    * non-singlet-plus longitudinally polarised splitting
0085    * function. This is equal to the non-singlet-minus unpolarised
0086    * splitting function.
0087    */
0088   class P1polnsp: public P1nsm
0089   {
0090   public:
0091     P1polnsp(int const& nf);
0092   };
0093 
0094   /**
0095    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>)
0096    * non-singlet-minus longitudinally polarised splitting
0097    * function. This is equal to the non-singlet-plus unpolarised
0098    * splitting function.
0099    */
0100   class P1polnsm: public P1nsp
0101   {
0102   public:
0103     P1polnsm(int const& nf);
0104   };
0105 
0106   /**
0107    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>) pure-singlet
0108    * longitudinally polarised splitting function.
0109    */
0110   class P1polps: public Expression
0111   {
0112   public:
0113     P1polps(int const& nf);
0114     double Regular(double const& x) const;
0115   private:
0116     int const _nf;
0117   };
0118 
0119   /**
0120    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>) quark-gluon
0121    * longitudinally polarised splitting function.
0122    */
0123   class P1polqg: public Expression
0124   {
0125   public:
0126     P1polqg(int const& nf);
0127     double Regular(double const& x) const;
0128   private:
0129     int const _nf;
0130   };
0131 
0132   /**
0133    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon-quark
0134    * longitudinally polarised splitting function.
0135    */
0136   class P1polgq: public Expression
0137   {
0138   public:
0139     P1polgq(int const& nf);
0140     double Regular(double const& x) const;
0141   private:
0142     int const _nf;
0143   };
0144 
0145   /**
0146    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>) gluon-gluon
0147    * longitudinally polarised splitting function.
0148    */
0149   class P1polgg: public Expression
0150   {
0151   public:
0152     P1polgg(int const& nf);
0153     double Regular(double const& x)  const;
0154     double Singular(double const& x) const;
0155     double Local(double const& x)    const;
0156   private:
0157     int const _nf;
0158     double    _a2g;
0159   };
0160   ///@}
0161 
0162   /**
0163    * @defgroup NNLOpolsf NNLO splitting functions
0164    * @ingroup PolSF
0165    */
0166   ///@{
0167   /**
0168    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>)
0169    * non-singlet-plus longitudinally polarised splitting
0170    * function. This is equal to the non-singlet-minus unpolarised
0171    * splitting function.
0172    */
0173   class P2polnsp: public P2nsm
0174   {
0175   public:
0176     P2polnsp(int const& nf);
0177   };
0178 
0179   /**
0180    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>)
0181    * non-singlet-minus longitudinally polarised splitting
0182    * function. This is equal to the non-singlet-plus unpolarised
0183    * splitting function.
0184    */
0185   class P2polnsm: public P2nsp
0186   {
0187   public:
0188     P2polnsm(int const& nf);
0189   };
0190 
0191   /**
0192    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>)
0193    * non-singlet-valence longitudinally polarised splitting function
0194    * minus non-singlet-minus longitudinally polarised splitting
0195    * function.
0196    * @note This has been computed in https://arxiv.org/pdf/1506.04517.pdf.
0197    */
0198   class P2polnss: public Expression
0199   {
0200   public:
0201     P2polnss(int const& nf);
0202     double Regular(double const& x) const;
0203   private:
0204     int const _nf;
0205   };
0206 
0207   /**
0208    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>) pure-singlet
0209    * longitudinally polarised splitting function.
0210    */
0211   class P2polps: public Expression
0212   {
0213   public:
0214     P2polps(int const& nf);
0215     double Regular(double const& x) const;
0216   private:
0217     int const _nf;
0218   };
0219 
0220   /**
0221    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>) quark-gluon
0222    * longitudinally polarised splitting function.
0223    */
0224   class P2polqg: public Expression
0225   {
0226   public:
0227     P2polqg(int const& nf);
0228     double Regular(double const& x) const;
0229   private:
0230     int const _nf;
0231   };
0232 
0233   /**
0234    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>) gluon-quark
0235    * longitudinally polarised splitting function.
0236    */
0237   class P2polgq: public Expression
0238   {
0239   public:
0240     P2polgq(int const& nf);
0241     double Regular(double const& x) const;
0242   private:
0243     int const _nf;
0244   };
0245 
0246   /**
0247    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>3</SUP>) gluon-gluon
0248    * longitudinally polarised splitting function.
0249    */
0250   class P2polgg: public Expression
0251   {
0252   public:
0253     P2polgg(int const& nf);
0254     double Regular(double const& x)  const;
0255     double Singular(double const& x) const;
0256     double Local(double const& x)    const;
0257   private:
0258     int const _nf;
0259   };
0260   ///@}
0261 }