File indexing completed on 2026-05-21 07:53:00
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #include "PhysicsList.hh"
0030
0031 #include "G4ComptonScattering.hh"
0032 #include "G4EmBuilder.hh"
0033 #include "G4GammaConversion.hh"
0034 #include "G4ParticleDefinition.hh"
0035 #include "G4ParticleTable.hh"
0036 #include "G4ParticleTypes.hh"
0037 #include "G4PhotoElectricEffect.hh"
0038 #include "G4PhysicsListHelper.hh"
0039 #include "G4ProcessManager.hh"
0040 #include "G4RayleighScattering.hh"
0041 #include "G4SystemOfUnits.hh"
0042 #include "G4eBremsstrahlung.hh"
0043 #include "G4eIonisation.hh"
0044 #include "G4eMultipleScattering.hh"
0045 #include "G4eplusAnnihilation.hh"
0046
0047
0048
0049 PhysicsList::PhysicsList()
0050 {
0051 defaultCutValue = 1.0 * mm;
0052 }
0053
0054
0055
0056 void PhysicsList::ConstructParticle()
0057 {
0058
0059
0060
0061
0062 G4EmBuilder::ConstructMinimalEmSet();
0063 }
0064
0065
0066
0067 void PhysicsList::ConstructProcess()
0068 {
0069 AddTransportation();
0070 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
0071
0072 auto particleIterator = GetParticleIterator();
0073 particleIterator->reset();
0074 while ((*particleIterator)()) {
0075 G4ParticleDefinition* particle = particleIterator->value();
0076 G4String particleName = particle->GetParticleName();
0077
0078 if (particleName == "gamma") {
0079 ph->RegisterProcess(new G4RayleighScattering, particle);
0080 ph->RegisterProcess(new G4PhotoElectricEffect, particle);
0081 ph->RegisterProcess(new G4ComptonScattering, particle);
0082 ph->RegisterProcess(new G4GammaConversion, particle);
0083 }
0084 else if (particleName == "e-") {
0085 ph->RegisterProcess(new G4eMultipleScattering, particle);
0086 ph->RegisterProcess(new G4eIonisation, particle);
0087 ph->RegisterProcess(new G4eBremsstrahlung, particle);
0088 }
0089 else if (particleName == "e+") {
0090 ph->RegisterProcess(new G4eMultipleScattering, particle);
0091 ph->RegisterProcess(new G4eIonisation, particle);
0092 ph->RegisterProcess(new G4eBremsstrahlung, particle);
0093 ph->RegisterProcess(new G4eplusAnnihilation, particle);
0094 }
0095 }
0096 }
0097
0098