首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TTree访问朋友pyROOT

使用TTree访问朋友pyROOT
EN

Stack Overflow用户
提问于 2017-07-11 17:55:13
回答 1查看 509关注 0票数 1

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

代码语言:javascript
复制
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

当我运行这个时,我得到:

代码语言:javascript
复制
$ 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)的叶子。我怎么才能接触到它们?

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

代码语言:javascript
复制
mychain.AddFriend("muon_gen","mu.root")

但这也会产生同样的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-10 04:11:07

我有一个类似的问题,并在根论坛上找到了一个答案(好吧,解决办法):

https://root-forum.cern.ch/t/accessing-a-friend-ttree-using-pyroot/25513

虽然没有给出使用TFriend的解决方案。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45041522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档