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

最終更新日

2022.03.18

概要

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

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

基本関数の使い方

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

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

非弾性散乱装置の場合、いくつか専用の基本関数も存在する。この場合は下記のような導入となる。

>>> import utsusemi.ana.Reduction.BaseCommandsInEla as BC

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

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

基本関数一覧

共通データ処理

関数

説明

GetNeunetHist

与えたパラメータでイベントデータを処理しヒストグラムに変換する

NormByKickers

キッカーの個数で強度を規格化する

NormByBeamCurrent

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

SolidAngleCorrection

立体角補正を行う

DoMask

与えたマスクファイルを用いてマスク処理を行う

DetectorEffi

検出器効率補正を行う

AverageAll

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

PickUpRegion

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

SumOfPixel

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

SumOfTOF

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

GetPH

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

GetBeamCurrentFromECM

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

NormByBeam

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

getBeamCurrent

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

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

関数

説明

SaveDataToManyoBinary

与えたElementContainer, -Array, -Matrixのデータを万葉バイナリデータに書き出す

LoadDataFromManyoBinary

万葉バイナリデータファイルからデータを取り出す

OutPutAllPixelToTxt

1ピクセルごとに別のテキストファイルとして書き出す

SaveDataFromNxspe

ElementContainerMatrixをHoraceのフォーマットであるNXSPEファイルとして書き出す。

LoadDataFromNxspe

HoraceのフォーマットであるNXSPEファイルを変換して空蟬で使用できる ElementContainerMatrixに変換して読み込む。

SaveDataToSPE

与えたElementContainerMatrixデータをSPEフォーマットに変換し書き出す

LoadDataFromSPE

SPEフォーマットファイルからデータを変換しElementContainerMatrixとして取り出す

SaveDataToDAVEgrp

与えられたElementContainerMatrixデータをDAVEフォーマットで書き出す

SaveDataToNVASQ

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

SaveDataToSrlz

与えたElementContainer, -Array, -MatrixデータをManyoライブラリシリアライズフォーマット に書き出す(機種依存あり)

LoadDataFromSrlz

Manyoライブラリシリアライズフォーマットからデータを取り出す(機種依存あり)

GetDataFromNeXus

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

SaveDataToNeXus

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

非弾性散乱用処理

関数

説明

BoseFactCorrEC

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

BoseFactorCorrection

ボーズ因子の補正を行う

FlexCalc

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

GetEi

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

GetEiFromEvent

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

KiKfCorrection

ki/kf補正を行う

ToPowder

ElementContainerMatrixデータのPowder平均をとる

SavePowderDataToText

Power平均を行ったデータをテキストファイルに書き出す

VisContMOutputFigure

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

VisContMOutputFileByPhi

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

RadialCollimatorCorrect

RadialCollimatorによるバックグランドを補正する

GetOrigPixelFromQXtalParam

与えた結晶情報などを利用し、逆格子空間座標(Q,hw)から検出器Pixelを計算する

GetOrigPixelFromQString

CalcYRotAngleFromQXtalParam

与えた結晶情報などを利用し、逆格子空間座標(Q,hw)を観測するために必要な回転角度と 観測されるPixelを計算する

CalcYRotAngleFromQString

DymPDF

動的対相関関数による処理を行う

TofToEnergyTransfer

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

TofToEnergyTransferStrict

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

WhiteVanCorr

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

MakeWhiteVanCorr

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

装置用処理・その他

関数

説明

AppendRawDataFiles

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

CheckDataProcess

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

CopyData

装置において、DAQ PC上のRaw Dataを解析PCへ集約・コピーする

CopyIroha2Params

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

MakeRunList

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

共通データ処理関数

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-1236", HistParam="hw,45.56,-4.0,45.0,0.2", DetRange="All" )

指定パラメータ

パラメータ

フォーマット

説明

runNo

文字列(下記参照)

ヒストグラム化する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

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

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

runNo

