feynlag.pheno.propagator

Internal propagators for off-shell (multi-body) decay amplitudes.

A 1→2 decay squares a single vertex; a 1→3 decay through a resonance is vertex × propagator × vertex, and the propagator’s momentum flows into the trace algebra. This module supplies the propagator pieces the assembler in offshell contracts.

The massive vector numerator (for $h o VV^*$) and the squared-modulus breit_wigner() denominator were built for that 1→3 topology, where only the already-squared line shape is ever needed. diagrams needs the propagator at amplitude level — before squaring, so its complex phase survives into diagram interference — which breit_wigner() cannot provide (it is $|1/(q^2-m^2+imGamma)|^2$, not $1/(q^2-m^2+imGamma)$). propagator_denominator(), scalar_propagator() and vector_propagator() fill that gap without touching the two squared-line functions below; vector_propagator() reuses vector_propagator_numerator() verbatim for its massive case.

Functions

breit_wigner(q2, mass, width)

The squared-modulus denominator 1/((q²−m²)² + m²Γ²).

propagator_denominator(q2, mass[, width])

q² − m² + i m Γ — the single source of truth for both the amplitude-level 1/D propagators below and the squared breit_wigner() line shape (breit_wigner(q2,m,Γ) == 1/(D·conjugate(D)) for real q2, m, Γ).

scalar_propagator(q2, mass[, width])

i/(q² − m² + i m Γ) — the scalar Feynman propagator.

vector_propagator(q, q2, mass, a, b[, width])

−i(g_ab − q_a q_b/m²)/(q² − m² + i m Γ); massless (Feynman gauge) reduces to −i g_ab/q².

vector_propagator_numerator(q, m, a, b)

The massive-vector numerator g_{ab} − q_a q_b/m² (both indices lower).