空蟬の環境

著者

稲村 泰弘

ここでは、インストールされた空蟬の環境について述べる。環境変数や使用するディレクトリなどは、空蟬のインストール時に作成されるが、それらの役割を理解してもらうのがこの項の趣旨である。

コードなどの配置

空蟬のコード(ライブラリも含む)は、主に二つのパートに分けられる。

  1. Manyoライブラリパート

  2. Pythonコードパート

Manyoライブラリパートは、C++でManyoライブラリをフレームワークとして開発されたコード群であり、ManyoライブラリとともにコンパイルされPythonからimportすることで利用出来る。場所は、Manyoライブラリのインストール先 MANYO_PATH の下に入っている。

${MANYO_PATH}/Manyo/Utsusemi

Pythonコードパートは、Pythonで書かれたコード群で、主に

  1. データリダクション

  2. 可視化(データプロット)

  3. グラフィカルインターフェース

に分かれる。 これらは、すべて python-utsusemi ディレクトリ(空蟬ルートディレクトリ)に格納されている。 また、空蟬を用いるビームライン固有のコード群は、その直下のディレクトリ

python-utsusemi/XXX

に配置される。

その関連図を示す。

figure of folders structure on Utsusemi environment

基本的な配置構造として、 python-utsusemi 以下にあるディレクトリは

ana , vis , facade

の3つである。また装置固有のコードなどを含める XXX は、空蟬ルートディレクトリ配下にあり、XXX 以下のディレクトリも空蟬ルートディレクトリ同様に ana , vis , facade を含めることにしている。

python-utsusemi(空蟬ルートディレクトリ) 以下のディレクトリ

ana

SequenceEditor.py

データリダクション用グラフィカルインターフェースソフトウェア

Reduction

データリダクションモジュールを収める

vis

可視化用コードを収める

facade

SequenceEditorで扱うコマンドファサードを収める

XXX

facade, ana など

装置固有のコードやパラメータを収める。

特に、XXX 以下の XXX/ana/xml にはヒストグラム化に必要となる装置固有パラメータである、

  • WiringInfo

  • DetectorInfo

などがあるので、留意しておく必要がある。

必要な環境変数

空蟬をパッケージとしてみた場合、必要な環境変数は空蟬ルートディレクトリ( python-utsusemi )へのパスを、Pythonの環境変数 PYTHONPATH に登録するだけである。しかし MLFソフトウェアとして動作させる(MLFのデータの場所など)ために、他にも幾つかの環境変数の設定が必要である。

その環境変数を以下に示した。

環境変数

役割

MANYO_PATH

Manyoライブラリの実行に必要なパスを与える。 "/opt/mlfsoft/manyo"など。

UTSUSEMI_BASE_DIR

空蟬のPythonコード(python-utsusemi)の場所を与える "/opt/mlfsoft/python-utsusemi"など。

UTSUSEMI_SYS_NAME

実行する環境の装置のコードを与える。 "SIK", "AMR", "HPN"など。

UTSUSEMI_DATA_DIR

RAWデータの場所を与える。"/data"など。

UTSUSEMI_USR_DIR

装置用Pythonコードの場所を与える。通常は ${UTSUSEMI_BASE_DIR}/${UTSUSEMI_SYS_NAME}でよい。 "/opt/mlfsoft/python-utsusemi/SIK"など。

UTSUSEMI_USR_PRIV_HOME

ユーザーのプライベートフォルダを与える。 この中にana/xmlやana/tmpが存在することが期待される。 デフォルトは${HOME}でよい。 "/home/hoge"など。

PYTHONPATH

空蟬のPythonコード実行に必要なパスを全て与える。 通常は、PYTHONPATH = ${MANYO_PATH}: ${UTSUSEMI_BASE_DIR}:${UTSUSEMI_BASE_DIR}/facade: ${UTSUSEMI_USR_DIR}/facade

LD_LIBRARY_PATH

空蟬のC++コード実行に必要なパスを全て与える。 通常はLD_LIBRARY_PATH=${MANYO_PATH}/lib

PATH

実行ファイルの置き場所。通常は 通常はPAHT=${MANYO_PATH}/bin:${PATH}

参考のために、これらの環境変数を設定するために使用しているシェルスクリプト(Linux用)を載せる。 Linuxでは、このスクリプトを起動時(ログイン時)に走らせることで、空蟬環境として起動させることが可能である。

# BL info
XXX=SIK

# Path to Manyo-lib
export MANYO_PATH=/opt/mlfsoft/manyo

# Path to UtsusemiPy
PYUTSUSEMI_PATH=/opt/mlfsoft/python-utsusemi

# External Library path
UTSUSEMI_EXT_LIBRARY_PATH=/usr/local/lib

# Utsusemi Environment
export UTSUSEMI_BASE_DIR=${PYUTSUSEMI_PATH}
export UTSUSEMI_SYS_NAME=${XXX}
export UTSUSEMI_DATA_DIR=/data
export UTSUSEMI_USR_DIR=${UTSUSEMI_BASE_DIR}/${XXX}
export UTSUSEMI_USR_PRIV_HOME=${HOME}

# Python Path
PYTHONPATH=${MANYO_PATH}:${PYUTSUSEMI_PATH}:${PYUTSUSEMI_PATH}/facade:${UTSUSEMI_USR_DIR}/facade
export PYTHONPATH

# Shared Library Path
export LD_LIBRARY_PATH=${MANYO_PATH}/lib:${UTSUSEMI_EXT_LIBRARY_PATH}

# Executable path
export PATH=${MANYO_PATH}/bin:${PATH}

echo '==========================================='
echo ' Welcome to Utsusemi Environment for '${XXX}
echo '==========================================='
echo ' Ana   : Sequencer'
echo '==========================================='

# Alias

alias Ana='python '${PYUTSUSEMI_PATH}'/ana/Sequencer2.py &'

考慮すべきディレクトリ

また空蟬を動作させる場合に必要なディレクトリを以下に示す。 動作時にはこれらのディレクトリが存在している必要がある。 特にデータは確実にRun Numberごとのフォルダとして、置いておく。

ディレクトリ(環境変数)

具体例

内容

${UTSUSEMI_DATA_DIR}/${UTSUSEMI_SYS_NAME}

"/data/SIK"

対象となる装置のRAWデータの場所。 ここにSIK001234_20150809といったRun Numberごとのフォルダが配される。

${UTSUSEMI_USR_PRIV_HOME}

"/home/hoge"

ヒストグラム化実行時の一時ファイル保存などを行うホームディレクトリ。 主にこのディレクトリに anaフォルダがあることが空蟬に必要である。

${UTSUSEMI_USR_PRIV_HOME}/ana

"/holme/hoge/ana"

ヒストグラム化実行時の一時ファイルを保存する。 実際にはこのフォルダ内のxmlフォルダやtmpフォルダが使用される。