ROOT
メモ
CMake で Scinetific Linux にインストールしたときのメモはここ
ROOT インストール時に使う configure スクリプトのメモはここ
Tree のメモはここ
MathMore を使ったときのメモはここ
エラーや警告のメモはここ
マクロ置き場はここ
メモっておきたいスタイルの設定はここ
- h2root コマンド
- h2root コマンドは cernlib がインストールされていないとインストールされない? cernlib コマンドがインストールされている必要あり? cernlib コマンドは Extra Packages for Enterprise Linux (EPEL) リポジトリの cernlib-utils パッケージに入っている。
ROOT のプログラミングのメモはここ
ROOT で出来るようになりたいこと
- ヒストグラム表示
- マクロの実行
- ループ、条件分岐、変数、配列、eval
- グラフの見た目の変更
- ヒストグラム
- 枠の色、太さ
- 中の色、斜線表示
- エラーバー
- 軸の色、太さ
- 値の文字種、大きさ
- ラベルの文字種、大きさ
- 関数表示の際の、線の太さ、色、種類
- ヒストグラム
- 図形の表示
- 直線、直方体、楕円、矢印
- 線の太さ、色、塗りつぶし
- 直線、直方体、楕円、矢印
- 文字列の表示
- 色、大きさ、文字種の変更
- テキストデータから、ヒストグラム、ベクトル(配列?)、Ntuple的なものに代入
- データ構造間の変換
- フィット
- ガウシアン
- 指数関数
- 多項式
- 任意関数
- フィットパラメータの取得
- マクロ内で再利用及び、テキストに書き出し
- PAW でいう locate ! i
- PAW でいう vlocate
- エイリアスの設定
- 起動時初期化マクロ的な物の設定
- デフォルトの表示を Topdrawer のように渋くする
- ヘルプの表示
- クラスのマニュアル
- PAW の array manipulation package SIGMA に相当するもの
How to Convert from PAW ? には書いてない。
Memo
sin(x) のプロット
root [] TF1 *f1 = new TF1("f1","sin(x)",-10,10); root [] f1->Draw();
- プロットする点の数は以下のように指定。500 個の点でプロットする。
root [] TF1 *f1 = new TF1("f1","sin(x)",-10,10); root [] f1->SetNpx(500); root [] f1->Draw();
軸の対数表示 (Log / Linear の切替)
スケールの切り替えは、Canvas の枠外の何もないところを右クリックし、SetLogx をクリック。
- コマンドでは、以下のようにすればよい。ここで、Canvas の名前(?) は c1 とする。(Canvas ウィンドウの左上に書いてある。)
root [] c1->SetLogx();
起動画面を表示しない
以下の様に ROOT を起動。参考: Dis45 ユーザーのための ROOT 入門 猿にも使えるROOT:番外編
$ root -l
小さく印刷
- 以下の様なコマンドを打った後、Canvas からプリントすると、10cm x 10cm の範囲に収まるようだ。
root [] gStyle->SetPaperSize(10,10);
球面表示
- PAW での球面表示は以下のようにする。
PAW> FUN/DRAW X**2+Y**2+Z**2=1
これを ROOT でやるには以下のようにする。参考: Paw-like FUN/DRAW?
TF3 *f3 = new TF3("f3","x*x+y*y+z*z-1",-2,2,-2,2,-2,2); f3->Draw();
横軸を時間にする
{ TDatime* tm[2]; double x[2],y[2]; tm[0] = new TDatime(2008,02,28,15,52,00); tm[1] = new TDatime(2008,02,28,15,53,00); y[0] = 1; y[1] = 3; for (Int_t i=0;i<2;i++){ x[i] = tm[i]->Convert(); } TGraph* mgr = new TGraph(2,x,y); mgr->SetMarkerStyle(20); mgr->Draw("ap"); mgr->GetXaxis()->SetTimeDisplay(1); mgr->GetXaxis()->SetNdivisions(-503); mgr->GetXaxis()->SetTimeFormat("#splitline{%m\/%d}{%H:%M}"); mgr->GetXaxis()->SetTimeOffset(0,"gmt"); }
デフォルトで軸のタイトルをセンターには出来ない
- gStyle で デフォルトの設定をいろいろいじれるが、軸のタイトルを常にセンターする方法はまだないようだ。
Histogram の 背景を透明
- ROOT の5.34/4 から 出きるようになった?
TColor *col26 = gROOT->GetColor(26); col26->SetAlpha(0.01);
とかする?参考 : ROOT Version 5.34/04 Release Notes - 2D Graphics Libraries
ここも参照 --> とある物理の院生日誌~院生は社会へ旅立った~ - ROOTで背景を透明にする
- ROOT の5.34/4 から 出きるようになった?
2D Histogram の colz でフレームの上部が消える
Tline で無理やり線をかく。参考 : TH2 colz obscures the top frame SOLVED
または、 gPad->RedrawAxis(); を使う?参考 : THistPainter - Setting Tick marks on the histogram axis
ROOT が出力する EPS ファイルが印刷できない
ROOT が 出力する EPS ファイルにはページを指定するコマンド(%%Page: or %%Pages: ?)が書かれていないため、PostScript プリンターで出力できないことがある。研究室の OKI 製複合機 MC562dn だと、"Generic PostScript driver" を使っても、OKI からダウンロードしたドライバ "OKI DATA CORP MC562(PS)" (OKM562_a.ppdというファイル) を使っても印刷できない。ドライバを Generic の Raw Queue にすると印刷できるが、このドライバだと両面印刷ができない。EPS ファイルを印刷するときだけ Raw でデータを送りたい場合、下記の様に lpr コマンドに raw オプションをつける。
$ lpr -o raw test.eps
- ただし、生越くんの Ubuntu からは印刷できている。ドライバは MC562 に適したドライバを使っているようだ?どこから手に入れたドライバか、あとで確認。