Import Geant4 10.6.0 source tree

This commit is contained in:
Gabriele Cosmo
2019-12-06 15:12:28 +01:00
parent b2a62ae692
commit 5baee230e9
2997 changed files with 141580 additions and 98673 deletions
@@ -23,9 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// Description:
// Manage the per-thread state of solids - those which
// have a per-thread state and dependent classes (if any)
// G4SolidsWorkspace
//
// Class description:
//
// Manages the per-thread state of solids - those which
// have a per-thread state and dependent classes (if any)
// In particular it
// - owns the arrays that implement 'split' classes
// - classes/objects which are owned by the split classes.
@@ -34,16 +37,11 @@
// - per-thread objects, in particular those which are owned
// by the split classes.
// Goal: Take ownership and control of per-thread state of
// classes to work with multi-threading.
// classes to work with multi-threading.
// Offshoot of G4GeometryWorkspace, to deal with Solids.
//
// Designed / created by John Apostolakis
// Interface design - review with Andrea Dotti.
//
// First version: 4th Oct 2013
// Created due to dependency issue with G4GeometryWorkspace
// Working version:
// 4.10.2013 - Created: John Apostolakis, Andrea Dotti
// --------------------------------------------------------------------
#ifndef G4SOLIDSWORKSPACE_HH
#define G4SOLIDSWORKSPACE_HH
@@ -57,40 +55,43 @@ class G4SolidsWorkspace
{
public:
typedef G4TWorkspacePool<G4SolidsWorkspace> pool_type;
G4SolidsWorkspace(G4bool verbose=false);
using pool_type = G4TWorkspacePool<G4SolidsWorkspace>;
G4SolidsWorkspace(G4bool verbose = false);
~G4SolidsWorkspace();
void UseWorkspace(); //Take ownership
void ReleaseWorkspace(); //Release ownership
void DestroyWorkspace(); //Release ownership and destroy
void UseWorkspace(); // Take ownership
void ReleaseWorkspace(); // Release ownership
void DestroyWorkspace(); // Release ownership and destroy
void InitialiseWorkspace();
// To be called at start of each run (especially 2nd and further runs)
// To be called at start of each run (especially 2nd and further runs)
void SetVerbose(G4bool v) { fVerbose=v; }
void SetVerbose(G4bool v) { fVerbose=v; }
G4bool GetVerbose() { return fVerbose; }
static pool_type* GetPool();
protected: // Implementation methods
protected: // Implementation methods
void InitialiseSolids();
void InitialiseSolids();
private:
private:
// Helper pointers - can be per instance or shared
G4PlSideManager *fpPolyconeSideSIM;
G4PhSideManager *fpPolyhedraSideSIM;
// Helper pointers - can be per instance or shared
//
G4PlSideManager* fpPolyconeSideSIM = nullptr;
G4PhSideManager* fpPolyhedraSideSIM = nullptr;
// Per Instance variables
// NOTE: the ownership of the Data Arrays is IN this object
// Per Instance variables
// NOTE: the ownership of the Data Arrays is IN this object
// Store SubInstanceManager object pointers (SIM pointers)
G4PlSideData *fPolyconeSideOffset;
G4PhSideData *fPolyhedraSideOffset;
//
G4PlSideData* fPolyconeSideOffset = nullptr;
G4PhSideData* fPolyhedraSideOffset = nullptr;
G4bool fVerbose;
G4bool fVerbose = false;
};
#endif //G4SOLIDSWORKSPACE_HH
#endif // G4SOLIDSWORKSPACE_HH