Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Unresolved-binary mass function (B4)

San Diego State University

A binary that a survey cannot resolve appears as a single, brighter source, and its inferred mass is biased high — so unresolved binaries distort the observed stellar mass function. This demo recovers the binary fraction fbf_b from that distortion, and makes the central point: getting fbf_b right requires the correct Moe & Di Stefano (2017) period–mass-ratio coupling Moe & Di Stefano, 2017, because the blended (close) binaries are a biased, high-qq subset that an independent-(P,q)(P,q) model gets wrong.

The forward model

Each binary has a primary m1m_1 (from a Maschberger IMF), a mass ratio qq (m2=qm1m_2 = q\,m_1) and a period PP; the semimajor axis aa follows Kepler’s third law. A survey resolves wide pairs and blends close ones, a<acrita < a_{\rm crit} (here 50AU50\,\mathrm{AU}):

singlem1,resolved{m1,m2},blendedmobs=L1 ⁣(L(m1)+L(m2))>m1,\text{single} \to m_1, \qquad \text{resolved} \to \{m_1, m_2\}, \qquad \text{blended} \to m_{\rm obs} = L^{-1}\!\big(L(m_1) + L(m_2)\big) > m_1,

where L(m)L(m) is the Tout et al. (1996) ZAMS mass–luminosity relation Tout et al., 1996 (provided in-package by progenax.stellar). The observed mass function is a linear mixture in fbf_b,

μk(fb)=Nsys[(1fb)Sk+fbBk],\mu_k(f_b) = N_{\rm sys}\big[(1-f_b)\,S_k + f_b\,B_k\big],

with the single template SkS_k (the IMF) and the binary template BkB_k (per-binary expected catalogue stars after resolution + blending) precomputed from a large pool. fbf_b is recovered by a per-bin Poisson MLE, with the Fisher variance from the (linear, ODE-free) information.

The controlled coupling test

The “independent” comparison uses the same pool with qq shuffled against PP — this preserves the qq and PP marginals exactly and changes only the PPqq correlation. So any bias is attributable to the coupling alone. The truth is Moe-coupled; we fit fbf_b with the (correct) Moe template and the (wrong) independent template.

Inputs and assumptions

The fit recovers one parameter, the binary fraction fbf_b; everything else is an assumed-known input. The recovered-vs-known split is the key onboarding lesson — the demo’s punchline (that the PPqq coupling must be right) is a statement about one of those assumed inputs.

Table 1:Model inputs

Input

Meaning and role

Status (fiducial)

fbf_b

Binary fraction — the science target, recovered from the Poisson mixture μk=Nsys[(1fb)Sk+fbBk]\mu_k=N_{\rm sys}[(1-f_b)S_k+f_b B_k] (FB_BOX=(0.05,0.95)).

recovered (truth 0.5)

Moe PPqqee coupling

The joint orbital model (MoeJointOrbit) that builds the correct binary template BkB_k; its PPqq correlation is the whole point.

known / fixed (assumed correct)

qminq_{\min}

Minimum mass ratio in MoeDiStefano2017Full; truncates the secondary masses feeding the blend.

known / fixed (0.1)

acrita_{\rm crit}

Resolution limit: pairs with semimajor axis a<acrita<a_{\rm crit} blend, wider ones resolve (selects which binaries distort the MF).

known / fixed (A_CRIT_AU=50 AU)

ZZ

Metallicity for the Tout ZAMS L(m)L(m) used to compute the blend mass mobs=L1(L1+L2)m_{\rm obs}=L^{-1}(L_1+L_2).

known / fixed (Z_MET=0.02, solar)

IMF

Maschberger (α=2.3\alpha=2.3, 0.08100M100\,M_\odot): draws primaries m1m_1, hence the single template SkS_k and the blend masses.

known / fixed

NsysN_{\rm sys}

Systems in the mock cluster; sets the Poisson counts and the significance of the wrong-model systematic (Nsys\propto\sqrt{N_{\rm sys}}).

known / fixed (3×1053\times10^5)

NpoolN_{\rm pool}, M_BINS, SEED

Template pool size (6×1056\times10^5), mass-function bins (30 log bins), and PRNG seeds (templates / data / qq-shuffle).

numerical choices

Result — freshly run, ALL PASS

Measured 2026-06-12 (Nsys=3×105N_{\rm sys}=3\times10^5, Npool=6×105N_{\rm pool}=6\times10^5, acrit=50a_{\rm crit}=50 AU, solar ZZ; wall 10\approx 10 s; exit 0).

The mechanism. The blended (close-pair) subset is more equal-mass under Moe than under the decoupled model — median q=0.540q = 0.540 vs 0.479 — because Moe couples short periods to high qq. That is the whole effect.

model fitted

recovered fbf_b

vs truth 0.500

Moe template (correct)

0.5016±0.00740.5016 \pm 0.0074

+0.22σ+0.22\sigma

independent template (wrong)

0.4749±0.00700.4749 \pm 0.0070

3.6σ-3.6\sigma (≈5% low)

Ignoring the PPqq coupling biases fbf_b low by ~5%. This is a systematic (a wrong-model error), so its fractional size is fixed while its significance grows as Nsys\sqrt{N_{\rm sys}}: only 1.5σ-1.5\sigma at Nsys=5×104N_{\rm sys}=5\times10^4, but 3.6σ-3.6\sigma at the 3×1053\times10^5 survey scale here. At a real cluster survey it is unambiguous. Gate summary:

Check

Gate

Status

mechanism: blended median qq (Moe > independent)

coupling present

PASS

self-consistency (Moe template @ truth)

<4σ<4\sigma Poisson (2.76)

PASS

fbf_b recovery (Moe template)

<3σ<3\sigma (+0.22)

PASS

fbf_b bias (independent template)

>3σ>3\sigma (-3.6)

PASS

Figure

Unresolved-binary mass function (scripts/demo_binary_mass_function.py, ALL
PASS). (a) The observed mass function (black) decomposed into singles (blue) and
the binary contribution (vermilion) — the blended pairs push a bump to higher
inferred mass. (b) The mechanism: the blended subset’s median q is higher under
the Moe coupling (vermilion) than the P-shuffled independent model (sky) at the
same marginals. (c) Recovered f_b: the Moe template recovers the truth (dashed)
while the independent template is biased low.

Figure 1:Unresolved-binary mass function (scripts/demo_binary_mass_function.py, ALL PASS). (a) The observed mass function (black) decomposed into singles (blue) and the binary contribution (vermilion) — the blended pairs push a bump to higher inferred mass. (b) The mechanism: the blended subset’s median qq is higher under the Moe coupling (vermilion) than the PP-shuffled independent model (sky) at the same marginals. (c) Recovered fbf_b: the Moe template recovers the truth (dashed) while the independent template is biased low.

Caveats

How to run

env -u VIRTUAL_ENV uv run --no-sync python scripts/demo_binary_mass_function.py

References

The binary PPqqee coupling is Moe & Di Stefano (2017); the ZAMS mass–luminosity relation is Tout et al. (1996). The Moe and companion models are documented on the binary statistics theory pages.

References
  1. Moe, M., & Di Stefano, R. (2017). Mind your Ps and Qs: The interrelation between period (P) and mass-ratio (Q) distributions of binary stars. The Astrophysical Journal Supplement Series, 230, 15. 10.3847/1538-4365/aa6fb6
  2. Tout, C. A., Pols, O. R., Eggleton, P. P., & Han, Z. (1996). Zero-age main-sequence radii and luminosities as analytic functions of mass and metallicity. Monthly Notices of the Royal Astronomical Society, 281, 257. 10.1093/mnras/281.1.257