![]()
Isospin and momenta reduction:
![]()
![]()
![]()
![]()
![]()
![res = {} ; Do[Clear[subres, subres1, summ, suminds, sub, sums, tmpi, tmpii, tmpsum, name, tmpsub, subsum, tmpres] ; summ = amplFC1[[rep]] //. {(SumOver[SUNIndex[ii_]] * SUNDelta[ExplicitSUNIndex[jj_Integer], SUNIndex[ii_]] * rest_) :> (rest /. ii -> jj), (SumOver[SUNIndex[ii_]] * (p : HoldPattern[Plus[(SUNDelta[ExplicitSUNIndex[jj_Integer], SUNIndex[ii_]] * _) ..]]) * rest_) :> (p * rest /. ii -> jj)} ; Print["Length of expression ", fcelements[[rep]], ": ", Length[summ]] ; subres = (Print["Finding summation indices"] ; suminds = (#[[1]]) & /@ Union[Cases[summ, _SumOver, Infinity]] ; sums = If[suminds === {}, {I1, 1}, Sequence @@ ((({#, If[FreeQ[summ, #], 1, 8]} & /@ suminds)))] ; Print["Sums: ", {sums}] ; tmpi = 0 ; tmpii = 0 ; Print["Summing..."] ; Sum[WriteString["stdout", (#[[1]]) & /@ {sums}] ; subsum = ( ((* WriteString["stdout", "."] ; *) SUNReduce[SUNReduce[SUNReduce[SUNReduce[#]]]]) & /@ (tmpres = WriteOutUMatrices[(* Print["Expanding matrices and momenta"] ; *) summ (* /. p1 -> -p3 - p4 *) /. subpar /. udrules // MomentumExpand // ExpandScalarProduct // MomentumCombine (* // Expand *)] (* ; Print["Length of expression: ", Length[tmpres], ". Reducing SU(3) structures and simplifying"] *) ; tmpres) ) /. {p2 + p3 -> -p1, -p2 - p3 -> p1} ; If[! FreeQ[subsum, (SU3F | SU3D)[___, _SUNIndex, ___], Infinity], WriteString["stdout", "Still contractions left. Summing explicitly "] ; subsum = (WriteString["stdout", "."] ; SUNReduce[#, Explicit -> True, HoldSums -> False]) & /@ Expand[subsum], subsum] ; Simplify[subsum], Evaluate[sums]] // MomentumExpand // ExpandScalarProduct // Simplify) ; res = Append[res, subres], {rep, 1, Length[amplFC1]}] ;](../HTMLFiles/index_176.gif)
![]()
![]()
The loop integrals are expressed in terms of Passarino-Veltman symbols. Further simplification:
![rep = 0 ; res3 = (++ rep ; WriteString["stdout", rep, " "] ; exp = Collect[#, {_FeynAmpDenominator}] ; If[Head[exp] === Plus, WriteString["stdout", Length, " ", Length[exp], " "] ; (WriteString["stdout", "."] ; OneLoop[q1, #, Dimension -> D]) & /@ exp, OneLoop[q1, exp, Dimension -> D]]) & /@ Take[res, {1, -1}] ;](../HTMLFiles/index_179.gif)
1 Length 3 ...2 Length 5 ...3 Length 3 ...4 Length 5 .....1 Length 3 ...2 Length 5 .....3 Length 3 ...4 Length 5 .....1 Length 3 ...2 Length 5 .....3 Length 3 ...4 Length 5 .....1 Length 3 ...2 Length 5 .....3 Length 3 ...4 Length 5 .....
![]()
![]()
Higher rank Passarino-Veltman symbols are reduced:
![res4 = CheckF[Simplify /@ ((Collect[If[FreeQ[#, PaVe, Infinity, Heads -> True], #, PaVeReduce[#]], {(* *) Pi, _DecayConstant, _B0, _A0 (* , _CouplingConstant, _Pair, _ParticleMass *)}] & /@ SUNReduce[res3, FullReduce -> True]) /. D -> Sequence[]), "KSS2res4"]](../HTMLFiles/index_182.gif)

Converted by Mathematica (July 10, 2003)