Clustering
Two-point correlation function ξ(s, μ) for DESI DR1 tracers
Sub-analysis page. Components are addressed with the
clustering/path prefix.
Overview¶
Clustering measures the Landy–Szalay ξ(s, μ) multipoles (ℓ = 0, 2, 4) on a linear 4 Mpc/h s-binning from 0 to 200 Mpc/h, NGC + SGC combined. Pre-recon ξ is computed from the raw catalogs; post-recon ξ uses the RecSym estimator with the shifted catalogs from reconstruction, sliced into tracer z-bins.
The binning, μ-binning, estimator, and ℓ range are all locked to the published RascalC covariance grid, which is why this stage carries only a single decision rather than a set of binning knobs.
Decision¶
The one free choice is whether to apply imaging-systematics weights. The same RascalC covariance null-tests this toggle at 0.27 σ, so it is left unlocked:
DECISION
BAO is insensitive to the imaging-systematics correction (largest
shift 0.27 sigma across tracers). This decision exposes that null
test. on uses the full DESI WEIGHT column
(WEIGHT_COMP * WEIGHT_SYS * WEIGHT_ZFAIL). off drops the WEIGHT_SYS
factor, keeping only completeness + redshift-failure corrections.
Outputs¶
The headline diagnostic is the stacked ξ multipoles figure across tracers:

