File indexing completed on 2026-08-06 09:24:28
0001 #include "ThePEG/Config/Constants.h"
0002
0003 namespace Herwig {
0004 using namespace ThePEG;
0005
0006
0007
0008
0009
0010
0011
0012
0013 namespace HiggsLoopFunctions {
0014
0015
0016
0017
0018 const Complex epsi = Complex(0.,-1.e-20);
0019
0020
0021
0022
0023
0024
0025 Complex W1(Energy2 s,Energy2 mf2) {
0026 double root = sqrt(abs(1.-4.*mf2/s));
0027 if(s<ZERO) return 2.*root*asinh(0.5*sqrt(-s/mf2));
0028 else if(s<4.*mf2) return 2.*root*asin(0.5*sqrt( s/mf2));
0029 else return root*(2.*acosh(0.5*sqrt(s/mf2))
0030 -Constants::pi*Complex(0.,1.));
0031 }
0032
0033
0034
0035
0036
0037
0038 Complex W2(Energy2 s,Energy2 mf2) {
0039 double root=0.5*sqrt(abs(s)/mf2);
0040 if(s<ZERO) return 4.*sqr(asinh(root));
0041 else if(s<4.*mf2) return -4.*sqr(asin(root));
0042 else return 4.*sqr(acosh(root))-sqr(Constants::pi)
0043 -4.*Constants::pi*acosh(root)*Complex(0.,1.);
0044 }
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054 Complex I3(Energy2 s, Energy2 t, Energy2 u, Energy2 v, Energy2 mf2) {
0055 double ratio=(4.*mf2*t/(u*s)),root(sqrt(1+ratio));
0056 if(v==ZERO) return 0.;
0057 Complex y=0.5*(1.+sqrt(1.-4.*(mf2+epsi*MeV*MeV)/v));
0058 Complex xp=0.5*(1.+root),xm=0.5*(1.-root);
0059 Complex output =
0060 Math::Li2(xm/(xm-y))-Math::Li2(xp/(xp-y))+
0061 Math::Li2(xm/(y-xp))-Math::Li2(xp/(y-xm))+
0062 log(-xm/xp)*log(1.-epsi-v/mf2*xp*xm);
0063 return output*2./root;
0064 }
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074 Complex W3(Energy2 s, Energy2 t, Energy2 u, Energy2 v, Energy2 mf2) {
0075 return I3(s,t,u,v,mf2)-I3(s,t,u,s,mf2)-I3(s,t,u,u,mf2);
0076 }
0077
0078
0079
0080
0081
0082
0083
0084
0085 Complex b2(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) {
0086 Energy2 mh2(s+u+t);
0087 complex<Energy2> output=s*(u-s)/(s+u)+2.*u*t*(u+2.*s)/sqr(s+u)*(W1(t,mf2)-W1(mh2,mf2))
0088 +(mf2-0.25*s)*(0.5*(W2(s,mf2)+W2(mh2,mf2))-W2(t,mf2)+W3(s,t,u,mh2,mf2))
0089 +sqr(s)*(2.*mf2/sqr(s+u)-0.5/(s+u))*(W2(t,mf2)-W2(mh2,mf2))
0090 +0.5*u*t/s*(W2(mh2,mf2)-2.*W2(t,mf2))
0091 +0.125*(s-12.*mf2-4.*u*t/s)*W3(t,s,u,mh2,mf2);
0092 return output*mf2/sqr(mh2);
0093 }
0094
0095
0096
0097
0098
0099
0100
0101
0102 Complex b4(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) {
0103 Energy2 mh2(s+t+u);
0104 return mf2/mh2*(-2./3.+(mf2/mh2-0.25)*(W2(t,mf2)-W2(mh2,mf2)+W3(s,t,u,mh2,mf2)));
0105 }
0106
0107
0108
0109
0110
0111
0112 Complex A1(Energy2 mh2, Energy2 mf2) {
0113 return mf2/mh2*(4.-W2(mh2,mf2)*(1.-4.*mf2/mh2));
0114 }
0115
0116
0117
0118
0119
0120
0121
0122
0123 Complex A2(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) {
0124 return b2(s,t,u,mf2)+b2(s,u,t,mf2);
0125 }
0126
0127
0128
0129
0130
0131
0132
0133
0134 Complex A4(Energy2 s, Energy2 t, Energy2 u, Energy2 mf2) {
0135 return b4(s,t,u,mf2)+b4(u,s,t,mf2)+b4(t,u,s,mf2);
0136 }
0137 }
0138 }