43 #ifndef LARG4_FASTOPTICALPHYSICS_CXX 44 #define LARG4_FASTOPTICALPHYSICS_CXX 1 56 #include "Geant4/G4ParticleDefinition.hh" 57 #include "Geant4/G4ParticleTable.hh" 58 #include "Geant4/G4ProcessManager.hh" 59 #include "Geant4/G4ProcessManager.hh" 60 #include "Geant4/G4LossTableManager.hh" 61 #include "Geant4/G4EmProcessOptions.hh" 63 #include "Geant4/G4ComptonScattering.hh" 64 #include "Geant4/G4GammaConversion.hh" 65 #include "Geant4/G4PhotoElectricEffect.hh" 67 #include "Geant4/G4AdjointhMultipleScattering.hh" 68 #include "Geant4/G4eMultipleScattering.hh" 69 #include "Geant4/G4hMultipleScattering.hh" 70 #include "Geant4/G4MuMultipleScattering.hh" 71 #include "Geant4/G4VMultipleScattering.hh" 73 #include "Geant4/G4eIonisation.hh" 74 #include "Geant4/G4eBremsstrahlung.hh" 75 #include "Geant4/G4eplusAnnihilation.hh" 77 #include "Geant4/G4MuIonisation.hh" 78 #include "Geant4/G4MuBremsstrahlung.hh" 79 #include "Geant4/G4MuPairProduction.hh" 80 #include "Geant4/G4hBremsstrahlung.hh" 81 #include "Geant4/G4hPairProduction.hh" 83 #include "Geant4/G4hIonisation.hh" 84 #include "Geant4/G4ionIonisation.hh" 86 #include "Geant4/G4Gamma.hh" 87 #include "Geant4/G4Electron.hh" 88 #include "Geant4/G4Positron.hh" 89 #include "Geant4/G4MuonPlus.hh" 90 #include "Geant4/G4MuonMinus.hh" 91 #include "Geant4/G4PionPlus.hh" 92 #include "Geant4/G4PionMinus.hh" 93 #include "Geant4/G4KaonPlus.hh" 94 #include "Geant4/G4KaonMinus.hh" 95 #include "Geant4/G4Proton.hh" 96 #include "Geant4/G4AntiProton.hh" 97 #include "Geant4/G4Deuteron.hh" 98 #include "Geant4/G4Triton.hh" 99 #include "Geant4/G4He3.hh" 100 #include "Geant4/G4Alpha.hh" 101 #include "Geant4/G4GenericIon.hh" 102 #include "Geant4/G4OpticalPhoton.hh" 104 #include "Geant4/G4Cerenkov.hh" 105 #include "Geant4/G4Scintillation.hh" 106 #include "Geant4/G4OpAbsorption.hh" 107 #include "Geant4/G4OpWLS.hh" 108 #include "Geant4/G4OpRayleigh.hh" 110 #include "Geant4/G4LossTableManager.hh" 111 #include "Geant4/G4EmSaturation.hh" 112 #include "Geant4/G4PhysicsListHelper.hh" 122 : G4VPhysicsConstructor(name), verbose(ver)
124 G4LossTableManager::Instance();
125 mf::LogInfo(
"FastOpticalPhysics") <<
"OBJECT BEING CONSTRUCTED IN OPTICAL PHYSICS";
136 LOG_DEBUG(
"FastOpticalPhysics") <<
"PARTICLES BEING CONSTRUCTED IN FAST OPTICAL PHYSICS";
138 G4OpticalPhoton::OpticalPhotonDefinition();
144 G4Electron::Electron();
145 G4Positron::Positron();
146 G4MuonPlus::MuonPlus();
147 G4MuonMinus::MuonMinus();
150 G4PionPlus::PionPlusDefinition();
151 G4PionMinus::PionMinusDefinition();
152 G4KaonPlus::KaonPlusDefinition();
153 G4KaonMinus::KaonMinusDefinition();
157 G4AntiProton::AntiProton();
160 G4Deuteron::Deuteron();
164 G4GenericIon::GenericIonDefinition();
171 LOG_DEBUG(
"FastOpticalPhysics") <<
"PROCESSES BEING CONSTRUCTED IN OPTICAL PHYSICS";
187 mf::LogInfo(
"FastOpticalPhysics") <<
"Cerenkov enabled : " << CerenkovEnabled;
188 static G4ParticleTable* fParticleTable = G4ParticleTable::GetParticleTable();
189 G4ParticleTable::G4PTblDicIterator* aParticleIterator;
190 aParticleIterator=fParticleTable->GetIterator();
191 aParticleIterator->reset();
192 while( (*aParticleIterator)() ){
193 G4ParticleDefinition* particle = aParticleIterator->value();
194 G4ProcessManager* pmanager = particle->GetProcessManager();
195 G4String particleName = particle->GetParticleName();
209 if (particleName ==
"opticalphoton") {
210 mf::LogInfo(
"FastOptical") <<
" AddDiscreteProcess to OpticalPhoton ";
virtual bool CerenkovLightEnabled() const =0
virtual ~FastOpticalPhysics()
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
G4OpAbsorption * fTheAbsorptionProcess
virtual void ConstructParticle()
virtual void ConstructProcess()
Discrete process for reflection and diffusion at optical interfaces.
virtual G4bool IsApplicable(const G4ParticleDefinition &aParticleType)
OpBoundaryProcessSimple * fTheBoundaryProcess
G4OpRayleigh * fTheRayleighScatteringProcess
CustomPhysicsFactory< FastOpticalPhysics > fastoptical_factory("FastOptical")
OpFastScintillation * fTheScintillationProcess
Singleton to access a unified treatment of ionization and scintillation in LAr.
FastOpticalPhysics(G4int ver=0, const G4String &name="FastOptical")
G4Cerenkov * fTheCerenkovProcess