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

24

Глава 6. Продвинутые возможности

6.1.2Генерация и фитирование данных

1// Генерация данных

2RooDataSet* data = model.generate(x, 1000);

3

4// Фитирование модели к данным

5RooFitResult* result = model.fitTo(*data, Save());

6

7// Визуализация

8RooPlot* frame = x.frame(Title("RooFit Example"));

9data->plotOn(frame);

10model.plotOn(frame);

11model.plotOn(frame, Components(gauss), LineStyle(kDashed), LineColor(kRed));

12model.plotOn(frame, Components(poly), LineStyle(kDashed), LineColor(kGreen));

13

14 frame->Draw();

15

16// Анализ результатов

17result->Print();

18cout << "Signal events: " << nsig.getVal() << " ± " << nsig.getError() << endl;

19cout << "Background events: " << nbkg.getVal() << " ± " << nbkg.getError() <<

,→ endl;

6.2Многомерный анализ

6.2.1Анализ главных компонент (PCA)

1#include "TPrincipal.h"

2

3 // Создание многомерных данных

4const int nvar = 4;

5 const int nevents = 1000;

6double data[nvar];

7

8TPrincipal* principal = new TPrincipal(nvar, "ND");

9

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

11for(int i = 0; i < nevents; i++) {

12data[0] = gRandom->Gaus(0, 1);

13data[1] = data[0] + gRandom->Gaus(0, 0.5); // Коррелирует с data[0]

14data[2] = gRandom->Gaus(5, 2);

15data[3] = 2*data[2] + gRandom->Gaus(0, 1); // Коррелирует с data[2]

16

17principal->AddRow(data);

18}

19

20// Анализ главных компонент

21principal->MakePrincipals();

22

23 // Получение результатов

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