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

#include <G4SolidsWorkspace.hh>

Public Member Functions

 G4SolidsWorkspace (G4bool verbose=false)
 
 ~G4SolidsWorkspace ()
 
void UseWorkspace ()
 
void ReleaseWorkspace ()
 
void DestroyWorkspace ()
 
void InitialiseWorkspace ()
 
void SetVerbose (G4bool v)
 
G4bool GetVerbose ()
 

Protected Member Functions

void InitialiseSolids ()
 

Detailed Description

Definition at line 57 of file G4SolidsWorkspace.hh.

Constructor & Destructor Documentation

G4SolidsWorkspace::G4SolidsWorkspace ( G4bool  verbose = false)

Definition at line 36 of file G4SolidsWorkspace.cc.

References G4GeomSplitter< T >::GetOffset(), G4PolyconeSide::GetSubInstanceManager(), G4PolyhedraSide::GetSubInstanceManager(), and InitialiseWorkspace().

37  : fVerbose(verbose)
38 {
39  // G4PlSideManager *fPolyconeSideSIM; // (G4PlSideManager::GetSubInstanceManager())
40 
41  fpPolyconeSideSIM=
43  fpPolyhedraSideSIM=
45 
46  // Copy information from master into PolyCone/Gon Sides in this thread.
48 
49  // Capture its address of PolyCone/Gon Sides in this thread
50  fPolyconeSideOffset= fpPolyconeSideSIM->GetOffset();
51  fPolyhedraSideOffset= fpPolyhedraSideSIM->GetOffset();
52 }
static const G4PhSideManager & GetSubInstanceManager()
static const G4PlSideManager & GetSubInstanceManager()
G4SolidsWorkspace::~G4SolidsWorkspace ( )

Definition at line 54 of file G4SolidsWorkspace.cc.

55 {
56 
57 }

Member Function Documentation

void G4SolidsWorkspace::DestroyWorkspace ( )

Definition at line 110 of file G4SolidsWorkspace.cc.

References G4GeomSplitter< T >::FreeSlave().

Referenced by G4WorkerThread::DestroyGeometryAndPhysicsVector(), and G4WorkerThread::UpdateGeometryAndPhysicsVectorFromMaster().

111 {
112  fpPolyconeSideSIM->FreeSlave();
113  fpPolyhedraSideSIM->FreeSlave();
114 }
G4bool G4SolidsWorkspace::GetVerbose ( )
inline

Definition at line 71 of file G4SolidsWorkspace.hh.

71 { return fVerbose; }
void G4SolidsWorkspace::InitialiseSolids ( )
protected

Definition at line 84 of file G4SolidsWorkspace.cc.

Referenced by InitialiseWorkspace().

85 {
86 }
void G4SolidsWorkspace::InitialiseWorkspace ( )

Definition at line 89 of file G4SolidsWorkspace.cc.

References G4cout, G4endl, InitialiseSolids(), and G4GeomSplitter< T >::SlaveInitializeSubInstance().

Referenced by G4SolidsWorkspace(), and G4WorkerThread::UpdateGeometryAndPhysicsVectorFromMaster().

90 {
91  if( fVerbose )
92  G4cout << "G4SolidsWorkspace::InitialiseWorkspace: "
93  << "Copying geometry - Start " << G4endl;
94 
95  //Geometry related, split classes mechanism:
96  // Do *NOT* instantiate sub-instance for this thread,
97  // just copy the contents !!
98 
99  fpPolyconeSideSIM->SlaveInitializeSubInstance();
100  fpPolyhedraSideSIM->SlaveInitializeSubInstance();
101 
102  // Additional initialization if needed - beyond copying memory
104 
105  if( fVerbose )
106  G4cout << "G4SolidsWorkspace::CreateAndUseWorkspace: "
107  << "Copying geometry - Done!" << G4endl;
108 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
void SlaveInitializeSubInstance()
void G4SolidsWorkspace::ReleaseWorkspace ( )

Definition at line 77 of file G4SolidsWorkspace.cc.

References G4GeomSplitter< T >::UseWorkArea().

Referenced by G4SolidsWorkspacePool::Recycle().

79 {
80  fpPolyconeSideSIM->UseWorkArea(0);
81  fpPolyhedraSideSIM->UseWorkArea(0);
82 }
void UseWorkArea(T *newOffset)
void G4SolidsWorkspace::SetVerbose ( G4bool  v)
inline

Definition at line 70 of file G4SolidsWorkspace.hh.

References test::v.

70 { fVerbose=v; }
void G4SolidsWorkspace::UseWorkspace ( )

Definition at line 63 of file G4SolidsWorkspace.cc.

References G4cout, G4endl, and G4GeomSplitter< T >::UseWorkArea().

Referenced by G4SolidsWorkspacePool::FindOrCreateWorkspace().

64 {
65  if( fVerbose )
66  G4cout << "G4SolidsWorkspace::UseWorkspace: Copying geometry - Start " << G4endl;
67 
68  // Implementation copied from G4WorkerThread::BuildGeometryAndPhysicsVector()
69 
70  //Geometry related, split classes mechanism: instantiate sub-instance for this thread
71  fpPolyconeSideSIM->UseWorkArea(fPolyconeSideOffset);
72  fpPolyhedraSideSIM->UseWorkArea(fPolyhedraSideOffset);
73 
74 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
void UseWorkArea(T *newOffset)

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