Создание гистограммы из TTree

Я пытаюсь создать 1D гистограмму из 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);

Я получаю ошибку. Какие-либо предложения?

2 ответа

The Fill метод TH1 (TH1F - дочерний класс) не принимает дерево в качестве параметра.

У вас есть два варианта:

  1. Зациклите элементы дерева и заполните их в гистограмме один за другим.

    например, позвонив tree->MakeClass("MYTREE") а затем манипулировать Loop() функция в MYTREE.C добавляя

    occupancy->Fill(VARIABLENAME);
    

    в цикл и выполнить полученный код.

  2. используйте метод Draw из TTree:

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

Существует несколько опций для рисования и извлечения гистограммы из объекта TTree, некоторые из них доступны в руководствах ROOT, которые можно найти здесь или локально (если они были установлены) в каталоге $ROOTSYS/tutorials/tree/. Пример basic2 может быть полезен для того, что вы пытаетесь сделать.

Другие вопросы по тегам