我正在使用 CERN 的 ROOT 框架(必需),我想从 TNtuple 中获取数据并绘制图表。我可以在创建 TNtuple 时绘制数据,也可以在将其写入 .root 文件后绘制数据。一些支持文档建议我创建一个 TTree,但这似乎有点矫枉过正/迂回,因为我不会将它用于其他任何事情(并且 TNtuple 满足我的所有其他要求)。有没有人对如何从 TNtuple 中提取数据并绘制图表有更好的建议?
问问题
3194 次
3 回答
1
用于为 TNtuples 创建直方图和绘图的方法与 TTrees 基本相同。编码:
ntuple->Draw("var");
将创建var
存储在 Ntuple 中的变量的直方图。如果要将 Ntuple 中的一个变量绘制为另一个变量的函数,请使用
ntuple->Draw("xVar:yVar");
您可以做一些更有趣的事情,例如仅在满足逻辑条件时才创建绘图。例如,假设您需要var1
仅当var2
大于 2 且var3
小于 0 时的直方图。
ntuple->Draw("var","var2 > 2 && var3 < 0");
通过以这种方式绘图,ROOT 会自动设置 x 轴的分箱和范围。如果您想自己控制这些功能,请使用
ntuple->Draw("var >> hist(Nbins,xmin,xmax)");
这将创建 object hist
,您将其视为 ROOT 中的常用直方图对象。如上一篇文章所述,这与其他几个功能和工具一起记录在 ROOT 手册中。不幸的是,手册并不总是给出明确的解释。
于 2012-07-29T19:22:21.293 回答
0
{
ntuple->Draw("py:px","px>py","goff");
TGraph *gr = new TGraph(ntuple->GetSelectedRows(),ntuple->GetV2(), ntuple->GetV1());
gr->Draw("AP");
}
于 2015-03-02T15:45:43.900 回答