62 delete theDetectorBuilder;
69 if(theInstance ==
nullptr)
112 G4cout <<
" G4tgbVolumeMgr::RegisterMe() - Logical volume registered: "
140 for(
auto cite = vollist.cbegin(); cite != vollist.cend(); ++cite)
151 G4mssvol::const_iterator cite = theVolumeList.find(volname);
152 if(cite == theVolumeList.cend())
154 G4String ErrMessage =
"G4tgbVolume not found: " + volname +
" !";
161 return (*cite).second;
171 G4cout <<
" G4tgbVolumeMgr::FindG4Solid() - " << name <<
G4endl;
176 std::pair<G4mmssol::iterator, G4mmssol::iterator> mmssdi;
177 mmssdi = theSolids.equal_range(name);
179 if(mmssdi.first != mmssdi.second)
181 G4mmssol::const_iterator mmsscite = mmssdi.first;
186 G4cout <<
" G4tgbVolumeMgr::FindG4Solid() - Solid finding " << name
204 oldSolid = (*mmsscite).second;
208 G4cout <<
" G4tgbVolumeMgr::FindG4Solid() - Solid already found " << name
217 G4cout <<
" G4tgbVolumeMgr::FindG4Solid() - Old solid: " << oldSolid
229 G4mmslv::const_iterator mscite = theLVs.find(name);
230 if(mscite == theLVs.cend())
234 G4String ErrMessage =
"Logical volume name " + name +
" not found !";
235 G4Exception(
"G4tgbVolumeMgr::FindG4LogVol()",
"InvalidSetup",
242 return (*mscite).second;
250 G4mmspv::const_iterator mscite = thePVs.find(name);
251 if(mscite == thePVs.cend())
255 G4String ErrMessage =
"Physical volume name " + name +
" not found !";
256 G4Exception(
"G4tgbVolumeMgr::FindG4PhysVol()",
"InvalidSetup",
263 return (*mscite).second;
276 G4cout <<
" G4tgbVolumeMgr::GetTopPhysVol() - pv: " << pv->
GetName()
292 G4cout <<
" G4tgbVolumeMgr::GetTopLogVol theLVInvTresize "
293 << theLVInvTree.size() <<
G4endl;
296 if(theLVInvTree.size() == 0)
298 G4Exception(
"G4tgbVolumeMgr::GetTopLogVol()",
"InvalidSetup",
306 lv = (*(theLVInvTree.begin())).first;
310 while((*(theLVInvTree.find(lv))).second !=
nullptr)
313 lv = (*(theLVInvTree.find(lv))).second;
317 G4cout <<
" G4tgbVolumeMgr::GetTopPhysVol: lv " << lv->
GetName()
344 G4cout <<
" @@@@@@@@@@@@@ Dumping Geant4 geometry objects Summary " <<
G4endl;
345 G4cout <<
" @@@ Geometry built inside world volume: "
347 G4cout <<
" Number of G4VSolid's: " << theSolids.size() <<
G4endl;
348 G4cout <<
" Number of G4LogicalVolume's: " << theLVs.size() <<
G4endl;
349 G4cout <<
" Number of G4VPhysicalVolume's: " << thePVs.size() <<
G4endl;
360 G4cout <<
" Number of G4RotationMatrix's: "
372 for(
auto cite = theSolids.cbegin(); cite != theSolids.cend(); ++cite)
374 G4cout <<
"G4SOLID: " << (*cite).second->GetName() <<
" of type "
375 << (*cite).second->GetEntityType() <<
G4endl;
382 G4cout <<
" @@@@@@@@@@@@@ DUMPING G4LogicalVolume's Tree " <<
G4endl;
391 unsigned int leafDepth)
393 for(std::size_t ii = 0; ii < leafDepth; ++ii)
416 G4cout <<
" @@@@@@@@@@@@@ DUMPING G4PhysicalVolume's Tree " <<
G4endl;
425 unsigned int leafDepth)
427 for(std::size_t ii = 0; ii < leafDepth; ++ii)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4GLOB_DLL std::ostream G4cout
std::map< G4String, G4tgrVolume * > G4mapsvol
const G4String & GetName() const
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()
G4LogicalVolume * FindG4LogVol(const G4String &theName, const G4bool bExists=false)
G4tgbVolume * FindVolume(const G4String &volname)
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()
G4LogicalVolume * GetTopLogVol()
void DumpG4LogVolLeaf(const G4LogicalVolume *lv, unsigned int leafDepth)
G4VPhysicalVolume * GetTopPhysVol()
void RegisterChildParentLVs(const G4LogicalVolume *logvol, const G4LogicalVolume *parentLV)
G4VPhysicalVolume * FindG4PhysVol(const G4String &theName, const G4bool bExists=false)
const G4String & GetName() const
void AddTextFile(const G4String &fname)
static G4tgrFileReader * GetInstance()
static G4int GetVerboseLevel()
const G4mapsvol & GetVolumeMap()
static G4tgrVolumeMgr * GetInstance()