brinckmann / montepython_public

Public repository for the Monte Python Code
MIT License
93 stars 80 forks source link

S_8 #264

Closed SafaeCosmology closed 1 year ago

SafaeCosmology commented 2 years ago

Hello everyone. Please, I have two questions if anyone can help me. my first question, concerning the S8, is it possible to define the S8=sigma8*sqrt(Omega_m/0.3) as a derived parameter in the montepython/data.py file. my second question is how to add the bands of H0 and s8 on the contours? thank you in advance.

brinckmann commented 2 years ago

Hi Safae,

I don't think the data file is the best place for that. Theoretically, you should be able to add S8 as a parameter in the CLASS wrapper that can then be output as a derived parameter, but what I usually do is I define a new derived parameter (or replace an old one in older MontePython versions) in post-processing with a plot file. This is possible if you have sigma8 and are able to get Omega_m, e.g. from Omega_Lambda. See the example plot file in plot_files/example.plot for instructions for how to add new derived parameters or H0 or S8 contours. The file is passed when running info by adding the flag --extra plot_files/example.plot .

Best, Thejs

SafaeCosmology commented 2 years ago

Thank you very much for your answer. If I understand correctly, there are two S8 constraint methods with MontePython; either I define it in CLASS and take it as a free parameter in my file. param file or I write a small code in the Plots folder, i.e. file.py; and from the best fit of sigma8 and omega_m, I get S8?

brinckmann commented 2 years ago

You don't need a small code, if you have as derived parameters sigma8 and Omega_m you can just modify the line in plot_files/example.plot #info.to_derive = {'der1':'H0*H0*omega_cdm','der2':'der1*H0'} to define S8 info.to_derive = {'S_8': 'sigma8*(Omega_m/0.3)**0.5'}

If you don't have Omega_m as a derived parameter you can define it from Omega_Lambda if you have that (assuming flatness), or from omega_b, omega_cdm, and the neutrino mass sum (plus any other matter components you might have). This is done in a similar way to how 'S_8' is defined here (assuming you have h or H0 to go from small omegas to capital omegas), e.g. info.to_derive = {'Omega_m': '1-Omega_Lambda', 'S_8': 'sigma8*(Omega_m/0.3)**0.5'}

Older versions of MontePython you would instead use

info.redefine = {'sigma8': 'sigma8*(Omega_m/0.3)**0.5'}
info.to_change = {'sigma8': 'S_8'}

Best, Thejs

SafaeCosmology commented 2 years ago

ok, thank you very much, Sir.