Geant4 とは
Geant4 とは,粒子と物質の相互作用をシミュレートするための C++ ツールキットです。ここでいう粒子とは,素粒子,広い意味での放射線,可視光帯の光(光子)を指します。よくあるLHCの中でいろんな色の線が飛び散ってる画像を想像してもらえば大体合っていると思います。
Geant4 は何であるか
Geant4 はあくまで C++ ツールキットにすぎないので,これを使ってユーザがアプリケーションをつくる必要があります。裏を返せば自由度が高いということでもあります。データをCUIやGUIで渡して,特定の形式の結果が得られるというシミュレーションソフトウェアもあると思いますが,一方 Geant4 を用いることでユーザーは望むままにアプリケーションを書くことができます。前者にも手軽で使い勝手がいいという利点がありますが,研究目的などで細かいところをいじりたい場合は自分でコードを書くほうが適切な手段でしょう。
自分でコードを書くと言っても,場合によっては非常に楽です。Physics List としてある程度の数の物理相互作用が実装されており,シミュレーションにおける物理過程すら自分で実装しなくて済むかもしれません。この場合,初期条件と情報の取得さえ実装すればよいです。
Geant4 で何ができるか
抽象的な言い方をすれば,
- 空間を定義
- 物質を抽象的に定義
- 空間内に物質を具体的に配置
- 空間内に粒子を生成
- 粒子が飛ぶので好きなように情報を取得する
- 全粒子のエネルギーが0になったり空間の端に到達したら終了
となります。
具体的には,身近なところでは放射線に関する医療のシミュレーションソフトウェアの中身になっていたり,遠いところでは宇宙に飛ばす天体観測衛星の検出器のシミュレーションをしていたり,加速器のシミュレーションをしていたりします。
さらに詳しい情報を複数の記事にわけて書くつもりですが,KEKの初心者講習会のページ にある資料が参考になりますので,ぜひご参照ください。