47 #include "PhysicsList.hh"
48 #include "PhysicsListMessenger.hh"
50 #include "PhysListEmStandard.hh"
98 fStepMaxProcess =
new StepMax();
104 fHelIsRegisted =
false;
105 fBicIsRegisted =
false;
106 fGnucIsRegisted =
false;
107 fStopIsRegisted =
false;
122 delete fDecayPhysicsList;
123 delete fEmPhysicsList;
124 delete fStepMaxProcess;
125 for(
size_t i=0; i<fHadronPhys.size(); i++) {
126 delete fHadronPhys[i];
144 for(
size_t i=0; i<fHadronPhys.size(); ++i) {
145 fHadronPhys[i]->ConstructProcess();
155 G4cout <<
"PhysicsList::AddPhysicsList: <" << name <<
">" <<
G4endl;
157 if (name == fEmName)
return;
159 if (name ==
"emstandard") {
161 delete fEmPhysicsList;
164 G4cout <<
"PhysicsList::Set " << name <<
" EM physics" <<
G4endl;
166 }
else if (name ==
"emstandard_opt1") {
168 delete fEmPhysicsList;
171 G4cout <<
"PhysicsList::Set " << name <<
" EM physics" <<
G4endl;
173 }
else if (name ==
"emstandard_opt2") {
175 delete fEmPhysicsList;
178 G4cout <<
"PhysicsList::Set " << name <<
" EM physics" <<
G4endl;
180 }
else if (name ==
"emstandard_opt3") {
182 delete fEmPhysicsList;
185 G4cout <<
"PhysicsList::Set " << name <<
" EM physics" <<
G4endl;
187 }
else if (name ==
"emstandard_opt4") {
189 delete fEmPhysicsList;
192 G4cout <<
"PhysicsList::Set " << name <<
" EM physics" <<
G4endl;
194 }
else if (name ==
"emstandard_local") {
196 delete fEmPhysicsList;
199 G4cout <<
"PhysicsList::Set " << name <<
" EM physics" <<
G4endl;
201 }
else if (name ==
"emlivermore") {
203 delete fEmPhysicsList;
206 }
else if (name ==
"empenelope") {
208 delete fEmPhysicsList;
211 }
else if (name ==
"emlowenergy") {
213 delete fEmPhysicsList;
216 }
else if (name ==
"emstandardGS") {
218 delete fEmPhysicsList;
221 }
else if (name ==
"emstandardSS") {
223 delete fEmPhysicsList;
226 }
else if (name ==
"emstandardWVI") {
228 delete fEmPhysicsList;
231 }
else if (name ==
"elastic" && !fHelIsRegisted) {
233 fHelIsRegisted =
true;
235 G4cout <<
"PhysicsList::Add hadron elastic physics" <<
G4endl;
237 }
else if (name ==
"binary" && !fBicIsRegisted) {
240 fBicIsRegisted =
true;
242 G4cout <<
"PhysicsList::Add hadron inelastic physics from <QBBC>"
245 }
else if (name ==
"gamma_nuc" && !fGnucIsRegisted) {
247 fGnucIsRegisted =
true;
249 G4cout <<
"PhysicsList::Add gamma- and electro-nuclear physics"
252 }
else if (name ==
"stopping" && !fStopIsRegisted) {
254 fStopIsRegisted =
true;
256 G4cout <<
"PhysicsList::Add stopping physics" <<
G4endl;
259 G4cout <<
"PhysicsList::AddPhysicsList: <" << name <<
">"
void SetDefaultCutValue(G4double newCutValue)
static G4LossTableManager * Instance()
static constexpr double mm
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
void AddPhysicsList(const G4String &name)
virtual void ConstructParticle()=0
G4GLOB_DLL std::ostream G4cout
void SetVerboseLevel(G4int value)
G4bool IsShortLived() const
G4ProcessManager * GetProcessManager() const
virtual void ConstructProcess()=0
std::vector< G4InuclElementaryParticle >::iterator particleIterator
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
virtual G4bool IsApplicable(const G4ParticleDefinition &)