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で有効にする物理プロセスを選択できます。
デフォルトでは、関係するすべてのプロセスが有効になっています。