Getting started
SkyLLH is a Python based framework to develop and to perform maximum likelihood ratio hypothesis testing.
The idea of SkyLLH is to provide a framework with a class structure that is tied to the mathematical objects of the likelihood functions.
Slack channel: #skyllh
An IceCube member can find pre-defined IceCube log-likelihood analyses in the (privat) i3skyllh project.
SkyLLH’s analysis workflow
To set-up and run an analysis the following procedure applies:
1. Create a (local) configuration for the analysis.[2]:
from skyllh.core.config import Config
cfg = Config()
[5]:
cfg = Config.from_dict({
'project': {
'working_directory': '/home/mwolf/projects/publicdata_ps',
}})
2. Create an analysis instance (preferably based on pre-defined create_analysis functions). It takes care of the following parts:
Add the datasets and their PDF ratio instances via the
skyllh.core.analysis.Analysis.add_dataset()
method.Construct the log-likelihood ratio function via the
skyllh.core.analysis.Analysis.construct_llhratio()
method.
3. Call the skyllh.core.analysis.Analysis.do_trial()
, or
skyllh.core.analysis.Analysis.unblind()
method to perform a random
trial, or to unblind the data, respectively. Both methods will fit the global
fit parameters using the set up data. Finally, the test statistic is calculated
internally via the
skyllh.core.analysis.Analysis.calculate_test_statistic()
method.