34 #include "PhysicsList.hh"
35 #include "PhysicsListMessenger.hh"
37 #include "PhysListEmStandard.hh"
38 #include "PhysListEmStandardSS.hh"
90 fHelIsRegisted =
false;
91 fBicIsRegisted =
false;
92 fBiciIsRegisted =
false;
101 fEmName =
G4String(
"emstandard_opt0");
113 delete fEmPhysicsList;
114 delete fDecPhysicsList;
115 for(
size_t i=0; i<fHadronPhys.size(); i++) {
delete fHadronPhys[i];}
142 for(
size_t i=0; i<fHadronPhys.size(); i++) {
143 fHadronPhys[i]->ConstructProcess();
156 G4cout <<
"PhysicsList::AddPhysicsList: <" << name <<
">" <<
G4endl;
159 if (name == fEmName)
return;
161 if (name ==
"local") {
164 delete fEmPhysicsList;
167 }
else if (name ==
"emstandard_opt0") {
170 delete fEmPhysicsList;
173 }
else if (name ==
"emstandard_opt1") {
176 delete fEmPhysicsList;
179 }
else if (name ==
"emstandard_opt2") {
182 delete fEmPhysicsList;
185 }
else if (name ==
"emstandard_opt3") {
188 delete fEmPhysicsList;
191 }
else if (name ==
"emstandard_opt4") {
194 delete fEmPhysicsList;
197 }
else if (name ==
"standardSS") {
200 delete fEmPhysicsList;
203 }
else if (name ==
"ionGasModels") {
209 }
else if (name ==
"standardNR") {
212 delete fEmPhysicsList;
215 }
else if (name ==
"emlivermore") {
217 delete fEmPhysicsList;
220 }
else if (name ==
"empenelope") {
222 delete fEmPhysicsList;
225 }
else if (name ==
"elastic" && !fHelIsRegisted) {
227 fHelIsRegisted =
true;
229 }
else if (name ==
"DElastic" && !fHelIsRegisted) {
231 fHelIsRegisted =
true;
233 }
else if (name ==
"HElastic" && !fHelIsRegisted) {
235 fHelIsRegisted =
true;
237 }
else if (name ==
"binary" && !fBicIsRegisted) {
239 fBicIsRegisted =
true;
241 }
else if (name ==
"binary_ion" && !fBiciIsRegisted) {
243 fBiciIsRegisted =
true;
247 G4cout <<
"PhysicsList::AddPhysicsList: <" << name <<
">"
258 fStepMaxProcess =
new StepMax();
265 if (fStepMaxProcess->
IsApplicable(*particle) && pmanager)
277 G4cout <<
"PhysicsList::SetCuts:";
302 fCutForElectron = cut;
310 fCutForPositron = cut;
316 void PhysicsList::AddIonGasModels()
324 if(partname ==
"alpha" || partname ==
"He3" || partname ==
"GenericIon") {
G4EmConfigurator * EmConfigurator()
static G4LossTableManager * Instance()
void SetCutValue(G4double aCut, const G4String &pname)
void SetCutForGamma(G4double)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
void SetCutForPositron(G4double)
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4ProcessManager * GetProcessManager() const
void SetCutForElectron(G4double)
const G4String & GetParticleName() const
void AddPhysicsList(const G4String &name)
virtual void ConstructParticle()=0
void SetParticleCuts(G4double cut, G4ParticleDefinition *particle, G4Region *region=0)
void DumpCutValuesTable(G4int flag=1)
G4GLOB_DLL std::ostream G4cout
void SetVerboseLevel(G4int value)
static G4Positron * Positron()
G4double GetPDGMass() const
virtual void ConstructProcess()=0
static G4Electron * Electron()
Definition of the PhysListEmStandardNR class.
void SetExtraEmModel(const G4String &particleName, const G4String &processName, G4VEmModel *, const G4String ®ionName="", G4double emin=0.0, G4double emax=DBL_MAX, G4VEmFluctuationModel *fm=0)
#define theParticleIterator
virtual G4bool IsApplicable(const G4ParticleDefinition &)