FORMSoft - An automated tool for 1-loop soft anomalous dimension calculation

git clone git://git.bcharge.de/FORMSoft.git

About | Log | Files | Refs

Soft.gggg.frm (8818B)


#-
#:SmallSize 5000000
#:LargeSize 20000000
#:WorkSpace 50000000
#:MaxTermSize 300000
#:TermsInSmall 30000
*#:ContinuationLines 100000
off stats;
format 75;
auto s sM;
auto i iM;
auto s tag;


#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((v3.n)^2/n^2)],[ln((v4.n)^2/n^2)];
S [ln(-v1.v2/2)],[ln(v1.v3/2)],[ln(v1.v4/2)],[ln(v2.v3/2)],[ln(v2.v4/2)],[ln(-v3.v4/2)];
S [ln(v1.v2)],[ln(v1.v3)],[ln(v1.v4)],[ln(v2.v3)],[ln(v2.v4)],[ln(v3.v4)];
S [ln(s/(2*MT^2))], [ln(1/2)], [ln(-1/2)], [ln(-1)];
S [ln(nu1)], [ln(nu2)], [ln(nu3)], [ln(nu4)];
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 "9"
G proj1  = d_(Glu1,Glu2)*d_(Glu3,Glu4)*Denom(NF^2-1);
G proj2  = NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu3,Glu4,Glu100)*Denom(NF^2-4);
G proj3  = SUNF(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100)*Denom(NF);
G proj4  = 1/2*(d_(Glu1,Glu3)*d_(Glu2,Glu4)-d_(Glu1,Glu4)*d_(Glu3,Glu2))
			-proj3;
G proj5 = NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu3,Glu4,Glu100)*Denom(4*(NF+2))
			+1/2*SUNF(Glu1,Glu4,Glu100)*SUNF(Glu3,Glu2,Glu100)
			-1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100)
			+1/4*d_(Glu1,Glu4)*d_(Glu2,Glu3)+1/4*d_(Glu1,Glu3)*d_(Glu2,Glu4)
			+d_(Glu1,Glu2)*d_(Glu3,Glu4)*Denom(2*(NF+1));
G proj6 = -NF*SUND(Glu1,Glu2,Glu100)*SUND(Glu3,Glu4,Glu100)*Denom(4*(NF-2))
			-1/2*SUNF(Glu1,Glu4,Glu100)*SUNF(Glu3,Glu2,Glu100)
			+1/4*SUNF(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100)
			+1/4*d_(Glu1,Glu4)*d_(Glu2,Glu3)+1/4*d_(Glu1,Glu3)*d_(Glu2,Glu4)
			-d_(Glu1,Glu2)*d_(Glu3,Glu4)*Denom(2*(NF-1));
G proj7 = i_*SUND(Glu3,Glu4,Glu100)*SUNF(Glu1,Glu2,Glu100)
			+i_*SUND(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100);
G proj8 = i_*SUND(Glu3,Glu4,Glu100)*SUNF(Glu1,Glu2,Glu100)
			-i_*SUND(Glu1,Glu2,Glu100)*SUNF(Glu3,Glu4,Glu100);
G proj9  = 1/2*(SUND(Glu1,Glu3,Glu100)*i_*SUNF(Glu2,Glu100,Glu4)
			-SUND(Glu2,Glu100,Glu4)*i_*SUNF(Glu1,Glu3,Glu100));

.sort
Skip;
#do i=1,`ColBasDim'
	L proj`i'b = proj`i';
#enddo
Multiply replace_(Col1,Col101,Col2,Col102,Col3,Col103,Col4,Col104,Glu100,Glu200,Glu1,Glu101,Glu2,Glu102,Glu3,Glu103,Glu4,Glu104,Glu201,Glu301);
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
Skip;

#do i=1,`ColBasDim'
#do j=1,`ColBasDim'
	G P`i'x`j' =
			proj`i' * proj`j'b*d_(Glu1,Glu101)*d_(Glu2,Glu102)*d_(Glu3,Glu103)*d_(Glu4,Glu104);
#enddo
#enddo

