Load
FeynCalc and the necessary add-ons or other packages
description = "Gl Gl -> Gl Gl, QCD, matrix element squared, tree";
If[ $FrontEnd === Null,
$FeynCalcStartupMessages = False;
Print[description];
];
If[ $Notebooks === False,
$FeynCalcStartupMessages = False
];
$LoadAddOns = {"FeynArts"};
<< FeynCalc`
$FAVerbose = 0;
FCCheckVersion[9, 3, 1];
FeynCalc 10.0.0 (dev version, 2023-12-20 22:40:59 +01:00, dff3b835). For help, use the onlinedocumentation, check out the wiki or visit the forum.
Please check our FAQ for answers to some common FeynCalc questions and have a look at the supplied examples.
If you use FeynCalc in your research, please evaluate FeynCalcHowToCite[] to learn how to cite this software.
Please keep in mind that the proper academic attribution of our work is crucial to ensure the future development of this package!
FeynArts 3.11 (3 Aug 2020) patched for use with FeynCalc, for documentation see the manual or visit www.feynarts.de.
If you use FeynArts in your research, please cite
∙ T. Hahn, Comput. Phys. Commun., 140, 418-431, 2001, arXiv:hep-ph/0012260
Generate Feynman diagrams
Nicer typesetting
MakeBoxes[k1, TraditionalForm] := "\!\(\*SubscriptBox[\(k\), \(1\)]\)";
MakeBoxes[k2, TraditionalForm] := "\!\(\*SubscriptBox[\(k\), \(2\)]\)";
MakeBoxes[k3, TraditionalForm] := "\!\(\*SubscriptBox[\(k\), \(3\)]\)";
MakeBoxes[k4, TraditionalForm] := "\!\(\*SubscriptBox[\(k\), \(4\)]\)";
diags = InsertFields[CreateTopologies[0, 2 -> 2], {V[5], V[5]} ->
{V[5], V[5]}, InsertionLevel -> {Classes}, Model -> "SMQCD"];
Paint[diags, ColumnsXRows -> {2, 1}, Numbering -> Simple,
SheetHeader -> None, ImageSize -> {512, 256}];
Obtain the amplitude
amp[0] = FCFAConvert[CreateFeynAmp[diags], IncomingMomenta -> {k1, k2},
OutgoingMomenta -> {k3, k4}, UndoChiralSplittings -> True, ChangeDimension -> 4,
TransversePolarizationVectors -> {k1, k2, k3, k4}, List -> True, SMP -> True,
Contract -> True, DropSumOver -> True]
{−i(−i(εˉ(k1)⋅εˉ(k2))(εˉ∗(k3)⋅εˉ∗(k4))(fGlu1Glu4$AL$13693fGlu2Glu3$AL$13693+fGlu1Glu3$AL$13692fGlu2Glu4$AL$13692)gs2−i(εˉ(k1)⋅εˉ∗(k4))(εˉ(k2)⋅εˉ∗(k3))(−fGlu1Glu3$AL$13691fGlu2Glu4$AL$13691−fGlu1Glu2$AL$13690fGlu3Glu4$AL$13690)gs2−i(εˉ(k1)⋅εˉ∗(k3))(εˉ(k2)⋅εˉ∗(k4))(fGlu1Glu2$AL$13694fGlu3Glu4$AL$13694−fGlu1Glu4$AL$13695fGlu2Glu3$AL$13695)gs2),(k3+k4)22(k2⋅εˉ∗(k3)−k1⋅εˉ∗(k3))(k3⋅εˉ∗(k4))(εˉ(k1)⋅εˉ(k2))gs2fGlu1Glu2Glu5fGlu3Glu4Glu5−(k3+k4)22(k2⋅εˉ∗(k4)−k1⋅εˉ∗(k4))(k4⋅εˉ∗(k3))(εˉ(k1)⋅εˉ(k2))gs2fGlu1Glu2Glu5fGlu3Glu4Glu5+(k3+k4)22(k3⋅εˉ∗(k4))(k1⋅εˉ(k2)+k3⋅εˉ(k2)+k4⋅εˉ(k2))(εˉ(k1)⋅εˉ∗(k3))gs2fGlu1Glu2Glu5fGlu3Glu4Glu5−(k3+k4)22(k1⋅εˉ(k2)+k3⋅εˉ(k2)+k4⋅εˉ(k2))(k4⋅εˉ∗(k3))(εˉ(k1)⋅εˉ∗(k4))gs2fGlu1Glu2Glu5fGlu3Glu4Glu5+(k3+k4)22(k3⋅εˉ∗(k4))(−(k2⋅εˉ(k1))−k3⋅εˉ(k1)−k4⋅εˉ(k1))(εˉ(k2)⋅εˉ∗(k3))gs2fGlu1Glu2Glu5fGlu3Glu4Glu5−(k3+k4)22(−(k2⋅εˉ(k1))−k3⋅εˉ(k1)−k4⋅εˉ(k1))(k4⋅εˉ∗(k3))(εˉ(k2)⋅εˉ∗(k4))gs2fGlu1Glu2Glu5fGlu3Glu4Glu5−(k3+k4)2(−(k2⋅εˉ(k1))−k3⋅εˉ(k1)−k4⋅εˉ(k1))(k3⋅εˉ(k2)−k4⋅εˉ(k2))(εˉ∗(k3)⋅εˉ∗(k4))gs2fGlu1Glu2Glu5fGlu3Glu4Glu5−(k3+k4)2(k3⋅εˉ(k1)−k4⋅εˉ(k1))(k1⋅εˉ(k2)+k3⋅εˉ(k2)+k4⋅εˉ(k2))(εˉ∗(k3)⋅εˉ∗(k4))gs2fGlu1Glu2Glu5fGlu3Glu4Glu5−(k3+k4)2(−(k1⋅k3)+k1⋅k4+k2⋅k3−k2⋅k4)(εˉ(k1)⋅εˉ(k2))(εˉ∗(k3)⋅εˉ∗(k4))gs2fGlu1Glu2Glu5fGlu3Glu4Glu5,−(k4−k2)22(k2⋅εˉ∗(k4))(k1⋅εˉ∗(k3)−k2⋅εˉ∗(k3)+k4⋅εˉ∗(k3))(εˉ(k1)⋅εˉ(k2))gs2fGlu1Glu3Glu5fGlu2Glu4Glu5−(k4−k2)22(k2⋅εˉ∗(k4))(−(k1⋅εˉ(k2))−k3⋅εˉ(k2))(εˉ(k1)⋅εˉ∗(k3))gs2fGlu1Glu3Glu5fGlu2Glu4Glu5−(k4−k2)22(−(k1⋅εˉ∗(k4))−k3⋅εˉ∗(k4))(k4⋅εˉ(k2))(εˉ(k1)⋅εˉ∗(k3))gs2fGlu1Glu3Glu5fGlu2Glu4Glu5−(k4−k2)22(k4⋅εˉ(k2))(k1⋅εˉ∗(k3)−k2⋅εˉ∗(k3)+k4⋅εˉ∗(k3))(εˉ(k1)⋅εˉ∗(k4))gs2fGlu1Glu3Glu5fGlu2Glu4Glu5−(k4−k2)22(k2⋅εˉ∗(k4))(k2⋅εˉ(k1)+k3⋅εˉ(k1)−k4⋅εˉ(k1))(εˉ(k2)⋅εˉ∗(k3))gs2fGlu1Glu3Glu5fGlu2Glu4Glu5−(k4−k2)2(k2⋅εˉ(k1)+k3⋅εˉ(k1)−k4⋅εˉ(k1))(−(k2⋅εˉ∗(k3))−k4⋅εˉ∗(k3))(εˉ(k2)⋅εˉ∗(k4))gs2fGlu1Glu3Glu5fGlu2Glu4Glu5−(k4−k2)2(−(k2⋅εˉ(k1))−k4⋅εˉ(k1))(k1⋅εˉ∗(k3)−k2⋅εˉ∗(k3)+k4⋅εˉ∗(k3))(εˉ(k2)⋅εˉ∗(k4))gs2fGlu1Glu3Glu5fGlu2Glu4Glu5−(k4−k2)2(k1⋅k2+k1⋅k4+k2⋅k3+k3⋅k4)(εˉ(k1)⋅εˉ∗(k3))(εˉ(k2)⋅εˉ∗(k4))gs2fGlu1Glu3Glu5fGlu2Glu4Glu5−(k4−k2)22(k2⋅εˉ(k1)+k3⋅εˉ(k1)−k4⋅εˉ(k1))(k4⋅εˉ(k2))(εˉ∗(k3)⋅εˉ∗(k4))gs2fGlu1Glu3Glu5fGlu2Glu4Glu5,−(k3−k2)22(k2⋅εˉ∗(k3))(k1⋅εˉ∗(k4)−k2⋅εˉ∗(k4)+k3⋅εˉ∗(k4))(εˉ(k1)⋅εˉ(k2))gs2fGlu1Glu4Glu5fGlu2Glu3Glu5−(k3−k2)22(k3⋅εˉ(k2))(k1⋅εˉ∗(k4)−k2⋅εˉ∗(k4)+k3⋅εˉ∗(k4))(εˉ(k1)⋅εˉ∗(k3))gs2fGlu1Glu4Glu5fGlu2Glu3Glu5−(k3−k2)22(k2⋅εˉ∗(k3))(−(k1⋅εˉ(k2))−k4⋅εˉ(k2))(εˉ(k1)⋅εˉ∗(k4))gs2fGlu1Glu4Glu5fGlu2Glu3Glu5−(k3−k2)22(k3⋅εˉ(k2))(−(k1⋅εˉ∗(k3))−k4⋅εˉ∗(k3))(εˉ(k1)⋅εˉ∗(k4))gs2fGlu1Glu4Glu5fGlu2Glu3Glu5−(k3−k2)2(−(k2⋅εˉ(k1))−k3⋅εˉ(k1))(k1⋅εˉ∗(k4)−k2⋅εˉ∗(k4)+k3⋅εˉ∗(k4))(εˉ(k2)⋅εˉ∗(k3))gs2fGlu1Glu4Glu5fGlu2Glu3Glu5−(k3−k2)2(−(k2⋅εˉ∗(k4))−k3⋅εˉ∗(k4))(k2⋅εˉ(k1)−k3⋅εˉ(k1)+k4⋅εˉ(k1))(εˉ(k2)⋅εˉ∗(k3))gs2fGlu1Glu4Glu5fGlu2Glu3Glu5−(k3−k2)2(k1⋅k2+k1⋅k3+k2⋅k4+k3⋅k4)(εˉ(k1)⋅εˉ∗(k4))(εˉ(k2)⋅εˉ∗(k3))gs2fGlu1Glu4Glu5fGlu2Glu3Glu5−(k3−k2)22(k2⋅εˉ∗(k3))(k2⋅εˉ(k1)−k3⋅εˉ(k1)+k4⋅εˉ(k1))(εˉ(k2)⋅εˉ∗(k4))gs2fGlu1Glu4Glu5fGlu2Glu3Glu5−(k3−k2)22(k3⋅εˉ(k2))(k2⋅εˉ(k1)−k3⋅εˉ(k1)+k4⋅εˉ(k1))(εˉ∗(k3)⋅εˉ∗(k4))gs2fGlu1Glu4Glu5fGlu2Glu3Glu5}
Fix the kinematics
FCClearScalarProducts[];
SetMandelstam[s, t, u, k1, k2, -k3, -k4, 0, 0, 0, 0];
Square the amplitude
polsums[x_, vec_, aux_, spinfac_] := x // Collect2[#, Pair[_,
Momentum[Polarization[vec, __]]]] & // Isolate[#, {Polarization[vec, __]}] & //
DoPolarizationSums[#, vec, aux, ExtraFactor -> spinfac] & // FixedPoint[ReleaseHold, #] &
ClearAll[re];
Table[Print[" calculating color factors in products of the amplitudes ", i,
" and ", j, " (CC), time = ",
Timing[re[i, j] = (amp[0][[i]] ComplexConjugate[amp[0]][[j]] //
FeynAmpDenominatorExplicit //
SUNSimplify[#, Explicit -> True, SUNNToCACF -> False] &)][[1]]]; re[i, j], {i, 4}, {j, i}];
calculating color factors in products of the amplitudes 1 and 1 (CC), time = 0.235391
calculating color factors in products of the amplitudes 2 and 1 (CC), time = 0.194861
calculating color factors in products of the amplitudes 2 and 2 (CC), time = 0.130752
calculating color factors in products of the amplitudes 3 and 1 (CC), time = 0.185037
calculating color factors in products of the amplitudes 3 and 2 (CC), time = 0.138698
calculating color factors in products of the amplitudes 3 and 3 (CC), time = 0.132859
calculating color factors in products of the amplitudes 4 and 1 (CC), time = 0.185816
calculating color factors in products of the amplitudes 4 and 2 (CC), time = 0.133119
calculating color factors in products of the amplitudes 4 and 3 (CC), time = 0.133023
calculating color factors in products of the amplitudes 4 and 4 (CC), time = 0.13281
ClearAll[pre];
Table[Print[" calculating product of the amplitudes ", i, " and ", j,
" (CC), time = ", Timing[pre[i, j] = re[i, j] // polsums[#, k1, k2,
1/2] & // polsums[#, k2, k1, 1/2] & // polsums[#, k3, k4, 1] & //
polsums[#, k4, k3, 1] & // Simplify][[1]]]; pre[i, j], {i, 4}, {j, i}];
calculating product of the amplitudes 1 and 1 (CC), time = 0.496876
calculating product of the amplitudes 2 and 1 (CC), time = 0.557545
calculating product of the amplitudes 2 and 2 (CC), time = 1.30451
calculating product of the amplitudes 3 and 1 (CC), time = 0.959513
calculating product of the amplitudes 3 and 2 (CC), time = 2.00888
calculating product of the amplitudes 3 and 3 (CC), time = 1.78583
calculating product of the amplitudes 4 and 1 (CC), time = 0.884629
calculating product of the amplitudes 4 and 2 (CC), time = 1.71058
calculating product of the amplitudes 4 and 3 (CC), time = 1.9904
calculating product of the amplitudes 4 and 4 (CC), time = 1.79517
fpre[i_, j_] := pre[i, j] /; (i >= j);
fpre[i_, j_] := ComplexConjugate[pre[j, i]] /; (i < j);
ampSquared[0] = 1/((SUNN^2 - 1)^2) (Sum[fpre[i, j], {i, 1, 4}, {j, 1, 4}]) //
TrickMandelstam[#, {s, t, u, 0}] & // Simplify
(N2−1)s2t2u24N2gs4(t2+tu+u2)3
ampSquaredSUNN3[0] = ampSquared[0] /. SUNN -> 3
2s2t2u29gs4(t2+tu+u2)3
ampSquaredMassless[0] = ampSquared[0] // ReplaceAll[#, {SMP["m_u"] -> 0}] & //
TrickMandelstam[#, {s, t, u, 0}] &
−(1−N2)s2t2u24N2gs4(t2+tu+u2)3
ampSquaredMasslessSUNN3[0] = ampSquaredMassless[0] /. SUNN -> 3
2s2t2u29gs4(t2+tu+u2)3
Check the final results
```mathematica knownResults = { (9/2) SMP[“g_s”]^4 (3 - t u/s^2 - s
u/t^2 - s t/u^2) }; FCCompareResults[{ampSquaredMasslessSUNN3[0]},
{knownResults}, Text -> {“to Ellis, Stirling and Weber, QCD and
Collider Physics, Table 7.1:”, “CORRECT.”, “WRONG!”}, Interrupt ->
{Hold[Quit[1]], Automatic}, Factoring -> Function[x,
Simplify[TrickMandelstam[x, {s, t, u, 0}]]]] Print[“Time used:”,
Round[N[TimeUsed[], 3], 0.001], ” s.”];
```mathematica
\tCompare to Ellis, Stirling and Weber, QCD and Collider Physics, Table 7.1:CORRECT.
True
\tCPU Time used: 44.42 s.