76 defaultCutValue(1.0 * mm),
77 isSetDefaultCutValue(false),
78 fRetrievePhysicsTable(false),
80 fIsCheckedForRetrievePhysicsTable(false),
81 fIsRestoredCutValues(false),
82 directoryPhysicsTable(
"."),
84 fIsPhysicsTableBuilt(false),
85 fDisableCheckParticleList(false)
125 :verboseLevel(right.verboseLevel),
126 defaultCutValue(right.defaultCutValue),
127 isSetDefaultCutValue(right.isSetDefaultCutValue),
128 fRetrievePhysicsTable(right.fRetrievePhysicsTable),
129 fStoredInAscii(right.fStoredInAscii),
130 fIsCheckedForRetrievePhysicsTable(right.fIsCheckedForRetrievePhysicsTable),
131 fIsRestoredCutValues(right.fIsRestoredCutValues),
132 directoryPhysicsTable(right.directoryPhysicsTable),
133 fDisplayThreshold(right.fDisplayThreshold),
134 fIsPhysicsTableBuilt(right.fIsPhysicsTableBuilt),
135 fDisableCheckParticleList(right.fDisableCheckParticleList)
157 if (
this != &right) {
177 if (newParticle == 0)
return;
181 G4cout <<
"G4VUserPhysicsList::AddProcessManager: "
183 <<
" already has ProcessManager " <<
G4endl;
190 if (newManager == 0){
197 if (genericIon != 0) {
204 G4Exception(
"G4VUserPhysicsList::AddProcessManager",
206 "GenericIon has no ProcessMamanger");
211 G4Exception(
"G4VUserPhysicsList::AddProcessManager",
213 "GenericIon does not exist");
230 G4cout <<
"G4VUserPhysicsList::AddProcessManager: "
231 <<
"adds ProcessManager to "
268 if (pmanager!=0)
delete pmanager;
272 G4cout <<
"G4VUserPhysicsList::RemoveProcessManager: "
273 <<
"remove ProcessManager from "
315 G4cout <<
"G4VUserPhysicsList::SetDefaultCutValue: negative cut values"
316 <<
" :" << value/mm <<
"[mm]" <<
G4endl;
333 G4cout <<
"G4VUserPhysicsList::SetDefaultCutValue:"
334 <<
"default cut value is changed to :"
348 G4cout <<
"G4VUserPhysicsList::GetCutValue "
349 <<
" : No Default Region " <<
G4endl;
354 "No Default Region");
378 G4cout <<
"G4VUserPhysicsList::SetCutValue "
379 <<
" : No Region of " << rname <<
G4endl;
417 G4cout <<
"G4VUserPhysicsList::SetParticleCuts: negative cut values"
418 <<
" :" << cut/mm <<
"[mm]"
419 <<
" for "<< particleName <<
G4endl;
430 G4cout <<
"G4VUserPhysicsList::SetParticleCuts "
431 <<
" : No Default Region " <<
G4endl;
434 G4Exception(
"G4VUserPhysicsList::SetParticleCuts ",
436 "No Default Region");
450 G4cout <<
"G4VUserPhysicsList::SetParticleCuts: "
451 <<
" :" << cut/mm <<
"[mm]"
452 <<
" for "<< particleName <<
G4endl;
474 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable"
475 <<
" Retrieve Cut Table failed !!" <<
G4endl;
478 G4Exception(
"G4VUserPhysicsList::BuildPhysicsTable",
480 "Fail to retrieve Production Cut Table");
484 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable"
485 <<
" Retrieve Cut Table successfully " <<
G4endl;
492 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable"
493 <<
" does not retrieve Cut Table but calculate " <<
G4endl;
514 if( particle!=GammaP &&
534 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
535 <<
"Physics table can not be retreived and will be calculated "
544 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
545 <<
" Retrieve Physics Table for "
556 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
557 <<
"Calculate Physics Table for "
568 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
569 <<
" : No Process Manager for "
572 <<
" should be created in your PhysicsList" <<
G4endl;
575 G4Exception(
"G4VUserPhysicsList::BuildPhysicsTable",
577 "No process manager");
584 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
585 <<
" : No Process Vector for "
589 G4Exception(
"G4VUserPhysicsList::BuildPhysicsTable",
591 "No process Vector");
594 for (
G4int j=0; j < pVector->
size(); ++j) {
595 (*pVector)[j]->BuildPhysicsTable(*particle);
610 G4cout<<
"G4VUserPhysicsList::PreparePhysicsTable "
611 <<
": No Process Manager for "
614 <<
" should be created in your PhysicsList" <<
G4endl;
617 G4Exception(
"G4VUserPhysicsList::PreparePhysicsTable",
619 "No process manager");
627 G4cout <<
"G4VUserPhysicsList::PreparePhysicsTable "
628 <<
": No Process Vector for "
632 G4Exception(
"G4VUserPhysicsList::PreparePhysicsTable",
634 "No process Vector");
637 for (
G4int j=0; j < pVector->
size(); ++j) {
638 (*pVector)[j]->PreparePhysicsTable(*particle);
662 G4cout <<
"G4VUserPhysicsList::BuildIntegralPhysicsTable "
663 <<
" BuildPhysicsTable is invoked for "
680 if ((idx++ % 4) == 3) {
715 G4Exception(
"G4VUserPhysicsList::StorePhysicsTable",
717 "Fail to store Cut Table");
722 G4cout <<
"G4VUserPhysicsList::StorePhysicsTable "
723 <<
" Store material and cut values successfully" <<
G4endl;
736 for ( j=0; j < pVector->
size(); ++j) {
737 if (!(*pVector)[j]->StorePhysicsTable(particle,dir,ascii)){
738 G4String comment =
"Fail to store physics table for ";
739 comment += (*pVector)[j]->GetProcessName();
741 G4Exception(
"G4VUserPhysicsList::StorePhysicsTable",
775 for ( j=0; j < pVector->
size(); ++j) {
777 (*pVector)[j]->RetrievePhysicsTable(particle,directory,ascii);
782 G4cout <<
"G4VUserPhysicsList::RetrievePhysicsTable "
783 <<
" Fail to retrieve Physics Table for "
784 << (*pVector)[j]->GetProcessName() <<
G4endl;
785 G4cout <<
"Calculate Physics Table for "
789 (*pVector)[j]->BuildPhysicsTable(*particle);
792 for ( j=0; j < pVector->
size(); ++j) {
804 G4cout <<
"G4VUserPhysicsList::SetApplyCuts for " << name <<
G4endl;
862 G4cout <<
"G4VUserPhysicsList::SetVerboseLevel :"
877 G4cout <<
"G4VUserPhysicsList::ResetCuts() is obsolete."
878 <<
" This method gives no effect and you can remove it. "<<
G4endl;
G4DLLIMPORT std::ostream G4cout
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleType() const
G4bool IsShortLived() const
void SetApplyCutsFlag(G4bool)
G4bool GetApplyCutsFlag() const
const G4String & GetParticleName() const
void SetProcessManager(G4ProcessManager *aProcessManager)
G4PTblDicIterator * GetIterator()
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
void DeleteAllParticles()
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
void CheckParticleList() const
void UseCoupledTransportation(G4bool vl=true)
static G4PhysicsListHelper * GetPhysicsListHelper()
void SetVerboseLevel(G4int value)
void SetParticleType(const G4ParticleDefinition *)
G4ProcessVector * GetProcessList() const
G4bool RetrieveCutsTable(const G4String &directory, G4bool ascii=false)
void SetVerboseLevel(G4int value)
G4bool StoreCutsTable(const G4String &directory, G4bool ascii=false)
void SetEnergyRange(G4double lowedge, G4double highedge)
static G4ProductionCutsTable * GetProductionCutsTable()
void SetProductionCut(G4double cut, G4int index=-1)
G4double GetProductionCut(G4int index) const
static G4RegionStore * GetInstance()
G4Region * GetRegion(const G4String &name, G4bool verbose=true) const
G4ProductionCuts * GetProductionCuts() const
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
const G4String & GetProcessName() const
G4double GetCutValue(const G4String &pname) const
void SetDefaultCutValue(G4double newCutValue)
G4UserPhysicsListMessenger * theMessenger
void SetPhysicsTableRetrieved(const G4String &directory="")
G4VUserPhysicsList & operator=(const G4VUserPhysicsList &)
void PreparePhysicsTable(G4ParticleDefinition *)
void SetCutValue(G4double aCut, const G4String &pname)
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
void UseCoupledTransportation(G4bool vl=true)
void SetCutsForRegion(G4double aCut, const G4String &rname)
G4bool fIsPhysicsTableBuilt
G4bool fDisableCheckParticleList
G4ProductionCutsTable * fCutsTable
G4bool fIsRestoredCutValues
void DumpCutValuesTableIfRequested()
G4bool StorePhysicsTable(const G4String &directory=".")
G4ParticleTable * theParticleTable
G4String directoryPhysicsTable
void SetVerboseLevel(G4int value)
G4bool fRetrievePhysicsTable
void SetApplyCuts(G4bool value, const G4String &name)
G4bool isSetDefaultCutValue
void SetParticleCuts(G4double cut, G4ParticleDefinition *particle, G4Region *region=0)
virtual void RetrievePhysicsTable(G4ParticleDefinition *, const G4String &directory, G4bool ascii=false)
void ResetCuts()
obsolete methods
G4bool fIsCheckedForRetrievePhysicsTable
void DumpCutValuesTable(G4int flag=1)
G4bool GetApplyCuts(const G4String &name) const
virtual ~G4VUserPhysicsList()
void SetCutsWithDefault()
void AddProcessManager(G4ParticleDefinition *newParticle, G4ProcessManager *newManager=0)
void BuildIntegralPhysicsTable(G4VProcess *, G4ParticleDefinition *)
G4ParticleTable::G4PTblDicIterator * theParticleIterator
void RemoveProcessManager()
G4PhysicsListHelper * thePLHelper
void InitializeProcessManager()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)