はじめに#

本書について#

本書はJ-PARC物質・生命科学実験施設(MLF)の中性子散乱実験装置で使用される汎用データ処理環境である 空蟬[InstRef.1])を使用するために必要なインストールに関するマニュアルである。 主に本書では空蟬をPCにインストールし、データ処理を行う環境を構築する方法を記述している。空蟬自体の基本的な使用方法については、今後発行予定の空蟬ユーザーズマニュアルを参照していただきたい。

また本書の内容は執筆時(2022年11月現在)の情報であり、対応するOSのアップデートなどで常に更新される。最新の情報は 空蟬ポータルサイト[InstRef.2])より入手可能である。

空蟬ポータルサイト (https://mlfinfo.jp/groups/comp/ja/utsusemi.html)

インストールの概要#

空蟬のインストール方法は、大きく分けて2種類用意されている。一つはバイナリインストーラであり、もう一つはソースコードからのコンパイルである。

本書執筆時では、下記のようにインストール方法が確立されている。

  • バイナリインストーラによる方法

    • Ubuntu Linux用バイナリパッケージ(Ubuntu 20.04, 22.04のみ)

    • Windows用バイナリインストーラ

    • macOS用バイナリインストーラ

  • ソースコードからのコンパイルによる方法

    • Ubuntu Linux用(18.04, 20.04)

    • RedHat互換Linux用(CentOS 7.x, AlmaLinux 8.x, RockyLinux 8.x)

次章以降で、上記のそれぞれのインストール方法について章に分けて記述する。

空蟬の概要#

空蟬は、J-PARC、 MLFで使用されているDAQミドルウェア([InstRef.3])のMLFコンポーネントが出力するイベントデータのデータリダクション、可視化や補正を行うためのコード群である。MLFで開発が進められているデータ処理基盤である万葉ライブラリ([InstRef.4])を利用し、柔軟なヒストグラム化、特に試料環境や装置状態を加味したデータ分別機能を使用した高度な解析を目指す。 また、測定中のデータを安全に解析できる Live Data Reduction のMLFでの実用化も目指している。

現在既に多くの装置に導入が進み、MLFにおける解析ソフトウェアのフレームワーク的な役目を担う。

以下に本書で取り扱う空蟬についてその概要を述べる。

何ができるか#

MLFにおける多くの装置では、核破砕型中性子源から発生した中性子(入射中性子)を測定試料に照射し、試料内で原子分子と相互作用して出てきた中性子(散乱中性子)を検出器にて検知・収集する。いわゆる中性子散乱測定では、散乱された中性子の方向やエネルギーを捉える必要があるが、散乱方位は検出器の位置情報を用いて、エネルギーは飛行時間法(Time-Of-Flight法:発生中性子のエネルギーを距離と時間で分別する手法)を用いて知ることができる。この散乱中性子の検出された時間と位置情報はイベント記録方式で保存(イベントデータ)されるが、このデータを柔軟に活用し試料内部の情報(原子分子の構造や振動状態など)を得るためのデータ処理を行うことが、空蟬の主要な目的である。 同様にいくつかのデータ補正機能や可視化機能が搭載されている。

空蟬の構成#

空蟬は万葉ライブラリと呼ばれるMLF標準として使用されるデータ処理基盤ソフトウェアをベースとして構築されている。万葉ライブラリでは基本的なコードはC++で書かれているが、そのインターフェースとしてPythonを利用しているため、ユーザーはPythonコードから万葉ライブラリの関数を自由に呼び出せる。同様に空蟬も多数の独自関数を含んでおり、それらの大半はPythonから使用される。ただしC++のコア関数は非常にプリミティブなものが多いため、実際のユーザーはさらにPythonのコードで使いやすい形にされた関数(ファサード関数)を利用することになる。このファサード関数を組み合わせてシーケンスを作成し簡単に実行するためのソフトウェアも用意されている。

また、データを可視化するために必要なソフトウェアも用意されている。かつては空蟬に含まれていた汎用可視化ソフトウェアの一部は、夕顔という名前で分離させて別モジュールとして扱うようになっている。そのため多くの空蟬のソフトウェアは夕顔が必須である。

したがって空蟬と呼ばれるものの広義な意味での構成は下図のように、万葉ライブラリ、夕顔、そして空蟬の3種類のコードやモジュール群が組み合わさったものとも言える。

../../_images/Structure_Between_Manyo_uGao_Utsusemi1.png

Structure of Utsusemi in a broad sense#

よって空蟬にて使用できる機能(関数)やソフトウェアは以下のような構成となっている。

  • データ処理機能

    • 基本Python関数群(空蟬環境のPythonスクリプトで使用できるコマンドなど)

    • ファサード関数群(基本関数を使いやすくまとめたコマンド群)

    • コマンド実行ソフトウェア(ファサード関数を組み合わせてスクリプト作成・実行するソフトウェア)

  • 可視化ソフトウェア

    • 各種汎用可視化ソフトウェア(”夕顔MPlot”, “夕顔M2Plot+”, “DetectMap”)

    • 非弾性散乱用可視化ソフトウェア(”VisualContM”, “D4MatSlicer”)

動作環境#

空蟬は、 Python 3.6 以降 (64bit) が動作する以下に示すOSの上でのみ動作する。

Available operation systems for Utsusemi#

OS

Architecture

ディストリビューションなど

Linux

x86_64, arm64

Ubuntu 18.04, 20.04, 22.04 / CentOS 7.x, 8.x

/ AlmaLinux 8 / RockyLinux 8

Windows

x86_64

Windows 10, 11

macOS

x86_64 (Intel)

10.14(Mojave), 10.15(Catalina), 11.6(Big Sur), 12.4(Monterey)

macOS

Apple Silicon

12.4(Monterey)

またインストールを行う際のPCは、少なくとも8GB以上のメモリ容量、1GBのストレージの空き容量が必要である。 データ処理時の要求メモリは、典型的なBLの1つのRunを処理するのに0.5GB程度、複数同時に処理する場合はその倍数程度が必要となる。 特殊な多次元空間データ処理アプリケーション(D4mat2など)では、最低でも32GBは必要となる。

主な機能#

  • MLFのイベントデータのヒストグラム化機能

    • DAQミドルウェアが出力するイベントデータをヒストグラム化

      • ヒストグラムの横軸単位 : TOF, λ, Q(momentum transfer), Energy, EnergyTransfer, d値

    • フィルタリングの使用 : 時間分解、外部TTLシグナルを使用したデータ分別

  • 汎用的なコマンドシーケンス実行ソフトウェア(SequenceEditor)

    • スクリプトはコマンドラインでも実行可能

  • 汎用的可視化ソフトウェア 夕顔 を用いたプロッタ

    • 1次元プロッタ(MPlot)

    • 2次元プロッタ(M2Plot+)

  • 検出器マップ表示プロッタ(DetectMap)

  • 中性子散乱測定のデータ処理・可視化ソフトウェア

    • 簡単な補正 (検出器効率補正, 立体角補正, 規格化, 非弾性専用補正ki/kfなど)

    • 単結晶非弾性散乱測定の可視化(VisualContM)

    • 単結晶多次元測定の可視化(D4MatSlicer, D4Mat2Slicer)

対応する中性子検出用モジュール#

様々な検出器からのシグナルは、それぞれ専用のハードウェア機器(モジュール)で収集され、DAQミドルウェアを通すことでイベントデータ化される。MLFのイベントデータはモジュールごとに少しフォーマットが異なるため、その対応状況を示す。

Available DAQ electronics modules on Utsusemi#

対応検出器

モジュール名

モジュールの説明

PSD(一次元位置敏感型検出器)

NEUNET

1次元型の検出器用のモジュール

窒素モニター

GATENET

0次元型の検出器用のモジュール

汎用シグナル

TrigNET

シグナルによって同時に測定されている中性子イベントを分別し、個別に解析するために使用

ガンマ線検出器

APV8008

1次元シンチレーションカウンター 2次元系検出器

Readout, ReadoutGate

2次元系検出器(WLSF,MWPC,RPMT)にも対応

導入されているMLFのビームライン#

2022年度現在で、空蝉が導入されているビームラインは以下のようになっている。

Beam lines which imported Utsusemi#

BL

名前

コード

使用形態

BL01

四季

SIK

空蟬

BL02

DNA

DNA

空蟬+DNA用拡張

BL11

PLANET

HPN

空蟬+HPN用ソフトウェア

BL14

アマテラス

AMR

空蟬

BL15

大観

SAS

空蟬+SAS用拡張

BL17

写楽

NVR

空蟬

BL19

ENG

空蟬+ENG用ソフトウェア

BL21

NOVA

NVA

空蟬(一部)

開発環境#

開発環境は以下のようになっている。

Environment for Development#

項目

使用

開発言語

C++, Python3 (3.6, 3.8)

メイン開発環境

Linux ( Ubuntu 20.04 )

利用外部ライブラリ(C++)

万葉ライブラリ環境(Boost, HDF5, NeXus, MiniXML, gsl)

利用外部ライブラリ(Python)

numpy, scipy, matplotlib, PySide2( Qt ), pyqtgraphなど

動作確認環境

Ubuntu linux 16.04(64bit), 18.04, 20.04 / CentOS 7.x, 8.x / Windows 10 (64bit) / macOS (10.14, 10.15, 11.6, 12.5)

ライセンス#

空蟬のライセンスは GPLv3[InstRef.5])に従うものとする。

入手方法#

空蟬ポータルサイト (https://mlfinfo.jp/groups/comp/ja/utsusemi.html) より入手。

参考文献#

InstRef.1

Development status of software ‘Utsusemi’ for Chopper Spectrometers at MLF, J-PARC. Y. Inamura, T. Nakatani, J. Suzuki, T. Otomo, J. Phys. Soc. Jpn. 2013, 82, SA031-1 - SA031-9

InstRef.2

空蟬ポータルサイト https://mlfinfo.jp/groups/comp/ja/utsusemi.html

InstRef.3

Development of a data acquisition sub-system using DAQ-Middleware K.Nakayoshi, Y.Yasu, E.Inoue, H.Sendai, M.Tanaka, S.Satoh, S.Muto, N.Kaneko, T.Otomo, T.Nakatani and T.Uchida, NIM-A, 600, 173-175, 2009.

InstRef.4

Object-oriented data analysis framework for neutron scattering experiments J. Suzuki, T. Nakatani, T. Ohhara, Y. Inamura, M. Yonemura, T. Morishima, T. Aoyagi, A. Manabe, T. Otomo, Nuclear Inst. and Meth. Phys. Res. 2009, 600, 123.

InstRef.5

GPLv3 http://www.gnu.org/licenses/gpl.html