Releases: flav-io/flavio
v0.21.1
This minor release fixes two problems:
- It increases the numerical integration precision for observables that have a very small SM uncertainty (like the lepton flavour universality ratios in B decays), where this precision is relevant
- It corrects the renormalization scale used for the computation of the SM contribution to meson-antimeson mixing, which previously was not consistent with the QCD correction factors used (thanks to Jacky Kumar for pointing out this problem)
v0.21
Most important changes since v0.20.4:
Measurements
- New LHCb measurement of RK*
- Updated LHCb measurement of B0→K*μμ branching ratio to v2 of the preprint
- Replace 7 TeV and 8 TeV CMS measurement of B→K*μμ by their combination (thanks Ayan Paul for pointing us to it!)
New features
- New function
q2_plot_th_diff_err
to plot theory predictions of q² dependent observables including error bands - Uncertainy calculation using
sm_uncertainty
ornp_uncertainty
can now be done much faster in parallel using the optionalthreads
argument
v0.20.4
This point release fixes a few minor issues and adds or updates the following experimental measurements:
- Missing observables in the 2015 CMS measurement of B→K*μ+μ−
- 2013 CMS measurement of B→K*μ+μ− (which is statistically independent of the former)
- 2017 LHCb measurement of Bs→μ+μ− updated to published version. Thanks to Marc Olivier Bettler and Flavio Archilli for useful correspondence and for providing the 2D likelihood data.
v0.20.3
This minor release fixes some minor bugs, brings one new feature and new measurements.
New feature
When using the FastFit
class, the computationally expensive Standard Model covariance matrix containing theory uncertainties and their correlations can now be saved to disk using the save_sm_covariance
method and loaded back using load_sm_covariance
so it does not have to be recomputed.
New measurements
The new measurements of the B→K*μμ angular analysis by ATLAS and CMS shown at Moriond EW 2017 have been added. Moreover, the corresponding measurements by the Tevatron experiment CDF, that were still missing, are also included now. That's 631 lines of new experimental data!
v0.20.2
This is a quick bug fix release correcting a typo in the QCDF corrections to B→Vll decays at low q². The numerical impact of the change on observables is tiny. Thanks a lot to Christoph Langenbruch for reporting this bug.
v0.20.1
This minor release brings a few improvements to the handling of experimental measurements and theory parameters as well as some new experimental measurements.
YAML export for parameter constraints and measurements
The values and uncertainties of all parameters are represented in flavio by an instance of the ParameterConstraints
class. By default, the instance flavio.default_parameters
is populated from YAML files (see the documentation). Similarly, experimental measurements and their uncertainties are represented by instances of the Measurement
class, populated from the file measurements.yaml
. The new feature in this release is that these classes can now also be exported to YAML, using the new get_yaml()
methods. This allows to create or modify measurements or parameter constraints in code and export them to a simple text file for later reuse or for sharing them.
New experimental measurements
- New LHCb limit on Bs,d→ττ
- All BaBar and Belle measurements of B→Xsll
- Existing limits on lepton flavour violating B decays
- BaBar limit on B→Kττ
Interface changes
- The observable
BR(Bd->mumu)
was renamed toBR(B0->mumu)
for consistency with other observables - When specifying multivariate numerical constraints in YAML, the key
distribution: multivariate_numerical
now has to be specified explicitly. Multivariate normal constraints can now be specified using the same format. - Multivariate normal distributions can now alternatively be specified in terms of standard deviations and a correlation matrix instead of a covariance matrix
v0.20
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.
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
, orParameter
, instances can now be accessed with a dictionary-like notation, e.g.Observable['BR(Bs->mumu)']
, in addition to the oldget_instance
method. - All 1D probability distributions now have methods
get_error_left
,get_error_right
with an argumentnsigma
that return the lower and upper error for a given number of sigmas. - The
FastFit
has gained a new methodbest_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 that includes the recent Belle measurement - All existing limits on decays of the type B→Mνν, where M is a meson, have been added, including the new Belle analysis, and using the new generalized treatment of upper limits mentioned above. Thanks to James Kahn for useful discussions.
v0.19
This release brings major improvements especially in two sectors: the treatment of numerical likelihoods and plotting functions for 1D and 2D likelihoods. Users of flavio.plots.band_plot
should read on as there have been some interface changes.
Improved treatment of numerical likelihoods
- Measurements of one- or multi-dimensional experimental constraints can now be specified in numerical form directly in YAML files. An example are the correlated measurements of rare leptonic B decays by CMS and LHCb that are now included by default. See also the documentation.
Improvements to plot functions
- The function
flavio.plots.band_plot
, used for 2D likelihood plots given a log-likelihood function (e.g. from aFastFit
instance) has been superseded by the new functionflavio.plots.likelihood_contour
. The old name still works but might be removed in the near future.flavio.plots.likelihood_contour
actually calls two functions after one another:flavio.plots.likelihood_contour_data
computes the numerical values to plot;flavio.plots.contour
produces the actual plot.
The advantage of this split is that these functions can also be called separately, e.g. to perform the time-consuming calculation only once and be able to make tweaks to the plot style without the need for recomputation. - The function
flavio.plots.density_contour
, used for density plots e.g. for Bayesian MCMC analyses, has been rewritten from scratch:- Data production is also separated into
flavio.plots.density_contour_data
and the same functionflavio.plots.contour
as for the likelihood plots is used for presentation - For the kernel density estimate, a fast fourier transform is used now. For a large number of points, as is typical for MCMC analyses, this leads to an enormous speed-up. Density contours can now be plotted from samples with several million points in a matter of seconds!
- Data production is also separated into
- The function
flavio.plots.smooth_histogram
, the 1D analogue of density contour, has also been rewritten from scratch:- Instead of just interpolating a histogram, it now also uses a Gaussian KDE based on FFT
- The 1 sigma region can now be displayed as a shaded vertical band
- A new function
flavio.plots.pdf_plot
plots 1D likelihoods, e.g. fromFastFit
instances, with the same style assmooth_histogram
.
All the old and new plot functions are documented in detail in the API docs. Example notebooks will follow in due time.
Physics updates
Finally, there have also been some small physics improvements, in addition to the experimental measurements mentioned above.
- Some parameters updated to HFAG 2016 values
- Mass-eigenstate rate asymmetry in Bs→ll added (
ADeltaGamma(Bs->mumu)
etc.) - Angular observable S6c in B→K*ll added (e.g.
<S6c>(B0->K*mumu)
)
v0.18.1
v0.18
This first release in 2017 brings lots of new features and some bug fixes.
Several improvements have been made to probability distributions, which are required to quantify both theoretical and experimental uncertainties needed to compute prediction uncertainties and to construct likelihoods for fits:
- A new class GammaUpperLimit appropriate for low-statistics measurements resulting in an upper limit (e.g. on a rare decay branching ratio),
- A new class MultivariateNumericalDistribution that allows to specify any probability distribution in an arbitrary number of dimensions. This works with all the functions implemented, like computing uncertainties and Bayesian fits.
- Constraints in the form of a fixed range (uniform likelihood within and zero outside) can now be specified in YAML files in the intuitive form
[0.1, 3.5]
. - A new way of specifying arbitrary probability distributions in YAML files.
There is also a new page in the documentation about details on the treatment of probability distributions and how to define them in YAML. The API docs have been updated as well.
On the physics side, the following processes have been added:
- The forward-backward asymmetry in inclusive B→Xql+l- decays. Like The branching ratio added in v0.15, this is based on arXiv:1503.04849 and profited a lot from help by Tobias Huber.
- The branching ratio of Bc→lν.
- Lepton flavour ratios in B→Mlν decays, including experimental measurements of the μ/τ ratios in B→D(*)lν.
Finally, the following bugs have been fixed:
- In the presence of new physics, the decay Bd→l+l- erroneously used b→s Wilson coefficients. Thanks to @jackypheno (Jacky Kumar) for spotting and fixing this.
- Measurements with a Gaussian upper limit constraint returned the wrong likelihood if the confidence level specified was different from 68%.
- A glitch in the log-enhanced QED corrections to B→Xql+l- was fixed (the change is numerically irrelevant).