首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uproot问题:我在TBrowser中看到的完整TTree结构没有出现在uproot中

uproot问题:我在TBrowser中看到的完整TTree结构没有出现在uproot中
EN

Stack Overflow用户
提问于 2020-10-16 20:35:06
回答 1查看 126关注 0票数 1

摘要:在运行uproot tutorial时,TTree分支似乎丢失了。

我有一个根文件,其中包含一个名为'prod‘的TTree,它有一组复杂的参差不齐的叶子和分支,我可以在根目录的TBrowser中看到。我使用这个根文件作为输入启动了uproot教程,并在交互会话开始时收到以下错误:

代码语言:javascript
复制
>>>import uproot as up
>>> file = up.open('small.root')
>>> file
<ROOTDirectory b'small.root' at 0x025b5e3477c0>
>>> file.keys()
[b'prod;1']
>>> file.classnames()
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    file.classnames()
AttributeError: 'ROOTDirectory' object has no attribute 'classnames'
>>> file['prod']
<TTree b'prod' at 0x025b5dd15d00>

为什么在尝试获取类名时会出现错误?

忽略这一点,继续前进。下一个问题是当我尝试查看TTree prod中的内容时

代码语言:javascript
复制
>>> tree = file['prod']
>>> tree.keys()
[b'COSMIC', b'COSMICRES', b'COTNBC', b'COTTIME', b'GLB', b'LUM', b'MET', b'MU', b'PHOTON', b'RESIDUALS', b'TRACK', b'TRKDET', b'VERTEX', b'ZVTX', b'MOM_ntk', b'MOM_pt', b'MOM_px', b'MOM_py', b'MOM_pz']
>>> branches = tree.arrays(namedecode='utf-8')
>>> branches.keys()
dict_keys(['MET', 'MOM_ntk', 'MOM_pt', 'MOM_px', 'MOM_py', 'MOM_pz'])

uproot教程暗示我应该获得所有的分支,但显然我遗漏了相当多的分支。特别是,唯一被转移的分支是那些我称之为“简单”的分支,因为它们只有数字数据成员。

其他分支在其中包含更多的项。例如,'MU‘分支具有事件中每个µ子的属性。首先是这样的µ子的数量,然后是这些µ子的每个属性的进一步分支,比如它的质量和与之相关的磁道号。‘'MET’、'MOM_ntk‘、'MOM_pt’、'MOM_px‘、'MOM_py’和'MOM_pz‘都只包含浮点数的列表。MOM_ntk每个事件只有一个数字(称之为'alpha'),而其他MOM分支将在每个分支中都有'alpha‘数字。

该文件只有1000个事件,总大小只有5MB左右。

我想知道其他的分支都到哪里去了!我的朋友'COTNBC‘或'GLB’在哪里(其中应该有所有的运行和事件编号)。

任何建议或帮助都将不胜感激!

配备32 i7内存的Windows 10 PC英特尔(R)酷睿(TM) i7-8700 CPU @3.20 CPU x64处理器

EN

回答 1

Stack Overflow用户

发布于 2020-10-16 21:47:59

根据你正在尝试做的事情和你得到的输出,看起来你期待的是Uroot4,但你得到的是Uroot3。在Uroot4与Uroot3具有特征奇偶校验之前,它将位于一个名为uproot4 (pip install uproot4import uproot4)的包中。这使您可以在此转换过程中同时使用这两种方法。

其中一个不同之处在于,Uroot3的keys()方法不会通过分支的子分支递归,但Uroot4的方法会递归。(在这两个文件中都有一个recurse=True/False参数,但是由于您所看到的原因,默认值发生了变化。)

名称更改(uproot4 uprootuprootuproot3)将在年底前进行。Uroot4只需要写入文件就可以了。

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

https://stackoverflow.com/questions/64389307

复制
相关文章

相似问题

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