我正在尝试从只包含一个变量的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_low
和x_high
。我试图做的时候
occupancy->Fill(tree);
或
occupancy->Fill(size);
我收到错误。有什么建议吗?
答案 0 :(得分:1)
TH1的Fill
方法(TH1F是子类)不将树作为参数。
您有两种选择:
循环遍历树条目并逐个填充直方图。
e.g。致电tree->MakeClass("MYTREE")
,然后通过添加
Loop()
中的MYTREE.C
功能
occupancy->Fill(VARIABLENAME);
进入循环并执行生成的代码。
tree->Draw("VARIABLENAME>>HISTOGRAMNAME");
答案 1 :(得分:0)
有几个选项可以从TTree对象中绘制和提取直方图,其中有几个可以在ROOTS教程中找到,这些教程可以在$ {$ 3}}下找到,或者在$ ROOTSYS /下本地(如果已经安装了教程)教程/树/。 basic2示例可能对您尝试执行的操作有所帮助。