Load
FeynCalc and the necessary add-ons or other packages
description = "Q Qbar -> Gl Gl with ghosts, 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[p1, TraditionalForm] := "\!\(\*SubscriptBox[\(p\), \(1\)]\)";
MakeBoxes[p2, TraditionalForm] := "\!\(\*SubscriptBox[\(p\), \(2\)]\)";
MakeBoxes[k1, TraditionalForm] := "\!\(\*SubscriptBox[\(k\), \(1\)]\)";
MakeBoxes[k2, TraditionalForm] := "\!\(\*SubscriptBox[\(k\), \(2\)]\)";
diags = InsertFields[CreateTopologies[0, 2 -> 2], {F[3, {1}], -F[3, {1}]} ->
{V[5], V[5]}, InsertionLevel -> {Classes}, Model -> "SMQCD"];
Paint[diags, ColumnsXRows -> {2, 1}, Numbering -> Simple,
SheetHeader -> None, ImageSize -> {512, 256}];


diagsGh1 = InsertFields[CreateTopologies[0, 2 -> 2], {F[3, {1}], -F[3, {1}]} ->
{-U[5], U[5]}, InsertionLevel -> {Classes}, Model -> "SMQCD"];
Paint[diagsGh1, ColumnsXRows -> {2, 1}, Numbering -> Simple,
SheetHeader -> None, ImageSize -> {512, 256}];

diagsGh2 = InsertFields[CreateTopologies[0, 2 -> 2], {F[3, {1}], -F[3, {1}]} ->
{U[5], -U[5]}, InsertionLevel -> {Classes}, Model -> "SMQCD"];
Paint[diagsGh2, ColumnsXRows -> {2, 1}, Numbering -> Simple,
SheetHeader -> None, ImageSize -> {512, 256}];

