Data Challenge 06 simulations details

 (C. Umilta )

Updated Introduction and Noise section on 2020-03-24.


This posting describes more in detail how simulations are generated, including the CMB, foregorund and noise simulations. The simulations are generated with a MATLAB script which partly relies on some functions from the BK analysis pipeline. The script is "make_s4_06_driver.m".

The beams are constructed as Gaussian beams, the input is FWHM in arcmin and are zero for \(\ell \lt \ell_{min}\). Beams are stored in "cmbs4_dat/expt_xx/06/wfunc/". Below is the params.dat file which contains most of the information on the sims

These simulations are on NERSC and can be found at the path "/global/cfs/cdirs/cmbs4/".

NB: Please read the linked postings as they provide additional details that are not listed here. This posting aims at providing additional information on 06 sims realizations, but does not necessarily repeat all details explained in other postings. Links are provided whenever possible. For the table, please always cross-check with the stored file on NERSC before using this for relevant science, as it was copy-pasted from the orginal file, and this procedure is prone to errors. Also, if you find any mistakes, plese let me know so I can correct them.


Table 1:
CMB-S4 06 noise levels (DSR beamwidths, BK15 noise levels). SAT values from Ben post which are BK15 scaled to S4 bands by ratio of ideal NET values with no scaling of the number of detector years. The hit pattern is implicitly the BK15 one - re-deploy the hits on sky to go to other patterns and boost the det-yrs using reldetyrs.dat file. 1/f noise model parameters, fitted on the BK15 noise bandpowers. LAT values could come by same route from SPTpol N_ell's or similar. Since those as not available use the numbers from DSR Table 2-2, assuming these are for "Pole deep" hit pattern.
BC BW beam-fwhm 3x white-noise-level ell-knee 1/f-exponent 3x white-noise-level ell-knee 1/f-exponent3x white-noise-level ell-knee1/f-exponent ellmin nside
(GHz) (GHz) (arcmin) TT (uK-arcmin) TT TT EE (uk-arcmin) EE EE BB (uK-arcmin) BB BB
20 5.0 11.0 8.14 500 -4.3 5.52 200 -1.9 5.07 200 -1.5 30 512
30 9.0 72.8 6.73 150 -4.3 4.56 65 -1.9 4.20 75 -1.5 30 512
40 12.0 72.8 8.52 150 -4.3 5.78 65 -1.9 5.31 75 -1.5 30 512
85 20.4 25.5 10.27 150 -4.3 6.96 65 -1.9 6.40 75 -1.5 30 512
95 22.8 22.7 9.05 150 -4.3 6.14 65 -1.9 5.64 75 -1.5 30 512
145 31.9 25.5 9.31 230 -3.8 4.31 65 -3.0 4.21 60 -2.8 30 512
155 34.1 22.7 9.98 230 -3.8 4.61 65 -3.0 4.51 60 -2.8 30 512
220 48.4 13.0 74.81 220 -4.0 35.62 60 -3.1 34.59 60 -2.9 30 512
270 59.4 13.0 128.29 220 -4.0 61.08 60 -3.1 59.32 60 -2.9 30 512
30 9.0 7.3 3.54 500 -4.3 5.00 200 -1.9 5.00 200 -1.5 30 2048
40 12.0 5.5 3.18 500 -4.3 4.50 200 -1.9 4.50 200 -1.5 30 2048
95 22.8 2.3 0.48 500 -4.3 0.68 200 -1.9 0.68 200 -1.5 30 2048
145 31.9 1.5 0.68 500 -3.8 0.96 200 -3.0 0.96 200 -2.8 30 2048
220 48.4 1.0 4.03 500 -4.0 5.70 200 -3.1 5.70 200 -2.9 30 2048
270 59.4 0.8 6.93 500 -4.0 9.80 200 -3.1 9.80 200 -2.9 30 2048

As Clem pointed out in this posting on 06 sims, the noise needs to be scaled down such that when re-analyzed using corresponding mask one will get the value specified in the params.dat file shown above. In practice, this means that the white noise levels in param.dat are scaled as \(N_{new} = N \cdot sf\), where \(sf=\sqrt{\sum{mask(p)^2}/\sum{mask(p)}} \). The sum is defined only over the valid pixels.


The CMB simulations use \(a_{\ell m}\) inherited from Planck fftp10 simulations. These are stored in "sky_yy/cmb/scalar/ffp10_lensed_scl_cmb_000_alm_mc_UUUU.fits", "cmbs4_dat/sky_yy/cmb/scalar/ffp10_unlensed_scl_cmb_000_tebplm_mc_UUUU.fits" and "sky_yy/cmb/tensor/ffp10_ten_cmb_000_alm_mc_UUUU.fits" for lensed lcdm, unlensed lcdm and tensor respectively.

