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

6.3. Параллельные вычисления

25

24 principal->Print();

25

26// Собственные значения

27const TVectorD* eigenValues = principal->GetEigenValues();

28for(int i = 0; i < nvar; i++) {

29cout << "PC" << i+1 << " объясняет "

30<< (*eigenValues)[i]/eigenValues->Sum()*100

31<< "% дисперсии" << endl;

32}

6.3Параллельные вычисления

6.3.1ROOT::EnableImplicitMT

1// Включение многопоточности

2ROOT::EnableImplicitMT();

3

4// Параллельная обработка дерева

5TFile* file = new TFile("bigdata.root");

6TTree* tree = (TTree*)file->Get("events");

7

8// Создание гистограммы (thread-safe)

9auto h = tree->GetHistogram("energy", "energy > 100");

10

11// Или использование TTreeProcessor

12ROOT::TTreeProcessorMT processor(*tree);

13auto result = processor.Process([](TTreeReader& reader) {

14TTreeReaderValue<float> energy(reader, "energy");

15float sum = 0;

16while(reader.Next()) {

17sum += *energy;

18}

19return sum;

20});

6.4Веб-интерфейс

6.4.1ROOT в Jupyter

1 // В Jupyter Notebook с C++ kernel

2TCanvas* c = new TCanvas();

3TH1F* h = new TH1F("h", "Web Display", 100, -5, 5);

4

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

6h->Fill(gRandom->Gaus());

7}

8

9h->Draw();

 

26

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

 

// Автоматически отображается в Jupyter

 

10

c->Draw();

 

 

 

 

 

 

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