ROOTStudy

水曜日, 3月 02, 2005

Q:カンマ区切りCSVファイルのデータを読み込む

A:標準ファイル入出力ifstreamが処理してくれないため、
Cのファイル入出力を用いると楽でよい。
ファイル読み込みは頻繁に行わなければ、
オブジェクト構造との間に深刻な問題は生じない。

例:rawdata/book1.datに入力された2列のCSV形式データをグラフ表示する
{
gROOT->Reset();
#include <stdio.h>

FILE *fp;
double x[20000], y[20000];
int i;
fp = fopen("rawdata/book1.dat", "r");

for(i = 0; i<10000; i++){
fscanf(fp, "%lf,%lf\n"&x[i], &y[i]);
}
fclose(fp);

TGraph *graph = new TGraph(i, x, y);
graph->Draw("APL");

}

Q:ROOTをUNIXプロンプトのように使う(コマンドを知る)

A:通常のコマンドに.(半角ドット)をつけて入力する。

例:
cd (change directory)は
.cd
で実行される。
なお、コマンドの働きはUNIXと若干異なるものがある。

例:
フォルダの中身を見るため.lsコマンドを使うと、
それまでに定義・入力された(プログラム上の)オブジェクトや変数が
表示される。

CINT(C Interpriter)に
特有のコマンドは下記アドレスを参照する。
http://root.cern.ch/root/CintCommands.html
このページに書いてあるコマンドは .(半角ドット)がついていないので
.をつけて実行する。

例:
ヘルプを見る場合は
.help
と入力する

Q:Tutorialを見る

A:下記ページ(表題は英語)を参照する。
http://root.cern.ch/root/Tutorials.html

Q:root/bin/以外のフォルダ中にあるファイルを参照する

A:ROOTが起動した時点で
ホームディレクトリが/root/binになっている。
よって/root/bin以下にディレクトリを作り、(例えば/root/bin/rawdata/)
/rawdata中にbasic.datを入れておくと
例えば以下のマクロが実行できる。

{
#include "Riostream.h"
ifstream in;
in.open("/rawdata/basic.dat");
//ファイルで必要な操作を記述
in.close();
}

Q:ダウンロードファイルの解凍

A:Lhacaをダウンロードして解凍する。
http://www.vector.co.jp/soft/dl/win95/util/se166893.html

Q:WINDOWSで動くROOTの入手

A:
http://root.cern.ch/root/Version403.htmlのホームページから、
ftp://root.cern.ch/root/root_v4.03.02.win32gdk.tar.gz
をダウンロードする。(24.6MB)

Q:マクロの作り方と実行

A:最初と最後を中カッコで括ったファイルを用意し、
****.C(****は任意の文字列)にしてroot/macro/のフォルダに保存する。
マクロの呼び出しはROOT立ち上げ後、.x ファイル名 で実行する。
.x ****.c


ファイルの例
_________________________________________________
//****.c
{
//この中にコマンドを記述する。
}

はじめに

ROOTは大規模データの統計処理やグラフ化などをこなしてくれるソフトです。
CERNが開発しており、非商用であれば誰でも使用できます。

コマンドはDOSプロンプトのような画面に直接コマンドを入力する
インタプリタ方式で、
C++のようなコマンドで記述します。

最新のROOTではWIN32環境でも動作するバージョンがあり、
UNIXエミュレータであるCYGWINをインストールしなくても
ROOTが使えるようになりました。

わたし自身はOSに執着はなく、
それで仕事ができれば良いぐらいにしか思っていないので、
WIN32でのROOTを使ってみた結果や便利だと思った使い方を
メモ代わりに書いてみたいと思います。