- •Введение
- •Основы работы с 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: Статистический анализ
- •Заключение
- •Приложения
28 |
Глава 7. Практические примеры и упражнения |
|
32 |
|
E2 = E1; |
33
34events->Fill();
35}
36
37// Анализ инвариантной массы
38events->Draw("sqrt((E1+E2)^2 - (px1+px2)^2 - (py1+py2)^2 - ,→ (pz1+pz2)^2)>>h_mass(100, 9, 11)");
39TH1F* h_mass = (TH1F*)gDirectory->Get("h_mass");
40h_mass->SetTitle("Инвариантная масса;M [ГэВ];События");
41h_mass->Draw();
42}
7.2Упражнения для самостоятельной работы
7.2.1Упражнение 1: Анализ распределений
Задание: Создайте программу, которая:
1.Генерирует 10000 случайных чисел из экспоненциального распределения
2.Строит гистограмму распределения
3.Фитирует экспоненциальной функцией
4.Вычисляет и выводит параметр распределения
Подсказка: Используйте TRandom3::Exp() для генерации и TF1 для фитирования.
7.2.2Упражнение 2: Корреляционный анализ
Задание: Исследуйте корреляцию между двумя переменными:
1.Создайте две коррелированные переменные: y = ax + b + шум
2.Постройте 2D гистограмму
3.Вычислите коэффициент корреляции
4.Проведите линейную регрессию
7.2.3Упражнение 3: Работа с реальными данными
Задание: Загрузите файл с экспериментальными данными и:
1.Постройте гистограммы основных переменных
2.Примените селекцию данных
3.Найдите выбросы в данных
4.Создайте сводный отчёт с графиками
