egs5のお遊び日記

egs5でできること( ..)φメモメモ

egs5を使う上で役立ちそうなことを紹介しています!

egs5でエネルギー付与をcsvファイル出力する方法(パルス波高分布の表示)

 

本記事の紹介

本記事は、放射線輸送計算コードegs5の公式より配布されている『ucnaicgv』のシミュレーション中において、光子がエネルギー付与した値などをcsvファイル出力する方法を紹介します。(egs5公式はこちら

具体的には、エネルギー1.253MeVの光子(γ線)をucnaicgv.dataによって定義されたNaI検出器の体系に向かって放射したときに、NaIに付与されるエネルギーをcsvファイルに出力してパルス波高分布(γスペクトル)として見てみたいということです。

なお、デフォルトの『ucnaicgv』のシミュレーションで出力されるegs5job.outからPulse height distributionとしてパルス波高分布がわかりますが、光子数で割った値となっています。ここでは、横軸エネルギー(KeV)、縦軸count(計数値)のパルス波高分布を見てみたいと思います。

 

前準備と環境

・egs5が動作する環境があれば大丈夫です。

・OSはwindows10です。

・今回使用しているコンパイラはgfortranです。g77は試してないのでわかりませんが、可能だと思います。(できなかったらご指摘ください。)

 

手順1

以下のようにucnaicgvシミュレーションが動作する環境を作成してください。

『ucnaicgv.f』内のプログラムを書き換えていきます。

f:id:denkigakusei:20220107115023p:plain

コマンドプロンプトの画面

f:id:denkigakusei:20220107115145p:plain

フォルダと作成されたファイル

手順2

解析状況を出力するためのcsvファイルを作成するためSTEP1のファイル定義の部分に

      open(51,FILE='Pulse height distribution.csv',STATUS='replace')

と入力します。数字やファイル名は適当でいいですが、数字はあとのプログラムでも同じ数字に変更する必要があります。

f:id:denkigakusei:20220107152115p:plain

 

手順3

作成したcsvファイルにNaIに付与されたエネルギーを出力するため、if (depe .gt. 0.D0) thenの直後に

          write(51,500) depe*1000
500       FORMAT(F12.6)

と入力します。

これによって、ausgabにより出力されたdepe(NaIへの付与エネルギー)の値が0より大きいとき、depeの値を作成したcsvファイルに出力するようになります。depe*1000としているのはMeVをkeVに変換するためです。(MeVで表示させたい場合は*1000を消して利用してください。)

f:id:denkigakusei:20220107152608p:plain

 

実行結果の見方

実行最初に、ucnaicgv.fがあるフォルダに『Pulse height distribution.csv』というテキストファイルが作成されます。

ファイルを開くと下図のようになっていると思います。

f:id:denkigakusei:20220107161704p:plain

A1を選択してShift+Ctrl+↓で全選択し、挿入のグラフのヒストグラムをクリックすることでパルス波高分布を表示することができます。(横軸のビン数を変更することができます。)

f:id:denkigakusei:20220107162115p:plain

ucnaicgv.dataで作成されたNaI検出器のNaIの領域は結構大きいので、ほとんど入射するエネルギーである1253keVのcountが大きいです。また、1050~1120keVは他のエネルギーよりcountが小さいです。これは980~1050keVの間にコンプトンエッジがあるからだと考えられます。