簡體   English   中英

使用 zfit 從 ROOT 文件導入數據集

[英]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

最通用的方法是先將數據加載到 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM