Немного об обработке данных Введение в 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) Игорь Алексеев, ИТЭФ