Import Geant4 11.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2025-12-05 08:54:02 +01:00
parent a499fb82e9
commit b4a16de652
6484 changed files with 232674 additions and 221097 deletions
@@ -23,12 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/G4TAtomicHitsCollection.hh
/// \file G4TAtomicHitsCollection.hh
/// \brief Definition of the G4TAtomicHitsCollection class
//
//
//
//
///
/// This is an implementation of G4THitsCollection<T> where the underlying
/// type is G4atomic<T>, not just T. A static assert is provided to
/// ensure that T is fundamental. This class should be used in lieu
@@ -55,15 +52,15 @@
#include <deque>
#include <type_traits>
// class description:
//
// This is a template class of hits collection and parametrized by
// The concrete class of G4VHit. This is a uniform collection for
// a particular concrete hit class objects.
// An intermediate layer class G4HitsCollection appeared in this
// header file is used just for G4Allocator, because G4Allocator
// cannot be instansiated with a template class. Thus G4HitsCollection
// class MUST NOT be directly used by the user.
/// class description:
///
/// This is a template class of hits collection and parametrized by
/// The concrete class of G4VHit. This is a uniform collection for
/// a particular concrete hit class objects.
/// An intermediate layer class G4HitsCollection appeared in this
/// header file is used just for G4Allocator, because G4Allocator
/// cannot be instansiated with a template class. Thus G4HitsCollection
/// class MUST NOT be directly used by the user.
/*class G4HitsCollection : public G4VHitsCollection
{
@@ -23,12 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/G4TAtomicHitsMap.hh
/// \file G4TAtomicHitsMap.hh
/// \brief Definition of the G4TAtomicHitsMap class
//
//
//
//
///
/// This is an implementation of G4THitsMap<T> where the underlying
/// type is G4atomic<T>, not just T. A static assert is provided to
/// ensure that T is fundamental. This class should be used in lieu
@@ -55,15 +52,15 @@
#include <map>
#include <type_traits>
// class description:
//
// This is a template class of hits map and parametrized by
// The concrete class of G4VHit. This is a uniform collection for
// a particular concrete hit class objects.
// An intermediate layer class G4HitsMap appeared in this
// header file is used just for G4Allocator, because G4Allocator
// cannot be instansiated with a template class. Thus G4HitsMap
// class MUST NOT be directly used by the user.
/// class description:
///
/// This is a template class of hits map and parametrized by
/// The concrete class of G4VHit. This is a uniform collection for
/// a particular concrete hit class objects.
/// An intermediate layer class G4HitsMap appeared in this
/// header file is used just for G4Allocator, because G4Allocator
/// cannot be instansiated with a template class. Thus G4HitsMap
/// class MUST NOT be directly used by the user.
template<typename T>
class G4TAtomicHitsMap : public G4VHitsCollection
@@ -23,12 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/G4atomic.hh
/// \file G4atomic.hh
/// \brief Definition of the G4atomic class
//
//
//
//
///
/// This is an friendly implementation of the STL atomic class.
/// This class has the same interface as the STL atomic but can be used
/// in an extremely similar fashion to plain old data (POD) types.
@@ -41,6 +38,7 @@
/// only used as a RHS term outside of the multithreaded operations on it.
///
/// FOR EXAMPLE:
/// ```
/// Proper use:
/// Goal: sum energy deposited in run
/// Impl: Is a member variable of derived
@@ -59,6 +57,7 @@
/// sum, sum_sq, and counts are updated by another thread
/// while error is being calculated, i.e. they are used as
/// RHS terms
/// ```
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,12 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/G4atomic_defines.hh
/// \brief Definition of the G4atomic_defines class
//
//
//
//
/// \file G4atomic_defines.hh
/// \brief Definition of the atomics utilities
///
/// This is a functional class for G4atomic. The functions in this
/// file are not intended to be used outside of their implementation
/// in G4atomic.
@@ -23,12 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/TSActionInitialization.hh
/// \file TSActionInitialization.hh
/// \brief Definition of the TSActionInitialization class
//
//
//
//
///
/// Standard ActionInitialization class creating a RunAction instance for the
/// master thread and RunAction and PrimaryGeneratorAction instances for
/// the worker threads
@@ -23,12 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/TSDetectorConstruction.hh
/// \file TSDetectorConstruction.hh
/// \brief Definition of the TSDetectorConstruction class
//
//
//
//
///
/// Construction of a target material (default = boron) surrounded by a
/// casing material (default = water) and a vacuum world (default =
/// target and casing fill world). The target + casing is brick
@@ -36,12 +33,14 @@
/// in each dimension. The end sections in each dimension
/// is set to the casing. So a fTargetSections = G4ThreeVector(3, 3, 3)
/// would be one section of boron and 8 sections of water.
///
/// The idea behind this geometry is just to create a simple geometry that
/// scatters and produces a lot neutrons with a minimal number of sections
/// (i.e. coarse meshing) such that the contention in operating on
/// the atomic hits maps is higher and round-off errors in the
/// thread-local hits maps are detectable (printed out in TSRunAction)
/// from the sheer number of floating point sum operations.
///
/// Two scorers are implemented: EnergyDeposit and Number of steps
/// The energy deposit is to (possibly) show the round-off error seen
/// with thread-local hits maps. The # of steps scorer is to verify
@@ -23,12 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/TSPhysicsList.hh
/// \file TSPhysicsList.hh
/// \brief Definition of the TSPhysicsList class
//
//
//
//
///
/// This is a very, very extensive physics list and step-limiters are applied
/// to many particles. The reasoning behind this is because we wan't to put
/// as much pressure on the atomics as possible and produce as much
@@ -23,12 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/TSPrimaryGeneratorAction.hh
/// \file TSPrimaryGeneratorAction.hh
/// \brief Definition of the TSPrimaryGeneratorAction class
//
//
//
//
///
/// Simple PrimaryGeneratorAction that produces a -Z surface flux of 1 MeV
/// neutrons into the world
//
@@ -23,12 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/TSRun.hh
/// \file TSRun.hh
/// \brief Definition of the TSRun class
//
//
//
//
///
/// TSRun contains three collections of hits maps: a thread-local hits map,
/// a global atomic hits map (implemented as a static since TSRun is
/// implemented as a thread-local instance), and a global "mutex" hits map
@@ -42,6 +39,7 @@
/// for instance); (2) It does not need to, nor should be, summed in
/// G4Run::Merge(); and (3) destruction -- it should only be cleared by
/// the master thread since there is only one instance.
///
/// A "mutex" hits map is also included as reference for checking the results
/// accumulated by the thread-local hits maps and atomic hits maps. The
/// differences w.r.t. this hits maps are computed in
@@ -23,16 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file parallel/ThreadsafeScorers/include/TSRunAction.hh
/// \file TSRunAction.hh
/// \brief Definition of the TSRunAction class
//
//
//
//
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#ifndef tsrunaction_hh
#define tsrunaction_hh 1