File indexing completed on 2026-03-28 07:50:48
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
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040 #include "PhysicsList.hh"
0041
0042 #include "PhysicsListMessenger.hh"
0043 #include "G4EmParameters.hh"
0044
0045 #include "G4EmDNAPhysics_stationary.hh"
0046 #include "G4EmDNAPhysics_stationary_option2.hh"
0047 #include "G4EmDNAPhysics_stationary_option4.hh"
0048 #include "G4EmDNAPhysics_stationary_option6.hh"
0049 #include "G4EmDNAPhysics.hh"
0050 #include "G4EmDNAPhysics_option2.hh"
0051 #include "G4EmDNAPhysics_option4.hh"
0052 #include "G4EmDNAPhysics_option6.hh"
0053 #include "G4EmDNAPhysics_option8.hh"
0054
0055
0056
0057 PhysicsList::PhysicsList()
0058 {
0059 fMessenger = new PhysicsListMessenger(this);
0060
0061 SetVerboseLevel(1);
0062
0063
0064 fEmName = "dna_stat_opt2";
0065 fEmPhysicsList = new G4EmDNAPhysics_option2();
0066 G4EmParameters::Instance()->SetDNAStationary(true);
0067 }
0068
0069
0070
0071 PhysicsList::~PhysicsList()
0072 {
0073 delete fMessenger;
0074 delete fEmPhysicsList;
0075 }
0076
0077
0078
0079 void PhysicsList::ConstructParticle()
0080 {
0081 fEmPhysicsList->ConstructParticle();
0082 }
0083
0084
0085
0086 void PhysicsList::ConstructProcess()
0087 {
0088
0089 AddTransportation();
0090
0091
0092 fEmPhysicsList->ConstructProcess();
0093 }
0094
0095
0096
0097 void PhysicsList::AddPhysicsList(const G4String& name)
0098 {
0099 if (verboseLevel > 0) {
0100 G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
0101 }
0102
0103 if (name == fEmName) return;
0104
0105 if (name == "dna_opt0") {
0106 fEmName = name;
0107 delete fEmPhysicsList;
0108 fEmPhysicsList = new G4EmDNAPhysics();
0109 }
0110 else if (name == "dna_opt2") {
0111 fEmName = name;
0112 delete fEmPhysicsList;
0113 fEmPhysicsList = new G4EmDNAPhysics_option2();
0114 }
0115 else if (name == "dna_opt4") {
0116 fEmName = name;
0117 delete fEmPhysicsList;
0118 fEmPhysicsList = new G4EmDNAPhysics_option4();
0119 }
0120 else if (name == "dna_opt6") {
0121 fEmName = name;
0122 delete fEmPhysicsList;
0123 fEmPhysicsList = new G4EmDNAPhysics_option6();
0124 }
0125 else if (name == "dna_opt8") {
0126 fEmName = name;
0127 delete fEmPhysicsList;
0128 fEmPhysicsList = new G4EmDNAPhysics_option8();
0129 }
0130 else if (name == "dna_stat") {
0131 fEmName = name;
0132 delete fEmPhysicsList;
0133 fEmPhysicsList = new G4EmDNAPhysics_stationary();
0134 }
0135 else if (name == "dna_stat_opt2") {
0136 fEmName = name;
0137 delete fEmPhysicsList;
0138 fEmPhysicsList = new G4EmDNAPhysics_stationary_option2();
0139 }
0140 else if (name == "dna_stat_opt4") {
0141 fEmName = name;
0142 delete fEmPhysicsList;
0143 fEmPhysicsList = new G4EmDNAPhysics_stationary_option4();
0144 }
0145 else if (name == "dna_stat_opt6") {
0146 fEmName = name;
0147 delete fEmPhysicsList;
0148 fEmPhysicsList = new G4EmDNAPhysics_stationary_option6();
0149 }
0150 else {
0151 G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
0152 << " is not defined" << G4endl;
0153 }
0154 G4EmParameters::Instance()->SetDNAStationary(true);
0155 }