今回は短時間で遮蔽計算が可能なソフトウェアPOKERを紹介します。
点減衰核法(Point-Kernel)を利用しており、ソフトの名前POKERはここから来ています。放射線源から放出される一次放射線(無衝突線)と散乱放射線の寄与を分離し、後者を事前にデータ化したビルドアップ係数によって補正することで、遮蔽後の線量を迅速に推定することが可能です。線源と検出器の間に存在する1つの物質しかビルドアップ係数を適用することしかできません。また、他で発生した散乱線の寄与などは考慮していないため、モンテカルロシミュレーションよりは適用が限られます。
動作はwindowsに限られます。GUIでも操作可能である点が初心者に優しいところです。
POKERの使い方を学ぶ講習会が昨年の11月にあったようです。また、先月(2025年5月)の千代田テクノルの情報誌(FBNews)にも記事があります。詳細を知りたい方はそちらも読んでください。
完全に国産のソフトウェアであり、説明ドキュメントも整備されていますので、このページを順番に読んでもらうのが最も確実です。ただ、マニュアルを読む前に一度操作している画面を見て、流れを把握するとマニュアルの理解度が高くなるはずですので、簡単な使用例を紹介します。
※計算で使用する係数などはICRP2007年勧告に基づく最新データで、現在の法令はICRP1990に準拠しており、少し異なることに注意。高エネルギーでなければ計算結果は大きく異ならないようです。
ダウンロード
ダウンロードは公式サイトから申請します。
所属等を記載して、登録後にメールが送られてきます。

起動
メールに記載されたURLからzipファイルでダウンロードすることになります。解凍するとインストーラが一つだけ出てきます。
インストール時の注意点として、公式サイトにも記載されているように
- C:¥Program files
- C:¥Program files(x86)
をインストール先にはしないでください。

インストールできたら起動しましょう。
事前の準備
どんな体系を構築して、どんな計算をするのかイメージしましょう。
今回は以下のようなジオメトリで、線源にはX線(胸部撮影を想定)と18F(PET検査を想定)を用います。
なので線源は120kVpの連続スペクトルと511keVの単一光子です。

POKERの操作
POKERを起動すると以下のようなウィンドウが立ち上がります。
左側が設定、右側がその条件におけるジオメトリです。最初から立方体が表示されていますが、これはイメージで実際には立方体は配置されていません。

左端から順に設定していきます。
①Transform
動きに関する定義です。回転や平行移動などを設定し、その動作に名前(例:tr1)を付けます。
tr1を複数の物体に適用することができます。
ただし、平行移動だけであれば物体の定義において原点を調節すればtransformを使用する必要はありません。複雑な体系を構築する際にはtransformが必須です。
今回は平行移動しかしませんが、一応transformも少し使っていこうと思います。

1.transformをクリック
2.名前を指定
3.動作を指定
4.移動量等を入力(5の単位を参考に)
6.追加
7.追加
追加すると、以下のよう記述が左側のウィンドウに追加されています。

名前はshield_trとしました。この名前は後で使うので覚えておきましょう。単位は左側のUnitというところに書いてあるものに準じます。
②Body
次は配置する物体を定義します。
今回は鉛エプロン(鉛板)と患者(水の円柱)を作成します。
鉛エプロンは(0.025cm, 10cm, 50cm)のサイズ、患者は半径10cm, 高さ50cmとしました。
最初は患者(Patient)です。入力した名前を覚えておきましょう。

次に鉛エプロンを定義します。先ほど定義したtransform(shield_tr)も使うことに注意してください。そのため、物体の座標自体は原点(0,0,0)としています。また名前はshieldとしました。この名前を覚えておきましょう。

③Zone
次に作成した立体に物質を当てはめます。患者も鉛エプロンも用意されている水とLeadを使用しますので楽です。
名前はBodyで作成した物体の名前です。

鉛エプロンも同様です。

また、atmosphereというものがあります。物質を当てはめていないその他の物質になります。普通は空気(Air)を選ぶことになると思います。名前は指定できません。