runNoを指定する。単独、カンマ区切り、範囲(ハイフンかコロンで繋ぐ)で指定できる。単独列挙と範囲指定はカンマ区切りで混在できる。

フォーマット

方法

<runNo>

単独指定

1234

<runNo1>,<runNo2>,…

個別に列挙指定

1001,1512,1330

<runNo1>:<runNo2>,…

コロンもしくは

ハイフンで範囲指定

1000:1020,1500:1330

<runNo1>-<runNo2>,…

1000-1020,1512-1330

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

psd

<DetType>[<LLD>:<HLD>]

上記に加え、Pulse Heightの指定を行う。<LLD>のみ書くことも可能。

PSD[550:4096]

<DetType>-PH

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

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

PSD-PH

psd-ph

<DetType>-PH[<LLD>:<HLD>]

上記に加え、Pulse Heightの指定を行う。<LLD>のみ書くことも可能。

PSD-PH[550:4096]

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> で指定された値 <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>が完全なパス指定であれば、そのファイルを使用する。 ファイル名だけであれば、検索ファイルパス(後述)にしたがって探す。 最新のmask.xmlも以前のmask.txtも使用可能。

mask.xml ,mask.txt

<MaskFile>,<tof1>-<tof2>

マスクファイルを指定し、かつTOF方向のマスクを使用する場合に用いる。

mask.xml,0.0-100.0,200.0-1000.0

検索ファイルパス

  1. コマンドを実行しているディレクトリ(カレントディレクトリ)

  2. ${UTSUSEMI_BASE_DIR/UTSUSEMI_INST_CODE}/ana/xml( /opt/mlfsoft/python-utsusemi/XXX/ana/xml )

  3. ${UTSUSEMI_USR_DIR}/ana/xml ( ~/ana/xml )

CaseInfo

フォーマット

意味

None

指定なし

<Path/to/CaseInfoFile>

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

CaseInfo.xml

