OpticalPhysicsしたい(G4OpticalPhysics
)
1int main()
2{
3 G4VModularPhysicsList *physics = new FTFP_BERT{};
4 G4OpticalPhysics *optical_physics = new G4OpticalPhysics{};
5
6 physics->RegisterPhysics(optical_physics);
7 rm->SetUserInitialization(physics);
8
9 auto optical_params = G4OpticalParameters::Instance();
10
11 // G4Cerenkovの設定
12 optical_params->SetMaxNumPhotonsPerStep(100);
13 optical_params->SetMaxBetaChangePerStep(10.0);
14 optical_params->SetCerenkovStackPhotons(true);
15 optical_params->SetCerenkovTrackSecondariesFirst(true);
16 optical_params->SetCerenkovVerbosity(1);
17
18 // G4Scintillationの設定
19 optical_params->SetScintYieldFactor(1.0);
20 optical_params->SetScintExcitationRatio(0.0);
21 optical_params->SetScintByParticleType(false);
22 optical_params->SetScintTrackInfo(false);
23 optical_params->SetScintTrackSecondariesFirst(true);
24 optical_params->SetScintFiniteRiseTime(false);
25 optical_params->SetScintStackPhotons(true);
26 optical_params->SetScintVerboseLevel(1);
27
28 // G4OpAbsorptionの設定
29 optical_params->SetAbsorptionVerboseLevel(1);
30}
G4OpticalPhysics
で
チェレンコフ光(G4Cerenkov
)、
シンチレーション光(G4Scintillation
)、
吸収(G4OpAbsorption
)、
レイリー散乱(G4OpRayleigh
)、
ミー散乱(G4OpMieHG
)、
波長変換(G4OpWLS``と``G4OpWLS2
)、
境界での散乱(G4OpBoundary
)、
の物理プロセスを通じて相互作用できます。
それぞれのプロセスのパラメーターは、G4OpticalParameters
を使ってグローバルに制御できます。
G4OpticalParameters::Instance()
はシングルトンになっているため、どこからでも呼び出すことができます。
上記のサンプルでは、メインの相互作用(FTFP_BERT
モデル)に
OpticalPhysics
を追加し、パラメーターを変更しています。
マクロで設定したい(/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で有効にする物理プロセスを選択できます。
デフォルトでは、関係するすべてのプロセスが有効になっています。