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

リファレンス