feynlag.export.ufo.vvvv

Gauge self-coupling export helpers.

Assembles the 4-boson (VVVV) self-coupling into the 3 UFO Lorentz structures, and supplies the colour-stripped couplings an UNBROKEN non-abelian group needs (adjoint_vvv(), adjoint_vvvv()) — since cubic_couplings and quartic_couplings both return weak-basis values with the colour factor already inside, which must not be multiplied by a colour tensor a second time.

For a representative external ordering (i, j, k, l) of 4 physical bosons,

VVVV1 = -4 * quartic_couplings(…)[(i, j, k, l)] VVVV2 = -4 * quartic_couplings(…)[(i, k, j, l)] VVVV3 = -4 * quartic_couplings(…)[(i, l, j, k)]

matching lorentz_map.py’s VVVV1/2/3 definitions.

Why -4 and not -12

The three catalog structures are linearly dependent:

VVVV1 = M14M23 - M13M24
VVVV2 = M14M23 - M12M34      = VVVV1 + VVVV3
VVVV3 = M13M24 - M12M34

so they span a 2-dimensional space and the decomposition of a vertex is a 1-parameter family. Writing the vertex in the metric-pair basis as V = c12·M12M34 + c13·M13M24 + c14·M14M23, the Yang-Mills quartic always satisfies the traceless identity c12 + c13 + c14 = 0, and the symmetric representative is

(a, b, c) = ((c14 - c13)/3, (c14 - c12)/3, (c13 - c12)/3)

which reconstructs exactly: a + b = c14, -a + c = c13, -b - c = c12. The -12 this module shipped with omitted that /3 and therefore reconstructed 3x the true vertex. The error was invisible because tests/test_yangmills.py’s “independent” ground truth built its reference in the same over-complete convention and compared coefficient lists, never reconstructing sum(coeff * structure). Both are fixed together; see TestVVVVReconstruction there.

Feynman-rule factor

assemble_vvvv returns raw Lagrangian-level coefficients by default (no i), matching this module’s original contract and the ground-truth tests. Pass feynman_rule=True for the UFO-ready coupling i x coefficient – that is what an exported UFO needs, and with it the SU(3) 4-gluon coupling comes out i g_s^2, matching MadGraph’s stock sm GC_12.

Module Attributes

ADJOINT_VVV_COLOR

UFO colour tensor pairing with VVV1 for an unbroken non-abelian group's 3-boson self-coupling (ONE physical particle repeated three times).

ADJOINT_VVVV_COLORS

UFO colour tensors pairing with VVVV1/2/3 for an unbroken non-abelian group's 4-boson self-coupling (ONE physical particle repeated four times).

Functions

adjoint_vvv(group)

Colour-stripped VVV coupling of an UNBROKEN non-abelian group.

adjoint_vvvv(group[, feynman_rule])

Colour-stripped VVVV coupling of an UNBROKEN non-abelian group.

assemble_vvvv(quartic_raw, quadruple[, ...])

Build {lorentz_name: coeff} (VVVV1/2/3) for one boson quadruple.

metric_pair_coefficients(structures)

(c12, c13, c14) of a {VVVV1/2/3: coeff} dict.

permute_vvvv(structures, perm[, simplifier])

Structures after relabelling the external legs by perm.

structures_from_metric_pairs(c12, c13, c14)

{VVVV1/2/3: coeff} for c12*M12M34 + c13*M13M24 + c14*M14M23.