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

#include <G4LogicalBorderSurface.hh>

+ Inheritance diagram for G4LogicalBorderSurface:

Public Member Functions

 G4LogicalBorderSurface (const G4String &name, G4VPhysicalVolume *vol1, G4VPhysicalVolume *vol2, G4SurfaceProperty *surfaceProperty)
 
 ~G4LogicalBorderSurface ()
 
 G4LogicalBorderSurface (const G4LogicalBorderSurface &)=delete
 
G4LogicalBorderSurfaceoperator= (const G4LogicalBorderSurface &)=delete
 
G4bool operator== (const G4LogicalBorderSurface &right) const
 
G4bool operator!= (const G4LogicalBorderSurface &right) const
 
void SetPhysicalVolumes (G4VPhysicalVolume *vol1, G4VPhysicalVolume *vol2)
 
const G4VPhysicalVolumeGetVolume1 () const
 
const G4VPhysicalVolumeGetVolume2 () const
 
std::size_t GetIndex () const
 
void SetVolume1 (G4VPhysicalVolume *vol1)
 
void SetVolume2 (G4VPhysicalVolume *vol2)
 
- Public Member Functions inherited from G4LogicalSurface
G4SurfacePropertyGetSurfaceProperty () const
 
void SetSurfaceProperty (G4SurfaceProperty *ptrSurfaceProperty)
 
const G4StringGetName () const
 
void SetName (const G4String &name)
 
G4TransitionRadiationSurface * GetTransitionRadiationSurface () const
 
void SetTransitionRadiationSurface (G4TransitionRadiationSurface *trs)
 
virtual ~G4LogicalSurface ()=default
 
 G4LogicalSurface (const G4LogicalSurface &)=delete
 
G4LogicalSurfaceoperator= (const G4LogicalSurface &)=delete
 
G4bool operator== (const G4LogicalSurface &right) const
 
G4bool operator!= (const G4LogicalSurface &right) const
 

Static Public Member Functions

static G4LogicalBorderSurfaceGetSurface (const G4VPhysicalVolume *vol1, const G4VPhysicalVolume *vol2)
 
static void CleanSurfaceTable ()
 
static const G4LogicalBorderSurfaceTableGetSurfaceTable ()
 
static std::size_t GetNumberOfBorderSurfaces ()
 
static void DumpInfo ()
 

Additional Inherited Members

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

Detailed Description

Definition at line 50 of file G4LogicalBorderSurface.hh.

Constructor & Destructor Documentation

◆ G4LogicalBorderSurface() [1/2]

G4LogicalBorderSurface::G4LogicalBorderSurface ( const G4String name,
G4VPhysicalVolume vol1,
G4VPhysicalVolume vol2,
G4SurfaceProperty surfaceProperty 
)

Definition at line 44 of file G4LogicalBorderSurface.cc.

49 : G4LogicalSurface(name, surfaceProperty),
50 Volume1(vol1), Volume2(vol2),
51 Index(theBorderSurfaceTable != nullptr ? theBorderSurfaceTable->size() : 0)
52{
53 if (theBorderSurfaceTable == nullptr)
54 {
55 theBorderSurfaceTable = new G4LogicalBorderSurfaceTable;
56 }
57
58 // Store in the table of Surfaces
59 //
60 theBorderSurfaceTable->insert(std::make_pair(std::make_pair(vol1,vol2),this));
61}
std::map< std::pair< const G4VPhysicalVolume *, const G4VPhysicalVolume * >, G4LogicalBorderSurface * > G4LogicalBorderSurfaceTable

◆ ~G4LogicalBorderSurface()

G4LogicalBorderSurface::~G4LogicalBorderSurface ( )

Definition at line 63 of file G4LogicalBorderSurface.cc.

64{
65}

◆ G4LogicalBorderSurface() [2/2]

G4LogicalBorderSurface::G4LogicalBorderSurface ( const G4LogicalBorderSurface )
delete

Member Function Documentation

◆ CleanSurfaceTable()

void G4LogicalBorderSurface::CleanSurfaceTable ( )
static

Definition at line 139 of file G4LogicalBorderSurface.cc.

