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

ROOT / ROOT БДЗ 2 ROOT

.pdf
Скачиваний:
0
Добавлен:
14.12.2025
Размер:
76.2 Кб
Скачать

Правила

К данному блоку заданий должна быть составлена презентация. К каждому заданию должна быть приведена картинка с результатом выполненного задания (картинка должна быть сохранена с помощью ROOT, это не должен быть скриншот (screenshot)). К каждому заданию должна быть приведена программа. Каждую строчку кода нужно понимать и уметь объяснить, что она делает.

Задания по ROOT

1.Написать скрипт, в котором создается TCanvas с заголовком ''Functions'', создаются

ирисуются две функции -sin(x)*x и cos(x)*x в интервале по х от -10 до 10. Первую функцию нарисовать черным цветом, вторую — красным. Сохранить рисунок в формате .png в обычном виде и в логарифмическом масштабе по оси y.

2.Создать TCanvas. Разделить на 2 части по вертикали. В верхнем TPad нарисовать распределение Пуассона со средним значением 2.5 в интервале от -1 до 10. В нижнем TPad нарисовать распределение sin(4*x)/sin(5*x) в интервале от -8 до 8. Количество точек отрисовки 500 (для этого использовать метод SetNpx(500) ).

3.Cоздать и заполнить гистограмму массивом из 100 любых точек, отрисовать,

подписать оси.

4.Отрисовать функцию sin(x) пунктирной линией фиолетового цвета, подписать оси.

Толщина линии 3.

5.Создать и заполнить гистограмму случайными числами распределенными по гауссу со средним 5. Количество точек 10500. Фитировать полученную гистограмму функцией гаусса с двумя разными предположениями о среднем. Получить хи-квадрат этих функций. Для каждой из функций задать свой цвет.

6.Для предыдущей задачи нарисовать легенду в которой указать, количество событий в гистограмме, заданное среднее, хи-квадрат каждой функции, название функции,

предполагаемое среднее для каждой функции.

7.Написать скрипт, который должен выполнить следующее:

a.Создать TCanvas

b.Массивом из n = 20 точек заполнить значения по х и у, где x[i] =i*0.1, а y[i]=10*sin(x[i]+0.2)

c.Для значений погрешностей по оси ординат использовать функцию dy[i]=0.1*y[i].

d.Задать стиль точек графика: пустые звезды

e.Отрисовать и сохранить построенный график в формате .png

8.Написать программу, которая заполняет TGraph по функции y = f(x)=log(x2-x) в интервале от 1.5 до 12.5 с шагом 0.5. Нарисовать TGraph. Вокруг первого графа нарисовать заштрихованную область со значениями от y-1 до y+1. Для этого использовать стиль SetFillStyle(3013). В качестве цвета заливки выбрать фиолетовый.

9.Построить гистограмму заполненную 10000 раз значением функций f1(x) = exp(-0.1*x) и 2000 раз значением функции f2(x) - распределение Гаусса со средним значением 1.2 и среднеквадратичным отклонением 2.5. Число x - случайное число распределенное равномерно в диапазоне (-10, 20).

10.Построенную график функции в предыдущем задании фитировать той же самой функцией. Параметры функции фита, критерий согласия Пирсона и число степеней свободы должны быть выведены на экран.

11.Нарисовать две гистограммы (Гаусс и возрастающую экспоненту) на одном графике. Одну красным цветом, другую фиолетовым. В первом распределении должно быть 10000 событий, а в другом 1000000 событий. При этом должно быть две вертикальных оси со своими числами, соответствующими масштабам. Одна ось (левая) соответствует гистограмме с наименьшим числом событий, а правая - с наибольшим.

12.Разыграть случайным образом (методом Монте-Карло) двумерное распределение Гаусса. По оси x значения среднего и среднеквадратичного отклонения равны 5. и 4.5, а по оси y -3. и 2.1. Разыграть 2М событий. Нарисовать двумерное распределение с опцией colz. Нарисовать трехмерное распределение и его проекции на ось y для интервала по оси х (-4.5, 4.5) и на ось х для интервала по оси y (0., 1.).

13.Создать класс содержащий информацию о треке частицы. Класс должен содержать следующие данные о треке: номер события, компоненты импульса (px, py, pz), масса, заряд. Класс должен быть скомпилировать в отдельную библиотеку. Например скомпилировать в ROOT:

.L MyClass.cxx++

Подключить библиотеку в ROOT: gSystem->Load(“MyClass.so“);

14.Написать скрипт, который использует библиотеку из предыдущего задания. На вход скрипту дается два параметра: число событий и имя выходного файла. Скрипт должен моделировать методом Монте-Карло рождение пионов, каонов и протонов. Полученные на выходе данные сохранять в .root файл в дерево TTree. В TTree нужно сохранить класс Трек, написанный в предыдущем задании. О генерации частиц и их импульсов:

a.Распределение числа пионов - гаусс, среднее значение = 12, сигма = 8

b.Распределение числа каонов - пуассон, среднее значение = 4

c.Распределение числа протонов - гаусс, среднее значение = 8, сигма = 3

d.Импульсное распределение частиц (каждая компонента импульса: px, py, pz) - гаусс, среднее значение импульса = 0 ГэВ/c, сигма = 1.3 ГэВ/c

e.Заряд частицы - равномерное распределение, 50% положительный 50% отрицательный.

Массы заряженных пионов, каонов и протонов взять из PDG (pdg.lbl.gov)

15.Написать скрипт, принимающий на вход 2 параметра: 1) имя входного файла, содержащего TTree с классом трек, и 2) имя выходного файла. Скрипт так же будет использовать библиотеку из 5-го задания. Скрипт читает сгенерированный файл из предыдущего задания и строит следующие распределения (гистограммы):

a.модуль импульса частиц

b.квадрат массы частицы как функцию импульса трека для положительно и отрицательно заряженных частиц

c.псевдобыстроту частиц

d.число частиц в событии

e.число пионов в событии

f.число каонов в событии

g.число протонов в событии

h.инвариантную (эффективную) массу π+K-

i.инвариантную (эффективную) массу p+π-

Полученные гистограммы сохраняются в выходной файл.

Соседние файлы в папке ROOT