从TTree创建直方图

从TTree创建直方图,tree,histogram,root-framework,Tree,Histogram,Root Framework,我试图从只包含一个变量的TTree创建一个1D直方图 TTree *tree = new TTree("tree", ""); tree->ReadFile("occupancyPerDataset.txt", "size"); TH1F *occupancy = new TH1F("occupancy", "Occupancy per Dataset", 100, 0, 0.063) 在上面,您可以看到我创建了树并用.txt文件中的数据填充它。然后,我创建了一个直方图,上面

我试图从只包含一个变量的TTree创建一个1D直方图

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

TH1F *occupancy = new TH1F("occupancy", "Occupancy per Dataset", 100, 0,      0.063)
在上面,您可以看到我创建了树并用
.txt
文件中的数据填充它。然后,我创建了一个直方图,上面有我需要的箱子数量,
x\u low
x\u high
。当我试着去做

occupancy->Fill(tree);


我犯了一个错误。有什么建议吗?

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

您有两个选择:

  • 循环遍历树条目,并将它们逐个填充到直方图中

    e、 g.通过调用
    tree->MakeClass(“MYTREE”)
    然后通过添加

    occupancy->Fill(VARIABLENAME);
    
    并执行生成的代码

  • 使用:


  • 有几个选项可用于从TTree对象绘制和提取直方图,其中几个选项可在根教程中找到,根教程可以在线或本地(如果已安装教程)在$ROOTSYS/tutorials/tree/下找到。基本C2示例可能有助于您尝试执行的操作。

    还有
    TTree
    类中的
    Project
    方法。
    occupancy->Fill(VARIABLENAME);
    
    tree->Draw("VARIABLENAME>>HISTOGRAMNAME");