Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions
G4LogicalBorderSurface Class Reference

#include <G4LogicalBorderSurface.hh>

Inheritance diagram for G4LogicalBorderSurface:
G4LogicalSurface

Public Member Functions

 G4LogicalBorderSurface (const G4String &name, G4VPhysicalVolume *vol1, G4VPhysicalVolume *vol2, G4SurfaceProperty *surfaceProperty)
 
 ~G4LogicalBorderSurface ()
 
void SetPhysicalVolumes (G4VPhysicalVolume *vol1, G4VPhysicalVolume *vol2)
 
const G4VPhysicalVolumeGetVolume1 () const
 
const G4VPhysicalVolumeGetVolume2 () const
 
void SetVolume1 (G4VPhysicalVolume *vol1)
 
void SetVolume2 (G4VPhysicalVolume *vol2)
 
G4int operator== (const G4LogicalBorderSurface &right) const
 
G4int operator!= (const G4LogicalBorderSurface &right) const
 
- 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 *tRadSurf)
 
virtual ~G4LogicalSurface ()
 
G4int operator== (const G4LogicalSurface &right) const
 
G4int operator!= (const G4LogicalSurface &right) const
 

Static Public Member Functions

static G4LogicalBorderSurfaceGetSurface (const G4VPhysicalVolume *vol1, const G4VPhysicalVolume *vol2)
 
static void CleanSurfaceTable ()
 
static const
G4LogicalBorderSurfaceTable
GetSurfaceTable ()
 
static 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 55 of file G4LogicalBorderSurface.hh.

Constructor & Destructor Documentation

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

Definition at line 51 of file G4LogicalBorderSurface.cc.

55  : G4LogicalSurface(name, surfaceProperty),
56  Volume1(vol1), Volume2(vol2)
57 {
58  if (!theBorderSurfaceTable)
59  {
60  theBorderSurfaceTable = new G4LogicalBorderSurfaceTable;
61  }
62 
63  // Store in the table of Surfaces
64  //
65  theBorderSurfaceTable->push_back(this);
66 }
std::vector< G4LogicalBorderSurface * > G4LogicalBorderSurfaceTable
G4LogicalSurface(const G4String &name, G4SurfaceProperty *prop)
G4LogicalBorderSurface::~G4LogicalBorderSurface ( )

Definition at line 82 of file G4LogicalBorderSurface.cc.

83 {
84 // delete theBorderSurfaceTable; theBorderSurfaceTable=0;
85 }

Member Function Documentation

void G4LogicalBorderSurface::CleanSurfaceTable ( )
static

Definition at line 179 of file G4LogicalBorderSurface.cc.

Referenced by LXeDetectorConstruction::Construct(), and WLSDetectorConstruction::Construct().

180 {
181  if (theBorderSurfaceTable)
182  {
183  G4LogicalBorderSurfaceTable::iterator pos;
184  for(pos=theBorderSurfaceTable->begin();
185  pos!=theBorderSurfaceTable->end(); pos++)
186  {
187  if (*pos) { delete *pos; }
188  }
189  theBorderSurfaceTable->clear();
190  }
191  return;
192 }
void G4LogicalBorderSurface::DumpInfo ( )
static

Definition at line 159 of file G4LogicalBorderSurface.cc.

References G4cout, G4endl, G4LogicalSurface::GetName(), G4VPhysicalVolume::GetName(), GetNumberOfBorderSurfaces(), GetVolume1(), and GetVolume2().

160 {
161  G4cout << "***** Surface Table : Nb of Surfaces = "
162  << GetNumberOfBorderSurfaces() << " *****" << G4endl;
163 
164  if (theBorderSurfaceTable)
165  {
166  for (size_t i=0; i<theBorderSurfaceTable->size(); i++)
167  {
168  G4LogicalBorderSurface* pBorderSurface = (*theBorderSurfaceTable)[i];
169  G4cout << pBorderSurface->GetName() << " : " << G4endl
170  << " Border of volumes "
171  << pBorderSurface->GetVolume1()->GetName() << " and "
172  << pBorderSurface->GetVolume2()->GetName()
173  << G4endl;
174  }
175  }
176  G4cout << G4endl;
177 }
const G4VPhysicalVolume * GetVolume2() const
static size_t GetNumberOfBorderSurfaces()
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
const G4String & GetName() const
const G4VPhysicalVolume * GetVolume1() const
#define G4endl
Definition: G4ios.hh:61
size_t G4LogicalBorderSurface::GetNumberOfBorderSurfaces ( )
static

Definition at line 132 of file G4LogicalBorderSurface.cc.

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

133 {
134  if (theBorderSurfaceTable)
135  {
136  return theBorderSurfaceTable->size();
137  }
138  return 0;
139 }
G4LogicalBorderSurface * G4LogicalBorderSurface::GetSurface ( const G4VPhysicalVolume vol1,
const G4VPhysicalVolume vol2 
)
static

Definition at line 142 of file G4LogicalBorderSurface.cc.

References GetVolume1().

Referenced by G4OpBoundaryProcess::PostStepDoIt().

144 {
145  if (theBorderSurfaceTable)
146  {
147  for (size_t i=0; i<theBorderSurfaceTable->size(); i++)
148  {
149  if( ((*theBorderSurfaceTable)[i]->GetVolume1() == vol1) &&
150  ((*theBorderSurfaceTable)[i]->GetVolume2() == vol2) )
151  return (*theBorderSurfaceTable)[i];
152  }
153  }
154  return 0;
155 }
const G4VPhysicalVolume * GetVolume1() const
const G4LogicalBorderSurfaceTable * G4LogicalBorderSurface::GetSurfaceTable ( )
static

Definition at line 123 of file G4LogicalBorderSurface.cc.

Referenced by G4GDMLWriteStructure::GetBorderSurface().

124 {
125  if (!theBorderSurfaceTable)
126  {
127  theBorderSurfaceTable = new G4LogicalBorderSurfaceTable;
128  }
129  return theBorderSurfaceTable;
130 }
std::vector< G4LogicalBorderSurface * > G4LogicalBorderSurfaceTable
const G4VPhysicalVolume* G4LogicalBorderSurface::GetVolume1 ( ) const
inline
const G4VPhysicalVolume* G4LogicalBorderSurface::GetVolume2 ( ) const
inline
G4int G4LogicalBorderSurface::operator!= ( const G4LogicalBorderSurface right) const

Definition at line 114 of file G4LogicalBorderSurface.cc.

115 {
116  return (this != (G4LogicalBorderSurface *) &right);
117 }
G4int G4LogicalBorderSurface::operator== ( const G4LogicalBorderSurface right) const

Definition at line 108 of file G4LogicalBorderSurface.cc.

109 {
110  return (this == (G4LogicalBorderSurface *) &right);
111 }
void G4LogicalBorderSurface::SetPhysicalVolumes ( G4VPhysicalVolume vol1,
G4VPhysicalVolume vol2 
)
inline
void G4LogicalBorderSurface::SetVolume1 ( G4VPhysicalVolume vol1)
inline
void G4LogicalBorderSurface::SetVolume2 ( G4VPhysicalVolume vol2)
inline

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