我想知道如何使用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。
我是否必须使用临时文件来解决此问题?或者有更好,更简单的方法吗?
感谢您的帮助!
答案 0 :(得分:0)
实际上我可以自己找出解决方案:
我没有使用numpy中的正确方法,我应该使用array2root而不是array2tree。
path
这是正确的方法吗?请注意,在这种情况下,文件未打开,因此不会临时加载其包含。