ROOTを使おう

0.     準備

環境変数を設定。

マイコンピューターを右クリックしてプロパティを選択。

詳細設定のタグの環境選択をクリック。ユーザーの環境変数に以下の2つを加える。

システム環境変数でまずROOTSYSを追加します。
新規ボタンを押して、

変数名にROOTSYS、変数値にC:\ROOT

(ここではCD-DriveC:であるとしています。)を記入します。
またPATHを通すため、変数名にPATH
変数値に%ROOTSYS%\binを加えます。
%
変数名%で環境変数を参照することが出来ます。

1.     ROOTをやってみよう

CD-ROMCD-Driveに入れる。

すると自動的にROOTが立ち上がります。とりあえす、

>.q

と入れてROOTを終了します。

TutorialをやってみてROOTで何ができるか見てみましょう。

windowsのスータト→すべてのプログラム→アクセサリ→コマンドプロンプト

でコマンドプロンプトを立ち上げます。

 

> C:

> cd ROOT

> cd tutorials

これでディレクトリ(フォルダ)を移動してROOTを使うためのいろいろなサンプルが置いてあるディレクトリに来ました。ここで

> root

と打つとROOTが立ち上がります。

> .x benchmarks.C

と入れるといろいろなプログラムが実行され、ヒストグラムが作られたり、グラフが作られたり、絵が描かれたりします。

> .x domos.C

ボタンをクリックするとプログラムが実行されます。

> .q

ROOTを終了します。

2.      ROOTファイルを開こう。

Web pageにいって、ファイルをダウンロードしましょう。

http://www-nh.scphys.kyoto-u.ac.jp/~miwa9/others/A6.html

ここにROOTのためのファイルが幾つか置いてあります。

これらのファイルをダウンロードしてください。

hsimple.root  → 幾つかのヒストグラムが入っているROOTファイル

hsimple.C     → hsimple.rootを作るためのマクロファイル

これを作業フォルダ(たとえばMy Documentrootというフォルダを作っておくと良いでしょう)に置きましょう。

そしてコマンドプロンプトをまた開き、そのフォルダに移動しましょう。

> m:      (ワークステーションではMy Documentmディスクになっているようです)

> cd root

> dir  (またはls

これでファイルがあるかを確認します。あったらrootを立ち上げましょう。

> root

立ち上がったら

> f = TFile(“hsimple.root”)

これでROOTファイルを開いたことになります。fというのはTfileクラスの変数になります。

> f.ls( )

とするとファイルの中身が確認できます。

3.      ヒストグラムをプロットしよう

このファイルにはTH1Fクラスのヒストグラムが全部で10個あります。

> hgauss->Draw( )

とするとヒストグラムがかかれます。

矢印のあとのDraw( )はこのクラスが持っている関数(Method)です。

他のヒストグラムも表示してみましょう。

4. ヒストグラムをfitしよう

  フィットするには

> hgauss->Fit(“gaus”)

とします。するとhgaussのヒストグラムがガウス関数でフィットされます。

ガウス関数以外にも

expo     exponential関数

pol0   0次関数

pol1   一次関数 

landau  ランダウ関数

などがあります。

Fitする範囲を指定するときは

> hgauss->Fit(“gaus”,””,””,15, 35)

とすれば15から35までの範囲でフィットしてくれます。

 

また自分でfitする関数を定義することも可能です。

たとえばhist00次関数のバックグラウンドとガウス関数のピークからなります。

> TF1 *f1 = new TF1(“f1”,”pol0(0)+gaus(1)”)

> f1->SetParameter(0, 180)

> f1->SetParameter(1, 500)

> f1->SetParameter(2, 25)

> f1->SetParameter(3, 5)

> hist0->Fit(“f1”)

とすれば0次関数とガウス関数の足し合わせの関数でfitすることができます。

マクロファイルを用いてfitすることも可能です。

fitLolenzian.Cはローレンツ関数でfitするためのものです。

> .x fitLolenzian.C(hbwigner)

とするとfitしてくれます。