#call SUn
id a = 1/2;
id NA = NF^2-1;

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);
id Denom(?den) = rat(1,?den);
id dummy(?num) = rat(?num,1);
*id dummy(?num)*Denom(?den)=rat(?num,?den);
.sort
PolyRatFun;
id rat(S?,T?) = S/T;
.sort
id dummy(?k) = exp_(?k,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   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   A34 = v3(n1)/(-v3.l)*(-v4(m1))/(v4.l)*Ngluon(n1,m1)/l.l;

*
* Color factors
*
L C12 = -SUNF(Glu99,Glu101,Glu1)*SUNF(Glu99,Glu2,Glu102)*d_(Glu3,Glu103)*d_(Glu4,Glu104);
L C13 = -SUNF(Glu99,Glu1,Glu101)*SUNF(Glu99,Glu103,Glu3)*d_(Glu2,Glu102)*d_(Glu4,Glu104);
L C14 = -SUNF(Glu99,Glu1,Glu101)*SUNF(Glu99,Glu104,Glu4)*d_(Glu2,Glu102)*d_(Glu3,Glu103);
L C23 = -SUNF(Glu99,Glu102,Glu2)*SUNF(Glu99,Glu3,Glu103)*d_(Glu1,Glu101)*d_(Glu4,Glu104);
L C24 = -SUNF(Glu99,Glu102,Glu2)*SUNF(Glu99,Glu4,Glu104)*d_(Glu1,Glu101)*d_(Glu3,Glu103);
L C34 = -SUNF(Glu99,Glu3,Glu103)*SUNF(Glu99,Glu104,Glu4)*d_(Glu1,Glu101)*d_(Glu2,Glu102);

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 *
(
	+C12*A12
	+C13*A13
	+C14*A14
	+C23*A23
	+C24*A24
	+C34*A34
);
#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.v3*l.l^-1*v1.l^-1*v3.l^-1 = + [alpha_s/pi] *
		( 2*eps^-2 - eps^-1*([ln(v1.v3/2)] + gamma - [ln(4*Pi)]) );

id v1.v4*l.l^-1*v1.l^-1*v4.l^-1 = + [alpha_s/pi] *
		( 2*eps^-2 - eps^-1*([ln(v1.v4/2)] + gamma - [ln(4*Pi)]) );

id v2.v3*l.l^-1*v2.l^-1*v3.l^-1 = + [alpha_s/pi] *
		( 2*eps^-2 - eps^-1*([ln(v2.v3/2)] + gamma - [ln(4*Pi)]) );

id v2.v4*l.l^-1*v2.l^-1*v4.l^-1 = + [alpha_s/pi] *
		( 2*eps^-2 - eps^-1*([ln(v2.v4/2)] + gamma - [ln(4*Pi)]) );

id v3.v4*l.l^-1*v3.l^-1*v4.l^-1 = + [alpha_s/pi] *
		( 2*eps^-2 - eps^-1*([ln(-v3.v4/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]/2 *
		( 2*eps^-2 - eps^-1*([ln((v3.n)^2/n^2)] + gamma - [ln(4*Pi)]) );

id v4.n*l.l^-1*v4.l^-1*n.l^-1 = + [alpha_s/pi]/2 *
		( 2*eps^-2 - eps^-1*([ln((v4.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((v3.n)^2/n^2)] = [ln(1/2)];
*id [ln((v4.n)^2/n^2)] = [ln(1/2)];
id [ln((v1.n)^2/n^2)] = [ln(nu1)];
id [ln((v2.n)^2/n^2)] = [ln(nu2)];
id [ln((v3.n)^2/n^2)] = [ln(nu3)];
id [ln((v4.n)^2/n^2)] = [ln(nu4)];
id [ln(-v1.v2/2)] = [ln(1/2)]+[ln(v1.v2)]+[ln(-1)];
id [ln(-v3.v4/2)] = [ln(1/2)]+[ln(v3.v4)]+[ln(-1)];
id [ln(v1.v3/2)] = [ln(1/2)]+[ln(v1.v3)];
id [ln(v1.v4/2)] = [ln(1/2)]+[ln(v1.v4)];
id [ln(v2.v3/2)] = [ln(1/2)]+[ln(v2.v3)];
id [ln(v2.v4/2)] = [ln(1/2)]+[ln(v2.v4)];
id [ln(v1.v2)] = 0;
id [ln(v3.v4)] = 0;
*id [ln(-v1.v2/2)] = [ln(-1/2)];
*id NF^(-1) = cA-2*cF;
*id NF = cA;

AntiBracket NF;
Print;
.end