(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.
BC | BW | beam-fwhm | 3x white-noise-level | ell-knee | 1/f-exponent | 3x white-noise-level | ell-knee | 1/f-exponent | 3x white-noise-level | ell-knee | 1/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.
Parameter | FFP10 |
---|---|
Baryon density | 0.02216571 |
Cold dark matter density | 0.1202944 |
Neutrino energy density | 0.0006451439 |
Hubble parameter | 0.6701904 |
Thomson optical depth through reionization | 0.06018107 |
Primordial curvature perturbation spectrum: | |
amplitude | 2.119631\(\cdot 10^{-9}\) |
spectral index | 0.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:
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
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.