光学物理したい(G4OpticalPhysics)
1#include "FTFP_BERT.hh"
2#include "G4OpticalPhysics.hh"
3#include "G4OpticalParameters.hh"
4
5int main()
6{
7 // ベースとなる物理モジュールを指定する
8 auto *physics = FTFP_BERT{};
9 // 光学物理を追加する
10 physics->RegisterPhysics(new G4OpticalPhysics{});
11 // ランマネージャーに登録する
12 rm->SetUserInitialization(physics);
13 // 光学物理のグローバル設定
14 ConfigureOpticalParameters();
15
16 // ランマネージャーを初期化する
17 rm->Initialize()
18}
G4OpticalPhysicsは、光学光子(G4OpticalPhoton)の相互作用を扱うための物理モジュールです。
FTFP_BERTのような物理モジュールには、光学物理のプロセスは含まれていないため、RegisterPhysicsを使って、ユーザーが「トッピング」することで、光学物理のプロセスを有効にできます。
注釈
Geant4では、エネルギー領域や物理プロセスによって「光」のクラスが分かれています。
G4Gamma(ガンマ線)は、keV〜MeV以上の高エネルギー領域の光を「粒子」として扱うクラスです。
光電効果、コンプトン散乱、対生成などの物理プロセスに対応します。
G4OpticalPhoton(光学光子)は、eV領域(紫外線・可視光・赤外線など)の低エネルギー領域の光を「波」として扱うクラスです。
反射、屈折、吸収、波長変換などの物理プロセスに対応します。
また、G4MaterialPropertiesTableを使って光学特性を設定が必須です。
光学物理のプロセス
光の発生
チェレンコフ光(
G4Cerenkov)シンチレーション光(
G4Scintillation)
媒質中での輸送
吸収(
G4OpAbsorption)レイリー散乱(
G4OpRayleigh)ミー散乱(
G4OpMieHG)波長変換(
G4OpWLS/G4OpWLS2)
境界での散乱
反射・屈折・全反射(
G4OpBoundary)
光学物理を調整したい(G4OpticalParameters)
1#include "G4OpticalParameters.hh"
2
3void ConfigureOpticalParameters() {
4 // 光学物理のパラメータを管理するための関数
5 // 呼び出すタイミング:
6 // - physics-RegisterPhysics(new G4OpticalPhysics{}) した後
7 // - runManager->Initialize()する前
8
9 // OpticalPhysicsのパラメーター設定
10 auto* params = G4OpticalParameters::Instance();
11
12 // G4Cerenkovの設定
13 params->SetMaxNumPhotonsPerStep(100);
14 params->SetMaxBetaChangePerStep(10.0);
15 params->SetCerenkovStackPhotons(true);
16 params->SetCerenkovTrackSecondariesFirst(true);
17 params->SetCerenkovVerbosity(1);
18
19 // G4Scintillationの設定
20 params->SetScintYieldFactor(1.0);
21 params->SetScintExcitationRatio(0.0);
22 params->SetScintByParticleType(false);
23 params->SetScintTrackInfo(false);
24 params->SetScintTrackSecondariesFirst(true);
25 params->SetScintFiniteRiseTime(false);
26 params->SetScintStackPhotons(true);
27 params->SetScintVerboseLevel(1);
28
29 // G4OpAbsorptionの設定
30 params->SetAbsorptionVerboseLevel(1);
31}
G4OpticalParametersを使って、光学物理のパラメーターを変更できます。
G4OpticalParameters::Instance()はシングルトンになっているため、どこからでもグローバルに設定できます。
マクロで設定したい(/process/optical/)
/process/optical/verbose 1
# /process/optical/processActivation KEY bool
/process/optical/processActivation Cerenkov true
/process/optical/processActivation Scintillation true
/process/optical/processActivation OpAbsorption true
/process/optical/processActivation OpRayleigh true
/process/optical/processActivation OpMieHG true
/process/optical/processActivation OpBoundary true
/process/optical/processActivation OpWLS true
/process/optical/processActivation OpWLS2 true
G4OpticalParametersの設定はマクロで変更できます。
processActivationでOpticalPhysicsで有効にする物理プロセスを選択できます。
デフォルトでは、関係するすべてのプロセスが有効になっています。