class_public
class_public copied to clipboard
Add A_lens to CLASS
I think A_lens (Cl^phi-phi -> A_lens Cl^phi-phi)
is not available in CLASS. If so, it might be useful to add it to CLASS.
I've implemented it in my fork: https://github.com/carlosggarcia/class_public/tree/issue342
The patch is this one: 0001-implemented-A_lens-Cl-pp-Alense-Cl-pp.patch.txt
Hi Carlos, One must be careful here. In the literature, people talk about different A_Lens, A_L, A_phi-phi, etc.
a) I would say that what you propose here will indeed rescale C_l^phi-phi everywhere: both in the calculation of lensing smoothing effects in the lensed C_l^TT, TE, EE, BB, and in the final C_l^phi-phi that CLASS gives in output (and that is used e.g. by the Planck CMB lensing likelihood). Such a parameter actually already existed in CLASS since the beginning, although you don't find it advertised in explanatory.ini. It is called lcm_rescale. It acts on phi rather than on C_l^phi-phi, so your A_lens should be the same as (lcmb_rescale)**2.
b) But I think that the parameter A_L that is discussed very often in the context of the "Planck A_L anomaly" (if any) is a bit different: it is a factor applied only to the calculation of lensing smoothing effects in the lensed C_l^TT, TE, EE, BB, but the final C_l^phi-phi used in the CMB lensing likelihoods is unchanged. For this, I would do things differently, by changing 4 lines. I list the changes below. I should certainly propagate this small addition to the public code in a near future. What I write below applies to class <= v2.9.3, which is the latest version at the time of writing.
-
In source/ lensing.c: replace
cl_pp[l] = cl_unlensed[ple->index_lt_pp];
with
cl_pp[l] = ple->A_L*cl_unlensed[ple->index_lt_pp];
-
In include/lensing.h: just after
short has_lensed_cls; /**< do we need to compute lensed \f$ C_l\f$'s at all ? */
define
double A_L; /**< rescale C_l^phi-phi just for the calculation of the lensed TT, TE, EE */
-
in source/input.c: somewhere in input_read_parameters(), for instance just before:
/** (g) amount of information sent to standard output (none if all set to zero) */
add
class_read_double("A_L", ple->A_L);
-
and still in source input.c, just after
ple->has_lensed_cls = FALSE;
add the default value
ple->A_L=1.
Hi Julien,
Thank you for the explanation. I had missed the part of not modifying the Cl^phi-phi that is compared with the CMB lensing data. I've done the modifications that you suggest and push it to a new branch of my fork: https://github.com/carlosggarcia/class_public/tree/issue342_2.
Here is the patch in case anyone wants to use it. 0001-added-A_L-modify-lensed-Cl-TT-TE-etc.-but-not-phiphi.patch.txt
Best, Carlos
Hello,
So, if I want to reproduce the results (36a) and (36b) from the Planck's article (arXiv:1807.06209), what parameter should I consider ? (lcmb_rescale)**2 or A_L ?
Thank you in advance,
Javier
Hi Julien et al,
I was wondering if the recommended changes to the source code for implementing the A_L parameter a' la Planck (or alens
in CAMB) are still valid for the more recent versions of CLASS.
I'm mostly asking because I noticed that some of the mentioned reference lines are gone (e.g., /** (g) amount of information sent to standard output (none if all set to zero) */
).
Cheers!