LSSTDESC / firecrown

DESC Cosmology Likelihood Framework
BSD 3-Clause "New" or "Revised" License
29 stars 7 forks source link

IA growth normalization #193

Closed jablazek closed 2 years ago

jablazek commented 2 years ago

Is alphag correctly defined given how CCL treats the growth scaling? (use_A_ia = True)

jablazek commented 2 years ago

~Similarly, in CCL, is the current TATT call double-counting the linear contribution, which assumes a built-in NLA?~

UPDATE: The current method of using a WLTracer with IA_bias=1 is correct, since we input the correct P_k_a, which is multiplied by the IA_bias.

tilmantroester commented 2 years ago

firecrown: https://github.com/LSSTDESC/firecrown/blob/master/firecrown/likelihood/gauss_family/statistic/source/weak_lensing.py#L182 CCL: https://github.com/LSSTDESC/CCL/blob/master/pyccl/tracers.py#L719 For alphag==1 the growth term in firecrown drops out but the default in the DES Y1 3x2pt example is -1: https://github.com/LSSTDESC/firecrown/blob/master/examples/des_y1_3x2pt/des_y1_3x2pt_values.ini#L27

tilmantroester commented 2 years ago

Looking at the history, alphag has used -1 since old firecrown in the examples. @beckermr, do you remember why?

beckermr commented 2 years ago

I don't recall exactly. I think I went through the different codes and put in what I thought would be the value that got the right total power of the growth function. I of course could have done that wrong!

jpratmarti commented 2 years ago

Hi all, @chihway and I have looked at this today and found that in the DES Y3 model, alphag should be 0, according to the equations from the cosmic shear paper, see screen shot below for the TATT model. Just to make sure we're all in the same page, we understand that alphag is defined as an exponent in the growth factor in the following way: D^(alphag-1), so we should have alpha=0 for the NLA model, and alpha = -1 for the tidal torque part of the TATT model?

Screen Shot 2022-10-20 at 11 46 59 AM
tilmantroester commented 2 years ago

Right, the issue is that for use_A_ia==True, CCL adds the other prefactors (C1, rho_cr, Om), including 1/D, so on the firecrown side it should only set a1 and the redshift scaling, as far as I understand the code.

jpratmarti commented 2 years ago

I see, so what you are saying is that firecrown should have alphag=1 to remove the dependency on D, because it is already implemented in CCL? I think we can do that and rerun everything, however probably this should be changed since it is quite confusing. Ideally if Firecrown should not include any D dependency maybe it should be dropped from the code and we shouldn't need to set alpha_g at all? or else propagate the dependency to CCL. What do you think it is best?

tilmantroester commented 2 years ago

My plan is to add functionality to firecrown that allows hiding these parameters from the user (eg #194) but in the short term, setting alphag=1 is probably the way to go.

jablazek commented 2 years ago

CCL has a function to do this bookkeeping for us:

c_1,c_d,c_2 = pt.translate_IA_norm(cosmo, z, a1=a_1, a1delta=a_d, a2=a_2, Om_m2_for_c2 = False)

I would suggest we use this function as the baseline, and then give the additional option to add other growth or redshift dependence. But then the default power laws should be zero.

jpratmarti commented 2 years ago

@jablazek where is alphag being added in this function? (sorry I'm a bit confused about your last comment..)

jablazek commented 2 years ago

@jpratmarti : Sorry, I should have been more descriptive. That function implements eqs 24 and 25 as you posted above. So you only need to pass a1, a2, a_delta as the sampled parameters. Any growth or redshift dependence that deviates from those eqs can be applied to the parameters ~separately~ in addition. So Firecrown should start with that CCL function (I believe this is what @tilmantroester 's draft implementation does already), and then additional dependence can be added.

tilmantroester commented 2 years ago

I think that's already what's happening. Firecrown uses a1 but then adds on some extra redshift and growth scaling. The issue is that there is a non-standard growth scaling, unless you know what the alphag parameter is and know to set alphag = 1. We can fix this by either introducing sensible defaults for these obscure parameters (see #194) and/or just remove this extra scaling.