コマンドラインでの実行例#
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のより詳細な情報は#
Tips#
Q & A編#
- Q.
Cmm.SaveDataToDumpなどでファイルのパスを指定するところがあるんだけど、場所がわからないです。
- A.
最初にSequencerを起動する場所、つまり、”Ana”とコマンドを打ったディレクトリがカレントディレクトリ、パス指定で言えば”./”となる。従って、起動時にあらかじめ自分のデータを置きたい場所に移動してから、Sequencerを起動するとパスの指定で悩む事はなくなるよ。
ただし、Mac版やWindows版では、このカレントディレクトリが非常にわかりにくいので、SequenceEditorにカレントディレクトリを指定する機能が付いているので、それであらかじめ指定しておくと良い。