空蟬の環境¶
- 著者
稲村 泰弘
ここでは、インストールされた空蟬の環境について述べる。環境変数や使用するディレクトリなどは、空蟬のインストール時に作成されるが、それらの役割を理解してもらうのがこの項の趣旨である。
コードなどの配置¶
空蟬のコード(ライブラリも含む)は、主に二つのパートに分けられる。
Manyoライブラリパート
Pythonコードパート
Manyoライブラリパートは、C++でManyoライブラリをフレームワークとして開発されたコード群であり、ManyoライブラリとともにコンパイルされPythonからimportすることで利用出来る。場所は、Manyoライブラリのインストール先 MANYO_PATH の下に入っている。
${MANYO_PATH}/Manyo/Utsusemi
Pythonコードパートは、Pythonで書かれたコード群で、主に
データリダクション
可視化(データプロット)
グラフィカルインターフェース
に分かれる。 これらは、すべて python-utsusemi ディレクトリ(空蟬ルートディレクトリ)に格納されている。 また、空蟬を用いるビームライン固有のコード群は、その直下のディレクトリ
python-utsusemi/XXX
に配置される。
その関連図を示す。
基本的な配置構造として、 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フォルダが使用される。 |