Notebookしたい(root --notebook)
$ root --notebook
--notebookオプションで、ROOTをJupyter Notebook環境で使用できます。
このコマンドでJupyter Notebookサーバーが起動し、デフォルトのブラウザが自動的に開きます。
ブラウザベースでノートブックを操作し、コードの実行結果や可視化を対話的に確認できます。
ノートブックはipynb形式で保存できます。
ノートブックは共同研究者に共有して、結果を再現できます。
Notebookの準備
$ root --notebook
Error starting ROOT notebook -- please check that Jupyter is installed
HomebrewでインストールしたROOTでは、Jupyter Notebook周りPythonパッケージが不足している場合に上記エラーが表示されます。
その場合は、通常のPythonと同じように仮想環境を作成し、必要なパッケージをインストールしてください。
// ROOTと紐づいたPythonのバージョンを確認
$ ls -1 $(brew --prefix root)/lib
cmake
Python3.14/
root/
// 確認したバージョンで仮想環境を作成
$ python3.14 -m venv .venv
$ source .venv/bin/activate
(.venv) $ python3 --version
Python 3.14.0
(.venv) $ pip install jupyter
(.venv) $ pip install metakernel # ROOT C++ kernelに必要
(.venv) $ root --notebook
C++を実行したい(ROOT C++ Kernel)
1#include <iostream>
2TH1F *h = new TH1F("h", "histogram", 100, -5, 5);
3for (int i = 0; i < 10000; i++) {
4 h->Fill(gRandom->Gaus(0, 1));
5}
6
7TCanvas *c = new TCanvas("c", "canvas", 800, 600);
8h->Draw();
9c->Draw();
カーネル選択で「ROOT C++」に切り替えます。
セル内にC++/ROOTの解析コードを記述できます。
注釈
TCanvas::Drawは明示的に呼び出す必要があります。
PyROOTを実行したい(Python3 (ipykernel) Kernel)
1import ROOT
2
3h = ROOT.TH1F("h", "histogram", 100, -5, 5)
4for i in range(10000):
5 h.Fill(ROOT.gRandom.Gaus(0, 1))
6
7c = ROOT.TCanvas("c", "canvas", 800, 600)
8h.Draw()
9c.Draw()
カーネル選択で「Python (ipykernel)」に切り替えます。
PyROOTを使ってPythonで解析コードを記述できます。
Notebookの利点
対話的な開発:コードを実行しながら結果を確認できます
可視化の統合:グラフやヒストグラムを直接ノートブック内に表示
ドキュメンテーション:コード、出力、マークダウンテキストを同一ファイルに記録
再現性:分析の過程をすべて記録し、あとで再実行可能
共有:
.ipynbファイルを共有して、他のユーザーが再現可能
参考リンク
起動したい(Rint) - コマンドライン対話型シェル