从TTree创建直方图

时间:2015-01-22 18:57:46

标签: tree histogram root-framework

我正在尝试从只包含一个变量的TTree创建一维直方图。

TTree *tree = new TTree("tree", "");
tree->ReadFile("occupancyPerDataset.txt", "size");

TH1F *occupancy = new TH1F("occupancy", "Occupancy per Dataset", 100, 0,      0.063)

上面你可以看到我创建了树并用.txt文件中的数据填充了它。然后我创建了直方图,其中包含我需要的箱数x_lowx_high。我试图做的时候

occupancy->Fill(tree);

occupancy->Fill(size);

我收到错误。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

TH1的Fill方法(TH1F是子类)不将树作为参数。

您有两种选择:

  1. 循环遍历树条目并逐个填充直方图。

    e.g。致电tree->MakeClass("MYTREE"),然后通过添加

    来操纵Loop()中的MYTREE.C功能
    occupancy->Fill(VARIABLENAME);
    

    进入循环并执行生成的代码。

  2. 使用Draw method of TTree

    tree->Draw("VARIABLENAME>>HISTOGRAMNAME");
    

答案 1 :(得分:0)

有几个选项可以从TTree对象中绘制和提取直方图,其中有几个可以在ROOTS教程中找到,这些教程可以在$ {$ 3}}下找到,或者在$ ROOTSYS /下本地(如果已经安装了教程)教程/树/。 basic2示例可能对您尝试执行的操作有所帮助。