.. _RefBaseCommands: ==================================== 空蟬基本Python関数リファレンス ==================================== :最終更新日: 2022.03.18 .. contents:: 目次 :depth: 3 概要 ==== 空蟬基本Python関数とは、空蟬で実装されているデータ処理(イベントデータのヒストグラム化、データコンテナの扱い、共通の補正など)を行うためにPythonで作成された関数群を呼ぶ。一般に各装置で使用される関数、特にSequenceEditorで表示されるファサード関数は、この基本関数からの抜粋したもの、もしくは基本関数を組み合わせたり利用して作成したものとなる。 また、独自のファサード関数を作ったり、スクリプトを自作する場合にも参照できる。 ----------------------- 基本関数の使い方 ----------------------- 本節で示す関数は基本関数として用意されているものであり、実際にユーザーが直接利用することはないと思われる。しかし新しくファサード関数を作る際にこれらの関数を利用することもあるので、空蟬環境において直接実行する方法を示しておく。 .. code-block:: python >>> import utsusemi.ana.Reduction.BaseCommands as BC >>> ec = BC.AverageAll( dat ) など 非弾性散乱装置の場合、いくつか専用の基本関数も存在する。この場合は下記のような導入となる。 .. code-block:: python >>> import utsusemi.ana.Reduction.BaseCommandsInEla as BC また、基本関数のうち、それぞれの装置で使用頻度の高いものは、あらかじめファサード **Cmm** モジュールにも登録されているので、それを使うことも可能である。 .. code-block:: python >>> import Cmm >>> ec = Cmm.GetNeunetHist( \373", "hw,45.56,-4.0,40.0,0.2" ) など。 基本関数一覧 ================== ----------------------- 共通データ処理 ----------------------- .. table:: Common Utsusemi python commands to treat data :widths: 30,60 :align: center +--------------------------+--------------------------------------------------------------------------------------+ |関数 |説明 | +==========================+======================================================================================+ |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]の総和を返す | +--------------------------+--------------------------------------------------------------------------------------+ ---------------------------------------------- 共通データファイル入出力処理 ---------------------------------------------- .. table:: Common Utsusemi python commands to save and load data :widths: 30,60 :align: center +--------------------------+--------------------------------------------------------------------------------------+ |関数 |説明 | +==========================+======================================================================================+ |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フォーマットに書き出す | +--------------------------+--------------------------------------------------------------------------------------+ ----------------------- 装置用処理・その他 ----------------------- .. table:: Common Utsusemi python commands for beamlines works :widths: 30,60 :align: center +--------------------------+--------------------------------------------------------------------------------------+ |関数 |説明 | +==========================+======================================================================================+ |AppendRawDataFiles |複数のRaw Data(イベントデータ)を結合し、別データとして保存する | +--------------------------+--------------------------------------------------------------------------------------+ |CheckDataProcess |データ処理の履歴管理用関数 | +--------------------------+--------------------------------------------------------------------------------------+ |CopyData |装置において、DAQ PC上のRaw Dataを解析PCへ集約・コピーする | +--------------------------+--------------------------------------------------------------------------------------+ |CopyIroha2Params |装置において、IROHA2 PC上のLog, Paramデータを解析PCへ集約・コピーする | +--------------------------+--------------------------------------------------------------------------------------+ |MakeRunList |装置において、Run No, 測定時間、温度、ゴニオ角度などの情報をリスト化する | +--------------------------+--------------------------------------------------------------------------------------+ 共通データ処理関数 ====================================== 以下の関数は、 *utsusemi.ana.Reduction.BaseCommands* に収められている。 .. py:module:: utsusemi.ana.Reduction.BaseCommands 空蟬の共通データ処理関数が収められたモジュールである。 .. py:function:: GetNeunetHist(runNo, HistParam, DetRange, DetParam, TimeRange, FrameInfo, MaskInfo, CaseInfo, BGInfo, TofShift, AnaMode, ParamFiles, Options) 与えたパラメータでイベントデータを処理しヒストグラムに変換する。 イベントデータのヒストグラム化を行うための総合的な関数である。イベントデータをヒストグラム化するために必要な設定(ヒストグラム軸設定、検出器の範囲設定やディスクリ値の変更など)のうち、もっとも初期のころから実装していた機能をまとめて行えるようにした。これまでのいろいろなヒストグラム化にまつわる関数はすべてこれで置き換える方針。これまで個別に設定していたパラメータを設定ごとにまとめて指定(文字列として)することで、トータルのパラメータの個数を減らした。この関数も実際にはもう少し用途に特化した関数に組み込む予定(DR.GetDataOfMonochroEi2のように)なので、ユーザーが直接これを使うことは無いと思われる。 :param runNo: ヒストグラム化するRun numberを指定する :type runNo: string :param HistParam: 作りたいヒストグラム(軸)の情報 :type HistParam: string :param DetRange: 使用する検出器の範囲とPixel数設定 :type DetRange: string :param DetParam: 検出器の種類とPulse Height設定 :type DetParam: string :param TimeRange: 使用する時間範囲の情報 :type TimeRange: string :param FrameInfo: 使用するフレーム情報 :type FrameInfo: string :param MaskInfo: 検出器に対するマスク処理設定 :type MaskInfo: string :param CaseInfo: CaseInfoファイルの指定(0.3.6より実装) :type CaseInfo: string :param BGInfo: 各種バックグラウンドの指定(現状は時間に非依存のTOFバックグラウンドのみ) :type BGInfo: string :param TofShift: TOF原点をLambdaに応じてシフトさせる場合に用いる(現状BL11用のみ) :type TofShift: string :param AnaMode: 使用するWiringInfoとDetectorInfoの組み合わせのパターンを指定する :type AnaMode: string :param ParamFiles: WiringInfoとDetectorInfoを個別に与える :type ParamFiles: string :param Options: その他の設定 :type Options: string :return: 作成されたヒストグラムデータ :rtype: ElementConatainerMatrix 詳細は、以下を参照。 .. toctree:: :maxdepth: 1 GetNeunetHist .. _RefNormByKickers: .. py:function:: NormByKickers(dat,factor=1.0) イベントデータをヒストグラム化したElementContainerMatrixに対し、中性子発生回数(キッカー数)で規格化する。 :param ElementContainerMatrix dat: 規格化したいデータ :param float factor: キッカー数による規格化の値をfactorで割る :return: None キッカー数の値は大抵データの強度に対し大きすぎることが多いため、第2引数の *factor* はキッカー数を割り戻す値である。なお *factor* に負の値を入力すると、キッカー数の値の代わりに入力値の絶対値で強度の割り算(規格化)を行う。つまり負号をつけることで任意の数値で規格化できる。キッカー数はヒストグラム化処理によりElementContainerMatrixのヘッダに含まれている。 .. _RefNormByBeamCurrent: .. py:function:: NormByBeamCurrent(dat,factor=1000.0,offset_sec=0.0,isCT8Neutron=False) イベントデータをヒストグラム化したElementContainerMatrixに対しProton Currentで規格化する。 :param ElementContainerMatrix dat: 規格化したいデータ :param float factor: Proton Currentの割り戻し値、もしくは負の値 :param float offset_sec: 時刻補正用 :param bool isCT8Neutron: 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮したモード(CT8Neutron)を使用するかどうか :return: None Proton Currentの値は大抵データの強度に対し大きすぎることが多いため、第2引数の *factor* はキッカー数を割り戻す値である。なお *factor* に負の値を入力すると、Proton Currentの値の代わりに入力値の絶対値で強度の割り算(規格化)を行う。つまり負号をつけることで任意の数値で規格化できる。 引数 *offset_sec* は、Proton Currentを計算するために使用する測定時間(ヒストグラムデータのヘッダ情報に含まれる)がずれていた場合にそのオフセット時間を[秒]で補正するものであり、データの測定時間にオフセット時間を加えたものを真の時刻とする。よって通常は0.0で良い。 .. _RefSolidAngleCorrection: .. py:function:: SolidAngleCorrection(dat,dS=-1.0) 立体角補正を行う。 :param ElementContainerMatrix dat: 補正したいデータ :param float dS: 各Pixelの立体角をこの値で規格化する :return: None 引数 *dS* が-1.0の時はその装置のデフォルト値を使用する。 .. _RefDoMask: .. py:function:: DoMask(dat,filename="mask.txt") 与えたマスクファイルを用いてマスク処理を行う。マスクファイルのフォーマットなど詳細は、別の章で行う( :ref:`「空蟬で使用するマスク処理について」` )。 :param ElementContainerMatrix dat: 補正したいデータ :param string filename: マスクファイル名。完全なパス+ファイル名であればそれを利用する。ファイル名のみなら、検索ファイルパス(後述)に従い探索する。フォーマットの詳細は「空蟬で使用するマスク処理について」を参照のこと。 :return: None **検索ファイルパス** 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 ) .. _RefDetectorEffi: .. py:function:: DetectorEffi(dat, detInfo_file="DetectorInfo_Det.xml", det_name="SUS304-3He-PSD") 検出器補正を行う。検出器の構成情報はDetectorInfo.xmlに記述するものを使うので、それを引数で指定する必要がある。将来的には融合する。 :param ElementContainerMatrix dat: 補正したいデータ :param string detInfo_file: 検出器の構成情報のあるDetectorInfoファイルを指定する :param string det_name: 検出器の構成情報から補正に用いる検出器の定義名を指定する(DetectorInfoに記述されている必要がある) :return: None .. _RefAverageAll: .. py:function:: AverageAll(dat, maskfile="None") 与えたElementContainerMatrix内の全てのPixelの平均を取り一つのElementContainerに収める。 :param ElementContainerMatrix dat: 補正したいデータ :param string maskfile: マスクファイル名。内部でDoMask関数を実行する。使用しない時は None を与える。詳細は「DoMask」関数リファレンスを参照のこと。 :return: None .. _RefPickUpRegion: .. py:function:: PickUpRegion(Target, PSD_min=1, PSD_max=1, Pixel_min=1, Pixel_max=1) ElementContainerMatrixから特定の検出器領域を抜き出す。 :param ElementContainerMatrix Target: オリジナルデータ :param int PSD_min: 検出器範囲の最小値(DetId) :param int PSD_max: 検出器範囲の最大値(DetId) :param int Pixel_min: 検出器範囲のPixel最小値(PixelNo) :param int Pixel_max: 検出器範囲のPixel最大値(PixelNo) :return: 抜き出したデータ :rtype: ElementContainerMatrix .. _RefSumOfPixel: .. py:function:: SumOfPixel(Target, PSD_min=1, PSD_max=1, Pixel_min=1, Pixel_max=1) ElementContainerMatrixから指定した検出領域の総和のヒストグラムを返す。 :param ElementContainerMatrix Target: オリジナルデータ :param int PSD_min: 検出器範囲の最小値(DetId) :param int PSD_max: 検出器範囲の最大値(DetId) :param int Pixel_min: 検出器範囲のPixel最小値(PixelNo) :param int Pixel_max: 検出器範囲のPixel最大値(PixelNo) :return: 総和のデータ :rtype: ElementContainer .. _RefSumOfTOF: .. py:function:: SumOfTOF(Target, PSD=1, tof_min=0, tof_max=40000) ElementContainerMatrixから指定した検出器内のPixelに対し、Time-of-Flight方向の和を取り、横軸Pixel-縦軸総和のElementContainerを返す。 :param ElementContainerMatrix Target: オリジナルデータ :param int PSD: 対象となる検出器(DetId) :param int tof_min: 積算するTOF領域の最小値(micro-sec) :param int tof_max: 積算するTOF領域の最大値(micro-sec) :return: 横軸Pixel-縦軸総和データ :rtype: ElementContainer .. _RefGetPH: .. py:function:: GetPH(dat, binSize=1) PSDのヒストグラムから検出器の波高値を取り出す。なおデータはPulseHeightの解析も行う設定でヒストグラム化されていることが必要。 :param ElementContainerMatrix dat: 与えるElementContainerMatrix :param int binSize: 波高値の横軸のbin幅 :return: それぞれの検出器(PSD)の波高分布が個別のElementContainerに格納されているデータ(戻り値はそのままM2Plotで表示できる) :rtype: ElementContainerArray .. _RefGetBeamCurrentFromECM: .. py:function:: GetBeamCurrentFromECM(dat, offset_sec=0.0, isCT8Neutron=False) ElementContainerMatrixからその測定中のProton Current [TP]の総和を返す。 :param ElementContainerMatrix dat: 規格化したいデータ :param float offset_sec: 時刻補正用 :param bool isCT8Neutron: 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮したモード(CT8Neutron)を使用するかどうか :return: None 引数 *offset_sec* は、Proton Currentを計算するために使用する測定時間(ヒストグラムデータのヘッダ情報に含まれる)がずれていた場合にそのオフセット時間を[秒]で補正するものであり、データの測定時間にオフセット時間を加えたものを真の時刻とする。よって通常は0.0で良い。 .. _RefNormByBeam: .. py:function:: 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 ) イベントデータをヒストグラム化したElementContainerMatrixに対し、与えた測定時刻情報からProton Currentで規格化する。 :param ElementContainerMatrix dat: 規格化したいデータ :param string start_day: 測定開始日(フォーマットは YYYY/MM/DD) :param string start_time: 測定開始時刻(フォーマットは hh:mm:ss) :param string end_day: 測定終了日(フォーマットは YYYY/MM/DD) :param string end_time: 測定終了時刻(フォーマットは hh:mm:ss) :param float factor: Proton Currentの割り戻し値、もしくは負の値 :param float offset_sec: 時刻補正用 :param bool isCT8Neutron: 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮したモード(CT8Neutron)を使用するかどうか :return: None Proton Currentの値は大抵データの強度に対し大きすぎることが多いため、第2引数の *factor* はキッカー数を割り戻す値である。なお *factor* に負の値を入力すると、Proton Currentの値の代わりに入力値の絶対値で強度の割り算(規格化)を行う。つまり負号をつけることで任意の数値で規格化できる。 引数 *offset_sec* は、Proton Currentを計算するために使用する測定時間(ヒストグラムデータのヘッダ情報に含まれる)がずれていた場合にそのオフセット時間を[秒]で補正するものであり、データの測定時間にオフセット時間を加えたものを真の時刻とする。よって通常は0.0で良い。 .. _RefgetBeamCurrent: .. py:function:: 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 ) 与えた時刻情報からその期間中のProton Current [TP]の総和を返す。 :param ElementContainerMatrix dat: 規格化したいデータ :param string start_day: 測定開始日(フォーマットは YYYY/MM/DD) :param string start_time: 測定開始時刻(フォーマットは hh:mm:ss) :param string end_day: 測定終了日(フォーマットは YYYY/MM/DD) :param string end_time: 測定終了時刻(フォーマットは hh:mm:ss) :param float factor: Proton Currentの割り戻し値、もしくは負の値 :param float offset_sec: 時刻補正用 :param bool isCT8Neutron: 使用するProton Monitorのうち、ミュオンターゲットの影響を考慮したモード(CT8Neutron)を使用するかどうか :return: プロトン数 [TP(テラプロトン)] :rtype: float 引数 *offset_sec* は、Proton Currentを計算するために使用する測定時間(ヒストグラムデータのヘッダ情報に含まれる)がずれていた場合にそのオフセット時間を[秒]で補正するものであり、データの測定時間にオフセット時間を加えたものを真の時刻とする。よって通常は0.0で良い。 --------------------- 使用頻度の低いもの --------------------- .. _RefCalcPhi: .. py:function:: CalcPhi(dat) ヒストグラム化された全Pixelのデータの位置情報からそれぞれのPixelのPolar角とAzimath角を計算し収める。ただし、全てのヒストグラム化関数である GetNeunetHist内部で既に処理されるので、使用機会はない。 :param ElementContainerMatrix dat: 与えるElementContainerMatrix :return: None .. _RefGetHistDQconstNeunetPsd: .. py:function:: 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") 中性子イベントデータをdQ constantのヒストグラムに変換する。 :param int runNo: Run number :param string QRange: ヒストグラム上のQの範囲。Qの最小値と最大値をスペース区切りで表記(" ") :param float deltaQ: Qのbin幅 :param string detRange: 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記 :param int NumOfPixel: 検出器(PSD)あたりのPixel数 :param string timeRange: 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記 :param float frameBoundary: セカンドフレーム使用時の境界となるTOF値 :param string inVect: 入射中性子の入射ベクトル。ベクトルをVx Vy Vzの成分(大きさは適当)で表記[mm]、スペース区切りで表記 :return: ヒストグラムデータ :rtype: ELementContainerMatrix .. _RefGetHistDTconstGatenetMon: .. py:function:: GetHistDTconstGatenetMon(runNo=0, tofRange="0.0 40000.0", binTOF=10.0, detRange="-1 -1", NumOfPixel=4, timeRange="-1 -1", frameBoundary=0.0) 中性子モニターのイベントデータをdT constantのヒストグラムに変換する。 :param int runNo: Run number :param string tofRange: ヒストグラム上のTOFの範囲。TOFの範囲(最小値と最大値)スペース区切りで表記(" ") :param float binTOF: TOF方向のbin幅 :param string detRange: 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記 :param int NumOfPixel: 検出器(PSD)あたりのPixel数 :param string timeRange: 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記 :param float frameBoundary: セカンドフレーム使用時の境界となるTOF値 :param string inVect: 入射中性子の入射ベクトル。ベクトルをVx Vy Vzの成分(大きさは適当)で表記[mm]、スペース区切りで表記 :return: ヒストグラムデータ :rtype: ELementContainerMatrix .. _RefGetHistDTconstNeunetPsd: .. py:function:: 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 ) 中性子イベントデータをdT constantのヒストグラムに変換する。 :param int runNo: RunNo :param bool isTimeFoc: ヒストグラム化時に、Time Focusingを行うかどうか :param string tofRange: ヒストグラム上のTOFの範囲、TOFの範囲(最小値と最大値)スペース区切りで表記(" ") :param float binTOF: TOF方向のbin幅 :param string detRange: 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記 :param int NumOfPixel: 検出器(PSD)あたりのPixel数 :param string timeRange: 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記 :param float frameBoundary: セカンドフレーム使用時の境界となるTOF値 :return: ヒストグラムデータ :rtype: ELementContainerMatrix .. _RefGetHistToDTconstGatenetMon: .. py:function:: GetHistToDTconstGatenetMon(runNo=0, tofRange="0.0 40000.0", racio=0.01, detRange="-1 -1", NumOfPixel=4, timeRange="-1 -1", frameBoundary=0.0) 中性子モニターのイベントデータをdT/T constantのヒストグラムに変換する。 :param int runNo: RunNo :param string tofRange: ヒストグラム上のTOFの範囲、TOFの範囲(最小値と最大値)スペース区切りで表記(" ") :param float racio: deltaT/T Constの値を指定 :param string detRange: 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記 :param int NumOfPixel: 検出器(PSD)あたりのPixel数 :param string timeRange: 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記 :param float frameBoundary: セカンドフレーム使用時の境界となるTOF値 :return: ヒストグラムデータ :rtype: ELementContainerMatrix .. _RefGetHistToDTconstNeunetPsd: .. py:function:: 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) 中性子イベントデータをdT/T constantのヒストグラムに変換する。 :param int runNo: RunNo :param bool isTimeFoc: ヒストグラム化時に、Time Focusingを行うかどうか :param string tofRange: ヒストグラム上のTOFの範囲、TOFの範囲(最小値と最大値)スペース区切りで表記(" ") :param float racio: deltaT/T Constの値を指定 :param string detRange: 検出器の範囲。DetIDの範囲(最小値と最大値)をスペース区切りで表記 :param int NumOfPixel: 検出器(PSD)あたりのPixel数 :param string timeRange: 時間スライスの指定として時間の範囲(最小値と最大値)をスペース区切りで表記 :param float frameBoundary: セカンドフレーム使用時の境界となるTOF値 :return: ヒストグラムデータ :rtype: ELementContainerMatrix 共通データファイル入出力処理 ================================ .. _RefSaveDataToManyoBinary: .. py:function:: SaveDataToManyoBinary(dat, path="./", filename="Sample.mdb") 万葉ライブラリのデータコンテナを万葉ライブラリ標準のバイナリファイルとして書き出す。なお、与えるデータのフォーマットは **ElementContainer** , **ElementContainerArray** , **ElementContainerMatrix** のいずれでも良い。またファイル名のデフォルトの拡張子は **.mdb** である。 :param ElementContainer,-Array,-Matrix dat: 保存するElementContainer, -Array, -Matrix :param string path: 保存先のフォルダへの絶対パス :param string filename: 保存ファイル名(命名ルールとして拡張子に.mdbをつけること) :return: None .. _RefLoadDataFromManyoBinary: .. py:function:: LoadDataFromManyoBinary(path="./", filename="Sample.mdb") 万葉ライブラリ標準のバイナリファイルとして書き出されたデータコンテナを読み込む。ファイル名のデフォルトの拡張子は **.mdb** である。 :param string path: mdbファイルの入っているフォルダへの絶対パス :param string filename: 対象となるmdbファイルの名前 :return: 読み込んだデータ :rtype: ElementContainer,-Array,-Matrix .. _RefOutPutAllPixelToTxt: .. py:function:: OutPutAllPixelToTxt(dat, filepath="") 与えたElementContainerMatrix内の全データをテキストファイルに書き出す。 それぞれのPixelは *runNNNNNN_DDD_PPP.txt* のフォーマットの名前となる。ここでNNNNNNは、Run Number, DDDはElementContainerMatrix内のElementContainerArrayの順番、PPPはElementContainerArray内のElementContainerの順番。例としては、 *run123456_123_456.txt* となる :param ElementContainerMatrix dat: 保存するデータ :param string filepath: 保存ファイルへの絶対パス :return: None .. _RefSaveDataToNxspe: .. py:function:: SaveDataToNxspe(dat, path="./", filename="Sample", params="PSI:0.0,TEMP:300.0,USER:mlfuser") 非弾性散乱処理を行なったデータコンテナ(ElementContainerMatrix)をHoraceのフォーマットであるNXSPEファイルとして書き出す。 :param ElementContainerMatrix dat: 保存するElementContainerMatrix :param string path: 保存先のフォルダへの絶対パス :param string filename: 保存ファイル名、拡張子は不要(命名ルールとして.nxspeだが自動的に付与) :param string params: NXSPEファイルに追加する情報("PSI:0.0,TEMP:300.0,USER:mlfuser") :return: None .. _RefLoadDataFromNxspe: .. py:function:: LoadDataFromNxspe(path="./", filename="Sample.nxspe", num_of_pixels=100) HoraceのフォーマットであるNXSPEファイルを変換して空蟬で使用できるElementContainerMatrixに変換して読み込む。 :param string path: ファイルの入っているフォルダへの絶対パス :param string filename: 対象となるNXSPEファイルの名前 :param int num_of_pixels: Pixelのグループ化(PSD的に)を内部で行うのに必要なPixel数/1Group :return: 読み込んだデータ :rtype: ElementContainerMatrix .. _RefSaveDataToSPE: .. py:function:: SaveDataToSPE(dat, path="./", filename="Sample") 与えたElementContainerMatrixデータをSPEフォーマットに変換し書き出す。通常、SPEファイルは、yyyyy.SPEとyyyyy.PHXという二つのファイルによって構成されている。この関数では、両方のファイルの共通部分であるyyyyy部分を与えることで、両方のファイルを書き出す。 :param ElementContainerMatrix dat: 保存するElementContainerMatrix :param string path: 保存先のフォルダへの絶対パス :param string filename: 保存ファイル名、拡張子は不要(自動的に付与) :return: None .. _RefLoadDataFromSPE: .. py:function:: LoadDataFromSPE(path="./", spefile="Sample.spe", Ei=100.0, num_of_pixels=100, runNo="XXX000001") SPEフォーマットファイルからデータを変換しElementContainerMatrixとして取り出す。通常、SPEファイルは、yyyyy.SPEとyyyyy.PHXという二つのファイルによって構成されている。この関数では、両方のファイルの共通部分であるyyyyy部分を与えることで、両方のファイルを読み込む。 :param string path: SPEファイル、及びPHXファイルの入っているフォルダへの絶対パス :param string filename: 対象となるSPEファイル名とPHXファイル名(拡張子は不要) :return: 読み込んだデータ(空蟬のデータに変換済みであるので空蟬の可視化ソフトウェアなどで利用できる) :rtype: ElementContainerMatrix .. _RefSaveDataToDAVEgrp: .. py:function:: SaveDataToDAVEgrp(dat=DAT, path="./", filename="Sample.grp", startQ=1.0, endQ=1.0, frcQ=1, binE=0.0) 与えられたELementContainerMatrixデータをDAVE用のフォーマットに変換して書き出す。 :param ElementContainer dat: 保存するElementContainer :param string path: 保存先のフォルダへの絶対パス :param string filename: 保存ファイル名、拡張子は.grp :param float startQ: Qの最小値 :param float endQ: Qの最大値 :param float frcQ: 分割数 :param float binE: エネルギー方向のリビニング幅(0.0ならオリジナルのまま) :return: None .. _RefSaveDataToNVASQ: .. py:function:: SaveDataToNVASQ(dat, path="./", filename="Sample.nx", L1=25000.0, px=15000.0, py=0.0, pz=0.0) 与えたElementContainerMatrixデータをNovaSQ用のフォーマット(NeXus)に変換し書き出す。 :param ElementContainerMatrix dat: 保存するElementContainerMatrix :param string path: 保存先のフォルダへの絶対パス :param string filename: 保存ファイル名、拡張子は不要(自動的に付与) :param float L1: L1 [mm] :param float px: Pixel位置のx座標 [mm] :param float py: Pixel位置のy座標 [mm] :param float pz: Pixel位置のz座標 [mm] :return: None .. _RefSaveDataToSrlz: .. py:function:: SaveDataToSrlz(dat, path="./", filename="Sample.srlz") 与えたElementContainer, -Array, -MatrixデータをManyoライブラリシリアライズフォーマットに書き出す。このフォーマットは非常に高速に読み書きができるが、そのPCの環境に依存するので、他のPC(同じOSでも)で作成されたファイルを読み込むことはできない。 :param ElementContainer,-Array,-Matrix dat: 保存するElementContainer,-Array,-Matrix :param string path: 保存先のフォルダへの絶対パス :param string filename: 保存ファイル名、拡張子は.dmp :return: None .. _RefLoadDataFromSrlz: .. py:function:: LoadDataFromSrlz(path="./", filename="Sample.srlz", DataType="ECM") Manyoライブラリシリアライズフォーマットからデータを取り出す。このフォーマットは非常に高速に読み書きができるが、そのPCの環境に依存するので、他のPC(同じOSでも)で作成されたファイルを読み込むことはできない。 :param string path: シリアライズフォーマットファイル(.srlz)の入っているフォルダへの絶対パス :param string filename: 対象となるファイル名(.srlz) :return: 読み込んだデータ(シリアライズフォーマットファイルに含まれているデータに依存する) :rtype: ElementContainer,-Array,-Matrix .. _RefSaveDataToNeXus: .. py:function:: SaveDataToNeXus(dat, name="Data", path="./", filename="Sample.nx") 与えたElementContainerMatrixデータをNeXusフォーマットに書き出す。 :param ElementContainerMatrix dat: 保存するElementContainerMatrix :param string name: NeXusフォーマット内の所有者の名前 :param string path: 保存先のフォルダへの絶対パス :param string filename: 保存ファイル名、拡張子は.nx :return: None .. _RefGetDataFromNeXus: .. py:function:: GetDataFromNeXus(path="./", filename="Sample.nx") NeXusフォーマットファイルからデータを取り出す。 :param string path: NeXusファイルの入っているフォルダへの絶対パス :param string filename: 対象となるNeXusファイルの名前 :return: 読み込んだデータ(NeXusファイルに含まれているデータに依存する) :rtype: ElementContainer,-Array,-Matrix ------------------------- 使用頻度の低いもの ------------------------- .. _RefSaveDataToDump: .. py:function:: SaveDataToDump(dat, path="./", filename="Sample.dmp") 与えたElementContainer, -Array, -MatrixのデータをDumpフォーマットに書き出す。 ただし、これはPythonのシリアライズ機能を用いており、Python2とPython3で互換性がないので注意すること。 :param ElementContainer,-Array,-Matrix dat: 保存するElementContainer, -Array, -Matrix :param string path: 保存先のフォルダへの絶対パス :param string filename: 保存ファイル名(命名ルールとして拡張子に.dmpをつけること) :return: None .. _RefLoadDataFromDump: .. py:function:: LoadDataFromDump(path="./", filename="Sample.dmp") Dumpフォーマットファイルからデータを取り出す。 :param string path: Dumpファイルの入っているフォルダへの絶対パス :param string filename: 対象となるDumpファイルの名前 :return: 読み込んだデータ :rtype: ElementContainer,-Array,-Matrix 装置用処理・その他 ==================== 以下の処理は、現場で必要となることがほとんどである。 .. _RefAppendRawDataFiles: .. py:function:: AppendRawDataFiles(OutRunNo=990000, outDataPath="-", RunNo1=0, RunNo2=0, RunNo3=0, RunNo4=0, RunNo5=0, RunNo6=0) 複数のRaw Data(イベントデータ)を結合し、別データとして保存する。 :param int OutRunNo: 保存するデータのRunNo(このRunNoを名前に含んだフォルダを作成し保存) :param string outDataPath: 出力先フォルダ(この中にOutRunNoの名前を含んだデータフォルダが保存) :param int RunNo1: 結合するRunNo #1 :param int RunNo2: 結合するRunNo #2 :param int RunNo3: 結合するRunNo #3 :param int RunNo4: 結合するRunNo #4 :param int RunNo5: 結合するRunNo #5 :param int RunNo6: 結合するRunNo #6 :return: None .. _RefCheckDataProcess: .. py:function:: CheckDataProcess(dat, process="", isExact=True) データ処理の履歴管理用関数。 ElementContainerシリーズのヘッダに埋め込まれた vector のキー"DATAPROCESSED"の情報をチェックする。 :param ElementContainer,-Array,-Matrix dat: チェックするデータ :param string process: チェックするプロセス名 :param bool isExuct: プロセス名を厳密に判断するかどうか(Falseなら一部が含まれていればTrue) :return: 含まれているならTrue、含まれていないならFalse :rtype: bool .. _RefCopyData: .. py:function:: CopyData(first_run=10, last_run=-1, flag=0) 装置において、DAQ PC上のRaw Dataを解析PCへ集約・コピーする。各DAQ CPU上にあるデータを/data/XXX以下へ持ってくるための関数を実行する。測定中のデータおよび測定後のデータは、各DAQ CPUに分散して保存されているため、これらを解析するためには1ヶ所に集める必要がある。そのための関数である。(DR.CopyDataと全く同等) :param int first_run: コピーしたい最初のRun number :param int last_run: コピーしたい最後のRun number :param bool flag: コピーなら0、コピーではなくシンボリックリンクにするときは1 :return: None .. _RefCopyIroha2Params: .. py:function:: CopyIroha2Params(first_run=10, last_run=-1, flag=0, target="") 装置において、IROHA2 PC上のLog, Paramデータを解析PCへ集約・コピーする。 .. _RefMakeRunList: .. py:function:: MakeRunList(start_run=-1, end_run=-1, output="./run_list.txt", flag_proton=4, offset_sec=0.0, isCT8n=True, devTemp="LakeShore340", devGonio="Gonio") 装置において、Run No, 測定時間、温度、ゴニオ角度などの情報をリスト化する。