BGS VLIM M★ LS10 — Run Summary

Summary statistics for the DESI Bright Galaxy Survey (BGS) volume-limited stellar-mass samples from Legacy Survey DR10 (LS10). The pipeline is measure_BGS_VLIM_Mstar.ipynb for individual statistics and joint_smf_wprp_deltasigma_covariance.ipynb for the joint covariance.

Cosmology: Planck18 (H₀ = 67.4, Ω_m = 0.315)

Survey area: ~18 950 deg² (computed from randoms via HEALPix nside=64; varies ±300 deg² across samples).

Redshift column: BEST_Z. Stellar mass column: LPH_MASS_BEST (log₁₀ M★/M☉).

Weight variants

Every statistic is computed three times:

Variant

Column

Description

uniform

1

No systematic correction; volume-limited sample is complete

sys-add

WEIGHT_ADD

Additive contamination model (Berlfein+2024 Eq. 11)

sys-comb

WEIGHT_COMB

Combined additive + multiplicative model

Weights are pre-computed by sys_mapping/scripts/compute_sys_weights.py (separate mamba environment) and stored in SYS_WEIGHTS_DIR/{sample_id}_NSIDE0064_WEIGHTS.fits.

Sample inventory — individual statistics

Sample ID

N_gal

z_max

log₁₀M★_min

w(θ)

wp

SMF

C

ΔΣ-HSC

ΔΣ-DES

LS10_VLIM_ANY_9.0 z<0.08

523 486

0.08

9.0

LS10_VLIM_ANY_9.5 z<0.12

1 432 502

0.12

9.5

LS10_VLIM_ANY_10.0 z<0.18

2 759 238

0.18

10.0

LS10_VLIM_ANY_10.25 z<0.22

3 308 841

0.22

10.25

LS10_VLIM_ANY_10.5 z<0.26

3 263 228

0.26

10.5

LS10_VLIM_ANY_10.75 z<0.31

2 802 710

0.31

10.75

LS10_VLIM_ANY_11.0 z<0.35

1 619 838

0.35

11.0

LS10_VLIM_ANY_11.25 z<0.35

541 855

0.35

11.25

LS10_VLIM_ANY_11.5 z<0.35

120 882

0.35

11.5

SMF = three estimators per sample: 1/Vmax, SWML, C⁻ (see below). w(θ), wp, SMF all computed for all three weight variants where marked ✓. w(θ) for 10.75 is uniform-only. ΔΣ-HSC for 10.75, 10.25, 10.5 pending; ΔΣ-DES available for 10.0 and 11.5 (uniform only).

Sample inventory — joint covariance (SMF + wp + ΔΣ)

Output dir

log₁₀M★_min

z_max

N_JK

n_SMF bins

n_wp bins

n_ΔΣ bins

Source

BGS_Mstar9.00

9.00

0.08

100

14

10

10

HSC Y3

BGS_Mstar9.50

9.50

0.12

100

12

10

10

HSC Y3

BGS_Mstar10.00

10.00

0.18

100

10

10

10

HSC Y3

BGS_Mstar11.00

11.00

0.35

100

6

10

10

HSC Y3

BGS_Mstar11.25

11.25

0.35

100

5

10

10

HSC Y3

BGS_Mstar11.50

11.50

0.35

100

4

10

10

HSC Y3

Output files

data/
├── twopcf/{key}-wtheta[{-variant}].h5           w(θ)
├── twopcf/{key}-wp-pimax100[{-variant}].h5       w_p(r_p)
├── lf_smf/{key}-smf-vmax[{-variant}].h5          SMF 1/Vmax
├── lf_smf/{key}-smf-swml[{-variant}].h5          SMF SWML
├── lf_smf/{key}-smf-cminus[{-variant}].h5        SMF C⁻ cumulative
├── lensing/{key}-dsigma-HSC[{-variant}].h5       ΔΣ  HSC Y3
├── lensing/{key}-dsigma-DES[{-variant}].h5       ΔΣ  DES Y3
├── powspec/{key}-cl[{-variant}].h5               C_ℓ  pseudo-Cl
└── BGS_Mstar{mmin}/
    ├── joint_smf_wprp_deltasigma.h5              uniform weights
    ├── joint_smf_wprp_deltasigma-sys-add.h5      additive sys. weights
    └── joint_smf_wprp_deltasigma-sys-comb.h5     combined sys. weights

