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

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

About | Log | Files | Refs

Soft.uuttg.frm (8531B)


#-
#: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((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'
	L 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,Col1,Col101)*SUNT(Glu99,Col102,Col2)*d_(Col3,Col103)*d_(Col4,Col104)*d_(Glu5,Glu105);
L C13 = SUNT(Glu99,Col1,Col101)*SUNT(Glu99,Col103,Col3)*d_(Col2,Col102)*d_(Col4,Col104)*d_(Glu5,Glu105);
L C14 = SUNT(Glu99,Col1,Col101)*SUNT(Glu99,Col4,Col104)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Glu5,Glu105);
L C15 = SUNT(Glu99,Col1,Col101)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Col4,Col104);
L C23 = SUNT(Glu99,Col102,Col2)*SUNT(Glu99,Col103,Col3)*d_(Col1,Col101)*d_(Col4,Col104)*d_(Glu5,Glu105);
L C24 = SUNT(Glu99,Col102,Col2)*SUNT(Glu99,Col4,Col104)*d_(Col1,Col101)*d_(Col3,Col103)*d_(Glu5,Glu105);
L C25 = SUNT(Glu99,Col102,Col2)*(-i_)*SUNF(Glu99,Glu105,Glu5)*d_(Col1,Col101)*d_(Col3,Col103)*d_(Col4,Col104);
L C34 = SUNT(Glu99,Col103,Col3)*SUNT(Glu99,Col4,Col104)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Glu5,Glu105);
L C35 = SUNT(Glu99,Col103,Col3)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col4,Col104);
L C45 = SUNT(Glu99,Col4,Col104)*(-i_)*SUNF(Glu99,Glu5,Glu105)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col3,Col103);
L CSelf1 = SUNT(Glu99,Col203,Col3)*SUNT(Glu99,Col103,Col203)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col4,Col104)*d_(Glu5,Glu105);
L CSelf2 = SUNT(Glu99,Col204,Col4)*SUNT(Glu99,Col104,Col204)*d_(Col1,Col101)*d_(Col2,Col102)*d_(Col3,Col103)*d_(Glu5,Glu105);

.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^qqttg_`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)];
*id NF^(-1) = cA-2*cF;
*id NF = cA;

AntiBracket NF;
Print;
.sort
.store
save anc/qqttg.sav;
.end