55 G4cout <<
" G4IStore:: ParallelWorldName = " << ParallelWorldName <<
G4endl;
64 fGeometryCelli.clear();
77 G4cout <<
" G4IStore:: SetParallelWorldVolume " <<
G4endl;
98 void G4IStore::SetInternalIterator(
const G4GeometryCell &gCell)
const
100 fCurrentIterator = fGeometryCelli.find(gCell);
106 if (importance < 0 ) {
107 Error(
"AddImportanceGeometryCell() - Invalid importance value given.");
110 Error(
"AddImportanceGeometryCell() - Physical volume not found!");
112 SetInternalIterator(gCell);
113 if (fCurrentIterator!=fGeometryCelli.end()) {
114 Error(
"AddImportanceGeometryCell() - Region already existing!");
116 fGeometryCelli[gCell] = importance;
129 if (importance < 0 ) {
130 Error(
"ChangeImportance() - Invalid importance value given.");
133 Error(
"ChangeImportance() - Physical volume not found!");
135 SetInternalIterator(gCell);
136 if (fCurrentIterator==fGeometryCelli.end()) {
137 Error(
"ChangeImportance() - Region does not exist!");
139 fGeometryCelli[gCell] = importance;
153 G4GeometryCellImportance::const_iterator gCellIterator = fCurrentIterator;
154 if (gCellIterator==fGeometryCelli.end()) {
155 Error(
"GetImportance() - Region does not exist!");
158 return (*fCurrentIterator).second;
164 SetInternalIterator(gCell);
165 G4GeometryCellImportance::const_iterator gCellIterator = fCurrentIterator;
166 if (gCellIterator==fGeometryCelli.end()) {
167 std::ostringstream err_mess;
168 err_mess <<
"GetImportance() - Region does not exist!" <<
G4endl
169 <<
"Geometry cell, " << gCell
170 <<
", not found in: " << fGeometryCelli <<
".";
171 Error(err_mess.str());
174 return (*fCurrentIterator).second;
180 if ( inWorldKnown ) {
181 SetInternalIterator(gCell);
182 inWorldKnown = (fCurrentIterator!=fGeometryCelli.end());
192 if (!(aVolume == *fWorldVolume)) {
200 void G4IStore::Error(
const G4String &msg)
const
214 G4cout <<
"G4IStore:: Creating new MASS IStore " <<
G4endl;
229 G4cout <<
"G4IStore:: Creating new Parallel IStore " << ParallelWorldName <<
G4endl;
230 fInstance =
new G4IStore(ParallelWorldName);
void SetParallelWorldVolume(G4String paraName)
void ChangeImportance(G4double importance, const G4GeometryCell &gCell)
G4bool IsAncestor(const G4VPhysicalVolume *p) const
G4Navigator * GetNavigatorForTracking() const
virtual const G4VPhysicalVolume * GetParallelWorldVolumePointer() const
G4GLOB_DLL std::ostream G4cout
const G4String & GetName() const
virtual G4bool IsKnown(const G4GeometryCell &gCell) const
virtual G4double GetImportance(const G4GeometryCell &gCell) const
virtual const G4VPhysicalVolume & GetWorldVolume() const
void AddImportanceGeometryCell(G4double importance, const G4GeometryCell &gCell)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static G4TransportationManager * GetTransportationManager()
const G4VPhysicalVolume & GetPhysicalVolume() const
G4VPhysicalVolume * GetParallelWorld(const G4String &worldName)
static G4IStore * GetInstance()
G4LogicalVolume * GetLogicalVolume() const
G4VPhysicalVolume * GetWorldVolume() const