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ファイルを共有して、他のユーザーが再現可能

参考リンク