ROOT / ROOT БДЗ 2 ROOT
.pdfПравила
К данному блоку заданий должна быть составлена презентация. К каждому заданию должна быть приведена картинка с результатом выполненного задания (картинка должна быть сохранена с помощью 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+π-
Полученные гистограммы сохраняются в выходной файл.
