42 #include "Geant4/G4Alpha.hh" 43 #include "Geant4/G4AntiProton.hh" 44 #include "Geant4/G4Cerenkov.hh" 45 #include "Geant4/G4Deuteron.hh" 46 #include "Geant4/G4Electron.hh" 47 #include "Geant4/G4Gamma.hh" 48 #include "Geant4/G4GenericIon.hh" 49 #include "Geant4/G4He3.hh" 50 #include "Geant4/G4KaonMinus.hh" 51 #include "Geant4/G4KaonPlus.hh" 52 #include "Geant4/G4LossTableManager.hh" 53 #include "Geant4/G4MuonMinus.hh" 54 #include "Geant4/G4MuonPlus.hh" 55 #include "Geant4/G4OpAbsorption.hh" 56 #include "Geant4/G4OpBoundaryProcess.hh" 57 #include "Geant4/G4OpRayleigh.hh" 58 #include "Geant4/G4OpWLS.hh" 59 #include "Geant4/G4OpticalPhoton.hh" 60 #include "Geant4/G4ParticleDefinition.hh" 61 #include "Geant4/G4ParticleTable.hh" 62 #include "Geant4/G4PionMinus.hh" 63 #include "Geant4/G4PionPlus.hh" 64 #include "Geant4/G4Positron.hh" 65 #include "Geant4/G4ProcessManager.hh" 66 #include "Geant4/G4Proton.hh" 67 #include "Geant4/G4Scintillation.hh" 68 #include "Geant4/G4Triton.hh" 86 : G4VPhysicsConstructor(name), fSimpleBoundary{detProp.
SimpleBoundary()}
88 G4LossTableManager::Instance();
89 mf::LogInfo(
"OpticalPhysics") <<
"OBJECT BEING CONSTRUCTED IN OPTICAL PHYSICS";
96 MF_LOG_DEBUG(
"OpticalPhysics") <<
"PARTICLES BEING CONSTRUCTED IN OPTICAL PHYSICS";
98 G4OpticalPhoton::OpticalPhotonDefinition();
104 G4Electron::Electron();
105 G4Positron::Positron();
106 G4MuonPlus::MuonPlus();
107 G4MuonMinus::MuonMinus();
110 G4PionPlus::PionPlusDefinition();
111 G4PionMinus::PionMinusDefinition();
112 G4KaonPlus::KaonPlusDefinition();
113 G4KaonMinus::KaonMinusDefinition();
117 G4AntiProton::AntiProton();
120 G4Deuteron::Deuteron();
124 G4GenericIon::GenericIonDefinition();
134 MF_LOG_DEBUG(
"OpticalPhysics") <<
"PROCESSES BEING CONSTRUCTED IN OPTICAL PHYSICS";
155 G4EmSaturation* emSaturation = G4LossTableManager::Instance()->EmSaturation();
160 mf::LogInfo(
"OpticalPhysics") <<
"Cerenkov light enabled : " << CerenkovLightEnabled;
161 static G4ParticleTable* fParticleTable = G4ParticleTable::GetParticleTable();
162 G4ParticleTable::G4PTblDicIterator* aParticleIterator;
163 aParticleIterator = fParticleTable->GetIterator();
165 aParticleIterator->reset();
166 while ((*aParticleIterator)()) {
167 G4ParticleDefinition* particle = aParticleIterator->value();
168 G4ProcessManager* pmanager = particle->GetProcessManager();
169 G4String particleName = particle->GetParticleName();
180 if (particleName ==
"opticalphoton") {
181 mf::LogInfo(
"OpticalPhysics") <<
" AddDiscreteProcess to OpticalPhoton ";
virtual bool CerenkovLightEnabled() const =0
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
void ConstructParticle() override
Discrete process for reflection and diffusion at optical interfaces.
OpBoundaryProcessSimple * fTheBoundaryProcess
G4Cerenkov * fTheCerenkovProcess
G4OpBoundaryProcess * fTheBoundaryProcess_g4
bool SimpleBoundary() const
void ConstructProcess() override
OpticalPhysics(detinfo::DetectorPropertiesData const &detProp, G4int ver=0, G4String const &name="G4Optical")
G4OpAbsorption * fTheAbsorptionProcess
G4OpRayleigh * fTheRayleighScatteringProcess
G4Scintillation * fTheScintillationProcess