herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
AlphaS.h
1// -*- C++ -*-
2//
3// AlphaS.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4// Copyright (C) 2018-2019 The Herwig Collaboration
5//
6// Herwig is licenced under version 3 of the GPL, see COPYING for details.
7// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8//
9#ifndef HERWIG_UtilAlphaS_H
10#define HERWIG_UtilAlphaS_H
11
12namespace Herwig {
13
14namespace Math {
15
22inline double derivativeAlphaS(Energy q, Energy lam,
23 unsigned int nf, unsigned int nloop) {
24 using Constants::pi;
25 double lx = log(sqr(q/lam));
26 double b0 = 11. - 2./3.*nf;
27 double b1 = 51. - 19./3.*nf;
28 double b2 = 2857. - 5033./9.*nf + 325./27.*sqr(nf);
29 if(nloop==1)
30 return -4.*pi/(b0*sqr(lx));
31 else if(nloop==2)
32 return -4.*pi/(b0*sqr(lx))*(1.+2.*b1/sqr(b0)/lx*(1.-2.*log(lx)));
33 else
34 return -4.*pi/(b0*sqr(lx))*
35 (1. + 2.*b1/sqr(b0)/lx*(1.-2.*log(lx))
36 + 4.*sqr(b1)/(sqr(sqr(b0))*sqr(lx))*(1. - 2.*log(lx)
37 + 3.*(sqr(log(lx) - 0.5)+b2*b0/(8.*sqr(b1))-1.25)));
38}
39
46inline double alphaS(Energy q, Energy lam,
47 unsigned int nf, unsigned int nloop) {
48 using Constants::pi;
49 double lx(log(sqr(q/lam)));
50 double b0 = 11. - 2./3.*nf;
51 double b1 = 51. - 19./3.*nf;
52 double b2 = 2857. - 5033./9.*nf + 325./27.*sqr(nf);
53 // one loop
54 if(nloop==1)
55 {return 4.*pi/(b0*lx);}
56 // two loop
57 else if(nloop==2) {
58 return 4.*pi/(b0*lx)*(1.-2.*b1/sqr(b0)*log(lx)/lx);
59 }
60 // three loop
61 else
62 {return 4.*pi/(b0*lx)*(1.-2.*b1/sqr(b0)*log(lx)/lx +
63 4.*sqr(b1)/(sqr(sqr(b0))*sqr(lx))*
64 (sqr(log(lx) - 0.5) + b2*b0/(8.*sqr(b1)) - 5./4.));}
65}
66
67
68}
69
70}
71
72#endif
double alphaS(Energy q, Energy lam, unsigned int nf, unsigned int nloop)
The 1,2,3-loop parametrization of .
Definition: AlphaS.h:46
double derivativeAlphaS(Energy q, Energy lam, unsigned int nf, unsigned int nloop)
The derivative of with respect to .
Definition: AlphaS.h:22
-*- C++ -*-
constexpr double pi
constexpr auto sqr(const T &x) -> decltype(x *x)