検索ファイルパス

  1. コマンドを実行しているディレクトリ(カレントディレクトリ)

  2. ${UTSUSEMI_BASE_DIR/UTSUSEMI_INST_CODE}/ana/xml( /opt/mlfsoft/python-utsusemi/XXX/ana/xml )

  3. ${UTSUSEMI_USR_DIR}/ana/xml ( ~/ana/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 = 1A1/(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_BASE_DIR/UTSUSEMI_INST_CODE}/ana/xml/environ_ana.xmlに記載してある必要がある。

また、environ_ana.xmlの情報を上書きする形で直接パラメータファイル(WiringInfoやDetectorInfo)を指定することもできる。( 0.3.6より使用可能)

フォーマット

意味

<mode>

モードの番号

0

<mode>,-,-

<mode>,<WiringInfo>,<DetectorInfo>

<mode>によるenviron_ana.xmlの情報に上書きする形で 直接パラメータファイルを指定する。 ファイル名が-(ハイフン)の時はenviron_ana.xmlと<mode>で 決定される決まるファイルを利用する。 どちらかだけがハイフンでも良い。

完全なパス名であればそれを利用する。 ファイル名のみなら、検索ファイルパス(後述)に従い探索する。

0,-,-

0,WiringInfo.xml,-

0,WiringInfo,DetectorInfo.xml

検索ファイルパス

  1. コマンドを実行しているディレクトリ(カレントディレクトリ)

  2. ${UTSUSEMI_BASE_DIR/UTSUSEMI_INST_CODE}/ana/xml( /opt/mlfsoft/python-utsusemi/XXX/ana/xml )

  3. ${UTSUSEMI_USR_DIR}/ana/xml ( ~/ana/xml )

Options

0.3.6より使用可能。主に上記以外のオプションを設定できる。オプションの与え方は、 <KEY>:<VALUE> で与え、それらをカンマ区切りで並べることが可能である。なお与えるパラメータは大文字小文字を区別しない(例: ADDTOFBIN:TRUEは、AddTofBin:Trueでも良い)

フォーマット

意味

None

指定なし

None

ISCHECKPULSEID:<bool>

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

ISCHECKPULSEID:False

L1:<float>

L1(モデレータから試料位置までの距離)を[mm]で与える。デフォルト値は DetectorInfoに記述されている値であるが、この値を変更したいときに使用。

L1:18035.0

SX:<float>

試料の位置が装置座標系の原点にないときに設定する。試料の位置を座標ごとに 与える。試料位置のデフォルトは(0.0,0.0,0.0)であるが、例えばZ方向に上流に 5.0 mm ずれているのなら、”SZ:-5.0” だけを指定すれば良い。 (注:試料の座標を指定してもL1の値は変わらないので、必要に応じてL1も変更 すること)

SX:1.0, SZ:-5.0

SY:<float>

SZ:<float>

ADDTOFBIN:<bool>

TOF以外(hwなど)でのヒストグラム化の時にTOF情報もPixelごとのデータ (ElementContainer)に含めるかどうかを指定する。 <bool>はTrue(デフォルト) かFalse。(0.3.6_r1143以降)

AddTofBin:False

例:

DAT = GetNeunetHist( runNo="1234", HistParam="hw,45.56,-4.0,45.0,0.2", Options="L1:18020.0,SZ:-5.0" )

具体的な使用例

  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で確認可能

NormByKickers

イベントデータをヒストグラム化したElementContainerMatrixに対し、中性子発生回数(キッカー数)で規格化する。 キッカー数は、ヒストグラム化処理によりElementContainerMatrixのヘッダに含まれている。

NormBy Kickers(dat,factor=1.0 )

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix

factor

実数

キッカー数による規格化の値をfactorで割る。 キッカー数の値は大抵データの強度に対し大きすぎることが多く、 このfactorで規格化の値を割り、その値で強度を割る。割り戻しの値。 なお、負の値を入力すると、キッカー数の値の代わりに入力値の絶対値で強度の 割り算(規格化)を行う。つまり負号をつけることで任意の数値で規格化できる。

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の中身が置きかわる)

SolidAngleCorrection

立体角補正を行う。

SolidAngleCorrection(dat,dS=-1.0)

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix

dS

実数

各Pixelの立体角をこの値で規格化する。-1.0の時はその装置のデフォルト値。

戻り値

無し

(与えられたElementContainerMatrixの中身が置きかわる)

DoMask

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

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

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix

filename

文字列 (yyy.txt/xxx.xml)

マスクファイル名。完全なパス+ファイル名であればそれを利用する。 ファイル名のみなら、検索ファイルパス(後述)に従い探索する。 フォーマットの詳細は「空蟬で使用するマスク処理について」を参照のこと。

戻り値

無し

(与えられたElementContainerMatrixの中身が置きかわる)

検索ファイルパス

  1. コマンドを実行しているディレクトリ(カレントディレクトリ)

  2. ${UTSUSEMI_BASE_DIR/UTSUSEMI_INST_CODE}/ana/xml( /opt/mlfsoft/python-utsusemi/XXX/ana/xml )

  3. ${UTSUSEMI_USR_DIR}/ana/xml ( ~/ana/xml )

DetectorEffi

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

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

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix

detInfo_file

文字列

検出器の構成情報のあるDetectorInfoファイルを指定する。

det_name

文字列

検出器の構成情報から補正に用いる検出器の定義名を指定する。

戻り値

無し

(与えられたElementContainerMatrixの中身が置きかわる)

AverageAll

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

AverageAll( dat, maskfile="None" )

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix

maskfile

文字列 (yyy.txt/xxx.xml)

マスクファイル名。内部でDoMask関数を実行する。 使用しない時は None を与える。 詳細は「DoMask」関数リファレンスを参照のこと。

戻り値

ElementContainer

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

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

GetPH

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

GetPH(dat, binSize=1)

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix (PulseHeightの解析も行う設定でヒストグラム化)

