Skip to content

Tomographic covariances use the binned sample's own footprint and area - #458

Merged
cailmdaley merged 2 commits into
developfrom
fix/tomo-cov-footprint
Nov 1, 2026
Merged

cailmdaley merged 2 commits into
developfrom
fix/tomo-cov-footprint

Conversation

@cailmdaley

@cailmdaley cailmdaley commented Oct 31, 2026 •

Copy link
Copy Markdown
Collaborator

Tomographic bins need z-band photometry, so the binned sample covers 3,815 of the 4,690 deg² the whole catalogue covers. Every tomographic covariance used the whole-sample area and footprint. On UNIONS v2 (size bound 9), that made the analytic shape-noise term about 1.32× too large.

What changes. cov_th.tomo can carry the binned sample's footprint, set as mask and A together. When it does, every tomographic consumer reads it:

  • the workflow's tomographic OneCovariance ini, for both the area and mask_file_lensing;
  • CatalogCharacterization.calculate_n_eff_gal(tomography=True), so per-bin n_eff is a density over that same footprint;
  • the pseudo-Cℓ OneCovariance call when tomographic.

The workflow refuses A without mask, or mask without A. Entries without them, and every non-tomographic covariance, are unchanged.

n_eff and A must describe the same footprint. If only A is corrected, the noise term goes wrong the other way, by (4690/3815)² ≈ 1.51. The refusal and the shared footprint enforce this.

covariance diagonal over jackknife variance per bin pair, before and after

Covariance diagonal / 100-patch jackknife variance against θ, per bin pair (ξ+ solid, ξ− dotted). Grey is the OneCovariance total with the whole-sample A. Black is the re-run with the binned sample's A, mask and n_eff (Nibi job 25591046, same ξ± covariance inputs as this PR). Blue is the predicted shape-noise term. Median over pairs: θ < 10′ 1.33 → 1.08, 12–83′ 1.21 → 1.03. The remaining ~8% at small scales is weight variation inside the footprint, which only pair-count noise captures.

Consequence for the v2 null tests. The corrected covariance turns the joint pure-mode B-mode tests from pass to fail: ξ−B χ²/dof 85/70 (PTE 0.11) → 105/70 (0.005), ξ±B PTE 0.21 → 0.004. COSEBIs move from 0.97 to 0.44. The pseudo-Cℓ covariance (iNKA, catalogue) doesn't depend on area and is unaffected.

Tests.

  • workflow/tests/test_onecov_inputs.py checks the per-bin area in the tomographic ini and the whole-sample area in the non-tomographic one, and that A without its footprint is refused. Workflow tests: 20/20.
  • Container tests touching covariance, characterization and pseudo-Cℓ: 112 pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JK7o9EG5R1yAPT98V9j2GJ

cailmdaley and others added 2 commits October 31, 2026 09:17
Tomographic bins need photometry the whole sample lacks on part of the sky, so
the binned sample can cover less area than the catalogue. cov_th.tomo may now
carry A and mask; the tomographic OneCovariance ini uses them, falling back to
the whole-sample values. On v2 bound 9 the bins cover 3,815 of 4,690 deg²; with
the whole-sample area the analytic shape noise came out ~1.32× too large.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JK7o9EG5R1yAPT98V9j2GJ
cov_th.tomo.mask is the binned sample's footprint. The workflow refuses
cov_th.tomo.A without it (or the reverse); CatalogCharacterization's per-bin
n_eff and the pseudo-Cl OneCovariance call read its area and map, so n_eff
and A always describe the same footprint.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JK7o9EG5R1yAPT98V9j2GJ
@cailmdaley
cailmdaley merged commit 20ba864 into develop Nov 1, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant