#include <PhysicsList.hh>
Public Member Functions | |
PhysicsList () | |
~PhysicsList () | |
Protected Member Functions | |
void | ConstructParticle () |
void | ConstructProcess () |
void | SetCuts () |
void | ConstructEM () |
void | ConstructDecay () |
void | AddStepMax () |
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 00065 // step limitation (as a full process) 00066 // 00067 AddStepMax(); 00068 }
void PhysicsList::SetCuts | ( | ) | [protected] |
Definition at line 175 of file PhysicsList.cc.
00176 { 00177 //G4VUserPhysicsList::SetCutsWithDefault method sets 00178 //the default cut value for all particle types 00179 // 00180 SetCutsWithDefault(); 00181 00182 if (verboseLevel>0) DumpCutValuesTable(); 00183 }
void PhysicsList::ConstructEM | ( | ) | [protected] |
Definition at line 90 of file PhysicsList.cc.
Referenced by ConstructProcess().
00091 { 00092 theParticleIterator->reset(); 00093 while( (*theParticleIterator)() ){ 00094 G4ParticleDefinition* particle = theParticleIterator->value(); 00095 G4ProcessManager* pmanager = particle->GetProcessManager(); 00096 G4String particleName = particle->GetParticleName(); 00097 00098 if (particleName == "gamma") { 00099 // gamma 00100 pmanager->AddDiscreteProcess(new G4PhotoElectricEffect); 00101 pmanager->AddDiscreteProcess(new G4ComptonScattering); 00102 pmanager->AddDiscreteProcess(new G4GammaConversion); 00103 00104 } else if (particleName == "e-") { 00105 //electron 00106 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 00107 pmanager->AddProcess(new G4eIonisation, -1, 2,2); 00108 pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); 00109 00110 } else if (particleName == "e+") { 00111 //positron 00112 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 00113 pmanager->AddProcess(new G4eIonisation, -1, 2,2); 00114 pmanager->AddProcess(new G4eBremsstrahlung, -1, 3,3); 00115 pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); 00116 00117 } else if( particleName == "mu+" || 00118 particleName == "mu-" ) { 00119 //muon 00120 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 00121 pmanager->AddProcess(new G4MuIonisation, -1, 2,2); 00122 pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); 00123 pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); 00124 00125 } else if (particle->GetPDGCharge() != 0.0) { 00126 pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); 00127 pmanager->AddProcess(new G4hIonisation, -1, 2,2); 00128 } 00129 } 00130 }
void PhysicsList::ConstructDecay | ( | ) | [protected] |
Definition at line 136 of file PhysicsList.cc.
Referenced by ConstructProcess().
00137 { 00138 // Add Decay Process 00139 G4Decay* theDecayProcess = new G4Decay(); 00140 theParticleIterator->reset(); 00141 while( (*theParticleIterator)() ){ 00142 G4ParticleDefinition* particle = theParticleIterator->value(); 00143 G4ProcessManager* pmanager = particle->GetProcessManager(); 00144 if (theDecayProcess->IsApplicable(*particle)) { 00145 pmanager ->AddProcess(theDecayProcess); 00146 // set ordering for PostStepDoIt and AtRestDoIt 00147 pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); 00148 pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); 00149 } 00150 } 00151 00152 }//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void PhysicsList::AddStepMax | ( | ) | [protected] |
Definition at line 156 of file PhysicsList.cc.
Referenced by ConstructProcess().
00157 { 00158 // Step limitation seen as a process 00159 G4StepLimiter* stepMaxProcess = new G4StepLimiter(); 00160 00161 theParticleIterator->reset(); 00162 while ((*theParticleIterator)()){ 00163 G4ParticleDefinition* particle = theParticleIterator->value(); 00164 G4ProcessManager* pmanager = particle->GetProcessManager(); 00165 00166 if (particle->GetPDGCharge() != 0.0) 00167 { 00168 pmanager ->AddDiscreteProcess(stepMaxProcess); 00169 } 00170 } 00171 }