- ROOTのヒストグラムを少ないタイプ数で操作出来るようにします。
- コマンド名(関数名)は基本的にANAPAWに準拠してます。
- ROOTの標準機能とは干渉しないようにしてます。
- まだテスト中です。
- 最低限の機能は出来たので公開します。
- ソースコードはGitHubにあります。
- ReadMe.md
- これ。
- anapawcmd.C
- 本体。後述のANAPAWモードを使わない場合は、このファイルしか使わない。
- apmode / apmode.cc
- 括弧なしコマンド(ANAPAWモードでの入力)を使うための実行ファイル。
- Makefile
- apmode をビルドするために使う。anapawcmd.Cだけ使う人は要らない。
- anapawcmd.C をダウンロードして適当なところに設置してください。
- ROOT起動後に .L /path/to/anapawcmd.C とすると読み込まれて、コマンドが使えるようになります。
- 自動読み込みを設定する場合はrootlogon.Cに以下を追記します。
gROOT->ProcessLine(".L /path/to/anapawcmd.C");
gROOT->ProcessLine("SetAPStyle();");
-
使える関数の一覧はここにあります。 (テスト中)
-
ls()
- ヒストグラムの一覧を表示。表示対象は「.ls」で表示されるもの。HID(ヒストグラムID)、次元数、タイトルを表示。
-
ht(hid)
- hidを数値指定して、そのヒストグラムを表示(Draw)する。第二引数でDraw optionの指定可。
-
hn() / hb()
- 現在表示中のヒストグラムの次の(/前の)ヒストグラムを表示する。引数でDraw optionの指定可。
-
lgx() / lgy() / lgz()
- x / y / z 軸をLogスケールにする
-
lnx() / lny() / lnz()
- x / y / z 軸をリニアスケールにする
-
sly()
- 2次元ヒストグラムをx方向にスライスしてy軸への射影した1次元ヒストグラムを作成する。
- 本家ANAPAWではスライス数を指定するが、ここでは今の所、元の2次元ヒストグラムのx方向の分割数でしかスライスできない。そして、slx()はまだ出来てない。
- 2次元ヒストグラムをx方向にスライスしてy軸への射影した1次元ヒストグラムを作成する。
-
blowx(min, max) / blowy(min, max)
- ANAROOT準拠。x/y軸の表示範囲を変更する。(本家ANAPAW/ANAROOTでは新しいヒストグラムとして再生成するが、これは単に表示エリアを変えるだけ)
-
blowx() / blowy() (引数なし)
- x/y軸の表示範囲を初期状態に戻す。(unzoomする)
-
showstat() / delstat()
- 独自機能。統計ボックスを表示 (/非表示に) する。
-
print()
- 現在表示中のヒストグラム(gPad)に適当なファイル名をつけてPNG画像として保存する。保存先ディレクトリは、./png, ../png, ./plots, ...と順に探し、最初に見つかったディレクトリに保存する。
- 注意 : ディレクトリ検索にsystem関数を使っています。Linux以外のOSでは多分動作しないです。
- 現在表示中のヒストグラム(gPad)に適当なファイル名をつけてPNG画像として保存する。保存先ディレクトリは、./png, ../png, ./plots, ...と順に探し、最初に見つかったディレクトリに保存する。
-
adl()
- 独自機能。tree->Draw()等で作成したヒストグラムをリストに登録する。(ヒストグラムIDが与えられて、後からそのIDを使って呼び出せる。)
- ANAPAWみたいに括弧なしでコマンドが使えるようにするためのプログラムです。
- 基本的に文字列処理で "ht 1" -> "ht(1)" のように整形してるだけです。
- 試してみたい人は、ソースコード内にanapawcmd.Cへのフルパスがベタ書きされてるのでそこを直してからmakeしてください。
- 通常のROOTを起動する代わりにこのファイルを実行すると使えます。
- ROOT本来の機能は問題なく使えるはずです。
- ROOT5で動かない。デフォルト引数が二重定義になってるとか言われる。気が向いたら直す。
多分直りました。但し、makeする時のROOTのバージョンと、実行するときのROOTのバージョンが同じでないと落ちます。(2023/3/3)- ROOT5.34/38 on Ubuntu16.04でテストしたところデフォルト引数が二重定義のエラーが依然として出る。解決策はわかったがまだ修正してない。同じ環境でapmodeをmakeしようとすると、エラーが出る。Makefileの表記順が間違ってるらしい。未修正。(2023/6/8)
- DrawHistで「HistogramID」の表示が、zoneで2行以上にした時に数値ラベルと重なる (2023/3/28)
- 表示位置設定がx軸からの相対位置になっているのが問題。そのうち直す。
- zoneでキャンバス分割した時に一部環境で最初の枠にしか描画できない。
-
2023/7/11
- apmode.cc内にあるフルパスベタ書きのところを自動設定するように修正した。
-
2023/6/28
- adlを使えるようにした。Makefileを修正した。(ライブラリの指定順が悪くてUbuntuでコンパイルが通らなかったのを修正。)
-
2023/8/25
- apmodeをコンパイルした際にROOTのバージョンごとに実行バイナリを生成する方針に変更した。
- Doxygen で自動生成したマニュアル
- 文字列の引数を入れる時に" "を省略できるようにしたい