9#include <simulation/physicslist/Geant4ePhysics.h>
11#include <G4ParticleTable.hh>
12#include <G4ParticleDefinition.hh>
13#include <G4ProcessManager.hh>
14#include <G4ComptonScattering.hh>
15#include <G4GammaConversion.hh>
16#include <G4PhotoElectricEffect.hh>
17#include <simulation/kernel/ExtStepLengthLimitProcess.h>
18#include <simulation/kernel/ExtMagFieldLimitProcess.h>
19#include <simulation/kernel/ExtEnergyLoss.h>
20#include <simulation/kernel/ExtMessenger.h>
26using namespace Simulation;
28Geant4ePhysics::Geant4ePhysics() :
30 m_StepLengthLimitProcess(NULL), m_MagFieldLimitProcess(NULL),
31 m_ELossProcess(NULL), m_Messenger(NULL)
207 G4ParticleTable* myParticleTable = G4ParticleTable::GetParticleTable();
209 G4ParticleTable::G4PTblDicIterator* myParticleIterator = myParticleTable->GetIterator();
210 myParticleIterator->reset();
211 while ((*myParticleIterator)()) {
212 G4ParticleDefinition* particle = myParticleIterator->value();
213 G4ProcessManager* pmanager = particle->GetProcessManager();
214 G4String particleName = particle->GetParticleName();
215 if (particleName.compare(0, 4,
"g4e_") == 0) {
216 if (particleName ==
"g4e_gamma") {
217 pmanager->AddDiscreteProcess(
new G4GammaConversion());
218 pmanager->AddDiscreteProcess(
new G4ComptonScattering());
219 pmanager->AddDiscreteProcess(
new G4PhotoElectricEffect());
Define physics process to calculate energy loss without fluctuations.
Defines the physics process that avoids hit invocation in sensitive volumes.
Define the mechanism by which the user can communicate with the geant4e extrapolator using geant4 UI ...
Defines the physics process that avoids hit invocation in sensitive volumes.
ExtStepLengthLimitProcess * m_StepLengthLimitProcess
Process that limits the geant4e step length.
ExtMagFieldLimitProcess * m_MagFieldLimitProcess
Process that limits the geant4e step length in magnetic field.
virtual void ConstructParticle() override
ConstructParticle() defines the geant4e-specific particles.
ExtMessenger * m_Messenger
Pointer to the ExtMessenger that is used to control geant4e.
virtual ~Geant4ePhysics()
The Geant4ePhysics destructor.
virtual void ConstructProcess() override
ConstructProcess() defines the geant4e-specific processes.
ExtEnergyLoss * m_ELossProcess
Process that limits the geant4e step length due to energy loss.
Abstract base class for different kinds of events.