This is a refactor to reduce complexity and enhance extensibility. Well, that says pretty much nothing :-)
A new Source class DensityEstimatingSource can be used when you want to estimate the PDF from events, but don't want to generate events with the simulate() method. For example, load events from some data file, or run an external Monte Carlo.
PDF interpolation / morphing in likelihood space is split off from LogLikelihood into a separate file pdf_morphers.
Different morphers (currently GridInterpolator and RadialInterpolator) have their own classes.
You can control which morpher is used by the morpher option to thelikelihood_config option of LogLikelihood.
Similarly, use morpher_config to set morpher-specific config options.
Source and Model are now properly separated, model no longer passes its own self to source.
The individual-source parallelization has been removed. I don't suppose we'll need it again: you usually want to generate several models in parallel (for shape uncertainties).
Various other private / internal stuff has been moved around.
Coverage increased (+8.0%) to 83.562% when pulling 4de1159944f244b1811308c04683a9665f9fcd92 on refactor_ into 1ef5f98bbb84cff61057a4aef346dbc8a0ec95f4 on master.
Coverage increased (+7.9%) to 83.436% when pulling 98dbc171c6b98ac2d50d22f829952ed894682405 on refactor_ into 1ef5f98bbb84cff61057a4aef346dbc8a0ec95f4 on master.
This is a refactor to reduce complexity and enhance extensibility. Well, that says pretty much nothing :-)
DensityEstimatingSource
can be used when you want to estimate the PDF from events, but don't want to generate events with thesimulate()
method. For example, load events from some data file, or run an external Monte Carlo.LogLikelihood
into a separate filepdf_morphers
.GridInterpolator
andRadialInterpolator
) have their own classes.morpher
option to thelikelihood_config
option of LogLikelihood.morpher_config
to set morpher-specific config options.self
to source.