空蝉基本Python関数リファレンス

概要

空蝉基本Python関数とは、空蝉で実装されているデータ処理(イベントデータのヒストグラム化、データコンテナの扱い、共通の補正など)を行うためにPythonで作成された関数群を呼ぶ。一般に各装置で使用される関数、特にSequenceEditorで表示されるファサード関数は、この基本関数からの抜粋したもの、もしくは基本関数を組み合わせたり利用して作成したものとなる。

また、独自のファサード関数を作ったり、スクリプトを自作する場合にも参照できる。

基本関数の使い方

本節で示す関数は基本関数として用意されているものであり、実際にユーザーが直接利用することはないと思われる。しかし新しくファサード関数を作る際にこれらの関数を利用することもあるので、空蝉環境において直接実行する方法を示しておく。

>>> import ana.Reduction.BaseCommands as BC
>>> ec = BC.AverageAll( dat )
など

また、基本関数のうち、それぞれの装置で使用頻度の高いものは、あらかじめファサード Cmm モジュールにも登録されているので、それを使うことも可能である。

>>> import Cmm
>>> ec = Cmm.GetNeunetHist( \373", "hw,45.56,-4.0,40.0,0.2" )
など。

基本関数一覧

共通データ処理

関数 説明
AverageAll 与えたElementContainerMatrix内の全てのPixelの平均を取り一つのElementContainerに収める
CalcPhi ヒストグラム化された全Pixelのデータの位置情報からそれぞれのPixelのPolar角とAzimath角を 計算し収める
DoMask 与えたマスクファイルを用いてマスク処理を行う
DetectorEffi 検出器効率補正を行う
GetBeamCurrentFromECM ElementContainerMatrixからその測定中のProton Current [TP]の総和を返す
GetHistDQconstNeunetPsd 中性子イベントデータをdQ constantのヒストグラムに変換する
GetHistDTconstGatenetMon 中性子モニターのイベントデータをdT constantのヒストグラムに変換する
GetHistDTconstNeunetPsd 中性子イベントデータをdT constantのヒストグラムに変換する
GetHistToDTconstGatenetMon 中性子モニターのイベントデータをdT/T constantのヒストグラムに変換する
GetHistToDTconstNeunetPsd 中性子イベントデータをdT/T constantのヒストグラムに変換する
GetNeunetHist 与えたパラメータでイベントデータを処理しヒストグラムに変換する
GetPH PSDのヒストグラムから検出器の波高値を取り出す
NormByBeam イベントデータをヒストグラム化したElementContainerMatrixに対し、与えた測定時刻情報から Proton Currentで規格化する
NormByBeamCurrent イベントデータをヒストグラム化したElementContainerMatrixに対し、 Proton Currentで規格化する
PickUpRegion ElementContainerMatrixから特定の検出器領域を抜き出す
SolidAngleCorrection 立体角補正を行う
SumOfPixel ElementContainerMatrixから指定した検出領域の総和のヒストグラムを返す
SumOfTOF ElementContainerMatrixから指定した検出器内のPixelに対し、Time-of-Flight方向の和を取り 横軸Pixel-縦軸総和のElementContainerを返す
getBeamCurrent 与えた時刻情報からその期間中のProton Current [TP]の総和を返す

共通データファイル入出力処理

関数 説明
GetDataFromNeXus NeXusフォーマットファイルからデータを取り出す
LoadDataFromDump Dumpフォーマットファイルからデータを取り出す
LoadDataFromSPE SPEフォーマットファイルからデータを変換しElementContainerMatrixとして取り出す
LoadDataFromSrlz Manyoライブラリシリアライズフォーマットからデータを取り出す
OutPutAllPixelToTxt 与えたElementContainerMatrix内の全データをテキストファイルに書き出す
SaveDataToDump 与えたElementContainer, -Array, -MatrixのデータをDumpフォーマットに書き出す
SaveDataToNVASQ 与えたElementContainerMatrixデータをNovaSQ用のフォーマット(NeXus)に変換し書き出す
SaveDataToNeXus 与えたElementContainerMatrixデータをNeXusフォーマットに書き出す
SaveDataToSrlz 与えたElementContainer, -Array, -MatrixデータをManyoライブラリシリアライズフォーマット に書き出す
SaveDataToSPE 与えたElementContainerMatrixデータをSPEフォーマットに変換し書き出す

非弾性散乱用処理

関数 説明
BoseFactCorrEC ボーズ因子の補正をElementContainerに対し行う
BoseFactorCorrection ボーズ因子の補正を行う
FlexCalc エネルギー遷移変換後のデータに対し、与えた自由な式で強度の補正を行う
GetEi 与えたElementContainerMatrixデータの指定したPixelをビームモニターと見なし 入射エネルギーを計算する
GetEiFromEvent 指定したPixelをビームモニターと見なしイベントデータから最小限のヒストグラム化を行い、 入射エネルギーを計算する
KiKfCorrection ki/kf補正を行う
MakeWhiteVanCorr (未実装)White Vanadiumの測定データから補正用データを作成する
SavePowderDataToText Power平均を行ったデータをテキストファイルに書き出す
ToPowder ElementContainerMatrixデータのPowder平均をとる
TofToEnergyTransfer TOFのヒストグラムをエネルギー遷移のデータへ変換する
TofToEnergyTransferStrict TOFのヒストグラムをエネルギー遷移のデータへ変換する(明確なエネルギー範囲を指定可)
VisContMOutputFigure VisualContM上でのスライスを行い画像を保存する
VisContMOutputFileByPhi VisualContM上でのスライスを行い、D4Matrix用のバイナリファイルを作成する
WhiteVanCorr (未実装)White Vanadiumの補正用データでの補正

装置用処理・その他

関数 説明
AppendRawDataFiles 複数のRaw Data(イベントデータ)を結合し、別データとして保存する
CheckDataProcess データ処理の履歴管理用関数
CopyData 装置において、DAQ PC上のRaw Dataを解析PCへ集約・コピーする
CopyIroha2Params 装置において、IROHA2 PC上のLog, Paramデータを解析PCへ集約・コピーする
MakeRunList 装置において、Run No, 測定時間、温度、ゴニオ角度などの情報をリスト化する

共通データ処理関数

AverageAll

与えたElementContainerMatrix内の全てのPixelの平均を取り一つのElementContainerに収める。

AverageAll( dat, maskfile="None" )

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
maskfile 文字列 (yyy.txt/xxx.xml) マスクファイル名。内部でDoMask関数を実行する。 使用しない時は None を与える。 詳細は「DoMask」関数リファレンスを参照のこと。
     
戻り値   ElementContainer

CalcPhi

ヒストグラム化された全Pixelのデータの位置情報からそれぞれのPixelのPolar角とAzimath角を計算し収める。

CalcPhi(dat)

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
     
戻り値 無し (与えられたElementContainerMatrixの中身に追記)

DoMask

与えたマスクファイルを用いてマスク処理を行う。マスクファイルのフォーマットなど詳細は、別の章で行う( 「空蝉で使用するマスク処理について」 )。

DoMask(dat,filename="mask.txt")

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
filename 文字列 (yyy.txt/xxx.xml) マスクファイル名。このファイルは、 UTSUEMI_USR_DIR ( /opt/mlfsoft/python-utsusemi/XXX )内の ana/xml フォルダ内 もしくは、UTSUSEMI_USR_PRIV_HOME/ana/xml( ~/ana/xml )に存在しなければ ならない。 使用しない時は None を与える。 フォーマットの詳細は「空蝉で使用するマスク処理について」を参照のこと。
     
戻り値 無し (与えられたElementContainerMatrixの中身が置きかわる)

DetectorEffi

検出器補正を行う。検出器の構成情報はDetectorInfo.xmlに記述するものを使うので、それを引数で指定する必要がある。将来的には融合する。

DetectorEffi(dat, detInfo_file="DetectorInfo_Det.xml", det_name="SUS304-3He-PSD")

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
detInfo_file 文字列 検出器の構成情報のあるDetectorInfoファイルを指定する。
det_name 文字列 検出器の構成情報から補正に用いる検出器の定義名を指定する。
     
戻り値 無し (与えられたElementContainerMatrixの中身が置きかわる)

GetBeamCurrentFromECM

ElementContainerMatrixからその測定中のProton Current [TP]の総和を返す。

GetBeamCurrentFromECM(dat,offset_sec=0.0,isCT8Neutron=False)

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
offset_sec 実数 Proton Currentを計算するための測定時間はヒストグラムデータのヘッダ情報を 用いるが、それがずれていた場合にそのオフセット時間を[秒]で補正する。 通常は、0.0。データの測定時間にオフセット時間を加えたものを真の時刻とする。
isCT8Neutron bool (True or False) 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮した モード(CT8Neutron)を利用するときにTrueとする。
     
戻り値 実数 ProtonCurrentの総数。

GetHistDQconstNeunetPsd

中性子イベントデータをdQ constantのヒストグラムに変換する。

GetHistDQconstNeunetPsd( runNo=0,Qrange="0.1 10.0",deltaQ=0.1,detRange="-1 -1",NumOfPixel=Def_NumOfPixel,timeRange="-1 -1",frameBoundary=0.0, inVect="0.0 0.0 1.0" )

パラメータ フォーマット 説明
runNo 整数 与えるElementContainerMatrix
QRange 文字列 ヒストグラム上のQの範囲。Qの最小値と最大値をスペース区切りで表記。 ( <Qmin> <Qmax> )
deltaQ 実数 Qのbin幅。
detRange 文字列 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記。
NumOfPixel 整数 1検出器(PSD)あたりのPixel数。
timeRange 文字列 時間スライスの指定。時間の範囲(最小値と最大値)をスペース区切りで表記。 単位は測定開始時刻からの秒数。
frameBoundary 実数 セカンドフレーム使用時の境界となるTOF値。
inVect 文字列 入射中性子の入射ベクトル。ベクトルをVx Vy Vzの成分(大きさは適当)で表記。 単位はmm。スペース区切りで表記。
     
戻り値 ElementContainerMatrix ElementContainerMatrix。

GetHistDTconstGatenetMon

中性子モニターのイベントデータをdT constantのヒストグラムに変換する。

GetHistDTconstGatenetMon( runNo=0,tofRange="0.0 40000.0",binTOF=10.0,detRange="-1 -1",NumOfPixel=4,timeRange="-1 -1",frameBoundary=0.0 )

パラメータ フォーマット 説明
runNo 整数 与えるElementContainerMatrix
tofRange 文字列 ヒストグラム上のTOFの範囲。TOFの範囲(最小値と最大値)スペース区切りで表記。 ( <TOFmin> <TOFmax> )
binTOF 実数 TOF方向のbin幅。
detRange 文字列 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記。
NumOfPixel 整数 1検出器(PSD)あたりのPixel数。
timeRange 文字列 時間スライスの指定。時間の範囲(最小値と最大値)をスペース区切りで表記。 単位は測定開始時刻からの秒数。
frameBoundary 実数 セカンドフレーム使用時の境界となるTOF値。
     
戻り値 ElementContainerMatrix ElementContainerMatrix。

GetHistDTconstNeunetPsd

中性子イベントデータをdT constantのヒストグラムに変換する。

GetHistDTconstNeunetPsd( runNo=0,isTimeFoc=True,tofRange="0.0 40000.0",binTOF=10.0,detRange="-1 -1",NumOfPixel=Def_NumOfPixel,timeRange="-1 -1",frameBoundary=0.0 )

パラメータ フォーマット 説明
runNo 整数 与えるElementContainerMatrix
isTimeFoc bool (True or False) ヒストグラム化時に、Time Focusingを行うかどうか。
tofRange 文字列 ヒストグラム上のTOFの範囲。TOFの範囲(最小値と最大値)スペース区切りで表記。 ( <TOFmin> <TOFmax> )
binTOF 実数 TOF方向のbin幅。
detRange 文字列 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記。
NumOfPixel 整数 1検出器(PSD)あたりのPixel数。
timeRange 文字列 時間スライスの指定。時間の範囲(最小値と最大値)をスペース区切りで表記。 単位は測定開始時刻からの秒数。
frameBoundary 実数 セカンドフレーム使用時の境界となるTOF値。
     
戻り値 ElementContainerMatrix ElementContainerMatrix。

GetHistToDTconstGatenetMon

中性子モニターのイベントデータをdT/T constantのヒストグラムに変換する。

GetHistToDTconstGatenetMon( runNo=0,tofRange="0.0 40000.0",racio=0.01,detRange="-1 -1",NumOfPixel=4,timeRange="-1 -1",frameBoundary=0.0 )

パラメータ フォーマット 説明
runNo 整数 与えるElementContainerMatrix
tofRange 文字列 ヒストグラム上のTOFの範囲。TOFの範囲(最小値と最大値)スペース区切りで表記。 ( <TOFmin> <TOFmax> )
retio 実数 deltaT/T Constの値を指定する。
detRange 文字列 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記。
NumOfPixel 整数 1検出器(PSD)あたりのPixel数。
timeRange 文字列 時間スライスの指定。時間の範囲(最小値と最大値)をスペース区切りで表記。 単位は測定開始時刻からの秒数。
frameBoundary 実数 セカンドフレーム使用時の境界となるTOF値。
     
戻り値 ElementContainerMatrix ElementContainerMatrix。

GetHistToDTconstNeunetPsd

中性子イベントデータをdT/T constantのヒストグラムに変換する。

GetHistToDTconstNeunetPsd( runNo=0,isTimeFoc=True,tofRange="0.0 40000.0",racio=0.01,detRange="-1 -1",NumOfPixel=Def_NumOfPixel,timeRange="-1 -1",frameBoundary=0.0 )

パラメータ フォーマット 説明
runNo 整数 与えるElementContainerMatrix
isTimeFoc bool (True or False) ヒストグラム化時に、Time Focusingを行うかどうか。
tofRange 文字列 ヒストグラム上のTOFの範囲。TOFの範囲(最小値と最大値)スペース区切りで表記。 ( <TOFmin> <TOFmax> )
retio 実数 deltaT/T Constの値を指定する。
detRange 文字列 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記。
NumOfPixel 整数 1検出器(PSD)あたりのPixel数。
timeRange 文字列 時間スライスの指定。時間の範囲(最小値と最大値)をスペース区切りで表記。 単位は測定開始時刻からの秒数。
frameBoundary 実数 セカンドフレーム使用時の境界となるTOF値。
     
戻り値 ElementContainerMatrix ElementContainerMatrix。

GetNeunetHist

与えたパラメータでイベントデータを処理しヒストグラムに変換する。 イベントデータのヒストグラム化を行うための総合的な関数である。イベントデータをヒストグラム化するために必要な設定(ヒストグラム軸設定、検出器の範囲設定やディスクリ値の変更など)のうち、もっとも初期のころから実装していた機能をまとめて行えるようにした。これまでのいろいろなヒストグラム化にまつわる関数はすべてこれで置き換える方針。これまで個別に設定していたパラメータを設定ごとにまとめて指定(文字列として)することで、トータルのパラメータの個数を減らした。この関数も実際にはもう少し用途に特化した関数に組み込む予定(DR.GetDataOfMonochroEi2のように)なので、ユーザーが直接これを使うことは無いと思われる。

GetNeunetHist( <runNo>, <HistParam>, <DetRange>, <DetParam>, <TimeRange>, <FrameInfo>, <MaskInfo>, <CaseInfo>, <BGInfo>, <TofShift>, <AnaMode>, <ParamFiles>, <Options> )

簡単な使用例

from ana.Reduction.BaseCommands import GetNeunetHist
DAT = GetNeunetHist( "1234", "hw,45.56,-4.0,45.0,0.2", "All" )

推奨される使用例(パラメータ名を具体的に示す)

DAT = GetNeunetHist( runNo="1234", HistParam="hw,45.56,-4.0,45.0,0.2", DetRange="All" )

指定パラメータ

パラメータ フォーマット 説明
runNo 文字列 (String) ヒストグラム化するRun number。カンマ区切りで複数のRun numberを指定可能。
HistParam 文字列(下記参照) 作りたいヒストグラム(軸)の情報
DetRange 文字列(下記参照) 使用する検出器の範囲とPixel数設定
DetParam 文字列(下記参照) 検出器の種類とPulse Height設定
TimeRange 文字列(下記参照) 使用する時間情報
FrameInfo 文字列(下記参照) 使用するフレーム情報
MaskInfo 文字列(下記参照) 検出器に対するマスク処理設定
CaseInfo 文字列(下記参照) CaseInfoファイルの指定(0.3.6より実装)
BGInfo 文字列(下記参照) 各種バックグラウンドの指定(現状は時間依存性のTOFバックグラウンドのみ)
TofShift 文字列(下記参照) TOF原点をLambdaに応じてシフトさせる場合に用いる(現状BL11用のみ)
AnaMode 文字列(下記参照) 使用するWiringInfoとDetectorInfoの組み合わせのパターンを指定する
ParamFiles 文字列(下記参照) WiringInfoとDetectorInfoを個別に与える
Options 文字列(下記参照) その他の設定
     
戻り値   ElementContainerMatrix

パラメータのフォーマット

それぞれのパラメータのフォーマットを以下に示す。

HistParam
フォーマット ヒストグラムの横軸
tof, <min>, <max>, <delta> TOF(Δt 一定) tof, 0, 40000, 100
rtof, <min>, <max>, <delta> TOF(Δt/t 一定) tof, 100, 40000, 0.5
tf-tof, <min>, <max>, <delta> TOF(Δt 一定 with Time focusing) tf-tof, 0, 40000, 10
tf-rtof, <min>, <max>, <racio> TOF(Δt/t 一定 with Time focusing) tf-rtof, 100, 40000, 0.5
lambda, <min>, <max>, <delta> 波長(Δλ 一定) lambda, 0.7, 7.4, 0.1
rlambda, <min>, <max>, <racio> 波長(Δλ/λ 一定) rlambda, 0.7, 7.4, 0.05
energy, <min>, <max>, <delta> エネルギー energy, 1.0, 100.0, 0.5
q, <min>, <max>, <delta> 運動量遷移 q, 0.1, 5.0, 0.05
hw, <Ei>, <min>, <max>, <delta> エネルギー遷移 hw, 45.56, -4.0, 45.0, 0.2
d, <min>, <max>, <delta> d値 d, 0.1, 5.0, 0.1
DetRange
フォーマット 意味
All 全部の検出器をデフォルトで用いる All
All:<num> 1本あたりのPixel数を<num>に変更し、全部の検出器を用いる。 セパレータにコロンを使用。 All:500
<first-Id> - <last-Id> <first-Id>から<last-Id>までの検出器を用いる。 ハイフンをしきりとする。 32-64
<first-Id> - <last-Id>:<num> <first-Id>から<last-Id>までの検出器を、Pixel数<num>で用いる。 ハイフンとコロンをしきりとする。 32-64:240

<first-Id> - <last-Id>,

<first-Id> - <last-Id>,

複数の検出器領域を一度に指定する。カンマ区切り。 32-64,102-148

<first-Id> - <last-Id>:<num>,

<first-Id> - <last-Id>:<num>,

複数の検出器領域をPixel数とともに指定する。カンマ区切り。 32-64:500,102-148:250
DetParam
フォーマット 意味
<DetType>

<DetType>で指定した検出器のヒストグラム化を行う。 現状、以下の二つだけ指定できる。

PSD : PSD

MON : N2 monitor

PSD
<DetType>[<LLD>:<HLD>] 上記に加え、Pulse Heightの指定を行う。<LLD>のみ書くことも可能。 PSD[550:4096]
<DetType>-PH

<DetType>で指定した検出器のヒストグラム化を行うが、 同時にPulse Heightの情報も作成する。

これは実際にヒストグラム化されたイベントのPulse Heightを収集する。

PSD-PH

PSD-PH

TimeRange
フォーマット 意味
All 全時間を使用する All
<startTime>,<endTime> <startTime>から<endTime>までの時間を切り出して使用する。 単位は秒。カンマ区切り。 3600, 7200
<startTime>,<endTime>

<startTime>から<endTime>までの時刻を切り出して使用する。 時刻のフォーマットは下記。カンマ区切り。(未実装)

YYYY/MM/DD hh:mm:ss

2014/01/01 10:00:00, 2014/01/02 12:00:00
FrameInfo
フォーマット 意味
None 指定なし None
<frame_No>,<boundary> <frame_No>番目のフレームを,<boundary>のTOFを境目として利用(非推奨) 2, 9000
<unit>,<boundary>

単位 <unit> で指定された値 <boundary> を境目として利用する。

(<unit>: tof [micro-sec], lambda [1/A], energy [meV], ei [meV] )

( version 0.3.6 以降)

tof, 9000

energy,50.0

MaskInfo
フォーマット 意味
NoFile (Noneでも良い) マスクファイルを使用せず、かつTOF方向のマスクも使用しない時。 NoFile , None
NoFile,<tof1>-<tof2> マスクファイルは使用しないが、TOF方向のマスクを使用する場合に用いる。 範囲をハイフンでつなぐ。複数のマスク領域がある場合は、カンマでつなぐ。 None,0.0-1500.0
<Path/to/MaskFile>

<Path/to/MaskFIle>が完全なパス指定であれば、そのファイルを使用する。 ファイル名だけであれば、

${UTSUSEMI_USR_DIR}/ana/xml ( /opt/mlfsoft/python-utsusemi/XXX/ana/xml )

${UTSUSEMI_USR_PRIV_HOME}/ana/xml ( ~/ana/xml )

を探す。最新のmask.xmlも以前のmask.txtも使用可能。

mask.xml ,mask.txt
<MaskFile>,<tof1>-<tof2> マスクファイルを指定し、かつTOF方向のマスクを使用する場合に用いる。 mask.xml,0.0-100.0,200.0-1000.0
CaseInfo
フォーマット 意味
None 指定なし  
<Path/to/CaseInfoFile>

<Path/to/CaseInfoFIle>が完全なパス指定であれば、そのファイルを使用する。 ファイル名だけであれば、

${UTSUSEMI_USR_DIR}/ana/xml ( /opt/mlfsoft/python-utsusemi/XXX/ana/xml )

${UTSUSEMI_USR_PRIV_HOME}/ana/xml ( ~/ana/xml )

を探す。

CaseInfo.xml
BGInfo
フォーマット 意味
TIMEDEP:None 指定なし  
TIMEDEP:<tof1>-<tof2> <tof1>-<tof2>で指定したTOF領域を時間依存性のあるバックグランドとみなし 全Pixelの全TOF領域から差し引く補正を行う。 TIMEDEP:35000-39999
TofShift
フォーマット 意味
None TOF 原点シフトを行わない場合。 None
<ptnId> [,A1,A2,A3,A4,A5]

TOF原点シフトを行う場合に用いる。TOFの原点シフトは波長依存の式で表されている。

ptnId = 0 : 使用しない(Noneと同じ)

ptnId = 1 : A1/(exp(-A2*(lambda-A3))+A4)+(A5*lamda) [BL11 only]
(Default A1=5.0, A2=8.464, A3=2.08765, A4=1.23477, A5=5.32657)

ptnId > 1 : 現状モデルなし

1,5.0,8.464,2.0,1.3.5.4
AnaMode

AnaModeは、ヒストグラム化の時に使用するWiringInfoとDetectorInfoのひな形をペアとして、簡単にひな形を変更するのに使用する。このひな形のペアは、${UTSUSEMI_USR_DIR}/ana/xml/environ_ana.xmlに記載してある必要がある。

フォーマット 意味
<mode> モードの番号 0
ParamFiles
フォーマット 意味
<WiringInfo>,<DetectorInfo>

environ_ana.xmlの情報を無視して、 直接パラメータファイル名を指定する。

ファイル名が-(ハイフン)の時はenviron_ana.xmlの情報を利用する。 どちらかだけが-(ハイフン)でも良い。 一方完全なパス指定であればそれを利用する。 ファイル名だけであれば、

${UTSUSEMI_USR_DIR}/ana/xml ( /opt/mlfsoft/python-utsusemi/XXX/ana/xml )

${UTSUSEMI_USR_PRIV_HOME}/ana/xml ( ~/ana/xml )

を探す。

WiringInfo.xml,-

WiringInfo.xml,DetectorInfo.xml

Options
フォーマット 意味
None 指定なし None
ISCHECKPULSEID:<bool> イベントデータファイル間のそれぞれのPulseIdに整合性があることを チェックするかどうかを指定する。<bool>はTrue(デフォルト) かFalse。 ISCHECKPULSEID:False

具体的な使用例

  1. run numberが123のデータを、Ei=50.0 meV, hw= -5.0から48 meVまで0.1刻みでヒストグラム化したい場合

    from ana.Reduction.BaseCommands import GetNeunetHist
    DAT=GetNeunetHist("123","hw,50.0,-5.0,48.0,0.1")
    
  2. 1.の条件で、測定開始から10分(600秒)までのイベントデータのヒストグラム化を行いたい場合

    DAT=GetNeunetHist("123","hw,50.0,-5.,48.,0.1", "All","0,600")
    
    or
    
    DAT=GetNeunetHist("123","hw,50.0,-5.0,48.0,0.1", TimeRange="0,600" )
    

    パラメータは省略可能(デフォルト値が使用される)だが、それ以降のパラメータを個別に指定するには必ず「パラメータ名=値」という書き方をする必要がある。(Pythonのお作法)

  3. 1.の条件で、pulse heightの領域を 1200〜4096にしたい場合

    DAT=GetNeunetHist("1000","hw,50.0,-5.0,48.0,0.1", DetParam="psd,1200,4096" )
    
  4. run numberが234のデータで、横軸がd値(範囲0.5〜5.0,幅0.01)のヒストグラム化を行いたい場合

    DAT=GetNeunetHist("234","d,0.5,5.0,0.01")
    
  5. run numberが234のデータで、横軸がd値(範囲0.5〜5.0,幅0.01)のヒストグラム化の時のPulse Heightを確認したい場合

    from ana.Reduction.BaseCommands import GetNeunetHist, GetPH
    DAT=GetNeunetHist("234","d,0.5,5.0,0.01", DetParam="psd-ph")
    ECS = GetPH( DAT )
    

    —> 可視化ソフトウェアのM2Plotで確認可能

GetPH

PSDのヒストグラムから検出器の波高値を取り出す。

GetPH(dat, binSize=1)

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix (PulseHeightの解析も行う設定でヒストグラム化)
binSize 整数 波高値の横軸のbin幅を指定する。
     
戻り値 ElementContainerArray
それぞれの検出器(PSD)の波高分布が個別のElementContainerに格納されている。
戻り値はそのままM2Plotで表示できる。

NormByBeam

イベントデータをヒストグラム化したElementContainerMatrixに対し、与えた測定時刻情報からProton Currentで規格化する。

NormByBeam(dat,start_day="2009/5/30", start_time="10:00:00", end_day="2009/5/30", end_time="11:00:00", factor=1.0, offset_sec=0.0, isCT8Neutron=False )

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
start_day 文字列 測定開始日。フォーマットは YYYY/MM/DD。
start_time 文字列 測定開始時刻。フォーマットは hh:mm:ss。
end_day 文字列 測定終了日。フォーマットは YYYY/MM/DD。
end_time 文字列 測定終了時刻。フォーマットは hh:mm:ss。
factor 実数 Proton Currentによる規格化の値をfactorで割る。 Proton Currentの値は大抵データの強度に対し大きすぎるので、 このfactorで規格化の値を割り、その値で強度を割る。割り戻しの値。 なお、負の値を入力すると、Proton Currentの値は用いず、入力値の絶対値で強度の 割り算(規格化)を行う。
offset_sec 実数 Proton Currentを計算するための測定時間はヒストグラムデータのヘッダ情報を 用いるが、それがずれていた場合にそのオフセット時間を[秒]で補正する。 データの測定時間にオフセット時間を加えたものを真の時刻とする。通常は、0.0。
isCT8Neutron bool (True or False) 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮した モード(CT8Neutron)を利用するときにTrueとする。
     
戻り値 無し (与えられたElementContainerMatrixの中身が置きかわる)

NormByBeamCurrent

イベントデータをヒストグラム化したElementContainerMatrixに対しProton Currentで規格化する。

NormByBeamCurrent(dat,factor=1000.0,offset_sec=0.0,isCT8Neutron=False )

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
factor 実数 Proton Currentによる規格化の値をfactorで割る。 Proton Currentの値は大抵データの強度に対し大きすぎるので、 このfactorで規格化の値を割り、その値で強度を割る。割り戻しの値。 なお、負の値を入力すると、Proton Currentの値は用いず、入力値の絶対値で強度の 割り算(規格化)を行う。
offset_sec 実数 Proton Currentを計算するための測定時間はヒストグラムデータのヘッダ情報を 用いるが、それがずれていた場合にそのオフセット時間を[秒]で補正する。 データの測定時間にオフセット時間を加えたものを真の時刻とする。通常は、0.0。
isCT8Neutron bool (True or False) 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮した モード(CT8Neutron)を利用するときにTrueとする。
     
戻り値 無し (与えられたElementContainerMatrixの中身が置きかわる)

PickUpRegion

ElementContainerMatrixから特定の検出器領域を抜き出す。

PickUpRegion(Target, PSD_min=1, PSD_max=1, Pixel_min=1, Pixel_max=1)

パラメータ フォーマット 説明
Target ElementContainerMatrix 与えるElementContainerMatrix
PSD_min 整数 検出器範囲の最小値(DetId)。
PSD_max 整数 検出器範囲の最大値(DetId)。
Pixel_min 整数 検出器範囲のPixel最小値(PixelNo)。
Pixel_max 整数 検出器範囲のPixel最大値(PixelNo)。
     
戻り値 ElementContainerMatrix ElementContainerMatrix

SolidAngleCorrection

立体角補正を行う。

SolidAngleCorrection(dat,dS=-1.0)

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
dS 実数 各Pixelの立体角をこの値で規格化する。-1.0の時はその装置のデフォルト値。
     
戻り値 無し (与えられたElementContainerMatrixの中身が置きかわる)

SumOfPixel

ElementContainerMatrixから指定した検出領域の総和のヒストグラムを返す。

SumOfPixel(Target, PSD_min=1, PSD_max=1, Pixel_min=1, Pixel_max=1)

パラメータ フォーマット 説明
Target ElementContainerMatrix 与えるElementContainerMatrix
PSD_min 整数 検出器範囲の最小値(DetId)。
PSD_max 整数 検出器範囲の最大値(DetId)。
Pixel_min 整数 検出器範囲のPixel最小値(PixelNo)。
Pixel_max 整数 検出器範囲のPixel最大値(PixelNo)。
     
戻り値 ElementContainer ElementContainer

SumOfTOF

ElementContainerMatrixから指定した検出器内のPixelに対し、Time-of-Flight方向の和を取り、横軸Pixel-縦軸総和のElementContainerを返す。

SumOfTOF(Target, PSD=1, tof_min=0, tof_max=40000)

パラメータ フォーマット 説明
Target ElementContainerMatrix 与えるElementContainerMatrix
PSD 整数 対象となる検出器(DetId)。
tof_min 実数 積算するTOF領域の最小値(PixelNo)。
tof_max 実数 積算するTOF領域の最大値(PixelNo)。
     
戻り値 ElementContainer ElementContainer

getBeamCurrent

与えた時刻情報からその期間中のProton Current [TP]の総和を返す。

getBeamCurrent(start_day="2009/5/30", start_time="10:00:00", end_day="2009/5/30", end_time="11:00:00", offset_sec=0.0, isCT8Neutron=False )

パラメータ フォーマット 説明
start_day 文字列 測定開始日。フォーマットは YYYY/MM/DD 。
start_time 文字列 測定開始時刻。フォーマットは hh:mm:ss 。
end_day 文字列 測定終了日。フォーマットは YYYY/MM/DD 。
end_time 文字列 測定終了時刻。フォーマットは hh:mm:ss 。
offset_sec 実数 Proton Currentを計算するための測定時間はヒストグラムデータのヘッダ情報を 用いるが、それがずれていた場合にそのオフセット時間を[秒]で補正する。 データの測定時間にオフセット時間を加えたものを真の時刻とする。通常は、0.0。
isCT8Neutron bool (True or False) 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮した モード(CT8Neutron)を利用するときにTrueとする。
     
戻り値 実数値 プロトン数を返す。 [TP(テラプロトン)]

共通データファイル入出力処理

GetDataFromNeXus

NeXusフォーマットファイルからデータを取り出す。

GetDataFromNeXus(path="./",filename="Sample.nx")

パラメータ フォーマット 説明
path 文字列 NeXusファイルの入っているフォルダへの絶対パス。
filename 文字列 対象となるNeXusファイルの名前。
     
戻り値 ElementContainer, ELementContainerArray, ElementContainerMatrix ElementContainer, ElementContainerArray, ElementContainerMatrix (NeXusファイルに含まれているデータに依存する。)

LoadDataFromDump

Dumpフォーマットファイルからデータを取り出す。

LoadDataFromDump(path="./",filename="Sample.dmp")

パラメータ フォーマット 説明
path 文字列 Dumpファイルの入っているフォルダへの絶対パス。
filename 文字列 対象となるDumpファイルの名前。
     
戻り値 ElementContainer, ELementContainerArray, ElementContainerMatrix ElementContainer, ElementContainerArray, ElementContainerMatrix (Dumpファイルに含まれているデータに依存する。)

LoadDataFromSPE

SPEフォーマットファイルからデータを変換しElementContainerMatrixとして取り出す。通常、SPEファイルは、yyyyy.SPEとyyyyy.PHXという二つのファイルによって構成されている。この関数では、両方のファイルの共通部分であるyyyyy部分を与えることで、両方のファイルを読み込む。

LoadDataFromSPE(path="./",spefile="Sample.spe", Ei=100.0, num_of_pixels=100, runNo="XXX000001")

パラメータ フォーマット 説明
path 文字列 SPEファイル、及びPHXファイルの入っているフォルダへの絶対パス。
filename 文字列 対象となるSPEファイル名とPHXファイル名の拡張子を省いた部分。
     
戻り値 ElementContainerMatrix ElementContainerMatrix。このファイルは空蝉のデータに変換済みであるので、 空蝉の可視化ソフトウェアなどで利用できる。

LoadDataFromSrlz

Manyoライブラリシリアライズフォーマットからデータを取り出す。

LoadDataFromSrlz(path="./",filename="Sample.srlz",DataType="ECM")

パラメータ フォーマット 説明
path 文字列 シリアライズフォーマットファイルの入っているフォルダへの絶対パス。
filename 文字列 対象となるシリアライズフォーマットファイルの名前。
     
戻り値 ElementContainer, ELementContainerArray, ElementContainerMatrix ElementContainer, ElementContainerArray, ElementContainerMatrix (シリアライズフォーマットファイルに含まれているデータに依存する。)

OutPutAllPixelToTxt

与えたElementContainerMatrix内の全データをテキストファイルに書き出す。それぞれのPixelは

runNNNNNN_DDD_PPP.txt NNNNNNは、Run Number, DDDはElementContainerMatrix内のElementContainerArrayの順番、PPPはElementContainerArray内のElementContainerの順番。 例としては、 run123456_123_456.txt となる

OutPutAllPixelToTxt(dat, filepath="")

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
filepath 文字列 保存先のフォルダへの絶対パス。
     
戻り値 無し  

SaveDataToDump

与えたElementContainer, -Array, -MatrixのデータをDumpフォーマットに書き出す。

SaveDataToDump(dat, path="./",filename="Sample.dmp")

パラメータ フォーマット 説明
dat ElementContainer, ELementContainerArray, ElementContainerMatrix 与えるElementContainer, -Array, -Matrix
path 文字列 保存先のフォルダへの絶対パス。
filename 文字列 保存ファイル名。命名ルールとして拡張子に.dmpをつけること。
     
戻り値 無し  

SaveDataToNVASQ

与えたElementContainerMatrixデータをNovaSQ用のフォーマット(NeXus)に変換し書き出す。

SaveDataToNVASQ(dat, path="./",filename="Sample.nx",L1=25000.0,px=15000.0,py=0.0,pz=0.0)

パラメータ フォーマット 説明
dat ElementContainer, 与えるElementContainer
path 文字列 保存先のフォルダへの絶対パス。
filename 文字列 保存ファイル名。命名ルールとして拡張子に.nxをつけること。
L1 実数 L1 [mm]
px 実数 Pixel位置のx座標 [mm]
py 実数 Pixel位置のy座標 [mm]
pz 実数 Pixel位置のz座標 [mm]
     
戻り値 無し  

SaveDataToNeXus

与えたElementContainerMatrixデータをNeXusフォーマットに書き出す。

SaveDataToNeXus(dat, name="Data",path="./",filename="Sample.nx")

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
name 文字列 NeXusフォーマット内の所有者の名前。
path 文字列 保存先のフォルダへの絶対パス。
filename 文字列 保存ファイル名。命名ルールとして拡張子に.nxをつけること。
     
戻り値 無し  

SaveDataToSrlz

与えたElementContainer, -Array, -MatrixデータをManyoライブラリシリアライズフォーマットに書き出す。

SaveDataToSrlz(dat, path="./",filename="Sample.srlz")

パラメータ フォーマット 説明
dat ElementContainer, ELementContainerArray, ElementContainerMatrix 与えるElementContainer, -Array, -Matrix
path 文字列 保存先のフォルダへの絶対パス。
filename 文字列 保存ファイル名。命名ルールとして拡張子に.dmpをつけること。
     
戻り値 無し  

SaveDataToSPE

与えたElementContainerMatrixデータをSPEフォーマットに変換し書き出す。通常、SPEファイルは、yyyyy.SPEとyyyyy.PHXという二つのファイルによって構成されている。この関数では、両方のファイルの共通部分であるyyyyy部分を与えることで、両方のファイルを書き出す。

SaveDataToSPE(dat, path="./",filename="Sample"):

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
path 文字列 保存先のフォルダへの絶対パス。
filename 文字列 保存ファイル名。命名ルールとして拡張子はつけない。
     
戻り値 無し  

非弾性散乱用処理

BoseFactCorrEC

ボーズ因子の補正を行う。対象は一つのPixelのデータElementContainer。

BoseFactCorrEC(dat,T=300.0)

パラメータ フォーマット 説明
dat ElementContainer 与えるElementContainer
T 実数 ボーズ因子補正に用いる温度[K]
     
戻り値 無し (与えられたElementContainerの中身が置きかわる)

BoseFactorCorrection

ボーズ因子の補正をElementContainerMatrixに対し行う。

BoseFactorCorrection( dat,T=300.0)

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
T 実数 ボーズ因子補正に用いる温度[K]
     
戻り値 無し (与えられたElementContainerMatrixの中身が置きかわる)

FlexCalc

エネルギー遷移変換後のデータに対し、与えた自由な式で強度の補正を行う。

FlexCalc(dat,Intensity="",Error="")
パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
Intensity 文字列 強度を補正する式。フォーマットは下記。
Error 文字列 エラーを補正する式。フォーマットは下記。
     
戻り値 ElementContainerMatrix 補正を終えたElementContainerMatrix。
補正式の書き方

補正式に用いることのできる記号は以下の通り

パラメータ 説明
I 強度
Err エラー値
hw エネルギー遷移
Q 与えられたElementContainerMatrixがPowderの時
Qx, Qy, Qz 与えられたElementContainerMatrixが単結晶の時

これらを使って、Pythonで扱うことのできる形で式を記述する。例えば下記のように表現する。

I/hw*Q*Q

GetEi

与えたElementContainerMatrixデータの指定したPixelをビームモニターと見なし入射エネルギーを計算する。

GetEi(dat, expEi=50.0, MonPsd=0,MonPixel=0, L1=Def_L1, T0shift=0.0, FittingType=0, Debug=0)
パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
expEi 実数 予期する入射エネルギー[meV]。
MonPsd 整数 ビームモニターとみなす検出器Id。
MonPixel 整数 ビームモニターとみなす検出器部位の番号。
L1 実数 L1 [m] :線源と試料との間の距離.
T0Shift 実数 TOFの原点のオフセット値 [micro-sec]。
FittingType 整数 フィッティング関数の種類。0:Gaussian (今はこれだけ)
Debug 整数 デバッグモードオフ:0、オン:1。
     
戻り値 無し  

GetEiFromEvent

指定したPixelをビームモニターと見なしイベントデータから最小限のヒストグラム化を行い、入射エネルギーを計算する。

GetEiFromEvent(runNo=0, expEi="0.0", PSD="-1", PIXEL="-1",NumOfPixel=100, Resolution=0.5,PlotFlag=0)
パラメータ フォーマット 説明
runNo 整数 ヒストグラム化するRunNo。
expEi 文字列 予期する入射エネルギー[meV]。複数同時指定可能(カンマ区切り)。
MonPsd 文字列 ビームモニターとみなす検出器Id。
MonPixel 文字列 ビームモニターとみなす検出器部位の番号。
NumOfPixel 整数 1検出器あたりのPixel数。
Resolution 実数 横軸のBinningの幅の割合 [%]。Resulusion*Ei/100.0 = binning of TOF
PlotFlag 整数 フィッティング結果をMPlotに出すかどうか:しない(0)、する(1)
     
戻り値 無し  

KiKfCorrection

ki/kf補正を行う。

KiKfCorrection(dat)
パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
     
戻り値 無し (与えられたElementContainerの中身が置きかわる)

MakeWhiteVanCorr

(未実装)White Vanadiumの測定データから補正用データを作成する。

SavePowderDataToText

与えたElementContainerMatrixデータをテキストファイルに書き出す。

SavePowderDataToText(dat,deltaQ=0.0, path="./",filename="Sample.txt")

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
deltaQ 実数 Q軸のbin幅。
path 文字列 データファイルを入れるフォルダ名(デフォルトの ./ はカレントディレクトリ)
filename 文字列 データファイル名。
     
戻り値 無し  

ToPowder

非弾性散乱ElementContainerMatrixデータのPowder平均をとる。Qの範囲とbin幅はElastic軸(Energy Transfer = 0.0)上のものを指定する。戻り値のデータは、QのbinごとにElementContainerに保存され、それらを一つのElementContainerArrayに入れ、ElementContainerMatrixに入れている。

ToPowder(dat,startQ=-1.0,endQ=-1.0,deltaQ=0.0)

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
startQ 実数 Q軸の範囲の最小値。 -1.0 はデータにおける最小値を利用。
endQ 実数 Q軸の範囲の最大値。 -1.0 はデータにおける最大値を利用。
deltaQ 実数 Q軸のbin幅。
     
戻り値 ElementContainerMatrix ElementContainerArrayが一つ入っている。

TofToEnergyTransfer

TOFのヒストグラムをエネルギー遷移のデータへ変換する。

TofToEnergyTransfer(dat,Ei=-1.0,L1=Def_L1,t0shift=0.0,deltaE=0.0,EminRate=0.9,EmaxRate=0.9)

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
Ei 実数 入射エネルギー [meV]
L1 実数 L1 [m] :線源と試料との間の距離.。
t0shift 実数 TOFの原点のオフセット値 [micro-sec]。
deltaE 実数 Energy Transfer軸のbin幅 [meV]。
EminRate 実数 Energy Transfer軸の最小値をEiの割合(0.0< EminRate <1.0)で示したもの。
EmaxRate 実数 Energy Transfer軸の最大値をEiの割合(0.0< EmaxRate <1.0)で示したもの。
     
戻り値 無し  

TofToEnergyTransferStrict

TOFのヒストグラムをエネルギー遷移のデータへ変換する(明確なエネルギー範囲を指定可)。

TofToEnergyTransferStrict(dat,Ei=-1.0,L1=Def_L1,t0shift=0.0,Emin=-10.0,Emax=10.0,deltaE=0.0)

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
Ei 実数 入射エネルギー [meV]
L1 実数 L1 [m] :線源と試料との間の距離.。
t0shift 実数 TOFの原点のオフセット値 [micro-sec]。
deltaE 実数 Energy Transfer軸のbin幅 [meV]。
Emin 実数 Energy Transfer軸の最小値 [meV]。
Emax 実数 Energy Transfer軸の最大値 [meV]。
     
戻り値 無し  

VisContMOutputFigure

VisualContM上でのスライスを行い画像を保存する。

VisContMOutputFigure(dat, param_file="param.xml",output_file="./",zmin=-1.0,zmax=-1.0)

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
param_file 文字列 パラメータファイル(XtalParams.xml)のパス(VisualContMで保存されたファイル)
output_file 文字列 出力画像ファイルのバス。
Zmin 実数 強度(z)軸の最小値。
Zmax 実数 強度(z)軸の最大値。
戻り値 無し  

VisContMOutputFileByPhi

VisualContM上でのスライスを行い、D4Matrix用のバイナリファイルを作成する。

VisContMOutputFileByPhi(dat, param_file="param.xml",phi=0.0,output_file="./")

パラメータ フォーマット 説明
dat ElementContainerMatrix 与えるElementContainerMatrix
param_file 文字列 パラメータファイル(XtalParams.xml)のパス(VisualContMで保存されたファイル)
phi 実数 UベクトルとVベクトルの平面上での回転 [degree]
output_file 文字列 出力バイナリファイルのバス。
     
戻り値 無し  

WhiteVanCorr

(未実装)White Vanadiumの補正用データでの補正。

装置用処理・その他

AppendRawDataFiles

複数のRaw Data(イベントデータ)を結合し、別データとして保存する。

AppendRawDataFiles(OutRunNo=990000,outDataPath="-",RunNo1=0,RunNo2=0,RunNo3=0,RunNo4=0,RunNo5=0,RunNo6=0)

パラメータ フォーマット 説明
OutRunNo 整数 保存するデータのRunNo。このRunNoを名前に含んだフォルダを作成する。
outDataPath 文字列 出力先フォルダ。この中にOutRunNoの名前を含んだデータフォルダが保存される。
RunNo1 整数 結合するRunNo #1
RunNo2 整数 結合するRunNo #2
RunNo3 整数 結合するRunNo #3
RunNo4 整数 結合するRunNo #4
RunNo5 整数 結合するRunNo #5
RunNo6 整数 結合するRunNo #6
     
戻り値 無し  

CheckDataProcess

データ処理の履歴管理用関数。

CopyData

装置において、DAQ PC上のRaw Dataを解析PCへ集約・コピーする。各DAQ CPU上にあるデータを/data/XXX以下へ持ってくるための関数を実行する。測定中のデータおよび測定後のデータは、各DAQ CPUに分散して保存されているため、これらを解析するためには1ヶ所に集める必要がある。そのための関数である。(DR.CopyDataと全く同等)

CopyData(first_run=10,last_run=-1,flag=0)

パラメータ タイプ 説明
runNo 正の整数(UInt4) コピーしたいRun number
flag 正の整数(UInt4) 通常は省略、コピーではなくシンボリックリンクにするときは1
戻り値 なし なし

CopyIroha2Params

装置において、IROHA2 PC上のLog, Paramデータを解析PCへ集約・コピーする。

MakeRunList

装置において、Run No, 測定時間、温度、ゴニオ角度などの情報をリスト化する。