68 delete theDetectorBuilder;
102 theVolumeList.insert( G4mssvol::value_type( vol->
GetName(),
110 theSolids.insert( G4mmssol::value_type( solid->
GetName(),
118 theLVs.insert( G4mmslv::value_type( lv->
GetName(),
124 G4cout <<
" G4tgbVolumeMgr::RegisterMe() - Logical volume registered: "
133 thePVs.insert( G4mmspv::value_type( pv->
GetName(),
152 G4mapsvol::iterator cite;
154 for(cite = vollist.begin(); cite != vollist.end(); cite++)
166 G4mssvol::const_iterator cite = theVolumeList.find( volname );
167 if( cite == theVolumeList.end() )
169 G4String ErrMessage =
"G4tgbVolume not found: " + volname +
" !";
170 G4Exception(
"G4tgbVolumeMgr::FindVolume()",
"InvalidSetup",
173 return (*cite).second;
183 G4cout <<
" G4tgbVolumeMgr::FindG4Solid() - " << name <<
G4endl;
188 std::pair<G4mmssol::iterator, G4mmssol::iterator> mmssdi;
189 mmssdi = theSolids.equal_range( name );
191 if( mmssdi.first != mmssdi.second ) {
192 G4mmssol::const_iterator mmsscite = mmssdi.first;
197 G4cout <<
" G4tgbVolumeMgr::FindG4Solid() - Solid finding "
215 oldSolid = (*mmsscite).second;
219 G4cout <<
" G4tgbVolumeMgr::FindG4Solid() - Solid already found "
228 G4cout <<
" G4tgbVolumeMgr::FindG4Solid() - Old solid: "
241 G4mmslv::const_iterator mscite = theLVs.find( name );
242 if( mscite == theLVs.end() )
246 G4String ErrMessage =
"Logical volume name " + name +
" not found !";
247 G4Exception(
"G4tgbVolumeMgr::FindG4LogVol()",
"InvalidSetup",
254 return (*mscite).second;
262 G4mmspv::const_iterator mscite = thePVs.find( name );
263 if( mscite == thePVs.end() )
267 G4String ErrMessage =
"Physical volume name " + name +
" not found !";
268 G4Exception(
"G4tgbVolumeMgr::FindG4PhysVol()",
"InvalidSetup",
275 return (*mscite).second;
289 G4cout <<
" G4tgbVolumeMgr::GetTopPhysVol() - pv: "
306 G4cout <<
" G4tgbVolumeMgr::GetTopLogVol theLVInvTresize "
307 << theLVInvTree.size() <<
G4endl;
310 if( theLVInvTree.size() == 0 )
312 G4Exception(
"G4tgbVolumeMgr::GetTopLogVol()",
"InvalidSetup",
320 lv = (*(theLVInvTree.begin())).first;
324 while( (*(theLVInvTree.find( lv ))).second != 0)
327 lv = (*(theLVInvTree.find( lv ))).second;
331 G4cout <<
" G4tgbVolumeMgr::GetTopPhysVol: lv "
361 G4cout <<
" @@@@@@@@@@@@@ Dumping Geant4 geometry objects Summary " <<
G4endl;
362 G4cout <<
" @@@ Geometry built inside world volume: "
364 G4cout <<
" Number of G4VSolid's: " << theSolids.size() <<
G4endl;
365 G4cout <<
" Number of G4LogicalVolume's: " << theLVs.size() <<
G4endl;
366 G4cout <<
" Number of G4VPhysicalVolume's: " << thePVs.size() <<
G4endl;
369 G4cout <<
" Number of G4Isotope's: "
371 G4cout <<
" Number of G4Element's: "
373 G4cout <<
" Number of G4Material's: "
377 G4cout <<
" Number of G4RotationMatrix's: "
390 G4mmssol::const_iterator cite;
391 for( cite = theSolids.begin(); cite != theSolids.end(); cite++)
393 G4cout <<
"G4SOLID: " << (*cite).second->GetName()
394 <<
" of type " << (*cite).second->GetEntityType() <<
G4endl;
402 G4cout <<
" @@@@@@@@@@@@@ DUMPING G4LogicalVolume's Tree " <<
G4endl;
412 unsigned int leafDepth)
414 for(
size_t ii=0; ii < leafDepth; ii++ )
439 G4cout <<
" @@@@@@@@@@@@@ DUMPING G4PhysicalVolume's Tree " <<
G4endl;
449 unsigned int leafDepth)
451 for(
size_t ii=0; ii < leafDepth; ii++ )
G4DLLIMPORT std::ostream G4cout
std::map< G4String, G4tgrVolume * > G4mapsvol
static G4ReflectionFactory * Instance()
void SetScalePrecision(G4double scaleValue)
const G4String & GetName() const
virtual G4VPhysicalVolume * ConstructDetector(const G4tgrVolume *tgrVoltop)
virtual const G4tgrVolume * ReadDetector()
const G4msg4elem GetG4ElementList() const
const G4msg4mate GetG4MaterialList() const
const G4msg4isot GetG4IsotopeList() const
static G4tgbMaterialMgr * GetInstance()
const G4msg4rotm & GetG4RotMatList() const
static G4tgbRotationMatrixMgr * GetInstance()
G4tgbVolume * FindVolume(const G4String &volname)
G4LogicalVolume * FindG4LogVol(const G4String &theName, const G4bool bExists=0)
void AddTextFile(const G4String &fname)
G4VSolid * FindG4Solid(const G4String &name)
void RegisterMe(const G4tgbVolume *vol)
static G4tgbVolumeMgr * GetInstance()
void DumpG4PhysVolLeaf(const G4VPhysicalVolume *pv, unsigned int leafDepth)
G4VPhysicalVolume * ReadAndConstructDetector()
G4VPhysicalVolume * FindG4PhysVol(const G4String &theName, const G4bool bExists=0)
G4LogicalVolume * GetTopLogVol()
void DumpG4LogVolLeaf(const G4LogicalVolume *lv, unsigned int leafDepth)
G4VPhysicalVolume * GetTopPhysVol()
void RegisterChildParentLVs(const G4LogicalVolume *logvol, const G4LogicalVolume *parentLV)
const G4String & GetName() const
void AddTextFile(const G4String &fname)
static G4tgrFileReader * GetInstance()
static G4int GetVerboseLevel()
const G4mapsvol & GetVolumeMap()
static G4tgrVolumeMgr * GetInstance()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)