-
Notifications
You must be signed in to change notification settings - Fork 7
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
Separating the cluster theory and models from Firecrown into an independent module. #345
Conversation
Removed old cluster number count classes Added new Kernel base class, with MassObservable and Redshift subclasses Added some simple implementations of Kernel Added Kernel Factories Still WIP.
Stuck with the issue that the models in modelling tools also needs to know about the data (bounds for kernels)
Committing all work and going to start tests to check workflow.
Need to rethink how we include analytic solutions Currently this is working but not how I want it
This is going to show up as a delete and add in git.
Noticed a bug? in the previous code with limits for integration.
Updated rest of the abundance code to do vector operations Implemented a cache for HMF for now since it doesn't accept a vector of scale factors.
Small fixes.
Adding unit tests for the new Murata classes
…rguments, to each integrator
firecrown/likelihood/gauss_family/statistic/binned_cluster_number_counts.py
Outdated
Show resolved
Hide resolved
firecrown/likelihood/gauss_family/statistic/binned_cluster_number_counts.py
Outdated
Show resolved
Hide resolved
firecrown/likelihood/gauss_family/statistic/binned_cluster_number_counts.py
Outdated
Show resolved
Hide resolved
firecrown/likelihood/gauss_family/statistic/binned_cluster_number_counts.py
Outdated
Show resolved
Hide resolved
…uster abundance Adding some tests to capture some edge cases exposed when moving sky_area.
…f arguments on methods in tests.
Adjusting tests Adding some mypy type checking here and there
Allowing a user to pass in an integration method into the num cosmo integrator.
Updating the cluster abundance data to return SaccBins instead of confusing built in types Adding tests, and updating sacc file to reflect proper structure Fixing mypy/pylint complaints.
…g locally. Switching 3.11 syntax for older syntax. Updating cluster abundance tests to be more better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addition changes requested
number count statistic. The data in this class is specific to a single | ||
survey name.""" | ||
|
||
# Hard coded in SACC, how do we want to handle this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We probably want to enforce a standard schema for the clusters data.
firecrown/likelihood/gauss_family/statistic/binned_cluster_number_counts.py
Outdated
Show resolved
Hide resolved
|
||
self.bin_edges = sacc_adapter.get_bin_edges( | ||
self.survey_name, self.cluster_properties | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Assert bin dimensions are equal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FIx name
Updating verifying bin dimensions on the statistic.
Moving shared attributes to base class integrator Adding proper normalization to gaussian
Some PR review changes Adding more tests for the binning module.
Summary
Changeset to separate the cluster theory and models logic from the internal workings of Firecrown. As an added bonus, also updated the binned cluster number counts likelihood statistic to use
ModelingTools
in the expectedfirecrown
workflow.Cluster module
AbundanceData
class to wrap the sacc file and to be used by the likelihoodClusterAbundance
class.Kernel
class to represent any ingredients in the cluster likelihoodMassRichnessGaussian
ofKernel
, anticipating having many of these. This could potentially fall into yagni territory (you aren't gonna need it).Integrator
class for the cluster moduleCluster likelihood factory function
Modified the cluster likelihood to use dependency injection for all of the choices for our likelihood. Or in other words, moved all of the specific choices (integrator, cluster kernel ingredients, data vector) to the top of the call stack, so the user can swap in and out components to the likelihood.
Other firecrown changes
ClusterAbundance
toModelingTools
.ParamsMap
passing throughprepare
.ModelingTools
is an updatable...?setup.cfg
instructions to tell mypy to ignore tests. Not sure if we want to keep this.Tests