44 LogVolume(logicalVolume)
46 if (theSkinSurfaceTable ==
nullptr)
52 theSkinSurfaceTable->insert(std::make_pair(logicalVolume,
this));
72 if (theSkinSurfaceTable ==
nullptr)
76 return theSkinSurfaceTable;
82 if (theSkinSurfaceTable !=
nullptr)
84 return theSkinSurfaceTable->size();
93 if (theSkinSurfaceTable !=
nullptr)
95 auto pos = theSkinSurfaceTable->find(vol);
96 if(pos != theSkinSurfaceTable->cend()) {
return pos->second; }
106 G4cout <<
"***** Skin Surface Table : Nb of Surfaces = "
109 if (theSkinSurfaceTable !=
nullptr)
111 for(
const auto & pos : *theSkinSurfaceTable)
115 <<
" Skin of logical volume "
126 if (theSkinSurfaceTable ==
nullptr) {
return; }
131 G4cout <<
"WARNING - Attempt to clear the skin surface store"
132 <<
" while geometry closed !" <<
G4endl;
136 for (
const auto& pos : *theSkinSurfaceTable)
140 theSkinSurfaceTable->clear();
std::map< const G4LogicalVolume *, G4LogicalSkinSurface * > G4LogicalSkinSurfaceTable
G4GLOB_DLL std::ostream G4cout
static G4GeometryManager * GetInstance()
G4LogicalSkinSurface is a Logical Surface class for the surface surrounding a single logical volume.
static G4LogicalSkinSurface * GetSurface(const G4LogicalVolume *vol)
G4bool operator==(const G4LogicalSkinSurface &right) const
const G4LogicalVolume * GetLogicalVolume() const
G4LogicalSkinSurface(const G4String &name, G4LogicalVolume *vol, G4SurfaceProperty *surfaceProperty)
static const G4LogicalSkinSurfaceTable * GetSurfaceTable()
static void CleanSurfaceTable()
static std::size_t GetNumberOfSkinSurfaces()
G4bool operator!=(const G4LogicalSkinSurface &right) const
const G4String & GetName() const
G4LogicalSurface(const G4LogicalSurface &)=delete
G4LogicalVolume represents a leaf node or unpositioned subtree in the geometry hierarchy....
const G4String & GetName() const