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を押したらイベントループ終了させれたらいいなぁとか考えて方法を模索中。


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



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

gnuplot(set terminal png)解決編

http://www.muskmelon.jp/macosx/gnuplot_Snow_Leopard-20100314.tar.gz

ここで落としたgnuplotにパスを通す。
ついでにアプリケーションの中に置いておく。

んでalias設定した。

tcshなので
alias gnuplot '/Applications/gnuplot.app/bin/gnuplot'
この設定のおかげで以前にインストールしたgnuplot(インストール先は/usr/local/bin)よりも優先度高くなった。

このgnuplotは直接pdfに出力できるし,普通にpng出力もできる。
今のところ問題ないから一応解決。

よかったよかった。

ついでにFinkも入れ直しますたw

備忘録:検索の小技

"で囲った場合完全一致検索
例)"山田 太郎"
山田のみ,太郎のみのページは引っかからない。山田太郎と記載されたページのみ検索。

-は除外
例)大学 -大学生
大学と書かれたページは検索されるが,大学生と書かれている部分は検索に引っかからない。

ORはどっちかを含んでいるとき
例)グランド 野球ORサッカー
野球グランドもしくはサッカーグランドを検索できる。orとORは別物。


他にもあるけど,よく使う便利なのはこんな感じ。。。

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

gnuplot(set terminal png)葛藤編

今更ながら直接インストールしたgnuplotでset terminal pngが使えないことが判明。
unknown or ambiguous terminal type; type just 'set terminal' for a list.
みたいな出力。

plotutils packageで解決とかよくわからんので葛藤中。

ちなみにFink(apt-get)で入手したgnuplotだとまとめてインストールされているらしい。
そのかわりヒストリーとかが使えないとか?
設定変えりゃー使えるんかもしれないけど,今んところスノレパでFinkもうまくいってない。

くそー。。。

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

初出張。

6/15~6/16と東京大学柏キャンパス宇宙線研究所に行ってきた。
東大が全てってわけじゃないと思うけど,モチベーションの違いを痛感した。

しっかり勉強して大学に入っているだけあって,非常に高いモチベーションで研究していると思う。
みんながみんなそうではないというけれども,やはりうちの大学に比べてモチベーションの高い人間の数,モチベーションの質が全然違う。

非常に良い勉強になった。


ついでに帰りにアキバを散策したw

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

俺の妹がこんなに可愛いわけがない

今更ですが完読。
計5日間。
面白くてスラスラ読めたZE

しかしまぁ6巻の終わり、黒猫が立ててきたフラグ回収なのか「あんた、あたしの彼氏になってよ。」
どういうこっちゃ!?
1.彼氏のふりをする
2.実は血が繋がっていない
3.極度のブラコン発動

…謎だ。
個人的にはめっちゃ好きなシーンではあるけど…


赤城・妹の作ろうとしたゲーム中の泉での回復イベントが頭から離れないぜ…

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

葛藤 ROOT編

CERNのROOTで三次元プロットする方法を探し中。
点とか線でプロットならできるんだけど,gnuplotでいうset pm3d的なやつを追い求めてる。
データ数が少ないときはDraw("surf")でいけるんだけど、データ数が多いときには表示されなかった。

困った困った。。。
二次元への写像でもいいんだけどね。

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

シェルスクリプト

変数に対するパターンマッチ。
${変数#パターン}
最初の部分がパターンと一致した最も短い部分以外を返す
${変数##パターン}
最初の部分がパターンと一致した最も長い部分以外を返す
${変数%パターン}
最後の部分がパターンと一致した最も短い部分以外を返す
${変数%%パターン}
最後の部分がパターンと一致した最も長い部分以外を返す

例)
TEST=/a/bb/ccc/ddd.ee.fffff

${TEST#/*/}
bb/ccc/ddd.ee.fffff
(一番短いパターン一致は/a/)

${TEST##/*/}
ddd.ee.fffff
(一番長いパターン一致は/a/bb/ccc/)

${TEST%.*}
/a/bb/ccc/ddd.ee
(一番短いパターン一致は.fffff)

${TEST%%.*}
/a/bb/ccc/ddd
(一番長いパターン一致は.ee.fffff)

これとsedコマンドを組み合わせたら結構便利。

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

シェルスクリプト

シェルスクリプトをshで書くとき
#!/bin/sh

forループ
for((i=1;i<=$n;i++))

echoによる改行抑止
echo "hoge\c"

色々試してみたところ,これで正常に機能した。
機会があれば実体験で学んだことを本家のWebページに記載予定。

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

備忘録

makefile作成にて
依存行の右側には$(マクロ/$/.c)といった類のマクロは使えないみたい。
内部マクロが無理なのかもしれない。

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

中野梓
プロフィール

dhythm

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

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

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

この人とブロともになる

QRコード
QRコード