41 #ifndef LARG4_OPTICALPHYSICS_CXX 42 #define LARG4_OPTICALPHYSICS_CXX 1 51 #include "Geant4/G4ParticleDefinition.hh" 52 #include "Geant4/G4ParticleTable.hh" 53 #include "Geant4/G4ProcessManager.hh" 54 #include "Geant4/G4LossTableManager.hh" 55 #include "Geant4/G4EmProcessOptions.hh" 57 #include "Geant4/G4ComptonScattering.hh" 58 #include "Geant4/G4GammaConversion.hh" 59 #include "Geant4/G4PhotoElectricEffect.hh" 61 #include "Geant4/G4AdjointhMultipleScattering.hh" 62 #include "Geant4/G4eMultipleScattering.hh" 63 #include "Geant4/G4hMultipleScattering.hh" 64 #include "Geant4/G4MuMultipleScattering.hh" 65 #include "Geant4/G4VMultipleScattering.hh" 67 #include "Geant4/G4eIonisation.hh" 68 #include "Geant4/G4eBremsstrahlung.hh" 69 #include "Geant4/G4eplusAnnihilation.hh" 71 #include "Geant4/G4MuIonisation.hh" 72 #include "Geant4/G4MuBremsstrahlung.hh" 73 #include "Geant4/G4MuPairProduction.hh" 74 #include "Geant4/G4hBremsstrahlung.hh" 75 #include "Geant4/G4hPairProduction.hh" 77 #include "Geant4/G4hIonisation.hh" 78 #include "Geant4/G4ionIonisation.hh" 80 #include "Geant4/G4Gamma.hh" 81 #include "Geant4/G4Electron.hh" 82 #include "Geant4/G4Positron.hh" 83 #include "Geant4/G4MuonPlus.hh" 84 #include "Geant4/G4MuonMinus.hh" 85 #include "Geant4/G4PionPlus.hh" 86 #include "Geant4/G4PionMinus.hh" 87 #include "Geant4/G4KaonPlus.hh" 88 #include "Geant4/G4KaonMinus.hh" 89 #include "Geant4/G4Proton.hh" 90 #include "Geant4/G4AntiProton.hh" 91 #include "Geant4/G4Deuteron.hh" 92 #include "Geant4/G4Triton.hh" 93 #include "Geant4/G4He3.hh" 94 #include "Geant4/G4Alpha.hh" 95 #include "Geant4/G4GenericIon.hh" 96 #include "Geant4/G4OpticalPhoton.hh" 98 #include "Geant4/G4Cerenkov.hh" 99 #include "Geant4/G4Scintillation.hh" 100 #include "Geant4/G4OpAbsorption.hh" 101 #include "Geant4/G4OpWLS.hh" 102 #include "Geant4/G4OpRayleigh.hh" 104 #include "Geant4/G4LossTableManager.hh" 105 #include "Geant4/G4EmSaturation.hh" 117 : G4VPhysicsConstructor(name), verbose(ver)
119 G4LossTableManager::Instance();
120 mf::LogInfo(
"OpticalPhysics") <<
"OBJECT BEING CONSTRUCTED IN OPTICAL PHYSICS";
131 LOG_DEBUG(
"OpticalPhysics") <<
"PARTICLES BEING CONSTRUCTED IN OPTICAL PHYSICS";
133 G4OpticalPhoton::OpticalPhotonDefinition();
139 G4Electron::Electron();
140 G4Positron::Positron();
141 G4MuonPlus::MuonPlus();
142 G4MuonMinus::MuonMinus();
145 G4PionPlus::PionPlusDefinition();
146 G4PionMinus::PionMinusDefinition();
147 G4KaonPlus::KaonPlusDefinition();
148 G4KaonMinus::KaonMinusDefinition();
152 G4AntiProton::AntiProton();
155 G4Deuteron::Deuteron();
159 G4GenericIon::GenericIonDefinition();
170 LOG_DEBUG(
"OpticalPhysics") <<
"PROCESSES BEING CONSTRUCTED IN OPTICAL PHYSICS";
176 if(detp->SimpleBoundary())
193 G4EmSaturation* emSaturation = G4LossTableManager::Instance()->EmSaturation();
199 mf::LogInfo(
"OpticalPhysics")<<
"Cerenkov light enabled : " << CerenkovLightEnabled;
200 static G4ParticleTable* fParticleTable = G4ParticleTable::GetParticleTable();
201 G4ParticleTable::G4PTblDicIterator* aParticleIterator;
202 aParticleIterator=fParticleTable->GetIterator();
204 aParticleIterator->reset();
205 while( (*aParticleIterator)() ){
206 G4ParticleDefinition* particle = aParticleIterator->value();
207 G4ProcessManager* pmanager = particle->GetProcessManager();
208 G4String particleName = particle->GetParticleName();
221 if (particleName ==
"opticalphoton") {
222 mf::LogInfo(
"OpticalPhysics") <<
" AddDiscreteProcess to OpticalPhoton ";
225 if(detp->SimpleBoundary())
virtual bool CerenkovLightEnabled() const =0
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
CustomPhysicsFactory< OpticalPhysics > optical_factory("Optical")
virtual ~OpticalPhysics()
Discrete process for reflection and diffusion at optical interfaces.
OpticalPhysics(G4int ver=0, const G4String &name="G4Optical")
OpBoundaryProcessSimple * fTheBoundaryProcess
G4Cerenkov * fTheCerenkovProcess
G4OpBoundaryProcess * fTheBoundaryProcess_g4
virtual void ConstructParticle()
G4OpAbsorption * fTheAbsorptionProcess
virtual void ConstructProcess()
G4OpRayleigh * fTheRayleighScatteringProcess
G4Scintillation * fTheScintillationProcess