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

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

About | Log | Files | Refs

commit 05cf12fd7ba2cd1ef9e969569d28920011ac003e
parent c9a606255c5f2f8f501b82ef536c8c40b27b8da4
Author: Bakar Chargeishvili <bakar@bcharge.de>
Date:   Tue, 29 Mar 2022 17:12:19 +0200

Import the project

Diffstat:
MREADME.md | 9+++++++--
ASUn.prc | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ASoft.ggttg.frm | 365+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ASoft.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