#include <G4FieldManagerStore.hh>
Public Member Functions | |
void | ClearAllChordFindersState () |
virtual | ~G4FieldManagerStore () |
Static Public Member Functions | |
static void | Register (G4FieldManager *pVolume) |
static void | DeRegister (G4FieldManager *pVolume) |
static G4FieldManagerStore * | GetInstance () |
static void | Clean () |
Protected Member Functions | |
G4FieldManagerStore () |
Definition at line 58 of file G4FieldManagerStore.hh.
G4FieldManagerStore::~G4FieldManagerStore | ( | ) | [virtual] |
Definition at line 63 of file G4FieldManagerStore.cc.
References Clean().
00064 { 00065 Clean(); 00066 }
G4FieldManagerStore::G4FieldManagerStore | ( | ) | [protected] |
void G4FieldManagerStore::Clean | ( | ) | [static] |
Definition at line 72 of file G4FieldManagerStore.cc.
References G4cout, G4endl, and GetInstance().
Referenced by ~G4FieldManagerStore().
00073 { 00074 // Locks store for deletion of field managers. De-registration will be 00075 // performed at this stage. G4FieldManagers will not de-register themselves. 00076 // 00077 locked = true; 00078 00079 size_t i=0; 00080 G4FieldManagerStore* store = GetInstance(); 00081 00082 for(iterator pos=store->begin(); pos!=store->end(); pos++) 00083 { 00084 if (*pos) { delete *pos; } 00085 i++; 00086 } 00087 00088 #ifdef G4GEOMETRY_DEBUG 00089 if (store->size() < i-1) 00090 { G4cout << "No field managers deleted. Already deleted by user ?" << G4endl; } 00091 else 00092 { G4cout << i-1 << " field managers deleted !" << G4endl; } 00093 #endif 00094 00095 locked = false; 00096 store->clear(); 00097 }
void G4FieldManagerStore::ClearAllChordFindersState | ( | ) |
Definition at line 146 of file G4FieldManagerStore.cc.
References GetInstance(), and G4ChordFinder::ResetStepEstimate().
Referenced by G4Transportation::StartTracking(), G4ITTransportation::StartTracking(), and G4CoupledTransportation::StartTracking().
00147 { 00148 G4ChordFinder *pChordFnd; 00149 00150 for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) 00151 { 00152 pChordFnd = (*i)->GetChordFinder(); 00153 if( pChordFnd ) 00154 { 00155 pChordFnd->ResetStepEstimate(); 00156 } 00157 } 00158 }
void G4FieldManagerStore::DeRegister | ( | G4FieldManager * | pVolume | ) | [static] |
Definition at line 112 of file G4FieldManagerStore.cc.
References GetInstance().
Referenced by G4FieldManager::~G4FieldManager().
00113 { 00114 if (!locked) // Do not de-register if locked ! 00115 { 00116 for (iterator i=GetInstance()->begin(); i!=GetInstance()->end(); i++) 00117 { 00118 if (*i==pFieldMgr) // For LogVol was **i == *pLogVolume ... Reason? 00119 { 00120 GetInstance()->erase(i); 00121 break; 00122 } 00123 } 00124 } 00125 }
G4FieldManagerStore * G4FieldManagerStore::GetInstance | ( | ) | [static] |
Definition at line 131 of file G4FieldManagerStore.cc.
Referenced by Clean(), ClearAllChordFindersState(), DeRegister(), Register(), G4Transportation::StartTracking(), G4ITTransportation::StartTracking(), and G4CoupledTransportation::StartTracking().
00132 { 00133 static G4FieldManagerStore worldStore; 00134 if (!fgInstance) 00135 { 00136 fgInstance = &worldStore; 00137 } 00138 return fgInstance; 00139 }
void G4FieldManagerStore::Register | ( | G4FieldManager * | pVolume | ) | [static] |
Definition at line 103 of file G4FieldManagerStore.cc.
References GetInstance().
Referenced by G4FieldManager::G4FieldManager().
00104 { 00105 GetInstance()->push_back(pFieldManager); 00106 }