Geant4 11.2.2
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 () override
 
 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 49 of file G4LogicalBorderSurface.hh.

Constructor & Destructor Documentation

◆ G4LogicalBorderSurface() [1/2]

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

Definition at line 43 of file G4LogicalBorderSurface.cc.

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

◆ ~G4LogicalBorderSurface()

G4LogicalBorderSurface::~G4LogicalBorderSurface ( )
overridedefault

◆ G4LogicalBorderSurface() [2/2]

G4LogicalBorderSurface::G4LogicalBorderSurface ( const G4LogicalBorderSurface & )
delete

Member Function Documentation

◆ CleanSurfaceTable()

void G4LogicalBorderSurface::CleanSurfaceTable ( )
static

Definition at line 137 of file G4LogicalBorderSurface.cc.

138{
139 if (theBorderSurfaceTable != nullptr)
140 {
141 for(const auto & pos : *theBorderSurfaceTable)
142 {
143 delete pos.second;
144 }
145 theBorderSurfaceTable->clear();
146 }
147 return;
148}

◆ DumpInfo()

void G4LogicalBorderSurface::DumpInfo ( )
static

Definition at line 117 of file G4LogicalBorderSurface.cc.

118{
119 G4cout << "***** Surface Table : Nb of Surfaces = "
120 << GetNumberOfBorderSurfaces() << " *****" << G4endl;
121
122 if (theBorderSurfaceTable != nullptr)
123 {
124 for(const auto & pos : *theBorderSurfaceTable)
125 {
126 G4LogicalBorderSurface* pSurf = pos.second;
127 G4cout << pSurf->GetName() << " : " << G4endl
128 << " Border of volumes "
129 << pSurf->GetVolume1()->GetName() << " and "
130 << pSurf->GetVolume2()->GetName() << G4endl;
131 }
132 }
133 G4cout << G4endl;
134}
#define G4endl
Definition G4ios.hh:67
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 92 of file G4LogicalBorderSurface.cc.

93{
94 if (theBorderSurfaceTable != nullptr)
95 {
96 return theBorderSurfaceTable->size();
97 }
98 return 0;
99}

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

◆ GetSurface()

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

Definition at line 103 of file G4LogicalBorderSurface.cc.

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

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

◆ GetSurfaceTable()

const G4LogicalBorderSurfaceTable * G4LogicalBorderSurface::GetSurfaceTable ( )
static

Definition at line 82 of file G4LogicalBorderSurface.cc.

83{
84 if (theBorderSurfaceTable == nullptr)
85 {
86 theBorderSurfaceTable = new G4LogicalBorderSurfaceTable;
87 }
88 return theBorderSurfaceTable;
89}

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 76 of file G4LogicalBorderSurface.cc.

77{
78 return (this != (G4LogicalBorderSurface *) &right);
79}

◆ operator=()

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

◆ operator==()

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

Definition at line 69 of file G4LogicalBorderSurface.cc.

70{
71 return (this == (G4LogicalBorderSurface *) &right);
72}

◆ 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: