Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
89
Добавлен:
22.08.2013
Размер:
8.45 Mб
Скачать

Структура ROOT

 

ROOT реализован как набор

 

библиотек классов, обеспечивающих

 

необходимую функциональность

 

для работы с гистограммами,

 

функциями, графиками, деревьми

 

и т. д.

 

В состав ROOT входит также

 

интерпретатор CINT, который

 

воспринимает команды ROOT и

 

выражения С/C++

 

Два варианта использования ROOT

 

работа в программе root.exe

 

включение библиотек классов ROOT

 

в собственные программы

Принятые в ROOT обозначения

Имена классов начинаются с T

TF1, TFile

Переменные типа «не класс» заканчиваются на _t

Int_t

Поля начинаются с f

fIntegral

Методы начинаются с прописной

Fill(), Draw()

Константы начинаются с k

kRed

Глобальные переменные начинаются с g

gStyle

Машинно-независимые типы данных

В ROOT используются машинно-независимые типы данных

Наиболее употребляемые типы:

 

Char_t

знаковый символьный

1

байт

 

Int_t

знаковый целый

4

байта

 

Float_t

вещественный

4

байта

 

Double_t

вещественный

8

байт

 

Bool_t

логический (0 — ложь, 1 — истина)

 

 

ROOT: начало работы

Чтобы запустить ROOT наберите в консоли

$ root

версия ROOT

дата компиляции и тип ОС

приглашение командной строки

Завершается сеанс работы командой .q

root[] .q

C/C++ интерпретатор CINT

CINT воспринимает три типа команд

1. Собственно команды CINT начинаются с "."

.? вывести список возможных команд

.L <filename> загрузить файл filename

.x <filename> загрузить и выполнить файл filename

2. C/C++ выражения в соответствии с синтаксисом языка

Int_t a = 8

a++

Int_t b=a*2

3. Команды SHELL начинаются с ".!"

.! pwd

Пример простейшей сессии: построение гистограммы значений,

распределенных по Гауссу

root [0] TH1F *h1 = new TH1F("h1","Random gauss",100,-2,2) root [1] h1->FillRandom("gaus",1000)

root [2] h1->Draw()

<TCanvas::MakeDefCanvas>: created default TCanvas with name c1

Скрипты: неименованные

скрипты

В ROOT существует два типа скриптов: именованные и неименованные

Неименованный скрипт представляет собой простую последовательность команд. Тело скрипта должно быть заключено в фигурные скобки

Пример простейшего скрипта. Файл MyMacro.C

{

#include <iostream> using namespace std;

for (Int_t i=0; i<10; i++) { cout<<i<<endl;

}

}

Чтобы выполнить неименованный скрипт в интерактивной сессии

root [] .x MyMacro.C

ROOT будет искать скрипт в текущей директории, а также в директории $ROOTSYS/macros

Можно задать полный путь к файлу, например

root [] .x /home/user1/macros/MyMacro.C

 

Скрипты: именованные

 

скрипты

 

Чтобы иметь возможность включить в тело скрипта функцию,

 

следует пользоваться именованными скриптами

 

Пример именованного скрипта, содержащего функцию drawhist().

 

Файл MyNamedMacro.C

 

void drawhist() {

 

TH1F *h1 = new TH1F("h1","simplest histo",10,0,10);

 

h1->Fill(3,3);

 

h1->Fill(4,2);

 

h1->Fill(5,1);

 

h1->Draw();

 

}

 

Чтобы выполнить функцию drawhist(), следует сначала загрузить

 

скрипт в память ROOT, затем вызвать функцию

 

root [] .L MyNamedMacro.C

 

root [] drawhist()

Преобразование HBOOK/PAW в ROOT

Утилита h2root, входящая в состав дистрибутива ROOT автоматически преобразует гистограммы, ntuples, содержащиеся

вHBOOK-файле, в соответствующие объекты ROOT и записывает их в новый файл.

Синтаксис утилиты h2root (в консольной строке ОС Linux)

$ h2root <hbook file> <root file>

 

hbook file

имя файла HBOOK

 

root file

имя выходного ROOT-файла

6 лекция

Гистограммы в ROOT

Создание и заполнение гистограмм

Рисование гистограмм, параметры рисования

Немного о TCanvas

Сложение, умножение, деление гистограмм

Прочие аспекты работы с гистограммами:

Клонирование

Интеграл и нормировка

Ребиннинг

Фитирование гистограмм

Соседние файлы в папке UMKD_Metody_obrabotki_dannyh_i_modelirovaniya_dlya_sovr._eksp._v_fizike_vysokih_energij_Bogdanov