The file src/35-hadrons/isospin_cottingham.py of the validation package of the paper 35-hadr, rendered with an anchor per line; the file itself is beside this page.
1#!/usr/bin/env python32# WP5 - isospin and electromagnetic splittings, and the octet hyperfine fine structure.3#4# Framed-rational / 1-algebra: the Coleman-Glashow relation and the spin correlators are exact5# rational identities; the EM weights are exact charge-squared rationals. No RNG, no logs, no6# fit. PDG enters once as the labelled [approx] readout.7#8# Isospin breaking has two additive (one-body) sources: the d-u current-mass seed (28-flavour,9# with theta-bar = 0 placing the breaking in the up-down sector, D6d) and the electromagnetic10# self-energy. Write a single isospin-breaking unit delta = delta_d - delta_u per (d <- u) swap.1112from fractions import Fraction as F1314def zero(v):15 return all(x == 0 for x in v)1617def lincomb(cs, vs):18 n = len(vs[0]); out = [F(0)] * n19 for c, v in zip(cs, vs):20 for i in range(n):21 out[i] += F(c) * v[i]22 return out2324print("== WP5a: Coleman-Glashow as an exact one-body identity ==")25# Each octet isospin splitting, in units of delta = delta_d - delta_u, counting (d minus u) content:26# n - p : udd - uud = 1*delta27# Xi^- - Xi^0 : dss - uss = 1*delta28# Sigma^- - Sigma^+ : dds - uus = 2*delta29# basis (delta,): coefficient vectors30np_ = (F(1),)31XimX0 = (F(1),)32SmSp = (F(2),)33cg = lincomb([1, 1, -1], [np_, XimX0, SmSp]) # (n-p) + (Xi^- - Xi^0) - (Sigma^- - Sigma^+)34print(f" (n-p) + (Xi^- - Xi^0) - (Sigma^- - Sigma^+) in units of delta = {tuple(str(x) for x in cg)}")35print(f" -> Coleman-Glashow identity holds for ALL delta: {zero(cg)} (EM self-energy cancels)")36assert zero(cg)3738print("\n== WP5b: n heavier than p, from the d-u seed vs charge-squared EM ==")39# delta = (m_d - m_u) + (EM_d - EM_u). One-body EM self-energy ~ Q^2.40Qu, Qd = F(2, 3), F(-1, 3)41emu, emd = Qu * Qu, Qd * Qd # charge-squared weights42print(f" charge-squared EM weights: Q_u^2 = {emu}, Q_d^2 = {emd} -> EM(u) > EM(d), so EM_d - EM_u < 0")43print(f" proton uud has sum Q^2 = {Qu*Qu+Qu*Qu+Qd*Qd}; neutron udd has sum Q^2 = {Qu*Qu+Qd*Qd+Qd*Qd}")44print( " so EM makes the proton heavier; the observed n > p requires the mass seed m_d - m_u to win.")45print( " delta = (m_d - m_u) [+] + (EM_d - EM_u) [-]; sign(delta) = sign(n-p) > 0 fixes m_d > m_u (28-flavour seed).")4647print("\n== WP5c: the Sigma-Lambda splitting as octet hyperfine fine structure ==")48# Lambda and Sigma^0 share content uds but differ in the light (ud) pair spin:49# Lambda: (ud) spin-0 ; Sigma: (ud) spin-1. Exact spin correlators:50SuSd_L = F(-3, 4) # ud spin-0: S_u.S_d = -3/451SuSd_S = F( 1, 4) # ud spin-1: S_u.S_d = +1/452# strange coupling to the ud pair: <S_s.(S_u+S_d)> = 1/2[S(S+1) - S_ud(S_ud+1) - 3/4]53def Ss_dot_pair(twoS, twoSud):54 S = F(twoS, 2); Sud = F(twoSud, 2)55 return F(1, 2) * (S * (S + 1) - Sud * (Sud + 1) - F(3, 4))56SsPair_L = Ss_dot_pair(1, 0) # Lambda: ud spin-0, total 1/2 -> 057SsPair_S = Ss_dot_pair(1, 2) # Sigma : ud spin-1, total 1/2 -> -158print(f" ud pair S_u.S_d: Lambda {SuSd_L} Sigma {SuSd_S} (difference {SuSd_S - SuSd_L})")59print(f" s-to-pair <S_s.(S_u+S_d)>: Lambda {SsPair_L} Sigma {SsPair_S}")60# hyperfine: H = a_ll (S_u.S_d) + a_ls <S_s.(S_u+S_d)> , a_ls < a_ll since 1/(m_l m_s) < 1/(m_l^2)61# M_Sigma - M_Lambda = a_ll (1/4 - (-3/4)) + a_ls (-1 - 0) = a_ll - a_ls > 062print(f" M_Sigma - M_Lambda = a_ll*({SuSd_S - SuSd_L}) + a_ls*({SsPair_S - SsPair_L}) = a_ll - a_ls")63print( " since a_ls = a_ll*(m_l/m_s) < a_ll, M_Sigma - M_Lambda = a_ll(1 - m_l/m_s) > 0: Sigma heavier (derived).")6465print("\n== [approx] PDG 2024 confrontation ==")66p, n = F("938.272"), F("939.565")67Sp, S0, Sm = F("1189.37"), F("1192.642"), F("1197.449")68X0, Xm = F("1314.86"), F("1321.71")69L = F("1115.683")70lhs = (n - p) + (Xm - X0)71rhs = Sm - Sp72print(f" Coleman-Glashow: (n-p)+(Xi^- - Xi^0) = {float(lhs):.3f} MeV vs Sigma^- - Sigma^+ = {float(rhs):.3f} MeV"73 f" residual = {float((lhs-rhs)/rhs)*100:+.2f}% [approx]")74print(f" n - p = {float(n-p):.3f} MeV > 0 (mass seed wins over EM) [approx]")75print(f" M_Sigma0 - M_Lambda = {float(S0 - L):.1f} MeV > 0 (spin-1 ud pair, hyperfine) [approx]")7677print("\nWP5 PASS: Coleman-Glashow is an exact one-body identity (PDG 0.8%); n>p sign fixed by the")78print("d-u seed over charge-squared EM; the Sigma-Lambda ordering is derived hyperfine fine structure.")79