使用root_numpy(Python)将新分支添加到ROOT文件中的TTree

时间:2017-05-16 13:20:43

标签: python numpy pyroot

我想知道如何使用Python在ROOT文件中为我的一个TTree添加新分支。

with root_open('MC_output.root', mode='a') as myfile:
    new_column = numpy.array(gb_weights , dtype=[('weight', 'f8')])
    root_numpy.array2tree(new_column , tree=myfile.TrainTree)
    new_column_test = numpy.array(gb_weights_test , dtype=[('weight', 'f8')])
    root_numpy.array2tree(new_column_test, tree=myfile.TestTree)
    myfile.write()
    myfile.close()

在此示例中,TrainTree和TestTree已存在于ROOT文件中。我只想给他们添加一个新的分支'重量'。我在这里遇到的问题是它会复制树,所以在我的文件中我有2个TrainTree和2个TestTree。

我是否必须使用临时文件来解决此问题?或者有更好,更简单的方法吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

实际上我可以自己找出解决方案:

我没有使用numpy中的正确方法,我应该使用array2root而不是array2tree。

path

这是正确的方法吗?请注意,在这种情况下,文件未打开,因此不会临时加载其包含。