commit 05cf12fd7ba2cd1ef9e969569d28920011ac003e
parent c9a606255c5f2f8f501b82ef536c8c40b27b8da4
Author: Bakar Chargeishvili <bakar@bcharge.de>
Date: Tue, 29 Mar 2022 17:12:19 +0200
Import the project
Diffstat:
M | README.md | | | 9 | +++++++-- |
A | SUn.prc | | | 79 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | Soft.ggttg.frm | | | 365 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | Soft.uuttg.frm | | | 270 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
4 files changed, 721 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
@@ -1,4 +1,9 @@
-# FORMSoft
+# FORMSoft -- Automated calculation of 1-Loop soft anomalous dimension matrices
-An automated tool for 1-loop soft anomalous dimension calculation
+FORM tool to calculate soft anomalous dimension matrices automatically.
+The color basis has to be hardcoded. To produce the kinematic and color factors
+another automated tool [WilsonWebs](https://git.bcharge.de/WilsonWebs/) can be
+used.
+
+For more information see the comments in the source code.
diff --git a/SUn.prc b/SUn.prc
@@ -0,0 +1,79 @@
+#procedure SUn
+*
+* Procedure to compute color traces for the SU(NF) groups
+* We follow the article by Cvitanovic (Phys.Rev.D14(1976)1536)
+*
+* We use [T(i),T(j)] = i_*f(i,j,k)*T(k) (f is the C of Cvitanovic)
+*
+* We use the indices i in the space of the fundamental representation
+* The indices j are in the space of the adjoint.
+* The dimension should be the dimension of the fundamental representation.
+*
+* We need: (C)Function Tr(cyclic). Indicates the traces.
+* CFunction T, Tp, f(antisymmetric);
+* Symbols a,nf,NF,NA;
+* Indices i1=NF,i2=NF,i3=NF,i4=NF;
+* Indices j1=NA,j2=NA,j3=NA;
+* Dimension NF;
+*
+* Usually the value of a is taken to be 1/2;
+* nf is the number of flavors in the fundamental representation.
+* NF is the dimension of the fundamental representation.
+* NA is the dimension of the adjoint representation.
+*
+* Routine by J.Vermaseren, 7-jan-1997
+*
+repeat;
+ id,once,Tr(?a) = SUNT(?a,i1,i1)*nf;
+ sum i1;
+ repeat;
+ id,once,SUNT(j1?,j2?,?a,i1?,i2?) = SUNT(j1,i1,i3)*SUNT(j2,?a,i3,i2);
+ sum i3;
+ endrepeat;
+endrepeat;
+#do i = 1,1
+if ( count(SUNF,1) || match(SUNT(j1?,i1?,i2?)*SUNT(j1?,i3?,i4?)) )
+ redefine i "0";
+id,once,SUNF(j1?,j2?,j3?) = 1/a/i_*SUNT(j1,i1,i2)*SUNT(j2,i2,i3)*SUNT(j3,i3,i1)
+ -1/a/i_*SUNT(j3,i1,i2)*SUNT(j2,i2,i3)*SUNT(j1,i3,i1);
+sum i1,i2,i3;
+id SUNT(j1?,i1?,i2?)*SUNT(j1?,i3?,i4?) = Tp(i1,i2,i3,i4);
+#do j = 1,1
+if ( count(Tp,1) ) redefine j "0";
+.sort
+id,once,Tp(i1?,i2?,i3?,i4?) =
+ a*(d_(i1,i4)*d_(i2,i3)-d_(i1,i2)*d_(i3,i4)/NF);
+*renumber;
+#enddo
+#enddo
+#do i = 1,1
+if ( count(SUND,1) || match(SUNT(j1?,i1?,i2?)*SUNT(j1?,i3?,i4?)) )
+ redefine i "0";
+id,once,SUND(j1?,j2?,j3?) = 1/a*SUNT(j1,i1,i2)*SUNT(j2,i2,i3)*SUNT(j3,i3,i1)
+ +1/a*SUNT(j3,i1,i2)*SUNT(j2,i2,i3)*SUNT(j1,i3,i1);
+sum i1,i2,i3;
+id SUNT(j1?,i1?,i2?)*SUNT(j1?,i3?,i4?) = Tp(i1,i2,i3,i4);
+#do j = 1,1
+if ( count(Tp,1) ) redefine j "0";
+.sort
+id,once,Tp(i1?,i2?,i3?,i4?) =
+ a*(d_(i1,i4)*d_(i2,i3)-d_(i1,i2)*d_(i3,i4)/NF);
+*renumber;
+#enddo
+#enddo
+
+repeat;
+ id SUNT(j1?,?a,i1?,i2?)*SUNT(j2?,?b,i2?,i3?) = SUNT(j1,?a,j2,?b,i1,i3);
+endrepeat;
+id SUNT(?a,i1?,i1?) = Tr(?a)/nf;
+id Tr(j1?) = 0;
+id Tr(j1?,j2?) = a*d_(j1,j2)*nf;
+.sort
+id cF = a*(NF^2-1)/NF;
+id cA = 2*a*NF;
+id [cF-cA/6] = a*(2*NF/3-1/NF);
+.sort
+*
+#endprocedure
+
+*// vim: set filetype=form:
diff --git a/Soft.ggttg.frm b/Soft.ggttg.frm
@@ -0,0 +1,365 @@
+#-
+#:SmallSize 5000000
+#:LargeSize 20000000
+#:WorkSpace 50000000
+#:MaxTermSize 300000
+#:TermsInSmall 30000
+*#:ContinuationLines 100000
+on stats;
+format 75;
+auto s sM;
+auto i iM;
+
+
+#define HaveFermions "0"
+#define FermionOrder "Automatic"
+#define FermionChains "Weyl"
+#define Gamma5Test "0"
+#define Evanescent "0"
+#define HaveSUN "1"
+#define SUNN "3"
+
+s Alfa, Alfa2, Alfas, Alfas2, CA, CA2, CB, CB2, CBA, CBA2, CW, CW2, D,
+ EL, GS, MA0, MA02, MA0tree, MA0tree2, MB, MB2, MC, MC2, MD, MD2, ME,
+ ME2, MGl, MGl2, MH, Mh0, Mh02, Mh0tree, Mh0tree2, MH2, MHH, MHH2,
+ MHHtree, MHHtree2, MHp, MHp2, MHptree, MHptree2, Mino3, Mino3C, ML,
+ ML2, MM, MM2, MS, MS2, MT, MT2, MU, MU2, MW, MW2, MZ, MZ2, Pi, S,
+ S34, T, T14, T24, TB, TB2, U;
+cf Den,Denom, dirM, Hel, List, MASf, MASf2, MCha, MCha2, Mf, Mf2, MHiggs,
+ MHiggs2, MHiggstree, MHiggstree2, MNeu, MNeu2, MSf, MSf2, pol, polc,
+ SUNF, SUND, SUNSum, SUNT, SpinorU, SpinorUb, SpinorV, SpinorVb;
+S eps,[L_beta],[alpha_s/pi],[L_1],[L_2];
+S gamma,[ln(4*Pi)],[ln(v1.v3)],[ln(v1.v4)],[ln(v2.v3)],[ln(v2.v4)],[ln(v3.v5)],[ln(v4.v5)];
+S [ln((v1.n)^2/n^2)],[ln((v2.n)^2/n^2)],[ln((v5.n)^2/n^2)],[ln(-v1.v2/2)],[ln(v1.v5/2)],[ln(v2.v5/2)];
+S [ln(s/(2*MT^2))], [ln(1/2)], [ln(-1/2)];
+d 4;
+
+AutoDeclare I Dir=4, iM, Lor=4,ind;
+
+#define LoopMomenta "q1,q2"
+
+#define Vectors "`LoopMomenta',
+ eta1,eta2,eta3,eta4,eta5,
+ e1,e2,e3,e4,e5,
+ ec1,ec2,ec3,ec4,ec5,
+ z1,z2,z3,z4,z5,
+ zc1,zc2,zc3,zc4,zc5,
+ k1,k2,k3,k4,k5"
+v `Vectors';
+
+v k;
+s m;
+f g,g1,g2,dummy;
+v g6,g7;
+
+cf rat;
+
+V v1,v2,v3,v4,v5,l,n;
+cf Ngluon;
+
+Tensor Tr(cyclic),Tp,f(antisymmetric),ff(rcyclic), d(symmetric);
+Function TM,TT;
+Symbols a,nf,NF,NA,cF,cA,[cF-cA/6];
+Dimension NA;
+AutoDeclare I j=NA,Glu=NA;
+AutoDeclare I n1=NA,m1=NA, A=NA;
+Dimension NF;
+AutoDeclare I i=NF,Col=NF;
+I iA=NF,iB=NF,iAb=NF,iBb=NF;
+
+***************************************************
+* ____ _ _ _ *
+* / ___|___ | | ___ _ __ | |__ __ _ ___(_)___ *
+*| | / _ \| |/ _ \| '__| | '_ \ / _` / __| / __|*
+*| |__| (_) | | (_) | | | |_) | (_| \__ \ \__ \*
+* \____\___/|_|\___/|_| |_.__/ \__,_|___/_|___/*
+***************************************************
+#define ColBasDim "11"
+G proj1 = d_(Glu1,Glu2)*SUNT(Glu5,Col3,Col4);
+G proj2 = i_*SUNF(Glu1,Glu2,Glu5)*d_(Col3,Col4);
+G proj3 = SUND(Glu1,Glu2,Glu5)*d_(Col3,Col4);
+G proj4 = i_*SUNF(Glu1,Glu2,Glu100)*i_*SUNF(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
+G proj5 = i_*SUND(Glu1,Glu2,Glu100)*SUNF(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
+G proj6 = i_*SUNF(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
+G proj7 = SUND(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
+G proj8 = (1/2*(d_(Glu1,Glu101)*d_(Glu2,Glu5)-d_(Glu1,Glu5)*d_(Glu101,Glu2))
+ -SUNF(Glu1,Glu2,Glu100)*SUNF(Glu101,Glu5,Glu100)*Denom(NF))*SUNT(Glu101,Col3,Col4);
+G proj9 = 1/2*(SUND(Glu1,Glu101,Glu100)*i_*SUNF(Glu2,Glu100,Glu5)
+ -SUND(Glu2,Glu100,Glu5)*i_*SUNF(Glu1,Glu101,Glu100))*SUNT(Glu101,Col3,Col4);
+G proj10 = -(NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*Denom(4*(NF+2))
+ +1/2*SUNF(Glu1,Glu5,Glu100)*SUNF(Glu101,Glu2,Glu100)
+ -1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu101,Glu5,Glu100)
+ +1/4*d_(Glu1,Glu5)*d_(Glu2,Glu101)+1/4*d_(Glu1,Glu101)*d_(Glu2,Glu5)
+ +d_(Glu1,Glu2)*d_(Glu101,Glu5)*Denom(2*(NF+1)))*SUNT(Glu101,Col3,Col4);
+G proj11 = (-NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*Denom(4*(NF-2))
+ -1/2*SUNF(Glu1,Glu5,Glu100)*SUNF(Glu101,Glu2,Glu100)
+ +1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu101,Glu5,Glu100)
+ +1/4*d_(Glu1,Glu5)*d_(Glu2,Glu101)+1/4*d_(Glu1,Glu101)*d_(Glu2,Glu5)
+ -d_(Glu1,Glu2)*d_(Glu101,Glu5)*Denom(2*(NF-1)))*SUNT(Glu101,Col3,Col4);
+
+
+.sort
+Skip;
+#do i=1,`ColBasDim'
+ L proj`i'b = proj`i';
+#enddo
+Multiply replace_(Glu1,Glu991,Glu2,Glu992,Col3,Col993,Col4,Col994,Glu5,Glu995,Glu100,Glu200,Glu101,Glu201,Glu102,Glu202);
+id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1);
+id i_ = -i_;
+.sort
+#call SUn
+id a = 1/2;
+id NA = NF^2-1;
+.sort
+
+#do i=1,`ColBasDim'
+#do j=1,`ColBasDim'
+ G P`i'x`j' =
+ proj`i' * proj`j'b*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Col4,Col994)*d_(Glu5,Glu995);
+#enddo
+#enddo
+
+#call SUn
+id a = 1/2;
+id NA = NF^2-1;
+*id Denom(?k)=exp_(?k,-1);
+
+.sort
+#do i=1,`ColBasDim'
+ Hide proj`i', proj`i'b;
+#enddo
+Bracket Denom;
+.sort
+collect dummy;
+.sort
+PolyRatFun rat;
+id dummy(?num)=rat(?num,1);
+id Denom(?den)=rat(1,?den);
+.sort
+PolyRatFun;
+id rat(S?,T?) = S/T;
+.sort
+
+.sort
+*******************************************
+* !!!ONLY TRUE FOR THE DIAGONAL MATRIX!!! *
+*******************************************
+#do i=1,`ColBasDim'
+#do j=1,`ColBasDim'
+ L invP`i'x`j' = Denom(P`i'x`j');
+#enddo
+#enddo
+id Denom(0) = 0;
+
+.sort
+
+*
+* partial amplitudes (kinematical parts)
+*
+*L A12 = v1(n1)/(v1.l)*v2(m1)/(-v2.l)*Ngluon(n1,m1)/l.l;
+*L A13 = v1(n1)/(v1.l)*v3(m1)/(-v3.l)*Ngluon(n1,m1)/l.l;
+*L A14 = v1(n1)/(v1.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+*L A15 = v1(n1)/(v1.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+*L A23 = v2(n1)/(v2.l)*v3(m1)/(-v3.l)*Ngluon(n1,m1)/l.l;
+*L A24 = v2(n1)/(v2.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+*L A25 = v2(n1)/(v2.l)*v2(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+*L A34 = v3(n1)/(v3.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+*L A35 = v3(n1)/(v3.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+*L A45 = v4(n1)/(v4.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+*L Self1 = v3(n1)/(v3.l)*v3(m1)/(-v3.l)*Ngluon(n1,m1)/l.l;
+*L Self2 = v4(n1)/(v2.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+L A12 = v1(n1)/(-v1.l)*v2(m1)/(v2.l)*Ngluon(n1,m1)/l.l;
+L A13 = -v1(n1)/(v1.l)*v3(m1)/(v3.l)*Ngluon(n1,m1)/l.l;
+L A14 = -v1(n1)/(v1.l)*v4(m1)/(v4.l)*Ngluon(n1,m1)/l.l;
+L A15 = v1(n1)/(v1.l)*v5(m1)/(v5.l)*Ngluon(n1,m1)/l.l;
+L A23 = -v2(n1)/(v2.l)*v3(m1)/(v3.l)*Ngluon(n1,m1)/l.l;
+L A24 = v2(n1)/(v2.l)*v4(m1)/(v4.l)*Ngluon(n1,m1)/l.l;
+L A25 = -v2(n1)/(v2.l)*v5(m1)/(v5.l)*Ngluon(n1,m1)/l.l;
+L A34 = v3(n1)/(v3.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+L A35 = v3(n1)/(v3.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+L A45 = -v4(n1)/(v4.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+L Self1 = -v3(n1)/(v3.l)*v3(m1)/(-v3.l)*Ngluon(n1,m1)/l.l;
+L Self2 = -v4(n1)/(v4.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+
+*
+* Color factors
+*
+L C12 = (-i_)*SUNF(Glu99,Glu1,Glu991)*(-i_)*SUNF(Glu99,Glu2,Glu992)*d_(Col3,Col993)*d_(Col4,Col994)*d_(Glu5,Glu995);
+L C13 = (-i_)*SUNF(Glu99,Glu1,Glu991)*SUNT(Glu99,Col3,Col993)*d_(Glu2,Glu992)*d_(Col4,Col994)*d_(Glu5,Glu995);
+L C14 = (-i_)*SUNF(Glu99,Glu991,Glu1)*SUNT(Glu99,Col994,Col4)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Glu5,Glu995);
+L C15 = (-i_)*SUNF(Glu99,Glu1,Glu991)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Col4,Col994);
+L C23 = (-i_)*SUNF(Glu99,Glu2,Glu992)*SUNT(Glu99,Col3,Col993)*d_(Glu1,Glu991)*d_(Col4,Col994)*d_(Glu5,Glu995);
+L C24 = (-i_)*SUNF(Glu99,Glu2,Glu992)*SUNT(Glu99,Col994,Col4)*d_(Glu1,Glu991)*d_(Col3,Col993)*d_(Glu5,Glu995);
+L C25 = (-i_)*SUNF(Glu99,Glu2,Glu992)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu1,Glu991)*d_(Col3,Col993)*d_(Col4,Col994);
+L C34 = SUNT(Glu99,Col3,Col993)*SUNT(Glu99,Col994,Col4)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Glu5,Glu995);
+L C35 = SUNT(Glu99,Col3,Col993)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col4,Col994);
+L C45 = SUNT(Glu99,Col994,Col4)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col3,Col993);
+L CSelf1 = SUNT(Glu99,Col3,Col203)*SUNT(Glu99,Col203,Col993)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col4,Col994)*d_(Glu5,Glu995);
+L CSelf2 = SUNT(Glu99,Col4,Col204)*SUNT(Glu99,Col204,Col994)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Glu5,Glu995);
+
+id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1);
+.sort
+
+#do i=1,`ColBasDim'
+#do j=1,`ColBasDim'
+L [S(alpha_s)_`i'x`j'] = proj`i' * proj`j'b*
+*C23;
+*( (CAB*SAB + C12*S12 + CA1*SA1 + CA2*SA2
+* + CB1*SB1 + CB2*SB2 + CSelf1*Self1/2 + CSelf2*Self2/2) );
+(C12*A12+C13*A13+C14*A14+C15*A15+C23*A23+C24*A24+C25*A25+C34*A34+C35*A35+C45*A45+CSelf1*Self1/2+CSelf2*Self2/2);
+#enddo
+#enddo
+
+id Ngluon(n1?,m1?) = -d_(n1,m1)+(l(n1)*n(m1)/n.l + n(n1)*l(m1)/n.l)
+ -l(n1)*l(m1)/n.l^2*n.n;
+*
+*
+* substituition of integrals; measure d^Dl/(2*Pi)^D;
+* it als involves the prefactor (-i)*g^2 to obtain the powers of alpha_s
+*
+* the substitutions below assume:
+* vA.vA=0, vB.vB=0, v1.v1=1, v2.v2=1
+*
+
+id v1.v2*l.l^-1*v1.l^-1*v2.l^-1 = + [alpha_s/pi] *
+ ( 2*eps^-2 - eps^-1*([ln(-v1.v2/2)] + gamma - [ln(4*Pi)]) );
+
+id v1.v5*l.l^-1*v1.l^-1*v5.l^-1 = + [alpha_s/pi] *
+ ( 2*eps^-2 - eps^-1*([ln(v1.v5/2)] + gamma - [ln(4*Pi)]) );
+
+id v1.v3*l.l^-1*v1.l^-1*v3.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v1.v3)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+id v1.v4*l.l^-1*v1.l^-1*v4.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v1.v4)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+id v2.v3*l.l^-1*v2.l^-1*v3.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v2.v3)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+id v2.v4*l.l^-1*v2.l^-1*v4.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v2.v4)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+id v2.v5*l.l^-1*v2.l^-1*v5.l^-1 = + [alpha_s/pi] *
+ ( 2*eps^-2 - eps^-1*([ln(v2.v5/2)] + gamma - [ln(4*Pi)]) );
+
+id v3.v4*l.l^-1*v3.l^-1*v4.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta];
+
+id v3.v5*l.l^-1*v3.l^-1*v5.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v3.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+id v4.v5*l.l^-1*v4.l^-1*v5.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v4.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+
+id v1.n*l.l^-1*v1.l^-1*n.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*([ln((v1.n)^2/n^2)] + gamma - [ln(4*Pi)]) );
+
+id v2.n*l.l^-1*v2.l^-1*n.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*([ln((v2.n)^2/n^2)] + gamma - [ln(4*Pi)]) );
+
+id v3.n*l.l^-1*v3.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_1];
+
+id v4.n*l.l^-1*v4.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_2];
+
+id v5.n*l.l^-1*v5.l^-1*n.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*([ln((v5.n)^2/n^2)] + gamma - [ln(4*Pi)]) );
+
+
+id v3.v3*l.l^-1*v3.l^-2 = - [alpha_s/pi] * eps^-1;
+
+id v4.v4*l.l^-1*v4.l^-2 = - [alpha_s/pi] * eps^-1;
+
+id n.n*l.l^-1*n.l^-2 = - [alpha_s/pi] * eps^-1;
+.sort;
+
+
+#do i=1,`ColBasDim'
+#do j=1,`ColBasDim'
+ #$summ = 0;
+ #do k=1,`ColBasDim'
+ #$summ = `$summ'+invP`i'x`k'*[S(alpha_s)_`k'x`j']*(-eps);
+ #enddo
+ L [Gamma(alpha_s)_`i'x`j'] = `$summ';
+#enddo
+#enddo
+
+#call SUn
+id a = 1/2;
+id NA = NF^2-1;
+*id Denom(?k) = exp_(?k,-1);
+id Denom(?a)*Denom(?b) = Denom(exp_(?a,1)*exp_(?b,1));
+.sort
+Bracket Denom;
+.sort
+id NF^m? = dummy(NF^m);
+repeat id m?*dummy(?k) = dummy(exp_(m,1)*exp_(?k,1));
+*collect dummy;
+.sort
+PolyRatFun rat;
+id dummy(?num)*Denom(?den)=rat(?num,?den);
+.sort
+PolyRatFun;
+id rat(S?,T?) = S/T;
+.sort
+id dummy(?k) = exp_(?k,1);
+
+.sort
+Bracket Denom;
+.sort
+id NF^m? = dummy(NF^m);
+repeat id m?*dummy(?k) = dummy(exp_(m,1)*exp_(?k,1));
+*collect dummy;
+.sort
+PolyRatFun rat;
+id dummy(?num)*Denom(?den)=rat(?num,?den);
+.sort
+PolyRatFun;
+id rat(S?,T?) = S/T;
+.sort
+id dummy(?k) = exp_(?k,1);
+
+*id [ln((v1.n)^2/n^2)] = [ln(1/2)];
+*id [ln((v2.n)^2/n^2)] = [ln(1/2)];
+id [ln(-v1.v2/2)] = [ln(-1/2)];
+
+*Bracket [alpha_s/pi];
+Bracket [alpha_s/pi],[L_1],[L_2];
+Print;
+.end
+
+
+
+*.sort
+*Drop;
+*
+*#do i=1,`ColBasDim'
+*#do j=1,`ColBasDim'
+* #$summ = 0;
+* #do k=1,`ColBasDim'
+* #if (`i'!=`k');
+* #else
+* #$summ = `$summ'+invP`i'x`k'*[S(alpha_s)_`k'x`j'];
+* #endif
+* #enddo
+* L [Gamma(alpha_s)_`i'x`j'] = `$summ';
+*#enddo
+*#enddo
+*
+*#call SUn
+*id a = 1/2;
+*id NA = NF^2-1;
+**id Denom(?k) = exp_(?k,-1);
+*.sort
+*Bracket Denom;
+*.sort
+*collect dummy;
+*.sort
+*PolyRatFun rat;
+*id dummy(?num)=rat(?num,1);
+*id Denom(?den)=rat(1,?den);
+*.sort
+*PolyRatFun;
+*id rat(S?,T?) = S/T;
+*
+*.sort
+*Print;
+*.end
diff --git a/Soft.uuttg.frm b/Soft.uuttg.frm
@@ -0,0 +1,270 @@
+#-
+#:SmallSize 5000000
+#:LargeSize 20000000
+#:WorkSpace 50000000
+#:MaxTermSize 300000
+#:TermsInSmall 30000
+*#:ContinuationLines 100000
+on stats;
+format 75;
+auto s sM;
+auto i iM;
+
+
+#define HaveFermions "0"
+#define FermionOrder "Automatic"
+#define FermionChains "Weyl"
+#define Gamma5Test "0"
+#define Evanescent "0"
+#define HaveSUN "1"
+#define SUNN "3"
+
+s Alfa, Alfa2, Alfas, Alfas2, CA, CA2, CB, CB2, CBA, CBA2, CW, CW2, D,
+ EL, GS, MA0, MA02, MA0tree, MA0tree2, MB, MB2, MC, MC2, MD, MD2, ME,
+ ME2, MGl, MGl2, MH, Mh0, Mh02, Mh0tree, Mh0tree2, MH2, MHH, MHH2,
+ MHHtree, MHHtree2, MHp, MHp2, MHptree, MHptree2, Mino3, Mino3C, ML,
+ ML2, MM, MM2, MS, MS2, MT, MT2, MU, MU2, MW, MW2, MZ, MZ2, Pi, S,
+ S34, T, T14, T24, TB, TB2, U;
+cf Den,Denom, dirM, Hel, List, MASf, MASf2, MCha, MCha2, Mf, Mf2, MHiggs,
+ MHiggs2, MHiggstree, MHiggstree2, MNeu, MNeu2, MSf, MSf2, pol, polc,
+ SUNF, SUND, SUNSum, SUNT, SpinorU, SpinorUb, SpinorV, SpinorVb;
+S eps,[L_beta],[alpha_s/pi],[L_1],[L_2];
+S gamma,[ln(4*Pi)],[ln(v1.v3)],[ln(v1.v4)],[ln(v2.v3)],[ln(v2.v4)],[ln(v3.v5)],[ln(v4.v5)];
+S [ln((v1.n)^2/n^2)],[ln((v2.n)^2/n^2)],[ln((v5.n)^2/n^2)],[ln(-v1.v2/2)],[ln(v1.v5/2)],[ln(v2.v5/2)];
+S [ln(s/(2*MT^2))], [ln(1/2)], [ln(-1/2)];
+d 4;
+
+
+
+AutoDeclare I Dir=4, iM, Lor=4,ind;
+
+#define LoopMomenta "q1,q2"
+
+#define Vectors "`LoopMomenta',
+ eta1,eta2,eta3,eta4,eta5,
+ e1,e2,e3,e4,e5,
+ ec1,ec2,ec3,ec4,ec5,
+ z1,z2,z3,z4,z5,
+ zc1,zc2,zc3,zc4,zc5,
+ k1,k2,k3,k4,k5"
+v `Vectors';
+
+v k;
+s m;
+f g,g1,g2,dummy;
+v g6,g7;
+
+cf rat;
+
+V v1,v2,v3,v4,v5,l,n;
+cf Ngluon;
+
+Tensor Tr(cyclic),Tp,f(antisymmetric),ff(rcyclic), d(symmetric);
+Function TM,TT;
+Symbols a,nf,NF,NA,cF,cA,[cF-cA/6];
+Dimension NA;
+AutoDeclare I j=NA,Glu=NA;
+AutoDeclare I n1=NA,m1=NA, A=NA;
+Dimension NF;
+AutoDeclare I i=NF,Col=NF;
+I iA=NF,iB=NF,iAb=NF,iBb=NF;
+
+***************************************************
+* ____ _ _ _ *
+* / ___|___ | | ___ _ __ | |__ __ _ ___(_)___ *
+*| | / _ \| |/ _ \| '__| | '_ \ / _` / __| / __|*
+*| |__| (_) | | (_) | | | |_) | (_| \__ \ \__ \*
+* \____\___/|_|\___/|_| |_.__/ \__,_|___/_|___/*
+***************************************************
+#define ColBasDim "4"
+L proj1 = d_(Col1,Col2)*SUNT(Glu5,Col3,Col4);
+L proj2 = d_(Col3,Col4)*SUNT(Glu5,Col2,Col1);
+L proj3 = i_*SUNT(Glu100,Col2,Col1)*SUNT(Glu101,Col3,Col4)*SUNF(Glu100,Glu101,Glu5);
+L proj4 = SUNT(Glu100,Col2,Col1)*SUNT(Glu101,Col3,Col4)*SUND(Glu100,Glu101,Glu5);
+
+.sort
+Skip;
+#do i=1,`ColBasDim'
+ L proj`i'b = proj`i';
+#enddo
+Multiply replace_(Col1,Col101,Col2,Col102,Col3,Col103,Col4,Col104,Glu5,Glu105,Glu100,Glu200,Glu101,Glu201,Glu102,Glu202);
+id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1);
+id i_ = -i_;
+.sort
+#call SUn
+id a = 1/2;
+id NA = NF^2-1;
+.sort
+
+#do i=1,`ColBasDim'
+#do j=1,`ColBasDim'
+ G P`i'x`j' =
+ proj`i' * proj`j'b*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Col4,Col104)*d_(Glu5,Glu105);
+#enddo
+#enddo
+
+#call SUn
+id a = 1/2;
+id NA = NF^2-1;
+.sort
+*******************************************
+* !!!ONLY TRUE FOR THE DIAGONAL MATRIX!!! *
+*******************************************
+#do i=1,`ColBasDim'
+#do j=1,`ColBasDim'
+ L invP`i'x`j' = Denom(P`i'x`j');
+#enddo
+#enddo
+id Denom(0) = 0;
+
+.sort
+Print;
+.sort
+Skip;
+
+*
+* partial amplitudes (kinematical parts)
+*
+L A12 = v1(n1)/(-v1.l)*v2(m1)/(v2.l)*Ngluon(n1,m1)/l.l;
+L A13 = -v1(n1)/(v1.l)*v3(m1)/(v3.l)*Ngluon(n1,m1)/l.l;
+L A14 = v1(n1)/(v1.l)*v4(m1)/(v4.l)*Ngluon(n1,m1)/l.l;
+L A15 = v1(n1)/(v1.l)*v5(m1)/(v5.l)*Ngluon(n1,m1)/l.l;
+L A23 = v2(n1)/(v2.l)*v3(m1)/(v3.l)*Ngluon(n1,m1)/l.l;
+L A24 = -v2(n1)/(v2.l)*v4(m1)/(v4.l)*Ngluon(n1,m1)/l.l;
+L A25 = -v2(n1)/(v2.l)*v5(m1)/(v5.l)*Ngluon(n1,m1)/l.l;
+L A34 = v3(n1)/(v3.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+L A35 = v3(n1)/(v3.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+L A45 = -v4(n1)/(v4.l)*v5(m1)/(-v5.l)*Ngluon(n1,m1)/l.l;
+L Self1 = -v3(n1)/(v3.l)*v3(m1)/(-v3.l)*Ngluon(n1,m1)/l.l;
+L Self2 = -v4(n1)/(v4.l)*v4(m1)/(-v4.l)*Ngluon(n1,m1)/l.l;
+
+*
+* Color factors
+*
+L C12 = SUNT(Glu99,Col101,Col1)*SUNT(Glu99,Col2,Col102)*d_(Col3,Col103)*d_(Col4,Col104)*d_(Glu5,Glu105);
+L C13 = SUNT(Glu99,Col101,Col1)*SUNT(Glu99,Col3,Col103)*d_(Col2,Col102)*d_(Col4,Col104)*d_(Glu5,Glu105);
+L C14 = SUNT(Glu99,Col101,Col1)*SUNT(Glu99,Col104,Col4)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Glu5,Glu105);
+L C15 = SUNT(Glu99,Col101,Col1)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Col4,Col104);
+L C23 = SUNT(Glu99,Col2,Col102)*SUNT(Glu99,Col3,Col103)*d_(Col1,Col101)*d_(Col4,Col104)*d_(Glu5,Glu105);
+L C24 = SUNT(Glu99,Col2,Col102)*SUNT(Glu99,Col104,Col4)*d_(Col1,Col101)*d_(Col3,Col103)*d_(Glu5,Glu105);
+L C25 = SUNT(Glu99,Col2,Col102)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col1,Col101)*d_(Col3,Col103)*d_(Col4,Col104);
+L C34 = SUNT(Glu99,Col3,Col103)*SUNT(Glu99,Col104,Col4)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Glu5,Glu105);
+L C35 = SUNT(Glu99,Col3,Col103)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col4,Col104);
+L C45 = SUNT(Glu99,Col104,Col4)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col3,Col103);
+L CSelf1 = SUNT(Glu99,Col3,Col203)*SUNT(Glu99,Col203,Col103)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col4,Col104)*d_(Glu5,Glu105);
+L CSelf2 = SUNT(Glu99,Col4,Col204)*SUNT(Glu99,Col204,Col104)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Glu5,Glu105);
+
+id SUNT(Glu?,Col1?,Col2?) = SUNT(Glu,Col2,Col1);
+.sort
+
+#do i=1,`ColBasDim'
+#do j=1,`ColBasDim'
+L [S(alpha_s)_`i'x`j'] = proj`i' * proj`j'b *
+*C14;
+*(C15*A15+C25*A25);
+*(C35*A35+C45*A45);
+*(C15*A15+C25*A25+C35*A35+C45*A45);
+*(CSelf1*Self1/2+CSelf2*Self2/2);
+*(C15*A15+C25*A25+C35*A35+C45*A45);
+(C12*A12+C13*A13+C14*A14+C15*A15+C23*A23+C24*A24+C25*A25+C34*A34+C35*A35+C45*A45+CSelf1*Self1/2+CSelf2*Self2/2);
+#enddo
+#enddo
+
+id Ngluon(n1?,m1?) = -d_(n1,m1)+(l(n1)*n(m1)/n.l + n(n1)*l(m1)/n.l)
+ -l(n1)*l(m1)/n.l^2*n.n;
+*
+*
+* substituition of integrals; measure d^Dl/(2*Pi)^D;
+* it als involves the prefactor (-i)*g^2 to obtain the powers of alpha_s
+*
+* the substitutions below assume:
+* vA.vA=0, vB.vB=0, v1.v1=1, v2.v2=1
+*
+
+id v1.v2*l.l^-1*v1.l^-1*v2.l^-1 = + [alpha_s/pi] *
+ ( 2*eps^-2 - eps^-1*([ln(-v1.v2/2)] + gamma - [ln(4*Pi)]) );
+
+id v1.v5*l.l^-1*v1.l^-1*v5.l^-1 = + [alpha_s/pi] *
+ ( 2*eps^-2 - eps^-1*([ln(v1.v5/2)] + gamma - [ln(4*Pi)]) );
+
+id v1.v3*l.l^-1*v1.l^-1*v3.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v1.v3)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+id v1.v4*l.l^-1*v1.l^-1*v4.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v1.v4)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+id v2.v3*l.l^-1*v2.l^-1*v3.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v2.v3)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+id v2.v4*l.l^-1*v2.l^-1*v4.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v2.v4)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+id v2.v5*l.l^-1*v2.l^-1*v5.l^-1 = + [alpha_s/pi] *
+ ( 2*eps^-2 - eps^-1*([ln(v2.v5/2)] + gamma - [ln(4*Pi)]) );
+
+id v3.v4*l.l^-1*v3.l^-1*v4.l^-1 = + [alpha_s/pi] * eps^-1 * [L_beta];
+
+id v3.v5*l.l^-1*v3.l^-1*v5.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v3.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+id v4.v5*l.l^-1*v4.l^-1*v5.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*(2*[ln(v4.v5)]+[ln(s/(2*MT^2))] + gamma - [ln(4*Pi)]) );
+
+
+id v1.n*l.l^-1*v1.l^-1*n.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*([ln((v1.n)^2/n^2)] + gamma - [ln(4*Pi)]) );
+
+id v2.n*l.l^-1*v2.l^-1*n.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*([ln((v2.n)^2/n^2)] + gamma - [ln(4*Pi)]) );
+
+id v3.n*l.l^-1*v3.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_1];
+
+id v4.n*l.l^-1*v4.l^-1*n.l^-1 = - [alpha_s/pi] * eps^-1 * [L_2];
+
+id v5.n*l.l^-1*v5.l^-1*n.l^-1 = + [alpha_s/pi]/2 *
+ ( 2*eps^-2 - eps^-1*([ln((v5.n)^2/n^2)] + gamma - [ln(4*Pi)]) );
+
+
+id v3.v3*l.l^-1*v3.l^-2 = - [alpha_s/pi] * eps^-1;
+
+id v4.v4*l.l^-1*v4.l^-2 = - [alpha_s/pi] * eps^-1;
+
+id n.n*l.l^-1*n.l^-2 = - [alpha_s/pi] * eps^-1;
+.sort;
+
+
+#do i=1,`ColBasDim'
+#do j=1,`ColBasDim'
+ #$summ = 0;
+ #do k=1,`ColBasDim'
+ #$summ = `$summ'+invP`i'x`k'*[S(alpha_s)_`k'x`j']*(-eps);
+ #enddo
+ L [Gamma(alpha_s)_`i'x`j'] = `$summ';
+#enddo
+#enddo
+
+#call SUn
+id a = 1/2;
+id NA = NF^2-1;
+*id Denom(?k) = exp_(?k,-1);
+.sort
+Bracket Denom;
+.sort
+id NF^m? = dummy(NF^m);
+repeat id m?*dummy(?k) = dummy(exp_(m,1)*exp_(?k,1));
+*collect dummy;
+.sort
+PolyRatFun rat;
+id dummy(?num)*Denom(?den)=rat(?num,?den);
+.sort
+PolyRatFun;
+id rat(S?,T?) = S/T;
+.sort
+id dummy(?k) = exp_(?k,1);
+
+*id [ln((v1.n)^2/n^2)] = [ln(1/2)];
+*id [ln((v2.n)^2/n^2)] = [ln(1/2)];
+id [ln(-v1.v2/2)] = [ln(-1/2)];
+
+Bracket [alpha_s/pi];
+Print;
+.end