Import Geant4 10.7.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2020-06-26 10:23:25 +02:00
parent c02c370437
commit 67ba86d073
1871 changed files with 174422 additions and 131884 deletions
@@ -391,26 +391,19 @@ class G4LogicalVolume
// Returns: success (true) or failure (false).
private:
// Data members:
// Data members:
G4GEOM_DLL static G4LVManager subInstanceManager;
// This new field helps to use the class G4LVManager introduced above.
G4PhysicalVolumeList fDaughters;
// Vector of daughters. Given initial size of 0.
G4String fName;
// Name of logical volume.
EVolume fDaughtersVolumeType;
// Are contents of volume placements, replica, parameterised or external?
G4UserLimits* fUserLimits = nullptr;
// Pointer (possibly nullptr) to user Step limit object for this node.
G4SmartVoxelHeader* fVoxel = nullptr;
// Pointer (possibly nullptr) to optimisation info objects.
G4bool fOptimise = true;
// Flag to identify if optimisation should be applied or not.
G4bool fRootRegion = false;
// Flag to identify if the logical volume is a root region.
G4bool fLock = false;
// Flag to identify if entity is locked for final deletion.
G4double fSmartless = 2.0;
// Quality for optimisation, average number of voxels to be spent
// per content.
@@ -420,11 +413,6 @@ class G4LogicalVolume
// Pointer to the cuts region (if any)
G4double fBiasWeight = 1.0;
// Weight used in the event biasing technique.
G4int instanceID;
// This new field is used as instance ID.
G4GEOM_DLL static G4LVManager subInstanceManager;
// This new field helps to use the class G4LVManager introduced above.
// Shadow of master pointers.
// Each worker thread can access this field from the master thread
@@ -434,6 +422,17 @@ class G4LogicalVolume
G4VSensitiveDetector* fSensitiveDetector = nullptr;
G4FieldManager* fFieldManager = nullptr;
G4LVData* lvdata = nullptr; // For use of object persistency
G4int instanceID;
// This new field is used as instance ID.
EVolume fDaughtersVolumeType;
// Are contents of volume placements, replica, parameterised or external?
G4bool fOptimise = true;
// Flag to identify if optimisation should be applied or not.
G4bool fRootRegion = false;
// Flag to identify if the logical volume is a root region.
G4bool fLock = false;
// Flag to identify if entity is locked for final deletion.
};
#include "G4LogicalVolume.icc"
@@ -27,13 +27,13 @@
//
// Class description:
//
// Container for all LogicalVolumes, with functionality derived from
// std::vector<T>. The class is a `singleton', in that only
// Container for all logical volumes, with functionality derived from
// std::vector<T>. The class is a 'singleton', in that only
// one can exist, and access is provided via the static function
// G4LogicalVolumeStore::GetInstance()
//
// All LogicalVolumes should be registered with G4LogicalVolumeStore,
// and removed on their destruction. Intended principally for UI browser.
// All logical volumes should be registered with G4LogicalVolumeStore,
// and removed on their destruction.
// The underlying container initially has a capacity of 100.
//
// If much additional functionality is added, should consider containment
@@ -44,8 +44,8 @@
// static G4LogicalVolumeStore* fgInstance
// - Ptr to the single G4LogicalVolumeStore.
// 18.04.01 - G.Cosmo, Migrated to STL vector
// 10.07.95 - P.Kent, Initial version
// 18.04.01 - G.Cosmo, Migrated to STL vector
// --------------------------------------------------------------------
#ifndef G4LOGICALVOLUMESTORE_HH
#define G4LOGICALVOLUMESTORE_HH
@@ -57,7 +57,7 @@
class G4LogicalVolumeStore : public std::vector<G4LogicalVolume*>
{
public: // with description
public:
static void Register(G4LogicalVolume* pVolume);
// Add the logical volume to the collection.
@@ -77,6 +77,10 @@ class G4LogicalVolumeStore : public std::vector<G4LogicalVolume*>
virtual ~G4LogicalVolumeStore();
// Destructor: takes care to delete allocated logical volumes.
G4LogicalVolumeStore(const G4LogicalVolumeStore&) = delete;
G4LogicalVolumeStore& operator=(const G4LogicalVolumeStore&) = delete;
// Forbidden copy constructor and assignment operator
protected:
G4LogicalVolumeStore();
@@ -27,14 +27,13 @@
//
// Class description:
//
// Container for all solids, with functionality derived from
// std::vector<T>. The class is a `singleton', in that only
// Container for all physical volumes, with functionality derived from
// std::vector<T>. The class is a 'singleton', in that only
// one can exist, and access is provided via the static method
// G4PhysicalVolumeStore::GetInstance()
//
// All solids should be registered with G4PhysicalVolumeStore, and removed on
// their destruction. Intended principally for UI browser. The underlying
// container initially has a capacity of 100.
// All volumes should be registered with G4PhysicalVolumeStore, and removed on
// their destruction. The underlying container initially has a capacity of 100.
//
// If much additional functionality is added, should consider containment
// instead of inheritance for std::vector<T>
@@ -44,8 +43,8 @@
// static G4PhysicalVolumeStore*
// - Ptr to the single G4PhysicalVolumeStore.
// 18.04.01, G.Cosmo - Migrated to STL vector
// 25.07.95, P.Kent - Initial version
// 18.04.01, G.Cosmo - Migrated to STL vector
// --------------------------------------------------------------------
#ifndef G4PHYSICALVOLUMESTORE_HH
#define G4PHYSICALVOLUMESTORE_HH
@@ -57,14 +56,14 @@
class G4PhysicalVolumeStore : public std::vector<G4VPhysicalVolume*>
{
public: // with description
public:
static void Register(G4VPhysicalVolume* pSolid);
// Add the volume to the collection.
static void DeRegister(G4VPhysicalVolume* pSolid);
// Remove the volume from the collection.
static G4PhysicalVolumeStore* GetInstance();
// Get a ptr to the unique G4PhysicalVolumeStore, creating it if necessary.
// Get a ptr to the unique store instance, creating it if necessary.
static void SetNotifier(G4VStoreNotifier* pNotifier);
// Assign a notifier for allocation/deallocation of the physical volumes.
static void Clean();
@@ -79,6 +78,10 @@ class G4PhysicalVolumeStore : public std::vector<G4VPhysicalVolume*>
virtual ~G4PhysicalVolumeStore();
// Destructor: takes care to delete allocated physical volumes.
G4PhysicalVolumeStore(const G4PhysicalVolumeStore&) = delete;
G4PhysicalVolumeStore& operator=(const G4PhysicalVolumeStore&) = delete;
// Forbidden copy constructor and assignment operator
protected:
G4PhysicalVolumeStore();
@@ -27,8 +27,8 @@
//
// Class description:
//
// Container for all regiong, with functionality derived from
// std::vector<T>. The class is a `singleton', in that only
// Container for all regions, with functionality derived from
// std::vector<T>. The class is a 'singleton', in that only
// one can exist, and access is provided via the static method
// G4RegionStore::GetInstance().
//
@@ -58,7 +58,7 @@ class G4VPhysicalVolume;
class G4RegionStore : public std::vector<G4Region*>
{
public: // with description
public:
static void Register(G4Region* pRegion);
// Add the region to the collection.
@@ -91,19 +91,22 @@ class G4RegionStore : public std::vector<G4Region*>
// If it does not exist it will allocate one delegating ownership
// to the client.
public: // without description
void SetWorldVolume();
// Set a world volume pointer to a region that belongs to it.
// Scan over all world volumes.
// This method should be exclusively used by G4RunManagerKernel.
virtual ~G4RegionStore();
// Destructor: takes care to delete allocated regions.
G4RegionStore(const G4RegionStore&) = delete;
G4RegionStore& operator=(const G4RegionStore&) = delete;
// Forbidden copy constructor and assignment operator
protected:
G4RegionStore();
// Protected singleton constructor.
virtual ~G4RegionStore();
// Destructor: takes care to delete allocated regions.
private:
@@ -28,13 +28,12 @@
// Class description:
//
// Container for all solids, with functionality derived from
// std::vector<T>. The class is a `singleton', in that only
// std::vector<T>. The class is a 'singleton', in that only
// one can exist, and access is provided via the static method
// G4SolidStore::GetInstance().
//
// All solids should be registered with G4SolidStore, and removed on their
// destruction. Intended principally for UI browser. The underlying
// container initially has a capacity of 100.
// destruction. The underlying container initially has a capacity of 100.
//
// If much additional functionality is added, should consider containment
// instead of inheritance for std::vector<T>
@@ -45,8 +44,8 @@
// - Ptr to the single G4SolidStore
// History:
// 18.04.01, G.Cosmo - Migrated to STL vector
// 10.07.95, P.Kent - Initial version
// 18.04.01, G.Cosmo - Migrated to STL vector
// --------------------------------------------------------------------
#ifndef G4VSOLIDSTORE_HH
#define G4VSOLIDSTORE_HH
@@ -58,7 +57,7 @@
class G4SolidStore : public std::vector<G4VSolid*>
{
public: // with description
public:
static void Register(G4VSolid* pSolid);
// Add the solid to the collection.
@@ -78,6 +77,10 @@ class G4SolidStore : public std::vector<G4VSolid*>
virtual ~G4SolidStore();
// Destructor: takes care to delete allocated solids.
G4SolidStore(const G4SolidStore&) = delete;
G4SolidStore& operator=(const G4SolidStore&) = delete;
// Forbidden copy constructor and assignment operator
protected:
G4SolidStore();
@@ -57,8 +57,8 @@
#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
#include <base/Global.h>
#include <base/Vector3D.h>
#include <VecGeom/base/Global.h>
#include <VecGeom/base/Vector3D.h>
class G4VPVParameterisation;