以上の設定により、左側のウィンドウには以下のようなコードが記載されていると思います。

④Source
次は線源の情報を定義します。
検討1として、120kVpで撮影する胸部撮影を想定します。
SpekPy webから得られたスペクトルデータを使用します。
とりあえず条件を入力してCalculateを押すと・・・

想像したスペクトルにならずに以上に高いピークの特性X線が発生しています。
そういえばX線装置は総ろ過が2.5mmAl以上でなければならないと学校で習いましたね。

やっと見慣れたスペクトルになりました。Tableには具体的な数値が表示されていますので、それをコピーして、テキストファイルにまとめます。(書式や単位も合わせます)

では、使用するスペクトルデータの用意が終わったので、POKERに戻ります。
以下のように線源を追加して、いろいろと条件を入力していきます。

先ほど用意したスペクトルデータをインポートします。

最後に更新を押すと反映されます。
⑤Detector
次に線量を取得する範囲と、形式(点、1D, 2D, 3D)を選択します。今回は入射方向に沿った1次元とします。

⑥ビルドアップ係数
ビルドアップ係数についてはこちらのページを参考にしてください。今回はLeadが使われることになると思います。順番が関係します。

では、ここまでの体系の構築を確認します。

右側のウィンドウの上部に「図の更新」とあるので、それを押すと体系を確認できます。もし、これらのボタンが非アクティブな場合は設定が間違っているということになります。また、このボタンはある程度体系が完成しないとアクティブ状態になりません。
なんか鉛エプロンの幅が足りないし、いろいろ間違ってるな・・・
そんな場合には左側のウィンドウの情報を直接書き換えてしまいましょう。

最終的には、以下のような設定になりました。コメントの行は削除しました。


計算の実行
やっと体系の構築が終わりましたので、計算の実行をします。
右上のウィンドウの線量計算がアクティブになっていればクリックします。非アクティブであれば何か不備があるということなので、最初から確認してください。


計算にはそれほど時間がかかりません。計算が終わると左側のウィンドウが「出力」タブに自動的に変わります。線量のデータ等が記載されています。
また、同時にファイルにも出力されています。作業フォルダには2つのファイルができています。

3つのうち、上の2つが計算によって出力されたファイルです。
では、線量の分布を確認しましょう。


横軸は検出器の座標になります。今回はx=-15cmから+15cmまでの30cm分としています。鉛エプロンはx=-12cm, 患者はx=0のところに配置していますので、それぞれ3cm, 15cmのところが配置中心になります。
0.25mmPbのエプロンでも診断領域のスペクトルだと遮蔽効果が大きいのが分かります。
線源を18F(511keV)に変えてみよう
次に検討2です。PET検査を想定して18Fを配置します。では、線源を書き換えます。

今度はエネルギーの指定ではなく、核種の指定をします。核種名リストから18Fを選択します。
更新→入力を更新 で設定に反映させます。

ではもう一度計算してみましょう。

結果は以下の通りです。1cm線量当量率を示しています。

予想通り、511keVの高エネルギー光子の遮蔽に0.25mmPbは効果が小さいですね。
半価層としては大体4.1mm程度と言われています。
では追加の検証として・・・

として、計算しました。結果を表示すると、(放射能を1Bqとして計算してしまったので縦軸が小さな値となってしまった)

半分になるためには2.3e-8くらいじゃないといけないんだけれども。
ビルドアップのせいでしょうか、よくわかりません。
遮蔽計算なので安全側(過大評価)に算出されるのでしょうか。
間違っている場所があったらご指摘ください。
次回、POKERの講習会があれば参加して勉強してみます。
2025/6/26追記:この資料(放射線施設の遮蔽計算実務データ集2015を引用)によると511keVのガンマ線は鉛4mmで透過率60%とのことだったので、4.65e-08 × 0.6で2.79e-08となり、上の計算と一致しました。遮蔽計算の場合は少し過大評価側なのかもしれません。