Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ROOT_slides.pdf
Скачиваний:
172
Добавлен:
05.06.2015
Размер:
1 Мб
Скачать
☆

Чтение дерева. Пример скрипта

Скрипт, считывающий данные дерева t1, сохраненного в файле tree1.root

{

TFile *f = new TFile("tree1.root"); TTree *t1 = (TTree*)f->Get("t1"); Float_t px, py, pz;

Int_t ev; t1->SetBranchAddress("px",&px); t1->SetBranchAddress("py",&py); t1->SetBranchAddress("pz",&pz); t1->SetBranchAddress("ev",&ev);

TH2F *hpxpy = new TH2F("hpxpy","py vs px",30,-3,3,30,-3,3); Int_t nentries = (Int_t)t1->GetEntries();

for (Int_t i=0; i<nentries; i++) { t1->GetEntry(i); hpxpy->Fill(px,py);

}

hpxpy->Draw();

}

Результат выполнения скрипта

По выполнении скрипта будет нарисована двумерная гистограмма

Анализ данных дерева: метод TTree::Draw

Чтобы построить гистограмму значений какой-либо переменной дерева

t1->Draw("px")

Чтобы построить двумерное распределение значений переменных

t1->Draw("px:pz")

В методе Draw() можно указывать определенные критерии построения

Построить распределение значений pz только для тех событий, в которых значение px было меньше 0.5

t1->Draw("pz", "px<0.5")

Построить распределение для событий, удовлетворяющих некоторому условию

t1->Draw("var1", "iscut==0");

Можно задавать сложные критерии, используя С-операторы && и ||

t1->Draw("var1", "iscut1==0 && iscut2==0");

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]