data/summary.yaml    — all output paths + Schechter fit scalars

Stellar mass function

Three estimators are computed for each BGS sample and each weight variant.

1/Vmax (Schmidt 1968) — the primary estimator. Each galaxy contributes \(w_i / (V_{\max,i}\,\Delta M_*)\) to its mass bin, where \(V_{\max,i}\) is the comoving volume over which galaxy i would remain in the sample. Jackknife covariance from NJK = 100 spatial regions.

SWML (Efstathiou, Ellis & Peterson 1988) — step-wise maximum likelihood. The accessibility matrix Hik = ΔMk if bin k is observable at galaxy i’s redshift, else 0. The SWML φk is solved by fixed-point iteration and normalised to match the 1/Vmax total density.

C⁻ (Lynden-Bell 1971) — non-parametric cumulative Φ(>M★) via the product recursion over galaxies sorted high-to-low in M★. Binned onto the 0.25 dex grid and normalised to 1/Vmax.

BGS SMF overlay

Stellar mass function φ(M★) for the available BGS VLIM samples, estimated with 1/Vmax (coloured markers with jackknife errors). Bins: 0.25 dex spacing, log₁₀(M★/M☉) ∈ [9.0, 12.5]. Literature references overlaid: Baldry+2012 GAMA I (double Schechter), Driver+2022 GAMA DR4 (1/Vmax), Moustakas+2013 PRIMUS z<0.2, Xu+2025 DESI PAC (shaded band). See Literature Benchmarks for provenance.

SMF key values at the lowest complete stellar mass bin (uniform weights, jackknife covariance):

Sample

log₁₀M★_min

z_max

log₁₀M★_ref [dex]

φ [Mpc⁻³ dex⁻¹]

LS10_VLIM_ANY_9.0

9.0

0.08

9.12

5.10 × 10⁻³ ± 1.8 × 10⁻⁵

LS10_VLIM_ANY_9.5

9.5

0.12

9.62

5.06 × 10⁻³ ± 9.0 × 10⁻⁶

LS10_VLIM_ANY_10.0

10.0

0.18

10.12

3.91 × 10⁻³ ± 4.3 × 10⁻⁶

LS10_VLIM_ANY_10.25

10.25

0.22

(pending)

(pending)

LS10_VLIM_ANY_10.5

10.5

0.26

(pending)

(pending)

LS10_VLIM_ANY_10.75

10.75

0.31

(pending)

(pending)

LS10_VLIM_ANY_11.0

11.0

0.35

11.12

7.80 × 10⁻⁴ ± 7.5 × 10⁻⁷

LS10_VLIM_ANY_11.25

11.25

0.35

11.38

3.06 × 10⁻⁴ ± 4.7 × 10⁻⁷

LS10_VLIM_ANY_11.5

11.5

0.35

11.62

7.76 × 10⁻⁵ ± 1.1 × 10⁻⁶ (joint JK)

Schechter fits

Three parametric fits are stored in data/summary.yaml per sample and weight variant:

  • STY (fit_schechter_smf_sty()) — unbinned maximum likelihood on the observed M★ distribution; JAX L-BFGS-B with Hessian covariance. Returns (log₁₀ φ★, log₁₀ M★★, α).

  • Single Schechter χ² (fit_smf_schechter()) — fits the 1/Vmax bins including an Eddington-bias convolution forward model (Zalesky+2025 Eq. 11, σ_M★ = 0.2 dex).

  • Double Schechter χ² (fit_smf_double_schechter()) — same forward model, two Schechter components (five free parameters).

Angular correlation function w(θ)

BGS w(theta) overlay

Angular two-point correlation function w(θ) for BGS VLIM samples (uniform weight variant). Bins: 30 log-spaced bins in [0.01, 60] arcmin. Error bars are TreeCorr variance estimates.

Projected correlation function wp(rp)

BGS wp overlay

Projected correlation function wp(rp) for the available BGS samples (uniform weights, πmax = 100 Mpc), measured with Corrfunc Landy-Szalay. Bins: 30 log-spaced bins in [0.01, 60] Mpc (individual stat files) or 10 bins in [0.03, 30] Mpc (joint covariance files).

