///////////////////////////////////////////////////////////////////////// // G4Tutorial: // // PhysicsEMElectronStandard.cc // // Assembling electromagnetic physics processes for electrons. // // The considered processes are G4MultipleScattering, 4eIonisation // and G4eBremsstrahlung // ///////////////////////////////////////////////////////////////////////// #include "PhysicsEMElectronStandard.hh" #include "G4ProcessManager.hh" #include "G4ParticleDefinition.hh" #include "G4MultipleScattering.hh" #include "G4eIonisation.hh" #include "G4eBremsstrahlung.hh" #include "G4StepLimiter.hh" PhysicsEMElectronStandard::PhysicsEMElectronStandard(const G4String& name): G4VPhysicsConstructor(name) { // Information about physics processes is printed: G4cout << "ELECTROMAGNETIC PROCESS(ES): G4MultipleScattering (electron)" << G4endl << " G4eIonisation (electron)" << G4endl << " G4eBremsstrahlung (electron)" << G4endl << "APPLIED MODEL(S): -" << G4endl; } PhysicsEMElectronStandard::~PhysicsEMElectronStandard() { } void PhysicsEMElectronStandard::ConstructProcess() { // **************** // *** Electron *** // **************** // The considered physics processes are instantiated: G4MultipleScattering* elecMultipScatProcess = new G4MultipleScattering(); G4eIonisation* elecIonisationProcess = new G4eIonisation(); G4eBremsstrahlung* elecBremsstrProcess = new G4eBremsstrahlung(); // Finally, the processes are added to the particles' process manager: G4ParticleDefinition* particle = G4Electron::Electron(); G4ProcessManager* processManager = particle -> GetProcessManager(); processManager -> AddProcess(elecMultipScatProcess, -1, 1, 1); processManager -> AddProcess(elecIonisationProcess, -1, 2, 2); processManager -> AddProcess(elecBremsstrProcess, -1, 3, 3); }