code4

class pyhf.interpolators.code4(histogramssets, subscribe=True, alpha0=1)[source]

Bases: object

The polynomial interpolation and exponential extrapolation strategy.

\[\sigma_{sb} (\vec{\alpha}) = \sigma_{sb}^0(\vec{\alpha}) \underbrace{\prod_{p \in \text{Syst}} I_\text{poly|exp.} (\alpha_p; \sigma_{sb}^0, \sigma_{psb}^+, \sigma_{psb}^-, \alpha_0)}_\text{factors to calculate}\]

with

\[\begin{split}I_\text{poly|exp.}(\alpha; I^0, I^+, I^-, \alpha_0) = \begin{cases} \left(\frac{I^+}{I^0}\right)^{\alpha} \qquad \alpha \geq \alpha_0\\ 1 + \sum_{i=1}^6 a_i \alpha^i \qquad |\alpha| < \alpha_0 \\ \left(\frac{I^-}{I^0}\right)^{-\alpha} \qquad \alpha < -\alpha_0 \end{cases}\end{split}\]

and the \(a_i\) are fixed by the boundary conditions

\[\sigma_{sb}(\alpha=\pm\alpha_0), \left.\frac{\mathrm{d}\sigma_{sb}}{\mathrm{d}\alpha}\right|_{\alpha=\pm\alpha_0}, \mathrm{ and } \left.\frac{\mathrm{d}^2\sigma_{sb}}{\mathrm{d}\alpha^2}\right|_{\alpha=\pm\alpha_0}.\]

Namely that \(\sigma_{sb}(\vec{\alpha})\) is continuous, and its first- and second-order derivatives are continuous as well.

__init__(histogramssets, subscribe=True, alpha0=1)[source]

Polynomial Interpolation.

Methods

_precompute()[source]
_precompute_alphasets(alphasets_shape)[source]