feynlag.pheno.calculator.DecayCalculator¶
- class feynlag.pheno.calculator.DecayCalculator(model, masses, boson_fields=(), fermion_sectors=(), conjugate_map=None, color_factors=None, parameters=None, simplifier=None, particle_map=None, particles=())[source]¶
Two-body decay widths and branching ratios for a built model.
- Parameters:
model – a
Modelin its physical basis (tadpoles solved, rotations registered).masses –
{leg: mass}. Fermion legs areIndexedobjects, so a mass may be keyed by the exact leg or by itsIndexedBase— the base is the fallback.boson_fields – physical boson symbols to extract vertices over.
fermion_sectors – Lagrangian sectors carrying fermion bilinears (e.g.
('gauge', 'yukawa')).conjugate_map – passed through to the bosonic extractor.
color_factors –
{leg: N_c}; anything absent defaults to 1.parameters – optional
ParameterSetfornumeric().simplifier – optional callable applied to bosonic couplings.
particle_map –
{weyl_leg: physical_particle}identifying the two Weyl legs of one Dirac fermion, so itsP_LandP_Rcurrents merge into a single channel — seeresolve_leg(). Omitting it for a Dirac fermion splitsZ → e⁺e⁻into two wrong half-channels.particles – list of
DiracParticle— the recommended way to declare physical fermions. Each bundles its two Weyl legs, mass and colour $N_c$, so theparticle_map/masses/color_factorstriple cannot fall out of sync. Colour is applied once per channel (no per-leg double count), and any extracted fermion vertex claimed by no declared particle is surfaced inunmatched_channels(with a warning) instead of silently vanishing. Merges withmasses(bosons stay there) and with an explicitparticle_map/color_factorsif also given.
- __init__(model, masses, boson_fields=(), fermion_sectors=(), conjugate_map=None, color_factors=None, parameters=None, simplifier=None, particle_map=None, particles=())[source]¶
Methods
__init__(model, masses[, boson_fields, ...])branching_ratios(parent){(child1, child2): Γ_i/Γ_tot}.channels(parent)Every open two-body channel of
parent.loop_widths(m_h, m_t, m_W, m_Z, v, alpha, ...)Loop-induced Higgs widths
{('g','g'), ('γ','γ'), ('Z','γ')}(Tier 3).mass_of(leg)Mass of a leg, falling back to its
IndexedBase.numeric(expr[, extra])Evaluate
exprat the model's parameter point.numeric_branching_ratios(parent[, extra]){(child1, child2): BR}as floats, closed channels at 0.numeric_partial_widths(parent[, extra]){(child1, child2): Γ}as floats, with closed channels at 0.numeric_total_width(parent[, extra])Γ_totas a float, counting only channels open at this point.offshell_vv_width(parent, vector, m_parent, ...)Off-shell
parent → V (V^* → f f̄')width (Tier 2).partial_widths(parent){(child1, child2): Γ}for every open channel.total_width(parent)Γ_tot = Σ Γ_iover open two-body channels.vertices()All three-leg vertices, extracted once and cached.
Attributes
unmatched_channelsFermion channels dropped because a daughter had no declared mass.