Table 2:
Planck FFP10 simulation parameters as indicated in this Planck wiki posting.
Parameter FFP10
Baryon density 0.02216571
Cold dark matter density 0.1202944
Neutrino energy density0.0006451439
Hubble parameter0.6701904
Thomson optical depth through reionization0.06018107
Primordial curvature perturbation spectrum:
    amplitude2.119631\(\cdot 10^{-9}\)
    spectral index0.9636852

These are used with synfast to create CMB maps in "expt_xx/llcdm/map/ffp10_lensed_scl_cmb_fXXX_bYY_ellminZZ_map_QQQQ_mc_UUUU.fits". The lmax is set as 2*nside. The pixel window function and the beam are applied. The path given is for \(llcdm\), a similar one is created for \(ulcdm\), \(tenso\). Only needed simulation maps are generated, i.e. if former maps with the same frequency, beam, ellmin and nside are not already present.


Gaussian foregrounds - model 00

The \(C_{\ell}\) from which they are generated are:

TT is simulated as EE*10. There is no dust-sync correlation.

Using these spectra, \(a_{\ell m}\) are generated and stored in "sky_yy/00/gdust/alm/gdust_fXXX_ellminZZ_alm_mc_UUUU.fits" and "sky_yy/00/gsync/alm/gsync_fXXX_ellminZZ_alm_mc_UUUU.fits". The seeds for generating the \(a_{\ell m}\) are

No window function is multiplied to the \(a_{\ell m}\). Maps are made and stored in "expt_xx/gdust/map", "expt_xx/gsync/map" and they are multiplied both by the beam and the pixel window function. Spectra and \(a_{\ell m}\) are generated with the "make_s4_gcomp.m" script, while the maps are generated with the "make_s4_expt_defn.m" script.

Amplitude modulated Gaussian foregrounds - model 07

This is Gaussian dust and synchrotron with amplitude modulation. The amplitude modulation map is multiplied onto the already beam convolved gdust and gsync maps, which is not strictly correct. The amplitude modulation should be done before the beam convolution, however, the modulation map is smoothed with fwhm 10 deg so it is probably an acceptable approximation. The amplitude modulation template is stored in "sky_yy/07/dust_map_am_template_QQQQ.fits". The amplitude modulation is applied to both dust and sync. There is only one template for all sims. The script that creates these sims is "make_s4_comb_XXp07.m". See this posting for more info.

Non-Gaussian foregrounds - model 09

These maps have been provided by Flavien Vansyngel. More details on how they were created are here . Their location is "expt_xx/fognd/09". A sample command to generate these sims is "make_s4_comb_XXp01('06c','09','vans_d1s1_SOS4_XXX_tophat',0)".


First noise \(C_{\ell}\) are generated by looping over the parameter for the frequency bands in TT, EE, BB, (noise cls for TE are zero). The \(C_{\ell}\) are zeroed below \(\ell_{min}\) and they are stored in cmbs4_dat/expt_xx/06/noise/cls/. These \(C_{\ell}\) are stored in cmbs4_dat/expt_xx/06/noise/cls/fXXX_bYY_ellminZZ.fits.

The noise alms are generated with a unique seed using a synfast wrapper. The seed is tied to the realization number and the frequency band with the formula: \(iseed=j+2000+(i-1)*1000)\) where \(j\) runs over realizations and \(i\) runs over lines in the params.dat file. These \(a_{\ell m}\) are stored in "expt_xx/06/noise/alm/noise_fXXX_bYY_ellminZZ_alm_mc_UUUU.fits' and are then turned into maps with the appropriate nside and stored in "expt_xx/06X/noise/map/noise_fXXX_bYY_ellminZZ_map_QQQQ_mc_UUUU.fits" No pixel window function is applied to either the \(a_{\ell m}\) or the maps.

Then these Gaussian noise maps are taken and modified by dividing them by \(\sqrt(rhits map)\), i.e. the noise is blown up on the edges. Also, they are scaled given the detector year number that can be found here or in this file "cmbs4_dat/expt_xx/06X/reldetyrs.dat". These modified noise maps are in "data_xx.yy/06b.00/cmbs4_06b_noise_*" and are those used to make the final DC6 maps.


There are no systematics in the 06 sims.


First the gaussian sims are generated for 06 using the script "make_s4_comb_XXp00.m". The nside=512 rhits map is copied from 05 sims. These maps are the sum of CMB, Gaussian dust and synchrotron and noise. The CMB can have a contribution from both the lensed and unlensed maps as \(cmbmap=frac_{lens}*lensmap+(1-frac_{lens})*unlensmap \) where \(frac_{lens}= \sqrt{Al}\). In 06 case \(Al =1\).

Then 06b, 06c and 06d hit maps are made with scaled det-yrs and redeployed hits on the sky. Each folder has the hits maps for nside=512 and nside=2048. This is explained in detail in Clem's posting on 06 sims.

After these, all other sets with foreground models are created, starting from Gaussian and then going to more complicated models.