Heavy-light mesons and mixing
When the quark and antiquark have different masses, the spin-orbit force has a part that does not conserve total quark spin. It mixes the
using GIModel
params, mq = load_parameters_and_quark_masses(default_parameters_path())
P_levels = spectrum_levels(1; L_labels = ("P",))One system: the charmed-strange mesons
Ds = compute_spectrum(params, Meson(mq, :c, :s); levels = P_levels, solver = OscillatorSolver())MixedSpectrum: cs, 4 levels — all values in GeV
level central contact fine str mixing mass
1^1P_1 2.5650 -0.0147 0.0000 -0.0029 2.5474
1^3P_0 2.5756 0.0062 -0.1011 0.0000 2.4807
1^3P_1 2.5655 0.0050 -0.0189 0.0029 2.5545
1^3P_2 2.5672 0.0037 0.0202 0.0000 2.5911
(2 levels carry mixing; see `spec.states[i].mixings`)The two mixing column;
lower = spectrum_state(Ds, "1^1P_1")
[(c.basis.label, round(c.coefficient; digits = 3)) for c in physical_components(Ds, lower)]2-element Vector{Tuple{String, Float64}}:
("1^1P_1", 0.771)
("1^3P_1", -0.637)With the convention of Conventions and units, the lower state is
function lower_state_angle(spec)
a, b = spectrum_state(spec, "1^1P_1"), spectrum_state(spec, "1^3P_1")
low = a.mass_GeV < b.mass_GeV ? a : b
coefficient(label) = sum((c.coefficient for c in physical_components(spec, low)
if c.basis.label == label); init = 0.0)
s, t = coefficient("1^1P_1"), coefficient("1^3P_1")
s < 0 && ((s, t) = (-s, -t)) # singlet component positive
return (θ_deg = round(atan(t, s) * 180 / π; digits = 1), P_singlet = round(s^2; digits = 3))
end
lower_state_angle(Ds)(θ_deg = -39.6, P_singlet = 0.594)All flavors at once
The quark comes first and the antiquark second, following the paper’s sector labels:
systems = [(:u, :s), (:c, :u), (:c, :s), (:b, :u), (:b, :s), (:b, :c), (:c, :c)]
results = map(systems) do (f1, f2)
spec = compute_spectrum(params, Meson(mq, f1, f2); levels = P_levels, solver = OscillatorSolver())
(f1, f2) => lower_state_angle(spec)
end
for ((f1, f2), r) in results
println(rpad("$f1 $(f2)bar", 10), "θ = ", lpad(r.θ_deg, 6), "° P(¹P₁) = ", r.P_singlet)
endu sbar θ = 4.3° P(¹P₁) = 0.994
c ubar θ = -25.8° P(¹P₁) = 0.811
c sbar θ = -39.6° P(¹P₁) = 0.594
b ubar θ = -28.0° P(¹P₁) = 0.78
b sbar θ = -41.1° P(¹P₁) = 0.567
b cbar θ = 69.2° P(¹P₁) = 0.127
c cbar θ = 90.0° P(¹P₁) = 0.0For
Anatomy of the mixing element
The off-diagonal element has two pieces with opposite signs: one-gluon exchange (vector) and Thomas precession in the confining potential (scalar). spin_orbit_mixing_components evaluates them between the unmixed waves:
function mixing_anatomy(f1, f2)
meson = Meson(mq, f1, f2)
fixed = fixed_spectrum(params, meson; levels = P_levels, solver = OscillatorSolver())
ws = radial_wave(fixed, spectrum_state(fixed, "1^1P_1"))
wt = radial_wave(fixed, spectrum_state(fixed, "1^3P_1"))
c = spin_orbit_mixing_components(params, meson.constituent_masses, "P", ws, wt)
gap = spectrum_state(fixed, "1^3P_1").mass_GeV - spectrum_state(fixed, "1^1P_1").mass_GeV
return (vector_MeV = round(1e3c.vector; digits = 1), thomas_MeV = round(1e3c.thomas; digits = 1),
total_MeV = round(1e3c.total; digits = 1), diagonal_gap_MeV = round(1e3gap; digits = 1))
end
for (f1, f2) in systems[1:6]
println(rpad("$f1 $(f2)bar", 10), mixing_anatomy(f1, f2))
endu sbar (vector_MeV = 7.9, thomas_MeV = -8.9, total_MeV = -1.1, diagonal_gap_MeV = 13.9)
c ubar (vector_MeV = -25.3, thomas_MeV = 29.1, total_MeV = 3.7, diagonal_gap_MeV = 5.9)
c sbar (vector_MeV = -18.0, thomas_MeV = 21.5, total_MeV = 3.5, diagonal_gap_MeV = 1.3)
b ubar (vector_MeV = -31.7, thomas_MeV = 33.4, total_MeV = 1.7, diagonal_gap_MeV = 2.3)
b sbar (vector_MeV = -24.9, thomas_MeV = 26.6, total_MeV = 1.6, diagonal_gap_MeV = 0.4)
b cbar (vector_MeV = -9.4, thomas_MeV = 6.8, total_MeV = -2.6, diagonal_gap_MeV = -5.9)The mixing angle is set by the ratio of the off-diagonal element to the gap between the unmixed
Comparison with the literature
The 1985 paper quotes the ground-state angles in the captions of Figs. 4, 7 and 9. The same authors’ model, with the same parameters, was used again in later papers; Godfrey and Kokoski (1991), Table I, lists angles for the same six systems. The table below puts the three side by side (degrees, in the convention above; the Godfrey–Kokoski
published = Dict(
(:u, :s) => (+34, +5), (:c, :u) => (-41, -26), (:c, :s) => (-44, -38),
(:b, :u) => (-43, -31), (:b, :s) => (-45, -40), (:b, :c) => (-53, +68))
println(rpad("system", 10), lpad("GIModel", 9), lpad("GI 1985", 9), lpad("GK 1991", 9))
for ((f1, f2), r) in results[1:6]
gi85, gk91 = published[(f1, f2)]
println(rpad("$f1 $(f2)bar", 10), lpad(r.θ_deg, 9), lpad(gi85, 9), lpad(gk91, 9))
endsystem GIModel GI 1985 GK 1991
u sbar 4.3 34 5
c ubar -25.8 -41 -26
c sbar -39.6 -44 -38
b ubar -28.0 -43 -31
b sbar -41.1 -45 -40
b cbar 69.2 -53 68GIModel agrees with the later calculation to within a few degrees, while the 1985 captions differ, in one case with the opposite sign.
The angles above come from the oscillator solver; the finite-difference solver agrees within 0.1°. Because the off-diagonal element is a small difference of two larger terms, the angle is a sensitive test of both implementations, and the heavy test suite compares them. The spectrum masses agree with the 1985 figures throughout. Mixing angles: a paper erratum explains how this was traced to the 1985 caption values rather than to the implementation.
What to take away
Singlet–triplet mixing requires unequal masses and a state of each spin with the same
. Its size comes from a small off-diagonal element divided by a small diagonal gap, so it is much more sensitive than the masses.
The sign of the angle depends on the quark order and the basis phase; always state the convention when quoting an angle.