Non-Limber on Matter-Matter (Counts-Counts) Angular Power Spectrum
Posted: June 10 2022
I'm using CAMBS sources to calculate matter-matter correlations in Cls and I would like to use non-Limber to perform the calculation. I'm using the python wrapper in version 1.3.5 but when I compare the results with limber_window True and False they seem to be identical (I'm using a value of 0 for limber_phi_lmin). I read in the documentation that some cases, like CMB lensing, ignore the limber_window parameter, so I was wondering if this is the case for source correlations.
I'm comparing the CAMB code to the Core Cosmology Library (CCL) since the latter does not have a non limber calculation yet and I find that CAMB produces a boost on the signal at lower l<10 in comparison to CCL when using the same conditions. So probability, this has to do with CAMB always using non limber for source correlations, could this be the case?
Thank you!
Code: Select all
from camb.sources import GaussianSourceWindow, SplinedSourceWindow
lmax=4000
ls= np.arange(2, lmax+1)
#Parameters
pars = camb.CAMBparams()
pars.set_cosmology(H0=67.74, ombh2=0.0486*0.6774**2, omch2=(0.3089-0.0486)*0.6774**2)
pars.InitPower.set_params(As=2e-9, ns=0.9667)
pars.set_for_lmax(lmax, lens_potential_accuracy=1)
pars.Want_CMB = True
pars.NonLinear = model.NonLinear_both
pars.SourceTerms.counts_redshift = False
pars.SourceTerms.counts_velocity = False
pars.SourceWindows = [GaussianSourceWindow(redshift=0.5, source_type='counts', bias=1, sigma=0.01, dlog10Ndm=0.4)]
#Limber results
pars.SourceTerms.limber_phi_lmin = 0
pars.SourceTerms.limber_windows = True
results = camb.get_results(pars)
cls = results.get_source_cls_dict()
plt.loglog(ls, cls['W1xW1'][2:lmax+1], label='limber', c='g')
#Non-Limber results
pars.SourceTerms.limber_windows = False
results2 = camb.get_results(pars)
cls2 = results2.get_source_cls_dict()
plt.loglog(ls, cls2['W1xW1'][2:lmax+1], label='exact', c='r', ls='--')
plt.title('Autocorrelation Matter-Matter Cl z=0.5$', size=18)
plt.xlabel(r'$\ell$', size=18)
plt.ylabel(r'$\ell(\ell+1)C_\ell/2\pi$', size=18)
plt.xticks(fontsize = 14)
plt.yticks(fontsize = 14)
plt.legend(prop={'size': 16})
Thank you!