///////////////////////////////////////////////////////////////////////// // G4Tutorial: // // PhysicsEMMuonStandard.cc // // Assembling electromagnetic physics processes for muon (plus and minus). // // The considered processes are G4MultipleScattering, G4MuIonisation, // G4MuBremsstrahlung and G4MuPairProduction // ///////////////////////////////////////////////////////////////////////// #include "PhysicsEMMuonStandard.hh" #include "G4ParticleDefinition.hh" #include "G4MuonPlus.hh" #include "G4MuonMinus.hh" #include "G4ProcessManager.hh" #include "G4MultipleScattering.hh" #include "G4MuIonisation.hh" #include "G4MuBremsstrahlung.hh" #include "G4MuPairProduction.hh" PhysicsEMMuonStandard::PhysicsEMMuonStandard(const G4String& name): G4VPhysicsConstructor(name) { G4cout<< "ELECTROMAGNETIC PROCESS(ES): G4MultipleScattering (muon+/-)" << G4endl << " G4MuIonisation (muon+/-)" << G4endl << " G4MuBremsstrahlung (muon+/-)" << G4endl << " G4MuPairProduction (muon+/-)" << G4endl << "APPLIED MODEL(S): -" << G4endl; } PhysicsEMMuonStandard::~PhysicsEMMuonStandard() { } void PhysicsEMMuonStandard::ConstructProcess() { G4ParticleDefinition* particle = 0; G4ProcessManager* processManager = 0; // *********************************** // *** Muon+/-: Common Definitions *** // *********************************** G4MultipleScattering* muonMultipleScatteringProcess = new G4MultipleScattering(); G4MuIonisation* muonIonisationProcess = new G4MuIonisation(); G4MuBremsstrahlung* muonBremsstrahlungProcess = new G4MuBremsstrahlung(); G4MuPairProduction* muonPairProductionProcess = new G4MuPairProduction(); // ************* // *** Muon+ *** // ************* particle = G4MuonPlus::MuonPlus(); processManager = particle -> GetProcessManager(); processManager -> AddProcess(muonMultipleScatteringProcess, -1, 1, 1); processManager -> AddProcess(muonIonisationProcess,-1, 2, 2); processManager -> AddProcess(muonBremsstrahlungProcess, -1, 3, 3); processManager -> AddProcess(muonPairProductionProcess, -1, 4, 4); // ************* // *** Muon- *** // ************* particle = G4MuonMinus::MuonMinus(); processManager = particle -> GetProcessManager(); processManager -> AddProcess(muonMultipleScatteringProcess, -1, 1, 1); processManager -> AddProcess(muonIonisationProcess,-1, 2, 2); processManager -> AddProcess(muonBremsstrahlungProcess, -1, 3, 3); processManager -> AddProcess(muonPairProductionProcess, -1, 4, 4); }