ANAROOT/Macros
OnlineMonitor
(2014 12/31 近藤)久保田実験のときに作ったオンラインモニター
SAMURAIの解析例
(2012 11/02 近藤)SAMURAIの解析の例です。anaroot_v4.5.4用。
一般の関数でのfit
比較的よく使う一般の関数でfitするために、例えばslew.Cを用意して、
root[i] .x func/slew.C root[i] fit("slew") // Nadekoを使っている場合 root[i] hist->Fit("slew") // Nadekoを使ってない場合
とすると個別にfitのmacroを用意するよりもシンプルになる。 func以下に関数を生成するmacroを置いておいて、そのmacroで生成した関数に名前でアクセスする。(2012/2/19 田中)
getlandaupeak.C
getlandaupeak.C:ランダウ分布をフィットするマクロ。インプットはID-Qavのヒストグラム。landaupeak.txtにピークの値を吐き出します。1次元ヒストグラムにして、Xmaxから極大・極小を探し、それを元にフィットの初期値と範囲を決めています。極大・極小を探すところで適当な範囲を積分して平均化しているので、その範囲はデータによって変える必要があるかもしれません。(2012 2/15 近藤)
ch2ns.C
ch2ns.C:TDC calibratorのデータからキャリブレーションパラメーターを求めるマクロ。ID-Trawのヒストグラムがインプット。ch2ns.txtを吐きだします。(2012 02/13 近藤)
makevsta.C
makevsta.C:V792のnbbqのvmestatのインプットファイル生成用マクロ。getped.Cの吐くID順に並んでいるペデスタルの位置と幅が書いてあるファイルをインプットとしている。ANAROOTのmapと連携してる。とっても読みづらい。。。mapやDetectorIDなどfixしたら修正します。まあ大体こんな感じで使えますかね。(2012 02/13 近藤)
(2012 02/14 田中) NEBULAのパラメータを上下共通にしたのでGetUDLRは使えなくなりました。 つまり、paraだけではUかDを判断できず、mapを渡す時点で判定する必要があります(mapを渡すとUかDを判定する関数を作ってもいいですが...)。 とりあえず今は変な仕様で、FindNEBULAPlaParaUで見つかったらU、FindNEBULAPlaParaDで見つかったらDとなっています。 んー。。。
getped.C
getped.C 作ってみました。Nadekoライブラリとか使っていないので純粋なROOTのマクロとして使えますよ。
(2012 2/14 田中) sprintfをistringstreamに変えれば3文字制限とかが必要なくなります。istringstreamはかなり便利です。
(2012 2/15 近藤) 変えましたよ。istringstreamでなくてostringstreamでした。
(2012 3/4 田中) waitをNadekoに実装してて思ったのですが、近藤さんの今の書き方だとBuffer Overflowを 起こす危険をはらんでいます。わかりにくいbugになるのでできるだけ避けるべきです。 c++だと例えば
std::string str; std::getline(std::cin, str);
とすれば一行読み込みが安全に行えます。