[英]Import dataset from a ROOT file with cut using zfit
我正在嘗試對一棵樹進行擬合。 但是我需要在分支上添加一些切口,這些分支不是適合的可觀察到的。 網站https://zfit.readthedocs.io/en/latest/getting_started/intro/data.html告訴我可以通過指定 root_dir_options 在數據集中包含削減。 但我不知道如何操作它。
例如,我想用樹“ntuple”打開一個 ROOT 文件“test.root”。 擬合的可觀察量是 x。
我會寫
data = zfit.Data.from_root("tese.root","ntuple","x")
如果我需要在樹y>1和z>1中設置另外兩個分支的cut,我該如何編寫代碼?
截至目前,實際上有兩種方法:
最通用的方法是先將數據加載到 pandas dataframe(使用 uproot),然后使用 from_pandas 加載到 zfit,在那里你可以給出一個 obs。 所以你需要先用 obs = zfit.Space('obsname', (lower, upper)) 創建一個空間。 然后你可以在 zfit.Data.from_pandas(...)
使用 uproot 加載可以是(作為示例):
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.