58 fLogicalVolumeOffset= fpLogicalVolumeSIM->
GetOffset();
60 fPhysicalVolumeOffset= fpPhysicalVolumeSIM->
GetOffset();
62 fReplicaOffset= fpReplicaSIM->
GetOffset();
79 G4cout <<
"G4GeometryWorkspace::UseWorkspace: Start " <<
G4endl;
86 fpLogicalVolumeSIM->
UseWorkArea(fLogicalVolumeOffset);
87 fpPhysicalVolumeSIM->
UseWorkArea(fPhysicalVolumeOffset);
98 G4cout <<
"G4GeometryWorkspace::UseWorkspace: End " <<
G4endl;
118 for (
size_t ip=0; ip<physVolStore->size(); ip++)
147 G4Exception(
"G4GeometryWorkspace::CreateAndUseWorkspace",
"Runtime Error PV01",
149 "Cannot find Parameterisation for G4PVParameterised object.");
156 G4cout <<
"G4GeometryWorkspace::InitialisePhysicalVolumes: "
157 <<
"Copying geometry - Done!" <<
G4endl;
183 ed <<
" ERROR: Unable to initialise geometry for worker node." <<
G4endl;
184 ed <<
" A solid lacks the Clone() method - or Clone() failed." <<
G4endl;
186 ed <<
" Parameters: " << *solid <<
G4endl;
187 G4Exception(
" G4GeometryWorkspace::CloneParameterisedVolume",
"MT-BuildGeometry001",
207 unsigned int numDifferent= 0;
213 for(
unsigned int i=0; i< numCopies; i++)
216 if( solidChk != solid)
225 ed <<
" Parameterisation is implemented using several instances of Solids "
226 <<
" - potentially to support different types of solids. " <<
G4endl;
227 ed <<
" The current implementation of Geant4-MT does not support "
228 <<
" this type of Parameterisation" <<
G4endl;
229 G4Exception(
"G4GeometryWorkspace::CloneParameterisedVolume",
"GeometryNotSupportedInMT-01",
247 ed <<
" ERROR: Unable to initialise geometry for worker node." <<
G4endl;
248 ed <<
" A solid lacks the Clone() method - or Clone() failed." <<
G4endl;
250 ed <<
" Parameters: " << *solid <<
G4endl;
251 G4Exception(
" G4GeometryWorkspace::CloneParameterisedVolume",
"MT-BuildGeometry001",
262 G4cout <<
"G4GeometryWorkspace::InitialiseWorkspace: Copying geometry - Start " <<
G4endl;
279 G4cout <<
"G4GeometryWorkspace::InitialiseWorkspace: "
280 <<
"Copying geometry - Done!" <<
G4endl;
286 for (
size_t ip=0; ip<physVolStore->size(); ip++)
void TerminateWorker(G4PVReplica *pMasterObject)
std::ostringstream G4ExceptionDescription
G4VSolid * GetMasterSolid() const
virtual G4VSolid * ComputeSolid(const G4int, G4VPhysicalVolume *)
static const G4LVManager & GetSubInstanceManager()
virtual G4GeometryType GetEntityType() const =0
void InitialiseWorker(G4LogicalVolume *ptrMasterObject, G4VSolid *pSolid, G4VSensitiveDetector *pSDetector)
#define G4MUTEX_INITIALIZER
static const G4PVRManager & GetSubInstanceManager()
static G4PhysicalVolumeStore * GetInstance()
virtual G4bool IsParameterised() const
G4VPVParameterisation * GetParameterisation() const
G4GLOB_DLL std::ostream G4cout
static const G4PVManager & GetSubInstanceManager()
void InitialiseWorker(G4PVReplica *pMasterObject)
void SlaveCopySubInstanceArray()
G4bool CloneReplicaSolid(G4PVReplica *)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void TerminateWorker(G4LogicalVolume *ptrMasterObject)
G4LogicalVolume * GetLogicalVolume() const
virtual G4int GetMultiplicity() const
G4bool CloneParameterisedSolids(G4PVParameterised *paramVol)
void InitialiseWorkspace()
virtual G4VSolid * Clone() const
void UseWorkArea(T *newOffset)
static const G4RegionManager & GetSubInstanceManager()
void InitialisePhysicalVolumes()
void SlaveInitializeSubInstance()
G4VSolid * GetSolid() const