You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With the previous merges into develop and the work on defining the sacc output format, #256 and #306 have become quite messy and their scopes overlap with some of what has already been done in develop. I ran Claude to try to disentangle everything, and this was what we worked out together:
Step 5: how #256 and #306 split, and the path to tomographic real-space 2PCFs in SACC
The two PRs are split by product: #256 computes the covariance, #306 builds the data vector and writes both into SACC. They only meet through a shared naming and bin-order contract.
to merge develop, then rescope to tomographic SACC (#376)
#306 takes on the OneCovariance → SACC step.#256 stops at the dense .dat matrix. #306 extends xi_to_sacc to tomographic bins, and also reads the OneCovariance matrix into the SACC covariance block in the same bin-pair order. It replaces the jackknife/shot-noise estimate in the analysis file, as assemble_sacc does today for the non-tomographic case.
The contract between the two
Same _tomo suffix in both file names.
Bin-pair order (1,1), (1,2), …, (n,n) (itertools.combinations_with_replacement over bin IDs > 0), ξ+ then ξ−, by θ, in both the SACC data points and the covariance.
Per-bin n(z) from the same multi-column file: the catalogue entry's shear.redshift_path.
Workflow once both land
Catalogue entry in cat_config.yaml:
shear.tomo_bin_col, a multi-column shear.redshift_path, per-bin cov_th values;
blind: set.
Data vector: rule xi → run_2pcf.py → calculate_2pcf_version(compute_tomography=True) measures every bin pair with TreeCorr → …_npatch=…_tomo.sacc.
Activity
LisaGoh commentedon Oct 20, 2026
With the previous merges into develop and the work on defining the sacc output format, #256 and #306 have become quite messy and their scopes overlap with some of what has already been done in develop. I ran Claude to try to disentangle everything, and this was what we worked out together:
Step 5: how #256 and #306 split, and the path to tomographic real-space 2PCFs in SACC
The two PRs are split by product: #256 computes the covariance, #306 builds the data vector and writes both into SACC. They only meet through a shared naming and bin-order contract.
.dat(CosmoCov removed)rules/covariance.smk,common.pyreal_space.py,run_2pcf.py,rules/twopoint.smk,sacc_writers.py/assemble_sacc.py{tomo_suffix}=_tomo{tomo_suffix}=_tomodevelopmerged in; dry runs passdevelop, then rescope to tomographic SACC (#376)#306 takes on the OneCovariance → SACC step. #256 stops at the dense
.datmatrix. #306 extendsxi_to_saccto tomographic bins, and also reads the OneCovariance matrix into the SACC covariance block in the same bin-pair order. It replaces the jackknife/shot-noise estimate in the analysis file, asassemble_saccdoes today for the non-tomographic case.The contract between the two
_tomosuffix in both file names.(1,1), (1,2), …, (n,n)(itertools.combinations_with_replacementover bin IDs > 0), ξ+ then ξ−, by θ, in both the SACC data points and the covariance.shear.redshift_path.Workflow once both land
cat_config.yaml:shear.tomo_bin_col, a multi-columnshear.redshift_path, per-bincov_thvalues;blind:set.xi→run_2pcf.py→calculate_2pcf_version(compute_tomography=True)measures every bin pair with TreeCorr →…_npatch=…_tomo.sacc.covariance_tomo→covariance_iniwrites the OneCovariance.ini→covariance_run→covariance_…_tomo.dat.Merge order
tomo_suffix/npatchwildcard constraints both PRs use.develop; tomographic ξ± → SACC, extendingxi_to_sacc(Tomographic SACC writers: one tracer and n(z) per bin #376), plus the OneCovariance.dat→ SACC covariance step.TO-DO: we can open a separate issue to tackle the 3x2pt part!