#include <PhysicsList.hh>
Public Member Functions | |
PhysicsList () | |
~PhysicsList () | |
Protected Member Functions | |
void | ConstructParticle () |
void | ConstructProcess () |
void | SetCuts () |
void | ConstructEM () |
void | ConstructDecay () |
Definition at line 16 of file PhysicsList.hh.
PhysicsList::PhysicsList | ( | ) |
Definition at line 16 of file PhysicsList.cc.
00016 : G4VUserPhysicsList() 00017 { 00018 defaultCutValue = 1.0*mm; 00019 SetVerboseLevel(1); 00020 }
PhysicsList::~PhysicsList | ( | ) |
void PhysicsList::ConstructParticle | ( | ) | [protected] |
Definition at line 29 of file PhysicsList.cc.
00030 { 00031 // pseudo-particles 00032 G4Geantino::GeantinoDefinition(); 00033 00034 // gamma 00035 G4Gamma::GammaDefinition(); 00036 00037 // e+/- 00038 G4Electron::ElectronDefinition(); 00039 G4Positron::PositronDefinition(); 00040 00041 // muon 00042 G4MuonPlus::MuonPlusDefinition(); 00043 G4MuonMinus::MuonMinusDefinition(); 00044 // neutrino 00045 G4NeutrinoE::NeutrinoEDefinition(); 00046 G4AntiNeutrinoE::AntiNeutrinoEDefinition(); 00047 G4NeutrinoMu::NeutrinoMuDefinition(); 00048 G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); 00049 00050 // proton 00051 G4Proton::ProtonDefinition(); 00052 00053 // neutron 00054 G4Neutron::NeutronDefinition(); 00055 }
void PhysicsList::ConstructProcess | ( | ) | [protected] |
Definition at line 59 of file PhysicsList.cc.
00060 { 00061 AddTransportation(); 00062 ConstructEM(); 00063 ConstructDecay(); 00064 }
void PhysicsList::SetCuts | ( | ) | [protected] |
Definition at line 151 of file PhysicsList.cc.
00152 { 00153 //G4VUserPhysicsList::SetCutsWithDefault method sets 00154 //the default cut value for all particle types 00155 // 00156 SetCutsWithDefault(); 00157 00158 if (verboseLevel>0) DumpCutValuesTable(); 00159 }
void PhysicsList::ConstructEM | ( | ) | [protected] |
Definition at line 86 of file PhysicsList.cc.
Referenced by ConstructProcess().
00087 { 00088 theParticleIterator->reset(); 00089 while( (*theParticleIterator)() ){ 00090 G4ParticleDefinition* particle = theParticleIterator->value(); 00091 G4ProcessManager* pmanager = particle->GetProcessManager(); 00092 G4String particleName = particle->GetParticleName(); 00093 00094 if (particleName == "gamma") { 00095 // gamma 00096 pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); 00097 pmanager->AddDiscreteProcess(new G4ComptonScattering); 00098 pmanager->AddDiscreteProcess(new G4GammaConversion); 00099 00100 } else if (particleName == "e-") { 00101 //electron 00102 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 00103 pmanager->AddProcess(new G4eIonisation, -1, 2,2); 00104 pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); 00105 00106 } else if (particleName == "e+") { 00107 //positron 00108 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 00109 pmanager->AddProcess(new G4eIonisation, -1, 2,2); 00110 pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); 00111 pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); 00112 00113 } else if( particleName == "mu+" || 00114 particleName == "mu-" ) { 00115 //muon 00116 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 00117 pmanager->AddProcess(new G4MuIonisation, -1, 2,2); 00118 pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); 00119 pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); 00120 00121 } else if (particle->GetPDGCharge() != 0.0) { 00122 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 00123 pmanager->AddProcess(new G4hIonisation, -1, 2,2); 00124 } 00125 } 00126 }
void PhysicsList::ConstructDecay | ( | ) | [protected] |
Definition at line 132 of file PhysicsList.cc.
Referenced by ConstructProcess().
00133 { 00134 // Add Decay Process 00135 G4Decay* theDecayProcess = new G4Decay(); 00136 theParticleIterator->reset(); 00137 while( (*theParticleIterator)() ){ 00138 G4ParticleDefinition* particle = theParticleIterator->value(); 00139 G4ProcessManager* pmanager = particle->GetProcessManager(); 00140 if (theDecayProcess->IsApplicable(*particle)) { 00141 pmanager ->AddProcess(theDecayProcess); 00142 // set ordering for PostStepDoIt and AtRestDoIt 00143 pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); 00144 pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); 00145 } 00146 } 00147 }