Obtain the amplitudes
amp[0] = FCFAConvert[CreateFeynAmp[diags], IncomingMomenta -> {p1, p2},
OutgoingMomenta -> {k1, k2}, UndoChiralSplittings -> True, ChangeDimension -> 4,
List -> False, SMP -> True, Contract -> True, DropSumOver -> True]
−(p2−k2)2−mu2gs2TCol5Col1Glu3TCol2Col5Glu4(φ(−p2,mu)).(γˉ⋅εˉ∗(k2)).(γˉ⋅(k2−p2)+mu).(γˉ⋅εˉ∗(k1)).(φ(p1,mu))−(p2−k1)2−mu2gs2TCol5Col1Glu4TCol2Col5Glu3(φ(−p2,mu)).(γˉ⋅εˉ∗(k1)).(γˉ⋅(k1−p2)+mu).(γˉ⋅εˉ∗(k2)).(φ(p1,mu))+(k1+k2)2igs2TCol2Col1Glu5fGlu3Glu4Glu5(k1⋅εˉ∗(k1)+2(k2⋅εˉ∗(k1)))(φ(−p2,mu)).(γˉ⋅εˉ∗(k2)).(φ(p1,mu))+(k1+k2)2igs2TCol2Col1Glu5fGlu3Glu4Glu5(−2(k1⋅εˉ∗(k2))−k2⋅εˉ∗(k2))(φ(−p2,mu)).(γˉ⋅εˉ∗(k1)).(φ(p1,mu))+(k1+k2)2igs2TCol2Col1Glu5fGlu3Glu4Glu5(εˉ∗(k1)⋅εˉ∗(k2))(φ(−p2,mu)).(γˉ⋅(k1−k2)).(φ(p1,mu))
ampGh1[0] = FCFAConvert[CreateFeynAmp[diagsGh1], IncomingMomenta -> {p1, p2},
OutgoingMomenta -> {k1, k2}, UndoChiralSplittings -> True, ChangeDimension -> 4,
List -> False, SMP -> True, Contract -> True, DropSumOver -> True]
(k1+k2)2igs2TCol2Col1Glu5fGlu3Glu4Glu5(φ(−p2,mu)).(γˉ⋅k2).(φ(p1,mu))
ampGh2[0] = FCFAConvert[CreateFeynAmp[diagsGh2], IncomingMomenta -> {p1, p2},
OutgoingMomenta -> {k1, k2}, UndoChiralSplittings -> True, ChangeDimension -> 4,
List -> False, SMP -> True, Contract -> True, DropSumOver -> True]
(k1+k2)2igs2TCol2Col1Glu5fGlu3Glu4Glu5(φ(−p2,mu)).(γˉ⋅k1).(φ(p1,mu))
Fix the kinematics
FCClearScalarProducts[];
SetMandelstam[s, t, u, p1, p2, -k1, -k2, SMP["m_u"], SMP["m_u"], 0, 0];
Square the amplitudes
ampSquaredUnphys[0] = 1/(SUNN^2) (amp[0] (ComplexConjugate[amp[0]])) //
FeynAmpDenominatorExplicit // SUNSimplify[#, Explicit -> True,
SUNNToCACF -> False] & // FermionSpinSum[#, ExtraFactor -> 1/2^2] & //
DiracSimplify // DoPolarizationSums[#, k1, 0] & //
DoPolarizationSums[#, k2, 0] & // TrickMandelstam[#, {s, t, u, 2 SMP["m_u"]^2}] & //
Simplify
2N3s2(u−mu2)2(t−mu2)21(N2−1)gs4(mu8(N2(3t2+37tu+3u2)+6s2)+mu4(N2(5t4+35t3u+43t2u2+35tu3+5u4)−s2(3t2+14tu+3u2))−mu2(t+u)(N2(t4+8t3u+5t2u2+8tu3+u4)−s2(t2+6tu+u2))−3N2mu6(3t3+19t2u+19tu2+3u3)+9N2mu10(t+u)−11N2mu12+tu(N2(t4+3t2u2+u4)−s2(t2+u2)))
ampSquaredGh1[0] = 1/(SUNN^2) (ampGh1[0] (ComplexConjugate[ampGh1[0]])) //
FeynAmpDenominatorExplicit // SUNSimplify[#, Explicit -> True,
SUNNToCACF -> False] & // FermionSpinSum[#, ExtraFactor -> 1/2^2] & //
DiracSimplify // TrickMandelstam[#, {s, t, u, 2 SMP["m_u"]^2}] & //
Simplify
−4Ns2(N2−1)gs4(mu2−u)(t−mu2)
ampSquaredGh2[0] = 1/(SUNN^2) (ampGh1[0] (ComplexConjugate[ampGh1[0]])) //
FeynAmpDenominatorExplicit // SUNSimplify[#, Explicit -> True,
SUNNToCACF -> False] & // FermionSpinSum[#, ExtraFactor -> 1/2^2] & //
DiracSimplify // TrickMandelstam[#, {s, t, u, 2 SMP["m_u"]^2}] & //
Simplify
−4Ns2(N2−1)gs4(mu2−u)(t−mu2)
Subtract unphysical degrees of freedom using ghost contributions
ampSquared[0] = ampSquaredUnphys[0] - ampSquaredGh1[0] - ampSquaredGh2[0] // Together
2N3s2(mu2−u)2(t−mu2)21(N2−1)gs4(−N2t5mu2+5N2t4mu4−9N2t4umu2−10N2t3u2mu2−8N2t3mu6+32N2t3umu4−10N2t2u3mu2+34N2t2u2mu4−48N2t2umu6−9N2tu4mu2+32N2tu3mu4−48N2tu2mu6+12N2tmu10+28N2tumu8−N2u5mu2+5N2u4mu4−8N2u3mu6−12N2mu12+12N2umu10+s2t3mu2−3s2t2mu4+7s2t2umu2+7s2tu2mu2−14s2tumu4+s2u3mu2−3s2u2mu4+6s2mu8+N2t5u+2N2t3u3+N2tu5−s2t3u−s2tu3)
ampSquaredMassless[0] = ampSquared[0] // ReplaceAll[#, {SMP["m_u"] -> 0}] & //
TrickMandelstam[#, {s, t, u, 0}] &
2N3s2tu(1−N2)gs4(t2+u2)(−N2t2−N2u2+s2)
ampSquaredMasslessSUNN3[0] = ampSquaredMassless[0] /. SUNN -> 3
−27s2tu4gs4(t2+u2)(s2−9t2−9u2)
Check the final results
knownResults = {
(32/27) SMP["g_s"]^4 (t^2 + u^2)/(t u) - (8/3) SMP["g_s"]^4 (t^2 + u^2)/(s^2)
};
FCCompareResults[{ampSquaredMasslessSUNN3[0]}, {knownResults},
Text -> {"\tCompare 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["\tCPU Time used: ", Round[N[TimeUsed[], 3], 0.001], " s."];
\tCompare to Ellis, Stirling and Weber, QCD and Collider Physics, Table 7.1:CORRECT.
True
\tCPU Time used: 33.796 s.