binSize

整数

波高値の横軸のbin幅を指定する。

戻り値

ElementContainerArray

それぞれの検出器(PSD)の波高分布が個別のElementContainerに格納されている。

戻り値はそのままM2Plotで表示できる。

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の総数。

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の中身が置きかわる)

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(テラプロトン)]

使用頻度の低いもの

CalcPhi

ヒストグラム化された全Pixelのデータの位置情報からそれぞれのPixelのPolar角とAzimath角を計算し収める。ただし、全てのヒストグラム化関数である GetNeunetHist内部で既に処理されるので、使用機会はない。

CalcPhi(dat)

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix

戻り値

無し

(与えられたElementContainerMatrixの中身に追記)

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。

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

SaveDataToManyoBinary

万葉ライブラリのデータコンテナを万葉ライブラリ標準のバイナリファイルとして書き出す。なお、与えるデータのフォーマットは ElementContainer , ElementContainerArray , ElementContainerMatrix のいずれでも良い。またファイル名のデフォルトの拡張子は .mdb である。

SaveDataToManyoBinary(dat, path=”./”,filename=”Sample.mdb”)

パラメータ

フォーマット

説明

dat

ElementContainer, ELementContainerArray, ElementContainerMatrix

与えるElementContainer, -Array, -Matrix

path

文字列

保存先のフォルダへの絶対パス。

filename

文字列

保存ファイル名。命名ルールとして拡張子に.mdbをつけること。

戻り値

無し

LoadDataFromManyoBinary

万葉ライブラリ標準のバイナリファイルとして書き出されたデータコンテナを読み込む。ファイル名のデフォルトの拡張子は .mdb である。

LoadDataFromManyoBinary(path=”./”,filename=”Sample.mdb”)

パラメータ

フォーマット

説明

path

文字列

mdbファイルの入っているフォルダへの絶対パス。

filename

文字列

対象となるmdbファイルの名前。

戻り値

ElementContainer, ELementContainerArray, ElementContainerMatrix

ElementContainer, ElementContainerArray, ElementContainerMatrix (Dumpファイルに含まれているデータに依存する。)

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

文字列

保存先のフォルダへの絶対パス。

戻り値

無し

SaveDataToNxspe

非弾性散乱処理を行なったデータコンテナ(ElementContainerMatrix)をHoraceのフォーマットであるNXSPEファイルとして書き出す。

SaveDataToNxspe(dat, path=”./”,filename=”Sample”,params=”PSI:0.0,TEMP:300.0,USER:mlfuser”)

パラメータ

フォーマット

説明

dat

ElementContainer, ELementContainerArray, ElementContainerMatrix

与えるElementContainer, -Array, -Matrix

path

文字列

保存先のフォルダへの絶対パス。

filename

文字列

保存ファイル名。拡張子はなくて良い(何であっても自動的にnxspeとなる)。

params

文字列(String)

NXSPEファイルに追加する情報 PSI:0.0,TEMP:300.0,USER:mlfuser

戻り値

無し

LoadDataFromNxspe

HoraceのフォーマットであるNXSPEファイルを変換して空蟬で使用できるElementContainerMatrixに変換して読み込む。

LoadDataFromNxspe(path=”./”,filename=”Sample.nxspe”, num_of_pixels=100 )

パラメータ

フォーマット

説明

path

文字列

NXSPEファイルの入っているフォルダへの絶対パス。

filename

文字列

対象となるNXSPEファイルの名前。

num_of_pixels.

整数(int)

Pixelのグループ化を内部で行うのに必要なPixel数

戻り値

ElementContainer, ELementContainerArray, ElementContainerMatrix

ElementContainer, ElementContainerArray, ElementContainerMatrix (Dumpファイルに含まれているデータに依存する。)

SaveDataToSPE

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

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

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix

path

文字列

保存先のフォルダへの絶対パス。

filename

文字列

保存ファイル名。命名ルールとして拡張子はつけない。

戻り値

無し

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。このファイルは空蟬のデータに変換済みであるので、 空蟬の可視化ソフトウェアなどで利用できる。

SaveDataToDAVEgrp

与えられたELementContainerMatrixデータをDAVE用のフォーマットに変換して書き出す。

SaveDataToDAVEgrp(dat=DAT,path=”./”,filename=”Sample.grp”,startQ=1.0,endQ=1.0,frcQ=1,binE=0.0)

パラメータ

フォーマット

説明

dat

ElementContainer,

与えるElementContainer

filename

文字列

保存ファイル名。命名ルールとして拡張子に.grpをつけること。

startQ

実数

Qの最小値

endQ

実数

Qの最大値

frcQ

整数

分割数

binE

実数

エネルギー方向のリビニング幅(0.0ならオリジナルのまま)

戻り値

無し

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]

戻り値

無し

SaveDataToSrlz

与えたElementContainer, -Array, -MatrixデータをManyoライブラリシリアライズフォーマットに書き出す。このフォーマットは非常に高速に読み書きができるが、そのPCの環境に依存するので、他のPC(同じOSでも)で作成されたファイルを読み込むことはできない。

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

パラメータ

フォーマット

説明

dat

ElementContainer, ELementContainerArray, ElementContainerMatrix

与えるElementContainer, -Array, -Matrix

path

文字列

保存先のフォルダへの絶対パス。

filename

文字列

保存ファイル名。命名ルールとして拡張子に.dmpをつけること。

戻り値

無し

LoadDataFromSrlz

Manyoライブラリシリアライズフォーマットからデータを取り出す。このフォーマットは非常に高速に読み書きができるが、そのPCの環境に依存するので、他のPC(同じOSでも)で作成されたファイルを読み込むことはできない。

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

パラメータ

フォーマット

説明

path

文字列

シリアライズフォーマットファイルの入っているフォルダへの絶対パス。

filename

文字列

対象となるシリアライズフォーマットファイルの名前。

戻り値

ElementContainer, ELementContainerArray, ElementContainerMatrix

ElementContainer, ElementContainerArray, ElementContainerMatrix (シリアライズフォーマットファイルに含まれているデータに依存する。)

SaveDataToNeXus

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

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

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix

name

文字列

NeXusフォーマット内の所有者の名前。

path

文字列

保存先のフォルダへの絶対パス。

filename

文字列

保存ファイル名。命名ルールとして拡張子に.nxをつけること。

戻り値

無し

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ファイルに含まれているデータに依存する。)

SaveDataToDump

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

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

パラメータ

フォーマット

説明

dat

ElementContainer, ELementContainerArray, ElementContainerMatrix

与えるElementContainer, -Array, -Matrix

path

文字列

保存先のフォルダへの絶対パス。

filename

文字列

保存ファイル名。命名ルールとして拡張子に.dmpをつけること。

戻り値

無し

非弾性散乱用処理

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の中身が置きかわる)

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が一つ入っている。

SavePowderDataToText

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

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

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

与えるElementContainerMatrix

deltaQ

実数

Q軸のbin幅。

path

文字列

データファイルを入れるフォルダ名(デフォルトの ./ はカレントディレクトリ)

filename

文字列

データファイル名。

戻り値

無し

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

文字列

出力バイナリファイルのバス。

戻り値

無し

RadialCollimatorCorrect

ラジアルコリメータにより発生するバックグランドを補正する。

RadialCollimatorCorrect(dat=DAT,vdat=DAT,integRange=”All”,pixelRange=”All”)

パラメータ

フォーマット

説明

dat

ElementContainerMatrix

補正したいデータ

vdat

ElementContainerMatrix

バックグランド補正用データ(Vanadium data)

integRange

文字列

Vanadium Dataの各Pixelの強度の積分領域の横軸を “All”か”<start>:<end>”で指定する

pixelRange

文字列

Vanadium Dataの強度の積分をどのPixelの領域で行うかを “All”か”<start>:<end>”で指定する

戻り値

無し

GetOrigPixelFromQXtalParam

XtalParamファイルによって与えた結晶情報などを利用し、逆格子空間座標(Q,hw)から検出器Pixelを計算する。

GetOrigPixelFromQXtalParam( XtalParam="XtalParam.xml", Q="1.0,1.0,1.0", Ei=45.56,
                            hw=0.0, runNo=999999, pixNum=100 )

パラメータ

フォーマット

説明

XtalParam

文字列

利用したいXtalParamファイルのパス

Q

文字列

逆算したいQの座標 “<Q1>,<Q2>,<Q3>”

Ei

実数

入射エネルギー

hw

実数

逆算したいエネルギー遷移の値

runNo

整数

対象となるRunNo(検出器の配置がRunNoごとに異なるため)

pixNum

整数

1PSDの分割数(BL01なら100, BL14なら120)

戻り値

無し

GetOrigPixelFromQString

与えた結晶情報などを利用し、逆格子空間座標(Q,hw)から検出器Pixelを計算する。

GetOrigPixelFromQString(
    LatticeConst="4.8,8.4,2.9",LatticeAngles="90.0,90.0,90.0", \
    Uvect="0.0,1.0,0.0",Vvect="0.0,0.0,1.0",RotStep="None", \
    ViewAxis1="1,0,0",ViewAxis2="0,1,0",ViewAxis3="0,0,1", \
    Q="1.0,1.0,1.0",Ei=45.56, hw=0.0, runNo=999999, pixNum=100 )

パラメータ

フォーマット

説明

LatticeConst

文字列

格子定数1 “<a>,<b>,<c>”

LatticeAngles

文字列

格子定数2 “<alpha>,<beta>,<gamma>”

Uvect

文字列

方位情報のUベクトル “<Uh>,<Ul>,<Ul>”

Vvect

文字列

方位情報のVベクトル “<Vh>,<Vl>,<Vl>”

RotStep

文字列

回転情報 “None”:回転なし、”Y:12.3” Y軸中心に12.3度回転

ViewAxis1

文字列

HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”

ViewAxis2

文字列

HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”

ViewAxis3

文字列

HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”

Q

文字列

逆算したいQの座標 “<Q1>,<Q2>,<Q3>”

Ei

実数

入射エネルギー

hw

実数

逆算したいエネルギー遷移の値

runNo

整数

対象となるRunNo(検出器の配置がRunNoごとに異なるため)

pixNum

整数

1PSDの分割数(BL01なら100, BL14なら120)

戻り値

無し

CalcYRotAngleFromQXtalParam

XtalParamファイルによって与えた結晶情報などを利用し、逆格子空間座標(Q,hw)を観測するために必要な回転角度と観測されるPixelを計算する

CalcYRotAngleFromQXtalParam(
    XtalParam="XtalParam.xml", Q="1.0,1.0,1.0",
    Ei=45.56, hw=0.0, runNo=999999, pixNum=100 )

パラメータ

フォーマット

説明

XtalParam

文字列

利用したいXtalParamファイルのパス

Q

文字列

逆算したいQの座標 “<Q1>,<Q2>,<Q3>”

Ei

実数

入射エネルギー

hw

実数

逆算したいエネルギー遷移の値

runNo

整数

対象となるRunNo(検出器の配置がRunNoごとに異なるため)

pixNum

整数

1PSDの分割数(BL01なら100, BL14なら120)

戻り値

無し

サンプルコード

XtalFile="XtalParam.xml"
Cmm.CalcYRotAngleFromQString( XtalParam=XtalFile,Q="2,0.5,-0.5",Ei=26.3, hw=0.0, runNo=33019, pixNum=100 )

実行結果は以下の通り。

Y Rotation Angle= 38.9468996935711
detId, pixel = 198, 17
Y Rotation Angle= -76.41461129041824
 Out of range

