Skip to content

Halo clustering — xi_hh, xi_hh_smallr, r_ab

xi_hh — full-scale halo–halo correlation (derived)

ξ_hh(r | M₁, M₂) for differential mass-bin pairs, over the full xi_mm support. A derived property combining xi_mm, b_cum, xi_hh_smallr, and r_ab.

import numpy as np
res = reg.predict("xi_hh", "LCDM", 0.25, [0.31, 0.677, 0.967, 0.83])
# default (2026-08-20): the density-threshold chain in mass coordinates —
# 0.1-dex bins over [12.8, 14.2] on the native radial bin centres
res = reg.predict("xi_hh", "LCDM", 0.25, theta,
                  edges=np.array([13.0, 13.3, 13.6]),   # your bin edges (log10M)
                  r=np.geomspace(3, 90, 40),            # custom radii -> exact route
                  route="auto")                         # auto | nbar | exact | bbar

res["xi_hh"]      # (Nbin, Nbin, Nr)
res["r"]          # radii (Mpc/h)
res["bin_edges"]  # the mass-bin edges used
res["b_bin"]      # per-bin <b>
res["validity"]   # per-gravity evidence + route_selection — READ IT

Routes

  • nbar (default via auto for requests inside its contract) — the released fixed-number-density chain (xi_hh_nbar) relabelled into mass coordinates, with mass-bin values from the exact pair-count mixed difference in density space. Abundances are exact by construction, so there is no emulated-HMF weighting error (the structural weakness of the mass-threshold route), and every bin pair stays physical (1 + ξ ≥ 0). Contract: radii on the native 0.051-dex measurement bin centres, r ≥ 0.5 (values are measured-bin estimates on that binning); auto admits edges inside the frozen [12.8, 14.2] window; explicit route="nbar" reaches the full per-cosmology mass span (≈[12.0–12.8, 14.3–14.9]) — for f(R) that is above the mass-threshold trained cap.
  • exact (the fallback for everything else) — algebraically exact count-weighted mixed-difference, validated over r ∈ [2.2, 100] Mpc/h. Trained support reaches each pair's data floor; below it a labelled exclusion model reconstructs the pair density down to ξ = −1 in the zero-pair core. validity["xi_mode"] distinguishes trained, reconstructed, and zero-pair values; the route does not return a NaN exclusion wedge.
  • bbar — pure factorization ⟨b⟩⟨b⟩ξ_mm, only good for r ∈ [20, 70] Mpc/h.

auto resolves per request, never per cosmology: edges below 12.8 or above 14.2, interpolated radii, r_edges rebinning, sub-0.5 radii, or a mass_extrapolation policy all fall back to exact, with the reason recorded in validity["route_selection"].

Limits

  • Above log₁₀M = 14, the exact route's LCDM branch uses the labelled empirical bias/D continuation; its modified-gravity bin edges stop at the trained cap. route="nbar" serves modified-gravity bins up to the rare-end mass cut (≈14.3–14.9) instead.
  • Radii above the xi_mm support (124.8 Mpc/h) raise. Small positive radii are accepted on the exact route and labelled by the exclusion/zero-pair model; the density route stops at its 0.5 Mpc/h science floor.

Accuracy (binned radial convention, 2026-07): full-scale ξ_hh design-sweep band medians 1.1–2.1 % to 60 Mpc/h (ΛCDM) and 1.1–2.2 % (f(R)), with median |χ| ≤ 1.0 in every band — at the five-box measurement floor; noise-floor-limited beyond. Pass r_edges= to predict("xi_hh", ...) for binned values comparable to pair-count measurements (point values at arithmetic bin centres carry a coherent 1–2 % small-r offset against binned data — a binning inconsistency, not an emulator error). The f(R) fiducials are calibration points of this chain (χ_rms 4.3/3.8 vs their 100-box SEM, floors 1.2/2.7); see the DOCUMENTATION §8b campaign notes.

xi_hh_smallr — small-r departure emulator (trained)

The trained threshold-level small-scale departure surface (the "D-surface") that xi_hh uses below the factorization window. The f(R) emulator carries a coefficient-scale-relative GP jitter floor (jitter_floor_frac = 0.05) that regularises under-fit high PCA modes — small-r ξ_hh reconstruction bands ≈ 6 % better. Not usually called directly.

Target choice (tested — don't re-explore)

The emulated target is D = ξ_AB / [b(>M₁) b(>M₂) ξ_mm] — the departure with the clustering amplitude divided out once. A 2026-07 target-choice study (smallr_reduced_target_test.py, smallr_sqrtd_gate.slurm) confirmed this is optimal:

  • Dividing out more bias (D/(b·b), (D−1)/(b·b)) is 43 %–2.3× worse — it re-injects the mass/cosmology dynamic range D was built to remove.
  • Compressing the surface (log D, √D, √(ξ_hh/ξ_mm)) lowers the D-surface column error (√D by ~5 % for f(R)) but the gain washes out in the composed binned ξ_hh — the end-to-end reconstruction gate is unchanged within noise, because the departure is a subdominant term in the total error budget (ξ_mm, HMF, mixed-difference, sim noise dominate). Not adopted.

Lesson: the composed reconstruction bands decide, not the D-surface metrics.

r_ab — halo–matter cross-correlation coefficient (trained)

rab = reg.predict("r_ab", "LCDM", 0.25, [0.31, 0.677, 0.967, 0.83])   # (1, 30, 30)
art = reg.load("r_ab", "LCDM", 0.25)
art.thresholds   # both matrix axes (log10M thresholds)
  • Output: (1, 30, 30) threshold-pair matrix on the b_cum grid.
  • Used as a stochasticity / validity guard for b_diff and xi_hh.

Redshift

All three registered at z = 0.25 only.