= ROOTについて = 素粒子物理実験の分野では標準的に、データ解析にはROOTと呼ばれるソフトウェアを使っている。このソフトウェアはCERNで開発されたもので素粒子物理の解析で必要とされる機能や実験システムの構築に必要な機能を豊富に含んでいて、頻繁に更新されている。 == ROOTの使い方 == === 環境設定 === === ROOTの起動と操作方法 === ROOTの重要な機能の一つはデータ可視化するためにヒストグラムやグラフを描くことである。そのための操作は基本的にはコマンドラインで行う。まずROOTを起動するためには、ターミナルで次のように入力する。 {{{ > root }}} すると、次のようにLinuxのコマンドではなくROOTのコマンドを受け付けるプロンプトが表示される。 {{{ root [0] }}} この状態で、C++インタープリタと呼ばれるものが裏で動いていて、C++の文法に合うコードを入力することができる。例えば、 {{{ root [0] int a = 1; root [1] int b = 2; root [2] cout << "a+b = " << (a+b) << endl; a+b = 3 root [3] }}} === マクロの使用 === このような簡単なこと以外に、ROOTで用意されている膨大な数のクラスを使用できるようになっている。描画のために良く使うのはヒストグラム(TH*)、グラフ(TGraph*)、ツリー(TTree)等である。これらを使って直接コードを入力していくこともできるが、通常は必要なコードをファイルに記述しておいてそのファイルをROOTで読み込んでコードをインタープリタにより順に実行またはコードをコンパイルしてから実行することが多い。このようなコードを記述したファイルをマクロと呼んでおり、マクロの中身はC++の関数として定義されている。通常、ファイル名とマクロで定義する関数は一致している必要がある。例えば"void abc()"という関数を使用する場合、マクロはabc.Cというファイル名である必要がある。 RootTutorial1にいくつかマクロが用意されているので、それを使ってみる。マクロを実行するには".x"という特殊なコマンドを使用する。 {{{ root [0] .x histExample1.C }}} これでガウス分布をするヒストグラムが表示されたはずである。 {{attachment:h1.png|width="200px"}} === ROOTの特殊コマンド === マクロの実行時に使ったように、ROOTではC++コード以外に特殊なコマンド(全てピリオド'.'で始まる)を使用することができる。良く使うのは".x"、".L"、".q"、".>"等である。特殊コマンドの一覧は".?"と入力することで確認できる。 === ROOTの終了 === ROOTを終了するにはプロンプトで次のように入力する。 {{{ root [0] .q }}} 時々、ROOTの挙動がおかしくなった時は'q'をたくさん入力すると上手く終了できる。 {{{ root [50] .qqqqqqqq }}}