【问题标题】:Accessing a friend TTree using pyROOT使用 pyROOT 访问朋友 TTree
【发布时间】:2017-12-15 22:16:10
【问题描述】:

我有一个 pyROOT 脚本,我在其中使用 TChain::AddFriend 组合两个 TTree:

from ROOT import TFile, gDirectory 

myfile = TFile("e.root")
mychain = gDirectory.Get("elec_gen")
entries = mychain.GetEntriesFast()

friendFile = TFile("mu.root")
friendChain = gDirectory.Get("muon_gen")
mychain.AddFriend("muon_gen")

elec_gen_evtNum = mychain.evtNum
muon_gen_evtNum = mychain.muon_gen.evtNum

当我运行它时,我得到:

$ python friendTest.py 
Traceback (most recent call last):
  File "friendTest.py", line 12, in <module>
    muon_gen_evtNum = mychain.muon_gen.evtNum
AttributeError: 'TTree' object has no attribute 'muon_gen'

最后一行注释掉它运行良好。所以看来我没有正确访问朋友树(muon_gen)的叶子。我如何访问它们?

我还尝试使用以下方法组合 TTree:

mychain.AddFriend("muon_gen","mu.root")

但这会产生同样的错误。

【问题讨论】:

    标签: python root-framework pyroot


    【解决方案1】:

    我有一个类似的问题,并在 ROOT 论坛上找到了答案(嗯,解决方法):
    https://root-forum.cern.ch/t/accessing-a-friend-ttree-using-pyroot/25513
    尽管没有使用TFriend 提出解决方案。

    相反,RobS 为他自己的问题找到了一种解决方法,即分别加载两个 TFileTTree 并在每个 TChain 上运行 LoadTree()GetEvent()

    【讨论】:

    • 啊,感谢您用我自己的答案更新我的问题!
    猜你喜欢
    • 1970-01-01
    • 2020-06-08
    • 2016-12-13
    • 1970-01-01
    • 2013-08-15
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    相关资源
    最近更新 更多