空蝉基本Python関数リファレンス¶
目次
- 空蝉基本Python関数リファレンス
- 概要
- 基本関数一覧
- 共通データ処理関数
- AverageAll
- CalcPhi
- DoMask
- DetectorEffi
- GetBeamCurrentFromECM
- GetHistDQconstNeunetPsd
- GetHistDTconstGatenetMon
- GetHistDTconstNeunetPsd
- GetHistToDTconstGatenetMon
- GetHistToDTconstNeunetPsd
- GetNeunetHist
- GetPH
- NormByBeam
- NormByBeamCurrent
- PickUpRegion
- SolidAngleCorrection
- SumOfPixel
- SumOfTOF
- getBeamCurrent
- 共通データファイル入出力処理
- 非弾性散乱用処理
- 装置用処理・その他
概要¶
空蝉基本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の補正用データでの補正
共通データ処理関数¶
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
具体的な使用例¶
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")
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のお作法)
1.の条件で、pulse heightの領域を 1200〜4096にしたい場合
DAT=GetNeunetHist("1000","hw,50.0,-5.0,48.0,0.1", DetParam="psd,1200,4096" )
run numberが234のデータで、横軸がd値(範囲0.5〜5.0,幅0.01)のヒストグラム化を行いたい場合
DAT=GetNeunetHist("234","d,0.5,5.0,0.01")
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, 測定時間、温度、ゴニオ角度などの情報をリスト化する。