対話型マクロ作成のための小技†

bin関係†

現在表示しているヒストグラムのポインタを取得する†

TH1* h1 = (TH1*)gPad->GetListOfPrimitives()->At(1);

現在開いているファイルの一覧を取得する†

gROOT->GetListOfFiles()->Capacity() // これで現在開いているファイルの個数がわかる
gROOT->GetListOfFiles()->At(0)->GetName() // 0番目のファイル名
gFile->GetName() // 現在選択されているファイル

現在開いているキャンバスの一覧を取得する†

gROOT->GetListOfCanvases()->Capacity() // これで現在開いているキャンバスの個数がわかる
gROOT->GetListOfCanvases()->At(0)->GetTitle() // 0番目のキャンバス名 (ウィンドウに表示されるタイトル)
gPad->GetCanvas()->GetTitle() // 現在選択されているキャンバス
((TCanvas*)gROOT->GetListOfCanvases()->At(1))->cd() // 1番目のキャンバスに移動

ヒストグラム名を使わずにDrawする方法†

ヒストグラム上でマウスの位置の座標を取得する†

gPad->GetEventX() // TCanvas上での現在マウスポインタがあるx座標(多分ピクセル単位)
gPad->GetEventY() // TCanvas上での現在マウスポインタがあるy座標(多分ピクセル単位)

gPad->AbsPixeltoX(gPad->GetEventX()) // ヒストグラム上の座標
gPad->AddExec( "myexec" , "myexec()" );
void myexec(){
  printf("%d %.1f %.1f \r",gPad->GetEvent(),  gPad->AbsPixeltoX(gPad->GetEventX()), gPad->AbsPixeltoY(gPad->GetEventY()));
}
gPad->DeleteExec( "myexec");

現在設定中のx軸(SetRangeUserなどで設定した)の範囲を取得する†

hist->GetXaxis()->GetBinCenter(hist->GetXaxis()->GetFirst())
hist->GetXaxis()->GetBinCenter(hist->GetXaxis()->GetLast())

TPadに表示されているObjectの一覧を表示†

gPad->GetListOfPrimitives()->ls()

TCanvasの分割関係†

gDirectory, gPad, gROOT†

ANAPAW風のコマンドを使う†

なにかに使えるかもしれない†

うるせえ! そんな情報いちいち表示すんな! というとき†

Info in <TCanvas::Print>: pdf file c1.pdf has been created などを表示しない方法†

Fit関係†


最終更新 : 令和 5年 12月 7日 (木) 21:25:49