Немного об обработке данных Введение в 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)