Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fixing example file + allowing lmax_theory to set ell range #92

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/mflike_example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
debug: True

likelihood:
mflike.MFLike:
mflike.TTTEEE:
input_file: LAT_simu_sacc_00044.fits
cov_Bbl_file: data_sacc_w_covar_and_Bbl.fits

Expand Down
24 changes: 18 additions & 6 deletions mflike/foreground.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,26 @@
If one wants to use this class as standalone, the ``bands`` dictionary is filled when initializing
``BandpowerForeground``.

The values of the systematic parameters are set in ``MFLike.yaml``. They have to be named as
``cal/calT/calE/alpha`` + ``_`` + experiment_channel string (e.g. ``LAT_93/dr6_pa4_f150``).
The default values of the systematic parameters are set in the ``TTTEEE/TEEE/TT/EE/TE/etc.yaml`` files. They have to be named as ``cal/calT/calE/alpha`` + ``_`` + experiment_channel string (e.g. ``LAT_93/dr6_pa4_f150``).
The default values of the foreground parameters are set in the ``fg_TT/TE/EE.yaml`` files.
If you want to set different parameters settings, do that in the ``params`` block of the ``yaml`` file you will use for running (see the `examples/mflike_example.yaml <https://github.com/simonsobs/LAT_MFLike/blob/master/examples/mflike_example.yaml>`_).

.. note::
Note that when you set different foregrounds/systematics parameters in the ``params`` block
of your running ``yaml``, Cobaya will use the new parameters settings you indicated. If you
don't change a parameter setting in the ``params`` block, Cobaya will use its default stored
in the files mentioned above. Note that, in the ``.updated.yaml`` file generated by Cobaya,
the ``mflike.BandpowerForeground`` theory block will have a ``params`` block with all the
foreground parameters default settings which may be different from what you are defining in
the general ``params`` block.


The bandpass shifts are applied within the ``_bandpass_construction`` function. There are two possibilities:
* reading the passband :math:`\tau(\nu)` stored in a sacc file
(which is the default now)
* building the passbands :math:`\tau(\nu)`, either as Dirac delta or as top-hat

For the second option, the ``top_hat_band`` dictionary in ``MFLike.yaml`` has to be filled with two keys:
For the second option, the ``top_hat_band`` dictionary under the ``mflike.BandpowerForeground`` theory block has to be filled with two keys:
* ``nsteps``: setting the number of frequencies used in the band integration
(either 1 for a Dirac delta or > 1)
* ``bandwidth``: setting the relative width :math:`\delta` of the band with respect to
Expand All @@ -32,9 +42,11 @@

.. code-block:: yaml

top_hat_band:
nsteps: 1
bandwidth: 0
theory:
mflike.BandpowerForeground:
top_hat_band:
nsteps: 1
bandwidth: 0

"""

Expand Down
7 changes: 4 additions & 3 deletions mflike/mflike.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@

If left ``null``, no systematic template is applied.

The values of the systematic parameters are set in ``MFLike.yaml``. They have to be named as
The values of the systematic parameters are set in the ``TTTEEE/TTTE/TT/EE/TE/etc.yaml`` fils corresponding to the classes that inherit the ``_MFLike`` one. They have to be named as
``cal/calT/calE/alpha`` + ``_`` + experiment_channel string (e.g. ``LAT_93/dr6_pa4_f150``).
"""

Expand Down Expand Up @@ -105,7 +105,7 @@ def initialize(self):
self.log.info("Initialized!")

def get_fg_requirements(self):
return {"ells": self.l_bpws,
return {"ells": self.l_bpws[:self.lmax_theory + 1],
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm always a bit scared when cutting numpy array since I never know what the first indice is. Basically if self.l_bpws starts at 2 then I think we have a problem

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right, l_bpws should start from 2 if I remember well. So to have it arriving up to lmax_theory we should put [:self.lmax_theory -1]

"requested_cls": self.requested_cls,
"experiments": self.experiments,
"bands": self.bands}
Expand All @@ -119,7 +119,8 @@ def get_requirements(self):
"""

return {"fg_totals": self.get_fg_requirements(),
"Cl": {k: max(c, self.lmax_theory + 1) for k, c in self.lcuts.items()}}
"Cl": {k: self.lmax_theory + 1 for k, _ in self.lcuts.items()}}
#"Cl": {k: max(c, self.lmax_theory + 1) for k, c in self.lcuts.items()}}

def logp(self, **params_values):
cl = self.provider.get_Cl(ell_factor=True)
Expand Down