OpticalPhysicsしたい(G4OpticalPhysics
)
G4OpticalPhysics
は、光子(G4OpticalPhoton
)などの光学的な相互作用を扱うための物理モジュールです。
このクラスをRegisterPhysics
で追加することで、以下のような光に関するプロセスを有効にできます。
チェレンコフ光(
G4Cerenkov
)シンチレーション光(
G4Scintillation
)吸収(
G4OpAbsorption
)レイリー散乱(
G4OpRayleigh
)ミー散乱(
G4OpMieHG
)波長変換(
G4OpWLS``と``G4OpWLS2
)境界での散乱(
G4OpBoundary
)
参考
メイン関数(main
)
1int main()
2{
3 // 物理モデルの設定
4 auto* physics = new FTFP_BERT{};
5 physics->RegisterPhysics(new G4OpticalPhysics{});
6 rm->SetUserInitialization(physics);
7
8 // 光学物理のパラメーターを設定(後述)
9 ConfigureOpticalParameters();
10
11 // 実験開始(省略)
12 rm->Initialize();
13 rm->BeamOn();
14
15 delete rm;
16 return 0;
17}
メイン関数で物理モデルを設定する部分を抜粋しました。
メインの相互作用(FTFP_BERT
モデル)に
OpticalPhysics
を追加し、
G4OpticalParameters
のパラメーターを変更しています。
パラメーターしたい(G4OpticalParameters
)
1void ConfigureOpticalParameters() {
2
3 // OpticalPhysicsのパラメーター設定
4 auto* params = G4OpticalParameters::Instance();
5
6 // G4Cerenkovの設定
7 params->SetMaxNumPhotonsPerStep(100);
8 params->SetMaxBetaChangePerStep(10.0);
9 params->SetCerenkovStackPhotons(true);
10 params->SetCerenkovTrackSecondariesFirst(true);
11 params->SetCerenkovVerbosity(1);
12
13 // G4Scintillationの設定
14 params->SetScintYieldFactor(1.0);
15 params->SetScintExcitationRatio(0.0);
16 params->SetScintByParticleType(false);
17 params->SetScintTrackInfo(false);
18 params->SetScintTrackSecondariesFirst(true);
19 params->SetScintFiniteRiseTime(false);
20 params->SetScintStackPhotons(true);
21 params->SetScintVerboseLevel(1);
22
23 // G4OpAbsorptionの設定
24 params->SetAbsorptionVerboseLevel(1);
25}
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で有効にする物理プロセスを選択できます。
デフォルトでは、関係するすべてのプロセスが有効になっています。