feynlag.pheno.vertices

Unified decay-vertex view over feynlag’s two extraction tracks.

feynlag extracts bosonic and fermionic vertices through deliberately separate machinery (see the two-track design in CLAUDE.md):

  • bosons are commuting symbols → vertices() returns typed Vertex objects;

  • fermions live inside opaque Bilinear atoms → extract_fermion_vertices() returns a raw {(bar, Γ, field): {n: {bosons: coeff}}} dict, and every caller so far (scripts/export_sm_ufo.py, examples/sm_u1x.py, examples/sm_vll.py) has hand-picked keys and hand-split P_L/P_R.

A decay calculator needs both, in one list, with the chiral split already done. DecayVertex is that common view and collect_decay_vertices() builds it. Doing the P_L/P_R split once here is the point.

Functions

classify_gamma(gamma)

Split a bilinear Γ slot into (structure, chirality).

collect_decay_vertices(model, boson_fields)

All three-leg vertices of model, bosonic and fermionic, in one list.

fermion_decay_vertices(table[, spin_map, ...])

Turn an extract_fermion_vertices() table into DecayVertex objects with the chiral split applied.

resolve_leg(leg, particle_map)

Map a Weyl leg to its physical particle, falling back to the leg.

Classes

DecayVertex(particles, vertex_type[, ...])

One three-leg vertex, usable by amplitudes.