Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New examples #74

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
121 changes: 121 additions & 0 deletions FeynCalc/Examples/QCD/Tree/QGl-GaQ.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
(* ::Package:: *)

(* :Title: QGl-GaQ *)

(*
This software is covered by the GNU General Public License 3.
Copyright (C) 1990-2020 Rolf Mertig
Copyright (C) 1997-2020 Frederik Orellana
Copyright (C) 2014-2020 Vladyslav Shtabovenko
*)

(* :Summary: Q Gl -> Ga Q, QCD, matrix element squared, tree *)

(* ------------------------------------------------------------------------ *)



(* ::Title:: *)
(*Quark-gluon scattering into a virtual photon and a quark*)


(* ::Section:: *)
(*Load FeynCalc and the necessary add-ons or other packages*)


description="Q Gl -> Ga Q, 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];


(* ::Section:: *)
(*Generate Feynman diagrams*)


(* ::Text:: *)
(*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}], V[5]} ->
{V[1], F[3, {1}]}, InsertionLevel -> {Classes}, Model -> "SMQCD"];

Paint[diags, ColumnsXRows -> {2, 1}, Numbering -> Simple,
SheetHeader->None,ImageSize->{512,256}];


(* ::Section:: *)
(*Obtain the amplitude*)


amp[0] = FCFAConvert[CreateFeynAmp[diags], IncomingMomenta->{p1,p2},
OutgoingMomenta->{k1,k2},UndoChiralSplittings->True,ChangeDimension->4,
TransversePolarizationVectors->{p2}, List->False, SMP->True,
Contract->True,DropSumOver->True, Prefactor->3/2 SMP["e_Q"]]


(* ::Section:: *)
(*Fix the kinematics*)


FCClearScalarProducts[];
SetMandelstam[s, t, u, p1, p2, -k1, -k2, SMP["m_u"], 0, M, SMP["m_u"]];


(* ::Section:: *)
(*Square the amplitude*)


(* ::Text:: *)
(*Now come the usual steps, but with some special features. We do not average over the polarizations of the virtual photon but use the gauge trick for the sum over its polarizations. In this case the sum goes over all 4 unphysical polarizations, not just 2.*)


ampSquared[0] = 1/(SUNN(SUNN^2-1))(amp[0] (ComplexConjugate[amp[0]]))//
FeynAmpDenominatorExplicit//SUNSimplify[#,Explicit->True,
SUNNToCACF->False]&//FermionSpinSum[#, ExtraFactor -> 1/2]&//
DiracSimplify//DoPolarizationSums[#,k1,0,VirtualBoson->True,GaugeTrickN->4]&//
DoPolarizationSums[#,p2,k1]&//TrickMandelstam[#,{s,t,u,2 SMP["m_u"]^2+M^2}]&//
Simplify


ampSquaredMassless[0] = ampSquared[0]//ReplaceAll[#,{SMP["m_u"] -> 0}]&//
TrickMandelstam[#,{s,t,u,M^2}]&


ampSquaredMasslessSUNN3[0] = ampSquaredMassless[0]/.SUNN->3


(* ::Section:: *)
(*Check the final results*)


ampSquaredMasslessSUNN3[0]-knownResults//Simplify//
TrickMandelstam[#,{s,t,u,M^2}]&


knownResults = {
(2/3) SMP["e"]^2 SMP["e_Q"]^2 SMP["g_s"]^2 (-t/s-s/t + 2 M^2(s+t-M^2)/(s t))//
TrickMandelstam[#,{s,t,u,M^2}]&
};
FCCompareResults[{ampSquaredMasslessSUNN3[0]},{knownResults},
Text->{"\tCheck with R. Field, Applications of Perturbative QCD, Eq 5.2.14:",
"CORRECT.","WRONG!"}, Interrupt->{Hold[Quit[1]],Automatic}];
Print["\tCPU Time used: ", Round[N[TimeUsed[],3],0.001], " s."];