我正试着在树上做一个合适的动作。但我需要在树枝上加上一些剪裁,这些枝条不是适合我观察的。网站https://zfit.readthedocs.io/en/latest/getting_started/intro/data.html告诉我,通过指定root_dir_options,我可以在数据集中包括裁剪。但我不知道怎么操作。
例如,我想用树"ntuple“打开根文件"test.root”。拟合的可观测值为x。
我会写
data = zfit.Data.from_root("tese.root“、"ntuple”、"x")
如果我需要在树y>1和z>1中设置另外两个分支的裁剪,我如何编写代码?
发布于 2022-04-13 09:33:40
从今天起,实际上有两种方式:
利用熊猫
最常见的方法是先将数据加载到熊猫的数据中(使用连根拔起),然后用from_pandas加载到zfit中,这样就可以给出一个obs。因此,您首先需要创建一个带有obs =zfit.Space的空间(“默示名称”,(下,上))。然后您可以在zfit.Data.from_pandas(.)中使用它。
可以(举个例子)加载连根拔起:
branches = ["pt1", "pt2"]
with uproot.open(path_root) as f:
tree = f["events"]
true_data = tree.arrays(branches, library="pd")刀刃
最前沿的方法是在from_root中直接给出限制;这是尖端开发,很快就会面世:https://github.com/zfit/zfit/pull/396。
https://stackoverflow.com/questions/64367035
复制相似问题