feynlag.vacuum.diagonalize.MajoranaRotation¶
- class feynlag.vacuum.diagonalize.MajoranaRotation(U, nuL, nuR, nuLbar, nuRbar, chiL, chiR, chiLbar, chiRbar, n_L)[source]¶
Rotate weak-basis neutrinos to physical Majorana mass eigenstates.
Given the Takagi factor
Uof a seesaw mass matrix (M_ν = U D Uᵀ, fromdiagonalize_takagi()onseesaw_mass_matrix()) in the left-handed basisn = (ν_L, ν_R^c), theNphysical Majorana fieldsχ_k(χ_k = χ_k^c) satisfyn = U^* χ. Becauseχis self-conjugate,(P_L χ)^c = P_R χ, so the weak Weyl fields substitute asν_L[g] → Σ_k U*[g, k] χ_L[k] ν̄_L[g] → Σ_k U[g, k] χ̄_L[k] ν_R[g] → Σ_k U[n_L+g, k] χ_R[k] ν̄_R[g] → Σ_k U*[n_L+g, k] χ̄_R[k]
(rows
0 … n_L−1ofUare theν_Lgenerations, rowsn_L …theν_Rgenerations). The convention is pinned intests/test_seesaw.py: substituting these into the SM charged current givesW ℓ̄ χ_k = (g/√2)·U*[g,k]— for the heavy states the light–heavy mixing≈ m_D M_R⁻¹, and → 0 asM_R → ∞(decoupling).- Parameters:
U – the
N×NTakagi matrix (a concrete/analyticMatrix— not a symbolicIndexedBase, whoseU[i,k]would collide with the field leg inexpand_bilinear()).nuL – the weak
ν_L/ν_RcomponentIndexedBases.nuR – the weak
ν_L/ν_RcomponentIndexedBases.nuLbar – their Dirac-adjoint
IndexedBases.nuRbar – their Dirac-adjoint
IndexedBases.chiL – the physical Majorana
IndexedBases (χ_L[k]=P_L χ_ketc.).chiR – the physical Majorana
IndexedBases (χ_L[k]=P_L χ_ketc.).chiLbar – the physical Majorana
IndexedBases (χ_L[k]=P_L χ_ketc.).chiRbar – the physical Majorana
IndexedBases (χ_L[k]=P_L χ_ketc.).n_L – number of left-handed neutrinos (the
ν_Rrow offset).
Methods
__init__(U, nuL, nuR, nuLbar, nuRbar, chiL, ...)apply(expr, gen_indices, n_gen)Rewrite
exprin the physical basis.