These are Feynman rules for a QCD-like model with light quarks (qQ), heavy quarks (tT), gluons (g), ghosts (cC), and external photons (A), Z bosons (Z), and Higgs-like scalars coupled to the heavy quarks (H).
Note that this models sets the polarization sums computed by over the external gluons computed by DiagramFinalStateSum as if they were in the axial gauge: a gluon with momenta will have the polarization sum of
where is the massless axial momentum
corresponding to , and is . It is
then up to the user to either replace paxial[p]
by the
chosen axial vector, or to replace den[p+paxial[p]]
with
zero to be in the Feynman gauge.
$QGrafModel = "\ # Photons [A, A, +, external] # Higgs' [H, H, +, external] # Z bosons [Z, Z, +, external] # Gluons [g, g, +] # Quarks & antiquarks [q, Q, -] # Heavy quarks & antiquarks [t, T, -] # Ghosts (gluonic) [c, C, -] # Vertices [Q, q, A] [Q, q, Z] [Q, q, g] [C, c, g] [g, g, g] [g, g, g, g] [T, t, A] [T, t, Z] [T, t, g] [T, t, H]"; $QGrafOptions = "";
$MasslessFieldPattern = "q"|"Q"|"g"|"A";
Amplitude[P["q", fi1_, fi2_, _, _, p_]] := I deltaflv[fi1, fi2] deltafun[fi2, fi1] \ gammachain[slash[p], spn[fi2], spn[fi1]] den[p] Amplitude[P["t", fi1_, fi2_, _, _, p_]] := I deltaflvt[fi1, fi2] deltafun[fi2, fi1] \ (gammachain[slash[p], spn[fi2], spn[fi1]] + mt1 gammachain[spn[fi2], spn[fi1]]) den[p, mt2] Amplitude[P["g", fi1_, fi2_, _, _, p_]] := -I deltaadj[fi1, fi2] (deltalor[fi1, fi2] den[p] - Xi momentum[p, lor[fi1]] momentum[p, lor[fi2]] den[p]^2) Amplitude[P["H", fi1_, fi2_, _, _, p_]] := I den[p] Amplitude[P["c", fi1_, fi2_, _, _, p_]] := I deltaadj[fi1, fi2] den[p]
Amplitude[V[_, "Qqg", fi1_, p1_, fi2_, p2_, fi3_, p3_]] := I gs deltaflv[fi2, fi1] gammachain[gamma[lor[fi3]], spn[fi1], spn[fi2]] colorT[adj[fi3], fun[fi1], fun[fi2]] Amplitude[V[_, "Ttg", fi1_, p1_, fi2_, p2_, fi3_, p3_]] := I gs deltaflvt[fi2, fi1] gammachain[gamma[lor[fi3]], spn[fi1], spn[fi2]] colorT[adj[fi3], fun[fi1], fun[fi2]] Amplitude[V[_, "Ccg", fi1_, p1_, fi2_, p2_, fi3_, p3_]] := -gs colorf[adj[fi3], adj[fi2], adj[fi1]] momentum[-p1, lor[fi3]] Amplitude[V[_, "QqA", fi1_, p1_, fi2_, p2_, fi3_, p3_]] := (* ge *) I deltaflv[fi2, fi1] deltafun[fi1, fi2] chargeQ[flv[fi2]] \ gammachain[gamma[lor[fi3]], spn[fi1], spn[fi2]] Amplitude[V[_, "TtA", fi1_, p1_, fi2_, p2_, fi3_, p3_]] := (* ge *) I deltaflvt[fi2, fi1] deltafun[fi1, fi2] chargeQt[flv[fi2]] \ gammachain[gamma[lor[fi3]], spn[fi1], spn[fi2]] Amplitude[V[_, "QqZ", fi1_, p1_, fi2_, p2_, fi3_, p3_]] := (* gz *) I deltaflv[fi2, fi1] deltafun[fi1, fi2] ( chargeV[flv[fi2]] gammachain[gamma[lor[fi3]], spn[fi1], spn[fi2]] - (* gamma5[mu] == gamma[mu] gamma5 *) chargeA[flv[fi2]] gammachain[gamma5[lor[fi3]], spn[fi1], spn[fi2]] ) Amplitude[V[_, "ggg", fi1_, p1_, fi2_, p2_, fi3_, p3_]] := gs colorf[adj[fi1], adj[fi2], adj[fi3]] ( deltalor[fi1, fi2] momentum[p1 - p2, lor[fi3]] + deltalor[fi2, fi3] momentum[p2 - p3, lor[fi1]] + deltalor[fi3, fi1] momentum[p3 - p1, lor[fi2]] ) Amplitude[V[vi_, "gggg", fi1_, p1_, fi2_, p2_, fi3_, p3_, fi4_, p4_]] := Module[{adjX = adj[1000 + vi]}, -I gs^2 ( colorf[adjX, adj[fi1], adj[fi2]] colorf[adjX, adj[fi3], adj[fi4]] (deltalor[fi1, fi3] deltalor[fi2, fi4] - deltalor[fi1, fi4] deltalor[fi2, fi3]) + colorf[adjX, adj[fi1], adj[fi3]] colorf[adjX, adj[fi4], adj[fi2]] (deltalor[fi1, fi4] deltalor[fi2, fi3] - deltalor[fi1, fi2] deltalor[fi3, fi4]) + colorf[adjX, adj[fi1], adj[fi4]] colorf[adjX, adj[fi2], adj[fi3]] (deltalor[fi1, fi2] deltalor[fi3, fi4] - deltalor[fi1, fi3] deltalor[fi2, fi4]) ) ] Amplitude[V[_, "TtH", fi1_, p1_, fi2_, p2_, fi3_, p3_]] := gH deltaflvt[fi2, fi1] deltafun[fi2, fi1] gammachain[spn[fi1], spn[fi2]]
CutAmplitudeGlue[F[f:"H", fi_, _, mom_], F[f_, fi_, _, mom_]] := 1 CutAmplitudeGlue[F[f:"g", fi_, _, mom_], F[f_, fi_, _, mom_]] := (* -g_mn d_ab *) delta[adj[fi], adj[fi] // AmpConjugate] * (- delta[lor[fi], lor[fi] // AmpConjugate] + 2 den[mom + paxial[mom]] momentum[mom, lor[fi]] momentum[paxial[mom], lor[fi] // AmpConjugate] + 2 den[mom + paxial[mom]] momentum[mom, lor[fi] // AmpConjugate] momentum[paxial[mom], lor[fi]]) CutAmplitudeGlue[F[f:"c"|"C", fi_, _, mom_], F[f_, fi_, _, mom_]] := (* d_ab *) delta[adj[fi], adj[fi] // AmpConjugate] CutAmplitudeGlue[F[f:"Q", fi_, _, mom_], F[f_, fi_, _, mom_]] := (* p^slash d_ij d_f1f2 *) gammachain[slash[mom], spn[fi], spn[fi] // AmpConjugate] * delta[fun[fi], fun[fi] // AmpConjugate] * deltaf[flv[fi], flv[fi] // AmpConjugate] CutAmplitudeGlue[F[f:"q", fi_, _, mom_], F[f_, fi_, _, mom_]] := (* p^slash d_ij d_f1f2 *) gammachain[slash[mom], spn[fi] // AmpConjugate, spn[fi]] * delta[fun[fi], fun[fi] // AmpConjugate] * deltaf[flv[fi], flv[fi] // AmpConjugate] CutAmplitudeGlue[F[f:"T", fi_, _, mom_], F[f_, fi_, _, mom_]] := (* (p^slash - mt1) d_ij d_f1f2 *) (gammachain[slash[mom], spn[fi], spn[fi] // AmpConjugate] - mt1 gammachain[spn[fi], spn[fi] // AmpConjugate]) * delta[fun[fi], fun[fi] // AmpConjugate] * deltaft[flv[fi], flv[fi] // AmpConjugate] CutAmplitudeGlue[F[f:"t", fi_, _, mom_], F[f_, fi_, _, mom_]] := (* (p^slash + mt1) d_ij d_f1f2 *) (gammachain[slash[mom], spn[fi] // AmpConjugate, spn[fi]] + mt1 gammachain[spn[fi] // AmpConjugate, spn[fi]]) * delta[fun[fi], fun[fi] // AmpConjugate] * deltaft[flv[fi], flv[fi] // AmpConjugate]
FieldGraphvizColor["q"|"Q"] = 6; FieldGraphvizColor["t"|"T"] = 6; FieldGraphvizColor["g"] = 4; FieldGraphvizColor["c"|"C"] = 8; FieldGraphvizColor["H"] = 10; FieldGraphvizColor["A"|"Z"] = 10;
FieldTikZStyle["q"|"Q"] = "fermion"; FieldTikZStyle["t"|"T"] = "massive fermion"; FieldTikZStyle["g"] = "gluon"; FieldTikZStyle["c"|"C"] = "ghost"; FieldTikZStyle["H"] = "scalar"; FieldTikZStyle["A"|"Z"] = "vector";