cfit

class ModelCfitExtended(amp, w_bkg=0.001, bg_f=None, eff_f=None)[source]

Bases: Model

nll(data, mcdata, weight: Tensor = 1.0, batch=None, bg=None, mc_weight=None)[source]

Calculate NLL.

\[\begin{split}-\ln L = -\sum_{x_i \in data } w_i \ln P(x_i;\theta_k) \\ P(x_i;\theta_k) = (1-f_{bg})Amp(x_i; \theta_k) + f_{bg} Bg(x_{i};\theta_k)\end{split}\]
\[-\ln L_{2} = -\ln ( L \lambda^{N_{data}} / {N_{data}}! e^{-\lambda}) = -\ L - N_{data} \ln \lambda + \lambda + C\]
\[\lambda = 1/(1-f_{bg}) \int Amp(x_i; \theta_k) d \Phi\]
Parameters:
  • data – Data array

  • mcdata – MCdata array

  • weight – Weight of data???

  • batch – The length of array to calculate as a vector at a time. How to fold the data array may depend on the GPU computability.

  • bg – Background data array. It can be set to None if there is no such thing.

Returns:

Real number. The value of NLL.

nll_grad_batch(data, mcdata, weight, mc_weight)[source]
\[P = (1-frac) \frac{amp(data)}{\sum amp(phsp)} + frac \frac{bg(data)}{\sum bg(phsp)}\]
\[nll = - \sum log(p)\]
\[\frac{\partial nll}{\partial \theta} = -\sum \frac{1}{p} \frac{\partial p}{\partial \theta} = - \sum \frac{\partial \ln \bar{p}}{\partial \theta } +\frac{\partial nll}{\partial I_{sig} } \frac{\partial I_{sig} }{\partial \theta} +\frac{\partial nll}{\partial I_{bg}}\frac{\partial I_{sig}}{\partial \theta}\]
nll_grad_hessian(data, mcdata, weight=1.0, batch=24000, bg=None, mc_weight=1.0)[source]

The parameters are the same with self.nll(), but it will return Hessian as well.

\[\frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial y_k}{\partial x_i} \frac{\partial^2 f}{\partial y_k \partial y_l} \frac{\partial y_l}{\partial x_j} + \frac{\partial f}{\partial y_k} \frac{\partial^2 y_k}{\partial x_i \partial x_j}\]
\[y = \{x_i; I_{sig}, I_{bg}\}\]
\[\frac{\partial y_k }{\partial x_i} = (\delta_{ik};\frac{\partial I_{sig}}{\partial x_i}, \frac{\partial I_{bg}}{\partial x_i})\]
Return NLL:

Real number. The value of NLL.

Return gradients:

List of real numbers. The gradients for each variable.

Return Hessian:

2-D Array of real numbers. The Hessian matrix of the variables.

class Model_cfit(amp, w_bkg=0.001, bg_f=None, eff_f=None, resolution_size=1)[source]

Bases: Model

nll(data, mcdata, weight: Tensor = 1.0, batch=None, bg=None, mc_weight=None)[source]

Calculate NLL.

\[\begin{split}-\ln L = -\sum_{x_i \in data } w_i \ln P(x_i;\theta_k) \\ P(x_i;\theta_k) = (1-f_{bg})Amp(x_i; \theta_k) + f_{bg} Bg(x_{i};\theta_k)\end{split}\]
Parameters:
  • data – Data array

  • mcdata – MCdata array

  • weight – Weight of data???

  • batch – The length of array to calculate as a vector at a time. How to fold the data array may depend on the GPU computability.

  • bg – Background data array. It can be set to None if there is no such thing.

Returns:

Real number. The value of NLL.

nll_grad_batch(data, mcdata, weight, mc_weight)[source]
\[P = (1-frac) \frac{amp(data)}{\sum amp(phsp)} + frac \frac{bg(data)}{\sum bg(phsp)}\]
\[nll = - \sum log(p)\]
\[\frac{\partial nll}{\partial \theta} = -\sum \frac{1}{p} \frac{\partial p}{\partial \theta} = - \sum \frac{\partial \ln \bar{p}}{\partial \theta } +\frac{\partial nll}{\partial I_{sig} } \frac{\partial I_{sig} }{\partial \theta} +\frac{\partial nll}{\partial I_{bg}}\frac{\partial I_{sig}}{\partial \theta}\]
nll_grad_hessian(data, mcdata, weight=1.0, batch=24000, bg=None, mc_weight=1.0)[source]

The parameters are the same with self.nll(), but it will return Hessian as well.

\[\frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial y_k}{\partial x_i} \frac{\partial^2 f}{\partial y_k \partial y_l} \frac{\partial y_l}{\partial x_j} + \frac{\partial f}{\partial y_k} \frac{\partial^2 y_k}{\partial x_i \partial x_j}\]
\[y = \{x_i; I_{sig}, I_{bg}\}\]
\[\frac{\partial y_k }{\partial x_i} = (\delta_{ik};\frac{\partial I_{sig}}{\partial x_i}, \frac{\partial I_{bg}}{\partial x_i})\]
Return NLL:

Real number. The value of NLL.

Return gradients:

List of real numbers. The gradients for each variable.

Return Hessian:

2-D Array of real numbers. The Hessian matrix of the variables.

class Model_cfit_cached(amp, w_bkg=0.001, bg_f=None, eff_f=None)[source]

Bases: Model_cfit

nll_grad_batch(data, mcdata, weight, mc_weight)[source]
\[P = (1-frac) \frac{amp(data)}{\sum amp(phsp)} + frac \frac{bg(data)}{\sum bg(phsp)}\]
\[nll = - \sum log(p)\]
\[\frac{\partial nll}{\partial \theta} = -\sum \frac{1}{p} \frac{\partial p}{\partial \theta} = - \sum \frac{\partial \ln \bar{p}}{\partial \theta } +\frac{\partial nll}{\partial I_{sig} } \frac{\partial I_{sig} }{\partial \theta} +\frac{\partial nll}{\partial I_{bg}}\frac{\partial I_{sig}}{\partial \theta}\]
f_bg(data)[source]
f_eff(data)[source]