【发布时间】:2019-08-20 11:36:13
【问题描述】:
我有一个在 zfit 中带有 pdf 的运行模型,我想从中生成玩具,然后将 pdf 拟合到玩具中。但是我想知道如何在玩具一代以及之后的配件中排除某些区域。更清楚的是,这意味着使用多个限制,以便我在适合和玩具代运行的多个范围内(同时)。 有谁知道怎么做?
【问题讨论】:
我有一个在 zfit 中带有 pdf 的运行模型,我想从中生成玩具,然后将 pdf 拟合到玩具中。但是我想知道如何在玩具一代以及之后的配件中排除某些区域。更清楚的是,这意味着使用多个限制,以便我在适合和玩具代运行的多个范围内(同时)。 有谁知道怎么做?
【问题讨论】:
这可以通过添加Spaces 使用多重限制来实现,(减去拟合范围的备注,见下文)
我假设您以类似的方式定义模型和数据
obs = zfit.Space('x', (..,..))
model = zfit.pdf.Foo(obs=obs,...)
data = zfit.Data....(obs=obs,...)
要定义具有多个限制的单个空间,请执行以下操作
obs1a = zfit.Space('x', (..., ...))
obs1b = zfit.Space('x', (..., ...))
obs = obs1a + obs1b
请注意,可观察到的 'x' 在两种情况下都是相同的,因此将添加 Space 而不会扩展到更高的维度。
澄清一下,实际上“没有拟合范围这样的东西”。有两个范围很重要:
通常,这两个重合并被命名为拟合范围。有时虽然归一化范围可能不同(例如,从以前的拟合到左/右的扩展范围),并且“拟合范围”通常等同于“数据范围”,因为这定义了,哪些数据点被用于可能性。
【讨论】: