herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
HiggsLoopFunctions.h
1#include "ThePEG/Config/Constants.h"
2
3namespace Herwig {
4using namespace ThePEG;
5
6
13 namespace HiggsLoopFunctions {
14
18 const Complex epsi = Complex(0.,-1.e-20);
19
25 Complex W1(Energy2 s,Energy2 mf2) {
26 double root = sqrt(abs(1.-4.*mf2/s));
27 if(s<ZERO) return 2.*root*asinh(0.5*sqrt(-s/mf2));
28 else if(s<4.*mf2) return 2.*root*asin(0.5*sqrt( s/mf2));
29 else return root*(2.*acosh(0.5*sqrt(s/mf2))
30 -Constants::pi*Complex(0.,1.));
31 }
32
38 Complex W2(Energy2 s,Energy2 mf2) {
39 double root=0.5*sqrt(abs(s)/mf2);
40 if(s<ZERO) return 4.*sqr(asinh(root));
41 else if(s<4.*mf2) return -4.*sqr(asin(root));
42 else return 4.*sqr(acosh(root))-sqr(Constants::pi)
43 -4.*Constants::pi*acosh(root)*Complex(0.,1.);
44 }
45
54 Complex I3(Energy2 s, Energy2 t, Energy2 u, Energy2 v, Energy2 mf2) {
55 double ratio=(4.*mf2*t/(u*s)),root(sqrt(1+ratio));
56 if(v==ZERO) return 0.;
57 Complex y=0.5*(1.+sqrt(1.-4.*(mf2+epsi*MeV*MeV)/v));
58 Complex xp=0.5*(1.+root),xm=0.5*(1.-root);
59 Complex output =
60 Math::Li2(xm/(xm-y))-Math::Li2(xp/(xp-y))+
61 Math::Li2(xm/(y-xp))-Math::Li2(xp/(y-xm))+
62 log(-xm/xp)*log(1.-epsi-v/mf2*xp*xm);
63 return output*2./root;
64 }
65
74 Complex W3(Energy2 s, Energy2 t, Energy2 u, Energy2 v, Energy2 mf2) {
75 return I3(s,t,u,v,mf2)-I3(s,t,u,s,mf2)-I3(s,t,u,u,mf2);
76 }
77
85 Complex b2(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) {
86 Energy2 mh2(s+u+t);
87 complex<Energy2> output=s*(u-s)/(s+u)+2.*u*t*(u+2.*s)/sqr(s+u)*(W1(t,mf2)-W1(mh2,mf2))
88 +(mf2-0.25*s)*(0.5*(W2(s,mf2)+W2(mh2,mf2))-W2(t,mf2)+W3(s,t,u,mh2,mf2))
89 +sqr(s)*(2.*mf2/sqr(s+u)-0.5/(s+u))*(W2(t,mf2)-W2(mh2,mf2))
90 +0.5*u*t/s*(W2(mh2,mf2)-2.*W2(t,mf2))
91 +0.125*(s-12.*mf2-4.*u*t/s)*W3(t,s,u,mh2,mf2);
92 return output*mf2/sqr(mh2);
93 }
94
102 Complex b4(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) {
103 Energy2 mh2(s+t+u);
104 return mf2/mh2*(-2./3.+(mf2/mh2-0.25)*(W2(t,mf2)-W2(mh2,mf2)+W3(s,t,u,mh2,mf2)));
105 }
106
112 Complex A1(Energy2 mh2, Energy2 mf2) {
113 return mf2/mh2*(4.-W2(mh2,mf2)*(1.-4.*mf2/mh2));
114 }
115
123 Complex A2(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) {
124 return b2(s,t,u,mf2)+b2(s,u,t,mf2);
125 }
126
134 Complex A4(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) {
135 return b4(s,t,u,mf2)+b4(u,s,t,mf2)+b4(t,u,s,mf2);
136 }
137 }
138}
Complex W3(Energy2 s, Energy2 t, Energy2 u, Energy2 v, Energy2 mf2)
The function of NPB297 (1988) 221-243.
Complex A4(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2)
The function of NPB297 (1988) 221-243.
Complex W1(Energy2 s, Energy2 mf2)
The function of NPB297 (1988) 221-243.
Complex b2(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2)
The function of NPB297 (1988) 221-243.
Complex W2(Energy2 s, Energy2 mf2)
The function of NPB297 (1988) 221-243.
Complex I3(Energy2 s, Energy2 t, Energy2 u, Energy2 v, Energy2 mf2)
The function of NPB297 (1988) 221-243.
Complex b4(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2)
The function of NPB297 (1988) 221-243.
const Complex epsi
Epsilon parameter.
Complex Li2(Complex)
The dilog function taken from FORTRAN Herwig.
-*- C++ -*-
constexpr double pi
double sqrt(int x)
std::complex< double > Complex
constexpr ZeroUnit ZERO
constexpr auto sqr(const T &x) -> decltype(x *x)