RAIMについて ========================== .. contents:: 目次: :depth: 3 概要 ##################################### RAIM(Resonance Analysis code for IMaging)はJ-PARC MLFなどのパルス中性子源で測定される共鳴吸収スペクトルを解析し、原子核の密度や温度などの情報を求める解析コードである。 ここでいう共鳴吸収スペクトルは中性子共鳴吸収分光法(N-RAS:Neutron Resonance Absorption Spectroscopy)で測定された中性子透過率および共鳴吸収量(即発ガンマ線)の中性子飛行時間(TOF:Time-of-Flight)依存性を指す。 このマニュアルでは、中性子透過率で共鳴吸収スペクトルを測定する場合を透過型N-RAS、共鳴吸収量の場合を即発ガンマ線型N-RASと呼ぶ。 RAIMの特徴はパルス関数(減速材からの放出される中性子の時間分布)と共鳴吸収スペクトルの畳み込み計算を行うことで、パルス中性子源で測定される共鳴吸収スペクトルを正確に再現できることである。 したがって、RAIMでは共鳴吸収スペクトルデータに対してスペクトルフィッティングを行うことで、試料に含まれる特定の核種の密度(単位面積あたりの原子数)や温度を定量的に求めることができる。 また、RAIMはコード名にもあるように共鳴イメージングのために開発されたコードであり、計算設定のパラメータを極力少なくすることや、複数データを一括で処理するスクリプトを用意するなど、共鳴イメージングデータを容易に解析できることを目指している。 機能・特徴 ##################################### 断面積計算 ************************************* RAIMでは核データ処理コードFRENDYを用いて断面積計算を行う。 FRENDYは核データファイルから共鳴パラメータを読み取って断面積計算を行い、数値計算コードで使用する断面積ライブラリとして出力するコードである。 RAIMではFRENDYの断面積計算機能を利用して、Single-Level Breit-Wigner、Multi-Level Breit-Wigner、Reich-Moore等の近似による断面積計算を行うことができる。 使用できる核データのフォーマットはENDF-6であり、JENDL-4などが対象となる。 また、ポイントワイズ形式のデータにも対応しており、JENDL-4などのポイントワイズデータを利用しての計算も可能である。 共鳴吸収スペクトル計算 ************************************* 実験で測定される共鳴吸収スペクトルは、断面積と密度から計算される中性子透過率や共鳴吸収量がパルス関数によってなまされた形となる。 中性子透過率を :math:`Tr_{th}` 、パルス関数を :math:`R` とすると、測定される中性子透過率 :math:`Tr_{obs}` は以下の畳み込みの関係で表される。 .. math:: Tr_{th}(E) &= \exp(-\sigma(E)d) Tr_{obs}(t) &= \int^{\infty}_{0} R(t, E') T_{th}(E')dE' ここで、 :math:`E` は中性子エネルギー、 :math:`t` は中性子の飛行時間、:math:`\sigma` は全断面積、 :math:`d` は単位面積当たりの原子数密度を表す。 同様にして、共鳴吸収量 :math:`Y_{th}` と測定される共鳴吸収量 :math:`Y_{obs}` の関係は以下の通りである。 .. math:: Y_{th}(E) &= \left(1-\exp(-\sigma(E)d)\right)\frac{\sigma_{\gamma}(E)}{\sigma(E)} Y_{obs}(t) &= \int^{\infty}_{0} R(t, E') Y_{th}(E')dE' ここで、 :math:`\sigma_{\gamma}` は捕獲断面積を表す。 RAIMは上記の式を用いてパルス関数を考慮した共鳴吸収スペクトルを計算することができる。 また、J-PARC MLFの中性子源に入射する陽子ビームは時間的に2つのバンチを持つ、ダブルバンチ構造をしている。 このダブルバンチ構造によって比較的中性子エネルギーの高い領域の場合にはパルス関数も2つに分離してくる。 RAIMではこの影響も考慮できるようにしている。 スペクトルフィッティング機能 ************************************* 測定された共鳴吸収スペクトルデータに対して最小二乗法によるスペクトルフィッティングを行うことができる。 求めることができるパラメータは、飛行距離とTOFのずれ、ベースライン、試料の密度、温度、パルス関数のパラメータである。 ベースラインは最大4次の多項式で計算する。 透過型N-RASのデータに対してはベースラインを乗算し、即発ガンマ線型N-RASのデータに対してはベースラインを加算する。 フィッティングでは多項式の各項の係数を調整する。 RAIMでは試料に含まれる物質を定義する際に、複数の物質を定義して物質ごとに密度を設定することができる。 フィッティングする場合には、指定した物質の密度を求めることができる。 例えば、物質A、物質B、物質Cで構成された試料を定義した場合、物質Aだけの密度を求めたり、物質Bと物質Cの密度を求めたりすることができる。 このとき、各物質を構成する核種の組成比は固定されるので、天然存在比を崩さずに特定の元素の密度を求めることができる。 温度を求める手法として、あらかじめ複数の温度における共鳴吸収スペクトルを計算し、それらの内挿から温度を求める機能を持っている。 これをRAIMでは温度マップと呼んでいる。 通常、フィッティングで温度を求める場合にはイタレーションのたびに断面積を計算する必要があるため、非常に計算コストがかかる。 温度マップを利用したフィッティングの場合、内挿を利用するため高速に計算することができるため、大幅に計算コストを削減することができる。 RAIMはJ-PARC MLF BL22で使用することを念頭に開発されているため、パルス関数としてCole-Windsor関数を採用している。 この関数のパラメータはエネルギー依存性を有しているが、RAIMの機能を用いることで特定のエネルギーにおけるパラメータ値を求めることができる。 イメージングデータ解析 ************************************* イメージングデータを解析するために、複数の測定データをまとめてフィッティングする機能がある。 この機能を使うと、各データに対する密度や温度の値をCSV形式のファイルとしてまとめて出力することができる。 動作環境 ##################################### RAIMはLinuxで動作する。動作確認はUbuntuで行っている。必要なソフトウェア等を以下に示す。 .. csv-table:: ソフトウェア要件 :header-rows: 1 :widths: 40, 60 :name: software_requirements 項目, 要件 プログラミング言語, Python3、C/C++ C/C++ライブラリ, Boost、Lapack、BLAS Pythonライブラリ, numpy、scipy、matplotlib、pybind11