smoofit.utils.Dim6EFTMorphing
- class smoofit.utils.Dim6EFTMorphing(var, basis_points)[source]
A class for morphing signals in a dimension-6 EFT
Instances of this class are callable and are meant to be passed to
smoofit.model.Process.scale_by_fn()
.In a dim.-6 EFT with \(n\) operators, contributions (cross sections, yields…) scale like:
\[H(\vec{c}) = H_0 + \sum_{i=1}^n c_i H_i + \sum_{i=1,j=1,i \leq j \leq n} c_i c_j H_{ij}\]where \(H_0\) is the SM prediction, \(\vec{c}\) are the Wilson coefficients, \(H_i\) are the interferences between the SM and operator \(i\), and \(H_{ij}\) are pure-EFT contributions (operator-squared and operator-operator interfence).
If you have at your disposal a set of templates \(B_k = H(\vec{c}_k)\) (for instance, you have event weights for each \(\vec{c}_k\), and have filled separate histograms using each set of weights), with \(k = 1 \dots M = 1+n+n(n+1)/2\), it is possible to morph these templates into the prediction for any value of \(\vec{c}\):
\[H(\vec{c}) = \sum_{k=1}^M f_k(\vec{c}) B_k\]where:
\[\begin{split}f_k(\vec{c}) &= \sum_{l=1}^M w_l(\vec{c}) W_{lk}^{-1}, \\ \vec{w}(\vec{c}) &= (1, \, c_1, \dots, c_n, \, c_1 c_1, c_1 c_2, \dots , c_1 c_n, c_2 c_2, c_2 c_3, \dots , c_n c_n ), \\ W_{lk} &= w_l(\vec{c}_k)\end{split}\]The process this scaling function is attached to should therefore have \(M\) sub-processes, matching the \(B_k\) above. Note that the sum over \(k\) is not performed by this morphing function, but by the model when summing all processes and sub-process together. Hence, systematic uncertainties are still applied separately to each sub-contribution \(B_k\).
Methods
__call__
(values)Morphing functions
__init__
(var, basis_points)Constructor
- __call__(values)[source]
Morphing functions
- Parameters
values (
DeviceArrayBase
) – array of shape(n,)
with the values of the Wilson coefficients \(\vec{c}\)- Return type
DeviceArrayBase
- Returns
array of shape
(M,1)
where entry[k,0]
is equal to \(f_k(\vec{c})\)
- __init__(var, basis_points)[source]
Constructor
- Parameters
var – the
smoofit.model.Variable
representing then
Wilson coefficientsbasis_points (
ndarray
) – the values of the Wilson coefficients used for filling each basis template, as a 2D array with shape(M,n)