feynlag.vacuum.diagonalize.Rotation

class feynlag.vacuum.diagonalize.Rotation(old_fields, new_fields, matrix, kind='orthogonal')[source]

A change of basis new = R · old.

Parameters:
  • old_fields – weak-basis symbols.

  • new_fields – physical-basis symbols (created by the caller — physics names like h, H, G0, A0).

  • matrix – the rotation R with new_i = Σ_j R[i,j] old_j.

  • kind – ‘orthogonal’ (default), ‘unitary’ or ‘general’ — selects how the inverse is computed (Rᵀ, R†, R⁻¹).

__init__(old_fields, new_fields, matrix, kind='orthogonal')[source]

Methods

__init__(old_fields, new_fields, matrix[, kind])

apply(M)

R M R⁻¹-conjugated matrix in the new basis (for symmetric M and orthogonal R this is R M Rᵀ).

check(M[, simplifier])

Verify that this rotation diagonalizes M.

masses_squared(M[, simplifier])

Diagonal entries of R M R⁻¹ (physical masses², new-field order).

substitution()

Dict rewriting old (weak) fields in terms of new (physical) ones: old_i → Σ_j (R⁻¹)[i,j] new_j.

Attributes

inverse