Skip to content
Snippets Groups Projects
Commit 1a439352 authored by Alexander Heidelbach's avatar Alexander Heidelbach
Browse files

Add weight propagation

parent 6b2d0eba
Branches
No related tags found
No related merge requests found
from typing import Type, Union
from typing import Optional, Type, Union
import numpy as np
import zfit
import zfit.core
......@@ -11,18 +11,25 @@ __all__ = ["Fitter", "HistFitter"]
class Fitter(BaseFitter):
def __init__(
self, array: np.ndarray, model: Model, retry: int = 10, *args, **kwargs
self,
array: np.ndarray,
model: Model,
weights: Optional[np.ndarray] = None,
retry: int = 10,
*args,
**kwargs,
) -> None:
super().__init__(model=model, retry=retry, *args, **kwargs)
self.array = array
self.weights = weights
self.zfitresult = None
@property
def data(self) -> zfit.Data:
assert self.model.model is not None
obs = self.model.model.space
data = zfit.Data.from_numpy(obs=obs, array=self.array)
data = zfit.Data.from_numpy(obs=obs, array=self.array, weights=self.weights)
return data
......@@ -48,7 +55,7 @@ class Fitter(BaseFitter):
limits = self.model.obs.limits
low, high = np.min(limits), np.max(limits)
bins = np.linspace(float(low), float(high), 100)
counts_array, edges = np.histogram(self.array, bins=bins)
counts_array, edges = np.histogram(self.array, bins=bins, weights=self.weights)
bin_centers = (edges[1:] + edges[:-1]) / 2
gof = self._calc_gof(counts=counts_array, centers=bin_centers)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment