83 #define G4MT_theMessenger ((this->subInstanceManager.offset[this->g4vuplInstanceID])._theMessenger)
84 #define G4MT_thePLHelper ((this->subInstanceManager.offset[this->g4vuplInstanceID])._thePLHelper)
85 #define fIsPhysicsTableBuilt ((this->subInstanceManager.offset[this->g4vuplInstanceID])._fIsPhysicsTableBuilt)
86 #define fDisplayThreshold ((this->subInstanceManager.offset[this->g4vuplInstanceID])._fDisplayThreshold)
87 #define theParticleIterator ((this->subInstanceManager.offset[this->g4vuplInstanceID])._theParticleIterator)
105 defaultCutValue(1.0 *
mm),
106 isSetDefaultCutValue(
false),
107 fRetrievePhysicsTable(
false),
108 fStoredInAscii(
true),
109 fIsCheckedForRetrievePhysicsTable(
false),
110 fIsRestoredCutValues(
false),
111 directoryPhysicsTable(
"."),
114 fDisableCheckParticleList(
false)
174 :verboseLevel(right.verboseLevel),
175 defaultCutValue(right.defaultCutValue),
176 isSetDefaultCutValue(right.isSetDefaultCutValue),
177 fRetrievePhysicsTable(right.fRetrievePhysicsTable),
178 fStoredInAscii(right.fStoredInAscii),
179 fIsCheckedForRetrievePhysicsTable(right.fIsCheckedForRetrievePhysicsTable),
180 fIsRestoredCutValues(right.fIsRestoredCutValues),
181 directoryPhysicsTable(right.directoryPhysicsTable),
184 fDisableCheckParticleList(right.fDisableCheckParticleList)
211 if (
this != &right) {
233 if (newParticle == 0)
return;
234 G4Exception(
"G4VUserPhysicsList::AddProcessManager",
236 "This method is obsolete");
245 #ifdef G4MULTITHREADED
246 G4MUTEXLOCK(&G4ParticleTable::particleTableMutex());
247 G4ParticleTable::lockCount()++;
264 G4cout <<
"G4VUserPhysicsList::InitializeProcessManager: creating ProcessManager to "
283 G4cout <<
"G4VUserPhysicsList::InitializeProcessManager: copying ProcessManager to "
292 #ifdef G4MULTITHREADED
304 #ifdef G4MULTITHREADED
305 G4MUTEXLOCK(&G4ParticleTable::particleTableMutex());
306 G4ParticleTable::lockCount()++;
319 if (pmanager!=0)
delete pmanager;
322 G4cout <<
"G4VUserPhysicsList::RemoveProcessManager: ";
323 G4cout <<
"remove ProcessManager from ";
333 #ifdef G4MULTITHREADED
374 G4cout <<
"G4VUserPhysicsList::SetDefaultCutValue: negative cut values"
375 <<
" :" << value/
mm <<
"[mm]" <<
G4endl;
392 G4cout <<
"G4VUserPhysicsList::SetDefaultCutValue:"
393 <<
"default cut value is changed to :"
407 G4cout <<
"G4VUserPhysicsList::GetCutValue "
408 <<
" : No Default Region " <<
G4endl;
413 "No Default Region");
437 G4cout <<
"G4VUserPhysicsList::SetCutValue "
438 <<
" : No Region of " << rname <<
G4endl;
476 G4cout <<
"G4VUserPhysicsList::SetParticleCuts: negative cut values"
477 <<
" :" << cut/
mm <<
"[mm]"
478 <<
" for "<< particleName <<
G4endl;
490 G4cout <<
"G4VUserPhysicsList::SetParticleCuts "
491 <<
" : No Default Region " <<
G4endl;
494 G4Exception(
"G4VUserPhysicsList::SetParticleCuts ",
496 "No Default Region");
499 region = world_region;
507 if(region != world_region &&
518 G4cout <<
"G4VUserPhysicsList::SetParticleCuts: "
519 <<
" :" << cut/
mm <<
"[mm]"
520 <<
" for "<< particleName <<
G4endl;
542 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable"
543 <<
" Retrieve Cut Table failed !!" <<
G4endl;
546 G4Exception(
"G4VUserPhysicsList::BuildPhysicsTable",
548 "Fail to retrieve Production Cut Table");
552 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable"
553 <<
" Retrieve Cut Table successfully " <<
G4endl;
560 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable"
561 <<
" does not retrieve Cut Table but calculate " <<
G4endl;
581 if( particle!=GammaP &&
598 G4cout <<
"#### G4VUserPhysicsList::BuildPhysicsTable() - BuildPhysicsTable("
607 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
608 <<
"Physics table can not be retrieved and will be calculated "
617 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
618 <<
" Retrieve Physics Table for "
629 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
630 <<
"Calculate Physics Table for "
641 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
642 <<
" : No Process Manager for "
645 <<
" should be created in your PhysicsList" <<
G4endl;
648 G4Exception(
"G4VUserPhysicsList::BuildPhysicsTable",
650 "No process manager");
661 G4cout <<
"G4VUserPhysicsList::BuildPhysicsTable "
662 <<
" : No Process Vector for "
666 G4Exception(
"G4VUserPhysicsList::BuildPhysicsTable",
668 "No process Vector");
674 G4cout <<
" ProcessManager : " << pManager <<
" ProcessManagerShadow : " << pManagerShadow <<
G4endl;
675 for(std::size_t iv1=0;iv1<pVector->
size();++iv1)
676 {
G4cout <<
" " << iv1 <<
" - " << (*pVector)[iv1]->GetProcessName() <<
G4endl; }
677 G4cout <<
"--------------------------------------------------------------" <<
G4endl;
680 for(std::size_t iv2=0;iv2<pVectorShadow->
size();++iv2)
681 {
G4cout <<
" " << iv2 <<
" - " << (*pVectorShadow)[iv2]->GetProcessName() <<
G4endl; }
684 for (std::size_t j=0; j < pVector->
size(); ++j) {
689 if ( pManagerShadow == pManager )
691 (*pVector)[j]->BuildPhysicsTable(*particle);
695 (*pVector)[j]->BuildWorkerPhysicsTable(*particle);
717 G4cout<<
"G4VUserPhysicsList::PreparePhysicsTable "
718 <<
": No Process Manager for "
721 <<
" should be created in your PhysicsList" <<
G4endl;
724 G4Exception(
"G4VUserPhysicsList::PreparePhysicsTable",
726 "No process manager");
739 G4cout <<
"G4VUserPhysicsList::PreparePhysicsTable "
740 <<
": No Process Vector for "
744 G4Exception(
"G4VUserPhysicsList::PreparePhysicsTable",
746 "No process Vector");
749 for (std::size_t j=0; j < pVector->
size(); ++j) {
755 if ( pManagerShadow == pManager )
757 (*pVector)[j]->PreparePhysicsTable(*particle);
761 (*pVector)[j]->PrepareWorkerPhysicsTable(*particle);
787 G4cout <<
"G4VUserPhysicsList::BuildIntegralPhysicsTable "
788 <<
" BuildPhysicsTable is invoked for "
805 if ((idx++ % 4) == 3) {
840 G4Exception(
"G4VUserPhysicsList::StorePhysicsTable",
842 "Fail to store Cut Table");
847 G4cout <<
"G4VUserPhysicsList::StorePhysicsTable "
848 <<
" Store material and cut values successfully" <<
G4endl;
860 for (std::size_t j=0; j < pVector->
size(); ++j) {
861 if (!(*pVector)[j]->StorePhysicsTable(particle,dir,ascii)){
862 G4String comment =
"Fail to store physics table for ";
863 comment += (*pVector)[j]->GetProcessName();
865 G4Exception(
"G4VUserPhysicsList::StorePhysicsTable",
898 for (std::size_t j=0; j < pVector->
size(); ++j) {
900 (*pVector)[j]->RetrievePhysicsTable(particle,directory,ascii);
905 G4cout <<
"G4VUserPhysicsList::RetrievePhysicsTable "
906 <<
" Fail to retrieve Physics Table for "
907 << (*pVector)[j]->GetProcessName() <<
G4endl;
908 G4cout <<
"Calculate Physics Table for "
912 (*pVector)[j]->BuildPhysicsTable(*particle);
915 for (std::size_t j=0; j < pVector->
size(); ++j) {
927 G4cout <<
"G4VUserPhysicsList::SetApplyCuts for " << name <<
G4endl;
991 G4cout <<
"G4VUserPhysicsList::SetVerboseLevel :"
1006 G4cout <<
"G4VUserPhysicsList::ResetCuts() is obsolete."
1007 <<
" This method gives no effect and you can remove it. "<<
G4endl;