コマンドラインでの実行例 ============================== **Pythonターミナルの起動、イベントデータのヒストグラム化、ピクセルの積分の例** .. code-block:: shell $ ipython …… ( Warning がでるが、気にせずともよい。) In[x]: import DR In[x]: import Cmm In[x]: import 上記のようにプロンプトが出て待機状態になる。この状態から前節で説明したコマンドを利用できる。 **使用例** .. code-block:: python # ヒストグラム化 In[x]: dat = Cmm.GetNeunetHist(197,"tof,0,40000,100") # DetectMap表示 In[x]: vis.DetectMap(dat) # PSD_ID=1のTOF方向の全積分(横軸Pixel)ヒストグラム In[x]: ec1 = Cmm.SumOfTOF(dat,1) # 1Dプロッタ起動および表示 In[x]: plot=vis.MPlot(ec)  # ヒストグラムの横軸30〜40の間の和を配列(Vector)で返す In[x]: sum1 = ec1.Sum(30.,40.) In[x]: print "Sum of Intensities and error = ",sum1[0],sum1[1] # コマンドのヘルプを見たいとき(GetNeunetHistの場合) In[x]: help(GetNeunetHist) 画面が切り替わり以下のようなメッセージが出る。この画面から抜けるにはqキーを押す。 1画面に収まらなかった場合はスペースキーを押すと続きが見られる。 .. code-block:: python ------ 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と名付ける。 .. code-block:: python ec = eca.Put(y) 各ピクセルのヒストグラムには、Pixel IDが割り振られている(メタ情報)。ただし、配列の順番通りにPSD IDやPixel IDが並んでいるとは限らない。(検索方法はある)。 ElementContainer(Array, Matrix)のメタ情報は、以下のメソッドで見ることができる。 .. code-block:: python ec.Dump() eca.PutHeader().Dump() Dat.PutHeader().Dump() その他の便利なコマンド ------------------------ **ElementContainer.Sum( x1, x2 )** ElementContainerに含まれるx,y,errorを用いて、x1〜x2の間のyの値の和とエラーを返す。戻り値はDoubleVector(配列のようなもの)であり、和とエラーは以下のように取り出す。 .. code-block:: python V=EC.Sum(100,200) print "Intensity=",v[0],", Error=",v[1] **ElementContainer.Mul( c )** ElementContainerに含まれるx,y,errorのうち、yをc倍する。エラーの伝搬も自動的に行われる。戻り値は新しいElementContainerである。数値で規格化するときに用いると便利。 Tips ================ Q & A編 ------- **Q.** Cmm.SaveDataToDumpなどでファイルのパスを指定するところがあるんだけど、場所がわからないです。 **A.** 最初にSequencerを起動する場所、つまり、"Ana"とコマンドを打ったディレクトリがカレントディレクトリ、パス指定で言えば"./"となる。従って、起動時にあらかじめ自分のデータを置きたい場所に移動してから、Sequencerを起動するとパスの指定で悩む事はなくなるよ。 ただし、Mac版やWindows版では、このカレントディレクトリが非常にわかりにくいので、SequenceEditorにカレントディレクトリを指定する機能が付いているので、それであらかじめ指定しておくと良い。 改定履歴 ======== 2016.08.18-25 コマンドリファレンスの構成の見直し。非弾性散乱に特化した部分を省き、共通コマンド+装置コマンドの並びにする予定。とりあえず共通コマンド部分をメインに作成する。 2016.02.15-16 Wordで作成されていたドキュメントのShpinxへ移行、解析環境とコマンドリファレンスの整合性の確認と修正 2010.07.27 これまでのマニュアルを元にリファレンスマニュアルとしての体裁を整えて初版として作成。