Root

advertisement
Немного об обработке данных
Введение в root
Основной объект изучения почти любого эксперимента в физике
частиц – события.
root – программа ориентированная на обработку
событий в C++
Сайт: root.cern.ch
Установка: в простейшем случае скопировать готовые
файлы и использовать скрипт thisroot.sh в начале сеанса.
Если нет подходящей версии – скомпилировать из
исходников самомтоятельно. Работает и в Linux, и в
Windows.
Игорь Алексеев, ИТЭФ
До root — когда основным языком
программирования был FORTRAN...
Библиотеки:
HBOOK – работа с гистограммами и n-tuple
MINUIT – для поиска минимумов и фитирования
ZEBRA – для хранения данных
HPLOT – графические примитивы и представление
FFREAD – ввод параметров
KUIP – интерпретатор командных файлов
PAW – Physics Analysis Workstation – для интерактивной
работы
Игорь Алексеев, ИТЭФ
Структура
Root – это иерархическая коллекция из более 1200 C++ классов и
интерпретатор C++ cint
Основные категории классов:
Base – базовые классы, используемые для создания
практически всех объектов root'а и взаимодействия с
операционной системой
Hist – классы для построения гистограмм
Tree и Ntuple – для хранения данных “пособытийно”
2D и 3D Graphics – графические примитивы
Minimization – для поиска минимумов
Math, matrix, physics – набор классов с математическими
функциями, работой с матрицами и физическими
векторами, типа преобразования
Лоренца и т.д.
Игорь Алексеев, ИТЭФ
Первое знакомство
Игорь Алексеев, ИТЭФ
Картинку можно спасти в различных графических форматах
Картинку можно редактировать, масштабировать, трехмерные
картинки можно крутить
Графики
Игорь Алексеев, ИТЭФ
Гистограммы
Игорь Алексеев, ИТЭФ
Гистограммы бывают 1, 2, 3 и многомерные, с равномерным и
неравномерным бинированием.
Гистограммы можно фитировать, сравнивать и делать с ними
арифметические опреации.
Деревья
Игорь Алексеев, ИТЭФ
Глобальные переменные gROOT, gStyle, gPad...
Довольно много управления в root может осуществляться с
помощью глобальных переменных.
gStyle — позволяет менять стиль изображения для всех объектов,
кроме тех, для которых данный параметр был задан явно. Т.е.
если изменить стиль с помощью gStyle, он изменится и для уже
существующих и для вновь создаваемых объектов.
Например, gStyle->SetOptFit() - заставляет выводить результаты
фитирования при отрисовке гистограммы и т.д.
gROOT — дает доступ к корневым каталогам и т.д.
Например, получить указатель на объект по его имени:
gROOT->FindObject(«somename»)
Игорь Алексеев, ИТЭФ
Browser
Игорь Алексеев, ИТЭФ
Файлы
Создание файла:
TFile f(«filename.root», «RECREATE»);
TTree t(...);
TH1D h(...);
...
f.cd();
t.Write();
h.Write();
f.Close();
Чтение файла:
TFile f(«filename.root»);
TTree *t = (TTree *) f.Get(«treename»);
TH1D *h = (TH1D *) f.Get(«histname»);
...
f.Close();
Игорь Алексеев, ИТЭФ
Макросы и компиляция.
Команды можно записать в файл, заключив их в фигурные скобки.
a.C:
{
TF1 f(«F», «sin(x)/x», -10, 10);
f.Draw();
}
.x a.C — исполнить макрос.
Можно записать в файл несколько функций:
b.C:
double f1(...) {...}
void f2(...) {...}
void b() {
TF1 *f = new TF1(«F», «sin(x)/x», -10, 10);
f->Draw();
}
.L b.C — загрузить «библиотеку».
f1(...) - вызвать функцию
.L b.C+ — загрузить скомпилированную «библиотеку».
Игорь Алексеев, ИТЭФ
Создание своей отдельной программы
Достаточно создать Makefile вида:
LDLIBS = ($shell root-config --libs)
CXXFLAGS = ($shell root-config —cflags)
Игорь Алексеев, ИТЭФ
Download