Back to home page

EIC code displayed by LXR

 
 

    


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

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   /// @cond UNNECESSARY
0014   /**
0015    * @name Fortran N<SUP>3</SUP>LO unpolarised space-like matching conditions
0016    * Wrapper to the fortran implementation of the O(&alpha;<SUB>s</SUB><SUP>2</SUP>)
0017    * matching conditions contained in 'src/evolution/evolution/matchingconditions_sl_n3lo.f'.
0018    * The relavent papers are:
0019    * - J. Ablinger, A. Behring, J. Blümlein, A. De Freitas, A. von Manteuffel, C. Schneider, and K. Schönwald,
0020    *   "The Variable Flavor Number Scheme at  Next-to-Next-to-Leading Order, DESY 24-037,
0021    * including results from arXiv:2207.00027, arXiv:2403.00513.
0022    */
0023   ///@{
0024   extern"C"
0025   {
0026     double ps_(double *z, double *nf, double *as, double *LL);
0027     double aps1_(double *z, double *nf, double *as, double *LL);
0028     double aps2_(double *z, double *nf, double *as, double *LL);
0029     double qg_(double *z, double *nf, double *as, double *LL);
0030     double aqg3_(double *z);
0031     double aqg3nf_(double *z);
0032     double nsreg_(double *z, double *nf, double *as, double *LL);
0033     double nsplu_(double *z, double *nf, double *as, double *LL);
0034     double nsdel_(double *z, double *nf, double *as, double *LL);
0035     double ansreg_(double *z, double *nf, double *as, double *LL);
0036     double ansplu1_(double *z, double *nf, double *as, double *LL);
0037     double ansplu2_(double *z, double *nf, double *as, double *LL);
0038     double ansdel_(double *z, double *nf, double *as, double *LL);
0039     double red0_(double *z);
0040     double red1_(double *z);
0041     double gq_(double *z, double *nf, double *as, double *LL);
0042     double agq_(double *z, double *nf, double *as, double *LL);
0043     double ggreg_(double *z, double *nf, double *as, double *LL);
0044     double ggplu_(double *z, double *nf, double *as, double *LL);
0045     double ggdel_(double *z, double *nf, double *as, double *LL);
0046     double aggreg0_(double *z, double *nf, double *as, double *LL);
0047     double aggreg1_(double *z, double *nf, double *as, double *LL);
0048     double aggplu_(double *z, double *nf, double *as, double *LL);
0049     double aggdel_(double *z, double *nf, double *as, double *LL);
0050     double qgl_(double *z, double *nf, double *as, double *LL);
0051     double psl_(double *z, double *nf, double *as, double *LL);
0052     double oreg_(double *as, double *LL, double *nf, double *z);
0053     double oplus1_(double *as, double *LL, double *nf, double *z);
0054     double oplus2_(double *as, double *LL, double *nf, double *z);
0055     double odel_(double *as, double *LL, double *nf);
0056   }
0057   ///@}
0058   /// \endcond
0059 
0060   /**
0061    * @defgroup MatchCond Space-like matching conditions
0062    * @note The expressions are taken from:
0063    * https://arxiv.org/pdf/hep-ph/9612398.pdf. Note that in these
0064    * expressions ln(m<SUP>2</SUP>/&mu;<SUP>2</SUP>) appears while we
0065    * need ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>), so we need to include a
0066    * minus sign in front of every term linear in this log.
0067    */
0068   ///@{
0069   /**
0070    * @defgroup NLOMC NLO unpolarised matching conditions
0071    * @ingroup MatchCond
0072    */
0073   ///@{
0074   /**
0075    * @brief O(&alpha;<SUB>s</SUB>) term propotional to
0076    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.2) of
0077    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0078    */
0079   class AS1Hg_L: public Expression
0080   {
0081   public:
0082     AS1Hg_L();
0083     double Regular(double const& x) const;
0084   };
0085 
0086   /**
0087    * @brief O(&alpha;<SUB>s</SUB>) term propotional to
0088    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.6) of
0089    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0090    */
0091   class AS1ggH_L: public Expression
0092   {
0093   public:
0094     AS1ggH_L();
0095     double Local(double const&) const;
0096   };
0097 
0098   /**
0099    * @brief O(&alpha;<SUB>s</SUB>) term propotional to
0100    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) for the HH matching. This is the QCD adaptation of
0101    * Eq. (4.121) of https://arxiv.org/pdf/1909.03886.pdf.
0102    */
0103   class AS1HH_L: public Expression
0104   {
0105   public:
0106     AS1HH_L();
0107     double Singular(double const& x) const;
0108     double Local(double const& x)    const;
0109   };
0110 
0111   /**
0112    * @brief O(&alpha;<SUB>s</SUB>) constant term for the HH
0113    * matching. This is the QCD adaptation of Eq. (4.121) of
0114    * https://arxiv.org/pdf/1909.03886.pdf.
0115    */
0116   class AS1HH_0: public Expression
0117   {
0118   public:
0119     AS1HH_0();
0120     double Singular(double const& x) const;
0121     double Local(double const& x)    const;
0122   };
0123 
0124   /**
0125    * @brief O(&alpha;<SUB>s</SUB>) term propotional to
0126    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) for the gH matching. This is
0127    * the QCD adaptation of Eq. (4.189) of
0128    * https://arxiv.org/pdf/1909.03886.pdf.
0129    */
0130   class AS1gH_L: public Expression
0131   {
0132   public:
0133     AS1gH_L();
0134     double Regular(double const& x) const;
0135   };
0136 
0137   /**
0138    * @brief O(&alpha;<SUB>s</SUB>) constant term for the gH
0139    * matching. This is the QCD adaptation of Eq. (4.189) of
0140    * https://arxiv.org/pdf/1909.03886.pdf.
0141    */
0142   class AS1gH_0: public Expression
0143   {
0144   public:
0145     AS1gH_0();
0146     double Regular(double const& x) const;
0147   };
0148   ///@}
0149 
0150   /**
0151    * @defgroup NNLOMC NNLO unpolarised matching conditions
0152    * @ingroup MatchCond
0153    */
0154   ///@{
0155   /**
0156    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term of Eq
0157    * (B.1) of https://arxiv.org/pdf/hep-ph/9612398.pdf.
0158    */
0159   class APS2Hq_0: public Expression
0160   {
0161   public:
0162     APS2Hq_0();
0163     double Regular(double const& x) const;
0164   };
0165 
0166   /**
0167    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0168    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.1) of
0169    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0170    */
0171   class APS2Hq_L: public Expression
0172   {
0173   public:
0174     APS2Hq_L();
0175     double Regular(double const& x) const;
0176   };
0177 
0178   /**
0179    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0180    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.1) of
0181    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0182    */
0183   class APS2Hq_L2: public Expression
0184   {
0185   public:
0186     APS2Hq_L2();
0187     double Regular(double const& x) const;
0188   };
0189 
0190   /**
0191    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term of Eq
0192    * (B.3) of https://arxiv.org/pdf/hep-ph/9612398.pdf.
0193    */
0194   class AS2Hg_0: public Expression
0195   {
0196   public:
0197     AS2Hg_0();
0198     double Regular(double const& x) const;
0199   };
0200 
0201   /**
0202    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term of Eq.
0203    * (B.3) of https://arxiv.org/pdf/hep-ph/9612398.pdf which includes
0204    * the correction to account for MSbar masses (see Eq. (2.31) of
0205    * https://arxiv.org/pdf/1605.01946).
0206    */
0207   class AS2Hg_MSbarMass_0: public Expression
0208   {
0209   public:
0210     AS2Hg_MSbarMass_0();
0211     double Regular(double const& x) const;
0212   private:
0213     double  const _h1;
0214     AS2Hg_0 const _AS2Hg_0;
0215   };
0216 
0217   /**
0218    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0219    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.3) of
0220    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0221    */
0222   class AS2Hg_L: public Expression
0223   {
0224   public:
0225     AS2Hg_L();
0226     double Regular(double const& x) const;
0227   };
0228 
0229   /**
0230    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0231    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.3) of
0232    * https://arxiv.org/pdf/hep-ph/9612398.pdf which includes the
0233    * correction to account for MSbar masses (see Eq. (2.31) of
0234    * https://arxiv.org/pdf/1605.01946).
0235    */
0236   class AS2Hg_MSbarMass_L: public Expression
0237   {
0238   public:
0239     AS2Hg_MSbarMass_L();
0240     double Regular(double const& x) const;
0241   private:
0242     double  const _h1;
0243     AS2Hg_L const _AS2Hg_L;
0244   };
0245 
0246   /**
0247    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0248    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.3) of
0249    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0250    */
0251   class AS2Hg_L2: public Expression
0252   {
0253   public:
0254     AS2Hg_L2();
0255     double Regular(double const& x) const;
0256   };
0257 
0258   /**
0259    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term of Eq
0260    * (B.4) of https://arxiv.org/pdf/hep-ph/9612398.pdf.
0261    */
0262   class ANS2qqH_0: public Expression
0263   {
0264   public:
0265     ANS2qqH_0();
0266     double Regular(double const& x)  const;
0267     double Singular(double const& x) const;
0268     double Local(double const& x)    const;
0269   };
0270 
0271   /**
0272    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0273    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.4) of
0274    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0275    */
0276   class ANS2qqH_L: public Expression
0277   {
0278   public:
0279     ANS2qqH_L();
0280     double Regular(double const& x)  const;
0281     double Singular(double const& x) const;
0282     double Local(double const& x)    const;
0283   };
0284 
0285   /**
0286    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0287    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.4) of
0288    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0289    */
0290   class ANS2qqH_L2: public Expression
0291   {
0292   public:
0293     ANS2qqH_L2();
0294     double Regular(double const& x)  const;
0295     double Singular(double const& x) const;
0296     double Local(double const& x)    const;
0297   };
0298 
0299   /**
0300    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term of Eq
0301    * (B.5) of https://arxiv.org/pdf/hep-ph/9612398.pdf.
0302    */
0303   class AS2gqH_0: public Expression
0304   {
0305   public:
0306     AS2gqH_0();
0307     double Regular(double const& x) const;
0308   };
0309 
0310   /**
0311    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0312    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.5) of
0313    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0314    */
0315   class AS2gqH_L: public Expression
0316   {
0317   public:
0318     AS2gqH_L();
0319     double Regular(double const& x) const;
0320   };
0321 
0322   /**
0323    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0324    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.5) of
0325    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0326    */
0327   class AS2gqH_L2: public Expression
0328   {
0329   public:
0330     AS2gqH_L2();
0331     double Regular(double const& x) const;
0332   };
0333 
0334   /**
0335    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term of Eq
0336    * (B.7) of https://arxiv.org/pdf/hep-ph/9612398.pdf.
0337    */
0338   class AS2ggH_0: public Expression
0339   {
0340   public:
0341     AS2ggH_0();
0342     double Regular(double const& x)  const;
0343     double Singular(double const& x) const;
0344     double Local(double const& x)    const;
0345   };
0346 
0347   /**
0348    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term of Eq
0349    * (B.7) of https://arxiv.org/pdf/hep-ph/9612398.pdf which includes
0350    * the correction to account for MSbar masses (see Eq. (2.31) of
0351    * https://arxiv.org/pdf/1605.01946).
0352    */
0353   class AS2ggH_MSbarMass_0: public Expression
0354   {
0355   public:
0356     AS2ggH_MSbarMass_0();
0357     double Regular(double const& x)  const;
0358     double Singular(double const& x) const;
0359     double Local(double const& x)    const;
0360   private:
0361     double   const _h1;
0362     AS2ggH_0 const _AS2ggH_0;
0363   };
0364 
0365   /**
0366    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0367    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.7) of
0368    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0369    */
0370   class AS2ggH_L: public Expression
0371   {
0372   public:
0373     AS2ggH_L();
0374     double Regular(double const& x)  const;
0375     double Singular(double const& x) const;
0376     double Local(double const& x)    const;
0377   };
0378 
0379   /**
0380    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0381    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.7) of
0382    * https://arxiv.org/pdf/hep-ph/9612398.pdf which includes the
0383    * correction to account for MSbar masses (see Eq. (2.31) of
0384    * https://arxiv.org/pdf/1605.01946).
0385    */
0386   class AS2ggH_MSbarMass_L: public Expression
0387   {
0388   public:
0389     AS2ggH_MSbarMass_L();
0390     double Regular(double const& x)  const;
0391     double Singular(double const& x) const;
0392     double Local(double const& x)    const;
0393   private:
0394     double   const _h1;
0395     AS2ggH_L const _AS2ggH_L;
0396   };
0397 
0398   /**
0399    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0400    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) of Eq. (B.7) of
0401    * https://arxiv.org/pdf/hep-ph/9612398.pdf.
0402    */
0403   class AS2ggH_L2: public Expression
0404   {
0405   public:
0406     AS2ggH_L2();
0407     double Regular(double const& x)  const;
0408     double Singular(double const& x) const;
0409     double Local(double const& x)    const;
0410   };
0411   ///@}
0412 
0413   /**
0414    * @defgroup NNNLOMC NNNLO unpolarised matching conditions
0415    * @note Reference:
0416    *   J. Ablinger, A. Behring, J. Blümlein, A. De Freitas, A. von Manteuffel, C. Schneider, and K. Schönwald,
0417    *   "The Variable Flavor Number Scheme at  Next-to-Next-to-Leading Order, DESY 24-037,.
0418    * @ingroup MatchCond
0419    */
0420   ///@{
0421   /**
0422    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term.
0423    */
0424   class APS3Hq_0: public Expression
0425   {
0426   public:
0427     APS3Hq_0(int const& nf);
0428     double Regular(double const& x) const;
0429   private:
0430     int const _nf;
0431   };
0432 
0433   /**
0434    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term.
0435    */
0436   class AS3Hg_0: public Expression
0437   {
0438   public:
0439     AS3Hg_0(int const& nf);
0440     double Regular(double const& x) const;
0441   private:
0442     int const _nf;
0443   };
0444 
0445   /**
0446    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term.
0447    */
0448   class ANS3qqH_0: public Expression
0449   {
0450   public:
0451     ANS3qqH_0(int const& nf);
0452     double Regular(double const& x)  const;
0453     double Singular(double const& x) const;
0454     double Local(double const& x)    const;
0455   private:
0456     int const _nf;
0457   };
0458 
0459   /**
0460    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term.
0461    */
0462   class ANS3qqHm_0: public Expression
0463   {
0464   public:
0465     ANS3qqHm_0(int const& nf);
0466     double Regular(double const& x)  const;
0467     double Singular(double const& x) const;
0468     double Local(double const& x)    const;
0469   private:
0470     int const _nf;
0471   };
0472 
0473   /**
0474    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term.
0475    */
0476   class AS3gqH_0: public Expression
0477   {
0478   public:
0479     AS3gqH_0(int const& nf);
0480     double Regular(double const& x) const;
0481   private:
0482     int const _nf;
0483   };
0484 
0485   /**
0486    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term.
0487    */
0488   class AS3ggH_0: public Expression
0489   {
0490   public:
0491     AS3ggH_0(int const& nf);
0492     double Regular(double const& x)  const;
0493     double Singular(double const& x) const;
0494     double Local(double const& x)    const;
0495   private:
0496     int const _nf;
0497   };
0498 
0499   /**
0500    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term.
0501    */
0502   class AS3qgQ_0: public Expression
0503   {
0504   public:
0505     AS3qgQ_0(int const& nf);
0506     double Regular(double const& x)  const;
0507   private:
0508     int const _nf;
0509   };
0510 
0511   /**
0512    * @brief O(&alpha;<SUB>s</SUB><SUP>3</SUP>) constant term.
0513    */
0514   class APS3qqQ_0: public Expression
0515   {
0516   public:
0517     APS3qqQ_0(int const& nf);
0518     double Regular(double const& x)  const;
0519   private:
0520     int const _nf;
0521   };
0522   ///@}
0523 
0524   /**
0525    * @defgroup NLOMCpol NLO longitudinally polarised matching conditions
0526    * @ingroup MatchCond
0527    */
0528   ///@{
0529   /**
0530    * @brief O(&alpha;<SUB>s</SUB>) term propotional to
0531    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0532    */
0533   class AS1polHg_L: public Expression
0534   {
0535   public:
0536     AS1polHg_L();
0537     double Regular(double const& x) const;
0538   };
0539 
0540   /**
0541    * @brief O(&alpha;<SUB>s</SUB>) term propotional to
0542    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0543    */
0544   class AS1polggH_L: public Expression
0545   {
0546   public:
0547     AS1polggH_L();
0548     double Local(double const&) const;
0549   };
0550 
0551   /**
0552    * @brief O(&alpha;<SUB>s</SUB>) term propotional to
0553    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) for the HH matching.
0554    */
0555   class AS1polHH_L: public Expression
0556   {
0557   public:
0558     AS1polHH_L();
0559     double Singular(double const& x) const;
0560     double Local(double const& x)    const;
0561   };
0562 
0563   /**
0564    * @brief O(&alpha;<SUB>s</SUB>) constant term for the HH
0565    * matching.
0566    */
0567   class AS1polHH_0: public Expression
0568   {
0569   public:
0570     AS1polHH_0();
0571     double Singular(double const& x) const;
0572     double Local(double const& x)    const;
0573   };
0574 
0575   /**
0576    * @brief O(&alpha;<SUB>s</SUB>) term propotional to
0577    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) for the gH matching.
0578    */
0579   class AS1polgH_L: public Expression
0580   {
0581   public:
0582     AS1polgH_L();
0583     double Regular(double const& x) const;
0584   };
0585 
0586   /**
0587    * @brief O(&alpha;<SUB>s</SUB>) constant term for the gH
0588    * matching.
0589    */
0590   class AS1polgH_0: public Expression
0591   {
0592   public:
0593     AS1polgH_0();
0594     double Regular(double const& x) const;
0595   };
0596   ///@}
0597 
0598   /**
0599    * @defgroup NNLOMCpol NNLO longitudinally polarised matching conditions
0600    * @ingroup MatchCond
0601    */
0602   ///@{
0603   /**
0604    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term.
0605    */
0606   class APS2polHq_0: public Expression
0607   {
0608   public:
0609     APS2polHq_0();
0610     double Regular(double const& x) const;
0611   };
0612 
0613   /**
0614    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0615    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0616    */
0617   class APS2polHq_L: public Expression
0618   {
0619   public:
0620     APS2polHq_L();
0621     double Regular(double const& x) const;
0622   };
0623 
0624   /**
0625    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0626    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0627    */
0628   class APS2polHq_L2: public Expression
0629   {
0630   public:
0631     APS2polHq_L2();
0632     double Regular(double const& x) const;
0633   };
0634 
0635   /**
0636    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term.
0637    */
0638   class AS2polHg_0: public Expression
0639   {
0640   public:
0641     AS2polHg_0();
0642     double Regular(double const& x) const;
0643   };
0644 
0645   /**
0646    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0647    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0648    */
0649   class AS2polHg_L: public Expression
0650   {
0651   public:
0652     AS2polHg_L();
0653     double Regular(double const& x) const;
0654   };
0655 
0656   /**
0657    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0658    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0659    */
0660   class AS2polHg_L2: public Expression
0661   {
0662   public:
0663     AS2polHg_L2();
0664     double Regular(double const& x) const;
0665   };
0666 
0667   /**
0668    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term.
0669    */
0670   class ANS2polqqH_0: public Expression
0671   {
0672   public:
0673     ANS2polqqH_0();
0674     double Regular(double const& x)  const;
0675     double Singular(double const& x) const;
0676     double Local(double const& x)    const;
0677   };
0678 
0679   /**
0680    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0681    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0682    */
0683   class ANS2polqqH_L: public Expression
0684   {
0685   public:
0686     ANS2polqqH_L();
0687     double Regular(double const& x)  const;
0688     double Singular(double const& x) const;
0689     double Local(double const& x)    const;
0690   };
0691 
0692   /**
0693    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0694    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0695    */
0696   class ANS2polqqH_L2: public Expression
0697   {
0698   public:
0699     ANS2polqqH_L2();
0700     double Regular(double const& x)  const;
0701     double Singular(double const& x) const;
0702     double Local(double const& x)    const;
0703   };
0704 
0705   /**
0706    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term.
0707    */
0708   class AS2polgqH_0: public Expression
0709   {
0710   public:
0711     AS2polgqH_0();
0712     double Regular(double const& x) const;
0713   };
0714 
0715   /**
0716    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0717    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0718    */
0719   class AS2polgqH_L: public Expression
0720   {
0721   public:
0722     AS2polgqH_L();
0723     double Regular(double const& x) const;
0724   };
0725 
0726   /**
0727    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0728    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0729    */
0730   class AS2polgqH_L2: public Expression
0731   {
0732   public:
0733     AS2polgqH_L2();
0734     double Regular(double const& x) const;
0735   };
0736 
0737   /**
0738    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) constant term.
0739    */
0740   class AS2polggH_0: public Expression
0741   {
0742   public:
0743     AS2polggH_0();
0744     double Regular(double const& x)  const;
0745     double Singular(double const& x) const;
0746     double Local(double const& x)    const;
0747   };
0748 
0749   /**
0750    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0751    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0752    */
0753   class AS2polggH_L: public Expression
0754   {
0755   public:
0756     AS2polggH_L();
0757     double Regular(double const& x)  const;
0758     double Singular(double const& x) const;
0759     double Local(double const& x)    const;
0760   };
0761 
0762   /**
0763    * @brief O(&alpha;<SUB>s</SUB><SUP>2</SUP>) term propotional to
0764    * ln<SUP>2</SUP>(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0765    */
0766   class AS2polggH_L2: public Expression
0767   {
0768   public:
0769     AS2polggH_L2();
0770     double Regular(double const& x)  const;
0771     double Singular(double const& x) const;
0772     double Local(double const& x)    const;
0773   };
0774   ///@}
0775 
0776   /**
0777    * @defgroup NLOMCQED NLO unpolarised matching conditions for QCDxQED
0778    * @ingroup MatchCond
0779    */
0780   ///@{
0781   /**
0782    * @brief O(&alpha;) term propotional to
0783    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0784    */
0785   class AS1qedHgm_L: public Expression
0786   {
0787   public:
0788     AS1qedHgm_L();
0789     double Regular(double const& x) const;
0790   };
0791 
0792   /**
0793    * @brief O(&alpha;) term propotional to
0794    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>).
0795    */
0796   class AS1qedgmgmH_L: public Expression
0797   {
0798   public:
0799     AS1qedgmgmH_L();
0800     double Local(double const&) const;
0801   };
0802 
0803   /**
0804    * @brief O(&alpha;) term propotional to
0805    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) for the HH matching.
0806    */
0807   class AS1qedHH_L: public Expression
0808   {
0809   public:
0810     AS1qedHH_L();
0811     double Singular(double const& x) const;
0812     double Local(double const& x)    const;
0813   };
0814 
0815   /**
0816    * @brief O(&alpha;) constant term for the HH matching.
0817    */
0818   class AS1qedHH_0: public Expression
0819   {
0820   public:
0821     AS1qedHH_0();
0822     double Singular(double const& x) const;
0823     double Local(double const& x)    const;
0824   };
0825 
0826   /**
0827    * @brief O(&alpha;) term propotional to
0828    * ln(&mu;<SUP>2</SUP>/m<SUP>2</SUP>) for the gmH matching.
0829    */
0830   class AS1qedgmH_L: public Expression
0831   {
0832   public:
0833     AS1qedgmH_L();
0834     double Regular(double const& x) const;
0835   };
0836 
0837   /**
0838    * @brief O(&alpha;) constant term for the gmH matching.
0839    */
0840   class AS1qedgmH_0: public Expression
0841   {
0842   public:
0843     AS1qedgmH_0();
0844     double Regular(double const& x) const;
0845   };
0846   ///@}
0847   ///@}
0848 }