Создание гистограммы из 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 - дочерний класс) не принимает дерево в качестве параметра.
У вас есть два варианта:
Зациклите элементы дерева и заполните их в гистограмме один за другим.
например, позвонив
tree->MakeClass("MYTREE")
а затем манипулироватьLoop()
функция вMYTREE.C
добавляяoccupancy->Fill(VARIABLENAME);
в цикл и выполнить полученный код.
используйте метод Draw из TTree:
tree->Draw("VARIABLENAME>>HISTOGRAMNAME");
Существует несколько опций для рисования и извлечения гистограммы из объекта TTree, некоторые из них доступны в руководствах ROOT, которые можно найти здесь или локально (если они были установлены) в каталоге $ROOTSYS/tutorials/tree/. Пример basic2 может быть полезен для того, что вы пытаетесь сделать.