00001
00002 #include "BesMuonPhysics.hh"
00003
00004 #include "globals.hh"
00005 #include "G4ios.hh"
00006 #include <iomanip>
00007
00008
00009 BesMuonPhysics::BesMuonPhysics(const G4String& name)
00010 : G4VPhysicsConstructor(name)
00011 {
00012 }
00013
00014 BesMuonPhysics::~BesMuonPhysics()
00015 {
00016 }
00017
00018 #include "G4ParticleDefinition.hh"
00019 #include "G4ParticleTable.hh"
00020
00021 #include "G4MuonPlus.hh"
00022 #include "G4MuonMinus.hh"
00023 #include "G4TauMinus.hh"
00024 #include "G4TauPlus.hh"
00025 #include "G4NeutrinoTau.hh"
00026 #include "G4AntiNeutrinoTau.hh"
00027 #include "G4NeutrinoMu.hh"
00028 #include "G4AntiNeutrinoMu.hh"
00029
00030 void BesMuonPhysics::ConstructParticle()
00031 {
00032
00033 G4MuonPlus::MuonPlusDefinition();
00034 G4MuonMinus::MuonMinusDefinition();
00035 G4NeutrinoMu::NeutrinoMuDefinition();
00036 G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
00037
00038
00039 G4TauMinus::TauMinusDefinition();
00040 G4TauPlus::TauPlusDefinition();
00041 G4NeutrinoTau::NeutrinoTauDefinition();
00042 G4AntiNeutrinoTau::AntiNeutrinoTauDefinition();
00043
00044 }
00045
00046
00047 #include "G4ProcessManager.hh"
00048
00049 void BesMuonPhysics::ConstructProcess()
00050 {
00051 G4ProcessManager * pManager = 0;
00052
00053
00054 pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
00055
00056 pManager->AddProcess(&fMuPlusMultipleScattering,-1, 1, 1);
00057 pManager->AddProcess(&fMuPlusIonisation, -1, 2, 2);
00058 pManager->AddProcess(&fMuPlusBremsstrahlung, -1, 3, 3);
00059 pManager->AddProcess(&fMuPlusPairProduction, -1, 4, 4);
00060
00061
00062 pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
00063
00064 pManager->AddProcess(&fMuMinusMultipleScattering,-1, 1, 1);
00065 pManager->AddProcess(&fMuMinusIonisation, -1, 2, 2);
00066 pManager->AddProcess(&fMuMinusBremsstrahlung, -1, 3, 3);
00067 pManager->AddProcess(&fMuMinusPairProduction, -1, 4, 4);
00068
00069 pManager->AddRestProcess(&fMuMinusCaptureAtRest);
00070
00071
00072 pManager = G4TauPlus::TauPlus()->GetProcessManager();
00073
00074 pManager->AddProcess(&fTauPlusMultipleScattering, -1, 1, 1);
00075 pManager->AddProcess(&fTauPlusIonisation, -1, 2, 2);
00076
00077
00078 pManager = G4TauMinus::TauMinus()->GetProcessManager();
00079
00080 pManager->AddProcess(&fTauMinusMultipleScattering, -1, 1, 1);
00081 pManager->AddProcess(&fTauMinusIonisation, -1, 2, 2);
00082
00083 }
00084
00085
00086