================================================ 参考:空蟬環境におけるヒストグラム化【作成中】 ================================================ :著者: 稲村泰弘 概要 ==== 空蟬の主要な機能の一つが、MLFの装置のデータ収集系に広く使われているDAQミドルウェアから生み出されるイベント記録型データ(イベントデータ)のヒストグラム化である。 イベントデータとは、時刻情報とその他の情報をまとめて一つのイベントとして保存されたバイナリ型データである。そのままではデータの可視化も難しいため、一旦理解しやすいヒストグラムデータに変換する必要がある。 通常、「空蟬を用いる」というのは、グラフィカルインターフェースである「SequenceEditor」を利用することが多いであろう。そこでは各装置ごとに専用に作られた関数(ファサード関数と呼ぶ)が用意されており、ヒストグラム化やそれに続く補正関数などを実行できる。このファサード関数の中身はPythonコードで自由に作成できるが、実際には一つ、もしくは複数のManyoライブラリにおける空蟬の基本関数を呼び出すことが主たる目的となっているものも多い。 そこで本章では、特にMLF環境においてヒストグラム化に用いられる空蟬の基本関数と使いかたを紹介する。 ヒストグラム化の基本関数 ========================================== すでに空蟬環境がインストールされているとする。 ここでのMLF空蟬環境とは、 #. 万葉ライブラリ、空蟬も環境変数も含めインストール済み #. 解析するビームラインのデータも所定の位置("/data/XXX"もしくは"/opt/mlfsoft/data/XXX")にある ことをいう。 本章は、位置敏感型検出器(PSD)からのシグナルをイベント化するNEUNETボードからのイベントデータを解析する *UtsusemiGetNeunetHistogram* を中心に紹介する。 まずは以下のコードをまず見ていただきたい。 .. code-block:: python :linenos: import Manyo as mm import Manyo.Utsusemi as mu event_conv = mu.UtsusemiGetNeunetHistogram() event_conv.SetRunNo( "123" ) event_conv.SetConversionParameter( "tof, 0.0, 40000.0, 20.0" ) DAT = mm.ElementContainerMatrix() event_conv.SetElementContainerMatrix( DAT ) コードを解説する。 .. code-block:: python :lineno-start: 1 import Manyo as mm import Manyo.Utsusemi as mu ここでは、万葉ライブラリ本体と、空蟬の基本コードを使うためにimportしている。 .. code-block:: python :lineno-start: 4 event_conv = mu.UtsusemiGetNeunetHistogram() 空蟬の関数(クラス)を使う準備(インスタンス作成)を行う。これ以降の設定や実行は *event_comv* に含まれるコマンドを実行することになる。 .. code-block:: python :lineno-start: 5 event_conv.SetRunNo( "123" ) *UtsusemiGetNeunetHistogram::SetRunNo* は引数として解析したいRun Numberを入れる。(詳細はリファレンスマニュアル参照のこと) .. code-block:: python :lineno-start: 6 event_conv.SetConversionParameter( "tof, 0.0, 40000.0, 20.0" ) *UtsusemiGetNeunetHistogram::SetConversionParameter* はヒストグラム化のパラメータである。ここでは #. 横軸の情報: Time of flight #. 横軸の範囲: 0.0 〜 40000.0 #. 横軸のbin幅: 20.0 とするパラメータを "tof, 0.0, 40000.0, 20.0" という形で与えている。(詳細はリファレンスマニュアル参照のこと) .. code-block:: python :lineno-start: 8 DAT = mm.ElementContainerMatrix() event_conv.SetElementContainerMatrix( DAT ) 最後に、ヒストグラムの入れ物である *ElementContainerMatrix* を空の状態で作成し、 *UtsusemiGetNeunetHistogram::SetElementContainerMatrix* 関数でデータを埋める。これを行って初めて実際にイベントデータが読み込まれてゆく。 ヒストグラムに含まれる情報 ===========================================