Tools for producing sweights using classic methods or custom orthogonal weight functions (COWs) and for correcting covariance matrices for weighted data fits.
pip install sweights
We provide a few tools for projecting component weights ("sweights") for a control variable(s) using a discriminating variable(s). For details please see Dembinski, Kenzie, Langenbruch, Schmelling - arXiv:2112.04574.
We also provide tools for correcting the covariance matrix of fits to weighted data. For details please see Dembinski, Kenzie, Langenbruch, Schmelling - arXiv:2112.04574 (Sec IV) and Langenbruch - arXiv:1911.01303.
The below documentation is now superseeded as it has been moved to readthedocs. Please go to https://sweights.readthedocs.io for the latest.
A variety of options for extraction of signal-like weights is provided:
classic "sWeights" via the
sweightclass produces pure weight functions and provides the Wkl and Akl matrices
- Using the "summation" method from the original sPlot paper Pivk, Le Diberder - arXiv:physics/0402083 referred to as Variant B in arXiv:2112.04574
- Using the "integration" method rederived originally by Schmelling and referred to as Variant A in arXiv:2112.04574
- Using the "refit" method, i.e. taking the covariance matrix of a yield only fit, referred to as Variant Ci in arXiv:2112.04574
- Using the "subhess" method, i.e. taking the sub-covariance matrix for the yields, referred to as Variant Cii in arXiv:2112.04574
- Using the implementation in ROOT's TSPlot (this we believe should be equivalent to Variant B but is more susceptible to numerical differences)
- Using the implementation in RooStat's SPlot (we found this identical to Variant B ("summation") above in all the cases we tried)
Custom Orthogonal Weight functions (COWs) via the
cowclass produces pure weight functions and provides Wkl and Akl matrices. It expects
- gs - the signal function for the discrimant variable
- gb - the background function(s) for the discriminant variable (can pass orders of polynomials here if desired)
- Im - the variance function for the discriminant variance (can also pass 1 and it will be set of uniform)
- obs - one can instead or additionally pass the observed distribution in the discriminant variable which will be used for the variance function instead. In this case you must pass a two element tuple giving the bin entries and bin edges for the observed dataset (the same as what
Corrections to the covariance matrix can be implemented using
cov_correctwhich computes the full asymptotic correction using Eq. 55 in arXiv:2112.04574
approx_cov_correctis more straightfoward to compute but only computes the first term in Eq. 55 of arXiv:2112.04574 which will be slightly conservative
A test of variable independence based on the Kendall tau coefficient is also provided in
An example script demonstrating a typical use case is provided in
There is also a version written as a
This does the following:
- Generate toy data in two independent dimensions m and t
Fit the toy data in the discriminanting variable to get an estimate of the discriminating variable pdfs
Compute sWeights using the "summation" method (implemented by the
- Compute sWeights using the COW method with a variance function of unity, I(m)=1, (implemented by the
- Fit the weighted distributions and correct the covariance using the
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.