feynlag.pheno.amplitudes

Spin-averaged squared amplitudes for the three-leg vertex catalog.

Each function returns ⟨|M|²⟩ — summed over final-state spins and polarizations and averaged over the parent’s — so that

Γ = ⟨|M|²⟩ × √λ(M², m₁², m₂²)/(16 π M³)

with the phase-space factor from kinematics.

Every Dirac trace goes through the covariant engine in lorentz; nothing here is a hard-coded textbook formula. The one place a result is written down directly is Tr[P_{L,R}] = 2, which is the definition of the projector reduction rather than an output of it.

Covered: the three-leg catalog subset a 1→2 decay can use — SSS, FFS, FFV, VVS. VSS/VVV carry feynlag momentum tags (p(φ), see to_momentum_space()) and are not handled yet; they raise rather than being silently skipped, matching classify_spins().

Module Attributes

SUPPORTED_VERTEX_TYPES

three-leg catalog entries this module can square

Functions

amplitude_squared(vertex, kin)

⟨|M|²⟩ for a DecayVertex.

ffs_squared(g_left, g_right, kin)

S(P) → f(p₁) f̄(p₂) for Γ = g_L P_L + g_R P_R.

ffv_squared(g_left, g_right, kin[, vector_mass])

V(P) → f(p₁) f̄(p₂) for Γ^μ = γ^μ(g_L P_L + g_R P_R).

polarization_sum(p, mass, a, b)

Vector polarization sum Σ ε_a ε*_b = −g_ab + p_a p_b/m².

spin_sum(p, mass, dummy[, anti])

Fermion spin sum Σ u ū = p̸ + m (Σ v v̄ = p̸ − m with anti).

sss_squared(coupling, kin)

S → S S: a contact scalar vertex has no Lorentz structure, so ⟨|M|²⟩ = |c|².

vvs_squared(coupling, kin[, m_v1, m_v2])

S(P) → V(p₁) V(p₂) from a c·g^{μν} vertex (e.g. h W⁺W⁻).