CalcYRotAngleFromQString

与えた結晶情報などを利用し、逆格子空間座標(Q,hw)を観測するために必要な回転角度と観測されるPixelを計算する

GetOrigPixelFromQString(
    LatticeConst="4.8,8.4,2.9",LatticeAngles="90.0,90.0,90.0",
    Uvect="0.0,1.0,0.0",Vvect="0.0,0.0,1.0",RotStep="None",
    ViewAxis1="1,0,0",ViewAxis2="0,1,0",ViewAxis3="0,0,1",
    Q="1.0,1.0,1.0",Ei=45.56, hw=0.0, runNo=999999, pixNum=100 )

パラメータ

フォーマット

説明

LatticeConst

文字列

格子定数1 “<a>,<b>,<c>”

LatticeAngles

文字列

格子定数2 “<alpha>,<beta>,<gamma>”

Uvect

文字列

方位情報のUベクトル “<Uh>,<Ul>,<Ul>”

Vvect

文字列

方位情報のVベクトル “<Vh>,<Vl>,<Vl>”

RotStep

文字列

回転情報 “None”:回転なし、”Y:12.3” Y軸中心に12.3度回転

ViewAxis1

文字列

HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”

ViewAxis2

文字列

HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”

ViewAxis3

文字列

HKLを利用した可視化用座標軸定義 “<h>,<k>,<l>”

Q

文字列

逆算したいQの座標 “<Q1>,<Q2>,<Q3>”

Ei

実数

入射エネルギー

hw

実数

逆算したいエネルギー遷移の値

runNo

整数

対象となるRunNo(検出器の配置がRunNoごとに異なるため)

pixNum

整数

1PSDの分割数(BL01なら100, BL14なら120)

戻り値

無し

サンプルコード

LC="3.905, 3.905, 3.905"
LA="90.0,90.0,90.0"
UV="1,0,0"
VV="0,0.96,1.04"
VA1="1,0,0"
VA2="0,1,1"
VA3="0,-1,1"
Cmm.CalcYRotAngleFromQString( LatticeConst=LC,LatticeAngles=LA,Uvect=UV,Vvect=VV,RotStep="None",ViewAxis1=VA1,ViewAxis2=VA2,ViewAxis3=VA3,Q="2,0.5,-0.5",Ei=26.3, hw=0.0, runNo=33019, pixNum=100 )

実行結果は以下の通り。

Y Rotation Angle= 38.9468996935711
detId, pixel = 198, 17
Y Rotation Angle= -76.41461129041824
 Out of range

DymPDF

非弾性Powderデータを入力とし、内部で運動量遷移方向にスライスし、動的対相関関数による処理を行う。結果は横軸 r 、縦軸 hw の2次元データとなる。

DymPDF( DAT=DAT, hwSlice="0.2,1.0,12.5", rRange="0.1,40.0",
        magFFa="0.4220,17.684", magFFb="0.5948,6.005",
        magFFc="0.0043,-0.609",magFFd="-0.0219", CF=74.84,
        isXaxisR=True )

パラメータ

フォーマット

説明

DAT

ElementContainerMatrix

対象となるPowderデータ(Powder処理済み)

hwSlice

文字列

hw方向の分割情報 “<delta-hw>, <hw-min>, <hw-max>”

rRange

文字列

実空間方向の情報 “<min>,<max>”

magFFa

文字列

Magnetic Form Factor 情報1

magFFb

文字列

Magnetic Form Factor 情報2

magFFc

文字列

Magnetic Form Factor 情報3

magFFd

文字列

Magnetic Form Factor 情報4

CF

実数

強度補正因子

isXaxisR

bool

計算結果の2次元データの横軸を距離にするか(True)、 エネルギー遷移にするか(False)

戻り値

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]。

戻り値

無し

MakeWhiteVanCorr

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

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, 測定時間、温度、ゴニオ角度などの情報をリスト化する。