我在文档中查找了如何从直方图中获取PDF,但是我什么也找不到,那么如何从直方图中获取PDF呢?例如,在sum_pdf = zfit.pdf.SumPDF(model1,model2,fracs=frac)中使用它,以便执行拟合,或者生成一些玩具。
提前谢谢。
PS。我看起来有点像Roofit的RooHistPdf类。
发布于 2020-09-02 00:46:39
目前还没有现成的解决方案,但仍在进行中。
然而,你可以简单地自己构造一些东西,比如:
import zfit
from zfit import z
import numpy as np
import tensorflow as tf
zfit.settings.options['numerical_grad'] = True
class BinnedEfficiencyPDF(zfit.pdf.BasePDF):
def __init__(self, efficiency, eff_bins, obs, name='BinnedEfficiencyPDF'):
self.efficiency = efficiency
self.eff_bins = eff_bins
super().__init__(obs=obs, name=name)
def _binContent(self, x):
eff_bin = np.digitize(x, self.eff_bins)
return self.efficiency[eff_bin]
def _unnormalized_pdf(self, x): # or even try with PDF
x = z.unstack_x(x)
probs = z.py_function(func=self._binContent, inp=[x], Tout=tf.float64)
probs.set_shape(x.shape)
return probhttps://stackoverflow.com/questions/63690793
复制相似问题