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
@@ -1,63 +0,0 @@
/// @file "MPI/examples/exMPI04/.README.txt"
/// @brief Example exMPI04 README
/*! \page exMPI04 Example : exMPI04
Description
===========
An example of dosimetry in a water phantom.
The example is as exMPI03, but adds output in G4analysis ntuple
and demonstrates ntuple merging.
In difference from merging other data (G4Run, scorers, hitograms),
the ntuple data are not sent to the collecting rank(s) at the
end of run but during event processing. That's why (an) extra rank(s)
have to be reserved for this purpose. The number of extra workers requested
is set in G4MPImanager constructor in main(). While G4MPImanager
can be created with any number of extra workers (< total number),
the ntuple merging is at present supported only for one.
The extra worker is connected to the run action class via G4MPIextraWorker
object which is set to G4MPImanager in main().
The standard calls to G4AnalysisManager (creating ntuple, open, write and
close file) trigger creating all necessary analysis tools object
for merging ntuple data on flight.
MPI ntuple merging can be activated in sequential mode only;
this activation is perfomed by creating the G4MPIntupleMerger
object in the RunActionMaster constructor.
The merger must be created before creating G4AnalysisManager
(= the first call to G4AnalysisManager::Instance())
and deleted only at the end of program.
If multithreading mode is enabled, the ntuples are merged from
threads to files per ranks.
Combined MT + MPI merging is not yet supported.
Merging ntuples is actually supported only with Root output format.
How to build
============
Use CMake on Geant4 library installed with CMake build.
This example requires G4mpi library to be installed
(see examples/extended/parallel/MPI/source/REDME.md)
Follow these commands,
> mkdir build
> cd build
> cmake -DG4mpi_DIR=<where-G4mpi-wasintalled>/lib[64]/G4mpi -DCMAKE_CXX_COMPILER=mpicxx \
-DGeant4_DIR=<your Geant4 install path>/lib[64]/Geant4-V.m.n <path-to-source>
(V.m.n is the version of Geant4, eg. Geant4-9.6.0)
> make
> make install
Replace mpicxx with your MPI-compiler wrapper.
How to run
----------
> mpiexec -n # ./exMPI04 [run.mac]
*/
@@ -1,3 +1,5 @@
\page ExampleexMPI04 Example : exMPI04
MPI/Examples : exMPI04
======================
@@ -22,9 +22,9 @@
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
/// @file exMPI04.cc
//
/// @brief A MPI example code
/// \file exMPI04.cc
/// \brief Main program of the MPI/exMPI04 example
#include "G4MPIextraWorker.hh"
#include "G4MPImanager.hh"
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file ActionInitialization.hh
/// @brief Define action initialization
/// \file ActionInitialization.hh
/// \brief Definition of the ActionInitialization class
///
/// Define action initialization
#ifndef ACTION_INITIALIZATION_H
#define ACTION_INITIALIZATION_H
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file Analysis.hh
/// @brief Define histograms
/// \file Analysis.hh
/// \brief Definition of the Analysis class
///
/// Define histograms
#ifndef ANALYSIS_MANAGER_H
#define ANALYSIS_MANAGER_H
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file DetectorConstruction.hh
/// @brief Define geometry
/// \file DetectorConstruction.hh
/// \brief Definition of the DetectorConstruction class
///
/// Define geometry
#ifndef DETECTOR_CONSTRUCTION_H
#define DETECTOR_CONSTRUCTION_H
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file EventAction.hh
/// @brief Describe event actions
/// \file EventAction.hh
/// \brief Definition of the EventAction class
///
/// Describe event actions
#ifndef EVENT_ACTION_H
#define EVENT_ACTION_H
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file MedicalBeam.hh
/// @brief Define beam profile as primary generator
/// \file MedicalBeam.hh
/// \brief Definition of the MedicalBeam class
///
/// Define beam profile as primary generator
#ifndef MEDICAL_BEAM_H
#define MEDICAL_BEAM_H
@@ -23,6 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file Run.hh
/// \brief Definition of the Run class
#ifndef RUN_HH
#define RUN_HH
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file RunAction.hh
/// @brief Describe run actions
/// \file RunAction.hh
/// \brief Definition of the RunAction class
///
/// Describe run actions
#ifndef RUN_ACTION_H
#define RUN_ACTION_H
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file RunActionMaster.hh
/// @brief Describe run actions
/// \file RunActionMaster.hh
/// \brief Definition of the RunActionMaster class
///
/// Describe run actions
#ifndef RUN_ACTIONMASTER_H
#define RUN_ACTIONMASTER_H
@@ -23,6 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file RunMerger.hh
/// \brief Definition of the RunMerger class
#ifndef MPIRUNMERGER_HH
#define MPIRUNMERGER_HH
#include "Run.hh"
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file VoxelParam.hh
/// @brief Define voxel parameterization
/// \file VoxelParam.hh
/// \brief Definition of the VoxelParam class
///
/// Define voxel parameterization
#ifndef VOXEL_PARAM_H
#define VOXEL_PARAM_H
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file VoxelSD.hh
/// @brief Define detector sensitivity on voxels
/// \file VoxelSD.hh
/// \brief Definition of the VoxelSD class
///
/// Define detector sensitivity on voxels
#ifndef VOXEL_SD_H
#define VOXEL_SD_H
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file ActionInitialization.cc
/// @brief Define action initialization
/// \file ActionInitialization.cc
/// \brief Implementation of the ActionInitialization class
///
/// Define action initialization
#include "ActionInitialization.hh"
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file Analysis.cc
/// @brief Define histograms and ntuples
/// \file Analysis.cc
/// \brief Implementation of the Analysis class
///
/// Define histograms and ntuples
#include "Analysis.hh"
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file DetectorConstruction.hh
/// @brief Define geometry
/// \file DetectorConstruction.cc
/// \brief Implementation of the DetectorConstruction class
///
/// Define geometry
#include "DetectorConstruction.hh"
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file EventAction.cc
/// @brief Describe event actions
/// \file EventAction.cc
/// \brief Implementation of the EventAction class
///
/// Describe event actions
#include "EventAction.hh"
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file MedicalBeam.cc
/// @brief Define beam profile as primary generator
/// \file MedicalBeam.cc
/// \brief Implementation of the CLHEP::MedicalBeam class
///
/// Define beam profile as primary generator
#include "MedicalBeam.hh"
@@ -23,6 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file Run.cc
/// \brief Implementation of the Run class
#include "Run.hh"
#include <atomic>
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file RunAction.cc
/// @brief Describe run actions
/// \file RunAction.cc
/// \brief Implementation of the RunAction class
///
/// Describe run actions
#include "RunAction.hh"
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file RunActionMaster.cc
/// @brief Describe run actions
/// \file RunActionMaster.cc
/// \brief Implementation of the RunActionMaster class
///
/// Describe run actions
#include "RunActionMaster.hh"
@@ -23,6 +23,9 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file RunMerger.cc
/// \brief Implementation of the RunMerger class
#include "RunMerger.hh"
#include "Run.hh"
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file VoxelParam.cc
/// @brief Define voxel parameterization
/// \file VoxelParam.cc
/// \brief Implementation of the VoxelParam class
///
/// Define voxel parameterization
#include "VoxelParam.hh"
@@ -23,9 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
/// @file VoxelSD.cc
/// @brief Define detector sensitivity on voxels
/// \file VoxelSD.cc
/// \brief Implementation of the VoxelSD class
///
/// Define detector sensitivity on voxels
// #include "G4MPImanager.hh"
#include "VoxelSD.hh"