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()
An updated configuration from the default configuration can also be loaded from a *yaml* file or form a Python dictionary.
[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:

  1. Add the datasets and their PDF ratio instances via the skyllh.core.analysis.Analysis.add_dataset() method.

  2. 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.