CERN ROOT从TNtuple中提取数据
CERN ROOT Extract Data from TNtuple
我使用的是CERN的ROOT框架(必需),我想从一个TNtuple中获取数据并对其进行绘图。我可以在创建TNtuples时对数据进行绘图,也可以在将其写入.ROOT文件后对数据进行绘图。一些支持文档建议我创建一个TTree,但这似乎有些过头了,因为我不会把它用于其他任何事情(而且TNtuple满足了我所有的其他要求)。有人对如何从TNtuple中提取数据并对其进行绘图有更好的建议吗?
由于TNtuple从TTree继承,您可以直接在TNtuples上使用TTree支持文档中提供的所有方法。这尤其意味着您可以使用TTree::Draw(),这对于快速绘制数据来说通常绰绰有余。此处记录了此功能。
对于更精细的绘图,您必须逐个事件地读取TNtuple中的数据,并将其提供给ROOT中您最喜欢的绘图工具。这再次遵循了树的基本原则。我能在ROOT主页上找到的最好的例子是用户手册中"阅读树"一段中的树部分。
用于为TNtuple创建直方图和绘图的方法与TTrees基本相同。代码:
ntuple->Draw("var");
将创建存储在N元组中的变量CCD_ 1的直方图。如果您想将N元组中的一个变量绘制为另一个变量的函数,请使用
ntuple->Draw("xVar:yVar");
只有在满足逻辑条件的情况下,你才能做一些更花哨的事情,比如创建情节。例如,假设仅当var2
大于2且var3
小于0时,才需要var1
的直方图。
ntuple->Draw("var","var2 > 2 && var3 < 0");
通过这种方式绘制,ROOT自动设置x轴的装仓和范围。如果你想自己控制这些功能,请使用
ntuple->Draw("var >> hist(Nbins,xmin,xmax)");
这将创建对象hist
,您将其视为ROOT中的常用直方图对象。如前一篇文章所述,这与其他一些功能和工具一起记录在ROOT手册中。不幸的是,手册并不总是给出明确的解释。
{
ntuple->Draw("py:px","px>py","goff");
TGraph *gr = new TGraph(ntuple->GetSelectedRows(),ntuple->GetV2(), ntuple->GetV1());
gr->Draw("AP");
}
相关文章:
- JPG-如何从ICC配置文件部分APP2读取/提取数据
- 如何从多维向量中提取数据
- 从异构列表中提取数据
- 从 Windows 中的其他应用程序 GUI 中提取数据
- 如何从 qwebengineview qt5.9 中提取数据
- 如何从shared_ptr<T&>的引用中提取数据
- 从自定义结构数组中提取数据
- 无法从结构数组 C++ 中提取数据
- 用字符串::擦除在C 中提取数据
- C 从结构Deque提取数据
- 如何从 char[] 字符串中提取数据
- 用C++从字符串中优雅地提取数据
- 如何从用|分隔的txt文件中提取数据
- 如何从结构数组中提取数据
- 如何使用 C++11 <thread> 设计从源中提取数据的系统
- 从数据库中提取数据时使用QVariant的正确方法
- 提取数据范围的分隔符
- 从文本文件中查找和提取数据
- 是否有用于从HTML页面中提取数据的库
- 使用Boost::python从嵌入式python中提取数据