ROOTの使い方

ROOTは高エネルギー物理学分野で広く使われている解析フレームワークです。 スイスにあるCERNを中心に開発されています。

解析フレームワークと聞くと敷居が高そうに感じますが 「お絵かきソフトだ」と気軽に捉えて使えばよいと思っています。 もちろん、自由に絵を描くソフトとは異なり、 自分が測定したデータを使ってヒストグラムやグラフを描くことが中心になります。

警告

このドキュメントの大部分はROOT5のときの使い方で書かれたものです。 少しずつROOT6に合った使い方に書き換えていこうと考えていますが、時間がかかりそうです。 うまく動かない箇所は、各自でROOT6の使い方を調べてください。

環境構築したい

ROOTをインストールして、開発環境を準備する方法を説明します。

学習リソース

ROOTの使い方を効率的に学ぶには、公式のチュートリアルとサンプルコードを活用しましょう。 実際にコードを動かしながら学ぶことで、ドキュメント読解だけより習得が早くなります。

ROOT公式チュートリアル

付属のサンプルコードの説明です。 実際にコードを動かし、ソースを読むほうが早く身につきます。 はじめて使うクラスなどはとりあえずサンプルを動かしてみましょう。

ROOT Primer

はじめての方向けの総合的なガイドです。 ROOTの基本的な使い方から応用的な技法まで、体系的に学べます。

対話モードしたい

ROOTの対話型シェル(Rint)を使って、コンパイルなしにC++コードを実行できます。 ROOT6ではバックエンドのC++インタプリターがCINTからClingに変更され、より詳細なエラーメッセージと高度なC++規格への対応が実現されました。

データ操作したい

ROOTでのデータ処理の中核です。様々なデータ源からROOTのデータ構造に変換し、フィルタリングや統計処理を行います。

TTree・TChain・RNTuple

TTreeはROOTのデータ構造の基本です。 CSVなどのテキスト形式で取得したデータをすぐにTTreeに変換しておくと、ROOTを使ったデータ解析が捗ります。 複数のTTreeを読み込む場合はTChainクラスが便利です。

RDataFrame

ROOT6で導入された高性能なデータフレーム処理フレームワークです。 関数型プログラミングスタイルでデータ解析が可能で、複数コアでの並列処理に対応しています。

ファイル操作したい

データファイルの読み書きや文字列処理を行います。

描画したい

ヒストグラム、グラフ、キャンバスなどの可視化機能を使い、データを図表として表現します。

関数・フィット

1次元ヒストグラムをフィットするための関数定義とフィット機能を提供します。

1次元ヒストグラム

2次元ヒストグラム

グラフ

キャンバス・レイアウト

凡例

設定・カスタマイズしたい

表示方法や画面の設定を一括変更する場合は TROOTクラスTStyleクラスTSystem を使います。 実際に使用するのは gROOTgStylegSystem というグローバル変数です。

その他の話題

リファレンス

このKumaROOTに載っているROOTの情報は、下記のサイトを参考にしています。 だいたい自分で試してみて使い方を理解したもの載せています。 本当に詳しいことは下記の情報を自分で読んでみるのが一番だと思います。

ROOT公式マニュアル

困ったらとりあえず読みましょう! Basics or Functional partsから自分の目的に合ったドキュメントを探しましょう。 とてーも長いので全部読もうとしてはいけません。 必要な時に、必要は箇所を、必要なだけ読むことが大切です。 あと、これを書いているときに気づいたのですが、 はじめての方はROOT Primerにも目を通してみると良いかもしれません。

ROOT公式リファレンスガイド

クラス名やそのメソッド名、内容、使い方を知りたい場合に使いましょう! といっても、このページから辿らなくても「cern root ttree」とググればだいたいヒットします。 検索では「cern」と付けるのが重要です。 でないと、管理者の意味の「root」がたくさんヒットしてしまいます。 リファレンスガイドは「クラスの説明+メソッド一覧」という構成になっています。 最初は読むのに苦労するかもしれませんが、使いこなせるように頑張りましょう。 自分のやりたい情報が得られるようになれば、もうROOT中級者です。

ROOT公式チュートリアル

付属のサンプルコードの説明です。 ドキュメントやリファレンスを読むより、 実際にコードを動かし、ソースを読むほうが早く身につきます。 はじめて使うクラスなどはとりあえずサンプルを動かしてみましょう。

ROOT公式コーディングガイド

ROOTのソースコードを読むときに役に立つと思います。 なんとなく知っておくと良いです。 覚える必要はまったくありません。

ROOT解体新書

gROOTgStyle の設定がすごく詳しいサイトです。 他のページでは見られない項目がすごく詳しいです。 残念ながらページのリンク切れを確認(2015-01-27)

宇宙線実験の覚え書き(大学院生版)

PyROOT のことがたくさん載っているoxonさんのブログです。 現在は宇宙線実験の覚え書き(社会人版) に引っ越しされたみたいです。