Source code for gammapy.utils.fitting.likelihood

# Licensed under a 3-clause BSD style license - see LICENSE.rst
from __future__ import absolute_import, division, print_function, unicode_literals

__all__ = ["Likelihood"]


# TODO: get rid of this wrapper class? Or use it in a better way?
[docs]class Likelihood(object): """Wrapper of the likelihood function used by the optimiser. This might become superfluous if we introduce a generic ``Likelihood`` interface and use that directly, or change the ``Fit`` class to work with ``Model`` and ``Likelihood`` objects. For now, this class does the translation of parameter values and the parameter factors the optimiser sees. Parameters ---------- parameters : `~gammapy.utils.modeling.Parameters` Parameters with starting values function : callable Likelihood function """ def __init__(self, function, parameters): self.function = function self.parameters = parameters
[docs] def fcn(self, factors): self.parameters.set_parameter_factors(factors) return self.function(self.parameters)