ROOT / ROOT tasks
.pdfПравила
К данному блоку заданий также должна быть составлена презентация. К каждому заданию должна быть приведена картинка с результатом выполненного задания (картинка должна быть сохранена с помощью ROOT, это не должен быть скриншот (screenshot)). К каждому заданию должна быть приведена программа. Каждую строчку кода нужно понимать и уметь объяснить, что она делает.
Задания по ROOT
1.Написать скрипт, в котором создается TCanvas с заголовком ''Functions'', создаются
ирисуются две функции -sin(x)*x и cos(x)*x в интервале по х от -10 до 10. Первую функцию нарисовать черным цветом, вторую — красным. Сохранить рисунок в формате .png в обычном виде и в логарифмическом масштабе по оси y.
2.Написать скрипт, который должен выполнить следующее:
a.Создать TCanvas
b.Массивом из n = 20 точек заполнить значения по х и у, где x[i] =i*0.1, а y[i]=10*sin(x[i]+0.2)
c.Задать стиль точек графика: пустые звезды
d.Отрисовать и сохранить построенный график в формате .png
3.Построить гистограмму заполненную значением функции f(x) = exp(x)+100*gaus(x, sigma). Где sigma = 2. Число x - случайное число распределенное равномерно в диапазоне (-20, 20). Число шагов (точек) для генерации задать самостоятельно.
4.Построенную график функции в предыдущем задании фитировать той же самой функцией. Параметры функции фита, критерий согласия Пирсона и число степеней свободы должны быть выведены на экран.
5.Создать класс содержащий информацию о треке частицы. Класс должен содержать следующие данные о треке: номер события, компоненты импульса (px, py, pz), масса, заряд. Класс должен быть скомпилировать в отдельную библиотеку. Например скомпилировать в ROOT:
.L MyClass.cxx++
Подключить библиотеку в ROOT: gSystem->Load(“MyClass.so“);
6.Написать скрипт, который использует библиотеку из предыдущего задания. На вход скрипту дается два параметра: число событий и имя выходного файла. Скрипт должен моделировать методом Монте-Карло рождение пионов, каонов и протонов. Полученные на выходе данные сохранять в .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)
7.Написать скрипт, принимающий на вход 2 параметра: 1) имя входного файла, содержащего TTree с классом трек, и 2) имя выходного файла. Скрипт так же будет использовать библиотеку из 5-го задания. Скрипт читает сгенерированный файл из предыдущего задания и строит следующие распределения (гистограммы):
a.модуль импульса частиц
b.квадрат массы частицы как функцию импульса трека для положительно и отрицательно заряженных частиц
c.псевдобыстроту частиц
d.число частиц в событии
e.число пионов в событии
f.число каонов в событии
g.число протонов в событии
h.инвариантную (эффективную) массу π+K-
i.инвариантную (эффективную) массу p+π-
Полученные гистограммы сохраняются в выходной файл.
