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

2.3. Двумерные гистограммы (TH2)

9

2.2.3Настройка внешнего вида

1// Изменение цвета заливки и контура

2h1->SetFillColor(kBlue);

3h1->SetLineColor(kRed);

4h1->SetLineWidth(2);

5

6// Настройка осей

7h1->GetXaxis()->SetTitle("Значение X");

8 h1->GetYaxis()->SetTitle("Количество событий");

9h1->SetTitle("Распределение данных");

10

11// Статистическая информация

12h1->GetXaxis()->SetRange(10, 90); // Ограничение диапазона

2.3Двумерные гистограммы (TH2)

Двумерные гистограммы позволяют исследовать корреляции между двумя переменными:

1// Создание 2D гистограммы

2TH2F* h2 = new TH2F("h2", "2D гистограмма", 50, -5, 5, 50, -5, 5);

3

4 // Заполнение коррелированными данными

5for(int i = 0; i < 10000; i++) {

6

double x = gRandom->Gaus(0, 1);

7

double y = x + gRandom->Gaus(0, 0.5); // y коррелирует с x

8

h2->Fill(x, y);

 

9

}

 

10

 

 

11

// Различные способы отображения

12

h2->Draw("colz");

// Цветовая карта

13

h2->Draw("lego");

// 3D представление

14

h2->Draw("cont");

// Контурные линии

2.4Операции с гистограммами

2.4.1Арифметические операции

1// Создание двух гистограмм

2 TH1F* h1 = new TH1F("h1", "Гистограмма 1", 100, 0, 10);

3TH1F* h2 = new TH1F("h2", "Гистограмма 2", 100, 0, 10);

4

5// Заполнение данными

6for(int i = 0; i < 1000; i++) {

7 h1->Fill(gRandom->Gaus(3, 1));

8h2->Fill(gRandom->Gaus(7, 1));

9}

10

10

Глава 2. Работа с гистограммами

11// Сложение гистограмм

12TH1F* h_sum = (TH1F*)h1->Clone("h_sum");

13h_sum->Add(h2);

14

15// Вычитание

16TH1F* h_diff = (TH1F*)h1->Clone("h_diff");

17h_diff->Add(h2, -1);

18

19// Деление

20TH1F* h_ratio = (TH1F*)h1->Clone("h_ratio");

21h_ratio->Divide(h2);

2.4.2Статистические функции

1 // Получение статистической информации

2 double mean = h1->GetMean();

3double rms = h1->GetRMS();

4 double integral = h1->Integral();

5int entries = h1->GetEntries();

6

7 cout << "Среднее: " << mean << endl;

8cout << "СКО: " << rms << endl;

9 cout << "Интеграл: " << integral << endl;

10 cout << "Записей: " << entries << endl;

11

12// Поиск максимума и минимума

13int max_bin = h1->GetMaximumBin();

14double max_value = h1->GetMaximum();

15double min_value = h1->GetMinimum();

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