FC2ブログ

c++でROOTを使う(奮闘編)

CERNのROOTを起動し,マクロを読み込むんじゃなくてc++の中でROOTを使いたい!

そんな気持ちで色々奮闘してみた。
c++にROOTを埋め込む方法は
http://ppwww.phys.sci.kobe-u.ac.jp/~akusumoto/program/detail.php?d=root/01-basic/run_root
このページに説明が非常にわかりやすくていいと思う。


ここからが問題。
グラフを表示したければTApplication.hを使用するわけなのだ。
そして.Run()でグラフを作るわけである。
このときイベントループが作成され,.Run()以降の部分が実行される事無く.Run()の部分でプログラムが止まる。

イベントループを止める方法はTCanvasのメニューにあるQuit ROOTをマウスで選択するか,Ctrl+C(強制終了)ダケなのである。

Data Viewerとして使用する私にとってマウスを使わなくてはならないQuit ROOT(実はショートカットキーがあるのかもしれないが知らない)は,非常にめんどくさい。
そしてCtrl+Cはプログラム自体が終わってしまうので.Run()以降のプログラムは実行されない,これも困る。


そこでシグナルハンドラを使った終了に着手した。
今はシグナルハンドラを使ってCtrl+Cを実行したときにイベントループを終了させる設定を取っている。
Enterを押したらイベントループ終了させれたらいいなぁとか考えて方法を模索中。


うまくいったら記載するつもりです。
スポンサーサイト



テーマ : ひとりごと。
ジャンル : 日記

コメント

非公開コメント

中野梓
プロフィール

dhythm

Author:dhythm
関西に住む大学院生。専攻は宇宙物理学。
専攻が宇宙物理学の理学修士。現在は社会人。
Mac, Windowsを併用。Linuxでサーバーマシンをたてる計画中。
使用言語 : C, Java, COBOL, Perl, Python, Object-C

社会の荒波にもまれながら、日々勉強中。

アクセスカウンター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード