5.30. [ User Defined Interaction ], [ User Defined Particle ] セクション

このセクションは、ユーザーが定義した相互作用または粒子を利用するためのセクションです。

  • 詳細は /phits/utility/UserDefinedModel/readme-jp.pdf を参照してください。

  • 現在、電子、陽電子および光子で User Defined Interaction を使用する場合は EGS5 を使用する必要があります( negs=1, 2 )。

  • 設定可能なユーザー定義粒子の kf-code 値の範囲は \(900000 \le \mathrm{kf} \le 999999\) または \(-999999 \le \mathrm{kf} \le -900000\) です。

/phits/src/ フォルダに関連する以下の3種類のファイルがあります。

  1. udm_int_<NAME>.f90 ユーザーが定義した相互作用の情報(断面積など)が書かれたモジュールが定義されたソースファイル。 ファイル名の <NAME> の部分は、ユーザーが任意に決められます。 udm_int_sample.f90 は初めから /phits/src/ フォルダに入っています。 このサンプル・ソースでは、100 MeV 以上の電子または陽電子が、原子番号 \(Z\) の物質と \(Z\times 10^{-6}\) barn の断面積で相互作用し、ユーザー定義粒子を1つ放出します。

  2. udm_part_<NAME>.f90 ユーザーが定義した粒子の情報(質量、寿命、分岐比など)が書かれたモジュールが定義されたソースファイル。 ファイル名の <NAME> の部分は、ユーザーが任意に決められます。 udm_part_sample.f90 は初めから /phits/src/ フォルダに入っています。 このサンプルコードでは、電子ニュートリノに崩壊するユーザー定義粒子を定義します。 その質量と寿命はインプットファイルで指定できます。

  3. udm_manager.f90 使用するモジュールを指定するファイル。

以下は、 [ User Defined Interaction ] の入力例です。

リスト 5.30.1 [ User Defined Interaction ] セクションの例題(1)
[ User Defined Interaction ]
$ Name           Bias    Parameters
my_interaction   1.0e+5  900000

この入力例は、初めから入っている udm_int_sample.f90 を動かすためのインプットファイルです。 第1、第2引数は、使用するモジュールの Name とバイアス値を入力します。 例えば、 my_interaction は、 udm_int_sample.f90 で定義されている udm_int_sample モジュールの Name 変数に代入された文字列と同じものです。 バイアスの値を1以上にすることで、断面積の小さいプロセスの発生頻度を上げることができます。 その場合、発生粒子の重みは自動で調整されるため、平均的な最終結果はバイアスの値に依りません。 第3引数では0個以上のパラメータ値を入力できます。 使用するパラメータの個数や意味は、使用するソースファイルに依存します。 udm_int_sample モジュールの場合、パラメータ値の1番目は、生成するユーザー定義粒子の kf-code です。

以下は、 [ User Defined Particle ] の入力例です。

リスト 5.30.2 [ User Defined Particle ] セクションの例題(1)
[ User Defined Particle ]
$ Name       kfcode   Parameters
my_particle  900000   1.0 1e-8

この入力例は、初めから入っている udm_part_sample.f90 を動かすためのインプットファイルです。 第1、第2引数は、使用するモジュールの Name と、このファイルで扱う粒子の kf-code を入力します。 例えば、 my_particle は、 udm_part_sample.f90 で定義されている udm_part_sample モジュールの Name 変数に代入された文字列と同じものです。 第3引数では0個以上のパラメータ値を入力できます。 使用するパラメータの個数や意味は、使用するソースファイルに依存します。 udm_part_sample モジュールの場合、パラメータ値の1、2番目は、ユーザー定義粒子の質量(MeV)と寿命(秒)です。 udm_part_<NAME>.f90 ファイルはユーザー定義粒子だけでなく、既存の粒子の性質(寿命や分岐比)を変更することもできます。

5.30.1. ユーザーコードの応用例

5.30.1.1. 例1: 陽電子起因のミューオン対生成

\(e^+e^-_{\rm atomic}\to\mu^+\mu^-\)

ユーザーコード: udm_int_ee2mumu.f90

使用方法:

リスト 5.30.3 [ User Defined Interaction ] セクションの例題(2)
[ User Defined Interaction ]
$ Name     Bias      Parameters
ee2mumu    1.0e+5

5.30.1.2. 例2: ニュートリノ反応

データベースを読み込むことで、より幅広いニュートリノ反応を生成できます。 データベースの例を以下のURLからダウンロードできます。

https://rcwww.kek.jp/research/shield/sakaki/phits/temp.html

ユーザーコード: udm_int_neutrino.f90

使用方法:

リスト 5.30.4 [ User Defined Interaction ] セクションの例題(3)
[ User Defined Interaction ]
$ Name     Bias   Parameters
neutrino   1      <データベースフォルダの絶対パスまたは相対パス>

5.30.1.3. 例3: 指定の領域または粒子にのみエネルギーカットオフを適用する

ユーザーコード: udm_int_kill.f90

使用方法:

<kf-code> に対応する粒子を、領域番号 <reg> において、エネルギーが <emin> 未満で輸送したくない場合、これら3つの値を Parameters の部分に繰り返し書きます。 Bias の数値は無視されます。

リスト 5.30.5 [ User Defined Interaction ] セクションの例題(4)
[ User Defined Interaction ]
$ Name    Bias   Parameters
kill      1      <kf1> <reg1> <emin1>   <kf2> <reg2> <emin2>  ...

記入例1:

電子(kf=11)を領域 101 でエネルギーが 500 MeV 未満の場合、および中性子(kf=2112)を領域 102 でエネルギーが 100 MeV 未満の場合輸送しません。 kf=0 はすべての粒子を意味します。

リスト 5.30.6 [ User Defined Interaction ] セクションの例題(5)
[ User Defined Interaction ]
$ Name   Bias   Parameters
kill     1      11 101 500   2112 102 100

記入例2:

各行に <kf> <reg> <emin> の情報が書き込まれたデータファイルを用意します。 Parameters の部分にそのファイルの相対パスまたは絶対パスを記述します。

リスト 5.30.7 [ User Defined Interaction ] セクションの例題(6)
[ User Defined Interaction ]
$ Name   Bias   Parameters
kill     1      emin.txt

emin.txt の中身の例(数値が3つ並んでいない行はスキップされる):

リスト 5.30.8 emin.txt の例
#   kf  reg  emin
    11  101   100
   -11  101   100
  2212  102    50
     0  103    30