Efficient way to get tree-level field theory amplitudes
by Song He, Linghui Hou, Jintian Tian and Yong Zhang
by Song He, Linghui Hou, Jintian Tian and Yong Zhang
Introduction
Introduction
We developed a rather efficient code to generate tree-level field theory amplitudes in theories including Yang-Mills, gravity, non-linear sigma model, special Galileon, Yang-Mills-scalar, Einstein-Yang-Mills, and Dirac-Born-Infeld based on a world-sheet formula. Using our code on a laptop, it takes a second for computing the 8-point amplitude in special Galileon, and one minute for 8-point amplitudes in gravity and Born-Infeld (including those from dimension reduction)! Some examples are put in the demo.nb file. More examples and explanations can be found by using question mark (?).
Code
Code
Please make sure to download the attached package file Amp.m and put it in the same directory with this notebook for evaluation.
SetDirectory@NotebookDirectory[];<<"Amp.m"
Generate some amplitudes
AmpNLSM@Range@4;AmpYM@Range@4;%/.reducecdot;AmpsGal[4];AmpsGal[4,SymmetricTrue];%%-%/.permpermutation//Simplify;n=4;AmpGR@n;AmpGR[n,SymmetricTrue];%%-%/.permpermutation/.reducecdot/.·/.Sum[,{j,Subsets[{i},{2}]}]/.-Sum[,{j,Complement[Range@(n-1),{i}]}]/.-Sum[,{j,Subsets[Range[n-1],{2}][[;;-2]]}]/.·-Sum[·,{j,Complement[Range@(n-1),{i}]}],·-Sum[·,{j,Complement[Range@(n-1),{i}]}],·-Sum[·,{j,n-2}],·-Sum[·,{j,n-2}];(*numericcheck*)%/.Prime[100i+j]/.·Prime[200i+10j],·Prime[300i+20j],·Prime[300i+10j],·Prime[400i+10j];AmpEYM[{1},{2},{3,4}]//Simplify/@#&;AmpYMs[{1},{2,3},{5,4,6},{1,3,2,4,5,6}]//Simplify/@#&;
k
i_
k
j_
s
i,j
s
i__
s
Sequence@@j
s
i_,n
s
i,j
s
n-2,n-1
s
Sequence@@j
ϵ
i_
k
n
ϵ
i
k
j
tϵ
i_
k
n
tϵ
i
k
j
ϵ
n
k
n-1
ϵ
n
k
j
tϵ
n
k
n-1
tϵ
n
k
j
s
i_,j_
ϵ
i_
k
j_
ϵ
i_
ϵ
j_
tϵ
i_
k
j_
tϵ
i_
tϵ
j_
Generate cubic tree or labeled tree numerators
nCubicYM[];nCubicYM[,{1,3,2,4}];nCubicYMs[s[2,3]s[2,3,4]s[2,3,4,5],{2,3},{4,5},{1,6},{1,2,3,4,5,6}];nCayleyYM[{2,1},{3,1},{4,3}]nCayleyNLSM[{2,1},{3,1},{4,3}];nCayleyYMs[{{4,1},{5,4},{3,5},{2,3}},{2,3},{4,5},{1,6}];
s
1,2
s
2,3
Out[]=
cdot[,,,]·+cdot[,,]··+cdot[,,]··+····
ϵ
5
f
4
f
3
ϵ
1
k
1
ϵ
2
ϵ
5
f
3
ϵ
1
k
1
ϵ
2
k
3
ϵ
4
ϵ
5
f
2
ϵ
1
k
1
ϵ
3
k
3
ϵ
4
k
1
ϵ
2
k
1
ϵ
3
k
3
ϵ
4
ϵ
1
ϵ
5
More examples can be found by using question mark (?). For example
?F?nCubicYM?nCubicsGal?AmpYMs
Out[]=
Out[]=
Out[]=
Out[]=
More Examples
More Examples
NLSM and sGal
NLSM and sGal
Using nCayley*** to generate nCubic***
nCayleyNLSM@@#Times@@(Signature/@#)&/@F[s[1,2]s[3,4]s[1,2,3,4]]//Total//Simplify;nCubicNLSM[s[1,2]s[3,4]s[1,2,3,4],Range@6]//Simplify;nCubicNLSM[s[1,2]s[3,4]s[1,2,3,4]]//Simplify;
Using nCubic*** to generate the full amplitudes
n=4;AllCubicTrees@n;nCubicsGal@#/#&/@%//Total;AmpsGal@n;%%-%//#/.Sum[,{j,Subsets[{i},{2}]}]/.-Sum[,{j,Complement[Range@(n-1),{i}]}]/.-Sum[,{j,Subsets[Range[n-1],{2}][[;;-2]]}]&//Simplifyn=4;ordering=RandomSample[Range@n,n];PlanarCubicTrees@ordering;nCubicNLSM[#]/#/.〈g_,i_〉sgn[i,RotateLeft[ordering,Position[ordering,Max@ordering][[1,1]]][[;;-2]]]&/@%//Total;nCubicNLSM[#,ordering]/#&/@%%//Total;AmpNLSM@ordering;{%%%-%,%%-%}//#/.Sum[,{j,Subsets[{i},{2}]}]/.-Sum[,{j,Complement[Range@(n-1),{i}]}]/.-Sum[,{j,Subsets[Range[n-1],{2}][[;;-2]]}]&//Simplify
s
i__
s
Sequence@@j
s
i_,n
s
i,j
s
n-2,n-1
s
Sequence@@j
s
i__
s
Sequence@@j
s
i_,n
s
i,j
s
n-2,n-1
s
Sequence@@j
Using nCayley*** to generate the full amplitudes
n=6;Echo[ordering=RandomSample[Range@n,n],"ordering"];orderingg=RotateLeft[ordering,Position[ordering,Max@ordering][[1,1]]][[;;-2]];AllLabelledTrees@n;nCayleyNLSM@@#cay@@#&/@%//Total;%^2//Expand//#/.{cay@i__^2CaytoCubic[{i},{i}],cay@i__cay@j__CaytoCubic[{i},{j}]}&;AmpsGal@n-%/.s@i__/.Sum[,{j,Subsets[{i},{2}]}]/.-Sum[,{j,Complement[Range@(n-1),{i}]}]/.-Sum[,{j,Subsets[Range[n-1],{2}][[;;-2]]}]/.Prime[100i+j]%%%cay@@Table[{orderingg[[i]],orderingg[[i+1]]},{i,Length@orderingg-1}]//Expand//#/.{cay@i__^2CaytoCubic[{i},{i}],cay@i__cay@j__CaytoCubic[{i},{j}]}&;AmpNLSM@ordering-%/.s@i__/.Sum[,{j,Subsets[{i},{2}]}]/.-Sum[,{j,Complement[Range@(n-1),{i}]}]/.-Sum[,{j,Subsets[Range[n-1],{2}][[;;-2]]}]/.Prime[100i+j]
s
i
s
i__
s
Sequence@@j
s
i_,n
s
i,j
s
n-2,n-1
s
Sequence@@j
s
i_,j_
s
i
s
i__
s
Sequence@@j
s
i_,n
s
i,j
s
n-2,n-1
s
Sequence@@j
s
i_,j_
Out[]=
0
Out[]=
{0,0}
YM, GR, BI
YM, GR, BI
Using nCayleyYM to generate nCubicYM
Using nCubic*** or nCayley*** to generate the full amplitudes
YMs, EYM, DBI
YMs, EYM, DBI
Using nCayleyYMS to generate nCubicYMS
Using nCubic*** or nCayley*** to generate the full amplitudes