- •Введение
- •Основы работы с ROOT
- •Что такое ROOT
- •Установка и запуск ROOT
- •Системные требования
- •Способы установки
- •Запуск ROOT
- •Первые шаги в ROOT
- •Интерактивная оболочка CINT
- •Создание простых объектов
- •Структура ROOT
- •Основные классы
- •Система наименований
- •Работа с гистограммами
- •Введение в гистограммы
- •Одномерные гистограммы (TH1)
- •Создание гистограммы
- •Типы гистограмм
- •Настройка внешнего вида
- •Двумерные гистограммы (TH2)
- •Операции с гистограммами
- •Арифметические операции
- •Статистические функции
- •Графики и визуализация
- •Класс TGraph
- •Создание простого графика
- •График с погрешностями
- •Многопанельные графики
- •Разделение холста
- •Функции в ROOT
- •Создание и отображение функций
- •Многомерные функции
- •Легенды и аннотации
- •Создание легенды
- •Добавление текста
- •Работа с деревьями (Trees)
- •Введение в ROOT Trees
- •Создание дерева
- •Простое дерево
- •Дерево с массивами
- •Чтение деревьев
- •Простое чтение
- •Использование TTreeReader
- •Селекция данных
- •Использование Draw с условиями
- •TEntryList для сложной селекции
- •Анализ данных и фитирование
- •Введение в фитирование
- •Фитирование гистограмм
- •Простое фитирование
- •Фитирование пользовательской функцией
- •Фитирование графиков
- •Линейная регрессия
- •Нелинейное фитирование
- •Минимизация и оптимизация
- •Использование Minuit
- •Продвинутые возможности
- •RooFit - статистическое моделирование
- •Основы RooFit
- •Генерация и фитирование данных
- •Многомерный анализ
- •Анализ главных компонент (PCA)
- •Параллельные вычисления
- •ROOT::EnableImplicitMT
- •Веб-интерфейс
- •ROOT в Jupyter
- •Практические примеры и упражнения
- •Анализ физических данных
- •Анализ распада частиц
- •Упражнения для самостоятельной работы
- •Упражнение 1: Анализ распределений
- •Упражнение 2: Корреляционный анализ
- •Упражнение 3: Работа с реальными данными
- •Проекты
- •Проект 1: Анализатор логов детектора
- •Проект 2: Статистический анализ
- •Заключение
- •Приложения
CERN ROOT
Программная платформа для анализа данных
Руководство для студентов
Полное руководство по анализу данных и визуализации в физике
Изучите мощные возможности CERN ROOT: гистограммы, графики, статистический анализ, работа с большими объёмами данных
и многое другое
Коньшин Глеб
Оглавление
Введение |
4 |
1 Основы работы с ROOT |
5 |
1.1Что такое ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2Установка и запуск ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 |
Системные требования . . . . . . . . . . . . . . . . . . . . . . . . |
5 |
1.2.2 |
Способы установки . . . . . . . . . . . . . . . . . . . . . . . . . . |
5 |
1.2.3 |
Запуск ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
6 |
1.3Первые шаги в ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
|
1.3.1 |
Интерактивная оболочка CINT . . . . . . . . . . . . . . . . . . . |
6 |
|
1.3.2 |
Создание простых объектов . . . . . . . . . . . . . . . . . . . . . |
6 |
1.4 |
Структура ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
7 |
|
|
1.4.1 |
Основные классы . . . . . . . . . . . . . . . . . . . . . . . . . . . |
7 |
|
1.4.2 |
Система наименований . . . . . . . . . . . . . . . . . . . . . . . . |
7 |
2 Работа с гистограммами |
8 |
||
2.1 |
Введение в гистограммы . . . . . . . . . . . . . . . . . . . . . . . . . . . |
8 |
|
2.2 |
Одномерные гистограммы (TH1) . . . . . . . . . . . . . . . . . . . . . . |
8 |
|
2.2.1Создание гистограммы . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Типы гистограмм . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.3Настройка внешнего вида . . . . . . . . . . . . . . . . . . . . . . . 9
2.3Двумерные гистограммы (TH2) . . . . . . . . . . . . . . . . . . . . . . . 9
2.4Операции с гистограммами . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.1Арифметические операции . . . . . . . . . . . . . . . . . . . . . . 9
2.4.2Статистические функции . . . . . . . . . . . . . . . . . . . . . . . 10
3 Графики и визуализация |
11 |
3.1 Класс TGraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
11 |
3.1.1 Создание простого графика . . . . . . . . . . . . . . . . . . . . . |
11 |
3.1.2График с погрешностями . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Многопанельные графики . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.1Разделение холста . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Функции в ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.1Создание и отображение функций . . . . . . . . . . . . . . . . . . 12
3.3.2Многомерные функции . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4Легенды и аннотации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.1Создание легенды . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4.2Добавление текста . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2
Оглавление |
3 |
4 Работа с деревьями (Trees) |
15 |
4.1Введение в ROOT Trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2Создание дерева . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.1Простое дерево . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.2Дерево с массивами . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3Чтение деревьев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3.1Простое чтение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.3.2 Использование TTreeReader . . . . . . . . . . . . . . . . . . . . . |
17 |
4.4 Селекция данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
17 |
4.4.1Использование Draw с условиями . . . . . . . . . . . . . . . . . . 17
4.4.2TEntryList для сложной селекции . . . . . . . . . . . . . . . . . . 17
5 Анализ данных и фитирование |
19 |
5.1 Введение в фитирование . . . . . . . . . . . . . . . . . . . . . . . . . . . |
19 |
5.2Фитирование гистограмм . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.1Простое фитирование . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.2Фитирование пользовательской функцией . . . . . . . . . . . . . 20
5.3Фитирование графиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.3.1Линейная регрессия . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5.3.2Нелинейное фитирование . . . . . . . . . . . . . . . . . . . . . . . 21
5.4 Минимизация и оптимизация . . . . . . . . . . . . . . . . . . . . . . . . 21
5.4.1Использование Minuit . . . . . . . . . . . . . . . . . . . . . . . . . 21
6 Продвинутые возможности |
23 |
6.1RooFit - статистическое моделирование . . . . . . . . . . . . . . . . . . . 23
6.1.1Основы RooFit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.1.2Генерация и фитирование данных . . . . . . . . . . . . . . . . . . 24
6.2Многомерный анализ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2.1 Анализ главных компонент (PCA) . . . . . . . . . . . . . . . . . 24
6.3Параллельные вычисления . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.3.1ROOT::EnableImplicitMT . . . . . . . . . . . . . . . . . . . . . . . 25
6.4Веб-интерфейс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.4.1ROOT в Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7 Практические примеры и упражнения |
27 |
7.1 Анализ физических данных . . . . . . . . . . . . . . . . . . . . . . . . . |
27 |
7.1.1 Анализ распада частиц . . . . . . . . . . . . . . . . . . . . . . . . 27
7.2Упражнения для самостоятельной работы . . . . . . . . . . . . . . . . . 28
7.2.1 Упражнение 1: Анализ распределений . . . . . . . . . . . . . . . 28
7.2.2Упражнение 2: Корреляционный анализ . . . . . . . . . . . . . . 28
7.2.3Упражнение 3: Работа с реальными данными . . . . . . . . . . . 28
7.3Проекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
7.3.1Проект 1: Анализатор логов детектора . . . . . . . . . . . . . . . 29
7.3.2Проект 2: Статистический анализ . . . . . . . . . . . . . . . . . . 29
Заключение |
30 |
Приложения |
31 |
Введение
CERN ROOT — это мощная программная платформа для анализа данных и визуализации, разработанная в Европейской организации ядерных исследований (CERN). Этот инструмент широко используется в физике высоких энергий, но также находит применение в других областях науки, где требуется обработка больших объёмов данных.
ROOT предоставляет объектно-ориентированную среду для анализа данных, включающую мощные возможности для создания гистограмм, графиков, фитирования данных и статистического анализа. Система построена на языке C++ и предоставляет интерактивную оболочку для быстрого прототипирования и анализа.
Данная книга предназначена для студентов, изучающих физику, математику и другие естественные науки. Мы начнём с основ работы с ROOT и постепенно перейдём к более сложным задачам анализа данных.
Об авторе: Если у вас возникли вопросы по материалу книги или вам нужна помощь в написании программ на C++, Python, Go, разработке бэкенда или машинном обучении, вы можете обратиться к автору в Telegram: @Glebhtdry2.
4
