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

Static Public Member Functions

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

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

00054   : G4LogicalSurface(name, surfaceProperty),
00055     Volume1(vol1), Volume2(vol2)
00056 {
00057   // Store in the table of Surfaces
00058   //
00059   theBorderSurfaceTable.push_back(this);
00060 }

G4LogicalBorderSurface::~G4LogicalBorderSurface (  ) 

Definition at line 72 of file G4LogicalBorderSurface.cc.

00073 {
00074 }


Member Function Documentation

void G4LogicalBorderSurface::CleanSurfaceTable (  )  [static]

Definition at line 154 of file G4LogicalBorderSurface.cc.

00155 {
00156   G4LogicalBorderSurfaceTable::iterator pos;
00157   for(pos=theBorderSurfaceTable.begin();
00158       pos!=theBorderSurfaceTable.end(); pos++)
00159   {
00160     if (*pos) delete *pos;
00161   }
00162   theBorderSurfaceTable.clear();
00163 }

void G4LogicalBorderSurface::DumpInfo (  )  [static]

Definition at line 137 of file G4LogicalBorderSurface.cc.

References G4cout, G4endl, and GetNumberOfBorderSurfaces().

00138 {
00139   G4cout << "***** Surface Table : Nb of Surfaces = "
00140          << GetNumberOfBorderSurfaces() << " *****" << G4endl;
00141 
00142   for (size_t i=0; i<theBorderSurfaceTable.size(); i++)
00143   {
00144     G4LogicalBorderSurface* pBorderSurface = theBorderSurfaceTable[i];
00145     G4cout << pBorderSurface->GetName() << " : " << G4endl
00146            << " Border of volumes "
00147            << pBorderSurface->GetVolume1()->GetName() << " and " 
00148            << pBorderSurface->GetVolume2()->GetName()
00149            << G4endl;
00150   }
00151   G4cout << G4endl;
00152 }

size_t G4LogicalBorderSurface::GetNumberOfBorderSurfaces (  )  [static]

Definition at line 117 of file G4LogicalBorderSurface.cc.

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

00118 {
00119   return theBorderSurfaceTable.size();
00120 }

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

Definition at line 123 of file G4LogicalBorderSurface.cc.

References GetVolume1(), and GetVolume2().

Referenced by G4OpBoundaryProcess::PostStepDoIt().

00125 {
00126   for (size_t i=0; i<theBorderSurfaceTable.size(); i++)
00127   {
00128     if( (theBorderSurfaceTable[i]->GetVolume1() == vol1) &&
00129         (theBorderSurfaceTable[i]->GetVolume2() == vol2) )
00130       return theBorderSurfaceTable[i];
00131   }
00132   return NULL;
00133 }

const G4LogicalBorderSurfaceTable * G4LogicalBorderSurface::GetSurfaceTable (  )  [static]

Definition at line 112 of file G4LogicalBorderSurface.cc.

Referenced by G4GDMLWriteStructure::GetBorderSurface().

00113 {
00114   return &theBorderSurfaceTable;
00115 }

const G4VPhysicalVolume * G4LogicalBorderSurface::GetVolume1 (  )  const [inline]

Definition at line 43 of file G4LogicalBorderSurface.icc.

Referenced by G4GDMLWriteStructure::BorderSurfaceCache(), and GetSurface().

00044 {
00045   return Volume1;
00046 }

const G4VPhysicalVolume * G4LogicalBorderSurface::GetVolume2 (  )  const [inline]

Definition at line 49 of file G4LogicalBorderSurface.icc.

Referenced by G4GDMLWriteStructure::BorderSurfaceCache(), and GetSurface().

00050 {
00051   return Volume2;
00052 }

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

Definition at line 103 of file G4LogicalBorderSurface.cc.

00104 {
00105   return (this != (G4LogicalBorderSurface *) &right);
00106 }

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

Definition at line 97 of file G4LogicalBorderSurface.cc.

00098 {
00099   return (this == (G4LogicalBorderSurface *) &right);
00100 }

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

Definition at line 35 of file G4LogicalBorderSurface.icc.

00037 {
00038   Volume1 = vol1;
00039   Volume2 = vol2;
00040 }

void G4LogicalBorderSurface::SetVolume1 ( G4VPhysicalVolume vol1  )  [inline]

Definition at line 55 of file G4LogicalBorderSurface.icc.

00056 {
00057   Volume1 = vol1;
00058 }

void G4LogicalBorderSurface::SetVolume2 ( G4VPhysicalVolume vol2  )  [inline]

Definition at line 61 of file G4LogicalBorderSurface.icc.

00062 {
00063   Volume2 = vol2;
00064 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:26 2013 for Geant4 by  doxygen 1.4.7