Import Geant4 10.3.0 source tree
This commit is contained in:
@@ -25,10 +25,8 @@
|
||||
//
|
||||
#include "G4PhysicsListWorkspace.hh"
|
||||
|
||||
//Note: G4PhysicsListWorkspacePool is typedef to G4TWorkspacePool<G4PhysicsListWorkspace>
|
||||
template<> G4ThreadLocal G4PhysicsListWorkspace* G4PhysicsListWorkspace::pool_type::fMyWorkspace = 0;
|
||||
|
||||
namespace {
|
||||
namespace
|
||||
{
|
||||
G4PhysicsListWorkspace::pool_type thePool;
|
||||
}
|
||||
|
||||
@@ -40,46 +38,43 @@ G4PhysicsListWorkspace::G4PhysicsListWorkspace(G4bool verbose)
|
||||
{
|
||||
|
||||
fpVUPLSIM =
|
||||
&const_cast<G4VUPLManager&>(G4VUserPhysicsList::GetSubInstanceManager());//.NewSubInstances();
|
||||
&const_cast<G4VUPLManager&>(G4VUserPhysicsList::GetSubInstanceManager());
|
||||
fpVPCSIM =
|
||||
&const_cast<G4VPCManager&>(G4VPhysicsConstructor::GetSubInstanceManager());//.NewSubInstances();
|
||||
&const_cast<G4VPCManager&>(G4VPhysicsConstructor::GetSubInstanceManager());
|
||||
fpVMPLSIM =
|
||||
&const_cast<G4VMPLManager&>(G4VModularPhysicsList::GetSubInstanceManager());//.SlaveCopySubInstanceArray();
|
||||
&const_cast<G4VMPLManager&>(G4VModularPhysicsList::GetSubInstanceManager());
|
||||
|
||||
// Copy information from master into PolyCone/Gon Sides in this thread.
|
||||
InitialiseWorkspace();
|
||||
|
||||
// Capture its address of ParticleDefinition split-class in this thread
|
||||
//fpPDefOffset = fpPDefSIM->GetOffset();
|
||||
fpVUPLOffset = fpVUPLSIM->GetOffset();
|
||||
fpVPCOffset = fpVPCSIM->GetOffset();
|
||||
fpVMPLOffset = fpVMPLSIM->GetOffset();
|
||||
fpVUPLOffset = fpVUPLSIM->GetOffset();
|
||||
fpVPCOffset = fpVPCSIM->GetOffset();
|
||||
fpVMPLOffset = fpVMPLSIM->GetOffset();
|
||||
}
|
||||
|
||||
G4PhysicsListWorkspace::~G4PhysicsListWorkspace()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Static methods
|
||||
// For with current (original) G4WorkerThread -- which uses static methods
|
||||
|
||||
void
|
||||
G4PhysicsListWorkspace::UseWorkspace()
|
||||
{
|
||||
if( fVerbose )
|
||||
G4cout << "G4PhysicsListWorkspace::UseWorkspace: Copying particles-definition Split-Class - Start " << G4endl;
|
||||
G4cout << "G4PhysicsListWorkspace::UseWorkspace: "
|
||||
<< "Copying particles-definition Split-Class - Start " << G4endl;
|
||||
|
||||
// Implementation copied from G4WorkerThread::BuildGeometryAndPhysicsVector()
|
||||
// Implementation copied from
|
||||
// G4WorkerThread::BuildGeometryAndPhysicsVector()
|
||||
|
||||
//Physics List related, split classes mechanism: instantiate sub-instance for this thread
|
||||
// Physics List related, split classes mechanism:
|
||||
// instantiate sub-instance for this thread
|
||||
fpVUPLSIM->UseWorkArea(fpVUPLOffset);
|
||||
fpVPCSIM->UseWorkArea(fpVPCOffset);
|
||||
fpVMPLSIM->UseWorkArea(fpVMPLOffset);
|
||||
}
|
||||
|
||||
void G4PhysicsListWorkspace::ReleaseWorkspace()
|
||||
// The opposite of Use Workspace - let go of it.
|
||||
{
|
||||
fpVUPLSIM->UseWorkArea(0);
|
||||
fpVPCSIM->UseWorkArea(0);
|
||||
@@ -94,12 +89,12 @@ void
|
||||
G4PhysicsListWorkspace::InitialiseWorkspace()
|
||||
{
|
||||
if( fVerbose )
|
||||
G4cout << "G4PhysicsListWorkspace::InitialiseWorkspace: "
|
||||
<< "Copying particles-definition Split-Class - Start " << G4endl;
|
||||
G4cout << "G4PhysicsListWorkspace::InitialiseWorkspace: "
|
||||
<< "Copying particles-definition Split-Class - Start " << G4endl;
|
||||
|
||||
//PhysicsList related, split classes mechanism:
|
||||
// PhysicsList related, split classes mechanism:
|
||||
// Do *NOT* instantiate sub-instance for this thread,
|
||||
// just copy the contents !!
|
||||
// just copy the contents !!
|
||||
fpVUPLSIM->NewSubInstances();
|
||||
fpVPCSIM->NewSubInstances();
|
||||
fpVMPLSIM->WorkerCopySubInstanceArray();
|
||||
@@ -108,8 +103,8 @@ G4PhysicsListWorkspace::InitialiseWorkspace()
|
||||
InitialisePhysicsList();
|
||||
|
||||
if( fVerbose )
|
||||
G4cout << "G4PhysicsListWorkspace::CreateAndUseWorkspace: "
|
||||
<< "Copying particles-definition Split-Class - Done!" << G4endl;
|
||||
G4cout << "G4PhysicsListWorkspace::CreateAndUseWorkspace: "
|
||||
<< "Copying particles-definition Split-Class - Done!" << G4endl;
|
||||
}
|
||||
|
||||
void G4PhysicsListWorkspace::DestroyWorkspace()
|
||||
|
||||
Reference in New Issue
Block a user