26 #ifndef DDG4_GEANT4OPTICALPHOTONPHYSICS_H
27 #define DDG4_GEANT4OPTICALPHOTONPHYSICS_H 1
33 #include <G4OpAbsorption.hh>
34 #include <G4OpRayleigh.hh>
35 #include <G4OpMieHG.hh>
36 #include <G4OpBoundaryProcess.hh>
37 #include <G4ParticleDefinition.hh>
38 #include <G4ParticleTypes.hh>
39 #include <G4ParticleTable.hh>
40 #include <G4ProcessManager.hh>
41 #include <G4Version.hh>
43 #if G4VERSION_NUMBER >= 1070
44 #include <G4OpticalParameters.hh>
77 info(
"+++ Constructing optical_photon processes:");
78 info(
"+++ G4OpAbsorption G4OpRayleigh G4OpMieHG G4OpBoundaryProcess");
79 G4ParticleTable* table = G4ParticleTable::GetParticleTable();
80 G4ParticleDefinition* particle = table->FindParticle(
"opticalphoton");
82 except(
"++ Cannot resolve 'opticalphoton' particle definition!");
85 G4OpBoundaryProcess* fBoundaryProcess =
new G4OpBoundaryProcess();
86 G4OpAbsorption* fAbsorptionProcess =
new G4OpAbsorption();
87 G4OpRayleigh* fRayleighScatteringProcess =
new G4OpRayleigh();
88 G4OpMieHG* fMieHGScatteringProcess =
new G4OpMieHG();
90 #if G4VERSION_NUMBER >= 1070
91 G4OpticalParameters* params = G4OpticalParameters::Instance();
99 fRayleighScatteringProcess->SetVerboseLevel(
m_verbosity);
100 fMieHGScatteringProcess->SetVerboseLevel(
m_verbosity);
102 #if G4VERSION_NUMBER >= 1000
106 G4ProcessManager* pmanager = particle->GetProcessManager();
107 pmanager->AddDiscreteProcess(fAbsorptionProcess);
108 pmanager->AddDiscreteProcess(fRayleighScatteringProcess);
109 pmanager->AddDiscreteProcess(fMieHGScatteringProcess);
110 pmanager->AddDiscreteProcess(fBoundaryProcess);
118 #endif // DDG4_GEANT4OPTICALPHOTONPHYSICS_H