- •5 лекция
- •ROOT
- •ROOT: справочная информация
- •ООП и классы С++
- •Указатели
- •Структура ROOT
- •Принятые в ROOT обозначения
- •Машинно-независимые типы данных
- •C/C++ интерпретатор CINT
- •Пример простейшей сессии: построение гистограммы значений, распределенных по Гауссу
- •Скрипты: неименованные скрипты
- •ROOT: начало работы
- •Скрипты: именованные скрипты
- •Преобразование HBOOK/PAW в ROOT
- •6 лекция
- •Гистограммы в ROOT
- •Создание гистограммы
- •Внесение значений в гистограмму
- •Рисование гистограммы, опции рисования
- •Пример создания, заполнения и рисования гистограммы
- •Информация, выводимая по умолчанию
- •Поле для рисования canvas
- •Пример. Сохранение изображения на диск
- •Сложение, деление и умножение гистограмм
- •Прочие аспекты работы с гистограммами
- •Фитирование гистограмм: FitPanel
- •Вывод результатов фита
- •Команды фитирования
- •Фитирование функцией, определенной пользователем
- •7 лекция
- •Сохранение гистограмм на диск
- •Работа с файлами: ROOT-директория
- •Работа с файлами
- •Сохранение гистограмм в файл
- •Двумерные гистограммы
- •Пример работы с 2D-гистограммой
- •Параметры рисования
- •Графики
- •Графики. Опции рисования
- •Таблицы цветов и стилей маркеров
- •Варианты рисования
- •Два графика на одной картинке
- •График с погрешностями
- •График с погрешностями
- •8 лекция
- •Деревья
- •Создание дерева и ветвей
- •Создание простейшего дерева
- •Информация о дереве
- •Просмотр содержимого дерева с помощью TBrowser
- •Чтение дерева
- •Чтение дерева. Пример скрипта
- •Результат выполнения скрипта
- •Анализ данных дерева: метод TTree::Draw
Работа с файлами
Пример
root [] .pwd
Current directory: Rint:/
root [] TFile f1("file1.root","recreate") root [] .pwd
Current directory: file1.root:/
root [] TFile f2("file2.root","recreate") root [] .pwd
Current directory: file2.root:/ root [] f1.cd()
root [] .pwd
Current directory: file1.root:/ root [] f1.Close()
root [] .pwd
Current directory: Rint:/
Сохранение гистограмм в файл
Чтобы осуществить запись гистограммы в файл, используется метод
TH1F::Write()
Пример записи гистограммы
TFile f("histos.root","new")
TH1F *h1 = new TH1F("hgaus","histo from a gaussian",100,-3,3) h1->FillRandom("gaus",10000)
h1->Write()
Чтобы записать все объекты в текущей директории
f->Write()
Чтение гистограммы (объекта)
TFile::Get("name") возвращает указатель на объект с именем name
Пример
TFile f("histos.root") |
//открываем файл для чтения |
TH1F *h = (TH1F*)f.Get("hgaus") |
//берем указатель на hgaus |
Необходим cast к нужному типу
Двумерные гистограммы
Работа с двумерной гистограммой аналогична одномерному случаю
Основной класс TH2F
При создании гистограммы следует указать число бинов как по оси X, так и по оси Y, а также соответствующие диапазоны изменения величин
TH2F *h2 = new TH2F("h2","h2 title",NbinsX,xmin,xmax,NbinsY,ymin,ymax)
При заполнении следует передавать два значения (и, опционально, вес)
h2->Fill(Xvalue,Yvalue)
h2->Fill(Xvalue,Yvalue,w)
Рисование гистограммы осуществляется точно также
h2->Draw()
По умолчанию 2D-гистограмма изображается как «облако» точек, плотность которого пропорциональна содержимому клетки
Пример работы с 2D-гистограммой
TH2F *h1 = new TH2F("h1","2D histo",20,-10,10,20,-10,10)
h1->FillRandom("gaus")
h1->Draw()
