如何在C ++代码中打开.root文件?并使用终端上的C ++代码从.root文件中读取和打印参数?
答案 0 :(得分:2)
您需要安装ROOT(https://root.cern.ch/)
然后你有几个选项,最简单的是只需在控制台输入就可以在解释器中打开它:
root your_file.root
您可以在浏览器中查看它,输入:
TBrowser b
从脚本/ C ++代码中打开它并获取存储在其中的树:
#include "TFile.h"
#include "TTree.h"
TFile *f=new TFile("your_file.root");
TTree *tr=(TTree*)f->Get("the_tree_name");
答案 1 :(得分:1)
如果您被限制在终端(即无法访问X服务器),那么您可以使用类似
的内容root -l myfile.root
root [0] .ls
<...>
KEY: TTree tree;1 Demo ntuple
root [1] tree->Scan("parameter")
(参见root用户指南的section 11)。
根据您要打印的参数类型,您可能还需要考虑myObject->Print()
(从命令行会话中点击myObject->[tab]
)。
如果您可以使用图形用户界面(例如ssh -Y
),那么来自@ asen-christov的答案就是您的选择。
答案 2 :(得分:0)
我通常只保存一个文件(例如try.cpp)
然后在终端上,我只输入root -l try.cpp
打印并扫描(如以上答案所示)会打印您需要的内容。
TBrowser b向您显示.root文件中的内容(树,树枝和树叶)