[an error occurred while processing this directive]
Package-X is hosted by Hepforge, IPPP Durham
PACKAGE-X TUTORIAL

Linking Package-X to LoopTools

As of Sept 2017, the functionality to PackageX provided by LoopTools has been superceded by the CollierLink package.

This tutorial explains how to link Package-X to LoopTools v2.14 or later so that the Passarino-Veltman functions can be numerically evaluated. This tutorial assumes that you have the LoopTools MathLink executable on your machine (either by downloading the ready-made executable, or by compiling the source code).

Motivation

Consider the following integral:

In[1]:=
Click for copyable input
Out[1]=

By default, the Passarino-Veltman functions PVA, PVB, PVC and PVD generated by LoopIntegrate do not numerically evaluate in Package-X:

In[2]:=
Click for copyable input
Out[2]=

Instead, these symbols must be converted to analytic expressions by LoopRefine before a numerical evaluation can be made:

In[3]:=
Click for copyable input
Out[3]=
Out[4]=

For more complicated one-loop integrals (such as those for computing fully differential collision cross sections), analytic expressions generated by LoopRefine are usually too verbose to be useful. By defining PVA, PVB, PVC and PVD to call the corresponding LoopTools functions, we can numerically evaluate loop integrals without needing to generate an analytic expression first.

Linking to LoopTools

Initialize Package-X and LoopTools in the same session:

In[5]:=
Click for copyable input
In[6]:=
Click for copyable input
Out[6]=

Define PVA, PVB, PVC and PVD to call the appropriate LoopTools function for numerical arguments (it may be convenient for you to copy the following code block to your working notebook):

Unprotect[X`PVA,X`PVB,X`PVC,X`PVD];
SetDelayed[
X`PVA[Floor[StringCount[#,"0"]/2],m0_?NumericQ],LoopTools`A0i[Symbol[#],m02]
]& /@ Names["LoopTools`aa*"];

SetDelayed[
X`PVB[Floor[StringCount[#,"0"]/2],StringCount[#,"1"],p1_?NumericQ,m0_?NumericQ,m1_?NumericQ],LoopTools`B0i[Symbol[#],p1,m02,m12]
]& /@ Names["LoopTools`bb*"];

SetDelayed[
X`PVC[Floor[StringCount[#,"0"]/2],StringCount[#,"1"],StringCount[#,"2"],p1_?NumericQ,q_?NumericQ,p2_?NumericQ,m0_?NumericQ,m1_?NumericQ,m2_?NumericQ],LoopTools`C0i[Symbol[#],p1,q,p2,m02,m12,m22]
]& /@ Names["LoopTools`cc*"];

SetDelayed[
X`PVD[Floor[StringCount[#,"0"]/2],StringCount[#,"1"],StringCount[#,"2"],StringCount[#,"3"],s1_?NumericQ,s2_?NumericQ,s3_?NumericQ,s4_?NumericQ,s12_?NumericQ,s23_?NumericQ,m0_?NumericQ,m1_?NumericQ,m2_?NumericQ,m3_?NumericQ],LoopTools`D0i[Symbol[#],s1,s2,s3,s4,s12,s23,m02,m12,m22,m32]
]& /@ Names["LoopTools`dd*"];
Protect[PVA,PVB,PVC,PVD];

Example

Now the Passarino-Veltman coefficient functions can be evaluated numerically:

In[14]:=
Click for copyable input
Out[14]=

Compare with Package-X result by applying LoopRefine:

In[15]:=
Click for copyable input
Out[15]=
Out[16]=

LoopTools regulates UV divergences in dimensional regularization. The UV divergent Passarino-Veltman coefficients are minimally subtracted ( pole removed), with the renormalization scale µ set to 1. by default (controlled by SetMudim[val]).

In[17]:=
Click for copyable input
Out[17]=

Infrared divergent Passarino-Veltman functions are regulated with a small mass, and therefore cannot be directly compared with the output of LoopRefine.

Possible Issues

Since LoopTools minimally subtracts UV divergences, finite contributions arising from the multiplication of ϵ with UV-divergent Passarino-Veltman coefficient functions may be missed. Consider the same integral, this time generated by setting the option CancelFalse to LoopIntegrate:

In[18]:=
Click for copyable input
Out[18]=

The third term contains the product . Compare the result of evaluating the Passarino-Veltman functions directly with LoopTools with that of evaluating the analytic expression generated by LoopRefine:

In[19]:=
Click for copyable input
Out[19]=
In[20]:=
Click for copyable input
Out[20]=

The finite contribution missed in the first evaluation:

In[21]:=
Click for copyable input
Out[21]=
Out[22]=

Numerical results generated by evaluating the Passarino-Veltman functions directly are guarenteed to be correct only if the expression is free of and ϵ.