- •5 лекция
- •ROOT
- •ROOT: справочная информация
- •ООП и классы С++
- •Указатели
- •Структура ROOT
- •Принятые в ROOT обозначения
- •Машинно-независимые типы данных
- •C/C++ интерпретатор CINT
- •Пример простейшей сессии: построение гистограммы значений, распределенных по Гауссу
- •Скрипты: неименованные скрипты
- •ROOT: начало работы
- •Скрипты: именованные скрипты
- •Преобразование HBOOK/PAW в ROOT
- •6 лекция
- •Гистограммы в ROOT
- •Создание гистограммы
- •Внесение значений в гистограмму
- •Рисование гистограммы, опции рисования
- •Пример создания, заполнения и рисования гистограммы
- •Информация, выводимая по умолчанию
- •Поле для рисования canvas
- •Пример. Сохранение изображения на диск
- •Сложение, деление и умножение гистограмм
- •Прочие аспекты работы с гистограммами
- •Фитирование гистограмм: FitPanel
- •Вывод результатов фита
- •Команды фитирования
- •Фитирование функцией, определенной пользователем
- •7 лекция
- •Сохранение гистограмм на диск
- •Работа с файлами: ROOT-директория
- •Работа с файлами
- •Сохранение гистограмм в файл
- •Двумерные гистограммы
- •Пример работы с 2D-гистограммой
- •Параметры рисования
- •Графики
- •Графики. Опции рисования
- •Таблицы цветов и стилей маркеров
- •Варианты рисования
- •Два графика на одной картинке
- •График с погрешностями
- •График с погрешностями
- •8 лекция
- •Деревья
- •Создание дерева и ветвей
- •Создание простейшего дерева
- •Информация о дереве
- •Просмотр содержимого дерева с помощью TBrowser
- •Чтение дерева
- •Чтение дерева. Пример скрипта
- •Результат выполнения скрипта
- •Анализ данных дерева: метод TTree::Draw
Чтение дерева. Пример скрипта
Скрипт, считывающий данные дерева 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");