Representative wp(rp) values at rp ≈ 1 Mpc and ≈ 10 Mpc (uniform weights; nearest available bin is rp = 0.90 Mpc and 9.11 Mpc for the 30-bin files). Errors are TreeCorr variance (negligible for large N); jackknife errors from joint covariance files where available (marked “JK”):

Sample

log₁₀M★_min

wp(0.90 Mpc) [Mpc]

wp(9.11 Mpc) [Mpc]

LS10_VLIM_ANY_9.0

9.0

138.0 ± 0.1

19.7 ± 0.0

LS10_VLIM_ANY_9.5

9.5

157.6 ± 0.1

22.4 ± 0.0

LS10_VLIM_ANY_10.0

10.0

181.6 ± 0.1

24.3 ± 0.0

LS10_VLIM_ANY_10.25

10.25

(pending)

(pending)

LS10_VLIM_ANY_10.5

10.5

(pending)

(pending)

LS10_VLIM_ANY_10.75

10.75

(pending)

(pending)

LS10_VLIM_ANY_11.0

11.0

268.1 ± 0.4

37.4 ± 0.0

LS10_VLIM_ANY_11.25

11.25

378.6 ± 1.7

50.4 ± 0.0

LS10_VLIM_ANY_11.5

11.5

645.6 ± 10.8 (28.3 JK)

73.9 ± 0.2 (7.0 JK)

Angular power spectrum C

Computed with cl_angular() (healpy pseudo-Cl, nside=512, 10 log-spaced ℓ bins in [2, 2000]). Available for 7 of 9 samples (9.0, 9.5, 10.0, 10.75, 11.0, 11.25, 11.5); pending for 10.25 and 10.5. Only the uniform weight variant is currently computed.

Galaxy–galaxy lensing ΔΣ(rp)

Measured with delta_sigma() (dsigma pipeline, 30 bins in [0.01, 60] Mpc).

HSC Y3 (primary): HSMRegauss shapes, 4 tomographic bins (mean-z per bin from nz.fits), B-mode mask applied. Corrections: scalar shear response + HSM responsivity (1 − erms²).

DES Y3: Metacalibration shapes, 4 bins (bhat = 0–3), matrix shear + selection response corrections, MacCrann+2022 multiplicative bias.

Available lensing files per sample:

Sample

log₁₀M★_min

HSC uni

HSC add

HSC comb

DES uni

DES add

DES comb

LS10_VLIM_ANY_9.0

9.0

LS10_VLIM_ANY_9.5

9.5

LS10_VLIM_ANY_10.0

10.0

LS10_VLIM_ANY_10.25

10.25

LS10_VLIM_ANY_10.5

10.5

LS10_VLIM_ANY_10.75

10.75

LS10_VLIM_ANY_11.0

11.0

LS10_VLIM_ANY_11.25

11.25

LS10_VLIM_ANY_11.5

11.5

Joint SMF + wp + ΔΣ covariance

The joint data vector for the BGS run is

\[\mathbf{d} = \bigl[\phi_1,\ldots,\phi_{N_\text{SMF}},\; w_p^1,\ldots,w_p^{N_{w_p}},\; \Delta\Sigma^1,\ldots,\Delta\Sigma^{N_{\Delta\Sigma}}\bigr]\]

estimated with 100-region spatial jackknife resampling. The lensing source catalogue is HSC Y3 (shear estimator: HSMRegauss, 4 photo-z bins).

BGS joint correlation matrices

Pearson correlation matrices of the joint SMF + wp + ΔΣ data vector for the six BGS samples that have completed joint covariance files. Dashed lines separate the three statistic blocks.

Comparison with Comparat et al. (2025)

Reference: Comparat et al. (2025), A&A 697, A173, DOI: 10.1051/0004-6361/202554208.

Zenodo data release: https://zenodo.org/records/15111974

Comparat et al. (2025) measure wp(rp) and φ(M★) for seven volume-limited BGS-like samples selected from LS10 using the same stellar-mass thresholds (log₁₀ M★/M☉ > 10.0 … 11.5; zmax = 0.18–0.35). Cosmology: Planck 2018 (H₀ = 67.66, Ωm = 0.30966); survey area: 16 796 deg².

Important

The C2025 FITS files store rp and wp in units of Mpc/h (h = 0.6766). This pipeline uses physical Mpc. All comparisons below convert C2025 values by dividing by h. πmax also differs: C2025 uses πmax = 100 Mpc/h = 147.8 Mpc; this pipeline uses πmax = 100 Mpc.

Quantitative comparison for overlapping samples

SMF — our φ is ~12% lower than C2025, consistent with the larger survey area: φ(ours)/φ(C25) ≈ A(C25)/A(ours) = 16 796/18 950 ≈ 0.886.

log₁₀M★_min

φ(ours) [Mpc⁻³ dex⁻¹]

φ(C25, converted) [Mpc⁻³ dex⁻¹]

Ratio

10.0

3.91 × 10⁻³

4.45 × 10⁻³

0.88

11.0

7.80 × 10⁻⁴

8.87 × 10⁻⁴

0.88

11.25

3.06 × 10⁻⁴

3.46 × 10⁻⁴

0.88

11.5

7.76 × 10⁻⁵

8.71 × 10⁻⁵

0.89

w:sub:`p` — after unit conversion and interpolation, agreement is ~4–14%; consistent with the different πmax and footprint:

log₁₀M★_min

wp(0.90 Mpc) ours [Mpc]

wp(0.90 Mpc) C25 [Mpc]

Ratio (0.9)

Ratio (9.1)

10.0

181.6

173.9

1.04

0.98

11.0

268.1

248.7

1.08

1.02

11.25

378.6

338.1

1.12

1.06

11.5

645.6

567.6

1.14

1.07

Reference data on disk

$HOME/software/gga_model/data/comparat2025/
└── LSDR10_GALxEVT/
    ├── Measurement_autocorr_galaxies/wprp/
    │   └── LS10_VLIM_ANY_{mmin}_Mstar_12.0_0.05_z_{zmax}_N_{N}-wprp.fits
    │       Columns: rp_min, rp_max, rp_mid [Mpc/h], wprp [Mpc/h],
    │                N_data, N_random, pimax, CV_frac,
    │                wprp_JK_mean, wprp_JK_std [Mpc/h]
    └── Galaxy_samples/smf/
        └── LS10_VLIM_ANY_{mmin}_Mstar_12.0_0.05_z_{zmax}_N_{N}-smf-vmax.fits
            Columns: mstar_min, mstar_max, mstar_mid [dex], phi, phi_err [Mpc⁻³ dex⁻¹], N_gal

Comparison with Xu et al. (2025)

Reference: Xu et al. (2025), arXiv:2503.01948.

Zenodo data release: https://zenodo.org/records/14879599

Xu et al. (2025) measure the GSMF using the PAC (Photometric objects Around Cosmic webs) method, pairing DESI Y1 BGS spectroscopy with a deep DECaLS photometric catalogue (~10 M photometric objects) to recover the GSMF down to ~105.3 M☉. Cosmology: WMAP5 (H₀ = 71, Ωm = 0.268).

Reference data on disk

$HOME/software/gga_model/data/xu2025/
├── SMF_all.fits          PAC total GSMF (all galaxies, Fig. 14)
├── SMF_all_lowlim.fits   PAC lower limits at faint end
├── SMF_blue.fits         PAC star-forming sub-sample
├── SMF_red.fits          PAC quiescent sub-sample
├── BGS.fits              BGS 1/Vmax GSMF (Fig. 15 comparison)
├── BGS_LV_corrected.fits BGS Local Volume completeness-corrected
├── GAMA.fits             GAMA DR4 reference (Driver+2022)
└── PACIII.fits           PAC III variant measurement

All files: columns log10_mstar, phi, phi_err_lo, phi_err_hi (Mpc-3 dex-1).

Literature entry

The PAC and 1/Vmax results are archived in the standard schema under literature_measurements/stellar_mass_function/:

literature_measurements/stellar_mass_function/
├── DESI_PAC_Xu2025/
│   ├── metadata.yaml
│   ├── smf_pac_all.fits     (32 rows, 5.3–11.8 dex, incl. lower limits)
│   ├── smf_pac_blue.fits    (41 rows)
│   └── smf_pac_red.fits     (32 rows)
└── DESI_Vmax_Xu2025/
    ├── metadata.yaml
    ├── smf_vmax_all.fits    (59 rows, 6.0–11.9 dex, 0.1 dex bins)
    └── smf_vmax_lv_corrected.fits  (9 rows, Local Volume correction)

Regenerating figures

After new results are available, re-run:

python docs/scripts/make_run_figures.py
cd docs && make html