Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4LogicalSkinSurface Class Reference

G4LogicalSkinSurface is a Logical Surface class for the surface surrounding a single logical volume. More...

#include <G4LogicalSkinSurface.hh>

Inheritance diagram for G4LogicalSkinSurface:

Public Member Functions

 G4LogicalSkinSurface (const G4String &name, G4LogicalVolume *vol, G4SurfaceProperty *surfaceProperty)
 ~G4LogicalSkinSurface () override=default
 G4LogicalSkinSurface (const G4LogicalSkinSurface &)=delete
G4LogicalSkinSurfaceoperator= (const G4LogicalSkinSurface &)=delete
G4bool operator== (const G4LogicalSkinSurface &right) const
G4bool operator!= (const G4LogicalSkinSurface &right) const
const G4LogicalVolumeGetLogicalVolume () const
void SetLogicalVolume (G4LogicalVolume *vol)
Public Member Functions inherited from G4LogicalSurface
virtual ~G4LogicalSurface ()=default
 G4LogicalSurface (const G4LogicalSurface &)=delete
G4LogicalSurfaceoperator= (const G4LogicalSurface &)=delete
G4SurfacePropertyGetSurfaceProperty () const
void SetSurfaceProperty (G4SurfaceProperty *ptrSurfaceProperty)
const G4StringGetName () const
void SetName (const G4String &name)
G4TransitionRadiationSurface * GetTransitionRadiationSurface () const
void SetTransitionRadiationSurface (G4TransitionRadiationSurface *trs)
G4bool operator== (const G4LogicalSurface &right) const
G4bool operator!= (const G4LogicalSurface &right) const

Static Public Member Functions

static G4LogicalSkinSurfaceGetSurface (const G4LogicalVolume *vol)
static void CleanSurfaceTable ()
static const G4LogicalSkinSurfaceTableGetSurfaceTable ()
static std::size_t GetNumberOfSkinSurfaces ()
static void DumpInfo ()

Additional Inherited Members

Protected Member Functions inherited from G4LogicalSurface
 G4LogicalSurface (const G4String &name, G4SurfaceProperty *prop)

Detailed Description

G4LogicalSkinSurface is a Logical Surface class for the surface surrounding a single logical volume.

Definition at line 52 of file G4LogicalSkinSurface.hh.

Constructor & Destructor Documentation

◆ G4LogicalSkinSurface() [1/2]

G4LogicalSkinSurface::G4LogicalSkinSurface ( const G4String & name,
G4LogicalVolume * vol,
G4SurfaceProperty * surfaceProperty )

Constructor and Destructor.

Definition at line 40 of file G4LogicalSkinSurface.cc.

43 : G4LogicalSurface(name, surfaceProperty),
44 LogVolume(logicalVolume)
45{
46 if (theSkinSurfaceTable == nullptr)
47 {
48 theSkinSurfaceTable = new G4LogicalSkinSurfaceTable;
49 }
50 // Store in the table of Surfaces
51 //
52 theSkinSurfaceTable->insert(std::make_pair(logicalVolume, this));
53}
std::map< const G4LogicalVolume *, G4LogicalSkinSurface * > G4LogicalSkinSurfaceTable
G4LogicalSurface(const G4LogicalSurface &)=delete

Referenced by DumpInfo(), GetLogicalVolume(), operator!=(), operator=(), and operator==().

◆ ~G4LogicalSkinSurface()

G4LogicalSkinSurface::~G4LogicalSkinSurface ( )
overridedefault

◆ G4LogicalSkinSurface() [2/2]

G4LogicalSkinSurface::G4LogicalSkinSurface ( const G4LogicalSkinSurface & )
delete

Copy constructor and assignment operator are not allowed.

Member Function Documentation

◆ CleanSurfaceTable()

void G4LogicalSkinSurface::CleanSurfaceTable ( )
static

Handling of the table of surfaces.

Definition at line 124 of file G4LogicalSkinSurface.cc.

125{
126 if (theSkinSurfaceTable == nullptr) { return; }
127
128 // Do nothing if geometry is closed
129 if (G4GeometryManager::GetInstance()->IsGeometryClosed())
130 {
131 G4cout << "WARNING - Attempt to clear the skin surface store"
132 << " while geometry closed !" << G4endl;
133 return;
134 }
135
136 for (const auto& pos : *theSkinSurfaceTable)
137 {
138 delete pos.second;
139 }
140 theSkinSurfaceTable->clear();
141}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
static G4GeometryManager * GetInstance()

Referenced by G4RunManager::ReinitializeGeometry().

◆ DumpInfo()

void G4LogicalSkinSurface::DumpInfo ( )
static

Definition at line 104 of file G4LogicalSkinSurface.cc.

105{
106 G4cout << "***** Skin Surface Table : Nb of Surfaces = "
107 << GetNumberOfSkinSurfaces() << " *****" << G4endl;
108
109 if (theSkinSurfaceTable != nullptr)
110 {
111 for(const auto & pos : *theSkinSurfaceTable)
112 {
113 G4LogicalSkinSurface* pSurf = pos.second;
114 G4cout << pSurf->GetName() << " : " << G4endl
115 << " Skin of logical volume "
116 << pSurf->GetLogicalVolume()->GetName()
117 << G4endl;
118 }
119 }
120 G4cout << G4endl;
121}
const G4LogicalVolume * GetLogicalVolume() const
G4LogicalSkinSurface(const G4String &name, G4LogicalVolume *vol, G4SurfaceProperty *surfaceProperty)
static std::size_t GetNumberOfSkinSurfaces()
const G4String & GetName() const
const G4String & GetName() const

◆ GetLogicalVolume()

const G4LogicalVolume * G4LogicalSkinSurface::GetLogicalVolume ( ) const
inline

◆ GetNumberOfSkinSurfaces()

size_t G4LogicalSkinSurface::GetNumberOfSkinSurfaces ( )
static

Definition at line 80 of file G4LogicalSkinSurface.cc.

81{
82 if (theSkinSurfaceTable != nullptr)
83 {
84 return theSkinSurfaceTable->size();
85 }
86 return 0;
87}

Referenced by DumpInfo(), and G4GDMLWriteStructure::GetSkinSurface().

◆ GetSurface()

G4LogicalSkinSurface * G4LogicalSkinSurface::GetSurface ( const G4LogicalVolume * vol)
static

Generic accessors and setters.

Definition at line 91 of file G4LogicalSkinSurface.cc.

92{
93 if (theSkinSurfaceTable != nullptr)
94 {
95 auto pos = theSkinSurfaceTable->find(vol);
96 if(pos != theSkinSurfaceTable->cend()) { return pos->second; }
97 }
98 return nullptr;
99}

Referenced by G4MicroElecSurface::PostStepDoIt(), and G4OpBoundaryProcess::PostStepDoIt().

◆ GetSurfaceTable()

const G4LogicalSkinSurfaceTable * G4LogicalSkinSurface::GetSurfaceTable ( )
static

Definition at line 70 of file G4LogicalSkinSurface.cc.

71{
72 if (theSkinSurfaceTable == nullptr)
73 {
74 theSkinSurfaceTable = new G4LogicalSkinSurfaceTable;
75 }
76 return theSkinSurfaceTable;
77}

Referenced by G4GDMLWriteStructure::GetSkinSurface().

◆ operator!=()

G4bool G4LogicalSkinSurface::operator!= ( const G4LogicalSkinSurface & right) const

Definition at line 64 of file G4LogicalSkinSurface.cc.

65{
66 return (this != (G4LogicalSkinSurface *) &right);
67}

◆ operator=()

G4LogicalSkinSurface & G4LogicalSkinSurface::operator= ( const G4LogicalSkinSurface & )
delete

◆ operator==()

G4bool G4LogicalSkinSurface::operator== ( const G4LogicalSkinSurface & right) const

Equality operators.

Definition at line 57 of file G4LogicalSkinSurface.cc.

58{
59 return (this == (G4LogicalSkinSurface *) &right);
60}

◆ SetLogicalVolume()

void G4LogicalSkinSurface::SetLogicalVolume ( G4LogicalVolume * vol)
inline

The documentation for this class was generated from the following files: