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

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

About | Log | Files | Refs

Soft.ggttg.frm (10348B)


#-
#: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"
L proj1  = d_(Glu1,Glu2)*SUNT(Glu5,Col3,Col4);
L proj2  = i_*SUNF(Glu1,Glu2,Glu5)*d_(Col3,Col4);
L proj3  = SUND(Glu1,Glu2,Glu5)*d_(Col3,Col4);
L proj4  = i_*SUNF(Glu1,Glu2,Glu100)*i_*SUNF(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
L proj5  = i_*SUND(Glu1,Glu2,Glu100)*SUNF(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
L proj6  = i_*SUNF(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
L proj7  = SUND(Glu1,Glu2,Glu100)*SUND(Glu101,Glu5,Glu100)*SUNT(Glu101,Col3,Col4);
L 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);
L 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);
L 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);
L 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'
	L 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)*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,Glu992,Glu2)*d_(Col3,Col993)*d_(Col4,Col994)*d_(Glu5,Glu995);
L C13 = (-i_)*SUNF(Glu99,Glu991,Glu1)*SUNT(Glu99,Col993,Col3)*d_(Glu2,Glu992)*d_(Col4,Col994)*d_(Glu5,Glu995);
L C14 = (-i_)*SUNF(Glu99,Glu991,Glu1)*SUNT(Glu99,Col4,Col994)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Glu5,Glu995);
L C15 = (-i_)*SUNF(Glu99,Glu991,Glu1)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Col4,Col994);
L C23 = (-i_)*SUNF(Glu99,Glu2,Glu992)*SUNT(Glu99,Col993,Col3)*d_(Glu1,Glu991)*d_(Col4,Col994)*d_(Glu5,Glu995);
L C24 = (-i_)*SUNF(Glu99,Glu2,Glu992)*SUNT(Glu99,Col4,Col994)*d_(Glu1,Glu991)*d_(Col3,Col993)*d_(Glu5,Glu995);
L C25 = (-i_)*SUNF(Glu99,Glu2,Glu992)*(-i_)*SUNF(Glu99,Glu995,Glu5)*d_(Glu1,Glu991)*d_(Col3,Col993)*d_(Col4,Col994);
L C34 = SUNT(Glu99,Col993,Col3)*SUNT(Glu99,Col4,Col994)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Glu5,Glu995);
L C35 = SUNT(Glu99,Col993,Col3)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col4,Col994);
L C45 = SUNT(Glu99,Col4,Col994)*(-i_)*SUNF(Glu99,Glu5,Glu995)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col3,Col993);
L CSelf1 = SUNT(Glu99,Col203,Col3)*SUNT(Glu99,Col993,Col203)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col4,Col994)*d_(Glu5,Glu995);
L CSelf2 = SUNT(Glu99,Col204,Col4)*SUNT(Glu99,Col994,Col204)*d_(Glu1,Glu991)*d_(Glu2,Glu992)*d_(Col3,Col993)*d_(Glu5,Glu995);

.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
	+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
	G [G^ggttg_`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];
AntiBracket NF;
Print;
.sort
.store
save anc/ggttg.sav;
.end