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 #include <vector>
0012 
0013 namespace apfel
0014 {
0015   /**
0016    * @defgroup UnpSFQED Unpolarised splitting functions for QCDxQED evolution
0017    * @ingroup SLSplittings
0018    * @note The expressions implemented are extracted mostly from
0019    * https://arxiv.org/pdf/1512.00612 and
0020    * https://arxiv.org/pdf/1606.02887.
0021    * The scheme-change terms are instead exctracted from:
0022    * https://arxiv.org/pdf/hep-ph/0110331 and
0023    * https://journals.aps.org/prd/pdf/10.1103/PhysRevD.45.3986.
0024    */
0025   ///@{
0026   ///@}
0027   /**
0028    * @defgroup LOunpsfQED LO splitting functions for QCDxQED
0029    * @ingroup UnpSFQED
0030    */
0031   ///@{
0032   /**
0033    * @brief Space-like O(&alpha;) non-singlet unpolarised splitting
0034    * function.
0035    */
0036   class P01qedns: public Expression
0037   {
0038   public:
0039     P01qedns();
0040     double Regular(double const& x)  const;
0041     double Singular(double const& x) const;
0042     double Local(double const& x)    const;
0043   };
0044 
0045   /**
0046    * @brief Space-like O(&alpha;) quark-gamma unpolarised splitting
0047    * function.
0048    */
0049   class P01qedqgm: public Expression
0050   {
0051   public:
0052     P01qedqgm();
0053     double Regular(double const& x) const;
0054   };
0055 
0056   /**
0057    * @brief Space-like O(&alpha;) gamma-quark unpolarised splitting
0058    * function.
0059    */
0060   class P01qedgmq: public Expression
0061   {
0062   public:
0063     P01qedgmq();
0064     double Regular(double const& x) const;
0065   };
0066 
0067   /**
0068    * @brief Space-like O(&alpha;) gamma-gamma unpolarised splitting
0069    * function.
0070    */
0071   class P01qedgmgm: public Expression
0072   {
0073   public:
0074     P01qedgmgm();
0075     double Local(double const& x) const;
0076   };
0077   ///@}
0078 
0079   /**
0080    * @defgroup NLOunpsfQED NLO splitting functions for QCDxQED
0081    * @ingroup UnpSFQED
0082    */
0083   ///@{
0084   /**
0085    * @brief Space-like O(&alpha;<SUP>2</SUP>) non-singlet-plus
0086    * unpolarised splitting function.
0087    */
0088   class P02qednsp: public Expression
0089   {
0090   public:
0091     P02qednsp(double const& crat2);
0092     double Regular(double const& x)  const;
0093     double Singular(double const& x) const;
0094     double Local(double const& x)    const;
0095   protected:
0096     double const _crat2;
0097     double       _a2;
0098   };
0099 
0100   /**
0101    * @brief Space-like O(&alpha;<SUP>2</SUP>) non-singlet-minus
0102    * unpolarised splitting function.
0103    */
0104   class P02qednsm: public Expression
0105   {
0106   public:
0107     P02qednsm(double const& crat2);
0108     double Regular(double const& x)  const;
0109     double Singular(double const& x) const;
0110     double Local(double const& x)    const;
0111   protected:
0112     double const _crat2;
0113     double       _a2;
0114   };
0115 
0116   /**
0117    * @brief Space-like O(&alpha;<SUP>2</SUP>) pure-singlet
0118    * unpolarised splitting function.
0119    */
0120   class P02qedps: public Expression
0121   {
0122   public:
0123     P02qedps();
0124     double Regular(double const& x) const;
0125   };
0126 
0127   /**
0128    * @brief Space-like O(&alpha;<SUP>2</SUP>) quark-photon unpolarised
0129    * splitting function.
0130    */
0131   class P02qedqgm: public Expression
0132   {
0133   public:
0134     P02qedqgm();
0135     double Regular(double const& x) const;
0136   };
0137 
0138   /**
0139    * @brief Space-like O(&alpha;<SUP>2</SUP>) photon-quark unpolarised
0140    * splitting function.
0141    */
0142   class P02qedgmq: public Expression
0143   {
0144   public:
0145     P02qedgmq(double const& crat2);
0146     double Regular(double const& x) const;
0147   private:
0148     int const _crat2;
0149   };
0150 
0151   /**
0152    * @brief Space-like O(&alpha;<SUP>2</SUP>) photon-photon unpolarised
0153    * splitting function.
0154    */
0155   class P02qedgmgm: public Expression
0156   {
0157   public:
0158     P02qedgmgm();
0159     double Regular(double const& x) const;
0160     double Local(double const& x)   const;
0161   };
0162 
0163   /**
0164    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) non-singlet-plus
0165    * unpolarised splitting function.
0166    */
0167   class P11qednsp: public Expression
0168   {
0169   public:
0170     P11qednsp();
0171     double Regular(double const& x) const;
0172     double Local(double const& x)   const;
0173   };
0174 
0175   /**
0176    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) non-singlet-minus
0177    * unpolarised splitting function.
0178    */
0179   class P11qednsm: public Expression
0180   {
0181   public:
0182     P11qednsm();
0183     double Regular(double const& x) const;
0184     double Local(double const& x)   const;
0185   };
0186 
0187   /**
0188    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) parton-gluon
0189    * unpolarised splitting function.
0190    */
0191   class P11qedqg: public Expression
0192   {
0193   public:
0194     P11qedqg();
0195     double Regular(double const& x) const;
0196   };
0197 
0198   /**
0199    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) parton-photon
0200    * unpolarised splitting function.
0201    */
0202   class P11qedqgm: public Expression
0203   {
0204   public:
0205     P11qedqgm();
0206     double Regular(double const& x) const;
0207   };
0208 
0209   /**
0210    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) gluon-parton
0211    * unpolarised splitting function.
0212    */
0213   class P11qedgq: public Expression
0214   {
0215   public:
0216     P11qedgq();
0217     double Regular(double const& x) const;
0218   };
0219 
0220   /**
0221    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) photon-parton
0222    * unpolarised splitting function (equal to gluon-parton).
0223    */
0224   class P11qedgmq: public P11qedgq
0225   {
0226   public:
0227     P11qedgmq();
0228   };
0229 
0230   /**
0231    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) gluon-gluon
0232    * unpolarised splitting function.
0233    */
0234   class P11qedgg: public Expression
0235   {
0236   public:
0237     P11qedgg();
0238     double Local(double const& x) const;
0239   };
0240 
0241   /**
0242    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) gluon-photon
0243    * unpolarised splitting function.
0244    */
0245   class P11qedggm: public Expression
0246   {
0247   public:
0248     P11qedggm();
0249     double Regular(double const& x) const;
0250   };
0251 
0252   /**
0253    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) photon-gluon
0254    * unpolarised splitting function.
0255    */
0256   class P11qedgmg: public Expression
0257   {
0258   public:
0259     P11qedgmg();
0260     double Regular(double const& x) const;
0261   };
0262 
0263   /**
0264    * @brief Space-like O(&alpha;<SUB>s</SUB>&alpha;) photon-photon
0265    * unpolarised splitting function.
0266    */
0267   class P11qedgmgm: public Expression
0268   {
0269   public:
0270     P11qedgmgm();
0271     double Local(double const& x) const;
0272   };
0273 
0274   /**
0275    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>&alpha;)
0276    * non-singlet-plus unpolarised splitting function.
0277    */
0278   class P21qednsp: public Expression
0279   {
0280   public:
0281     P21qednsp(int const& nf);
0282     double Regular(double const& x) const;
0283   private:
0284     int const _nf;
0285   };
0286 
0287   /**
0288    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>&alpha;)
0289    * pure-singlet unpolarised splitting function.
0290    */
0291   class P21qedps: public Expression
0292   {
0293   public:
0294     P21qedps();
0295     double Regular(double const& x) const;
0296   };
0297 
0298   /**
0299    * @brief Space-like O(&alpha;<SUB>s</SUB><SUP>2</SUP>&alpha;)
0300    * gluon-photon unpolarised splitting function.
0301    */
0302   class P21qedggm: public Expression
0303   {
0304   public:
0305     P21qedggm(int const& nf);
0306     double Regular(double const& x) const;
0307   private:
0308     int const _nf;
0309   };
0310 
0311   /**
0312    * @brief Scheme-change term from MSbar to DISgamma
0313    * O(&alpha;<SUB>s</SUB>&alpha;) for the quark-photon non-singlet
0314    * channel.
0315    */
0316   class DeltaP11qednsp: public Expression
0317   {
0318   public:
0319     DeltaP11qednsp();
0320     double Regular(double const& x) const;
0321   };
0322 
0323   /**
0324    * @brief Scheme-change term from MSbar to DISgamma
0325    * O(&alpha;<SUB>s</SUB>&alpha;) for the gluon-photon channel.
0326    */
0327   class DeltaP11qedggm: public Expression
0328   {
0329   public:
0330     DeltaP11qedggm();
0331     double Regular(double const& x) const;
0332   };
0333 
0334   /**
0335    * @brief Scheme-change term from MSbar to DISgamma
0336    * O(&alpha;<SUB>s</SUB><SUP>2</SUP>&alpha;) for the quark-photon
0337    * non-singlet channel.
0338    */
0339   class DeltaP21qednsp: public Expression
0340   {
0341   public:
0342     DeltaP21qednsp(int const& nf);
0343     double Regular(double const& x) const;
0344     double Local(double const& x)   const;
0345   private:
0346     int const _nf;
0347   };
0348 
0349   /**
0350    * @brief Scheme-change term from MSbar to DISgamma
0351    * O(&alpha;<SUB>s</SUB><SUP>2</SUP>&alpha;) for the quark-photon
0352    * pure-singlet channel.
0353    */
0354   class DeltaP21qedps: public Expression
0355   {
0356   public:
0357     DeltaP21qedps();
0358     double Regular(double const& x) const;
0359   };
0360 
0361   /**
0362    * @brief Scheme-change term from MSbar to DISgamma
0363    * O(&alpha;<SUB>s</SUB><SUP>2</SUP>&alpha;) for the gluon-photon channel.
0364    */
0365   class DeltaP21qedggm: public Expression
0366   {
0367   public:
0368     DeltaP21qedggm(int const& nf);
0369     double Regular(double const& x) const;
0370   private:
0371     int const _nf;
0372   };
0373   ///@}
0374 }