Import Geant4 11.4.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2025-06-26 09:17:29 +02:00
parent 20a218bbe1
commit a499fb82e9
1941 changed files with 203285 additions and 95593 deletions
@@ -53,27 +53,54 @@
#include "G4LogicalVolume.hh"
#include "G4Region.hh"
/**
* @brief G4GeometryWorkspace is a class managing the per-thread state of the
* geometry, spanning those which have a per-thread state and their dependents.
* In particular, it owns the arrays that implement 'split' classes and owns
* classes/objects which are owned by the split classes.
*/
class G4GeometryWorkspace
{
public:
using pool_type = G4TWorkspacePool<G4GeometryWorkspace>;
/**
* Constructor and default Destructor.
*/
G4GeometryWorkspace();
~G4GeometryWorkspace() = default;
/**
* Methods for the handling of the workspace.
* To take/release ownership and destroy.
*/
void UseWorkspace(); // Take ownership
void ReleaseWorkspace(); // Release ownership
void DestroyWorkspace(); // Release ownership and destroy
/**
* Initialisation of the workspace.
* To be called at start of each run (especially 2nd and further runs).
*/
void InitialiseWorkspace();
// To be called at start of each run (especially 2nd and further runs)
/**
* Static accessor returning the global geometry pool.
*/
static pool_type* GetPool();
protected: // Implementation methods
/**
* Initialises the workspace for all physical volumes in the store.
*/
void InitialisePhysicalVolumes();
/**
* Creates a clone of the solid for the given replica in this thread.
*/
G4bool CloneReplicaSolid( G4PVReplica* );
private: // Helper pointers - can be per instance or shared