This release brings a new plot function, parallelization, a few minor new features and bug fixes,
as well as updated experimental data.
New plot function
For Bayesian analyses using Markov chains, smooth 1D and 2D histograms often
have to be generated. This is already possible using the functions
`smooth_histogram` and `density_contour` in `flavio.plots`. The new function
`density_contour_joint` combines these functions by showing the contours of a
2D distribution along with the 1D marginals along the x and y axes.
There is a demo of the new function in the new [notebook in the examples repository](https://github.com/flav-io/flavio-examples/blob/master/Plots_for_Bayesian_analyses.ipynb).
Parallelization
When generating likelihood contour plots from parameter or Wilson coefficient
fits, one faces the often time consuming steps of computing the likelihood in
a 2D plane (using `flavio.plots.likelihood_contour` or
`flavio.plots.likelihood_contour_data`) or of generating the pseudo-measurement
for `FastFit` instances (using the `make_measurement` method).
All of these three functions can now be *parallelized*, leveraging the
power of multi-CPU systems. This works by simply passing the option
`threads=N` with `N` > 1 to these functions.
Treatment of upper limits
For treating upper limits in experimental measurements, e.g. on branching
ratios of unobserved decays, there is a new probability distribution
`GeneralGammaUpperLimit` that is appropriate for low-statistics counting
experiments with an uncertain background. This applies e.g. to the
rare *B* decays with neutrinos in the final state mentioned below.
Other improvements
- For all classes with named instances, e.g. `Observable`, `Measurement`, or `Parameter`, instances can now be accessed with a dictionary-like notation, e.g. `Observable['BR(Bs->mumu)']`, in addition to the old `get_instance` method.
- All 1D probability distributions now have methods `get_error_left`, `get_error_right` with an argument `nsigma` that return the lower and upper error for a given number of sigmas.
- The `FastFit` has gained a new method `best_fit` returning the position and log-likelihood of the best fit point in the space of fit parameters and Wilson coefficients.
Experimental data
- The world average of `BR(B->Xsgamma)` has been updated to use the value of [Misiak and Steinhauser](https://arxiv.org/abs/1702.04571) that includes the recent [Belle measurement](https://arxiv.org/abs/1608.02344)
- All existing limits on decays of the type B→M*νν*, where M is a meson, have been added, including the new [Belle analysis](https://arxiv.org/abs/1702.03224), and using the new generalized treatment of upper limits mentioned above. Thanks to James Kahn for useful discussions.