File 如何打开根文件(根框架) 如何在C++代码中打开根文件?从根文件读取参数并使用C++代码在终端上读取和打印参数?

File 如何打开根文件(根框架) 如何在C++代码中打开根文件?从根文件读取参数并使用C++代码在终端上读取和打印参数?,file,frameworks,analysis,root-framework,File,Frameworks,Analysis,Root Framework,需要安装根()/p> 然后您有两个选项,最简单的是在解释器中打开它,只需在控制台中键入: 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"); 如

需要安装根()/p> 然后您有两个选项,最简单的是在解释器中打开它,只需在控制台中键入:

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");

如果您仅限于终端(即无法访问X服务器),则可以使用

root -l myfile.root
root [0] .ls
<...>
KEY: TTree tree;1 Demo ntuple
root [1] tree->Scan("parameter")
root-l myfile.root
根目录[0]。ls
关键词:t树;1个演示N倍
根目录[1]树->扫描(“参数”)
(请参阅根用户指南的第页)

根据要打印的参数的类型,您可能还需要考虑<代码> MyObjult>打印()/<代码>(命中<代码> MyObjult> [Tab] < /Case>从根命令行会话)


如果您可以使用图形用户界面(例如,
ssh-Y
),那么@asen christov的答案就是正确的

我通常只保存一个文件(例如try.cpp) 然后在终端我只需键入
root-l try.cpp
打印和扫描(如上面的答案所示)打印您需要的内容


t浏览器b向您显示.root文件(树、树枝和树叶)中的内容。

在这种情况下,您可以使用:TFile f=new TFile(“your_file.root”)检索对象;TH1F*h=(TH1F)f->Get(“hM0”);有没有办法不必使用命令行?我需要为我的论文检查许多根文件,并想通过双击根文件打开TBrowser。但它不起作用。有人知道我能做什么吗?我相信答案的第二部分就是这样。如果您喜欢python,请查找pyROOT。我不想将数据导入脚本。Root有TBrowser,它是一个GUI,以直方图的形式显示根文件的内容。但是要打开TBrowser,我首先必须从命令行启动Root,然后调用新TBrowser的构造函数。在TBrowser GUI中,我可以导航到我想要检查的文件,然后打开Hisgrams。这是一个非常乏味和不必要的复杂过程。我想要的是能够通过双击根文件来查看TBrowser直方图。就像当你想阅读PDF文件时,你双击它,就可以立即开始阅读。为什么根文件没有那么简单?有没有一种方法可以直接从GUI打开TBrowser而不必打开命令行?