34 #include "PhysicsList.hh"
35 #include "PhysicsListMessenger.hh"
37 #include "PhysListEmStandard.hh"
82 fStepMaxProcess(nullptr)
84 fHelIsRegisted =
false;
85 fBicIsRegisted =
false;
86 fBiciIsRegisted =
false;
94 fEmName =
G4String(
"emstandard_opt0");
106 delete fEmPhysicsList;
107 delete fDecPhysicsList;
108 for(
size_t i=0; i<fHadronPhys.size(); i++) {
delete fHadronPhys[i];}
135 for(
size_t i=0; i<fHadronPhys.size(); i++) {
136 fHadronPhys[i]->ConstructProcess();
149 G4cout <<
"PhysicsList::AddPhysicsList: <" << name <<
">" <<
G4endl;
152 if (name == fEmName)
return;
154 if (name ==
"local") {
157 delete fEmPhysicsList;
160 }
else if (name ==
"emstandard_opt0") {
163 delete fEmPhysicsList;
166 }
else if (name ==
"emstandard_opt1") {
169 delete fEmPhysicsList;
172 }
else if (name ==
"emstandard_opt2") {
175 delete fEmPhysicsList;
178 }
else if (name ==
"emstandard_opt3") {
181 delete fEmPhysicsList;
184 }
else if (name ==
"emstandard_opt4") {
187 delete fEmPhysicsList;
190 }
else if (name ==
"ionGasModels") {
196 }
else if (name ==
"standardNR") {
199 delete fEmPhysicsList;
202 }
else if (name ==
"emlivermore") {
204 delete fEmPhysicsList;
207 }
else if (name ==
"empenelope") {
209 delete fEmPhysicsList;
212 }
else if (name ==
"emlowenergy") {
214 delete fEmPhysicsList;
217 }
else if (name ==
"emstandardSS") {
220 delete fEmPhysicsList;
223 }
else if (name ==
"emstandardWVI") {
226 delete fEmPhysicsList;
229 }
else if (name ==
"emstandardGS") {
232 delete fEmPhysicsList;
235 }
else if (name ==
"elastic" && !fHelIsRegisted) {
237 fHelIsRegisted =
true;
239 }
else if (name ==
"DElastic" && !fHelIsRegisted) {
241 fHelIsRegisted =
true;
243 }
else if (name ==
"HElastic" && !fHelIsRegisted) {
245 fHelIsRegisted =
true;
247 }
else if (name ==
"binary" && !fBicIsRegisted) {
249 fBicIsRegisted =
true;
251 }
else if (name ==
"binary_ion" && !fBiciIsRegisted) {
253 fBiciIsRegisted =
true;
257 G4cout <<
"PhysicsList::AddPhysicsList: <" << name <<
">"
268 fStepMaxProcess =
new StepMax();
276 if (fStepMaxProcess->
IsApplicable(*particle) && pmanager)
285 void PhysicsList::AddIonGasModels()
295 if(partname ==
"alpha" || partname ==
"He3" || partname ==
"GenericIon") {
G4EmConfigurator * EmConfigurator()
static G4LossTableManager * Instance()
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
void SetExtraEmModel(const G4String &particleName, const G4String &processName, G4VEmModel *, const G4String ®ionName="", G4double emin=0.0, G4double emax=DBL_MAX, G4VEmFluctuationModel *fm=nullptr)
const G4String & GetParticleName() const
void AddPhysicsList(const G4String &name)
static constexpr double TeV
virtual void ConstructParticle()=0
G4GLOB_DLL std::ostream G4cout
G4double GetPDGMass() const
G4ProcessManager * GetProcessManager() const
virtual void ConstructProcess()=0
std::vector< G4InuclElementaryParticle >::iterator particleIterator
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
static constexpr double MeV
Definition of the PhysListEmStandardNR class.
virtual G4bool IsApplicable(const G4ParticleDefinition &)