プログラミング

Eclipse CDT から clang-format を使って書式整形をしよう

そろそろ物理屋さんも vim とか Emacs でソフト開発するのやめませんか? Eclipse とかにしませんか? ということで、ソフトをバリバリ書いてる人は Eclipse CDT (宇宙・素粒子系の物理屋は Java 使わない) をご使用中のことと思います。LLVM/Clang実践活用ハ…

物理実験のエラーロギングに Boost.Log を使ってみる

最近 Cherenkov Telescope Array (CTA) のデータ収集 (DAQ) 用のライブラリを C++ で書いている。自分は物理実験屋であってプログラマではないので、あんまり高級なことはやらないのだけど、色々と作業を楽にするために平均的な物理実験屋よりは新しいものを…

CMake と SWIG を使って C++ と Python と ROOT に対応させる

やりたいこと CTA の焦点面カメラの開発に必要なソフトを新たに書く必要があり、以下の条件を満たす必要があります。 速度重視の用途に耐えるため、また multi thread に対応するため、中身は C++ で書かれていること 速度を重視しない場合や簡単な試験にす…

gdb で password を要求される

ROOT で seg fault を起こすと gdb が走りますが、うちの環境だと Xcode の update 時に何か設定がおかしくなることがあり、gdb の実行時に password を求められる場合があります。そのため、途中で seg fault の error を表示した状態で止まってしまいます…

HV への印加が起こす libftd2xx の seg fault

FTDI 社製の FT245RL という USB 用の chip と、libftd2xx という純正の library を組み合わせて使用しています。操作は ROOT で class を書いて、libftd2xx の wrapper を走らせています。FT245RL と同じ基板上に HV (高圧) を載せているのですが、こいつの…

numpy の array で、特定の値を持つ要素を探す

PyFITS を使ってある 3 次元の FITS ファイルを開いたところ、観測データの存在しないピクセルは NaN が詰まっていました。この配列に対して処理をしようとすると、演算が不正になってしまうので、以下の方法で NaN のピクセルだけ値を 0 に置き換えました。…

GDBの結果を無闇に信用してはいけない

Geant4であるプログラムを書いていたところ、segmentation faultとGDBの出力結果ではまりました。以下のコードをstepping actionの中で使おうとしたところ、 void SteppingAction::UserSteppingAction(const G4Step* step) { RunAction* action = (RunAction…