Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ROOT / CERN ROOT book.pdf
Скачиваний:
1
Добавлен:
14.12.2025
Размер:
433.58 Кб
Скачать

Глава 7

Практические примеры и упражнения

7.1Анализ физических данных

7.1.1Анализ распада частиц

1 // Симуляция данных детектора частиц

2void analyzeDecay() {

3// Создание дерева событий

4TTree* events = new TTree("events", "Particle decay events");

5

 

 

 

 

 

6

float px1, py1, pz1, E1;

//

4-импульс

первой

частицы

7

float px2, py2, pz2, E2;

//

4-импульс

второй

частицы

8

9events->Branch("px1", &px1); events->Branch("py1", &py1);

10events->Branch("pz1", &pz1); events->Branch("E1", &E1);

11events->Branch("px2", &px2); events->Branch("py2", &py2);

12events->Branch("pz2", &pz2); events->Branch("E2", &E2);

13

14// Генерация событий распада

15TRandom3 rnd;

16for(int i = 0; i < 50000; i++) {

17// Распад частицы массой 10 ГэВ на две частицы массой 1 ГэВ

18double m_parent = 10.0;

19double m_daughter = 1.0;

20

21// Генерация в системе покоя

22double p_cm = sqrt((m_parent*m_parent - 4*m_daughter*m_daughter)/4);

23double theta = rnd.Uniform(0, TMath::Pi());

24double phi = rnd.Uniform(0, 2*TMath::Pi());

25

26px1 = p_cm * sin(theta) * cos(phi);

27py1 = p_cm * sin(theta) * sin(phi);

28pz1 = p_cm * cos(theta);

29E1 = sqrt(p_cm*p_cm + m_daughter*m_daughter);

30

31 px2 = -px1; py2 = -py1; pz2 = -pz1;

27

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