140{
141 if (theBorderSurfaceTable != nullptr)
142 {
143 for(auto pos = theBorderSurfaceTable->cbegin();
144 pos != theBorderSurfaceTable->cend(); ++pos)
145 {
146 if (pos->second) { delete pos->second; }
147 }
148 theBorderSurfaceTable->clear();
149 }
150 return;
151}

◆ DumpInfo()

void G4LogicalBorderSurface::DumpInfo ( )
static

Definition at line 119 of file G4LogicalBorderSurface.cc.

120{
121 G4cout << "***** Surface Table : Nb of Surfaces = "
122 << GetNumberOfBorderSurfaces() << " *****" << G4endl;
123
124 if (theBorderSurfaceTable != nullptr)
125 {
126 for(auto pos = theBorderSurfaceTable->cbegin();
127 pos != theBorderSurfaceTable->cend(); ++pos)
128 {
129 G4LogicalBorderSurface* pSurf = pos->second;
130 G4cout << pSurf->GetName() << " : " << G4endl
131 << " Border of volumes "
132 << pSurf->GetVolume1()->GetName() << " and "
133 << pSurf->GetVolume2()->GetName() << G4endl;
134 }
135 }
136 G4cout << G4endl;
137}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
static std::size_t GetNumberOfBorderSurfaces()
const G4VPhysicalVolume * GetVolume2() const
const G4VPhysicalVolume * GetVolume1() const
const G4String & GetName() const
const G4String & GetName() const

◆ GetIndex()

std::size_t G4LogicalBorderSurface::GetIndex ( ) const
inline

◆ GetNumberOfBorderSurfaces()

std::size_t G4LogicalBorderSurface::GetNumberOfBorderSurfaces ( )
static

Definition at line 96 of file G4LogicalBorderSurface.cc.

97{
98 if (theBorderSurfaceTable != nullptr)
99 {
100 return theBorderSurfaceTable->size();
101 }
102 return 0;
103}

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

◆ GetSurface()

G4LogicalBorderSurface * G4LogicalBorderSurface::GetSurface ( const G4VPhysicalVolume vol1,
const G4VPhysicalVolume vol2 
)
static

Definition at line 106 of file G4LogicalBorderSurface.cc.

108{
109 if (theBorderSurfaceTable != nullptr)
110 {
111 auto pos = theBorderSurfaceTable->find(std::make_pair(vol1,vol2));
112 if(pos != theBorderSurfaceTable->cend()) return pos->second;
113 }
114 return nullptr;
115}

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

◆ GetSurfaceTable()

const G4LogicalBorderSurfaceTable * G4LogicalBorderSurface::GetSurfaceTable ( )
static

Definition at line 87 of file G4LogicalBorderSurface.cc.

88{
89 if (theBorderSurfaceTable == nullptr)
90 {
91 theBorderSurfaceTable = new G4LogicalBorderSurfaceTable;
92 }
93 return theBorderSurfaceTable;
94}

Referenced by G4GDMLWriteStructure::GetBorderSurface().

◆ GetVolume1()

const G4VPhysicalVolume * G4LogicalBorderSurface::GetVolume1 ( ) const
inline

◆ GetVolume2()

const G4VPhysicalVolume * G4LogicalBorderSurface::GetVolume2 ( ) const
inline

◆ operator!=()

G4bool G4LogicalBorderSurface::operator!= ( const G4LogicalBorderSurface right) const

Definition at line 78 of file G4LogicalBorderSurface.cc.

79{
80 return (this != (G4LogicalBorderSurface *) &right);
81}

◆ operator=()

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

◆ operator==()

G4bool G4LogicalBorderSurface::operator== ( const G4LogicalBorderSurface right) const

Definition at line 72 of file G4LogicalBorderSurface.cc.

73{
74 return (this == (G4LogicalBorderSurface *) &right);
75}

◆ SetPhysicalVolumes()

void G4LogicalBorderSurface::SetPhysicalVolumes ( G4VPhysicalVolume vol1,
G4VPhysicalVolume vol2 
)
inline

◆ SetVolume1()

void G4LogicalBorderSurface::SetVolume1 ( G4VPhysicalVolume vol1)
inline

◆ SetVolume2()

void G4LogicalBorderSurface::SetVolume2 ( G4VPhysicalVolume vol2)
inline

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