Figure 1:Pre- and post-recon xi_ell(s) multipoles (ell = 0, 2, 4) plotted as s^2 * xi(s), one row per tracer so the BAO feature at s ~ 100 Mpc/h is visible. Post-recon monopole should show a sharper BAO peak.
The full per-tracer registry — one xi_pre_recon_<tracer> and one
xi_post_recon_<tracer> per tracer — is:
| Output | Type | Description |
|---|---|---|
| xi_pre_recon_bgs | data | Pre-recon xi(s, mu) for BGS (z=0.1-0.4). Monopole-only fit.python -u scripts/compute_xi.py --output {output} --tracer bgs --imaging_weights {decisions.imaging_weights} |
| xi_post_recon_bgs | data | Post-recon xi(s, mu) for BGS (RecSym). BGS parent recon spans 0.1 <= z <= 0.4 (no sub-binning).python -u scripts/compute_xi.py --output {output} --tracer bgs --imaging_weights {decisions.imaging_weights} |
| xi_pre_recon_lrg1 | data | Pre-recon xi(s, mu) for LRG1. pycorr TwoPointCorrelationFunction (.npy),
GCcomb, s in [0, 200] Mpc/h at 4 Mpc/h bins, mu in [-1, 1] at 200 bins.
python -u scripts/compute_xi.py --output {output} --tracer lrg1 --imaging_weights {decisions.imaging_weights} |
| xi_post_recon_lrg1 | data | Post-recon xi(s, mu) for LRG1 (RecSym). Slices the LRG parent post-recon
catalog to 0.4 <= z <= 0.6.
python -u scripts/compute_xi.py --output {output} --tracer lrg1 --imaging_weights {decisions.imaging_weights} |
| xi_pre_recon_lrg2 | data | Pre-recon xi(s, mu) for LRG2. Same format as xi_pre_recon_lrg1.python -u scripts/compute_xi.py --output {output} --tracer lrg2 --imaging_weights {decisions.imaging_weights} |
| xi_post_recon_lrg2 | data | Post-recon xi(s, mu) for LRG2 (RecSym). Slices LRG parent NPZ to 0.6 <= z <= 0.8.python -u scripts/compute_xi.py --output {output} --tracer lrg2 --imaging_weights {decisions.imaging_weights} |
| xi_pre_recon_lrg3 | data | Pre-recon xi(s, mu) for LRG3 (z=0.8-1.1). Same format as xi_pre_recon_lrg1.python -u scripts/compute_xi.py --output {output} --tracer lrg3 --imaging_weights {decisions.imaging_weights} |
| xi_post_recon_lrg3 | data | Post-recon xi(s, mu) for LRG3 (RecSym). Slices LRG parent NPZ to 0.8 <= z <= 1.1.python -u scripts/compute_xi.py --output {output} --tracer lrg3 --imaging_weights {decisions.imaging_weights} |
| xi_pre_recon_elg1 | data | Pre-recon xi(s, mu) for ELG1 (z=0.8-1.1). Monopole-only fit.python -u scripts/compute_xi.py --output {output} --tracer elg1 --imaging_weights {decisions.imaging_weights} |
| xi_post_recon_elg1 | data | Post-recon xi(s, mu) for ELG1 (RecSym). Slices ELG parent NPZ to 0.8 <= z <= 1.1.python -u scripts/compute_xi.py --output {output} --tracer elg1 --imaging_weights {decisions.imaging_weights} |
| xi_pre_recon_elg2 | data | Pre-recon xi(s, mu) for ELG2 (z=1.1-1.6). Same format as xi_pre_recon_lrg1.python -u scripts/compute_xi.py --output {output} --tracer elg2 --imaging_weights {decisions.imaging_weights} |
| xi_post_recon_elg2 | data | Post-recon xi(s, mu) for ELG2 (RecSym). Slices ELG parent NPZ to 1.1 <= z <= 1.6.python -u scripts/compute_xi.py --output {output} --tracer elg2 --imaging_weights {decisions.imaging_weights} |
| xi_pre_recon_lrg3_elg1 | data | Pre-recon xi(s, mu) for the LRG3+ELG1 combined tracer (0.8 < z < 1.1).python -u scripts/compute_xi.py --output {output} --tracer lrg3_elg1 --imaging_weights {decisions.imaging_weights} |
| xi_post_recon_lrg3_elg1 | data | Post-recon xi(s, mu) for the LRG3+ELG1 combined tracer (RecSym).python -u scripts/compute_xi.py --output {output} --tracer lrg3_elg1 --imaging_weights {decisions.imaging_weights} |
| xi_pre_recon_qso | data | Pre-recon xi(s, mu) for QSO (z=0.8-2.1). Monopole-only fit.python -u scripts/compute_xi.py --output {output} --tracer qso --imaging_weights {decisions.imaging_weights} |
| xi_post_recon_qso | data | Post-recon xi(s, mu) for QSO (RecSym, sm30). QSO parent recon spans
0.8 <= z <= 2.1 (no sub-binning) with Sigma_sm = 30 h^-1 Mpc — matches
the sm30 RascalC cov.
python -u scripts/compute_xi.py --output {output} --tracer qso --imaging_weights {decisions.imaging_weights} |
| xi_multipoles_plot | figure | Pre- and post-recon xi_ell(s) multipoles (ell = 0, 2, 4) plotted as
s^2 * xi(s), one row per tracer so the BAO feature at s ~ 100 Mpc/h
is visible. Post-recon monopole should show a sharper BAO peak.
python -u scripts/plot_xi.py --output {output} |
- Chen, S.-F., Howlett, C., White, M., McDonald, P., Ross, A. J., Seo, H.-J., Padmanabhan, N., Aguilar, J., Ahlen, S., Alam, S., Alves, O., Andrade, U., Blum, R., Brooks, D., Chen, X., Cole, S., Davis, T. M., Dawson, K., de la Macorra, A., … Zhou, Z. (2024). Baryon Acoustic Oscillation Theory and Modelling Systematics for the DESI 2024 results. 10.48550/ARXIV.2402.14070
- Seo, H.-J., & Eisenstein, D. J. (2007). Improved forecasts for the baryon acoustic oscillations and cosmological distance scale. 10.48550/ARXIV.ASTRO-PH/0701079
- Planck Collaboration, Aghanim, N., Akrami, Y., Ashdown, M., Aumont, J., Baccigalupi, C., Ballardini, M., Banday, A. J., Barreiro, R. B., Bartolo, N., Basak, S., Battye, R., Benabed, K., Bernard, J. P., Bersanelli, M., Bielewicz, P., Bock, J. J., Bond, J. R., Borrill, J., … Zonca, A. (2018). Planck 2018 results. VI. Cosmological parameters. 10.48550/ARXIV.1807.06209
- Eisenstein, D. J., Seo, H., Sirko, E., & Spergel, D. (2006). Improving Cosmological Distance Measurements by Reconstruction of the Baryon Acoustic Peak. 10.48550/ARXIV.ASTRO-PH/0604362
- Padmanabhan, N., White, M., & Cohn, J. D. (2008). Reconstructing Baryon Oscillations: A Lagrangian Theory Perspective. 10.48550/ARXIV.0812.2905