Raspberry Pi 3 (Jessie)にroot 5.34.36をインストール

GROWTH実験で使用するFPGA/高速ADCボードと制御・読み出し用のDAQソフトウエアは、高エネルギー実験でよく使われるCERN/ROOTのROOTファイル形式で波形データを書き出す機能があるのですが、動作試験ができていなかったのでいくつかバグがありました。 Raspberry Piにrootをインストールして動作確認する必要があったので、以下の手順でインストールしました。 ssh -YでRaspberry Piにログインしている場合、rootだけで起動するとおなじみのスプラッシュスクリーンがでてきます。 インストールした環境は GROWTH-DAQのバグについては修正完了後、インストール方法や実行例の記事をアップロードします。 ちなみに、Raspberry Pi上でのコンパイルはmake…

HongoWikiを移設しました

新しいサーバへ移動しました 東京大学のサーバが不釣になって見られなくなっていたHongoWikiを、自前のサーバに移動して再開しました。新しいアドレスは以下のとおりです。そのうち、Googleの検索ランクも戻ってくると思います。あと、Mediawiki→Jekyllの変更にともない、コメント管理サービスDisqusを使ってコメント欄も付けているので、質問や改善のコメントがある人は気軽に書き込んでください。 HongoWiki – http://ytkyk.info/wiki/ (トップページからページの一覧が見れます) トップページと同じ説明文章を掲載しておきます。ページの追加や内容の更新に興味のある人は、コメント欄から連絡してください。 HongoWikiは2007-2016年に東京大学牧島・中澤研のサーバ上で公開されていた、 高エネルギー宇宙物理学分野の研究に関連した情報をまとめるためのWikiです。 詳細はHongoWikiについてを参照してください。 2016年にサーバトラブルにより閲覧できなくなっていたものを、新しいサーバで公開することにしました。記録的な意味がほとんどで、情報のアップデートはあまりされないと思います。 もし、ギブアンドテイクの精神で、自分でページを作って室の向上に貢献したいというえらい人がいたら、コメント欄で連絡してください。Jekyllのgitレポジトリを編集できるようにして、ページの追加・内容の改修ができるようにします。Markdownで記事が書けて、gitが使えれば大学院生・ポスドク・大学のスタッフ、誰でも歓迎です。…

【RubyROOT】ヒストグラムをフィットする例

RubyROOTで1次元ヒストグラムのテキストデータを読みこんで、TH1D(Double型の1次元ヒストグラム)に変換し、一次関数+ガウシアンでフィットしてプロットする例を示します。RubyROOTのインストール方法は「RubyROOTをHomebrewでインストールする」を参照してください。 最終的に、以下のようなプロットが得られます。 コード コードは以下のような構成です。コメントに書いてある通りで、シンプルな構成です。以下のコードをコピーペーストして保存してもよいですが、gistにもアップロードしたので、そちらからダウンロードする方が簡単です。ファイル名はread_and_fit_histogram.rbとしてください。 ヒストグラムのデータはhistogram_sampleからダウンロードしてください。ビンのデータが縦に並んだ超シンプルなデータファイルです。 スクリプトの解説 ヒストグラムオブジェクトの作成 TH1Dという、1ビンがdoubleで表現されたROOTの標準的なヒストグラムクラスをもとに、ヒストグラムオブジェクト(インスタンス)を作成しています。 ROOTのTH1(1次元ヒストグラム)のAPIリファレンスはこちら→The Histogram…

[ROOT] TGraphからTSpline3を作成する

ROOTのTGraphでデータ列を保持していて、そのスプライン補間関数(cubic splineならTSpline3)を構築したいときは、以下のようにTSpline3::TSpline3(const char* name, const TGraph* g, …)というコンストラクタを使用しましょう。 [tmkm-amazon]9784797370997[/tmkm-amazon] TGraph::Eval()の第二引数にTSpline3のインスタンスを、第三引数に”S”オプションを渡したら、結果が第二引数のオブジェクトに引き継がれるのかと思いきや、そういう仕様ではありませんでした。…

【ROOT】ファイルを開くとTStreamerInfo::BuildCheckのWarningが出る

TStreamerInfo::BuildCheckのWarning CERN/ROOTを使っている時に、 Mac 1で作成したROOTファイルをMac 2で開こうとすると、TStreamerInfo::BuildCheckが以下のようなWarningを出しました。メッセージの要旨は「ROOTファイルから読み込んだTNamedやTAttMarkerといったクラスの定義情報が、現在使用しているROOTのバイナリにおける定義と異なっている」です。 原因 おかしいなと思って調べると、2台のMacでROOTのバージョンが違っていました。Mac 1ではROOT 5.34.25でファイルを作成して保存していたのに対し、Mac 2ではROOT…

[ROOT Fitting] 複数のフィット関数を同時に表示する

ガンマ線スペクトル等をROOTのヒストグラムとして扱って、輝線放射に対してpol1+gausのような関数でフィットする際、複数の輝線のフィット結果を同時に描画したいことがあります。以下のように、Fit()メソッドの第二引数として、”+”を指定すると、ヒストグラムオブジェクトのフィット関数リストに追加されていき、Draw()したときに過去のフィット結果も同時にプロットされるようになります(デフォルトでは、ヒストグラムのフィット関数リストは、Fit()をコールするたびに毎回履歴がdeleteされます)。 具体的な例で実行すると、以下のような感じになります。以下の例では、4個の輝線に対してpol1+gausで構成される4個のTF1のインスタンスについてフィットしています。 詳細は、TH1のFitメソッドのAPIリファレンスを参照してください。 The list of fit options is given…

RubyROOTでDraw()したときに統計情報を表示しない

RubyROOTでヒストグラムをDraw()すると、.rootmacros内でgROOT->SetOptStat(0)していても効かずに、図の右上に統計情報が表示されることがあります。見栄えの問題でこの統計情報を消したい場合は、以下のようにしてください。 以下、RubyFitsと同時に用いて、あるFITSファイルの1st extensionに記録されたXとYをhistogramに詰めて、上下に分割したCanvasにプロットする際の例です。以下のような表示になります。 gStyle.SetOptStat(0)をコメントアウトすれば、以下のように統計情報が出ます(というかこちらがデフォルト)。

RubyROOTをHomebrewでインストールする

RubyからCern/ROOTが使える、めちゃくちゃ便利なRubyROOTというツールがあります。JAXAのHirokazu Odakaさんが開発・メンテしてくれています。 マニュアルビルドするには、swigやcmakeを用意する必要があるのですが、簡単にインストールできるようにHomebrewのFormulaを作って、tapに入れました。Macの人はHomebrewをインストールしてから、以下のようにしてtapを取得して、インストールすると使えるようになります。 もしROOTが入っていない場合は、 してください。   天文データを扱う人は、RubyFitsもぜひどうぞ。 でインストールできます。高エネルギー宇宙物理の人は、RubyROOTとRubyFITSを同時に使うと、C++を書かずに論文を書くのに必要なデータ解析ができるようになりますよ。 RubyROOTのサンプルコードはgithubのexamplesフォルダを見るか、HongoWikiの「RubyからROOTを使う」のページも参考にしてください。 たとえば、以下のようにヒストグラムを作成できます(write_hist.rb)。