#include #include #include #include #include #include #include #include #include #include #include #include #include "G4BeamTestMuonPhysics.h" G4BeamTestMuonPhysics::G4BeamTestMuonPhysics() : G4VPhysicsConstructor("muon") {} /********************************************************************/ G4BeamTestMuonPhysics::~G4BeamTestMuonPhysics() {} /********************************************************************/ void G4BeamTestMuonPhysics::ConstructParticle() { // Mu G4MuonPlus::MuonPlusDefinition(); G4MuonMinus::MuonMinusDefinition(); G4NeutrinoMu::NeutrinoMuDefinition(); G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); // Tau G4TauMinus::TauMinusDefinition(); G4TauPlus::TauPlusDefinition(); G4NeutrinoTau::NeutrinoTauDefinition(); G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); } /********************************************************************/ void G4BeamTestMuonPhysics::ConstructProcess() { G4ProcessManager *pManager = 0; // Muon Plus Physics pManager = G4MuonPlus::MuonPlus()->GetProcessManager(); pManager->AddProcess(&muPlusMultipleScattering_, -1, 1, 1); pManager->AddProcess(&muPlusIonisation_, -1, 2, 2); pManager->AddProcess(&muPlusBremsstrahlung_, -1, 3, 3); pManager->AddProcess(&muPlusPairProduction_, -1, 4, 4); // Muon Minus Physics pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); pManager->AddProcess(&muMinusMultipleScattering_, -1, 1, 1); pManager->AddProcess(&muMinusIonisation_, -1, 2, 2); pManager->AddProcess(&muMinusBremsstrahlung_, -1, 3, 3); pManager->AddProcess(&muMinusPairProduction_, -1, 4, 4); pManager->AddRestProcess(&muMinusCapture_); // Tau Plus Physics pManager = G4TauPlus::TauPlus()->GetProcessManager(); pManager->AddProcess(&tauPlusMultipleScattering_, -1, 1, 1); pManager->AddProcess(&tauPlusIonisation_, -1, 2, 2); // Tau Minus Physics pManager = G4TauMinus::TauMinus()->GetProcessManager(); pManager->AddProcess(&tauMinusMultipleScattering_, -1, 1, 1); pManager->AddProcess(&tauMinusIonisation_, -1, 2, 2); }