56 G4cout <<
" G4IStore:: ParallelWorldName = " << ParallelWorldName <<
G4endl;
65 fGeometryCelli.clear();
78 G4cout <<
" G4IStore:: SetParallelWorldVolume " <<
G4endl;
99 void G4IStore::SetInternalIterator(
const G4GeometryCell &gCell)
const
101 fCurrentIterator = fGeometryCelli.find(gCell);
107 if (importance < 0 ) {
108 Error(
"AddImportanceGeometryCell() - Invalid importance value given.");
111 Error(
"AddImportanceGeometryCell() - Physical volume not found!");
113 SetInternalIterator(gCell);
114 if (fCurrentIterator!=fGeometryCelli.end()) {
115 Error(
"AddImportanceGeometryCell() - Region already existing!");
117 fGeometryCelli[gCell] = importance;
130 if (importance < 0 ) {
131 Error(
"ChangeImportance() - Invalid importance value given.");
134 Error(
"ChangeImportance() - Physical volume not found!");
136 SetInternalIterator(gCell);
137 if (fCurrentIterator==fGeometryCelli.end()) {
138 Error(
"ChangeImportance() - Region does not exist!");
140 fGeometryCelli[gCell] = importance;
154 G4GeometryCellImportance::const_iterator gCellIterator = fCurrentIterator;
155 if (gCellIterator==fGeometryCelli.end()) {
156 Error(
"GetImportance() - Region does not exist!");
159 return (*fCurrentIterator).second;
165 SetInternalIterator(gCell);
166 G4GeometryCellImportance::const_iterator gCellIterator = fCurrentIterator;
167 if (gCellIterator==fGeometryCelli.end()) {
168 std::ostringstream err_mess;
169 err_mess <<
"GetImportance() - Region does not exist!" <<
G4endl
170 <<
"Geometry cell, " << gCell
171 <<
", not found in: " << fGeometryCelli <<
".";
172 Error(err_mess.str());
175 return (*fCurrentIterator).second;
181 if ( inWorldKnown ) {
182 SetInternalIterator(gCell);
183 inWorldKnown = (fCurrentIterator!=fGeometryCelli.end());
193 if (!(aVolume == *fWorldVolume)) {
201 void G4IStore::Error(
const G4String &msg)
const
215 G4cout <<
"G4IStore:: Creating new MASS IStore " <<
G4endl;
230 G4cout <<
"G4IStore:: Creating new Parallel IStore " << ParallelWorldName <<
G4endl;
231 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