コマンドラインでの実行例#

Pythonターミナルの起動、イベントデータのヒストグラム化、ピクセルの積分の例

$ python3

>>> import DR
Manyo>>> import Cmm
Manyo>>>

上記のようにプロンプトが出て待機状態になる。この状態から前節で説明したコマンドを利用できる。

使用例

# ヒストグラム化
Manyo>>> dat = Cmm.GetNeunetHist(197,"tof,0,40000,100")

# DetectMap表示

Manyo>>> utsusemi.vis.DetectMap(dat)

# PSD_ID=1のTOF方向の全積分(横軸Pixel)ヒストグラム

Manyo>>> ec1 = Cmm.SumOfTOF(dat,1)

# 1Dプロッタ起動および表示

Manyo>>> import uGao.MPlot as mp
Manyo>>> plot=mp.MPlot()

# ヒストグラムの横軸30〜40の間の和を配列(Vector)で返す

Manyo>>> sum1 = ec1.Sum(30.,40.)

Manyo>>> print "Sum of Intensities and error = ",sum1[0],sum1[1]

# コマンドのヘルプを見たいとき(GetNeunetHistの場合)

Manyo>>> help(GetNeunetHist)

画面が切り替わり以下のようなメッセージが出る。この画面から抜けるにはqキーを押す。 1画面に収まらなかった場合はスペースキーを押すと続きが見られる。

------

Help on function GetHistogram in module ana.Reduction.BaseCommands:

GetHistogram(runNo=-1, paraFlag=1, pixelNo=-1, startPSD=-1,
endPSD=-1, startTOF=-1, endTOF=-1, binTOF=-1)

Load EventData and convert to histogram.

GetHistogram(runNo,paraFlag,pixelNo=-1,startPSD=-1,endPSD=-1,startTOF=-1,endTOF=-1,binTOF=-1)

@param runNo (int) Run Number
@param paraFlag (int) using parallel methods : 1, single methods : 0
@param pixelNo (int) the number of pixels on one PSD
@param startPSD (int) first PSD ID
@param endPSD (int) final PSD ID
@param startTOF (double) top TOF value to be selected
@param endTOF (double) end TOF value to be selected
@param binTOF (double) bin width of TOF
...

ElementContainerMatrixからの各ヒストグラムの取り出し方#

DatというElementContainerMatrixがあるとする。

x番目に登録されたElementContainerArrayをElementContainerMatrixから引き出し、ecaと名付ける。 .. code-block:: python

eca = Dat.Put(x)

ElementContainerArrayのy番目に登録されたElementContainerを取り出し、ecと名付ける。

ec = eca.Put(y)

各ピクセルのヒストグラムには、Pixel IDが割り振られている(メタ情報)。ただし、配列の順番通りにPSD IDやPixel IDが並んでいるとは限らない。(検索方法はある)。

ElementContainer(Array, Matrix)のメタ情報は、以下のメソッドで見ることができる。

ec.Dump()
eca.PutHeader().Dump()
Dat.PutHeader().Dump()

その他の便利なコマンド#

ElementContainer.Sum( x1, x2 )

ElementContainerに含まれるx,y,errorを用いて、x1〜x2の間のyの値の和とエラーを返す。戻り値はDoubleVector(配列のようなもの)であり、和とエラーは以下のように取り出す。

V=EC.Sum(100,200)

print "Intensity=",v[0],", Error=",v[1]

ElementContainer.Mul( c )

ElementContainerに含まれるx,y,errorのうち、yをc倍する。エラーの伝搬も自動的に行われる。戻り値は新しいElementContainerである。数値で規格化するときに用いると便利。

ElementContainerのより詳細な情報は#

MLFデータ解析フレームワーク”万葉ライブラリ”利用マニュアル

Tips#

Q & A編#

Q.

Cmm.SaveDataToDumpなどでファイルのパスを指定するところがあるんだけど、場所がわからないです。

A.

最初にSequencerを起動する場所、つまり、”Ana”とコマンドを打ったディレクトリがカレントディレクトリ、パス指定で言えば”./”となる。従って、起動時にあらかじめ自分のデータを置きたい場所に移動してから、Sequencerを起動するとパスの指定で悩む事はなくなるよ。

ただし、Mac版やWindows版では、このカレントディレクトリが非常にわかりにくいので、SequenceEditorにカレントディレクトリを指定する機能が付いているので、それであらかじめ指定しておくと良い。