diff --git a/ReleaseNotes/Beta4.11.3-1.txt b/ReleaseNotes/Beta4.11.3-1.txt
index da310c91e2..9d4c29e95f 100644
--- a/ReleaseNotes/Beta4.11.3-1.txt
+++ b/ReleaseNotes/Beta4.11.3-1.txt
@@ -133,10 +133,11 @@ List of features and fixes included in this Beta release since 11.2.p02:
o Minor cleanup in QSS classes.
+ management:
o Added new capability to run voxel optimisation in threads in MT mode.
- Parallelises only over volumes. The user must currently call
- G4GeometryManager::RequestParallelOptimisation(optimise, verbose) to
- use it. Set 'verbose=true' to obtain statistics on the volumes with
- biggest contribution to memory size and CPU time for voxelisation.
+ Parallelises only over volumes. The user can call the method
+ RequestParallelOptimisation(optimise, verbose) from G4GeometryManager
+ to turn it on/off. Set 'verbose=true' to obtain statistics on the
+ volumes with biggest contribution to memory size and CPU time for
+ voxelisation.
New method BuildOptimisationsParallel() can be called by
G4WorkerRunManager to initialise. New method ReportVoxelInfo() to
write out for verification. Checked with simple and complex/large
diff --git a/ReleaseNotes/ReleaseNotes.11.3.html b/ReleaseNotes/ReleaseNotes.11.3.html
new file mode 100644
index 0000000000..b73f6e986a
--- /dev/null
+++ b/ReleaseNotes/ReleaseNotes.11.3.html
@@ -0,0 +1,2424 @@
+
+
+Geant4 11.3 Release Notes
+
+
+
+
+
+
+
+
+
+Geant4 11.3 Release Notes
+
+
+
+|
+
+December 6th, 2024
+
+ |
+
+
+
+
+
+The code and binary libraries for the supported systems are available
+through our Source
+Code Web page.
+
+
+We are grateful for the efforts of Geant4 users who have provided
+ detailed feedback or comprehensive reports of issues.
+ We thank in particular those who have contributed corrections,
+ improvements or developments included in this release.
+
+
+Please refer to the
+Geant4
+User Documentation for further information about using Geant4.
+
+
+Contents
+
+- Supported and Tested Platforms
+- Supported CLHEP, VecGeom and PTL versions
+- Items for migration of the user code
+- New Developments and Capabilities
+- Expected effects on physics and performance
+- Known Run-Time Problems and Limitations
+- Compilation Warnings
+- Geant4 Software License
+- Detailed list of changes and fixes
+
+
+
+
+
+
+
+
+1. Supported and Tested Platforms
+
+Platforms:
+
+- Linux, gcc-14.2.0.
+ Tested on 64 bit architectures (Intel or AMD) with
+ Alma Linux 9 (based on RedHat Linux Enterprise 9).
+- macOS 15.1 Sequoia with Apple LLVM/Clang-16.
+ Tested on 64 bit architectures (Intel or Apple Silicon).
+- Windows-11 with Visual C++ 14.4 (Visual Studio 2022), 64 bits.
+
+
+More verified and tested configurations (64 bits):
+
+- Linux, gcc-9.4/10.3/11.3/12.1/13.2, clang-16/17/19
+- Linux, Intel-icx 2024.2
+- macOS 13.6 Ventura with Apple LLVM/clang-15
+- macOS 14.7 Sonoma with Apple LLVM/clang-15
+- Windows/10 with Visual C++ 14.36 (Visual Studio 2022)
+
+
+
+
+
+
+
+
+2. Supported CLHEP, VecGeom and PTL versions
+
+This release of Geant4 has been verified with
+CLHEP, release 2.4.7.1.
+Use of a different CLHEP version may cause incorrect simulation results.
+NOTE: an internal module of the relevant CLHEP classes is provided and can be
+used as alternative to an external CLHEP library installation.
+A configuration option allows a Geant4 installation to use the
+VecGeom Library
+primitives, to replace the original Geant4 solids.
+VecGeom version 2.0.0-rc3 or 1.2.10 can be adopted when using
+such configuration.
+PTL version 3.0.1 or later is required for external installation of the
+PTL tasking library.
+CMake 3.16 is the minimum version required to build Geant4.
+
+
+
+
+
+
+
+3. Items for migration of the user code
+
+Listed here is some relevant information on developments included in this
+release.
+Note that for all users a full re-installation of libraries (or a full
+re-compilation) and a re-compilation of user applications is required.
+
+
+General
+
+
+- Fixed spurious compilation warnings on gcc when LTO settings are enabled.
+- Set default for GEANT4_INSTALL_PACKAGE_CACHE to be OFF.
+ This file is highly unstable on macOS and Spack installs, causing
+ problems for most users. Retain the ability to install this file if
+ really wanted, but change the default to NOT install it; in
+ general this will not change anything for users provided they have a
+ reproducible build environment setup.
+- Removed configuration/setup of no longer supported TiMemory profiling.
+
+
+
+Analysis
+
+- The G4Accumulable class was renamed in G4AccValue including the related
+ functions in G4AccumulableManager; the old class name is still available
+ via using.
+- The following G4AccumulableManager functions are deprecated (a warning
+ will be issued in compilation if present in user code):
+
+ - CreateAccumulable<T>() [new name: CreateAccValue<T>()]
+ - GetAccumulable<T>() [new name: GetAccValue<T>()]
+ - RegisterAccumulable<T>() [new name: Register<T>()]
+
+- Newly added function Print(G4PrintOption) in the accumulable base
+ class G4VAccumulable requires to adapt user classes which implement the
+ Print() function without or with different arguments.
+
+
+
+Electromagnetic and optical physics
+
+
+- New dataset G4EMLOW8.6.1 is required and should be used.
+
+
+
+Hadronic physics
+
+
+- New hadronic datasets G4ENSDFSTATE-3.0, G4PhotonEvaporation-6.1,
+ G4RadioactiveDecay-6.1.2, G4PARTICLEXS-4.1 are required and should be
+ used.
+- Since Geant4 version 11.2, the physics list QGSP_BERT_HP has a treatment
+ of low energy (< 20 MeV) neutrons which is not the same as for
+ the other HP-based reference physics list (FTFP_BERT_HP, QGSP_BIC_HP,
+ Shielding, etc.).
+ QGSP_BERT_HP is still under validation, therefore it is not recommended for
+ physics studies, but users are welcome to try out and provide feedback.
+- Renamed G4RadioactiveDecay to G4VRadioactiveDecay and G4Radioactivation
+ to G4RadioactiveDecay. The header for G4Radioactivation is preserved to
+ provide backwards compatibility.
+
+
+
+Run
+
+- G4TaskRunManager now organises workers so that each divides its events
+ evenly across N tasks, rather than one task that processes all events for
+ the worker. This should have no observable effect, though applications
+ using the TBB backend to share it with non-Geant4 tasks may see different
+ overall task numbers and ordering. Event order and reproducibility are not
+ affected.
+- Tuned verbose levels to reduce printouts during event loop.
+- Added protection in G4VPrimaryGenerator::SetParticlePosition() to
+ avoid and warn for attempts to place vertex position outside or on surface
+ of the world volume.
+- Cleanly delete G4Event objects at the end of each run as long as the
+ events are not requested to be kept for redrawing during the following
+ Idle state. The kept events are deleted at the beginning of next
+ run or at program termination.
+
+
+
+Visualization and Modeling
+
+
+- Restored OpenGL as default backend for Qt6. Fixed open issues when using
+ Qt6 with supported drivers. Qt6 is now fully supported.
+
+
+
+Data Sets
+
+
+- This release introduces new data set versions.
+ Please see the corresponding details in
+ Section 9 of this document.
+
+ - New data set versions: G4ENSDFSTATE-3.0, G4PhotonEvaporation-6.1,
+ G4RadioactiveDecay-6.1.2, G4CHANNELINGDATA-1.0, G4EMLOW-8.6.1,
+ G4PARTICLEXS-4.1.
+ - New optional data sets: G4NUDEXLIB-1.0, G4URRPT-1.1.
+ - In order to use ParticleHP for charged particles
+ (protons, deuterons, tritons, He3 and alphas), an optional data
+ set G4TENDL-1.4 is required, and can be optionally
+ downloaded in addition.
+
+
+
+
+
+
+
+
+4. New Developments and Capabilities
+
+General
+
+- First full implementation of sub-event parallelism, with creation and
+ processing of sub-events in workers, and merging of results back into
+ events on the main thread. Added sub-event parallel mode as an option
+ in G4RunManagerFactory and new UI command for allowing trajectory merging.
+
+
+Analysis
+
+- Added support for accumulable collections in analysis module.
+
+
+Geometry & Field
+
+- Added option for performing the geometry initialisation phase,
+ i.e. creating the 'optimisation' voxels for navigation, in parallel mode.
+ The user can enable this option by calling the method
+ RequestParallelOptimisation(optimise, verbose) of
+ G4GeometryManager.
+- New revised and optimised implementation of G4GenericTrap shape.
+- Improved/optimised implementation of GetCubicVolume() in Boolean
+ solids.
+- Added new G4FieldBuilder class to construct what is needed (to carry out
+ the propagation) for a user-specified type (class) of a magnetic or
+ electromagnetic field; added also new classes to hold the accuracy
+ parameters for the propagation tracks in magnetic or EM fields.
+ Instantiating G4FieldBuilder also creates a set of UI commands in the
+ /field directory, for changing the default field integrator,
+ equation of motion and the accuracy parameters.
+ Note: the field class can be either user-defined or an existing type
+ from the toolkit, such as G4QuadrupleMagField or G4UniformElectricField.
+
+
+Materials
+
+- Extended diagnostics and output from material scanner.
+
+
+Electromagnetic physics
+
+- New processes G4DynamicParticleIonisation, G4DynamicParticleMSC and
+ G4DynamicParticleFluctuation, which perform computations on the fly using
+ only G4DynamicParticle data.
+- Optimised step limitation algorithm in G4UrbanMscModel.
+- G4eeToTwoGammaModel: fixed precision lost in sampling of final state
+ for very high energies.
+- New class G4EmDataRegistry, to keep EM data tables.
+- New 5D model for e+e- pair production by muons; classes
+ G4RiGeMuPairProductionModel and G4RiGeAngularGenerator.
+- New G4OrePowellAtRestModel and G4PolarizedOrePowellAtRestModel classes,
+ for Orel & Powell orto positronium decay model at rest, also polarized.
+- Implemented new model of ionization losses for e+- ionization for
+ channeling using the new channeling dataset.
+- New process G4CoherentPairProduction for the simulation of coherent
+ pair production by high energy gamma in an oriented crystal.
+- Simplified computation of cross-section maximum for discrete processes
+ in G4EmUtility.
+- Introduced new classes G4UnknownParticle and G4ChargedUnknownParticle,
+ part of ATLAS and LHCb request to assign automatically ionisation and
+ multiple scattering processes to charged primary particles with valid PDG
+ code but not known to Geant4.
+- Implemented production and decay of omega(780) and f2(1270) for pion
+ projectile and implemented decay of unstable isomers of recoil nucleus
+ if not a natural isotope.
+- New class G4XTRGaussRadModel, providing improved account on the origin
+ of XTR photons.
+- Updated adjoint simulation classes to allow running adjoint simulation
+ in MT mode.
+- Geant4-DNA
+
+ - New classes implementing general models for ions heavier than Helium:
+ G4GeneralIonIonisationModel, G4DNAIonChargeIncreaseModel and
+ G4DNAIonChargeDecreaseModel.
+ - New class focusing on generating multiple-ionised water ions and
+ calculating scale parameters to compute cross-sections of each
+ multiple-ionisation process: G4DNAMultipleIonisationManager.
+ - New process classes for multiple-ionisation: G4DNADoubleIonisation,
+ G4DNATripleIonisation and G4DNAQuadrupleIonisation.
+ - New model classes related to multiple-ionisation:
+ G4DNADoubleIonisationModel, G4DNATripleIonisationModel and
+ G4DNAQuadrupleIonisationModel.
+ - In G4EmDNAPhysics, defining default maximum kinetic energy
+ 600 MeV instead of 300 MeV in order to have standard
+ ionisation and multiple scattering always defined for DNA physics
+ configurations.
+
+
+
+Hadronic physics
+
+- The angular emission for 4-body and higher-body generation in the Bertini-like
+ intranuclear cascade model BERT has been improved.
+ This has a visible impact on the simulation of hadronic showers for most of the
+ reference physics lists, including FTFP_BERT and QGSP_BERT.
+- First implementation of the optional NuDEX nuclear de-excitation hadronic model,
+ which provides a detailed emission of gammas and internal conversion electrons
+ from the de-excitation of nuclei.
+ This model relies on the new, optional dataset G4NUDEXLIB-1.0, accessed through
+ the G4NUDEXLIBDATA environmental variable.
+ For the time being, NuDEX can be utilised only for neutron capture in the
+ physics list QGSP_BERT_HP. To enable it, one needs to include the following
+ C++ code line G4HadronicParameters::Instance()->SetEnableNUDEX(true);
+ in the main program, before instantiating the physics list.
+- For low-energy (< 20 MeV) neutrons, introduced the optional
+ treatment of the Unresolved Resonance Region (URR) via Probability
+ Table (PT), relevant for precise simulations of nuclear reactor criticality
+ and shielding applications.
+ This special treatment can be activated on top of any reference physics list
+ based on HP or HPT by using the new physics list constructor class
+ G4URRNeutrons. There are two possible types of probability tables - NJOY and
+ CALENDF - and the choice between them can be done via the C++ code line, e.g.
+ G4HadronicParameters::Instance()->SetTypeTablePT("njoy")
+ in the main program, before instantiating the physics list.
+ This treatment, when activated, needs the new, optional dataset G4URRPT-1.1,
+ accessed through the G4URRPTDATA environmental variable.
+- New class G4InterfaceToXS, to compute inverse cross-section using
+ G4PARTICLEXS cross-sections for neutrons and light ions.
+- Optimised G4ChargeExchangeXS, switching computations from level of
+ isotopes to level of elements and making the code running faster
+ without loss of accuracy.
+- Added "HPT" extension to support adding G4ThermalNeutrons to extensible
+ physlist factory.
+- In de-excitation hadronic model, improved algorithm for handling of broken
+ levels in G4LevelReader.
+- Updates to cross-section classes to rationalise initialisation of data
+ in MT mode.
+
+
+Physics Lists
+
+- New physics list constructor class G4ChargedUnknownPhysics, to be used
+ on top on any reference physics list, to assign ionisation and multiple
+ scattering (as well as transportation) processes to exotic charged particles,
+ i.e. primary charged particles with valid PDG code but not known to Geant4.
+- Added three new variants of Shielding physics list in
+ G4PhysListFactory: ShieldingLIQMD, ShieldingLIQMD_HP and
+ ShieldingLIQMD_HPT. These variants use the model G4LightIonQMDReaction.
+ Note that ShieldingLIQMD and ShieldingLIQMD_HP are the same:
+ the latter is introduced for consistency.
+
+
+Visualization and Interfaces
+
+- Improved plotting with /vis/plot if TOOLS_USE_FREETYPE flag is set.
+ Set GEANT4_USE_FREETYPE=ON in CMake.
+- Improved identification of scene tree models in visualisation.
+ Now suppressing the scene tree if the number of touchables exceeds
+ 10000 (equivalent to about 20 MB).
+
+
+Examples
+
+- Extended example RE03 in 'extended/runAndEvent', demonstrating the ability
+ to run in sub-event parallel mode.
+- Introduced 'exoticphysics/channeling' examples category, created 'ch0'
+ example out of the original example and added 'ch1', 'ch2' and 'ch3'
+ examples. ch1: an easy demonstration of the minimum requirements necessary
+ to integrate the G4ChannelingFastSimModel and the G4BaierKatkov model into
+ a project in order to simulate the physics of channeling and channeling
+ radiation/coherent bremsstrahlung; ch2: an enhanced version of ch1,
+ providing the user with the full functionality of both demonstrated models,
+ with parameters set up via a macro; ch3: demonstrating the minimum
+ requirements necessary to integrate the G4CoherentPairProduction process
+ into a project, along with the demonstrated models, to simulate the physics
+ of electromagnetic showers in an oriented crystal.
+- Created a new dna category for Geant4-DNA advanced examples, including
+ moleculardna example, moved from extended category and new
+ cellularPhantom application, showing how to simulate the
+ irradiation of a 3D voxel phantom containing biological cells, created
+ from a confocal microscopy 24-bit RGB image. Reference:
+ P. Barberet et al., "Monte-Carlo dosimetry on a realistic cell monolayer
+ geometry exposed to alpha-particle", Phys. Med. Biol. 57 (2012) 2189-2207.
+- The Periodic Boundary Condition is implemented in the UHDR extended example
+ for Geant4-DNA microdosimetry simulations, based on
+ https://github.com/amentumspace/g4pbc.
+ The effective box model is also implemented in the UHDR example based
+ on M. Karamitros et al., arXiv:2006.14225 (2020).
+
+
+
+
+
+
+
+5. Expected effects on physics and computing performance
+
+Electromagnetic physics
+
+- Electromagnetic shower shapes will be affected on level of per mille
+ if 3-gamma annihilation is enabled. For low energy positively charged
+ particles the agreement of simulation versus data will be improved.
+
+
+Hadronic physics
+
+- Due to the improvement in the angular emission of >= 4 particles in the
+ final-state of the BERT model, the hadronic showers for most of the reference
+ physics lists, including FTFP_BERT and QGSP_BERT, have few per-cent higher
+ energy response and narrower lateral shower shapes with respect to the
+ previous version, Geant4 11.2.
+ In other words, the hadronic string models (FTF and QGS) and the intranuclear
+ cascade model BERT become closer to each other in this Geant4 release.
+- The new hadronic dataset G4PhotonEvaporation-6.1 produces some visible differences
+ in the final-state of the photo-evaporation model in Tungsten, with respect to
+ the previous version.
+ This has an impact, at the per-cent level, on hadronic showers in Tungsten
+ calorimeters only for the physics lists QGSP_BIC and QGSP_INCLXX (whereas
+ those that are based on BERT model, e.g. FTFP_BERT and QGSP_BERT, are not
+ affected because BERT has its own internal nuclear de-excitation model that
+ does not use the G4PhotonEvaporation-6.1 dataset).
+
+
+
+
+
+
+
+
+6. Known Run-Time Problems and Limitations
+For a complete list of outstanding run-time problems and to submit any
+problem you may find while running this version of Geant4, please refer
+to the
+Geant4 Problem
+Reporting System.
+
+
+
+
+
+
+
+7. Compilation Warnings
+
+There may be a few compilation warnings on some platforms.
+We do not believe that any of these lead to incorrect run-time behaviour.
+
+
+
+
+
+
+
+8. Geant4 Software License
+
+A Software License applies to the Geant4 code.
+Users must accept this license in order to use it.
+The details and the list of copyright holders is available at
+https://cern.ch/geant4/license
+and also in the text file LICENSE distributed with the source code.
+
+
+
+
+
+
+
+9. Detailed list of changes and fixes
+
+These are the main new features/fixes included in this release since the
+last patched public release (for more detailed lists of fixes/additions,
+please refer to the corresponding History files provided in most packages):
+
+
+
+
+Configuration
+
+- CMake
+
+ - Support running example build-and-run tests in XCode on macOS.
+ - Added support for use of sanitizers with XCode; ensure sanitizer flags
+ are forwarded to the linker when using Xcode, and all linker flags are
+ forwarded to builds of tests.
+ - Added compiler flags for GCC only to help detect/debug LTO-related
+ problems when building with CMAKE_INTERPROCEDURAL_OPTIMIZATION.
+ - Provide CMake function to assist in linking unit tests to final
+ libraries given required source code modules.
+ - Removed configuration/setup of no longer supported TiMemory profiling.
+
- Introduced new FullRelWithDebInfo build mode, -O3 -g,
+ so maximum optimisation with debugging symbols.
+ - Simplifications to Geant4Config.cmake: removed obsolete and never run
+ "whole archive" linking of G4physics_lists; replaced TOOLSSG
+ visualisation driver variables that are just synonyms for more
+ fundamental config options (e.g. GEANT4_USE_QT) with the underlying
+ variable.
+ - Simplified CMake/CTest functions and settings: moved geant4_add_test
+ function to dedicated module, retiring UseGeant4_internal file;
+ reduced oversetting of Geant4_DIR variable for use by tests.
+ - Set default for GEANT4_INSTALL_PACKAGE_CACHE to be OFF.
+ This file is highly unstable on macOS and Spack installs, causing
+ problems for most users. Retain the ability to install this file if
+ really wanted, but change the default to NOT install it; in
+ general this will not change anything for users provided they have a
+ reproducible build environment setup.
+ - Added optional install of new NuDEXLib and URRPT datasets.
+ - Bump minimum VecGeom version to 1.2.9.
+ - New data sets G4ENSDFSTATE-3.0, G4PhotonEvaporation-6.1,
+ G4RadioactiveDecay-6.1.2, G4CHANNELINGDATA-1.0,
+ G4EMLOW-8.6.1, G4PARTICLEXS-4.1,
+ G4NUDEXLIB-1.0, G4URRPT-1.1.
+ - Updated tag-IDs for 11.3.
+
+
+
+
+Analysis
+
+- Added support for accumulable collections.
+ New classes: G4AccArray, G4AccMap, G4AccUnorderedMap, G4AccVector.
+- Added G4AccType enumeration for available accumulable types.
+- Added functions for printing with G4PrintOption argument to all accumulable
+ types and G4AccumulableManager (Note - this will require to update user
+ classes which implement the Print() function without or with different
+ arguments).
+- Added VerboseLevel in G4Accumulables and its setter/getter
+ in G4AccumulableManager.
+- Internal changes:
+
+ - Renamed class G4Accumulable in G4AccValue, and added a using for
+ the old name for backward compatibility.
+ - In G4AccumulableManager, replaced RegisterAccumulable() with
+ Register() and deprecated the function with the old name.
+
+- Fixes:
+
+ - Fixed setting of file compression level in G4GenericFileManager:
+ propagate setting to all registered file managers.
+ Addressing problem report
+ #2625.
+ - Applyed clang-tidy checks to code (use of override, redundant data
+ initialisation, use of emplace-back).
+ - Fixed reported Coverity defects (use std::move() and
+ const auto&, to avoid copying).
+
+
+
+
+Digitization & Hits
+
+- Fixed reported Coverity defects, use consistently const G4String&
+ to avoid implicit copy.
+- Fixed class description in headers. Use G4 types.
+
+
+
+Electromagnetic Processes
+
+- Adjoint
+
+ - Updates to allow running adjoint simulation in MT mode.
+ - Fixed reported Coverity defects for use of const G4String&
+ and std::move().
+ - Minor code cleanup (use of default destructor, std::size_t,
+ G4 types, ...).
+
+- DNA:
+
+ - Modified the molecule names of OH, HO2, O in MoleculeDefinition.
+ Each molecule configuration has a molecule definition.
+ - Optimised IRT-syn at 1 ps for high LET applications.
+ - G4DNARuddIonisationExtendedModel: updated model to not use autolock but
+ rather upload data in the class constructor once in all threads; use
+ effective charge approach for all ions with Z > 2 (in order to
+ have more correct computation of stopping power and ranges); precompute
+ internal variables before sampling; optimised algorithm of sampling
+ (at 10 MeV it becomes considerably faster); updated initialisation
+ to allow be called from the general model; removed unused parameters.
+ - G4GeneralIonIonisationModel, G4DNAIonChargeIncreaseModel and
+ G4DNAIonChargeDecreaseModel: new classes implementing general models
+ for ions heavier than Helium.
+ - Fixed missing value in DNA PTB Ionization Structure.
+ - Fixed missing GetMaterial() in DNA PTB Excitation and Elastic
+ models as suggested in
+ GitHub PR#78.
+ - G4DNAChargeDecrease, G4DNAChargeIncrease: removed obsolete definition
+ of min/max model energy inside processes class; some code clean-up.
+ - G4DNAElectronHoleRecombination: changed branch condition in
+ FindReactant() to select only H2O+ ions involved in
+ electron-hole recombination.
+ - G4DNAWaterDissociationDisplacer: added dissociative decay channels for
+ multiple-ionised water ions.
+ - G4DNAMultipleIonisationManager: new class focusing on generation of
+ multiple-ionised water ions and calculation of scale parameter to
+ compute cross-section of each multiple-ionisation process.
+ - G4DNADoubleIonisation, G4DNATripleIonisation and
+ G4DNAQuadrupleIonisation: new process classes for multiple-ionisation.
+ - G4DNADoubleIonisationModel, G4DNATripleIonisationModel and
+ G4DNAQuadrupleIonisationModel: new model classes related to
+ multiple-ionisation.
+ - G4DNAELSEPAElasticModel: modified to be compatible with density
+ scaling.
+ - Fixed condition for node insertion in G4KDTree.
+ - Deleted DelayLists at the end of chemistry stage.
+ - Delete unused enum, as now adopting EmParameters to control chemistry
+ models in G4EmDNAChemistry_option3.
+ - Fixed reported Coverity defects for use of std::move(),
+ const auto& and const iterators.
+ - Fixed reported Coverity defects in G4LEPTSElossDistr and
+ G4LEPTSDistribution for explicit null dereferenced pointer and
+ out-of-bounds reads; minor code cleanup.
+ - Cleaned G4Scheduler and cleanup in CMake scripts.
+
+- High Energy
+
+ - Added new processes G4DynamicParticleIonisation, G4DynamicParticleMSC
+ and G4DynamicParticleFluctuation, which perform computations on the fly
+ using only G4DynamicParticle data (G4ParticleDefinition is not used).
+
+- Low Energy
+
+ - G4MicroElecCapture: fixed Coverity warning about division by zero via
+ modification of the formula to compute MFP and added an upper limit
+ 500 eV for this process.
+ - Fix in G4PenelopeBremsstrahlungAngular, for a crash observed when the
+ angular generator is used with a Bremsstrahlung model other than
+ G4PenelopeBremsstrahungModel.
+ - In G4UAtomicDeexcitation, reset vector vacancyArray in
+ GenerateParticles(), to avoid rare case of event
+ non-reproducibility, observed when using EM Opt4 (EMZ) physics-list.
+ - G4FluoData, G4hIonEffChargeSquare, G4MicroElecInelasticModel_new:
+ fixed reported Coverity defects.
+ - Fixed reported Coverity defects for use of std::move().
+ - G4MicroElecLOPhononModel: minor code cleanup.
+
+- Muons
+
+ - G4RiGeMuPairProductionModel, G4RiGeAngularGenerator: a new 5D model
+ for e+e- pair production by muons.
+ - Fixed declaration of virtual destructors in several header files.
+ - G4MuPairProductionModel: minor cleanup for better code readability.
+
+- Standard
+
+ - New G4OrePowellAtRestModel class, Orel & Powell orto positronium decay
+ model AtRest. New class G4PolarizedOrePowellAtRestModel for polarized
+ Orel & Powell orto positronium decay model at rest.
+ - G4IonICRU73Data: fix for the case when target material has an element
+ with Z>92; improved debug printouts. In the Lindhard-Sorensen
+ model to compute dEdx the first try is to take it from ICRU73 or ICRU90
+ data, if this class returns zero, then dEdx is computed from
+ G4GenericIon and effective charge. Addressing problem report
+ #2586.
+ - G4eeToTwoGammaModel: fixed precision lost in sampling of final state
+ for the very high energy (ATLAS report).
+ - G4UrbanMscModel: optimised DistanceToBoundary step limitation
+ algorithm currently used only in Opt3 EM physics.
+ - G4SimplePositronAtRestModel, G4AllisonAtRestModel: new classes to
+ sample positron annihilation.
+ - Renamed G4eplusTo2GammaOKVIModel to G4eplusTo2or3GammaModel.
+ Removed sampling at rest.
+ - G4WentzelOKandVIxSection: fixed rejection factor for sampling of single
+ scattering with nuclear form-factor. Addressing problem report
+ #2627.
+ - G4BraggModel: fixed issue observed with 4.12 MeV mu+ range,
+ reported in Users Forum.
+ - Static initialization improvement for G4eBremsstrahlungRelModel.
+ Use std::shared_ptr for LPMFuncs and ElementData.
+ - G4ionIonisation: use G4BraggIonModel only for alpha and G4BraggModel
+ for other ions in the default EM physics.
+ - G4eplusAnnihilation: added selection of AtRest model; implemented
+ ApplyCuts() for AtRest; implemented choice of positron
+ annihilation model at rest. Use more const class members; changed
+ model ID definition for produced tracks. Updated configuration of
+ models AtRest, the choice of 2-gamma, 3-gamma final states is
+ implemented in one place. Use orto positronium fraction from material
+ property and not from EM parameters.
+ - G4BetheBlochModel: set flags isIon and isAlpha at
+ initialisation and not at run time.
+ - G4BetheHeitlerModel: include optional possibility to use EPICS2017
+ cross-section.
+ - G4BetheHeitler5DModel: added extra protection against division by zero.
+ - Fixed reported Coverity defects in several classes.
+
+- Utils
+
+ - G4EmElementXS: new helper class to cross-section data.
+ - G4EmParameters: increased low-limit on 'maxKinEnergy' parameter from
+ 10 MeV to 600 MeV in order to have standard ionisation
+ and multiple scattering always defined for DNA physics configurations.
+ Added protection to fix segmentation fault when data is unavailable.
+ Added flag to enable/disable the new Ricardo-Gerardo model of e+e-
+ pair production.
+ - G4EmParameters, G4EmParametersMessenger: added enumerator and a new
+ flag G4PositronAtRestModel, which allows selection and configuration of
+ the model of positron annihilation at rest. Added orto positronium
+ fraction flag. Added Ore-Powell models to the list of models for
+ positron annihilation at rest. Added Boolean flag UseEPICS2017.
+ Removed parameter defining fraction of orto positronium for all
+ materials. Added flag to enable/disable 3 gamma annihilation on fly.
+ - G4EmConfigurator: handle G4TransportationWithMsc process name.
+ - G4TransportationWithMsc: set TRANSPORTATION_WITH_MSC process sub-type.
+ - G4LowEnergyEmProcessSubType: added fLowEnergyTripleIonisation
+ and fLowEnergyQuadrupleIonisation for implementing
+ multiple-ionisation processes in Geant4-DNA.
+ - G4VPositronAtRestModel: new virtual interface.
+ - G4EmDataRegistry: new class to keep EM data tables.
+ - G4VEmProcess: extended info printout for e+ annihilation at rest.
+ - G4VEmProcess, G4VEnergyLossProcess: improved identification of model ID
+ for atomic de-excitation (fluorescence, Auger e-, PIXE).
+ - G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger: added
+ DNA chemistry time step model.
+ - G4EmDataHandler: extended functionality.
+ - G4LossTableManager: identify master thread using std method.
+ - G4LossTableBuilder: more accurate use of static members and methods.
+ - G4VEmModel, G4VEmProcess, G4VEnergyLossProcess, G4EmTableUtil: updated
+ according to change in the data.
+ - G4VMscModel: moved initialisation of tables for model to G4EmTableUtil.
+ - G4EmBiasingManager: minor cosmetic change.
+ - G4EmProcessSubType: added sub-types for dynamic EM processes
+ (G4ParticleDefinition is not used, all computations on the fly).
+ Added coherent channeling pair production process type.
+ - Fixed reported Coverity defects.
+
+- Xrays
+
+ - G4XTRGaussRadModel: new class providing improved account on the origin
+ of XTR photons.
+ - G4VTRModel: added empty implementation to GenerateSecondaries()
+ method to resolve linker error on clang compiler.
+ - Fixed reported Coverity defect in G4VXTRenergyLoss.
+
+
+
+
+Error Propagation
+
+- Fixed reported Coverity defect in G4ErrorFreeTrajState for use of
+ const G4String& and std::move().
+
+
+
+Event
+
+- Implementated new feature for creation and processing of sub-events.
+- Added protection in G4VPrimaryGenerator in SetParticlePosition()
+ to avoid and warn for attempts to place vertex position outside or on
+ surface of the world volume.
+- In G4Event, changed data member keepTheEvent to mutable
+ so that KeepTheEvent() method can be invoked forconst G4Event
+ object.
+- G4PrimaryTransformer: adding sanity check of 4-momentum.
+- Added UI command to switch on/off the vertex position check (default: on).
+- Updated /gun/position UI command guidance in G4ParticleGunMessenger.
+ Removed unnecessary setting of gun position to (0, 0, 0).
+- Improved use of Mutex lock in G4EventManager for sub-event level parallelism.
+- G4PrimaryTransformer: adapted and extended after introduction of the new
+ class G4ChargedUnknownParticle (part of ATLAS and LHCb request to assign
+ automatically ionisation and multiple scattering processes to charged
+ primary particles with valid PDG code but not known to Geant4).
+- Fixed reported Coverity defects: in G4GeneralParticleSourceMessenger for
+ use of const auto& and use of const G4String&; in
+ G4StackManager for copy/paste error in printout.
+- Removed use of no longer supported TiMemory.
+
+
+
+Externals
+
+- G4tools:
+
+ - Updated to version 6.3.3
+ - Fixed reported Coverity defects for use of const references
+ and std::move(). Fixed cases of potential divide by zero.
+ - In wroot/file, fixed buffer size in function
+ compress_buffer(). In wroot/basket, suppressed test
+ in write_on_file(). Addressing problem report
+ #2625.
+ - Fixed typo in columns class member name; issue picked up by
+ clang-19 compiler on Linux.
+
+- PTL:
+
+ - Synchronised with version PTL-3.0.1. Retaining patches for Geant4
+ source layout in configuration.
+ - Fixed reported Coverity defects for use of std::move() and
+ removal of structurally dead code.
+ - Added max CMake version in PTLConfig.cmake.in to suppress warnings in
+ latest CMake versions about support for 3.10 being dropped.
+
+
+
+
+General Processes
+
+- Biasing
+
+ - Fixed reported Coverity defects, to use const G4String& for
+ avoiding implicit copies.
+
+- Management
+
+ - G4ParticleTypes: added G4ChargedUnknownParticle class; part of ATLAS
+ and LHCb request to assign automatically ionisation and multiple
+ scattering processes to charged primary particles with valid PDG code
+ but not known to Geant4.
+
+- Optical
+
+ - G4OpWLS2: change SetProcessSubType() from fOpWLS to fOpWLS2.
+
+- Scoring
+
+ - Added safeguard for zero energy deposited in G4EnergySplitter.
+ Addressing problem report
+ #2629.
+
+- Solid State
+
+ - Fixed reported Coverity defects in G4ChannelingOptrChangeCrossSection
+ and G4ChannelingOptrMultiParticleChangeCrossSection.
+
+- Transportation
+
+ - Introduced TRANSPORTATION_WITH_MSC process sub-type in
+ G4TransportationProcessType.
+
+
+
+
+Geometry
+
+- Biasing
+
+ - Fixed reported Coverity defect in G4WeightWindowStore, to use
+ std::move() for avoiding implicit copy.
+
+- Divisions
+
+ - Applied trivial clang-tidy fixes to classes, i.e. use of default
+ constructor/destructor.
+
+- Magnetic Field
+
+ - Added new classes for automatic field construction from parameters:
+ G4FieldBuilder[Messenger], G4FieldParameters[Messenger] and
+ G4FieldSetup.
+ - Improved stability of static initialisation for StepperType()
+ and StepperDescription() in G4DormandPrince745.
+ - Applied trivial clang-tidy fixes to classes, i.e. use of default
+ constructor/destructor, auto and using statements.
+ - Minor cleanup in QSS classes.
+ - Fixed reported Coverity defects for use of std::move()
+ and const auto&, to avoid copying.
+
+- Management
+
+ - Added new capability to run voxel optimisation in threads in MT mode.
+ Parallelises only over volumes. The user can call the method
+ RequestParallelOptimisation(optimise, verbose) from
+ G4GeometryManager to turn it on/off (default is off).
+ Set verbose=true to obtain statistics on the
+ volumes with biggest contribution to memory size and CPU time for
+ voxelisation.
+ New method BuildOptimisationsParallel() can be called by
+ G4WorkerRunManager to initialise. New method ReportVoxelInfo()
+ to write out for verification. Checked with simple and complex/large
+ geometries.
+ - Added new methods GetNumOfConstituents() and IsFaceted()
+ to G4VSolid.
+ - Access G4GeometryManager singleton through its GetInstance()
+ in stores.
+ - Applied trivial clang-tidy fixes to classes, i.e. use of default
+ constructor/destructor.
+
+- Navigation
+
+ - G4TransportationManager now notifies G4FieldManager about the global
+ field via its new function SetGlobalFieldManager().
+ This provides the ability to access/revise the global field manager
+ directly from G4FieldManager without dependency on the navigation
+ module.
+ - In G4MultiLevelLocator, in EstimateIntersectionPoint(),
+ moved repeated assertion on invalid intersection within G4DEBUG_FIELD,
+ to avoid excess of warning printouts in rare cases of failed
+ convergence, as reported by CMS.
+ - Applied trivial clang-tidy fixes to classes, i.e. use of override
+ and removal of virtual keywords; use of default
+ constructor/destructor.
+
+- Solids (Boolean)
+
+ - In G4BooleanSolid, propagate parameter to all constituents in
+ SetCubVolStatistics() and SetCubVolEpsilon().
+ - In G4UnionSolid and G4SubtractionSolid, limit calculations with
+ construction of temporary G4IntersectionSolid by 10 constituents for
+ GetCubicVolume().
+ - Implemented new methods GetNumOfConstituents() and
+ IsFaceted().
+ - G4MultiUnion: in GetCubicVolume(), use
+ EstimateCubicVolume().
+ - G4BooleanSolid: in SetCubVolStatistics() and
+ SetCubVolEpsilon(), added check for G4MultiUnion to avoid
+ memory corruption.
+ - Added extra method to process solid and not perform external operations
+ via G4Polyhedron. Successive Boolean mesh operations with floating point
+ are invariably going to be unstable. Providing a method which takes a
+ solid and returns the G4Polyhedron allows the external processor to use
+ significantly more precise types and strategies to avoid ambiguity and
+ then finally convert to double at the very last step.
+
+- Solids (CSG)
+
+ - Implemented new methods GetNumOfConstituents() and
+ IsFaceted().
+ - Applied trivial clang-tidy fixes to G4CSGSolid, i.e. use of
+ override.
+
+- Solids (Specific)
+
+ - Completely revised and optimised implementation of G4GenericTrap.
+ Addressing problem report
+ #2547.
+ - Implemented new methods GetNumOfConstituents() and
+ IsFaceted().
+ - Removed internal cached state of G4TwistedTubs and G4VTwistedFaceted.
+ Addressing problem report
+ #2619.
+ - G4ExtrudedSolid: fixed defects reported by Coverity.
+ - Fixed reported Coverity defects in G4Voxelizer; use std::move()
+ instead of plain vector copy in several methods.
+ - Applied trivial clang-tidy fixes to classes, i.e. use of override
+ and default keywords.
+
+- Volumes
+
+ - Access G4GeometryManager singleton through its GetInstance()
+ in G4AssemblyStore.
+ - Applied trivial clang-tidy fixes to G4AssemblyStore, i.e. removed
+ unnecessary if check for null pointer in Clean()
+ method.
+ - Fixed reported Coverity defect in G4ReflectionFactory, to not pass
+ the same G4VisAttributes object to the reflected logical volume.
+
+
+
+
+Global
+
+- Moved flushing of G4cout to G4iosFinalization, resolving a problem of
+ possible static destruction issue reported by ATLAS.
+- Improved stability of static initialisation in G4ios; ensure unique
+ initialisation and finalisation.
+- Added method Report() to G4AllocatorList, for monitoring
+ G4Allocator objects.
+- G4StateManager, G4VStateDependent: added notifying methods when an event
+ or a run is deleted to avoid a state-dependent class from accessing to an
+ obsolete event/run object.
+- G4PhysicsModelCatalog: added ID for the NuDEX nuclear de-excitation model;
+ removed unnecessary ID (24110) for internal conversion.
+- G4PhysicsTable: avoid crash in printout for the case when a vector in the
+ table is not yet created (useful for debugging).
+- Updated G4TBBTaskGroup for changes to underlying PTL-3.0.0 API.
+- Added protection in G4ConvergenceTester in calStat() in case of
+ zero histories.
+- Addressed Coverity reported defects for use of std:move() to
+ avoid copies in HEPNumerics; fixed potential division-by-zero in
+ G4SimplexDownhill.
+- Applied fixes from clang-tidy.
+- Removed use of no longer supported TiMemory.
+- Updated date of release for 11.3.
+
+
+
+Graphical Representations
+
+- G4SceneTreeItem: added G4String field FurtherInfo and access
+ functions.
+- G4Colour: clarify usage; added GetColor() (US spelling);
+ added G4Exception.
+- G4VVisManager: added EventReadyForVis(), used by
+ G4SubEvtRunManager.
+- In G4VVisManager, provide all base class interfaces in Sequential and MT
+ modes, with an empty implementation modelling the Sequential case.
+- In G4AttDef, deprecated output operator<<() that uses pointer.
+- Minor improvements to messages in output operator<<() in G4VMarker
+ and G4Visible.
+- Fixed reported Coverity defects in BooleanProcessor and in
+ HepPolyhedronProcessor.
+
+
+
+Hadronic Processes
+
+- Cross Sections
+
+ - New class G4InterfaceToXS, to compute inverse cross-section using
+ G4PARTICLEXS cross-sections for neutrons and light ions.
+ - G4ChargeExchangeXS: switch computations from level of isotopes to
+ level of elements; code becomes several times faster and accuracy is
+ not lost. Added protections against negative components of cross-section
+ and potential division by zero, which may be only possible at extreme
+ high energy. Fixed problem in pion cross-sections according to
+ prescription in the original paper. Handle special case of positive
+ meson scattering off Hydrogen, the cross-section is propotional to the
+ percent of deuterons.
+ - G4NeutronCapture: lowest energy limit is set to 10^-5 eV;
+ below this energy no computations are done, to avoid numerical problems.
+ Improved comments to the code.
+ - G4NeutronInelastic: implemented 1/v cross-section dependence below
+ low-energy limit of the cross-section vector, if the cross-section
+ does not start from null.
+ - Moved G4IsotopeList header to 'util' module.
+ - G4HadronXSDataTable: make class a singleton for registration and
+ destruction of static objects with cross-section data; data are deleted
+ only at the end of run. Use const pointers; fixed data structure;
+ perform proper deletion of objects at exit.
+ - G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4BGGPionElasticXS,
+ G4BGGPionInelasticXS, G4ComponentBarNucleonNucleusXsc,
+ G4HadronNucleonXsc, G4UPiNuclearCrossSection and
+ G4CrossSectionDataSetRegistry: code clean-up; removed isMaster
+ checks, removed mutex locks, removed unused variables and applied code
+ formatting.
+ - G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4NeutronInelasticXS,
+ G4ComponentBarNucleonNucleusXsc, G4ComponentGGNuclNuclXsc, G4PiData and
+ G4NucleonNuclearCrossSection: general clean-up of proton and neutron
+ cross-sections; removed unused methods, removed not needed mutex locks,
+ improved printouts, cross-sections outside data tables are equal to
+ low or high edge of the table (not zero).
+ - G4BGGPionElasticXS, G4BGGNucleonInelasticXS, G4BGGNucleonElasticXS:
+ added check of G4VERBOSE compilation flag.
+ - In G4NeutronInelasticXS, in SelectIsotope(), fixed compilation
+ warnings for implicit type conversions detected with macOS/XCode.
+ - G4ComponentGGNuclNuclXsc: removed debug printout, added check of
+ G4VERBOSE.
+ - G4ParticleInelasticXS: perform initialisation of data only for given
+ ion, not for all 5 ions.
+ - G4ParticleInelasticXS, G4NeutronElasticXS: access to G4PARTICLEXSDATA
+ in class constructor; optimized usage of mutex lock; do not use
+ isInitializer flag anymore.
+ - G4GammaNuclearXS: Use CHIPS parameterisation for Zr and W at all
+ energies, for Cr and Y above 25 MeV and for Sn and Gd above
+ 16 MeV. The default transition energy 130-150 MeV
+ remains for all other targets. Addressing problem report
+ #2609.
+ - G4GammaNuclearXS, G4PhotoNuclearCrossSection, G4ParticleInelasticXS,
+ G4NeutronInelasticXS: allow to reuse static data when several instances
+ of cross-section classes are used.
+ - Fixed reported Coverity defect in G4ParticleInelasticXS,
+ G4NeutronInelasticXS, G4EMDissociationCrossSection and in
+ CHIPS inelastic cross-sections. Some code cleanup.
+
+- Management
+
+ - G4HadronicProcessStore: fixed handling of rare processes, printout,
+ cross-section maximum search, and deletion at the end of run.
+ Fixed minor memory leak at exit by addition of G4ThreadLocalSingleton
+ pattern and removed deletion of extra processes to avoid double
+ deletion at exit.
+ - Fixed use of std::move() in G4ProcessTableMessenger,
+ reported by Coverity.
+
+- Utilities
+
+ - G4HadronicParameters: introduced Get/Set methods for flag controlling
+ the NuDEX gamma de-excitation module.
+ - Moved G4IsotopeList header with static data in this module, from
+ 'cross_sections'.
+ - G4IsotopeList: added table with low-energy threshold energies per
+ atomic number.
+ - G4NucleaRadii: added two static functions to describe threshold shape
+ by the old parameterisations derived from GHEISHA.
+ - G4HadronicParameters: introduced Getter/Setter for selecting the PT
+ table type (a choice between calendf and njoy) for
+ the URR treatment of low-energy neutrons; the choice must be done at
+ initialization time, therefore it cannot be made via UI command in
+ ParticleHP.
+ - G4LegendrePolynomial: optimized implementation as suggested in
+ GitHub PR#70.
+ - Fixed reported Coverity defects for use of std::move() and
+ const G4String&; in G4HadronicDeveloperParameters use
+ const G4String& and const_iterator.
+
+- Abla
+
+ - Added array extension for super-heavy nuclei.
+ - Added the dissipation parameter for heavy hypernuclei.
+ - General code cleanup; removed unused data structures; consistently use
+ G4 types; added pragma once for compilation.
+ - Fixed reported Coverity defects for uninitialised data in G4VarNtp
+ and G4Abla.
+
+- Bertini Cascade
+
+ - Use G4UniformRand() instead of inuclRndm() wrapper
+ which was defined and now removed in G4InuclSpecialFunctions class.
+ - In G4CascadeFinalStateAlgorithm, in GenerateCosTheta(), for
+ 4-body and higher-body generation of cosTheta, use direct
+ sampling of exp(1-cosTheta) instead of previously used
+ rejection method on sinTheta*exp(-sinTheta). This removes the
+ reflection about cosTheta=0 that caused a symmetric double
+ bump in the Feynman-x distribution.
+ - Fixed reported Coverity defect in G4NucleiModel for use of
+ std::move() and unitialised data.
+
+- Binary Cascade
+
+ - Fixed reported Coverity defects for use of std::move() in
+ G4BinaryCascade. Minor code optimisation (use of nullptr,
+ use of const iterators and pre-increment).
+
+- De-excitation
+
+ - G4Evaporation, G4EvaporationProbability, G4CompetitiveFission:
+ provide initialisation of G4InterfaceToXS class also in the case of unit
+ tests, when general initialisation is not performed; minor code
+ clean-up. Results are not changed for the default configuration.
+ - G4DeexPrecoParameters, G4DeexParametersMessenger: added UI command to
+ define inverse cross-section type.
+ - G4EvaporationProbability, G4VEmissionProbability: added use of
+ G4InterfaceToXS as an alternative option.
+ - G4CameronGilbertPairingCorrections, G4CameronGilbertShellCorrections,
+ G4NuclearLevelData, G4PairingCorrection: simplified computation of
+ corrections; computations are now done in one place only, not spread
+ among classes.
+ - G4EvaporationChannel, G4EvaporationProbability: fixed usage of pairing
+ corrections; agreement with test data is improved.
+ Improved implementation of methods ComputeInverseXSection(..)
+ and ComputeProbability(..).
+ - G4EvaporationChannel: fixed computation of minimal kinetic energy of a
+ fragment for odd-even residual nucleus.
+ - G4EvaporationProbability, G4EvaporationChannel, G4VEmissionProbability:
+ do not apply Coulomb barrier for computation of minimum energy of
+ emitted fragments if OPTxs=1 - use isotope cross-section
+ instead; fixed minor memory leak at exit; define OPTxs
+ parameter only in class constructor.
+ - G4DeexPrecoParameters: moved definition of int and bool parameters to
+ source; improved comments; added default width of nuclear level needed
+ for selection of final excitation in a decay of an excited state.
+ Enable read and use of electron conversion data by default.
+ For pre-compound model, use XS option 1 instead of 3.
+ - G4LevelReader: added two new protections to handle broken files with
+ gamma level data: next level energy below previous one is ignored;
+ transition from given level to itself with zero transition energy is
+ ignored. Added two counters for limitation of warning printouts.
+ Changed algorithm for handling of broken levels: do not change number
+ of levels and number of transitions, broken levels or transitions are
+ not deleted but protected. For the case that the energy of the next level
+ is below the previous energy, its energy is set to Eprevious+2 eV.
+ For the case of a transition to itself, the probability of such a
+ transition is set to zero. Reduced printouts on problems in nuclear
+ level data. Code clean-up and improved comments to code.
+ - G4PolarizationTransition: use optimized G4LegendrePolynomial.
+ - G4PhotonEvaporation: use std::abs() in all computations
+ for 'JP', as it can be negative due to parity. Addressing problem report
+ #2587.
+ - G4VEmissionProbability: renamed local variable to avoid possible
+ shadowing. Use the new width parameter.
+ - G4ExcitationHandler: improved debug printout.
+ - G4ExcitationHandle, G4NeutronRadCapture: corrected model ID for IC
+ electrons.
+ - G4GEMChannelVI, G4GEMProbabilityVI: updated interfaces and simplified
+ algorithm of computation of probability.
+ - G4VCoulombBarrier, G4CoulombBarrier, G4GEMCoulombBarrier,
+ G4FermiBreakUpUtil: code cleanup; removed unused headers and variables.
+ - G4CompetitiveFission: added normalisation factor if G4InterfaceToXS
+ is used.
+ - G4CoulombBarrier: changed theRho parameter from 0.6 to 0.4.
+ - Fixed reported Coverity defects in G4VEmissionProbability, G4StatMF
+ and G4PolarizationTransition.
+ - G4ShellCorrection, G4CookShellCorrections: code clean-up.
+
+- Elastic scattering
+
+ - In G4ChargeExchange, do not allow unphysical final state; implemented
+ production and decay of omega(780) and f2(1270) for pion projectile;
+ implemented decay of unstable isomers of recoil nucleus if not a
+ natural isotope. Addressing problem report
+ #2618.
+ - In G4ChargeExchange, fixed problem of the Hydrogen target; change event
+ weight if cross-section biasing factor is applied.
+ Added warning in G4ChargeExchangeProcess.
+
+- Fission
+
+ - G4FissLib: fixed compilation warning on gcc when LTO settings are
+ enabled.
+ - Fixed reported Coverity defects for use of std::move().
+
+- im_r_matrix
+
+ - Fixed reported Coverity defects for use of std::move().
+
+- INCLXX
+
+ - Fixed reported Coverity defects for use of std::move().
+
+- Lend
+
+ - Fixed reported Coverity defects for pointless expression condition
+ in ptwXY_div_ptwXY() operator, and dead code statement in
+ MCGIDI_angularEnergy_parsePointwiseFromTOM() and
+ in MCGIDI_energyAngular_linear_parseFromTOM().
+
+- Lepto-nuclear
+
+ - Fixed Coverity warning on unused variable in neutrino models.
+
+- Nudex
+
+ - New alternative and more sophisticated nuclear de-excitation model
+ (NuDEX) as far as the emission of gammas and internal conversion
+ electrons are concerned. The model relies on the dataset
+ G4NUDEXLIB-1.0, which is pointed by the environment variable
+ G4NUDEXLIBDATA. When NuDEX is not applicable - e.g. because the
+ corresponding nucleus is not present in the dataset - the
+ G4PhotonEvaporation class is utilised instead. Currently, the model
+ will be used only for the neutron capture process, when ParticleHP is
+ utilised; in the future it can be used more generally as one of the
+ possible "evaporation" models. This, at the beginning, will only be
+ possible for the physics list QGSP_BERT_HP.
+
+- Particle High Precision
+
+ - Introduced neutron treatment of the Unresolved Resonance Region (URR)
+ via Probability Table (PT); relevant for precise simulations of nuclear
+ reactor criticality and shielding applications.
+ Reading probability table files in compressed format from the new
+ G4URRPT-1.1 dataset pointed by the G4URRPTDATA environment variable.
+ - G4ParticleHPManager, G4ParticleHPProbabilityTablesStore,
+ G4ParticleHPInelasticDataPT and G4ParticleHPInelasticURR: updated
+ to use G4HadronicParameters for selecting the type of PT table for
+ the URR treatment.
+ - Fixed cross-section computation with Doppler broading effect due to
+ media temperature in G4CrossSectionXP.
+ - G4ParticleHPMessenger: removed recently introduced UI command for
+ selecting the type of PT table (choice between calendf and
+ njoy) for the URR treatment; replaced with a C++ interface in
+ G4HadronicParameters that allows the selection to be made at
+ initialization time.
+ - G4ParticleHPInelastic: fixed missed call to
+ RegisterInelasticFinalStates() of G4ParticleHPManager in
+ method BuildPhysicsTable() of G4ParticleHPInelastic.
+ - In G4ParticleHPElasticData, G4ParticleHPInelasticData,
+ G4ParticleHPCaptureData, G4ParticleHPFissionData,
+ G4ParticleHPThermalScatteringData and G4ParticleHPThermalScattering,
+ use const pointer of G4ElementTable; removed unnecessary thread-local
+ variables, dead code and commented code.
+ - Fixed reported Coverity defects for use of std::move() and
+ const G4String&. Use const qualifier for methods
+ where possible.
+
+- Parton-String
+
+ - G4FTFParameters: fixed typo, renamed method SetElastis() as
+ SetElastic().
+ - G4ExcitedStringDecay: fixed minor memory leak suggested by Coverity.
+ - Fixed reported Coverity defect in G4NucleiModel for redundant assignment
+ in G4LundStringFragmentation in Sample4Momentum().
+
+- Pre-equilibrium
+
+ - G4PreCompoundFragment: completed implementation of usage of XS
+ cross-sections.
+ - G4VPreCompoundFragment, G4PreCompoundFragment: added a new option
+ to use G4InterfaceToXS cross-section class.
+ - G4PreCompoundFragment, G4VPreCompoundFragment: removed shadowing and
+ minor memory leak at exit; moved initialisation to constructors;
+ define OPTxs parameter only in class constructor.
+ Use G4InterfaceToXS class
+
+- QMD
+
+ - Fixed reported Coverity defects for use of std::move() and
+ const std::string&.
+
+- Radioactive Decay
+
+ - Renamed G4RadioactiveDecay to G4VRadioactiveDecay and G4Radioactivation
+ to G4RadioactiveDecay. The header for G4Radioactivation is preserved to
+ provide backwards compatibility.
+ - Fixed reported Coverity defects for use of std::move().
+
+
+
+
+Intercoms
+
+- Unify range checking implementation in G4UIparameter/command; pure
+ refactor to remove code duplication and complexity of user-facing
+ classes.
+- G4UImanager: in ApplyCommand(), fix to replace isMaster()
+ with IsMasterThread() from G4Threading, to properly control
+ highlighting of echoed commands in the Qt GUI in Serial mode.
+- Fixed reported Coverity defects, use consistently const G4String&
+ to avoid implicit copy.
+- Removed use of no longer supported TiMemory.
+
+
+
+Interfaces
+
+- Improved identification of scene tree models: use full description,
+ including embedded blanks.
+- In G4UIQt, now all models are treated alike. Load tooltip with "further
+ information", if any; inform user if scene tree is suppressed because
+ of too many touchable. Fixed crash and bad rendering behaviour when
+ using QOpenGLWidget with Qt6.
+ Allow larger integers in widget response in function
+ NewSceneTreeItemTreeWidget::ActWithAnInteger().
+ Fixed case of opacity==0 for touchables.
+- fixed case of compilation error in FilterOutput() in G4UIQt, with Qt-6.8.0
+ version. Addressing problem report
+ #2633.
+- In G4UIWin32, fix in ConvertNewLines() to fix treatment of first
+ character in G4cout output.
+- Fixed reported Coverity defects, use consistently const G4String&
+ to avoid implicit copy.
+- Removed use of no longer supported TiMemory.
+
+
+
+Materials
+
+- G4IonisParamMat: added parameter for fraction of Orto positronium at rest.
+- G4NistMessenger: added extra UI command for Orto positronium fraction;
+ updated all commands for multi-threading.
+- G4NistManager, G4NistElementBuilder, G4Material, G4Element, G4Isotope:
+ general code clean-up; use std::size_t; simplified expressions;
+ avoid use of static methods in class destructors.
+- Improved stability of static initialisation: simplified G4NistManager
+ singleton initialisation; migrated Isotopes, Materials, Elements's table
+ to function static; delete the element of table at the same time as the
+ table itself.
+- Fixed reported Coverity defects in G4Material, G4NistElementBuilder,
+ G4IonisParamMat and G4LatticePhysical.
+
+
+
+Parameterisations
+
+- Channeling:
+
+ - Implemented new model of ionization losses for e+/- ionization
+ G4VChannelingFastSimCrystalData with some updates in
+ G4ChannelingFastSimModel and G4ChannelingFastSimCrystalData;
+ fixed some bugs concerning particles of higher charges.
+ - Updated G4ChannelingFastSimCrystalData to be compatible with the new
+ channeling dataset accessed through G4CHANNELINGDATA environment
+ variable. Added option to use a custom input file.
+ - Added new process G4CoherentPairProduction for the simulation of
+ coherent pair production by high energy gamma in an oriented crystal.
+ It works as a G4VDiscreteProcess, not as a parameterisation and uses
+ G4ChannelingFastSimCrystalData.
+ - Added some new accessor methods.
+ - Corrected semantic errors in G4BaierKatkov in RadIntegral() and
+ in G4VChannelingFastSimCrystalData in CoulombElectronScattering().
+ - Fixed reported Coverity defect in G4VChannelingFastSimCrystalData.
+
+- GFLASH:
+
+ - Added GetEffDensity() function in
+ GFlashSamplingShowerParameterisation.
+ - Applied correction of Es and sampling resolution function.
+ - Added Rossi approximation for Ec as comment.
+ - Applied clang-format to code.
+
+
+
+
+Particles
+
+- Added new class, G4ChargedUnknownParticle, similar to G4UnknownParticle for
+ charged unknown particles. Part of ATLAS and LHCb request to assign
+ automatically ionisation and multiple scattering processes to charged
+ primary particles with valid PDG code but not known to Geant4.
+- Applied correction suggested in
+ GitHub PR#74,
+ fixing G4ParticleMessenger never updating the currently selected particle.
+ Simplified logic in patch to remove local static.
+
+
+
+Persistency
+
+- ASCII:
+
+ - Fixed reported Coverity defects for use of const G4String&
+ and std::move().
+
+- GDML:
+
+ - Added possibility to define G4GDML_DEFAULT_SCHEMALOCATION string as
+ environment variable, to point to local path for the schema.
+ Defined new flag G4GDML_DEFAULT_WRITE_SCHEMALOCATION for schema
+ location in writing.
+
+- mctruth:
+
+ - Use G4String type consistently throughout the code, fixing reported
+ Coverity defects.
+
+
+
+
+Physics lists
+
+- Constructors:
+
+ - electromagnetic:
+
+ - New constructor G4ChargedUnknownParticle, to be used on top on any
+ reference physics list, to assign ionisation and multiple scattering
+ (as well as transportation) processes to charged primary particles
+ with valid PDG code but not known to Geant4.
+ - G4ChargedUnknownPhysics: replaced G4hIonisation and
+ G4hMultipleScattering (which use G4ParticleDefinition) with the
+ corresponding new classes G4DynamicParticleIonisation and
+ G4DynamicParticleMSC (which use only G4DynamicParticle),
+ respectively.
+ - G4EmStandardPhysicsWVI: return back ATIMA model for ionisation and
+ fluctuations of ions in order to make comparisons with other
+ models.
+ - G4EmStandardPhysics_option3: return back step limit type to
+ fUseDistanceToBoundary and the default RangeFactor from
+ 0.03 to 0.04. This will allow to restore more
+ accurate distributions for several medical benchmark tests.
+ - G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
+ G4EmLivermorePhysics, G4EmLivermorePhysics, G4EmDNAPhysics: use
+ fAllisonPositronium type of model for sampling of positron
+ annihilation at rest (as in release 11.2).
+ - G4EmStandardPhysics_option4: use alternative model for positron
+ annihilation on fly with 3-gamma annihilation channel enabled.
+ - G4EmStandardPhysics_option4, G4EmLivermorePhysics,
+ G4EmStandardPhysics, G4EmStandardPhysicsWVI: added possibility to
+ enable/disable 3 gamma annihilation on fly; take into account
+ rename of the model G4eplusTo2GammaOKVIModel to G4eplusTo2or3GammaModel.
+ By default it is enabled in G4EmStandardPhysics_option4 only.
+ This option is not added to G4EmPenelopePhysics as here the
+ original Penelope model for annihilation is used instead.
+ - G4GammaGeneralProcess: updated according to change in EM data
+ tables.
+ - G4EmDNAPhysics: define default maximum kinetic energy 600 MeV
+ instead of 300 MeV in order to have standard ionisation
+ and multiple scattering always defined for DNA physics
+ configurations.
+ This allows to avoid situations when low-energy ions pass through
+ DNA regions without interaction.
+ - G4EmDNAPhysics, G4EmDNAPhysicsActivator, G4EmDNAPhysics_option2,
+ G4EmDNAPhysics_option4, G4EmDNAPhysics_option6 and
+ G4EmDNAPhysics_option8: changed upper limit for DNA physics of
+ Helium ions from 300 MeV to 400 MeV.
+ - G4EmDNABuilder: added nuclear stopping process for G4GenericIon
+ below 1 MeV/u.
+ - Use EmParameters to control chemistry models in
+ G4EmDNAChemistry_option3.
+ - Modified the molecule names of OH, HO2, O in MoleculeDefinition.
+ Each molecule configuration has a molecule definition.
+
+ - decay:
+
+ - G4UnknownDecayPhysics: extended to newly introduced
+ G4ChargedUnknownParticle.
+
+ - factory:
+
+ - G4PhysicsConstructorRegistry: fixed memory leak at exit, adopting
+ G4ThreadLocalSingleton pattern.
+ - Minor code cleanup in G4PhysicsConstructorRegistry source.
+
+ - gamma_lepto_nuclear:
+
+ - Added new G4CoherentPairProductionPhysics class, related to the
+ process G4CoherentPairProduction of coherent pair production by
+ high energy gamma in an oriented crystal.
+
+ - hadron_elastic:
+
+ - Added self registration of G4ThermalNeutrons with the constructor
+ factory.
+
+ - hadron_inelastic:
+
+ - G4HadronPhysicsQGSP_BERT_HP: use alternative NuDEX model of
+ gamma de-excitation.
+ - Introduced new class G4URRNeutrons to enable the special treatment
+ of the Unresolved Resonance Region (URR) via Probability Tables (PT)
+ for low-energy neutrons. It can be used on top of any _HP or _HPT
+ physics list. Updated internal README.
+
+ - ions:
+
+ - Updated description in G4LightIonQMDPhysics and internal README.
+
+ - limiters:
+
+ - Fixed reported Coverity defect in G4FastSimulationPhysics and in
+ G4GenericBiasingPhysics, to use const G4String& and
+ std::move().
+
+
+- Lists:
+
+ - Added HPT extension to support adding G4ThermalNeutrons to
+ extensible physlist factory.
+ - Changed how base phylist matching is done in G4PhysListRegistry in
+ order to support _HP lists and new _HPT extension;
+ requires match to be exact or the remaining part start with _
+ or +.
+ - G4PhysListRegistry: fixed compilation on XCode for implicit type
+ conversion. Minor code cleanup (use of nullptr, G4bool,
+ std::size_t, singleton instance initialisation). Initialise
+ the instance only the first time it gets created.
+ - G4PhysListFactory: use std::size_t.
+
+- Util:
+
+ - Static initialisation improvement for G4HadParticles.
+
+
+
+
+Readout
+
+- Fixed reported Coverity defects, use consistently const G4String&
+ to avoid implicit copy.
+
+
+
+Run
+
+- Tuned verbose levels to reduce printouts during event loop.
+- First full implementation of of sub-event parallelism, adding the
+ creation and processing of sub-events in workers, plus the merging
+ of results back into events on the main thread.
+ No impact of the core changes needed to support sub-event parallelism in
+ any other mode (Seq, MT, Tasking) other than some counting aspects with
+ retained events.
+- Set number of random numbers generated as the seeds of workers for
+ sub-event level parallelism.
+- Defined UI alias representing the run mode [sequential, eventParallel,
+ subEventParallel]. This alias can be used in macro file.
+- G4RunManagerFactory: added sub-event parallel mode as an option.
+- G4RunMessenger: added a command for trajectory merging in sub-event
+ parallel mode.
+- G4SubEvtRunManager, G4WorkerRunManager, G4WorkerSubEvtRunManager: added an
+ option to merge trajectories created by worker threads in sub-event parallel
+ mode.
+- Fix in G4WorkerTaskRunManager and G4TaskRunManager, to process only
+ NumberOfEventsPerTask. Before this change, each thread would
+ process all its events in a single task since
+ GetNumberOfEventsToBeProcessed() returns the number of all events
+ in the run. All other tasks would immediately return because no work is
+ left.
+- Fixed static memory leak of process and tracking managers in worker threads.
+- Provide static initialization for masterWorlds in G4MTRunManager.
+ Adapted G4SubEvtRunManager and G4TaskRunManager accordingly.
+- G4RunManagerKernel, G4RunManager, G4SubEvtRunManager: cleanly delete G4Event
+ objects at the end of each run as long as these events are not requested to
+ be kept for redrawing during the following Idle state.
+ The kept events are deleted at the beginning of next run or at program
+ termination.
+- G4Run: added GetNumberOfKeptEvents() method.
+- Extended diagnostics and output from material scanner.
+- Added call in G4WorkerRunManager to use parallel initialisation of
+ voxels.
+- In G4RunManager, in ReinitializeGeometry(), added call to new
+ function from G4FieldBuilder Reinitialize().
+- G4RunManagerKernel: removed call to ResetNavigator() during
+ initialisation. ResetNavigator() is now invoked only at the
+ beginning of BeamOn().
+- G4PhysicsListHelper: added DNATripleIoni and
+ DNAQuadrupleIoni for the implementation of multiple-ionisation
+ processes in Geant4-DNA. Added XrayReflection (fGammaReflection).
+- G4RunManager: added SetDefaultClassification() methods to enable
+ setting the classification for tracks newly arriving to a stack.
+- Access G4GeometryManager singleton through its GetInstance() call
+ in G4RunManagerKernel and G4WorkerRunManager.
+- Updated G4AdjointSimManager and G4AdjointSimMessenger to allow running
+ adjoint simulation in MT mode.
+- Removed use of no longer supported TiMemory.
+- Fixed compilation warnings for implicit type conversions on macOS/XCode
+ on G4MSSteppingAction. Use consistently G4 types.
+- Fixed reported Coverity defects: in G4MSSteppingAction for restoring
+ original stream format state; in G4RunManager and others, for use of
+ std::move() and restructured conditionals. Also fixes in
+ G4Task/SubEvtRunManager.
+- Updated G4TaskRunManager for changes to underlying PTL-3.0.0 API.
+ No changes to behaviour expected.
+
+
+
+Track & Tracking
+
+- Added optional copy of touchable when copy constructing a G4Track, to
+ support sub-event level parallelism.
+- G4Trajectory and G4TrajectoryPoint: added CloneForMaster() method
+ for merging trajectories created by worker thread in sub-event parallel
+ mode. Refined by introducing G4ClonedTrajectory
+ and G4ClonedTrajectoryPoint classes for clean and safe use of G4Allocator.
+ Also added G4ClonedSmoothTrajectory and G4ClonedSmoothTrajectoryPoint.
+- G4RichTrajectory and G4RichTrajectoryPoint are modified to directly
+ inherit G4VTrajectory and G4VTrajectoryPoint abstract base-classes to
+ avoid double use of G4Allocator. Added G4ClonedRichTrajectory and
+ G4ClonedRichTrajectoryPoint classes.
+- Some code cleanup, providing more easy reading of class headers; expected
+ tiny CPU speedup; identical results.
+- G4Track, G4Step, G4StepPoint: some code cleanup; improved comments.
+- G4Step: move methods to compute delta energy and momentum to inline
+ removing G4Exception but improving comments to these methods; removed
+ G4ThreadLocal variable.
+- G4VParticleChange: improved layout of variables.
+- G4ParticleChangeForGamma, G4ParticleChangeForLoss: reserve vector of
+ secondaries.
+- Fixed reported Coverity defects for use of std::move() in
+ G4AdjointCrossSurfChecker.
+- Removed use of no longer supported TiMemory.
+
+
+
+Visualization
+
+- General
+
+ - Fixed reported Coverity defects.
+
+- Management
+
+ - Rationalisation, simplification and code tidying.
+
- Updated visualisation manager to correctly merge/handle asynchronous
+ event merging (also resolving long standing issues with post
+ processing). Implemented EventReadyForVis(), used by
+ G4SubEvtRunManager; restructured EndOfEvent functions to accommodate
+ this and avoid code duplication; this involved introducing:
+ Relinquishable, EndOfEventKernel and
+ EndOfEventCleanup.
+ - Corrected the use of KeepForPostProcessing/PostProcessingFinished.
+ - G4VisExecutive: restored OpenGL as default backend for Qt6.
+ - Improved identification of scene tree models: use full description,
+ including embedded blanks.
+ - G4VViewer: check validity of arguments in SceneTreeScene constructor.
+ Pre-calculate quantities in SceneTreeScene constructor; pre-calculate
+ the number of touchable; if more than 10000, suppress them in the
+ scene tree and add some information about it to the model item so that
+ it pops up as a tooltip in the GUI.
+ More logical order of some functions.
+ - G4VSceneHandler: specify the G4PhysicalVolumeModel for construction
+ of scene tree. Simplified loop over models, added some printing.
+ Print number of touchable by depth (if verbosity >= confirmations).
+ Print problematic volumes (if verbosity >= confirmations).
+ In DrawEvent(), DrawEndOfRunModels(), check if viewer is
+ ReadyToDraw() at begin of method.
+ Moved some printing outside the loop over models.
+ - Limit the number of scene tree items. For complex geometries, the scene
+ tree can take up a lot of space, and, anyway, not easy to navigate.
+ Now suppressing the scene tree if the number of touchable exceeds
+ 10000 (equivalent to about 20 MB).
+ - G4VisCommandsViewer: use GetSceneTree() rather than
+ AccessSceneTree() when not necessary. Simplified use of view
+ parameters of a pre-existing viewer; use the parameters of the most
+ recent viewer whatever its type in /vis/viewer/create.
+ Exclude GlobalMarkerScale from parameters copied from pre-existing
+ viewer, thus each viewer is allowed to specify its own
+ GlobalMarkerScale.
+ - In G4VisExecutive, trap use of run-time visualisation driver choice,
+ and (if using run-time choice) insist the UI session is instantiated
+ *before* G4VisExecutive.
+ Keep argc, argv and user-specified system, if specified, for
+ delayed use. Moved informational (G4warn) from G4VisManager.
+ Removed duplicate instantiation of TOOLSSG_OFFSCREEN.
+ Removed inclusion of QtGlobal header, no longer needed.
+ - Delay determination of the run-time-chosen default driver.
+ The run-time-chosen default driver is not actually used until the first
+ use of /vis/open or /vis/sceneHandler/create without
+ driver parameter, so we delay to this point. This catches the situation
+ when the user instantiates the UI session *after* instantiating the
+ vis manager.
+ - G4VisManager: make GetDefaultGraphicsSystemName() virtual and
+ non const.
+ The code for choosing a default driver *has to be* in user space, i.e.,
+ in G4VisExecutive, so that it has access to use flags. Modified the
+ informational (G4warn) in PrintAvailableGraphicsSystems()
+ to give advice and point to further information to be given after
+ /vis/open.
+ Protected Begin/EndOfRun() against invalid view (includes
+ check on existence of a scene). Some tidying and streamlining.
+ Introduced local Booleans isValidViewForRun and isFakeRun.
+ Introduced PrintAvailableVerbosity().
+ In GetVerbosityValue(), print verbosity options on unknown
+ or empty argument. Call PostProcessingFinished() for _every_
+ event in EndOfEventCleanup().
+ Fixed "accumulate" bug in Serial mode, and other small improvements.
+ Improved printing of colours in PrintAvailableColours() and
+ advise on use. Rationalised code and tyding.
+ Protect KeepForPostProcessing() mutex lock;
+ KeepForPostProcessing() is called on a worker thread,
+ PostProcessingFinished() is called on the vis sub-thread,
+ so should be protected.
+ - G4VisManager, G4VisCommandsSceneAdd: optimised timing of G4Event for
+ KeepForPostProcessing() and PostProcessingFinished()
+ so that event object that are not requested to be kept are cleanly
+ deleted at the end of each run. Kept events are deleted at the
+ beginning of the next run or when the program terminates.
+ Use GetNumberOfKeptEvent() from G4Run to properly display
+ the number of kept events.
+ - G4VisCommandsTouchable: /vis/touchable/dump and findPath
+ do not need a scene handler nor a viewer.
+ Moved them to the beginning of SetNewValue() in
+ G4VisCommandsTouchable, before the check on scene handler and viewer.
+ This allows the user to /vis/touchable/dump even if not yet
+ opened a viewer.
+ - G4VisCommands: in /vis/list, added printing of verbosity
+ options. In /vis/verbose, changed default value to empty
+ string.
+ - G4VisCommandsSceneAdd: date and time are updated for every event
+ displayed. Ensure the logo respects the current requested
+ number of sides per circle in /vis/scene/add/logo.
+ - G4VViewer: added virtual ReadyToDraw(), helps avoiding a
+ crash on macOS if doing /run/beamOn in vis.mac at startup.
+ - G4ViewParameters: minor improvements to messages in output
+ operator<<().
+ - Introduced TOOLS_USE_FREETYPE flag in vis management for /vis/plot
+ UI command. In G4VisCommandsCompound, if TOOLS_USE_FREETYPE is set,
+ augment /vis/plot UI command to take style argument.
+ - Removed use of G4MULTITHREADED symbol where not required, using
+ runtime checks as far as possible.
+
+- Modeling
+
+ - G4PhysicalVolumeModel: added data field TotalTouchables and
+ access functions. Code indentation.
+ - G4TextModel: use single quote (') to delineate actual text in
+ description.
+ - G4TrajectoryDrawByEncounteredVolume, G4TrajectoryEncounteredVolumeFilter:
+ replaced check on trajectory type using dynamic_cast with a
+ simple check on the existence on the required G4Att.
+
+- OpenGL
+
+ - In G4OpenGLQtViewer, fixed MT issue of possible dead-lock in case
+ multiple OGLI or OGLS viewers are enabled and when issuing
+ /run/beamOn. Restored picking feature for Qt6 and implemented
+ 2D draw text in DrawText().
+ Resolved the timing issues around switching to the vis sub-thread with
+ the use of G4CONDITIONWAITLAMBDA.
+ - G4OpenGLQtViewer: fixed potential compilation error in
+ currentTabActivated(). Addressing problem report
+ #2633.
+ - In G4OpenGLImmediateQtViewer and G4OpenGLStoredQtViewer, removed usage
+ of paintEvent() for Qt6, paintGL() should be
+ sufficient. For updateQWidget, use update() to trigger a
+ repaint. In Initialise() check validity of widget type, to
+ avoid observed crash at startup on macOS; do the same in
+ ClearView(), SetView().
+ - Fix in G4OpenGLImmediateQtViewer for Qt6 for producing animation when
+ issuing /vis/viewer/interpolate viewfiles/movie-1.
+ - G4OpenGLStoredQtSceneHandler: in ClearStore(), commented out
+ some code related to the old scene tree.
+ - Fixed small memory leak in G4OpenGLQtViewer in DrawText().
+ - Fixes for Qt5 and Qt6 to avoid a crash in case of /run/beamOn
+ is called in vis.mac at startup.
+ - Use runtime checks for MT mode where possible.
+ - Make headers of implementation detail classes private.
+
+- OpenInventor
+
+ - G4OpenInventorQtViewer: in Qt6, reparent G4OpenInventorQtExaminerViewer
+ in its own QWidget, allowing to restore correct behaviour when opening
+ multiple viewers. Properly handle viewer destruction.
+ Have addInTab done in Initialise() method. Avoid to
+ do an examiner viewer "move/resize" in Initialise() method,
+ as causing strange widget rendering behaviour.
+ - In G4OpenInventorQtExaminerViewer, allow with Qt6 to map a dialog in
+ case being closed with the mouse. Have the title window reflecting the
+ name of the viewer. In MT mode, fixed behaviour when issuing multiple
+ /run/beamOn commands within multiple viewers.
+ - Make headers of implementation detail classes private.
+
+- Qt3D
+
+ - Added missing call to fpPhysicalVolumeObjects.clear() in
+ EstablishG4Qt3DQEntities() in G4Qt3DSceneHandler. Fixes
+ cases of crash when opening multiple viewers with "/vis/open Qt3D".
+ - In G4Qt3DViewer destructor, call setRootEntity(nullptr) to
+ disconnect the scene from a viewer.
+ Fixed timing issues around switching to the vis sub-thread
+ with the use of G4CONDITIONWAITLAMBDA.
+ - In G4Qt3DSceneHandler destructor, clear the scene tree.
+ - In G4Qt3DViewer, implemented resizeEvent() method to avoid
+ a bad aspect ratio at viewer creation. Fixes for Qt5 and Qt6 to avoid
+ a crash in case of /run/beamOn is called in vis.mac at startup.
+
+- ToolsSG
+
+ - Replace TOOLSSG vis driver variables that are just synonyms for more
+ fundamental config options (e.g. GEANT4_USE_QT) with the underlying
+ variable.
+ - Use runtime checks for MT mode where possible.
+ - Make Freetype a private dependency in CMake script.
+
+- Vtk
+
+ - In G4VtxQtViewer, fixed MT issue of possible dead-lock in case multiple
+ Vtk viewers are enabled and when issuing /run/beamOn.
+ Fixed timing issues around switching to the vis sub-thread
+ with the use of G4CONDITIONWAITLAMBDA.
+ In DoneWithVisSubThread(), SwitchToMasterThread() protect
+ against a possible null context; fixing crash in case of doing
+ /run/beamOn in vis.mac at startup.
+
+
+
+
+Data sets
+
+- Updated photon evaporation data set version, G4PhotonEvaporation-6.1:
+
+ - New database compliant with ENSDF version of March 5th 2024.
+
+- Updated radioactive decay data set version, G4RadioactiveDecay-6.1.2:
+
+ - New database compliant with ENSDF version of March 5th 2024.
+ - Corrected and checked files for neutron, proton and sp. fission.
+ Restored some files from 5.7 set, that were already corrected in the
+ past following user comments or from DDEP data.
+ - Fixed z2.a5 and z3.a5 elements and updated README.
+
+- Updated aata set of nuclides state properties version, G4ENSDFSTATE-3.0:
+
+ - New database compliant with ENSDF version of March 5th 2024.
+
+- Updated version of data set for neutron energies, G4PARTICLEXS-4.1:
+
+ - Updated data for all isotopes, for neutron, proton and light ion
+ cross-sections. Fixed cross-sections for Argon, Promethium, Astatine,
+ Radon, Francium. Fixed low-energy cross-section; low-energy limits of
+ cross-sections per target are verified and updated based on neutron
+ data.
+
+- New data set for the simulation of channeling trajectories,
+ G4CHANNELINGDATA-1.0:
+
+ - New data set for the simulation of channeling trajectories. Includes
+ the properties of the crystal lattice of a certain material and in a
+ certain crystallographic direction (along either crystal planes or axes).
+ References:
+ A. A. Samarskii and A. V. Gulin, Numerical Methods (Nauka, Moscow, 1989).
+ G. I. Marchuk, Methods of Numerical Mathematics (Springer-Verlag, 1975).
+ V. N. Baier, V. M. Katkov, and V. M. Strakhovenko, Electromagnetic
+ Processes at High Energies in Oriented Single Crystals (W.Scientific, 1998).
+
+- New optional data set for NuDEX hadronic model, G4NUDEXLIB-1.0:
+
+ - New [optional] dataset required to enable the NuDEX hadronic model
+ (E. Mendoza et al., NIMA 1047, 167894 (2023)
+ https://doi.org/10.1016/j.nima.2022.167894).
+ Including: data file with general parameters used by NuDEX; data tables
+ to get internal conversion factors, obtained from BrICC; nuclear level
+ schemes and densities downloaded from the RIPL-3 data library; files
+ containing primary capture gamma rays, obtained from ENSDF; photon
+ strength function parameters, obtained from RIPL-3 and from the IAEA
+ Photon Strength Function Database; folder to change the default
+ parameters for the decay of specific nuclei.
+
+- New optional data set for the treatment of low-energy neutrons, G4URRPT-1.1:
+
+ - New [optional] Probability Table dataset, used for the treatment of
+ low-energy neutrons in the Unresolved Resonance Region (URR), at
+ temperature of 293.15 K, processed with both NJOY and CALENDF.
+ As described in: M. Zmeskal et al., Comp.Phys. arXiv:2404.16389.
+
+
+
+
+Examples
+
+- Updated reference outputs, macros, READMEs and scripts.
+- Fixes for Doxygen documentation and coding guidelines.
+- Updated URL for schema validation in all GDML files to valid short address.
+- Applied clang-format to basic and extended examples.
+- advanced
+
+ - Created a new dna category for DNA advanced examples.
+ Moved moleculardna example from extended to advanced.
+ - dna/cellularPhantom
+
+ - New application showing how to simulate the irradiation of a 3D
+ voxel phantom containing biological cells, created from a confocal
+ microscopy 24-bit RGB image.
+ Reference: P. Barberet et al., "Monte-Carlo dosimetry on a realistic
+ cell monolayer geometry exposed to alpha-particle", Phys. Med. Biol.
+ 57 (2012) 2189-2207.
+
+ - dna/dsbandrepair
+
+ - Use EmParameters to control chemistry time step model.
+ - Modified the molecule names of OH, HO2, O in MoleculeDefinition.
+ Each molecule configuration has a molecule definition.
+ - General code cleanup; merged classes that have the same
+ functionality in PhysStage and ChemStage.
+
+ - dna/moleculardna:
+
+ - Modified the molecule names of OH, HO2, O in MoleculeDefinition.
+ Each molecule configuration has a molecule definition.
+ - Added plasmid geometry.
+ - Added missing plasmid analysis root macro file.
+ - Added chromosomal geometry related files.
+ - Updated /dnageom/interactionDirectRange to
+ 2.0 angstrom.
+ - Modification of TimeStepModel interface.
+ - Use the physico-chemistry builder.
+ - Fixed bug in DNAGeometryMessenger.
+
+ - eFLASH_radiotherapy
+
+ - Added FlashPhysicsListMessenger class to allow changing the physics
+ list by macro commands (opt3, opt4, Penelope and Livermore).
+ - Removed unused includes of analysis headers from FlashRunAction.
+ - Added a new geometry in DetectorConstruction; added an array of
+ multiple small size silicon carbide detectors within the water
+ phantom for dose distribution computation.
+ - Added sensitive detector class for the silicon carbide array.
+ - Updated macro files.
+
+ - eRosita
+
+ - Avoid deleting anything after deletion of run-manager in
+ main().
+
+ - exp_microdosimetry
+
+ - Added SiC microdosimeter geometry in DetectorConstruction.
+
+ - fastAerosol
+
+ - Updated for changes in accumulables: use new Register()
+ method with shorter name.
+
+ - hadrontherapy
+
+ - Updated main(), input macros, physics list, run action
+ and passive proton beamline: general code cleanup, bug fixing and
+ readability improvements.
+ - Updated for changes in accumulables: use new Register()
+ method with shorter name.
+
+ - STCyclotron
+
+ - Removed unused includes of analysis headers from STCyclotronRunAction.
+
+ - xray_telescope
+
+ - Removed unnecessary use of G4VisManager and some UI commands
+ fixing stability problems.
+
+
+- basic
+
+ - Simplified and modernized CMake scripts for all basic examples.
+ - B1
+
+ - Updated for changes in accumulables: use new Register()
+ method with shorter name.
+
+ - B3
+
+ - Looping over G4THitsMap via range for loop instead of iterators.
+ - Updated for changes in accumulables: use new Register()
+ method with shorter name.
+
+
+- extended
+
+ - biasing
+
+ - GB06
+
+ - Avoid call to static volumes store in DetectorConstruction class.
+
+
+ - electromagnetic
+
+ - TestEm0
+
+ - DetectorConstruction: introduced Xenon gas.
+ - Added new macro xenonGas.mac.
+
+ - TestEm1
+
+ - Run, EventAction, TrackingAction, HistoManager: compute and
+ plot energy leakage.
+
+ - TestEm4
+
+ - PhysicsLists: fixed annoying warnings on decay table;
+ removed obsolete methods.
+ - Run: code cleanup; removed Tabs.
+
+ - TestEm5
+
+ - TrackingAction: added protection against wrong argument of
+ std::acos(), rarely happening for very high energy
+ projectile particles.
+
- Removed macro subcut.mac.
+
+ - TestEm7
+
+ - RunAction: added protection to histogram binning for very
+ low step limit.
+
+ - TestEm11
+
+ - TrackingAction: in energy leakage, added special treatment
+ for positron.
+
+ - TestEm12
+
+ - Added comments to dna.mac input macro.
+
+ - TestEm15
+
+ - SteppingAction: code cleanup; removed Tabs.
+
+
+ - eventgenerator
+
+ - exgps
+
+ - Updated build script for CTests definitions.
+
+ - pythia/py8decayer
+
+ - Updated to Pythia8.3.10 for testing.
+ - Added Py8DecayerEngine to override Pythia8 native engine with
+ the default one from Geant4 (CLHEP), to properly run in the
+ MT/Tasking mode.
+ - Updated main() to use MT mode; some code cleanup.
+
+ - HepMC/HepMCEx01
+
+ - Avoid deleting anything after deletion of run-manager in
+ main().
+
+
+ - exoticphysics
+
+ - Introduced 'channeling' examples category, created 'ch0' example
+ out of original example and added 'ch1', ch2' and 'ch3' examples.
+ - channeling
+
+ - ch1
+
+ - An easy demonstration of the minimum requirements necessary
+ to integrate the G4ChannelingFastSimModel and the
+ G4BaierKatkov model into a project in order to simulate the
+ physics of channeling and channeling radiation/coherent
+ bremsstrahlung.
+
+ - ch2
+
+ - An enhanced version of ch1, providing the user with the
+ full functionality of both demonstrated models, with
+ parameters set up via a macro.
+
+ - ch3
+
+ - New example demonstrating the minimum requirements necessary
+ to integrate the G4CoherentPairProduction process into a
+ project, along with the demonstrated models, to simulate
+ the physics of electromagnetic showers in an oriented
+ crystal.
+
+
+ - phonon
+
+ - Updated build script for CTests definitions.
+
+
+ - field
+
+ - Replaced FieldSetup and FieldMessenger classes with usage of new
+ field builder class G4FieldBuilder.
+ - Moved setting field value (ThreeVector) from FieldSetup (now
+ removed) in DetectorConstruction and its messenger and removed
+ setting of Z-value only.
+ - field01
+
+ - Use default Tasking run-manager from G4RunManagerFactory.
+ - Use default random number generator.
+ - Use GeometryHasBeenModified() in place of
+ ReinitializeGeometry() in DetectorCostruction
+ UI commands implementation, for thread safety.
+
+ - field02
+
+ - Migrated to use G4RunManagerFactory.
+ - Use default random number generator.
+ - Use GeometryHasBeenModified() in place of
+ ReinitializeGeometry() in DetectorCostruction
+ UI commands implementation, for thread safety.
+
+ - field03
+
+ - Migrated to use G4RunManagerFactory.
+ - Use default random number generator.
+ - Simplified F03DetectorConstruction() constructor.
+ - Use GeometryHasBeenModified() in place of
+ ReinitializeGeometry() in DetectorCostruction
+ UI commands implementation, for thread safety.
+
+ - field04
+
+ - Migrated to use G4RunManagerFactory.
+ - Use default random number generator.
+ - Avoid use of G4AutoDelete for G4StepMax, as clashing with
+ thread-local singletons deletion operated by G4TaskingRunManager.
+ - Use GeometryHasBeenModified() in place of
+ ReinitializeGeometry() in DetectorCostruction
+ UI commands implementation, for thread safety.
+
+ - field05
+
+ - Migrated to use G4RunManagerFactory.
+ - Use default random number generator.
+
+ - field06
+
+ - Use default random number generator.
+
+
+ - hadronic
+
+ - FlukaCern
+
+ - Fixed leakeage issue in fluka_interface; should not propagate
+ the track/projectile's direction from Geant4 to the event
+ generator, as the transformation of the final state is already
+ performed in Geant4. The Fluka event generator shall hence
+ work in Geant4 local frame, while Geant4 is in charge of
+ transforming the final state back to the lab.
+ - Fixed headers re-rodering by clang-format.
+
+ - Hadr01
+
+ - Enable usage of the NUDEX library for QGSP_BERT_HP physics
+ in main().
+
+ - Hadr03
+
+ - PrimaryGeneratorAction: added tiny shift of position of the
+ particle gun from the world volume boundary; fixing a warning
+ now detecting this.
+ - PhysicsList: removed G4RadioactiveDecayPhysics.
+ - Updated fusion.mac input macro.
+
+ - Hadr05
+
+ - PrimaryGeneratorAction: added tiny shift of position of the
+ particle gun from the world volume boundary; fixing a warning
+ now detecting this.
+ - RadioactiveDecayPhysics: added Triton.
+ - Applied coding rules.
+
+ - Hadr07
+
+ - RadioactiveDecayPhysics: added Triton.
+ - Applied coding rules.
+
+ - NeutronSource
+
+ - PhysicsList: added G4HadronElasticPhysicsXS.
+ - RadioactiveDecayPhysics: added Triton.
+ - GammaNuclearPhysics, GammaNuclearPhysicsLEND: applied coding
+ rules.
+
+
+ - medical/dna
+
+ - Moved 'moleculardna' example from extended to advanced examples
+ module.
+ - chem1:
+
+ - Changed world volume colour to make it different
+ from the white background.
+
+ - chem3:
+
+ - Updated TimeStepAction and added function to show how to get
+ a specific species ID, positions at each time step.
+
+ - chem4:
+
+ - Corrected molecule name in macro file.
+
+ - chem6:
+
+ - Use EmParameters to control chemistry models.
+ - Added /process/chem/TimeStepModel IRT UI command
+ in macro file beam_HCP.in.
+ - Corrected molecule name in macro file.
+
+ - dnadamage1:
+
+ - Fixed compilation errors on macOS/clang with C++23 enabled.
+
+ - dnadamage2:
+
+ - Modified molecule names of OH, HO2, O in MoleculeDefinition.
+ Each molecule configuration has a molecule definition.
+ - Use G4ChemDissociationChannels_option1 builder to avoid
+ duplication.
+
+ - dnaphysics:
+
+ - PhysicsList: switched to DNA physics constructors i/o model
+ activator.
+ - Updated DetectorConstructor and DetectorMessenger files with
+ given values of material density and World size.
+ - Added messenger for World size change.
+ - Added messenger for material density change.
+ - Added new n-tuple to collect track information.
+ - Added plotDeexcitation.C analysis and deexcitation.in macro.
+ - Updated comments in headers.
+
+ - mfp:
+
+ - Added auto to plot.C. Code cleanup.
+
+ - microdosimetry:
+
+ - Removed original content of the example; replaced by dnaphysics
+ example.
+ - Code simplification to demonstrate the usage of
+ G4DNAPhysicsActivator.
+
+ - microprox:
+
+ - microyz:
+
+ - range:
+
+ - Added auto to plot.C. Code cleanup.
+
+ - scavenger:
+
+ - Modified the molecule names of OH, HO2, O in MoleculeDefinition.
+ Each molecule configuration has a molecule definition.
+
+ - slowing:
+
+ - Added auto to plot.C. Code cleanup.
+
+ - spower:
+
+ - SteppingAction: extended use for ions heavier than helium.
+
- In spower.in input macro, added extra commands to show how
+ to shoot ions heavier than helium.
+ - Code cleanup.
+
+ - svalue:
+
+ - Added auto to plot.C. Code cleanup.
+
+ - UHDR:
+
+ - Updated bounce off condition based on:
+ Karamitros M. et al.2020,arXiv:2006.14225 (2020).
+ - Implemented PBC based on
+ https://github.com/amentumspace/g4pbc
+ to calculate microdosimetry.
+ - Modified the molecule names of OH, HO2, O in MoleculeDefinition.
+ Each molecule configuration has a molecule definition.
+ - Added a maximum dose (2 times of cut-off dose) to abort the
+ event.
+ - Updated visualization mode for physical stage.
+ - Fixed compilation errors on macOS/clang with C++23 enabled, for
+ incomplete types of smart-pointers through defaulted destructors.
+
+ - wvalue:
+
+ - Added auto to plot.C. Code cleanup.
+
+
+ - medical/fanoCavity
+
+ - Make PhysicsLists of the example coherent with physics_list library.
+ Fixed annoying warnings on decay table.
+
+ - medical/fanoCavity2
+
+ - Make PhysicsLists of the example coherent with physics_list library.
+
+ - medical/radiobiology
+
+ - Updated for changes in accumulables: use new Register()
+ method with shorter name.
+
+ - parallel
+
+ - Removed obsolete TopC example.
+ - MPI
+
+ - Updated build script for CTests definitions.
+
+ - ThreadsafeScorers
+
+ - Removed use of no longer supported TiMemory.
+
+
+ - parameterisations
+
+ - gflash/gflasha
+
+ - ExGflashHistoManager: fixed initialisation of fVerbose.
+ - Bigger calo length, radial histos in fraction of radius Moliere;
+ fixed index range.
+ - Restored setMat() functionality; added geometry
+ commands.
+ - Moved event generator defaults from vis.mac to PrimaryGenerator
+ class.
+ - Updated macro files and code cleanup.
+
+ - Par04
+
+
+ - polarisation/Pol01
+
+ - Updated for changes in accumulables.
+
+ - radioactivedecay
+
+ - Activation
+
+ - PhysicsList: added G4HadronElasticPhysicsXS.
+ - RadioactiveDecayPhysics: added Triton.
+ - GammaNuclearPhysics, GammaNuclearPhysicsLEND: applied
+ coding rules.
+
+ - rdecay01
+
+ - PhysicsList: set MeanLifeThreshold to 1 nanosecond.
+ - Added time windowed biasing to rdecay01.in macro.
+ - In timeWindowBiased.mac and rdecay01.in, removed
+ /process/had/rdm/BRbias.
+
+
+ - runAndEvent
+
+ - RE03
+
+ - Adding ability to run in sub-event parallel mode.
+
+ - RE05
+
+ - Avoid deleting anything after deletion of run-manager in
+ main().
+ - Modified exampleRE05.in macro to temporarily disable use
+ of the HEPEvt interface, pending event data update.
+
+ - RE07
+
+ - Fixed compilation warnings for potentially initialised local
+ variable in EmStandardPhysicsTrackingManager in
+ PostStepDoIt().
+ - Fixed compilation warning on clang-19.
+
+
+
+ - vidualization
+
+ - standalone
+
+ - A smarter way of getting extent of geometry that ignores
+ invisible volumes. Thus, if the world is marked invisible,
+ it ignores it.
+ - In DrawGeometryVisAction: use G4PhysicalVolumeModel to
+ determine extent.
+ - In vis.mac, added some commands from B1 vis.mac macro,
+ to get a nice view.
+
+ - userVisAction
+
+ - Removed run1.mac and run2.mac macros, as not useful in this
+ example context.
+
+ - vtk
+
+ - Updated for changes in accumulables: use new Register()
+ method with shorter name.
+ - Removed unused macro vtkExample.in.
+
+
+
+
+
+
+
+
+
diff --git a/cmake/History b/cmake/History
index 5e9c1def58..81000224eb 100644
--- a/cmake/History
+++ b/cmake/History
@@ -6,6 +6,61 @@ It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
+## 2024-11-25 Ben Morgan (cmake-V11-02-30)
+- Bump RadioactiveDecay dataset version to 6.1.2
+ - Fixes Issue #237
+
+## 2024-11-19 Ben Morgan (cmake-V11-02-29)
+- Bump RadioactiveDecay dataset version to 6.1.1
+
+## 2024-11-08 Ben Morgan (cmake-V11-02-28)
+- Bump dataset versions:
+ - PhotonEvaporation 6.1
+ - RadioactiveDecay 6.1
+ - Fixes Issue 234
+
+## 2024-10-30 Ben Morgan (cmake-V11-02-27)
+- Ensure sanitizer flags are forwarded to the linker when using Xcode, and all
+ linker flags are forwarded to builds of tests done by geant4_add_test.
+ - Fixes Issue #227
+
+## 2024-10-02 Ben Morgan (cmake-V11-02-26)
+- Bump URRPT dataset version to 1.1
+ - Fixes Issue #228
+
+## 2024-09-25 Ben Morgan (cmake-V11-02-25)
+- Default GEANT4_INSTALL_PACKAGE_CACHE to OFF
+ - This file is highly unstable on macOS and SPack installs, and causes more problems
+ for most users than it solves.
+
+## 2024-09-24 Ben Morgan (cmake-V11-02-24)
+- Support running example build-and-run tests in Xcode
+ - Part of Issue #227
+
+## 2024-09-23 Gunter Folger (cmake-V11-02-23)
+- Bump dataset version:
+ - RadioactiveDecay 6.0.1
+ - Fixes Issue #226
+
+## 2024-09-19 Ben Morgan (cmake-V11-02-22)
+- Bump dataset versions:
+ - G4ENSDFSTATE 3.0
+ - PhotonEvaporation 6.0
+ - RadioactiveDecay 6.0
+ - Fixes Issue #224
+
+## 2024-08-28 Ben Morgan (cmake-V11-02-21)
+- Bump G4EMLOW dataset version to 8.6.1
+
+## 2024-08-27 Ben Morgan (cmake-V11-02-20)
+- Add new G4CHANNELING dataset to support channeling physics processes/models.
+
+## 2024-06-24 Ben Morgan (cmake-V11-02-19)
+- Simplify CMake/CTest functions and settings
+ - Move geant4_add_test function to dedicated module, retiring "UseGeant4_internal"
+ file
+ - Reduce oversetting of Geant4_DIR variable for use by tests
+
## 2024-06-07 Ben Morgan (cmake-V11-02-18)
- Add optional install of new URRPT data model
- Fixes Issue #217
diff --git a/cmake/Modules/G4BuildSettings.cmake b/cmake/Modules/G4BuildSettings.cmake
index be4b7cb7ef..4883a17505 100644
--- a/cmake/Modules/G4BuildSettings.cmake
+++ b/cmake/Modules/G4BuildSettings.cmake
@@ -271,7 +271,14 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|.*Clang")
# Add flags - longer term, make compile/link options
# frame pointer flag to get more meaningful stack traces
# May need others for better/reliable output
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=${GEANT4_BUILD_SANITIZER}")
+ set(__geant4_sanitizer_flags "-fno-omit-frame-pointer -fsanitize=${GEANT4_BUILD_SANITIZER}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${__geant4_sanitizer_flags}")
+ # Xcode does not forward CXX_FLAGS to the linker, and sanitizer link flags need propagating to final
+ # link steps
+ if(CMAKE_GENERATOR MATCHES Xcode)
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${__geant4_sanitizer_flags}")
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${__geant4_sanitizer_flags}")
+ endif()
geant4_add_feature(GEANT4_BUILD_SANITIZER "Compiling/linking with sanitizer '${GEANT4_BUILD_SANITIZER}'")
endif()
diff --git a/cmake/Modules/G4CTest.cmake b/cmake/Modules/G4CTest.cmake
index 7d59b854d2..ec30329f4a 100644
--- a/cmake/Modules/G4CTest.cmake
+++ b/cmake/Modules/G4CTest.cmake
@@ -14,10 +14,15 @@ if(GEANT4_ENABLE_TESTING)
# - Core CTest
enable_testing()
include(CTest)
+ include(G4TestAPI)
# - Geant4_DIR is needed to locate GeantConfig.cmake file required
- # by tests and examples
- set(Geant4_DIR ${PROJECT_BINARY_DIR} CACHE PATH "Current build directory")
+ # for tests and examples that are built as direct subprojects
+ # (as opposed to "build-and-test" type situations)
+ set(Geant4_DIR ${PROJECT_BINARY_DIR})
+
+ # - Base URL for test reference files
+ set(GEANT4_TEST_REFERENCES_URL "http://cern.ch/geant4-data/stt/references/")
# - Add datasets to testing environment
geant4_get_datasetnames(_dslist)
@@ -27,18 +32,13 @@ if(GEANT4_ENABLE_TESTING)
list(APPEND GEANT4_TEST_ENVIRONMENT ${_dsenvvar}=${_dspath})
endforeach()
- # - Add base URL for test reference files
- set(GEANT4_TEST_REFERENCES_URL "http://cern.ch/geant4-data/stt/references/" CACHE
- STRING "base URL for test reference files")
- mark_as_advanced(GEANT4_TEST_REFERENCES_URL)
-
- # - Add TOOLS_FONT_PATH if freetype enabled
+ # - Add TOOLS_FONT_PATH to testing environment if required
if(GEANT4_USE_FREETYPE)
list(APPEND GEANT4_TEST_ENVIRONMENT TOOLS_FONT_PATH=${PROJECT_SOURCE_DIR}/source/externals/g4tools/fonts)
endif()
# - Configure 'G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default)'
- # to use TBB
+ # to use TBB if required
if(GEANT4_BUILD_MULTITHREADED AND GEANT4_USE_TBB)
list(APPEND GEANT4_TEST_ENVIRONMENT G4RUN_MANAGER_TYPE=TBB)
endif()
diff --git a/cmake/Modules/G4ConfigureCMakeHelpers.cmake b/cmake/Modules/G4ConfigureCMakeHelpers.cmake
index 65c52a07f0..96afd42a39 100644
--- a/cmake/Modules/G4ConfigureCMakeHelpers.cmake
+++ b/cmake/Modules/G4ConfigureCMakeHelpers.cmake
@@ -206,12 +206,6 @@ configure_file(
COPYONLY
)
-configure_file(
- ${PROJECT_SOURCE_DIR}/cmake/Templates/UseGeant4_internal.cmake
- ${PROJECT_BINARY_DIR}/UseGeant4_internal.cmake
- COPYONLY
- )
-
#-----------------------------------------------------------------------
# - Generate Install Tree Configuration Files
#-----------------------------------------------------------------------
@@ -272,8 +266,9 @@ install(FILES
COMPONENT Development
)
-# Install the package settings file if required (always for now)
-option(GEANT4_INSTALL_PACKAGE_CACHE "Install file recording build-time locations of required packages" ON)
+# Install the package settings file if required
+# Default to OFF because it's a hand-holding solution that hinders more than helps.
+option(GEANT4_INSTALL_PACKAGE_CACHE "Install file recording build-time locations of required packages" OFF)
mark_as_advanced(GEANT4_INSTALL_PACKAGE_CACHE)
if(GEANT4_INSTALL_PACKAGE_CACHE)
install(FILES ${PROJECT_BINARY_DIR}/Geant4PackageCache.cmake
diff --git a/cmake/Modules/G4DatasetDefinitions.cmake b/cmake/Modules/G4DatasetDefinitions.cmake
index 31f62f4faf..97e66c84dc 100644
--- a/cmake/Modules/G4DatasetDefinitions.cmake
+++ b/cmake/Modules/G4DatasetDefinitions.cmake
@@ -18,31 +18,31 @@ geant4_add_dataset(
# - Low energy electromagnetics
geant4_add_dataset(
NAME G4EMLOW
- VERSION 8.6
+ VERSION 8.6.1
FILENAME G4EMLOW
EXTENSION tar.gz
ENVVAR G4LEDATA
- MD5SUM 080576674061a0649629649879655bb9
+ MD5SUM 9db67a37acc3eae9b0ffdace41a23b74
)
# - Photon evaporation
geant4_add_dataset(
NAME PhotonEvaporation
- VERSION 5.7
+ VERSION 6.1
FILENAME G4PhotonEvaporation
EXTENSION tar.gz
ENVVAR G4LEVELGAMMADATA
- MD5SUM 81ff27deb23af4aa225423e6b3a06b39
+ MD5SUM 92d68b937cdad0fd49892a66878863de
)
# - Radioisotopes
geant4_add_dataset(
NAME RadioactiveDecay
- VERSION 5.6
+ VERSION 6.1.2
FILENAME G4RadioactiveDecay
EXTENSION tar.gz
ENVVAR G4RADIOACTIVEDATA
- MD5SUM acc1dbeb87b6b708b2874ced729a3a8f
+ MD5SUM 20d494f73d4bddabd7fab5c06a58895c
)
# - Particle XS - replaces Neutron XS
@@ -109,11 +109,21 @@ geant4_add_dataset(
# - ENSDFSTATE
geant4_add_dataset(
NAME G4ENSDFSTATE
- VERSION 2.3
+ VERSION 3.0
FILENAME G4ENSDFSTATE
EXTENSION tar.gz
ENVVAR G4ENSDFSTATEDATA
- MD5SUM 6f18fce8f217e7aaeaa3711be9b2c7bf
+ MD5SUM c500728534ce3e9fb2fefa0112eb3a74
+ )
+
+# - Channeling
+geant4_add_dataset(
+ NAME G4CHANNELING
+ VERSION 1.0
+ FILENAME G4CHANNELING
+ EXTENSION tar.gz
+ ENVVAR G4CHANNELINGDATA
+ MD5SUM b2f692ec7109418c6354ea1ecbc62da7
)
# - TENDL
@@ -153,10 +163,10 @@ mark_as_advanced(GEANT4_INSTALL_DATASETS_URRPT)
if(GEANT4_INSTALL_DATASETS_URRPT)
geant4_add_dataset(
NAME G4URRPT
- VERSION 1.0
+ VERSION 1.1
FILENAME G4URRPT
EXTENSION tar.gz
ENVVAR G4URRPTDATA
- MD5SUM acc94698e4199455b4fac33c3384ccb4
+ MD5SUM ec9a2acb0745c8bfb6365ca3434bd3b8
)
endif()
diff --git a/cmake/Templates/UseGeant4_internal.cmake b/cmake/Modules/G4TestAPI.cmake
similarity index 89%
rename from cmake/Templates/UseGeant4_internal.cmake
rename to cmake/Modules/G4TestAPI.cmake
index 377ca9fa02..3fc94cf13b 100644
--- a/cmake/Templates/UseGeant4_internal.cmake
+++ b/cmake/Modules/G4TestAPI.cmake
@@ -1,10 +1,3 @@
-# - Internal Use file for Geant4
-# This file is designed for inclusion by the UseGeant4.cmake file, but
-# only in the build tree. It contains functions and macros that are only
-# intended to help in building the Geant4 tests.
-#
-# IT SHOULD NOT BE INSTALLED!
-
#-----------------------------------------------------------------------
# Special internal functions for building tests.
#-----------------------------------------------------------------------
@@ -23,11 +16,6 @@
# [LABELS label1 label2 ...])
#
function(geant4_add_test test)
- if(NOT CMAKE_PROJECT_NAME STREQUAL Geant4)
- message(WARNING "geant4_add_test is only for internal Geant4 usage, test '${test}' is disabled")
- return()
- endif()
-
cmake_parse_arguments(ARG
"DEBUG"
"TIMEOUT;BUILD;OUTPUT;ERROR;SOURCE_DIR;BINARY_DIR;PROJECT;PASSREGEX;FAILREGEX;WORKING_DIRECTORY"
@@ -38,19 +26,31 @@ function(geant4_add_test test)
set(_cfg $/)
endif()
+ # ARG_BUILD is treated as "zero or one"
+ # zero arg: build everything
+ # one arg: just that target
+ if(ARG_BUILD OR "BUILD" IN_LIST ARG_KEYWORDS_MISSING_VALUES)
+ set(_is_build_test TRUE)
+ endif()
+
# COMMAND AND BUILD: split test
# - In this case, we have to create a -build and a -run test with the latter depending on the former
# NOT COMMAND AND BUILD: pure build
# COMMAND AND NOT BUILD: pure test
- if(ARG_COMMAND AND ARG_BUILD)
+ if(ARG_COMMAND AND _is_build_test)
set(_is_split_test TRUE)
endif()
+ # Supplying a PROJECT argument is now a deprecation warning and will be removed
+ if(ARG_PROJECT)
+ message(WARNING "Test '${test}' uses the deprecated 'PROJECT' argument to 'geant4_add_test'. This argument is obsolete")
+ endif()
+
#- Handle COMMAND argument
list(LENGTH ARG_COMMAND _len)
if(_len LESS 1)
- if(NOT ARG_BUILD)
- message(FATAL_ERROR "GEANT4_ADD_TEST: command is mandatory (without build)")
+ if(NOT _is_build_test)
+ message(FATAL_ERROR "geant4_add_test: COMMAND argument is mandatory when BUILD argument is not supplied")
endif()
else()
list(GET ARG_COMMAND 0 _prg)
@@ -125,20 +125,13 @@ function(geant4_add_test test)
set(_command ${_command} -P ${_driver})
#- Now we can actually add the test
- if(ARG_BUILD)
+ if(_is_build_test)
if(NOT ARG_SOURCE_DIR)
set(ARG_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
endif()
if(NOT ARG_BINARY_DIR)
set(ARG_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
endif()
- if(NOT ARG_PROJECT)
- if(NOT PROJECT_NAME STREQUAL "Geant4")
- set(ARG_PROJECT ${PROJECT_NAME})
- else()
- set(ARG_PROJECT ${ARG_BUILD})
- endif()
- endif()
set(__build_test_name "${test}")
set(__run_test_name "")
@@ -148,6 +141,10 @@ function(geant4_add_test test)
set(__run_test_name "${test}")
endif()
+ if(ARG_BUILD)
+ set(__build_argument --build-target ${ARG_BUILD})
+ endif()
+
# Build part of the test
# Again, note that we scope Geant4_DIR to Geant4_BINARY_DIR so we don't accidentally pickup
# local or higher scopes
@@ -155,8 +152,7 @@ function(geant4_add_test test)
--build-and-test ${ARG_SOURCE_DIR} ${ARG_BINARY_DIR}
--build-generator ${CMAKE_GENERATOR}
--build-makeprogram ${CMAKE_MAKE_PROGRAM}
- --build-target ${ARG_BUILD}
- --build-project ${ARG_PROJECT}
+ ${__build_argument}
--build-config $
--build-noclean
--build-options
@@ -175,9 +171,11 @@ function(geant4_add_test test)
-DCMAKE_CXX_FLAGS_RELEASE=${CMAKE_CXX_FLAGS_RELEASE}
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
-DCMAKE_CXX_FLAGS_FULLRELWITHDEBINFO=${CMAKE_CXX_FLAGS_FULLRELWITHDEBINFO}
+ -DCMAKE_EXE_LINKER_FLAGS=${CMAKE_EXE_LINKER_FLAGS}
+ -DCMAKE_SHARED_LINKER_FLAGS=${CMAKE_SHARED_LINKER_FLAGS}
+ -DCMAKE_STATIC_LINKER_FLAGS=${CMAKE_STATIC_LINKER_FLAGS}
-DCMAKE_DISABLE_FIND_PACKAGE_ROOT=$
)
- set_property(TEST ${__build_test_name} PROPERTY ENVIRONMENT Geant4_DIR=${Geant4_BINARY_DIR})
# Build part of the test should have additional regex, and *must* have same labels
if(ARG_FAILREGEX)
diff --git a/cmake/Templates/UseGeant4.cmake b/cmake/Templates/UseGeant4.cmake
index 3b407227c1..ed984b29f3 100644
--- a/cmake/Templates/UseGeant4.cmake
+++ b/cmake/Templates/UseGeant4.cmake
@@ -1,12 +1,6 @@
# - Use file for Geant4
-#
-# Optional inclusion of internal Use file. This file can contain
-# variables, functions and macros for strict internal use in Geant4,
-# such as building and running validation tests.
-#
-include(${CMAKE_CURRENT_LIST_DIR}/UseGeant4_internal.cmake OPTIONAL)
-
# Add Module directory so that examples can use internal "FindXXX"
# modules. Appended to minimize any conflict with consumer project
# settings
+# DEPRECATED: Only needed by certain examples
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/Modules)
diff --git a/examples/History b/examples/History
index 410c72de7f..74bd2bd5c8 100644
--- a/examples/History
+++ b/examples/History
@@ -6,6 +6,49 @@ It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
+## 2024-12-06 Gabriele Cosmo (examples-V11-03-00)
+- Updated reference outputs according to reference tag geant4-11-03-ref-00.
+- Included tags: doxygen-V11-02-01, dsbandrepair-V11-02-03, ch3-V11-02-00,
+ molecularDNA-V11-02-13, eFLASH_radiotherapy-V11-02-02,
+ exp_microdosimetry-V11-02-00, channelingExamples-V11-02-03,
+ hadrontherapy-V11-02-03, chem3-V11-02-02, FlukaCern-V11-02-01,
+ exampleRE03-V11-02-01, exampleRE07-V11-02-01.
+
+## 2024-10-31 Gabriele Cosmo (examples-V11-02-09)
+- Updated reference outputs according to reference tag geant4-11-02-ref-09.
+- Included tags: exadvanced-V11-02-01, addna-V11-02-00, dsbandrepair-V11-02-02,
+ cellularPhantom-V11-02-01, molecularDNA-V11-02-10,
+ xraytel-V11-02-00, testem1-V11-02-01, testem3-V11-02-02,
+ testem11-V11-02-01, channelingExamples-V11-02-01,
+ fieldex01-V11-02-02, fieldex02-V11-02-02, fieldex03-V11-02-03,
+ fieldex04-V11-02-01, exdna-V11-02-02, chem4-V11-02-01,
+ chem6-V11-02-02, dnadamage2-V11-02-00, dnaphysics-V11-02-04,
+ microdosimetry-V11-02-02, microprox-V11-02-01, mfp-V11-02-02,
+ microyz-V11-02-02, range-V11-02-01, scavenger-V11-02-00,
+ slowing-V11-02-01, spower-V11-02-02, svalue-V11-02-01,
+ wvalue-V11-02-01, UHDR-V11-02-04, exgflasha-V11-02-02,
+ expar04-V11-02-03, exampleRE05-V11-02-01,
+ exam-ext-vis-standalone-V11-02-01.
+
+## 2024-09-27 Gabriele Cosmo (examples-V11-02-08)
+- Updated reference outputs according to reference tag geant4-11-02-ref-08.
+- Included tags: eRosita-V11-02-00, exbasic-V11-02-04, AnaEx03-V11-02-00,
+ HepMCEx01-V11-02-01, fieldex01-V11-02-01, fieldex02-V11-02-01,
+ fieldex03-V11-02-02, fieldex04-V11-02-00, fieldex05-V11-02-00,
+ fieldex06-V11-02-00, chem1-V11-02-00, chem2-V11-02-00,
+ chem3-V11-02-01, chem4-V11-02-00, exam-ext-vis-UVA-V11-02-00,
+ microyz-V11-02-01, molecularDNA-V11-02-05, chem5-V11-02-00,
+ exampleRE05-V11-02-00, exam-ext-vis-vtk-V11-02-01.
+
+## 2024-08-30 Gabriele Cosmo (examples-V11-02-07)
+- Updated reference outputs according to reference tag geant4-11-02-ref-07.
+- Included tags: eFLASH_radiotherapy-V11-02-01, hadrontherapy-V11-02-02,
+ fastAerosol-V11-02-00,STCyclotron-V11-02-00, exbasic-V11-02-02,
+ exampleB1-V11-02-00, exampleB3-V11-02-00, GB06-V11-02-00,
+ analysisExample-V11-02-00, exam-ext-vis-vtk-V11-02-00,
+ molecularDNA-V11-02-02, radiobiology-V11-02-00,
+ expol01-V11-02-00.
+
## 2024-06-28 Gabriele Cosmo (examples-V11-02-06)
- Updated reference outputs according to reference tag geant4-11-02-ref-06.
- Included tags: doxygen-V11-02-00, exadvanced-V11-02-00, dsbandrepair-V11-02-00,
diff --git a/examples/advanced/CMakeLists.txt b/examples/advanced/CMakeLists.txt
index 7009222ab5..da123a52e9 100644
--- a/examples/advanced/CMakeLists.txt
+++ b/examples/advanced/CMakeLists.txt
@@ -50,4 +50,5 @@ add_subdirectory(STCyclotron)
add_subdirectory(HGCal_testbeam)
add_subdirectory(ICRP110_HumanPhantoms)
add_subdirectory(ICRP145_HumanPhantoms)
-add_subdirectory(dsbandrepair)
+add_subdirectory(dna/dsbandrepair)
+add_subdirectory(dna/moleculardna)
diff --git a/examples/advanced/CaTS/CaTS.out b/examples/advanced/CaTS/CaTS.out
index 914dd6cab4..aeef4c3205 100644
--- a/examples/advanced/CaTS/CaTS.out
+++ b/examples/advanced/CaTS/CaTS.out
@@ -38,7 +38,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -92,10 +92,13 @@ Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100 TeV
+Positron annihilation at rest model SimplePositronium
+Enable 3 gamma annihilation on fly 0
Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
@@ -266,7 +269,7 @@ ionIoni: for GenericIon XStype:3 SubType=2
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
- BraggIon : Emin= 0 eV Emax= 2 MeV
+ Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
msc: for alpha SubType= 10
@@ -748,7 +751,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
=======================================================================
====== Geant4 Native Pre-compound Model Parameters ========
=======================================================================
-Type of pre-compound inverse x-section 3
+Type of pre-compound inverse x-section 1
Pre-compound model active 1
Pre-compound excitation low energy 100 keV
Pre-compound excitation high energy 30 MeV
@@ -773,9 +776,9 @@ Use discrete excitation energy of the residual 0
Time limit for long lived isomeres 1 ns
Isomer production flag 1
Internal e- conversion flag 1
-Store e- internal conversion data 0
+Store e- internal conversion data 1
Correlated gamma emission flag 0
Max 2J for sampling of angular correlations 10
=======================================================================
writing Event: 0
-TimeTotal> 5.799 2.970
+TimeTotal> 16.787 2.800
diff --git a/examples/advanced/ChargeExchangeMC/ChargeExchangeMC.out b/examples/advanced/ChargeExchangeMC/ChargeExchangeMC.out
index ad9a5e3379..4c797ed25d 100644
--- a/examples/advanced/ChargeExchangeMC/ChargeExchangeMC.out
+++ b/examples/advanced/ChargeExchangeMC/ChargeExchangeMC.out
@@ -10,7 +10,7 @@
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -53,23 +53,20 @@ Stripping off GDML names of materials, solids and volumes ...
/event/verbose 0
/particle/select eta
/particle/property/decay/select 0
-Particle is not selected yet !! Command ignored.
/particle/property/decay/br 1
-Particle is not selected yet !! Command ignored.
/particle/property/decay/select 1
-Particle is not selected yet !! Command ignored.
/particle/property/decay/br 0
-Particle is not selected yet !! Command ignored.
/particle/property/decay/select 2
-Particle is not selected yet !! Command ignored.
/particle/property/decay/br 0
-Particle is not selected yet !! Command ignored.
/particle/property/decay/select 3
-Particle is not selected yet !! Command ignored.
/particle/property/decay/br 0
-Particle is not selected yet !! Command ignored.
/particle/property/decay/dump
-Particle is not selected yet !! Command ignored.
+G4DecayTable: eta
+0: BR: 1 [Phase Space] : gamma gamma
+1: BR: 0 [Phase Space] : pi0 pi0 pi0
+2: BR: 0 [Phase Space] : pi0 pi+ pi-
+3: BR: 0 [Phase Space] : gamma pi+ pi-
+
/cexmc/detector/calorimeterTriggerAlgorithm inner
/cexmc/detector/Monitor/ED/threshold 125 keV
/cexmc/detector/VetoCounter/ED/threshold 250 keV
@@ -140,10 +137,13 @@ Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100 TeV
+Positron annihilation at rest model SimplePositronium
+Enable 3 gamma annihilation on fly 0
Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
@@ -314,7 +314,7 @@ ionIoni: for GenericIon XStype:3 SubType=2
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
- BraggIon : Emin= 0 eV Emax= 2 MeV
+ Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
msc: for alpha SubType= 10
@@ -799,7 +799,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
=======================================================================
====== Geant4 Native Pre-compound Model Parameters ========
=======================================================================
-Type of pre-compound inverse x-section 3
+Type of pre-compound inverse x-section 1
Pre-compound model active 1
Pre-compound excitation low energy 100 keV
Pre-compound excitation high energy 30 MeV
@@ -824,7 +824,7 @@ Use discrete excitation energy of the residual 0
Time limit for long lived isomeres 1 ns
Isomer production flag 1
Internal e- conversion flag 1
-Store e- internal conversion data 0
+Store e- internal conversion data 1
Correlated gamma emission flag 0
Max 2J for sampling of angular correlations 10
=======================================================================
@@ -904,606 +904,606 @@ Index : 9 used in the geometry : Yes
==================================================================
### Run 0 starts.
-Event 186
+Event 535
--- Track Points
- monitor : pi- [1,bp] 728.4 MeV : 0.7555 -1.513 -0.125 cm [-0.01238, -0.00131, 0.9999]
- target : pi- [1,bp] 727.9 MeV : 3.545 3.527 -1.584 cm [-0.6507, -0.7593, -0.002071]
- : eta [6,op] 370.4 MeV : 1.617 1.277 -1.59 cm [-0.5367, -0.7952, -0.2824]
- : neutron [7,np] 389.9 MeV : 1.617 1.277 -1.59 cm [-0.7031, -0.6608, 0.2626]
- : pi0 [10,opdp] 205.8 MeV : 1.617 1.277 -1.59 cm [-0.07104, -0.6244, -0.7779]
- : pi0 [8,opdp] 100.3 MeV : 1.617 1.277 -1.59 cm [-0.09346, -0.9503, -0.297]
- vc (l) : tp is not valid
- vc (r) : tp is not valid
- cal (l) : tp is not valid
- cal (r) : tp is not valid
+ monitor : pi- [1,bp] 730.1 MeV : 1.965 -1.011 -0.125 cm [-0.004281, -0.02012, 0.9998]
+ target : pi- [1,bp] 729.5 MeV : 4.39 2.394 -1.619 cm [-0.6465, -0.7627, -0.01876]
+ : eta [4,op] 225.6 MeV : 2.581 0.2598 -1.671 cm [-0.1628, -0.9861, 0.0342]
+ : neutron [5,np] 548.3 MeV : 2.581 0.2598 -1.671 cm [-0.7939, -0.6068, -0.03953]
+ : gamma [7,opdp] 355.7 MeV : 2.581 0.2598 -1.671 cm [0.5205, -0.8535, -0.02563]
+ : gamma [6,opdp] 236.8 MeV : 2.581 0.2598 -1.671 cm [-0.9368, 0.3426, 0.07107]
+ vc (l) : gamma [7,opdp] 355.7 MeV : 8.917 -3.165 -0.25 cm [0.111, -0.02563, 0.9935]
+ vc (r) : gamma [6,opdp] 236.8 MeV : -6.363 2.705 -0.25 cm [-0.08842, 0.07107, 0.9935]
+ cal (l) : gamma [7,opdp] 355.7 MeV : 9.056 -3.197 -15 cm [0.111, -0.02563, 0.9935]
+ cal (r) : gamma [6,opdp] 236.8 MeV : -6.475 2.794 -15 cm [-0.08842, 0.07107, 0.9935]
---
- angle between the eta decay products : 33.7998 deg
+ angle between the eta decay products : 141.422 deg
--- Triggered angular ranges:
- 3 [ 0.6000, 0.4000)
+ 8 [-0.4000, -0.6000)
--- Production model data:
- Incident particle (LAB) : pi- -7.3609 -2.1714 726.9956 MeV -- 740.3117 MeV
- (SCM) : pi- -4.5649 -1.3466 450.8497 MeV -- 471.9830 MeV
+ Incident particle (LAB) : pi- -4.7499 -13.9610 728.6772 MeV -- 742.0699 MeV
+ (SCM) : pi- -2.9435 -8.6517 451.5673 MeV -- 472.7328 MeV
Nucleus particle (LAB) : proton 0.0000 -0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 4.5649 1.3466 -450.8497 MeV -- 1.0410 GeV
- Output particle (LAB) : eta 37.0458 -104.5811 353.3820 MeV -- 661.3178 MeV
- (SCM) : eta 39.8717 -103.7475 74.2841 MeV -- 563.9363 MeV
- Nucleus output particle (LAB) : neutron -44.4067 102.4097 373.6136 MeV -- 1.0173 GeV
- (SCM) : neutron -39.8717 103.7475 -74.2841 MeV -- 949.0282 MeV
+ (SCM) : proton 2.9435 8.6517 -451.5673 MeV -- 1.0413 GeV
+ Output particle (LAB) : eta 114.8520 7.7143 194.0166 MeV -- 592.4911 MeV
+ (SCM) : eta 116.5725 12.7714 -69.9333 MeV -- 564.6200 MeV
+ Nucleus output particle (LAB) : neutron -119.6018 -21.6753 534.6606 MeV -- 1.0879 GeV
+ (SCM) : neutron -116.5725 -12.7714 69.9333 MeV -- 949.4346 MeV
--- Reconstructed data:
-- entry points:
- left: 0.914634 4.60775 -15 cm
- right: -0.229673 -2.25201 -15 cm
+ left: 8.95239 -2.26069 -15 cm
+ right: -7.68589 2.58061 -15 cm
target: 0 0 0 fm
- -- the angle: 131.129 deg
- -- mass of the output particle: 196.609 MeV
- -- mass of the nucleus output particle: 1.31801 GeV
+ -- the angle: 145.813 deg
+ -- mass of the output particle: 518.683 MeV
+ -- mass of the nucleus output particle: 968.03 MeV
-- production model data:
Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
(SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
(SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta 2.5423 4.3586 89.2241 MeV -- 215.9666 MeV
- (SCM) : eta 2.5423 4.3586 -5.0343 MeV -- 196.7384 MeV
- Nucleus output particle (LAB) : neutron -2.5423 -4.3586 640.7759 MeV -- 1.4655 GeV
- (SCM) : neutron -2.5423 -4.3586 5.0343 MeV -- 1.3180 GeV
+ Output particle (LAB) : eta 107.4588 -2.9300 161.6823 MeV -- 553.8316 MeV
+ (SCM) : eta 107.4588 -2.9300 -87.4253 MeV -- 536.8719 MeV
+ Nucleus output particle (LAB) : neutron -107.4588 2.9300 568.3177 MeV -- 1.1277 GeV
+ (SCM) : neutron -107.4588 2.9300 87.4253 MeV -- 977.8967 MeV
-- triggered angular ranges:
9 [-0.6000, -0.8000)
--- Energy Deposit
- monitor : 378.825 keV
+ monitor : 386.57 keV
vc (l) : 0 eV
vc (r) : 0 eV
- cal (l) : 109.223 MeV
- 0 4.401 3.974 7.682 0 0
- 0 0 52.4 40.16 0 0
- 0 0 0.385 0.2235 0 0
+ cal (l) : 332.268 MeV
+ 2.702 0 0 0 0 0
+ 1.178 7.25 2.163 0.5327 0 0
+ 7.177 285.9 16.01 0 0 0
+ 3.418 5.598 0.3732 0 0 0
+ cal (r) : 221.564 MeV
+ 0 0 0 0.9046 3.396 0.459
+ 0 0 1.458 6.058 200.8 0.4837
+ 0 0 0.4 3.227 2.076 2.3
0 0 0 0 0 0
- cal (r) : 106.744 MeV
- 0 0 0 0 0 0
- 0 0 2.12 5.235 0 0
- 0 0 42.72 55.7 0 0
- 0 0 0.6878 0.2842 0 0
-Event 3710
+Event 2104
--- Track Points
- monitor : pi- [1,bp] 731.2 MeV : -1.319 3.626 -1.25 mm [0.005139, -0.007701, 1]
- target : pi- [1,bp] 730.2 MeV : 3.243 3.806 0.1326 cm [-0.6391, -0.7691, -0.00868]
- : eta [3,op] 284.9 MeV : -1.115 -1.437 0.07347 cm [-0.5558, -0.678, -0.481]
- : neutron [4,np] 496.5 MeV : -1.115 -1.437 0.07347 cm [-0.6194, -0.7393, 0.2641]
- : pi0 [7,opdp] 208.8 MeV : -1.115 -1.437 0.07347 cm [0.09376, -0.993, 0.07153]
- : pi0 [5,opdp] 144.8 MeV : -1.115 -1.437 0.07347 cm [-0.5905, -0.1341, -0.7958]
- vc (l) : tp is not valid
- vc (r) : tp is not valid
- cal (l) : tp is not valid
- cal (r) : tp is not valid
+ monitor : pi- [1,bp] 737 MeV : -3.414 -5.163 -1.25 mm [0.00409, 0.01064, 0.9999]
+ target : pi- [1,bp] 735.1 MeV : 3.039 3.971 -0.2005 cm [-0.6394, -0.7688, 0.01098]
+ : eta [10,op] 272 MeV : -2.419 -2.592 -0.1067 cm [-0.9422, -0.3351, -0.005996]
+ : neutron [11,np] 517.9 MeV : -2.419 -2.592 -0.1067 cm [-0.4116, -0.9112, 0.01828]
+ : gamma [13,opdp] 234.2 MeV : -2.419 -2.592 -0.1067 cm [0.4345, -0.9002, -0.02795]
+ : gamma [12,opdp] 377.5 MeV : -2.419 -2.592 -0.1067 cm [-0.9483, 0.317, 0.01302]
+ vc (l) : gamma [13,opdp] 234.2 MeV : -2.523 -1.712 -0.25 cm [0.01331, -0.02795, 0.9995]
+ vc (r) : gamma [12,opdp] 377.5 MeV : -3.462 6.377 -2.5 mm [-0.06078, 0.01302, 0.9981]
+ cal (l) : gamma [13,opdp] 234.2 MeV : -2.506 -1.747 -15 cm [0.01331, -0.02795, 0.9995]
+ cal (r) : gamma [12,opdp] 377.5 MeV : -0.4223 0.654 -15 cm [-0.06078, 0.01302, 0.9981]
---
- angle between the eta decay products : 88.8057 deg
+ angle between the eta decay products : 134.251 deg
--- Triggered angular ranges:
- 6 [ 0.0000, -0.2000)
+ 7 [-0.2000, -0.4000)
--- Production model data:
- Incident particle (LAB) : pi- 3.2369 -5.8981 728.6554 MeV -- 741.9324 MeV
- (SCM) : pi- 2.0060 -3.6553 451.5791 MeV -- 472.6742 MeV
+ Incident particle (LAB) : pi- 2.3070 7.8372 732.9973 MeV -- 746.2115 MeV
+ (SCM) : pi- 1.4272 4.8486 453.4764 MeV -- 474.4957 MeV
Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton -2.0060 3.6553 -451.5791 MeV -- 1.0413 GeV
- Output particle (LAB) : eta 2.8695 -137.0297 249.7533 MeV -- 617.5070 MeV
- (SCM) : eta 1.6716 -134.8470 -19.9015 MeV -- 564.5665 MeV
- Nucleus output particle (LAB) : neutron 0.3674 131.1316 478.9020 MeV -- 1.0627 GeV
- (SCM) : neutron -1.6716 134.8470 19.9015 MeV -- 949.4028 MeV
+ (SCM) : proton -1.4272 -4.8486 -453.4764 MeV -- 1.0421 GeV
+ Output particle (LAB) : eta -137.7217 -1.6308 234.5213 MeV -- 611.6559 MeV
+ (SCM) : eta -138.5706 -4.5146 -35.1937 MeV -- 566.2275 MeV
+ Nucleus output particle (LAB) : neutron 140.0287 9.4680 498.4760 MeV -- 1.0728 GeV
+ (SCM) : neutron 138.5706 4.5146 35.1937 MeV -- 950.3914 MeV
--- Reconstructed data:
-- entry points:
- left: -9.01958 -6.04121 -15 cm
- right: -4.05232 0.238606 -15 cm
+ left: -4.23117 -1.66486 -15 cm
+ right: -2.98226 0.275906 -15 cm
target: 0 0 0 fm
- -- the angle: 125.143 deg
- -- mass of the output particle: 208.664 MeV
- -- mass of the nucleus output particle: 1.29094 GeV
+ -- the angle: 128.803 deg
+ -- mass of the output particle: 497.025 MeV
+ -- mass of the nucleus output particle: 965.691 MeV
-- production model data:
Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
(SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
(SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta 71.0523 -16.9903 124.5732 MeV -- 253.7642 MeV
- (SCM) : eta 71.0523 -16.9903 15.9901 MeV -- 221.6607 MeV
- Nucleus output particle (LAB) : neutron -71.0523 16.9903 605.4268 MeV -- 1.4277 GeV
- (SCM) : neutron -71.0523 16.9903 -15.9901 MeV -- 1.2931 GeV
+ Output particle (LAB) : eta -186.6677 -3.6551 241.1024 MeV -- 583.1147 MeV
+ (SCM) : eta -186.6677 -3.6551 -13.3759 MeV -- 531.1038 MeV
+ Nucleus output particle (LAB) : neutron 186.6677 3.6551 488.8976 MeV -- 1.0984 GeV
+ (SCM) : neutron 186.6677 3.6551 13.3759 MeV -- 983.6648 MeV
-- triggered angular ranges:
- 4 [ 0.4000, 0.2000)
+ 6 [ 0.0000, -0.2000)
--- Energy Deposit
- monitor : 889.969 keV
+ monitor : 534.931 keV
vc (l) : 0 eV
vc (r) : 0 eV
- cal (l) : 174.652 MeV
- 0 0 0 0 0 0
- 0 0 0 0 0.9582 1.493
- 0 0 0 0.874 42.91 0
- 0 0 0 3.143 122.8 2.447
- cal (r) : 79.1118 MeV
- 0 0 0 0 0 0.1427
- 0 0 0.3424 24.08 1.436 0.3935
- 0 0 0 52.72 0 0
- 0 0 0 0 0 0
-Event 4703
+ cal (l) : 196.31 MeV
+ 0 0 0 0 0 1.395
+ 0 0 0.3729 8.112 0.03617 0
+ 0 0 0.1637 180.1 5.478 0
+ 0 0 0 0.1939 0.4293 0
+ cal (r) : 386.804 MeV
+ 0 0 0 0.936 0 0
+ 0 0.3926 26.39 272.6 9.834 5.629
+ 0.9161 0.3541 7.403 51.1 3.899 0
+ 0 0 1.657 0.6686 0 4.987
+Event 3941
--- Track Points
- monitor : pi- [1,bp] 736.9 MeV : 1.022 -0.2286 -0.125 cm [0.009561, -0.01798, 0.9998]
- target : pi- [1,bp] 736.4 MeV : 4.127 2.823 -0.7487 cm [-0.6344, -0.7728, -0.018]
- : eta [5,op] 405.1 MeV : -1.653 -4.201 -0.9078 cm [-0.7949, -0.6052, 0.04272]
- : neutron [6,np] 353.3 MeV : -1.653 -4.201 -0.9078 cm [-0.4087, -0.9087, -0.08505]
- : pi0 [9,opdp] 265.8 MeV : -1.653 -4.201 -0.9078 cm [-0.7945, -0.5352, 0.2869]
- : pi0 [7,opdp] 112.6 MeV : -1.653 -4.201 -0.9078 cm [0.2992, -0.9537, 0.0316]
- vc (l) : tp is not valid
- vc (r) : tp is not valid
- cal (l) : tp is not valid
- cal (r) : tp is not valid
+ monitor : pi- [1,bp] 730.1 MeV : 0.9645 -1.138 -0.125 cm [-0.01506, -0.01048, 0.9998]
+ target : pi- [1,bp] 729.6 MeV : 3.532 3.539 -1.516 cm [-0.6565, -0.7542, -0.0135]
+ : eta [3,op] 410.3 MeV : 1.094 0.7379 -1.566 cm [-0.7587, -0.6483, -0.06426]
+ : neutron [4,np] 329.4 MeV : 1.094 0.7379 -1.566 cm [-0.5076, -0.8603, 0.04756]
+ : gamma [6,opdp] 300.5 MeV : 1.094 0.7379 -1.566 cm [0.238, -0.9705, -0.03913]
+ : gamma [5,opdp] 383.9 MeV : 1.094 0.7379 -1.566 cm [-0.997, 0.06691, -0.03804]
+ vc (l) : gamma [6,opdp] 300.5 MeV : -10.39 -3.92 -0.25 cm [-0.1944, -0.03913, 0.9801]
+ vc (r) : gamma [5,opdp] 383.9 MeV : 10.77 -3.879 -0.25 cm [0.1934, -0.03804, 0.9804]
+ cal (l) : gamma [6,opdp] 300.5 MeV : -10.64 -3.969 -15 cm [-0.1944, -0.03913, 0.9801]
+ cal (r) : gamma [5,opdp] 383.9 MeV : 11.01 -3.927 -15 cm [0.1934, -0.03804, 0.9804]
---
- angle between the eta decay products : 73.6383 deg
+ angle between the eta decay products : 107.503 deg
--- Triggered angular ranges:
- 2 [ 0.8000, 0.6000)
+ 1 [ 1.0000, 0.8000)
--- Production model data:
- Incident particle (LAB) : pi- 6.6879 -12.7418 733.6233 MeV -- 746.9204 MeV
- (SCM) : pi- 4.1364 -7.8806 453.7325 MeV -- 474.7970 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton -4.1364 7.8806 -453.7325 MeV -- 1.0423 GeV
- Output particle (LAB) : eta -89.0793 17.3085 394.8335 MeV -- 681.3816 MeV
- (SCM) : eta -91.6855 22.2739 108.9480 MeV -- 566.5022 MeV
- Nucleus output particle (LAB) : neutron 95.7673 -30.0503 338.7898 MeV -- 1.0038 GeV
- (SCM) : neutron 91.6855 -22.2739 -108.9480 MeV -- 950.5552 MeV
+ Incident particle (LAB) : pi- -13.4004 -10.6973 728.3481 MeV -- 741.7984 MeV
+ (SCM) : pi- -8.3053 -6.6299 451.4135 MeV -- 472.6171 MeV
+ Nucleus particle (LAB) : proton 0.0000 -0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 8.3053 6.6299 -451.4135 MeV -- 1.0413 GeV
+ Output particle (LAB) : eta -67.4641 -26.3613 403.8070 MeV -- 684.4408 MeV
+ (SCM) : eta -62.2240 -22.1783 118.9960 MeV -- 564.5144 MeV
+ Nucleus output particle (LAB) : neutron 54.0637 15.6640 324.5411 MeV -- 995.6296 MeV
+ (SCM) : neutron 62.2240 22.1783 -118.9960 MeV -- 949.3718 MeV
--- Reconstructed data:
-- entry points:
- left: -9.26494 1.53201 -15 cm
- right: 9.98358 -2.35875 -15 cm
+ left: -12.3251 -3.29446 -15 cm
+ right: 11.526 -3.18269 -15 cm
target: 0 0 0 fm
- -- the angle: 111.811 deg
- -- mass of the output particle: 239.666 MeV
- -- mass of the nucleus output particle: 1.27092 GeV
+ -- the angle: 107.299 deg
+ -- mass of the output particle: 561.407 MeV
+ -- mass of the nucleus output particle: 923.54 MeV
-- production model data:
Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
(SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
(SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta -6.1977 -2.2361 162.3326 MeV -- 289.5429 MeV
- (SCM) : eta -6.1977 -2.2361 40.6631 MeV -- 243.1804 MeV
- Nucleus output particle (LAB) : neutron 6.1977 2.2361 567.6674 MeV -- 1.3920 GeV
- (SCM) : neutron 6.1977 2.2361 -40.6631 MeV -- 1.2716 GeV
+ Output particle (LAB) : eta -70.7587 -37.0477 414.0786 MeV -- 702.1522 MeV
+ (SCM) : eta -70.7587 -37.0477 121.2725 MeV -- 579.8825 MeV
+ Nucleus output particle (LAB) : neutron 70.7587 37.0477 315.9214 MeV -- 979.3424 MeV
+ (SCM) : neutron 70.7587 37.0477 -121.2725 MeV -- 934.8862 MeV
-- triggered angular ranges:
1 [ 1.0000, 0.8000)
--- Energy Deposit
- monitor : 390.905 keV
+ monitor : 423.013 keV
vc (l) : 0 eV
vc (r) : 0 eV
- cal (l) : 140.423 MeV
- 0 0 0 0 1.205 1.045
- 0 0 0 3.169 123.7 2.065
- 0 0 0 0.3744 6.484 0
- 0 0 0 0 1.561 0.7988
- cal (r) : 149.12 MeV
- 0 0.7857 0 0 0 0
- 4.591 0.8675 0 0 0 0
- 5.16 134.9 0 0.1014 0 0
- 1.739 0.2133 0 0.7124 0 0
-Event 6372
+ cal (l) : 308.812 MeV
+ 0 0 0 0 0 1.155
+ 0 0 0 1.4 0 0.8391
+ 0 0 0 0.3913 90.47 193.9
+ 0 0 0 0 2.661 17.99
+ cal (r) : 393.34 MeV
+ 0.541 0.8797 0 0 0 0
+ 3.696 2.876 0 0 0 0
+ 205.3 156.9 0 0 0 0
+ 6.43 15.13 0.9914 0.5961 0 0
+Event 5026
--- Track Points
- monitor : pi- [1,bp] 727.7 MeV : -1.596 1.043 -0.125 cm [-0.008435, 0.001135, 1]
- target : pi- [1,bp] 727.1 MeV : 1.593 4.74 1.064 cm [-0.6486, -0.7611, 0.001314]
- : eta [5,op] 309.3 MeV : -3.337 -1.045 1.074 cm [-0.388, -0.8615, -0.3276]
- : neutron [6,np] 463.5 MeV : -3.337 -1.045 1.074 cm [-0.7553, -0.6167, 0.2218]
- : pi0 [9,opdp] 145.7 MeV : -3.337 -1.045 1.074 cm [-0.732, -0.02027, -0.681]
- : pi0 [7,opdp] 94.09 MeV : -3.337 -1.045 1.074 cm [-0.495, -0.5031, 0.7085]
- vc (l) : tp is not valid
- vc (r) : tp is not valid
- cal (l) : tp is not valid
- cal (r) : tp is not valid
+ monitor : pi- [1,bp] 720.1 MeV : 1.078 0.6358 -0.125 cm [-0.006609, -0.01065, 0.9999]
+ target : pi- [1,bp] 719.6 MeV : 3.873 3.162 0.2908 cm [-0.6461, -0.7632, -0.0114]
+ : eta [7,op] 315.1 MeV : 9.398 -3.076 2.4 mm [-0.3204, -0.9463, -0.04298]
+ : neutron [8,np] 440.3 MeV : 9.398 -3.076 2.4 mm [-0.8226, -0.5685, 0.01209]
+ : gamma [10,opdp] 251 MeV : 9.398 -3.076 2.4 mm [-0.9741, 0.2179, -0.06089]
+ : gamma [9,opdp] 381 MeV : 9.398 -3.076 2.4 mm [0.3768, -0.9263, 0.004577]
+ vc (l) : gamma [9,opdp] 381 MeV : -2.183 0.5061 -0.25 cm [-0.04996, 0.004577, 0.9987]
+ vc (r) : gamma [10,opdp] 251 MeV : 2.545 -3.408 -0.25 cm [0.04159, -0.06089, 0.9973]
+ cal (l) : gamma [9,opdp] 381 MeV : -2.246 0.5119 -15 cm [-0.04996, 0.004577, 0.9987]
+ cal (r) : gamma [10,opdp] 251 MeV : 2.597 -3.484 -15 cm [0.04159, -0.06089, 0.9973]
---
- angle between the eta decay products : 96.3146 deg
- --- Triggered angular ranges:
- 5 [ 0.2000, 0.0000)
- --- Production model data:
- Incident particle (LAB) : pi- -5.1249 1.4563 725.1693 MeV -- 738.4976 MeV
- (SCM) : pi- -3.1806 0.9038 450.0519 MeV -- 471.2085 MeV
- Nucleus particle (LAB) : proton -0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 3.1806 -0.9038 -450.0519 MeV -- 1.0406 GeV
- Output particle (LAB) : eta 79.3200 -101.3152 281.2114 MeV -- 629.1177 MeV
- (SCM) : eta 81.2364 -101.8598 10.0417 MeV -- 563.2303 MeV
- Nucleus output particle (LAB) : neutron -84.4449 102.7715 443.9579 MeV -- 1.0477 GeV
- (SCM) : neutron -81.2364 101.8598 -10.0417 MeV -- 948.6088 MeV
- --- Reconstructed data:
- -- entry points:
- left: 12.2759 2.44502 -15 cm
- right: 3.991 -3.3957 -15 cm
- target: 0 0 0 fm
- -- the angle: 137.799 deg
- -- mass of the output particle: 178.165 MeV
- -- mass of the nucleus output particle: 1.33522 GeV
- -- production model data:
- Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
- (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta 12.2649 -1.4181 67.7106 MeV -- 190.9968 MeV
- (SCM) : eta 12.2649 -1.4181 -16.8822 MeV -- 179.3880 MeV
- Nucleus output particle (LAB) : neutron -12.2649 1.4181 662.2894 MeV -- 1.4905 GeV
- (SCM) : neutron -12.2649 1.4181 16.8822 MeV -- 1.3354 GeV
- -- triggered angular ranges:
- 10 [-0.8000, -1.0000)
- --- Energy Deposit
- monitor : 532.058 keV
- vc (l) : 0 eV
- vc (r) : 82.7704 keV
- cal (l) : 97.1245 MeV
- 0.2736 0.2713 0 0 0 0
- 51.19 41.52 0 0 0 0
- 3.096 0.78 0 0 0 0
- 0 0 0 0 0 0
- cal (r) : 93.8723 MeV
- 0 0.2766 0 0 0 0
- 0 1.699 0.5495 0.3587 0 0
- 0.2133 2.953 80.01 0 0 0
- 0 2.307 4.53 0.1817 0.7955 0
-Event 7707
- --- Track Points
- monitor : pi- [1,bp] 723.7 MeV : -1.31 -1.125 -0.125 cm [-0.01132, -0.0171, 0.9998]
- target : pi- [1,bp] 723.1 MeV : 1.765 4.678 -1.553 cm [-0.6514, -0.7586, -0.01417]
- : eta [5,op] 362 MeV : -1.257 1.159 -1.619 cm [-0.8406, -0.541, -0.02829]
- : neutron [6,np] 389.1 MeV : -1.257 1.159 -1.619 cm [-0.4263, -0.9046, -0.0009744]
- : gamma [8,opdp] 408.3 MeV : -1.257 1.159 -1.619 cm [-0.9966, 0.07432, -0.03599]
- : gamma [7,opdp] 248.4 MeV : -1.257 1.159 -1.619 cm [0.4129, -0.9106, 0.01792]
- vc (l) : gamma [7,opdp] 248.4 MeV : -1.291 -0.5379 -0.25 cm [-0.01063, 0.01792, 0.9998]
- vc (r) : gamma [8,opdp] 408.3 MeV : 10.06 -3.717 -0.25 cm [0.1862, -0.03599, 0.9819]
- cal (l) : gamma [7,opdp] 248.4 MeV : -1.304 -0.5155 -15 cm [-0.01063, 0.01792, 0.9998]
- cal (r) : gamma [8,opdp] 408.3 MeV : 10.29 -3.763 -15 cm [0.1862, -0.03599, 0.9819]
- ---
- angle between the eta decay products : 118.672 deg
- --- Triggered angular ranges:
- 3 [ 0.6000, 0.4000)
- --- Production model data:
- Incident particle (LAB) : pi- -8.0596 -10.6220 721.8452 MeV -- 735.3353 MeV
- (SCM) : pi- -5.0084 -6.6008 448.5716 MeV -- 469.8563 MeV
- Nucleus particle (LAB) : proton 0.0000 -0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 5.0084 6.6008 -448.5716 MeV -- 1.0400 GeV
- Output particle (LAB) : eta -107.2293 -10.2429 345.6464 MeV -- 656.6789 MeV
- (SCM) : eta -104.1440 -6.1767 69.3151 MeV -- 561.9978 MeV
- Nucleus output particle (LAB) : neutron 99.1697 -0.3791 376.1988 MeV -- 1.0169 GeV
- (SCM) : neutron 104.1440 6.1767 -69.3151 MeV -- 947.8775 MeV
- --- Reconstructed data:
- -- entry points:
- left: -2.35255 0.258224 -15 cm
- right: 10.1519 -1.2569 -15 cm
- target: 0 0 0 fm
- -- the angle: 118.15 deg
- -- mass of the output particle: 525.87 MeV
- -- mass of the nucleus output particle: 966.64 MeV
- -- production model data:
- Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
- (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta -105.6564 -6.9987 331.4773 MeV -- 630.5784 MeV
- (SCM) : eta -105.6564 -6.9987 64.0726 MeV -- 540.2380 MeV
- Nucleus output particle (LAB) : neutron 105.6564 6.9987 398.5227 MeV -- 1.0509 GeV
- (SCM) : neutron 105.6564 6.9987 -64.0726 MeV -- 974.5306 MeV
- -- triggered angular ranges:
- 3 [ 0.6000, 0.4000)
- --- Energy Deposit
- monitor : 429.472 keV
- vc (l) : 0 eV
- vc (r) : 0 eV
- cal (l) : 241.396 MeV
- 0.5472 0 1.274 2.015 1.139 0
- 0 0.339 5.458 50.77 2.229 0
- 0 0 2.529 170.2 3.336 0.3405
- 0 0 0.6964 0.4827 0 0
- cal (r) : 389.182 MeV
- 5.344 1.113 0.6392 1.143 0 0
- 4.353 7.639 5.367 0 0 0
- 103.9 247.9 2.963 0 0 0
- 2.537 5.905 0.3914 0 0 0
-Event 9690
- --- Track Points
- monitor : pi- [1,bp] 734.3 MeV : 0.2036 1.116 -0.125 cm [0.007938, -0.001153, 1]
- target : pi- [1,bp] 733.9 MeV : 3.561 3.51 1.08 cm [-0.6355, -0.7721, -0.002082]
- : eta [6,op] 181.6 MeV : -0.8613 -1.863 1.065 cm [-0.9386, -0.3372, 0.07284]
- : neutron [7,np] 583.8 MeV : -0.8613 -1.863 1.065 cm [-0.5056, -0.8623, -0.02662]
- : gamma [9,opdp] 331.7 MeV : -0.8613 -1.863 1.065 cm [-0.8929, 0.4502, 0.006008]
- : gamma [8,opdp] 245.5 MeV : -0.8613 -1.863 1.065 cm [0.5121, -0.8577, 0.04576]
- vc (l) : gamma [8,opdp] 245.5 MeV : 4.307 3.71 -0.25 cm [0.1017, 0.04576, 0.9938]
- vc (r) : gamma [9,opdp] 331.7 MeV : -10.13 1.424 -0.25 cm [-0.2038, 0.006008, 0.979]
- cal (l) : gamma [8,opdp] 245.5 MeV : 4.435 3.767 -15 cm [0.1017, 0.04576, 0.9938]
- cal (r) : gamma [9,opdp] 331.7 MeV : -10.39 1.431 -15 cm [-0.2038, 0.006008, 0.979]
- ---
- angle between the eta decay products : 147.473 deg
- --- Triggered angular ranges:
- 9 [-0.6000, -0.8000)
- --- Production model data:
- Incident particle (LAB) : pi- 6.2645 -2.3143 731.8361 MeV -- 745.0560 MeV
- (SCM) : pi- 3.8774 -1.4324 452.9716 MeV -- 474.0044 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton -3.8774 1.4324 -452.9716 MeV -- 1.0419 GeV
- Output particle (LAB) : eta -91.2101 13.2270 156.4615 MeV -- 577.1717 MeV
- (SCM) : eta -93.4481 14.0538 -104.9928 MeV -- 565.7794 MeV
- Nucleus output particle (LAB) : neutron 97.4746 -15.5413 575.3746 MeV -- 1.1062 GeV
- (SCM) : neutron 93.4481 -14.0538 104.9928 MeV -- 950.1245 MeV
- --- Reconstructed data:
- -- entry points:
- left: 6.33586 2.86491 -15 cm
- right: -9.07209 2.56639 -15 cm
- target: 0 0 0 fm
- -- the angle: 144.266 deg
- -- mass of the output particle: 533.358 MeV
- -- mass of the nucleus output particle: 960.359 MeV
- -- production model data:
- Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
- (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta -82.8180 25.1882 170.1223 MeV -- 566.4853 MeV
- (SCM) : eta -82.8180 25.1882 -84.1545 MeV -- 546.8509 MeV
- Nucleus output particle (LAB) : neutron 82.8180 -25.1882 559.8777 MeV -- 1.1150 GeV
- (SCM) : neutron 82.8180 -25.1882 84.1545 MeV -- 967.9177 MeV
- -- triggered angular ranges:
- 9 [-0.6000, -0.8000)
- --- Energy Deposit
- monitor : 357.355 keV
- vc (l) : 0 eV
- vc (r) : 164.523 keV
- cal (l) : 241.783 MeV
- 0 22.6 1.416 0 0 0
- 1.352 109.9 97.77 0.8049 0 0
- 0.6524 4.757 1.946 0.01089 0.003128 0
- 0 0 0.1699 0 0.4496 0
- cal (r) : 324.702 MeV
- 0 0 0 2.52 0.9359 1.976
- 0 0 5.041 8.473 252 46.2
- 0 0 0 0.3204 5.176 1.114
- 0 0 0 0 0.3953 0.5509
-Event 10258
- --- Track Points
- monitor : pi- [1,bp] 729.2 MeV : 0.5492 7.24 -1.25 mm [-0.0005108, 0.003705, 1]
- target : pi- [1,bp] 728.6 MeV : 3.27 3.782 0.8473 cm [-0.6415, -0.7671, 0.003899]
- : eta [3,op] 305.1 MeV : 1.662 1.859 0.8571 cm [-0.4375, -0.8003, 0.4101]
- : neutron [4,np] 474.4 MeV : 1.662 1.859 0.8571 cm [-0.703, -0.6629, -0.2576]
- : pi0 [7,opdp] 198.6 MeV : 1.662 1.859 0.8571 cm [0.2489, -0.9568, 0.1501]
- : pi0 [5,opdp] 161.7 MeV : 1.662 1.859 0.8571 cm [-0.9148, 0.2679, 0.3024]
- vc (l) : tp is not valid
- vc (r) : tp is not valid
- cal (l) : tp is not valid
- cal (r) : tp is not valid
- ---
- angle between the eta decay products : 116.015 deg
- --- Triggered angular ranges:
- 5 [ 0.2000, 0.0000)
- --- Production model data:
- Incident particle (LAB) : pi- 1.3686 2.9548 728.0702 MeV -- 741.3344 MeV
- (SCM) : pi- 0.8484 1.8317 451.3270 MeV -- 472.4193 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton -0.8484 -1.8317 -451.3270 MeV -- 1.0412 GeV
- Output particle (LAB) : eta 54.6984 125.1285 272.8349 MeV -- 627.0891 MeV
- (SCM) : eta 54.1877 124.0260 1.1832 MeV -- 564.3341 MeV
- Nucleus output particle (LAB) : neutron -53.3298 -122.1737 455.2353 MeV -- 1.0525 GeV
- (SCM) : neutron -54.1877 -124.0260 -1.1832 MeV -- 949.2646 MeV
- --- Reconstructed data:
- -- entry points:
- left: -11.1734 -4.40543 -15 cm
- right: -4.402 2.94333 -15 cm
- target: 0 0 0 fm
- -- the angle: 123.745 deg
- -- mass of the output particle: 273.248 MeV
- -- mass of the nucleus output particle: 1.24064 GeV
- -- production model data:
- Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
- (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta 10.6516 -5.6612 149.4950 MeV -- 311.7028 MeV
- (SCM) : eta 10.6516 -5.6612 15.7331 MeV -- 273.9660 MeV
- Nucleus output particle (LAB) : neutron -10.6516 5.6612 580.5050 MeV -- 1.3698 GeV
- (SCM) : neutron -10.6516 5.6612 -15.7331 MeV -- 1.2408 GeV
- -- triggered angular ranges:
- 2 [ 0.8000, 0.6000)
- --- Energy Deposit
- monitor : 454.572 keV
- vc (l) : 0 eV
- vc (r) : 0 eV
- cal (l) : 172.866 MeV
- 0 0 0 0 0 0
- 0 0 0 0 0.21 1.035
- 0 0 0 0 107 43.43
- 0 0 0.285 1.358 3.339 16.25
- cal (r) : 138.837 MeV
- 0 0 0 2.419 1.004 0
- 0 0 0 124.5 6.662 0
- 0 0 0 3.507 0.7473 0
- 0 0 0 0 0 0
-Event 11362
- --- Track Points
- monitor : pi- [1,bp] 728.5 MeV : -7.982 0.4589 -1.25 mm [-0.003069, -0.007875, 1]
- target : pi- [1,bp] 728 MeV : 2.445 4.361 -0.1933 cm [-0.6465, -0.7629, -0.008011]
- : eta [9,op] 134.6 MeV : -3.655 -2.836 -0.2689 cm [-0.4263, -0.9036, -0.0423]
- : neutron [10,np] 596.8 MeV : -3.655 -2.836 -0.2689 cm [-0.6904, -0.7235, 0.0003746]
- : pi0 [13,opdp] 79.45 MeV : -3.655 -2.836 -0.2689 cm [-0.604, -0.796, 0.03981]
- : pi0 [11,opdp] 132.2 MeV : -3.655 -2.836 -0.2689 cm [-0.5275, 0.5386, 0.657]
- vc (l) : tp is not valid
- vc (r) : tp is not valid
- cal (l) : tp is not valid
- cal (r) : tp is not valid
- ---
- angle between the eta decay products : 94.8128 deg
- --- Triggered angular ranges:
- 10 [-0.8000, -1.0000)
- --- Production model data:
- Incident particle (LAB) : pi- -3.8682 -5.4683 725.6491 MeV -- 738.9799 MeV
- (SCM) : pi- -2.4002 -3.3930 450.2605 MeV -- 471.4145 MeV
- Nucleus particle (LAB) : proton 0.0000 -0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 2.4002 3.3930 -450.2605 MeV -- 1.0407 GeV
- Output particle (LAB) : eta 34.2196 -5.6919 130.0263 MeV -- 564.1480 MeV
- (SCM) : eta 35.5872 -3.7586 -126.5172 MeV -- 563.4181 MeV
- Nucleus output particle (LAB) : neutron -38.0879 0.2236 595.6228 MeV -- 1.1131 GeV
- (SCM) : neutron -35.5872 3.7586 126.5172 MeV -- 948.7203 MeV
- --- Reconstructed data:
- -- entry points:
- left: -3.74555 -4.29808 -15 cm
- right: 7.85402 3.42816 -15 cm
- target: 0 0 0 fm
- -- the angle: 119.103 deg
- -- mass of the output particle: 177.905 MeV
- -- mass of the nucleus output particle: 1.33169 GeV
- -- production model data:
- Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
- (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta 37.2049 -4.0558 105.2272 MeV -- 210.0562 MeV
- (SCM) : eta 37.2049 -4.0558 15.5785 MeV -- 182.4652 MeV
- Nucleus output particle (LAB) : neutron -37.2049 4.0558 624.7728 MeV -- 1.4714 GeV
- (SCM) : neutron -37.2049 4.0558 -15.5785 MeV -- 1.3323 GeV
- -- triggered angular ranges:
- 4 [ 0.4000, 0.2000)
- --- Energy Deposit
- monitor : 421.81 keV
- vc (l) : 0 eV
- vc (r) : 0 eV
- cal (l) : 124.629 MeV
- 0 0 0 0 0 0
- 0 0 0.3922 0 0.6693 0
- 0 0 0.5433 93.02 10.37 0.5592
- 0 1.099 0.1844 17.49 0 0.2962
- cal (r) : 85.4275 MeV
- 0.647 1.435 1.069 0 0 0
- 0.3418 74.95 5.062 0 0 0
- 0 0.3964 1.529 0 0 0
- 0 0 0 0 0 0
-Event 12447
- --- Track Points
- monitor : pi- [1,bp] 729.2 MeV : 1.738 1.407 -0.125 cm [0.002779, 0.01681, 0.9999]
- target : pi- [1,bp] 728.7 MeV : 4.408 2.36 1.902 cm [-0.639, -0.769, 0.01578]
- : eta [2,op] 161 MeV : -0.205 -3.192 2.016 cm [-0.2789, -0.9425, -0.1841]
- : neutron [3,np] 586.2 MeV : -0.205 -3.192 2.016 cm [-0.7164, -0.6942, 0.06936]
- : gamma [5,opdp] 254.3 MeV : -0.205 -3.192 2.016 cm [-0.9186, 0.3948, 0.01681]
- : gamma [4,opdp] 316.8 MeV : -0.205 -3.192 2.016 cm [0.5956, -0.7961, -0.1071]
- vc (l) : gamma [4,opdp] 316.8 MeV : 10.16 -4.139 -0.25 cm [0.2034, -0.1071, 0.9732]
- vc (r) : gamma [5,opdp] 254.3 MeV : -5.48 3.025 -0.25 cm [-0.1436, 0.01681, 0.9895]
- cal (l) : gamma [4,opdp] 316.8 MeV : 10.42 -4.276 -15 cm [0.2034, -0.1071, 0.9732]
- cal (r) : gamma [5,opdp] 254.3 MeV : -5.661 3.046 -15 cm [-0.1436, 0.01681, 0.9895]
- ---
- angle between the eta decay products : 149.684 deg
- --- Triggered angular ranges:
- 10 [-0.8000, -1.0000)
- --- Production model data:
- Incident particle (LAB) : pi- 3.0421 11.0223 726.8401 MeV -- 740.2074 MeV
- (SCM) : pi- 1.8867 6.8358 450.7725 MeV -- 471.9385 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton -1.8867 -6.8358 -450.7725 MeV -- 1.0410 GeV
- Output particle (LAB) : eta 63.1484 -29.6383 145.1363 MeV -- 571.0372 MeV
- (SCM) : eta 62.0665 -33.5581 -113.3459 MeV -- 563.8958 MeV
- Nucleus output particle (LAB) : neutron -60.1062 40.6606 581.7037 MeV -- 1.1074 GeV
- (SCM) : neutron -62.0665 33.5581 113.3459 MeV -- 949.0041 MeV
- --- Reconstructed data:
- -- entry points:
- left: 12.3337 -3.6234 -15 cm
- right: -6.18086 3.50096 -15 cm
- target: 0 0 0 fm
- -- the angle: 147.555 deg
- -- mass of the output particle: 545.061 MeV
- -- mass of the nucleus output particle: 947.59 MeV
- -- production model data:
- Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
- (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
- Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta 71.0760 -4.1725 156.2940 MeV -- 571.4789 MeV
- (SCM) : eta 71.0760 -4.1725 -101.9113 MeV -- 559.0583 MeV
- Nucleus output particle (LAB) : neutron -71.0760 4.1725 573.7060 MeV -- 1.1100 GeV
- (SCM) : neutron -71.0760 4.1725 101.9113 MeV -- 955.7103 MeV
- -- triggered angular ranges:
- 10 [-0.8000, -1.0000)
- --- Energy Deposit
- monitor : 394.885 keV
- vc (l) : 0 eV
- vc (r) : 0 eV
- cal (l) : 318.704 MeV
- 1.173 1.255 0 0 0 0
- 1.752 0 0 0 0 0
- 99.76 156.9 0 0 0 0
- 53.37 4.446 0 0 0 0
- cal (r) : 252.775 MeV
- 0 0 0.3992 7.304 3.633 0.9097
- 0 0 0.422 92.43 139.7 0.9666
- 0 0 0 5.919 1.059 0
- 0 0 0 0 0 0
-Event 12933
- --- Track Points
- monitor : pi- [1,bp] 731.7 MeV : -0.09958 1.158 -0.125 cm [-0.002271, 0.007234, 1]
- target : pi- [1,bp] 731.1 MeV : 3.098 3.925 1.368 cm [-0.6436, -0.7653, 0.007801]
- : eta [5,op] 346.7 MeV : -1.13 -1.1 1.419 cm [-0.3125, -0.9498, -0.01557]
- : neutron [6,np] 428 MeV : -1.13 -1.1 1.419 cm [-0.8458, -0.5329, 0.02608]
- : gamma [8,opdp] 231.1 MeV : -1.13 -1.1 1.419 cm [-0.949, 0.3151, 0.00961]
- : gamma [7,opdp] 417.2 MeV : -1.13 -1.1 1.419 cm [0.2661, -0.9638, -0.01826]
- vc (l) : gamma [7,opdp] 417.2 MeV : -11.3 0.3403 -0.25 cm [-0.1661, -0.01826, 0.9859]
- vc (r) : gamma [8,opdp] 231.1 MeV : -2.052 1.977 -0.25 cm [-0.0587, 0.00961, 0.9982]
- cal (l) : gamma [7,opdp] 417.2 MeV : -11.51 0.3171 -15 cm [-0.1661, -0.01826, 0.9859]
- cal (r) : gamma [8,opdp] 231.1 MeV : -2.125 1.989 -15 cm [-0.0587, 0.00961, 0.9982]
- ---
- angle between the eta decay products : 123.805 deg
+ angle between the eta decay products : 124.693 deg
--- Triggered angular ranges:
4 [ 0.4000, 0.2000)
--- Production model data:
- Incident particle (LAB) : pi- -2.0590 5.7645 729.2460 MeV -- 742.5072 MeV
- (SCM) : pi- -1.2758 3.5717 451.8389 MeV -- 472.9192 MeV
- Nucleus particle (LAB) : proton -0.0000 0.0000 0.0000 eV -- 938.2720 MeV
- (SCM) : proton 1.2758 -3.5717 -451.8389 MeV -- 1.0414 GeV
- Output particle (LAB) : eta 128.6560 -5.3986 321.8592 MeV -- 648.3268 MeV
- (SCM) : eta 129.4377 -7.5872 44.9793 MeV -- 564.7899 MeV
- Nucleus output particle (LAB) : neutron -130.7150 11.1631 407.3868 MeV -- 1.0325 GeV
- (SCM) : neutron -129.4377 7.5872 -44.9793 MeV -- 949.5356 MeV
+ Incident particle (LAB) : pi- -2.2509 -8.2216 717.8584 MeV -- 731.3502 MeV
+ (SCM) : pi- -1.4010 -5.1175 446.8276 MeV -- 468.1483 MeV
+ Nucleus particle (LAB) : proton 0.0000 -0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 1.4010 5.1175 -446.8276 MeV -- 1.0392 GeV
+ Output particle (LAB) : eta 114.3156 -13.5430 293.3219 MeV -- 632.0142 MeV
+ (SCM) : eta 115.1604 -10.4571 23.8825 MeV -- 560.4413 MeV
+ Nucleus output particle (LAB) : neutron -116.5665 5.3213 424.5365 MeV -- 1.0376 GeV
+ (SCM) : neutron -115.1604 10.4571 -23.8825 MeV -- 946.9555 MeV
--- Reconstructed data:
-- entry points:
- left: -12.5347 -1.31096 -15 cm
- right: -4.67664 1.11528 -15 cm
+ left: 0.302587 0.218373 -15 cm
+ right: 4.54371 -2.94022 -15 cm
target: 0 0 0 fm
- -- the angle: 122.669 deg
- -- mass of the output particle: 510.379 MeV
- -- mass of the nucleus output particle: 987.621 MeV
+ -- the angle: 125.921 deg
+ -- mass of the output particle: 528.532 MeV
+ -- mass of the nucleus output particle: 974.709 MeV
-- production model data:
Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
(SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
(SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
- Output particle (LAB) : eta 94.7901 -3.9768 305.3783 MeV -- 602.2816 MeV
- (SCM) : eta 94.7901 -3.9768 48.7378 MeV -- 521.4044 MeV
- Nucleus output particle (LAB) : neutron -94.7901 3.9768 424.6217 MeV -- 1.0792 GeV
- (SCM) : neutron -94.7901 3.9768 -48.7378 MeV -- 993.3642 MeV
+ Output particle (LAB) : eta 87.8820 -11.2832 268.9474 MeV -- 599.6080 MeV
+ (SCM) : eta 87.8820 -11.2832 9.5854 MeV -- 535.9934 MeV
+ Nucleus output particle (LAB) : neutron -87.8820 11.2832 461.0526 MeV -- 1.0819 GeV
+ (SCM) : neutron -87.8820 11.2832 -9.5854 MeV -- 978.7752 MeV
-- triggered angular ranges:
- 3 [ 0.6000, 0.4000)
+ 5 [ 0.2000, 0.0000)
--- Energy Deposit
- monitor : 487.939 keV
+ monitor : 391.181 keV
vc (l) : 0 eV
vc (r) : 0 eV
- cal (l) : 379.247 MeV
- 0 0 0 0.3502 1.851 1.468
- 0 0 0 0.2306 8.521 130.5
- 0 0 0 1.326 39.86 159
- 0 0 0 2.407 0.7074 33.06
- cal (r) : 223.034 MeV
- 0 0 0 0.7442 0.2824 0
- 0 0 0.8335 194 9.476 0.1869
- 0 0 0.6028 11.23 3.561 0
- 0 0 0 0 1.033 1.087
+ cal (l) : 342.854 MeV
+ 0 0.6898 2.732 0.4682 0 0
+ 0.5553 1.797 48.27 158 0.4823 0
+ 1.63 0 15.2 106.4 0.1569 0
+ 0 0.5794 3.004 2.905 0 0
+ cal (r) : 256.754 MeV
+ 0 0.3548 0 0 0 0
+ 0 3.209 2.773 0 0 0
+ 0 24.83 215.7 0.3364 0 0
+ 0.4607 0 8.474 0.5967 0 0
+Event 5532
+ --- Track Points
+ monitor : pi- [1,bp] 728.1 MeV : 0.9728 -1.669 -0.125 cm [-0.01032, 0.009694, 0.9999]
+ target : pi- [1,bp] 727.2 MeV : 3.693 3.37 -1.346 cm [-0.6504, -0.7595, 0.01134]
+ : eta [3,op] 325.4 MeV : -0.8638 -1.95 -1.267 cm [-0.8771, -0.4561, 0.1507]
+ : neutron [4,np] 445.6 MeV : -0.8638 -1.95 -1.267 cm [-0.417, -0.9048, -0.08678]
+ : gamma [6,opdp] 243.4 MeV : -0.8638 -1.95 -1.267 cm [0.4065, -0.9134, 0.02197]
+ : gamma [5,opdp] 393.8 MeV : -0.8638 -1.95 -1.267 cm [-0.9759, 0.1877, 0.1109]
+ vc (l) : gamma [6,opdp] 243.4 MeV : -2.615 -0.006746 -0.25 cm [-0.01756, 0.02197, 0.9996]
+ vc (r) : gamma [5,opdp] 393.8 MeV : 6.308 5.27 -0.25 cm [0.07128, 0.1109, 0.9913]
+ cal (l) : gamma [6,opdp] 243.4 MeV : -2.637 0.02072 -15 cm [-0.01756, 0.02197, 0.9996]
+ cal (r) : gamma [5,opdp] 393.8 MeV : 6.398 5.41 -15 cm [0.07128, 0.1109, 0.9913]
+ ---
+ angle between the eta decay products : 124.455 deg
+ --- Triggered angular ranges:
+ 5 [ 0.2000, 0.0000)
+ --- Production model data:
+ Incident particle (LAB) : pi- -6.3958 10.3543 725.3913 MeV -- 738.7967 MeV
+ (SCM) : pi- -3.9688 6.4252 450.1344 MeV -- 471.3362 MeV
+ Nucleus particle (LAB) : proton -0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 3.9688 -6.4252 -450.1344 MeV -- 1.0407 GeV
+ Output particle (LAB) : eta -123.2078 49.0255 297.1071 MeV -- 637.1884 MeV
+ (SCM) : eta -120.8001 45.1276 24.0333 MeV -- 563.3467 MeV
+ Nucleus output particle (LAB) : neutron 116.8121 -38.6712 428.2842 MeV -- 1.0399 GeV
+ (SCM) : neutron 120.8001 -45.1276 -24.0333 MeV -- 948.6779 MeV
+ --- Reconstructed data:
+ -- entry points:
+ left: -4.67476 -0.52625 -15 cm
+ right: 7.92497 7.22525 -15 cm
+ target: 0 0 0 fm
+ -- the angle: 117.872 deg
+ -- mass of the output particle: 524.225 MeV
+ -- mass of the nucleus output particle: 953.026 MeV
+ -- production model data:
+ Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
+ (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
+ Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
+ Output particle (LAB) : eta -141.7245 46.3548 330.6557 MeV -- 637.4791 MeV
+ (SCM) : eta -141.7245 46.3548 59.8349 MeV -- 548.2943 MeV
+ Nucleus output particle (LAB) : neutron 141.7245 -46.3548 399.3443 MeV -- 1.0440 GeV
+ (SCM) : neutron 141.7245 -46.3548 -59.8349 MeV -- 966.4744 MeV
+ -- triggered angular ranges:
+ 4 [ 0.4000, 0.2000)
+ --- Energy Deposit
+ monitor : 712.665 keV
+ vc (l) : 0 eV
+ vc (r) : 0 eV
+ cal (l) : 229.509 MeV
+ 0 0 0 1.122 1.315 0
+ 0 0 1.6 116.5 5.155 1.607
+ 0 0 5.684 82.25 4.804 1.225
+ 0 0 0 5.474 0.938 1.838
+ cal (r) : 407.97 MeV
+ 11.86 324 20.49 1.183 0.7081 0
+ 1.38 45.6 1.898 0.2054 0 0
+ 0 0.656 0 0 0 0
+ 0 0 0 0 0 0
+Event 5835
+ --- Track Points
+ monitor : pi- [1,bp] 731.2 MeV : 1.468 -0.4614 -0.125 cm [0.01476, 0.01014, 0.9998]
+ target : pi- [1,bp] 730.6 MeV : 4.422 2.334 -0.2597 cm [-0.6322, -0.7748, 0.00558]
+ : eta [5,op] 266.8 MeV : 1.594 -1.124 -0.2319 cm [-0.1678, -0.9836, 0.06623]
+ : neutron [6,np] 515.2 MeV : 1.594 -1.124 -0.2319 cm [-0.8099, -0.5861, -0.02308]
+ : gamma [8,opdp] 242.8 MeV : 1.594 -1.124 -0.2319 cm [-0.9786, 0.1959, -0.06305]
+ : gamma [7,opdp] 366.6 MeV : 1.594 -1.124 -0.2319 cm [0.5261, -0.8456, 0.08997]
+ vc (l) : gamma [7,opdp] 366.6 MeV : 7.862 4.96 -0.25 cm [0.1194, 0.08997, 0.9888]
+ vc (r) : gamma [8,opdp] 242.8 MeV : 4.57 -4.067 -0.25 cm [0.06408, -0.06305, 0.996]
+ cal (l) : gamma [7,opdp] 366.6 MeV : 8.013 5.073 -15 cm [0.1194, 0.08997, 0.9888]
+ cal (r) : gamma [8,opdp] 242.8 MeV : 4.651 -4.146 -15 cm [0.06408, -0.06305, 0.996]
+ ---
+ angle between the eta decay products : 133.328 deg
+ --- Triggered angular ranges:
+ 7 [-0.2000, -0.4000)
+ --- Production model data:
+ Incident particle (LAB) : pi- 8.7976 5.7767 729.3561 MeV -- 742.6647 MeV
+ (SCM) : pi- 5.4506 3.5790 451.8780 MeV -- 472.9863 MeV
+ Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton -5.4506 -3.5790 -451.8780 MeV -- 1.0414 GeV
+ Output particle (LAB) : eta 134.3855 17.6694 229.7951 MeV -- 609.3687 MeV
+ (SCM) : eta 131.1526 15.5466 -38.2261 MeV -- 564.8510 MeV
+ Nucleus output particle (LAB) : neutron -125.5879 -11.8928 499.5610 MeV -- 1.0716 GeV
+ (SCM) : neutron -131.1526 -15.5466 38.2261 MeV -- 949.5720 MeV
+ --- Reconstructed data:
+ -- entry points:
+ left: 7.95622 3.2431 -15 cm
+ right: 6.46891 -4.896 -15 cm
+ target: 0 0 0 fm
+ -- the angle: 131.493 deg
+ -- mass of the output particle: 486.154 MeV
+ -- mass of the nucleus output particle: 1.00487 GeV
+ -- production model data:
+ Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
+ (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
+ Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
+ Output particle (LAB) : eta 122.1830 -0.3577 210.1020 MeV -- 543.5229 MeV
+ (SCM) : eta 122.1830 -0.3577 -28.7082 MeV -- 502.0941 MeV
+ Nucleus output particle (LAB) : neutron -122.1830 0.3577 519.8980 MeV -- 1.1380 GeV
+ (SCM) : neutron -122.1830 0.3577 28.7082 MeV -- 1.0127 GeV
+ -- triggered angular ranges:
+ 7 [-0.2000, -0.4000)
+ --- Energy Deposit
+ monitor : 434.3 keV
+ vc (l) : 0 eV
+ vc (r) : 0 eV
+ cal (l) : 324.432 MeV
+ 3.867 53.03 1.211 0 0 0
+ 15.36 237.8 4.804 0 1.771 0
+ 0 0 0.1599 0 0.2682 0
+ 0 4.315 1.356 0 0.4935 0
+ cal (r) : 219.091 MeV
+ 0 0 0 0 0 0
+ 0 0 0 0 0 0
+ 1.915 78.58 107.4 0.3045 0 0
+ 3.519 12.95 14.14 0.2942 0 0
+Event 9173
+ --- Track Points
+ monitor : pi- [1,bp] 738.3 MeV : -0.243 1.113 -0.125 cm [-0.0005352, 0.01233, 0.9999]
+ target : pi- [1,bp] 737.7 MeV : 3.035 3.973 1.483 cm [-0.6428, -0.766, 0.01232]
+ : eta [3,op] 364.5 MeV : 2.292 3.088 1.497 cm [-0.3121, -0.9468, -0.07819]
+ : neutron [4,np] 423.8 MeV : 2.292 3.088 1.497 cm [-0.8511, -0.5175, 0.08838]
+ : gamma [6,opdp] 231.5 MeV : 2.292 3.088 1.497 cm [-0.952, 0.2926, -0.09012]
+ : gamma [5,opdp] 426.5 MeV : 2.292 3.088 1.497 cm [0.2501, -0.968, -0.0179]
+ vc (l) : gamma [5,opdp] 426.5 MeV : -7.859 0.3938 -0.25 cm [-0.1824, -0.0179, 0.9831]
+ vc (r) : gamma [6,opdp] 231.5 MeV : -5.766 -3.951 -0.25 cm [-0.03621, -0.09012, 0.9953]
+ cal (l) : gamma [5,opdp] 426.5 MeV : -8.091 0.371 -15 cm [-0.1824, -0.0179, 0.9831]
+ cal (r) : gamma [6,opdp] 231.5 MeV : -5.811 -4.064 -15 cm [-0.03621, -0.09012, 0.9953]
+ ---
+ angle between the eta decay products : 121.314 deg
+ --- Triggered angular ranges:
+ 4 [ 0.4000, 0.2000)
+ --- Production model data:
+ Incident particle (LAB) : pi- -0.5974 8.9510 737.3252 MeV -- 750.4723 MeV
+ (SCM) : pi- -0.3690 5.5280 455.3631 MeV -- 476.3046 MeV
+ Nucleus particle (LAB) : proton -0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 0.3690 -5.5280 -455.3631 MeV -- 1.0429 GeV
+ Output particle (LAB) : eta 134.7048 -28.5003 337.4956 MeV -- 658.0377 MeV
+ (SCM) : eta 134.9331 -31.9209 55.7316 MeV -- 567.8773 MeV
+ Nucleus output particle (LAB) : neutron -135.3022 37.4513 399.8296 MeV -- 1.0307 GeV
+ (SCM) : neutron -134.9331 31.9209 -55.7316 MeV -- 951.3753 MeV
+ --- Reconstructed data:
+ -- entry points:
+ left: -10.6792 -0.139026 -15 cm
+ right: -5.48147 -3.79428 -15 cm
+ target: 0 0 0 fm
+ -- the angle: 125.038 deg
+ -- mass of the output particle: 582.991 MeV
+ -- mass of the nucleus output particle: 911.609 MeV
+ -- production model data:
+ Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
+ (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
+ Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
+ Output particle (LAB) : eta 112.2431 -16.8571 330.9529 MeV -- 679.9197 MeV
+ (SCM) : eta 112.2431 -16.8571 39.7118 MeV -- 595.2630 MeV
+ Nucleus output particle (LAB) : neutron -112.2431 16.8571 399.0471 MeV -- 1.0016 GeV
+ (SCM) : neutron -112.2431 16.8571 -39.7118 MeV -- 919.5057 MeV
+ -- triggered angular ranges:
+ 4 [ 0.4000, 0.2000)
+ --- Energy Deposit
+ monitor : 419.879 keV
+ vc (l) : 0 eV
+ vc (r) : 73.8959 keV
+ cal (l) : 427.22 MeV
+ 0 0 0 0 1.804 0.5269
+ 0 0 0 0.6654 108.9 88.34
+ 0 0 0 3.666 202.3 16.8
+ 0 0 0 0 2.468 1.806
+ cal (r) : 252.699 MeV
+ 0 0 0 0.3247 0 0
+ 0 0 0 0.0394 2.144 0
+ 0 0 0.1996 165.5 67.59 0
+ 0 0 0.3734 7.577 8.692 0.2958
+Event 11989
+ --- Track Points
+ monitor : pi- [1,bp] 732.7 MeV : 5.713 2.39 -1.25 mm [0.0007111, -0.02185, 0.9998]
+ target : pi- [1,bp] 732.1 MeV : 3.655 3.412 -0.3681 cm [-0.642, -0.7664, -0.02117]
+ : eta [3,op] 335.3 MeV : 2.674 -6.319 -4.798 mm [-0.8989, -0.438, -0.01139]
+ : neutron [4,np] 445.9 MeV : 2.674 -6.319 -4.798 mm [-0.3779, -0.9255, -0.02546]
+ : gamma [6,opdp] 253.2 MeV : 2.674 -6.319 -4.798 mm [0.2993, -0.9534, 0.03862]
+ : gamma [5,opdp] 389.1 MeV : 2.674 -6.319 -4.798 mm [-0.9694, 0.243, -0.03495]
+ vc (l) : gamma [6,opdp] 253.2 MeV : -7.744 1.784 -0.25 cm [-0.1317, 0.03862, 0.9905]
+ vc (r) : gamma [5,opdp] 389.1 MeV : 1.5 -2.549 -0.25 cm [0.0162, -0.03495, 0.9993]
+ cal (l) : gamma [6,opdp] 253.2 MeV : -7.911 1.833 -15 cm [-0.1317, 0.03862, 0.9905]
+ cal (r) : gamma [5,opdp] 389.1 MeV : 1.521 -2.593 -15 cm [0.0162, -0.03495, 0.9993]
+ ---
+ angle between the eta decay products : 121.541 deg
+ --- Triggered angular ranges:
+ 4 [ 0.4000, 0.2000)
+ --- Production model data:
+ Incident particle (LAB) : pi- -0.3209 -15.1739 730.7013 MeV -- 744.0662 MeV
+ (SCM) : pi- -0.1987 -9.3957 452.4520 MeV -- 473.5831 MeV
+ Nucleus particle (LAB) : proton 0.0000 -0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 0.1987 9.3957 -452.4520 MeV -- 1.0417 GeV
+ Output particle (LAB) : eta -136.4974 -3.8206 306.2638 MeV -- 642.3367 MeV
+ (SCM) : eta -136.3762 1.9105 30.2808 MeV -- 565.3953 MeV
+ Nucleus output particle (LAB) : neutron 136.1765 -11.3533 424.4374 MeV -- 1.0400 GeV
+ (SCM) : neutron 136.3762 -1.9105 -30.2808 MeV -- 949.8958 MeV
+ --- Reconstructed data:
+ -- entry points:
+ left: -8.36332 1.79503 -15 cm
+ right: 1.87467 -2.59788 -15 cm
+ target: 0 0 0 fm
+ -- the angle: 120.314 deg
+ -- mass of the output particle: 528.37 MeV
+ -- mass of the nucleus output particle: 965.238 MeV
+ -- production model data:
+ Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
+ (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
+ Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
+ Output particle (LAB) : eta -114.5921 -8.3528 302.5902 MeV -- 619.6264 MeV
+ (SCM) : eta -114.5921 -8.3528 37.2839 MeV -- 542.0019 MeV
+ Nucleus output particle (LAB) : neutron 114.5921 8.3528 427.4098 MeV -- 1.0619 GeV
+ (SCM) : neutron 114.5921 8.3528 -37.2839 MeV -- 972.7667 MeV
+ -- triggered angular ranges:
+ 4 [ 0.4000, 0.2000)
+ --- Energy Deposit
+ monitor : 413.041 keV
+ vc (l) : 0 eV
+ vc (r) : 121.824 keV
+ cal (l) : 253.076 MeV
+ 0 0 0.5126 0 1.264 1.047
+ 0 0 0 9.088 215.2 7.275
+ 0 0 0 4.79 11.05 2.125
+ 0 0 0.5998 0.09979 0 0
+ cal (r) : 366.551 MeV
+ 0 0 0 0.9747 0 0
+ 0 0 3.568 5.656 1.49 1.118
+ 0.2274 2.384 327.1 8.227 0 0
+ 0 12.39 2.301 1.063 0 0
+Event 14958
+ --- Track Points
+ monitor : pi- [1,bp] 727.3 MeV : 1.938 -1.806 -0.125 cm [0.0006512, -0.001342, 1]
+ target : pi- [1,bp] 726.8 MeV : 4.487 2.205 -1.857 cm [-0.6401, -0.7683, -0.001434]
+ : eta [3,op] 292.5 MeV : 1.916 -0.8811 -1.863 cm [-0.9127, -0.4025, -0.07029]
+ : neutron [4,np] 482.9 MeV : 1.916 -0.8811 -1.863 cm [-0.4084, -0.9119, 0.04163]
+ : gamma [6,opdp] 386.6 MeV : 1.916 -0.8811 -1.863 cm [-0.9723, 0.2319, -0.02884]
+ : gamma [5,opdp] 234.5 MeV : 1.916 -0.8811 -1.863 cm [0.4647, -0.8846, -0.04014]
+ vc (l) : gamma [5,opdp] 234.5 MeV : 4.071 -4.161 -0.25 cm [0.04728, -0.04014, 0.9981]
+ vc (r) : gamma [6,opdp] 386.6 MeV : 2.04 -3.619 -0.25 cm [0.02768, -0.02884, 0.9992]
+ cal (l) : gamma [5,opdp] 234.5 MeV : 4.13 -4.211 -15 cm [0.04728, -0.04014, 0.9981]
+ cal (r) : gamma [6,opdp] 386.6 MeV : 2.075 -3.655 -15 cm [0.02768, -0.02884, 0.9992]
+ ---
+ angle between the eta decay products : 130.977 deg
+ --- Triggered angular ranges:
+ 6 [ 0.0000, -0.2000)
+ --- Production model data:
+ Incident particle (LAB) : pi- 3.1612 -0.4583 725.8761 MeV -- 739.1794 MeV
+ (SCM) : pi- 1.9613 -0.2843 450.3645 MeV -- 471.4997 MeV
+ Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton -1.9613 0.2843 -450.3645 MeV -- 1.0408 GeV
+ Output particle (LAB) : eta -128.8206 -20.5606 261.7990 MeV -- 621.0547 MeV
+ (SCM) : eta -129.9945 -20.3904 -7.7666 MeV -- 563.4957 MeV
+ Nucleus output particle (LAB) : neutron 131.9818 20.1023 464.0771 MeV -- 1.0564 GeV
+ (SCM) : neutron 129.9945 20.3904 7.7666 MeV -- 948.7664 MeV
+ --- Reconstructed data:
+ -- entry points:
+ left: 4.94568 -2.73495 -15 cm
+ right: 0.727055 -3.47495 -15 cm
+ target: 0 0 0 fm
+ -- the angle: 133.66 deg
+ -- mass of the output particle: 561.119 MeV
+ -- mass of the nucleus output particle: 940.874 MeV
+ -- production model data:
+ Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
+ (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
+ Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
+ Output particle (LAB) : eta -85.5141 -32.6191 245.9114 MeV -- 619.4385 MeV
+ (SCM) : eta -85.5141 -32.6191 -25.5428 MeV -- 569.1081 MeV
+ Nucleus output particle (LAB) : neutron 85.5141 32.6191 484.0886 MeV -- 1.0621 GeV
+ (SCM) : neutron 85.5141 32.6191 25.5428 MeV -- 945.6605 MeV
+ -- triggered angular ranges:
+ 7 [-0.2000, -0.4000)
+ --- Energy Deposit
+ monitor : 361.566 keV
+ vc (l) : 0 eV
+ vc (r) : 0 eV
+ cal (l) : 256.854 MeV
+ 0 0.4093 0 0 0 0
+ 0.6243 7.337 1.295 0.3218 0 0
+ 1.231 38.48 199 1.878 0 0
+ 0.4083 0.5018 4.055 0.6078 0.7345 0
+ cal (r) : 362.584 MeV
+ 0 0 0 0 0 0
+ 0 0 3.932 1.1 2.855 0.2229
+ 0 1.971 319 8.975 1.216 0.9161
+ 0 2.645 16.35 2.634 0.7816 0
+Event 15853
+ --- Track Points
+ monitor : pi- [1,bp] 739.1 MeV : -9.982 -2.311 -1.25 mm [0.001653, 0.008939, 1]
+ target : pi- [1,bp] 738.6 MeV : 2.415 4.378 0.007223 cm [-0.6421, -0.7666, 0.008878]
+ : eta [3,op] 324.4 MeV : -1.076 0.2098 0.0555 cm [-0.8975, -0.4089, -0.1653]
+ : neutron [4,np] 473 MeV : -1.076 0.2098 0.0555 cm [-0.387, -0.9129, 0.1299]
+ : gamma [6,opdp] 222.8 MeV : -1.076 0.2098 0.0555 cm [0.5251, -0.8489, -0.06073]
+ : gamma [5,opdp] 413.9 MeV : -1.076 0.2098 0.0555 cm [-0.9859, 0.1364, -0.09683]
+ vc (l) : gamma [6,opdp] 222.8 MeV : 6.131 -3.583 -0.25 cm [0.1171, -0.06073, 0.9913]
+ vc (r) : gamma [5,opdp] 413.9 MeV : 7.281 -5.597 -0.25 cm [0.1234, -0.09683, 0.9876]
+ cal (l) : gamma [6,opdp] 222.8 MeV : 6.279 -3.66 -15 cm [0.1171, -0.06073, 0.9913]
+ cal (r) : gamma [5,opdp] 413.9 MeV : 7.437 -5.72 -15 cm [0.1234, -0.09683, 0.9876]
+ ---
+ angle between the eta decay products : 128.872 deg
+ --- Triggered angular ranges:
+ 5 [ 0.2000, 0.0000)
+ --- Production model data:
+ Incident particle (LAB) : pi- -0.4138 7.8247 737.1977 MeV -- 750.3344 MeV
+ (SCM) : pi- -0.2555 4.8327 455.3099 MeV -- 476.2461 MeV
+ Nucleus particle (LAB) : proton -0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 0.2555 -4.8327 -455.3099 MeV -- 1.0429 GeV
+ Output particle (LAB) : eta -137.7483 -53.6068 288.7390 MeV -- 636.6877 MeV
+ (SCM) : eta -137.5929 -56.5450 11.9230 MeV -- 567.8240 MeV
+ Nucleus output particle (LAB) : neutron 137.3345 61.4315 448.4587 MeV -- 1.0519 GeV
+ (SCM) : neutron 137.5929 56.5450 -11.9230 MeV -- 951.3435 MeV
+ --- Reconstructed data:
+ -- entry points:
+ left: 6.48787 -5.0803 -15 cm
+ right: 9.3996 -5.35848 -15 cm
+ target: 0 0 0 fm
+ -- the angle: 126.42 deg
+ -- mass of the output particle: 489.883 MeV
+ -- mass of the nucleus output particle: 1.00032 GeV
+ -- production model data:
+ Incident particle (LAB) : pi- 0.0000 0.0000 730.0000 MeV -- 743.2226 MeV
+ (SCM) : pi- 0.0000 0.0000 452.1737 MeV -- 473.2239 MeV
+ Nucleus particle (LAB) : proton 0.0000 0.0000 0.0000 eV -- 938.2720 MeV
+ (SCM) : proton 0.0000 0.0000 -452.1737 MeV -- 1.0415 GeV
+ Output particle (LAB) : eta -115.2671 -49.6293 271.3923 MeV -- 573.9240 MeV
+ (SCM) : eta -115.2671 -49.6293 24.6771 MeV -- 506.3043 MeV
+ Nucleus output particle (LAB) : neutron 115.2671 49.6293 458.6077 MeV -- 1.1076 GeV
+ (SCM) : neutron 115.2671 49.6293 -24.6771 MeV -- 1.0085 GeV
+ -- triggered angular ranges:
+ 5 [ 0.2000, 0.0000)
+ --- Energy Deposit
+ monitor : 347.533 keV
+ vc (l) : 0 eV
+ vc (r) : 0 eV
+ cal (l) : 202.966 MeV
+ 0 0 0 0 0 0
+ 0 0 0.6407 0 0 0
+ 0.6963 129.6 9.052 3.802 0.5266 0
+ 0.7059 53.28 3.997 0.5647 0.06886 0
+ cal (r) : 370.958 MeV
+ 0 0.4529 0 0 0 0
+ 1.702 2.223 0.2183 0.2983 0 0
+ 17.45 59.43 4.191 0.3686 0 0
+ 9.824 273.5 1.306 0 0 0
Run terminated.
Run Summary
- Number of events processed : 12934, effectively: 10
- User=9.510000s Real=9.993212s Sys=0.010000s
+ Number of events processed : 15854, effectively: 10
+ User=7.320000s Real=7.554676s Sys=0.000000s
--- Setup acceptances (range | real (trg / mon) | rec (trg / mon / all)):
- 1 [ 1.0000, 0.8000) | 0.00000000 ( 0 / 971 ) | 0.00102987 ( 1 / 971 / 1169 )
- 2 [ 0.8000, 0.6000) | 0.00096805 ( 1 / 1033 ) | 0.00096805 ( 1 / 1033 / 1257 )
- 3 [ 0.6000, 0.4000) | 0.00209864 ( 2 / 953 ) | 0.00209864 ( 2 / 953 / 1168 )
- 4 [ 0.4000, 0.2000) | 0.00102354 ( 1 / 977 ) | 0.00204708 ( 2 / 977 / 1187 )
- 5 [ 0.2000, 0.0000) | 0.00195503 ( 2 / 1023 ) | 0.00000000 ( 0 / 1023 / 1270 )
- 6 [ 0.0000, -0.2000) | 0.00102669 ( 1 / 974 ) | 0.00000000 ( 0 / 974 / 1214 )
- 7 [-0.2000, -0.4000) | 0.00000000 ( 0 / 1000 ) | 0.00000000 ( 0 / 1000 / 1204 )
- 8 [-0.4000, -0.6000) | 0.00000000 ( 0 / 958 ) | 0.00000000 ( 0 / 958 / 1195 )
- 9 [-0.6000, -0.8000) | 0.00101010 ( 1 / 990 ) | 0.00202020 ( 2 / 990 / 1223 )
- 10 [-0.8000, -1.0000) | 0.00188857 ( 2 / 1059 ) | 0.00188857 ( 2 / 1059 / 1278 )
+ 1 [ 1.0000, 0.8000) | 0.00080257 ( 1 / 1246 ) | 0.00080257 ( 1 / 1246 / 1522 )
+ 2 [ 0.8000, 0.6000) | 0.00000000 ( 0 / 1285 ) | 0.00000000 ( 0 / 1285 / 1563 )
+ 3 [ 0.6000, 0.4000) | 0.00000000 ( 0 / 1255 ) | 0.00000000 ( 0 / 1255 / 1545 )
+ 4 [ 0.4000, 0.2000) | 0.00254237 ( 3 / 1180 ) | 0.00254237 ( 3 / 1180 / 1462 )
+ 5 [ 0.2000, 0.0000) | 0.00167785 ( 2 / 1192 ) | 0.00167785 ( 2 / 1192 / 1478 )
+ 6 [ 0.0000, -0.2000) | 0.00084388 ( 1 / 1185 ) | 0.00084388 ( 1 / 1185 / 1463 )
+ 7 [-0.2000, -0.4000) | 0.00161681 ( 2 / 1237 ) | 0.00161681 ( 2 / 1237 / 1501 )
+ 8 [-0.4000, -0.6000) | 0.00087184 ( 1 / 1147 ) | 0.00000000 ( 0 / 1147 / 1428 )
+ 9 [-0.6000, -0.8000) | 0.00000000 ( 0 / 1169 ) | 0.00085543 ( 1 / 1169 / 1442 )
+ 10 [-0.8000, -1.0000) | 0.00000000 ( 0 / 1221 ) | 0.00000000 ( 0 / 1221 / 1526 )
---
False hits (edt | rec): 0 | 0
================== Deleting memory pools ===================
Number of memory pools allocated: 15; of which, static: 3
-Dynamic pools deleted: 12 / Total memory freed: 1 MB
+Dynamic pools deleted: 12 / Total memory freed: 0.87 MB
============================================================
diff --git a/examples/advanced/HGCal_testbeam/testbeam_electron.out b/examples/advanced/HGCal_testbeam/testbeam_electron.out
index 93ac130e37..ba76db09af 100644
--- a/examples/advanced/HGCal_testbeam/testbeam_electron.out
+++ b/examples/advanced/HGCal_testbeam/testbeam_electron.out
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -1650,10 +1650,13 @@ Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100 TeV
+Positron annihilation at rest model SimplePositronium
+Enable 3 gamma annihilation on fly 0
Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
@@ -1824,7 +1827,7 @@ ionIoni: for GenericIon XStype:3 SubType=2
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
- BraggIon : Emin= 0 eV Emax= 2 MeV
+ Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
msc: for alpha SubType= 10
@@ -2306,7 +2309,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
=======================================================================
====== Geant4 Native Pre-compound Model Parameters ========
=======================================================================
-Type of pre-compound inverse x-section 3
+Type of pre-compound inverse x-section 1
Pre-compound model active 1
Pre-compound excitation low energy 100 keV
Pre-compound excitation high energy 30 MeV
@@ -2331,7 +2334,7 @@ Use discrete excitation energy of the residual 0
Time limit for long lived isomeres 1 ns
Isomer production flag 1
Internal e- conversion flag 1
-Store e- internal conversion data 0
+Store e- internal conversion data 1
Correlated gamma emission flag 0
Max 2J for sampling of angular correlations 10
=======================================================================
diff --git a/examples/advanced/History b/examples/advanced/History
index 4dda256c1b..bfa413b470 100644
--- a/examples/advanced/History
+++ b/examples/advanced/History
@@ -6,6 +6,10 @@ It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
+## 2024-10-16 Hoang Tran (exadvanced-V11-02-01)
+- Created a new dna category in advanced example
+- Moved moleculardna example from extended dna example to advanced dna example.
+
## 2024-06-10 Gabriele Cosmo (exadvanced-V11-02-00)
- Updated GDML files to use short URL for schema validation.
- Initial overall History file for extended examples, used for global changes
diff --git a/examples/advanced/ICRP110_HumanPhantoms/ICRP110Phantoms.out b/examples/advanced/ICRP110_HumanPhantoms/ICRP110Phantoms.out
index 1b47ccf3d3..93d436fdde 100644
--- a/examples/advanced/ICRP110_HumanPhantoms/ICRP110Phantoms.out
+++ b/examples/advanced/ICRP110_HumanPhantoms/ICRP110Phantoms.out
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -34,7 +34,6 @@ Registered graphics systems are:
RayTracer (RayTracer)
VRML2FILE (VRML2FILE)
gMocrenFile (gMocrenFile)
- TOOLSSG_OFFSCREEN (TSG_OFFSCREEN)
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
OpenGLImmediateQt (OGLIQt, OGLI)
OpenGLStoredQt (OGLSQt, OGL, OGLS)
@@ -188,10 +187,13 @@ Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100 TeV
+Positron annihilation at rest model AllisonPositronium
+Enable 3 gamma annihilation on fly 1
Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
@@ -344,7 +346,7 @@ ePairProd: for e+ XStype:1 SubType=4
annihil: for e+ XStype:2 SubType=5 AtRestModel:Allison BuildTable=0
===== EM models for the G4Region DefaultRegionForTheWorld ======
- eplus2ggOKVI : Emin= 0 eV Emax= 100 TeV
+ eplusTo2or3gamma : Emin= 0 eV Emax= 100 TeV
CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0
@@ -613,7 +615,7 @@ CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1
PHP check 1
CHECK HP NAMES 0
Enable DEBUG 0
- Use probability tables from njoy
+ Use probability tables from
=======================================================
@@@ G4ParticleHPInelastic instantiated for particle neutron/n data directory is /cvmfs/geant4.cern.ch/share/data/G4NDL4.7.1/Inelastic
@@ -932,7 +934,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
=======================================================================
====== Geant4 Native Pre-compound Model Parameters ========
=======================================================================
-Type of pre-compound inverse x-section 3
+Type of pre-compound inverse x-section 1
Pre-compound model active 1
Pre-compound excitation low energy 100 keV
Pre-compound excitation high energy 30 MeV
@@ -961,8 +963,6 @@ Store e- internal conversion data 1
Correlated gamma emission flag 0
Max 2J for sampling of angular correlations 10
=======================================================================
-G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
-See commands in /vis/modeling/trajectories/ for other options.
/score/dumpQuantityToFile PhantomMesh energyDeposit PhantomMesh_Edep.txt
ICRP110UserScorer-defined DumpQuantityToFile() method is invoked.
Phantom Sex: male
@@ -1007,7 +1007,7 @@ Reading AM_organs.dat
Reading OrganMasses.dat
NOrganIDs: 142
Writing output to ICRP110.out
-Total energy deposited over all Organs within the Phantom is 1.42965e-09 J
-Total absorbed dose over all phantom organs is 3.74061e-09 Gy
+Total energy deposited over all Organs within the Phantom is 1.3753e-09 J
+Total absorbed dose over all phantom organs is 2.99616e-09 Gy
Graphics systems deleted.
Visualization Manager deleting...
diff --git a/examples/advanced/ICRP110_HumanPhantoms/OrganDoses.out b/examples/advanced/ICRP110_HumanPhantoms/OrganDoses.out
index a00414a978..bf20337751 100644
--- a/examples/advanced/ICRP110_HumanPhantoms/OrganDoses.out
+++ b/examples/advanced/ICRP110_HumanPhantoms/OrganDoses.out
@@ -2,30 +2,25 @@
--------------------------------
OrganID Edep (J) Dose (Gy)
--------------------------------
- 4 | 3.51939e-14 1.23879e-12
- 5 | 1.21784e-15 3.96304e-14
- 26 | 3.6424e-10 6.47135e-10
- 27 | 2.62636e-10 5.82264e-10
- 39 | 4.251e-12 5.5846e-11
- 40 | 3.0184e-12 4.08445e-11
- 47 | 1.11215e-20 1.08059e-19
- 48 | 1.05917e-13 1.44007e-12
- 61 | 4.9721e-10 3.42903e-10
- 100 | 2.08984e-20 9.24708e-18
- 106 | 6.01727e-11 4.94106e-11
- 116 | 1.43929e-10 1.3727e-10
- 120 | 2.67271e-11 6.29021e-10
- 121 | 2.06688e-11 4.8644e-10
- 122 | 4.48086e-11 1.53802e-10
- 133 | 1.29434e-15 3.06136e-14
- 134 | 1.84491e-12 6.12926e-10
+ 4 | 4.38393e-13 1.54309e-11
+ 26 | 3.35782e-10 5.96575e-10
+ 27 | 2.81717e-10 6.24568e-10
+ 39 | 6.86597e-16 9.01993e-15
+ 40 | 4.42992e-14 5.99448e-13
+ 47 | 2.22272e-12 2.15966e-11
+ 48 | 1.76483e-12 2.3995e-11
+ 61 | 4.50637e-10 3.10784e-10
+ 106 | 7.49143e-11 6.15156e-11
+ 116 | 1.42299e-10 1.35715e-10
+ 120 | 2.26191e-11 5.32339e-10
+ 121 | 2.27474e-11 5.35359e-10
+ 122 | 4.0111e-11 1.37678e-10
----------------------------------------------------------------------------
-------------------------------ORGAN INFO-----------------------------------
-----------------(of organs where edep/dose was recorded)-------------------
----------------------------------------------------------------------------
ID Organ Name Material ID Density (g/cm^3)
4 Posterior nasal passage down to larynx (ET2) 45 1.030
-5 Oral mucosa, tongue 29 1.050
26 Cranium, cortical 2 1.920
27 Cranium, spongiosa 8 1.157
39 Mandible, cortical 2 1.920
@@ -33,17 +28,14 @@ ID Organ Name Material ID Density (g/cm^3)
47 Cervical spine, cortical 2 1.920
48 Cervical spine, spongiosa 17 1.050
61 Brain 32 1.050
-100 Lymphatic nodes, extrathoracic airways 47 1.030
106 Muscle, head 29 1.050
116 Residual tissue, head 49 0.950
120 Salivary glands, left 45 1.030
121 Salivary glands, right 45 1.030
122 Skin, head 27 1.090
-133 Tongue (inner part) 29 1.050
-134 Tonsils 45 1.030
-Total Edep over all organs = 1.42965e-09 J
-Total dose absorbed over all organs = 3.74061e-09 Gy
+Total Edep over all organs = 1.3753e-09 J
+Total dose absorbed over all organs = 2.99616e-09 Gy
----------------------------------------------------------------------------
----------------ORGAN ENERGY DEPOSITIONS AND ABSORBED DOSE------------------
@@ -52,12 +44,12 @@ Total dose absorbed over all organs = 3.74061e-09 Gy
----------------------------------------------------------------------------
OrganID Edep (J) Dose (Gy)
-------------------------------
-0 | 1.87826e-11 0
+0 | 1.54735e-10 0
1 | 0 0
2 | 0 0
3 | 0 0
-4 | 3.51939e-14 1.23879e-12
-5 | 1.21784e-15 3.96304e-14
+4 | 4.38393e-13 1.54309e-11
+5 | 0 0
6 | 0 0
7 | 0 0
8 | 0 0
@@ -78,8 +70,8 @@ OrganID Edep (J) Dose (Gy)
23 | 0 0
24 | 0 0
25 | 0 0
-26 | 3.6424e-10 6.47135e-10
-27 | 2.62636e-10 5.82264e-10
+26 | 3.35782e-10 5.96575e-10
+27 | 2.81717e-10 6.24568e-10
28 | 0 0
29 | 0 0
30 | 0 0
@@ -91,16 +83,16 @@ OrganID Edep (J) Dose (Gy)
36 | 0 0
37 | 0 0
38 | 0 0
-39 | 4.251e-12 5.5846e-11
-40 | 3.0184e-12 4.08445e-11
+39 | 6.86597e-16 9.01993e-15
+40 | 4.42992e-14 5.99448e-13
41 | 0 0
42 | 0 0
43 | 0 0
44 | 0 0
45 | 0 0
46 | 0 0
-47 | 1.11215e-20 1.08059e-19
-48 | 1.05917e-13 1.44007e-12
+47 | 2.22272e-12 2.15966e-11
+48 | 1.76483e-12 2.3995e-11
49 | 0 0
50 | 0 0
51 | 0 0
@@ -113,7 +105,7 @@ OrganID Edep (J) Dose (Gy)
58 | 0 0
59 | 0 0
60 | 0 0
-61 | 4.9721e-10 3.42903e-10
+61 | 4.50637e-10 3.10784e-10
62 | 0 0
63 | 0 0
64 | 0 0
@@ -152,13 +144,13 @@ OrganID Edep (J) Dose (Gy)
97 | 0 0
98 | 0 0
99 | 0 0
-100 | 2.08984e-20 9.24708e-18
+100 | 0 0
101 | 0 0
102 | 0 0
103 | 0 0
104 | 0 0
105 | 0 0
-106 | 6.01727e-11 4.94106e-11
+106 | 7.49143e-11 6.15156e-11
107 | 0 0
108 | 0 0
109 | 0 0
@@ -168,13 +160,13 @@ OrganID Edep (J) Dose (Gy)
113 | 0 0
114 | 0 0
115 | 0 0
-116 | 1.43929e-10 1.3727e-10
+116 | 1.42299e-10 1.35715e-10
117 | 0 0
118 | 0 0
119 | 0 0
-120 | 2.67271e-11 6.29021e-10
-121 | 2.06688e-11 4.8644e-10
-122 | 4.48086e-11 1.53802e-10
+120 | 2.26191e-11 5.32339e-10
+121 | 2.27474e-11 5.35359e-10
+122 | 4.0111e-11 1.37678e-10
123 | 0 0
124 | 0 0
125 | 0 0
@@ -185,14 +177,14 @@ OrganID Edep (J) Dose (Gy)
130 | 0 0
131 | 0 0
132 | 0 0
-133 | 1.29434e-15 3.06136e-14
-134 | 1.84491e-12 6.12926e-10
+133 | 0 0
+134 | 0 0
135 | 0 0
136 | 0 0
137 | 0 0
138 | 0 0
139 | 0 0
-140 | 2.70402e-14 1.35201e-10
+140 | 2.94656e-14 1.47328e-10
141 | 0 0
-Total energy depositied over all organs = 1.42965e-09 J
-Total absorbed dose over all organs = 3.74061e-09 Gy
+Total energy depositied over all organs = 1.3753e-09 J
+Total absorbed dose over all organs = 2.99616e-09 Gy
diff --git a/examples/advanced/ICRP145_HumanPhantoms/ICRP145Phantoms.out b/examples/advanced/ICRP145_HumanPhantoms/ICRP145Phantoms.out
index e06d1a3f9e..db4f2746cc 100644
--- a/examples/advanced/ICRP145_HumanPhantoms/ICRP145Phantoms.out
+++ b/examples/advanced/ICRP145_HumanPhantoms/ICRP145Phantoms.out
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -237,7 +237,6 @@ Registered graphics systems are:
RayTracer (RayTracer)
VRML2FILE (VRML2FILE)
gMocrenFile (gMocrenFile)
- TOOLSSG_OFFSCREEN (TSG_OFFSCREEN)
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
OpenGLImmediateQt (OGLIQt, OGLI)
OpenGLStoredQt (OGLSQt, OGL, OGLS)
@@ -324,10 +323,13 @@ Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100.00000 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100.00000 TeV
+Positron annihilation at rest model AllisonPositronium
+Enable 3 gamma annihilation on fly 1
Lowest triplet kinetic energy 1.00000 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
@@ -480,7 +482,7 @@ ePairProd: for e+ XStype:1 SubType=4
annihil: for e+ XStype:2 SubType=5 AtRestModel:Allison BuildTable=0
===== EM models for the G4Region DefaultRegionForTheWorld ======
- eplus2ggOKVI : Emin=0.000000 eV Emax=100.000000 TeV
+ eplusTo2or3gamma : Emin=0.000000 eV Emax=100.000000 TeV
CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1
Lambda table from 100.000000 MeV to 100.000000 TeV, 20 bins/decade, spline: 0
@@ -749,7 +751,7 @@ CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1
PHP check 1
CHECK HP NAMES 0
Enable DEBUG 0
- Use probability tables from njoy
+ Use probability tables from
=======================================================
@@@ G4ParticleHPInelastic instantiated for particle neutron/n data directory is /cvmfs/geant4.cern.ch/share/data/G4NDL4.7.1/Inelastic
@@ -1068,7 +1070,7 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
=======================================================================
====== Geant4 Native Pre-compound Model Parameters ========
=======================================================================
-Type of pre-compound inverse x-section 3
+Type of pre-compound inverse x-section 1
Pre-compound model active 1
Pre-compound excitation low energy 100.00000 keV
Pre-compound excitation high energy 30.00000 MeV
@@ -1097,8 +1099,6 @@ Store e- internal conversion data 1
Correlated gamma emission flag 0
Max 2J for sampling of angular correlations 10
=======================================================================
-G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
-See commands in /vis/modeling/trajectories/ for other options.
--> Event 0 starts.
--> Event 100000 starts.
--> Event 200000 starts.
@@ -1114,193 +1114,193 @@ See commands in /vis/modeling/trajectories/ for other options.
Run #0 / Number of event processed : 1000000
=====================================================================
organ ID| Organ Mass (g) Dose (Gy/source) Relative Error
- 100| 8.683 2.422e-17 0.556
- 200| 8.683 2.773e-17 0.472
- 300| 0.022 3.663e-17 0.720
- 301| 0.090 6.460e-17 0.731
- 302| 0.028 6.385e-17 0.721
- 303| 11.291 5.794e-17 0.377
- 400| 0.141 1.120e-16 0.618
- 401| 0.390 8.655e-17 0.620
- 402| 0.098 5.745e-17 0.513
- 403| 0.049 8.356e-17 0.520
- 404| 0.098 7.863e-17 0.600
- 405| 28.808 4.134e-17 0.260
- 500| 0.086 7.946e-17 0.913
- 501| 0.024 3.193e-17 1.000
- 600| 0.023 0.000e+00 1.000
- 700| 10.364 1.738e-17 0.722
+ 100| 8.683 4.240e-17 0.487
+ 200| 8.683 5.539e-18 0.704
+ 300| 0.022 0.000e+00 1.000
+ 301| 0.090 0.000e+00 1.000
+ 302| 0.028 0.000e+00 1.000
+ 303| 11.291 5.241e-17 0.361
+ 400| 0.141 2.948e-17 0.632
+ 401| 0.390 3.898e-17 0.661
+ 402| 0.098 2.628e-17 0.741
+ 403| 0.049 2.780e-17 0.782
+ 404| 0.098 5.697e-17 0.772
+ 405| 28.808 3.438e-17 0.269
+ 500| 0.086 0.000e+00 1.000
+ 501| 0.024 0.000e+00 1.000
+ 600| 0.023 8.912e-17 0.786
+ 700| 10.364 9.615e-18 0.774
800| 0.025 0.000e+00 1.000
801| 0.031 0.000e+00 1.000
802| 0.052 0.000e+00 1.000
- 803| 0.130 3.583e-17 1.000
+ 803| 0.130 0.000e+00 1.000
804| 0.026 0.000e+00 1.000
805| 0.052 0.000e+00 1.000
806| 0.052 0.000e+00 1.000
807| 0.053 0.000e+00 1.000
- 808| 2.777 2.932e-17 0.893
- 900| 1.504 3.167e-17 0.604
- 910| 6.944 3.027e-17 0.615
- 1000| 193.197 2.314e-17 0.126
- 1010| 444.035 3.551e-17 0.071
- 1100| 32.463 2.814e-17 0.292
- 1110| 167.269 3.172e-17 0.122
- 1200| 108.832 2.025e-17 0.161
- 1210| 389.741 2.711e-17 0.087
- 1300| 159.196 2.206e-17 0.136
- 1400| 145.689 2.787e-17 0.152
- 1500| 34.244 1.711e-17 0.364
- 1600| 106.720 2.604e-17 0.163
- 1700| 50.890 2.497e-17 0.222
- 1800| 37.397 2.496e-17 0.302
- 1900| 273.409 2.544e-17 0.107
- 2000| 154.981 2.305e-17 0.154
- 2100| 22.996 2.672e-17 0.334
- 2200| 181.529 3.190e-17 0.114
- 2300| 118.927 3.657e-17 0.138
- 2400| 48.252 3.008e-17 0.230
- 2500| 45.057 2.871e-17 0.251
- 2600| 568.469 1.728e-17 0.090
- 2700| 382.073 1.990e-17 0.101
- 2800| 253.548 3.144e-17 0.096
- 2900| 413.232 3.135e-17 0.080
- 3000| 26.045 3.804e-17 0.274
- 3100| 307.761 2.980e-17 0.090
- 3200| 373.652 2.812e-17 0.092
- 3300| 82.179 2.709e-17 0.192
- 3400| 536.651 2.485e-17 0.078
- 3500| 621.408 2.509e-17 0.074
- 3600| 79.815 2.805e-17 0.188
- 3700| 234.882 2.043e-17 0.122
- 3800| 432.615 1.912e-17 0.103
- 3900| 76.877 2.337e-17 0.200
- 4000| 56.287 2.823e-17 0.212
- 4100| 402.595 3.221e-17 0.072
- 4200| 619.672 3.197e-17 0.065
- 4300| 368.797 2.683e-17 0.080
- 4400| 457.351 2.382e-17 0.082
- 4500| 223.333 1.405e-17 0.137
- 4600| 156.670 1.827e-17 0.161
- 4700| 103.943 2.565e-17 0.161
- 4800| 78.915 3.092e-17 0.183
- 4900| 289.440 1.488e-17 0.124
- 5000| 345.222 1.915e-17 0.109
- 5100| 188.047 2.511e-17 0.118
- 5200| 291.584 2.382e-17 0.103
- 5300| 110.320 2.147e-17 0.168
- 5400| 192.224 2.880e-17 0.121
- 5500| 9.991 2.377e-17 0.415
- 5600| 61.420 4.888e-17 0.159
- 5700| 56.331 3.414e-17 0.201
- 5800| 82.063 1.867e-17 0.213
- 6100| 1517.390 1.500e-17 0.066
- 6200| 7.769 5.054e-17 0.515
- 6300| 5.180 2.671e-17 0.837
- 6400| 7.769 2.622e-17 0.551
- 6500| 5.180 4.736e-17 0.696
- 6600| 0.039 3.995e-16 1.000
- 6601| 0.189 2.218e-16 1.000
- 6700| 1.113 6.825e-18 0.965
- 6701| 0.308 2.024e-16 1.000
- 6702| 6.122 5.393e-18 0.718
+ 808| 2.777 8.212e-18 0.792
+ 900| 1.504 0.000e+00 1.000
+ 910| 6.944 5.052e-18 0.733
+ 1000| 193.197 2.944e-17 0.114
+ 1010| 444.035 3.343e-17 0.072
+ 1100| 32.463 2.325e-17 0.320
+ 1110| 167.269 2.792e-17 0.131
+ 1200| 108.832 2.982e-17 0.156
+ 1210| 389.741 2.462e-17 0.090
+ 1300| 159.196 2.676e-17 0.140
+ 1400| 145.689 2.981e-17 0.141
+ 1500| 34.244 3.955e-17 0.245
+ 1600| 106.720 3.229e-17 0.153
+ 1700| 50.890 3.007e-17 0.218
+ 1800| 37.397 2.285e-17 0.308
+ 1900| 273.409 3.296e-17 0.096
+ 2000| 154.981 3.259e-17 0.128
+ 2100| 22.996 5.044e-17 0.292
+ 2200| 181.529 2.974e-17 0.123
+ 2300| 118.927 3.104e-17 0.148
+ 2400| 48.252 3.587e-17 0.212
+ 2500| 45.057 2.751e-17 0.229
+ 2600| 568.469 1.351e-17 0.099
+ 2700| 382.073 1.800e-17 0.113
+ 2800| 253.548 2.999e-17 0.103
+ 2900| 413.232 2.968e-17 0.082
+ 3000| 26.045 3.625e-17 0.305
+ 3100| 307.761 3.063e-17 0.091
+ 3200| 373.652 2.999e-17 0.089
+ 3300| 82.179 3.282e-17 0.176
+ 3400| 536.651 2.577e-17 0.076
+ 3500| 621.408 2.688e-17 0.073
+ 3600| 79.815 2.992e-17 0.182
+ 3700| 234.882 2.045e-17 0.131
+ 3800| 432.615 1.984e-17 0.100
+ 3900| 76.877 2.371e-17 0.204
+ 4000| 56.287 1.905e-17 0.267
+ 4100| 402.595 3.094e-17 0.074
+ 4200| 619.672 3.249e-17 0.063
+ 4300| 368.797 1.863e-17 0.085
+ 4400| 457.351 2.139e-17 0.088
+ 4500| 223.333 1.821e-17 0.125
+ 4600| 156.670 1.967e-17 0.159
+ 4700| 103.943 1.895e-17 0.177
+ 4800| 78.915 2.624e-17 0.204
+ 4900| 289.440 1.554e-17 0.113
+ 5000| 345.222 2.017e-17 0.102
+ 5100| 188.047 2.375e-17 0.124
+ 5200| 291.584 2.630e-17 0.101
+ 5300| 110.320 2.339e-17 0.151
+ 5400| 192.224 2.621e-17 0.123
+ 5500| 9.991 3.959e-17 0.343
+ 5600| 61.420 3.807e-17 0.183
+ 5700| 56.331 3.602e-17 0.196
+ 5800| 82.063 2.358e-17 0.181
+ 6100| 1517.390 1.477e-17 0.066
+ 6200| 7.769 3.690e-17 0.504
+ 6300| 5.180 5.758e-17 0.559
+ 6400| 7.769 6.376e-17 0.459
+ 6500| 5.180 2.058e-17 0.688
+ 6600| 0.039 0.000e+00 1.000
+ 6601| 0.189 0.000e+00 1.000
+ 6700| 1.113 5.809e-17 1.000
+ 6701| 0.308 0.000e+00 1.000
+ 6702| 6.122 4.283e-17 0.591
6800| 0.039 0.000e+00 1.000
6801| 0.189 0.000e+00 1.000
- 6900| 1.113 0.000e+00 1.000
+ 6900| 1.113 6.459e-17 0.772
6901| 0.308 0.000e+00 1.000
- 6902| 6.122 0.000e+00 1.000
- 7000| 10.364 3.594e-17 0.351
- 7100| 58.000 2.586e-17 0.213
- 7200| 1.784 2.939e-17 0.534
- 7201| 1.193 2.954e-17 0.585
- 7202| 6.008 2.521e-17 0.370
- 7203| 185.286 2.810e-17 0.119
- 7300| 250.000 3.064e-17 0.103
- 7400| 14.547 4.045e-17 0.190
- 7401| 2.264 3.277e-17 0.277
- 7402| 5.692 3.109e-17 0.208
- 7403| 840.096 3.461e-17 0.052
- 7500| 53.337 3.749e-17 0.149
- 7501| 296.663 3.493e-17 0.086
- 7600| 3.071 5.940e-17 0.435
- 7601| 0.223 4.283e-17 0.464
- 7602| 116.634 4.003e-17 0.134
- 7700| 55.000 4.338e-17 0.174
- 7800| 3.993 1.945e-17 0.496
- 7801| 0.289 1.970e-17 0.562
- 7802| 75.671 3.276e-17 0.177
- 7900| 95.000 3.089e-17 0.165
- 8000| 2.824 5.872e-17 0.384
- 8001| 0.205 3.904e-17 0.505
- 8002| 76.924 4.475e-17 0.155
- 8100| 40.000 5.249e-17 0.200
- 8200| 2.779 5.606e-17 0.508
- 8201| 0.203 6.527e-17 0.630
- 8202| 116.946 3.027e-17 0.145
- 8300| 35.000 4.024e-17 0.246
- 8400| 4.451 3.333e-17 0.394
- 8401| 0.324 2.707e-17 0.417
- 8402| 48.524 3.396e-17 0.216
- 8500| 75.000 3.793e-17 0.176
- 8600| 39.976 1.818e-17 0.309
- 8700| 385.839 2.972e-17 0.084
- 8800| 510.000 2.743e-17 0.079
- 8900| 162.338 2.554e-17 0.136
- 9000| 38.359 1.752e-17 0.336
- 9100| 7.652 2.196e-17 0.728
- 9200| 166.542 2.393e-17 0.130
- 9300| 39.362 2.402e-17 0.282
- 9400| 7.892 3.755e-17 0.568
- 9500| 2360.000 2.561e-17 0.040
- 9700| 545.877 2.553e-17 0.077
- 9900| 652.861 2.339e-17 0.074
- 10000| 15.949 2.699e-17 0.413
- 10100| 15.949 1.041e-17 0.466
- 10200| 5.510 1.660e-17 0.570
- 10300| 130.204 3.505e-17 0.125
- 10400| 11.019 3.075e-17 0.432
- 10500| 11.019 2.954e-17 0.547
- 10600| 1200.828 2.391e-17 0.056
- 10700| 14844.730 2.650e-17 0.016
- 10800| 2843.507 3.053e-17 0.032
- 10900| 10887.729 2.760e-17 0.018
- 11000| 1.919 1.286e-17 0.596
- 11001| 0.103 1.388e-17 0.904
- 11002| 49.783 1.936e-17 0.266
- 11003| 22.870 2.149e-17 0.371
- 11300| 173.631 3.290e-17 0.119
- 11400| 0.622 1.852e-17 0.974
- 11500| 17.618 4.374e-17 0.326
- 11600| 975.622 2.174e-17 0.063
- 11700| 11176.900 2.975e-17 0.016
- 11800| 1549.842 2.890e-17 0.043
- 11900| 4510.134 2.681e-17 0.027
- 12000| 44.045 1.480e-17 0.356
- 12100| 44.045 2.606e-17 0.292
- 12200| 259.230 1.439e-17 0.136
- 12201| 8.470 1.681e-17 0.305
- 12300| 1271.006 2.172e-17 0.049
- 12301| 38.418 1.171e-17 0.156
- 12400| 575.709 2.669e-17 0.067
- 12401| 18.843 1.954e-17 0.155
- 12500| 1259.982 2.518e-17 0.049
- 12501| 37.790 1.591e-17 0.149
- 12600| 37.952 1.460e-17 0.323
- 12700| 228.400 1.503e-17 0.146
- 12800| 50.727 2.016e-17 0.309
- 12801| 0.043 0.000e+00 1.000
- 12900| 18.617 2.163e-17 0.406
- 13000| 18.617 4.617e-17 0.326
- 13100| 25.909 1.265e-17 0.388
- 13200| 23.351 4.138e-17 0.299
- 13300| 20.993 1.222e-17 0.493
- 13301| 54.552 2.871e-17 0.226
- 13400| 3.109 2.423e-17 0.806
- 13500| 8.809 4.004e-17 0.450
- 13600| 7.773 6.183e-17 0.461
- 13700| 49.781 5.724e-17 0.172
- 13701| 1.318 4.167e-17 0.476
- 13800| 200.000 3.619e-17 0.106
- 14000| 0.140 3.904e-17 0.591
+ 6902| 6.122 3.014e-17 0.555
+ 7000| 10.364 2.634e-17 0.377
+ 7100| 58.000 3.245e-17 0.211
+ 7200| 1.784 4.854e-17 0.423
+ 7201| 1.193 3.482e-17 0.329
+ 7202| 6.008 3.263e-17 0.313
+ 7203| 185.286 3.641e-17 0.109
+ 7300| 250.000 3.120e-17 0.102
+ 7400| 14.547 3.062e-17 0.225
+ 7401| 2.264 3.725e-17 0.257
+ 7402| 5.692 3.531e-17 0.229
+ 7403| 840.096 3.449e-17 0.052
+ 7500| 53.337 3.657e-17 0.144
+ 7501| 296.663 3.660e-17 0.082
+ 7600| 3.071 4.957e-18 1.000
+ 7601| 0.223 4.611e-18 1.000
+ 7602| 116.634 2.711e-17 0.158
+ 7700| 55.000 3.043e-17 0.216
+ 7800| 3.993 2.107e-17 0.546
+ 7801| 0.289 1.109e-17 0.513
+ 7802| 75.671 2.953e-17 0.180
+ 7900| 95.000 3.380e-17 0.157
+ 8000| 2.824 1.259e-17 0.556
+ 8001| 0.205 1.417e-17 0.679
+ 8002| 76.924 3.222e-17 0.167
+ 8100| 40.000 4.300e-17 0.222
+ 8200| 2.779 4.069e-17 0.559
+ 8201| 0.203 4.342e-17 0.653
+ 8202| 116.946 3.931e-17 0.129
+ 8300| 35.000 2.635e-17 0.291
+ 8400| 4.451 2.109e-17 0.529
+ 8401| 0.324 2.993e-17 0.677
+ 8402| 48.524 4.097e-17 0.191
+ 8500| 75.000 4.285e-17 0.161
+ 8600| 39.976 3.327e-17 0.233
+ 8700| 385.839 2.747e-17 0.088
+ 8800| 510.000 2.351e-17 0.084
+ 8900| 162.338 2.166e-17 0.154
+ 9000| 38.359 3.398e-17 0.247
+ 9100| 7.652 3.048e-17 0.499
+ 9200| 166.542 2.312e-17 0.132
+ 9300| 39.362 1.807e-17 0.292
+ 9400| 7.892 2.579e-17 0.652
+ 9500| 2360.000 2.780e-17 0.038
+ 9700| 545.877 2.450e-17 0.078
+ 9900| 652.861 2.872e-17 0.066
+ 10000| 15.949 1.800e-17 0.528
+ 10100| 15.949 9.181e-18 0.413
+ 10200| 5.510 6.634e-17 0.493
+ 10300| 130.204 3.902e-17 0.123
+ 10400| 11.019 4.496e-17 0.435
+ 10500| 11.019 3.310e-17 0.463
+ 10600| 1200.828 2.150e-17 0.059
+ 10700| 14844.730 2.689e-17 0.015
+ 10800| 2843.507 3.005e-17 0.032
+ 10900| 10887.729 2.824e-17 0.018
+ 11000| 1.919 2.190e-17 0.461
+ 11001| 0.103 8.685e-18 0.615
+ 11002| 49.783 2.967e-17 0.234
+ 11003| 22.870 1.990e-17 0.383
+ 11300| 173.631 3.738e-17 0.112
+ 11400| 0.622 1.928e-17 1.000
+ 11500| 17.618 3.675e-17 0.320
+ 11600| 975.622 2.198e-17 0.063
+ 11700| 11176.900 2.934e-17 0.017
+ 11800| 1549.842 3.191e-17 0.041
+ 11900| 4510.134 2.785e-17 0.026
+ 12000| 44.045 2.755e-17 0.265
+ 12100| 44.045 1.929e-17 0.300
+ 12200| 259.230 1.705e-17 0.126
+ 12201| 8.470 1.146e-17 0.312
+ 12300| 1271.006 2.166e-17 0.049
+ 12301| 38.418 1.925e-17 0.163
+ 12400| 575.709 2.520e-17 0.070
+ 12401| 18.843 2.245e-17 0.191
+ 12500| 1259.982 2.337e-17 0.049
+ 12501| 37.790 1.449e-17 0.155
+ 12600| 37.952 1.906e-17 0.315
+ 12700| 228.400 1.369e-17 0.161
+ 12800| 50.727 2.408e-17 0.259
+ 12801| 0.043 4.337e-17 0.784
+ 12900| 18.617 3.190e-17 0.382
+ 13000| 18.617 2.434e-17 0.370
+ 13100| 25.909 2.885e-17 0.360
+ 13200| 23.351 3.294e-17 0.331
+ 13300| 20.993 1.072e-17 0.594
+ 13301| 54.552 2.224e-17 0.271
+ 13400| 3.109 0.000e+00 1.000
+ 13500| 8.809 4.102e-17 0.469
+ 13600| 7.773 5.416e-17 0.409
+ 13700| 49.781 3.712e-17 0.187
+ 13701| 1.318 3.656e-17 0.381
+ 13800| 200.000 4.324e-17 0.099
+ 14000| 0.140 1.798e-17 0.536
=====================================================================
Graphics systems deleted.
diff --git a/examples/advanced/STCyclotron/History b/examples/advanced/STCyclotron/History
index 1f8dacc184..c322ed20e8 100644
--- a/examples/advanced/STCyclotron/History
+++ b/examples/advanced/STCyclotron/History
@@ -6,6 +6,9 @@ It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
+## 2024-08-12 I. Hrivnacova (STCyclotron-V11-02-00)
+- Removed unused include of G4AccumulableManager.hh from STCyclotronRunAction.cc
+
## 2023-12-04 S. Guatelli (STCyclotron-V11-01-02)
- Corrected the PrimaryGeneratorAction to solve problem #2538.
- Warning in vacuum_density corrected.
diff --git a/examples/advanced/STCyclotron/STCyclotron.out b/examples/advanced/STCyclotron/STCyclotron.out
index 15629bb3dc..e297b6bd06 100644
--- a/examples/advanced/STCyclotron/STCyclotron.out
+++ b/examples/advanced/STCyclotron/STCyclotron.out
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -134,6 +134,7 @@ Index : 6 used in the geometry : Yes
==================================================================
Start closing geometry.
+--------------------------------------------------------------------------------
G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Total memory consumed for geometry optimisation: 1 kByte
@@ -148,6 +149,8 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Percent Memory Heads Nodes Pointers Total CPU Volume
------- -------- ------ ------ -------- ---------- ----------
100.00 1k 5 13 86 0.00 World
+--------------------------------------------------------------------------------
+
### Run 0 starts.
... set ntuple merging row mode : row-wise - done
... create file : SolidTargetCyclotron.root - done
@@ -156,14 +159,14 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Run terminated.
Run Summary
Number of events processed : 10
- User=20.980000s Real=22.158684s Sys=0.000000s
+ User=20.670000s Real=21.343105s Sys=0.010000s
... write file : SolidTargetCyclotron.root - done
... close file : SolidTargetCyclotron.root - done
G4 kernel has come to Quit state.
Deleting G4Run (id:0)
-UserDetectorConstruction deleted 0x17fd590
-UserPhysicsList deleted 0x1804ab0
-UserActionInitialization deleted 0x198d500
+UserDetectorConstruction deleted 0x13e1c90
+UserPhysicsList deleted 0x13e91f0
+UserActionInitialization deleted 0x156fb60
UserWorkerInitialization deleted 0
UserWorkerThreadInitialization deleted 0
UserRunAction deleted.
diff --git a/examples/advanced/STCyclotron/src/STCyclotronRunAction.cc b/examples/advanced/STCyclotron/src/STCyclotronRunAction.cc
index c79dd158a3..273f518cd9 100644
--- a/examples/advanced/STCyclotron/src/STCyclotronRunAction.cc
+++ b/examples/advanced/STCyclotron/src/STCyclotronRunAction.cc
@@ -38,7 +38,6 @@
#include "G4UserRunAction.hh"
#include "G4Run.hh"
#include "G4RunManager.hh"
-#include "G4AccumulableManager.hh"
#include "G4LogicalVolumeStore.hh"
#include "G4LogicalVolume.hh"
#include "G4UnitsTable.hh"
diff --git a/examples/advanced/air_shower/air_shower.out b/examples/advanced/air_shower/air_shower.out
index b59e694058..99d57a73e5 100644
--- a/examples/advanced/air_shower/air_shower.out
+++ b/examples/advanced/air_shower/air_shower.out
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -159,7 +159,6 @@ Registered graphics systems are:
RayTracer (RayTracer)
VRML2FILE (VRML2FILE)
gMocrenFile (gMocrenFile)
- TOOLSSG_OFFSCREEN (TSG_OFFSCREEN)
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
OpenGLImmediateQt (OGLIQt, OGLI)
OpenGLStoredQt (OGLSQt, OGL, OGLS)
@@ -293,10 +292,13 @@ Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100 TeV
+Positron annihilation at rest model SimplePositronium
+Enable 3 gamma annihilation on fly 0
Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
@@ -467,7 +469,7 @@ ionIoni: for GenericIon XStype:3 SubType=2
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
- BraggIon : Emin= 0 eV Emax= 2 MeV
+ Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
msc: for alpha SubType= 10
@@ -753,6 +755,7 @@ Index : 3 used in the geometry : Yes
==================================================================
Start closing geometry.
+--------------------------------------------------------------------------------
G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Total memory consumed for geometry optimisation: 1 kByte
@@ -769,14 +772,14 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
------- -------- ------ ------ -------- ---------- ----------
52.31 0k 1 13 26 0.00 LensMotherLV
47.69 0k 3 9 22 0.00 World
-G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
-See commands in /vis/modeling/trajectories/ for other options.
+--------------------------------------------------------------------------------
+
### Run 0 starts.
ooo Run 0 starts (global).
--------- Ranlux engine status ---------
- Initial seed = 1719414333
- float_seed_table[] = 0.175047 0.486924 0.938101 0.260933 0.0250564 0.610063 0.19077 0.647262 0.688288 0.304093 0.131578 0.0703431 0.779271 0.826493 0.344645 0.826125 0.567265 0.697638 0.468342 0.317728 0.735822 0.239019 0.246665 0.261269
+ Initial seed = 1733190394
+ float_seed_table[] = 0.360882 0.447177 0.444575 0.252963 0.260974 0.65486 0.72269 0.814901 0.520089 0.905083 0.124839 0.405592 0.544422 0.665476 0.540874 0.674277 0.70344 0.544798 0.58117 0.107627 0.702365 0.587153 0.375013 0.819679
i_lag = 23, j_lag = 9
carry = 0, count24 = 0
luxury = 3 nskip = 199
@@ -787,15 +790,15 @@ mu- Mono Plane
Run terminated.
Run Summary
Number of events processed : 100
- User=1.270000s Real=1.348591s Sys=0.000000s
+ User=1.580000s Real=1.601909s Sys=0.000000s
### Run 0 (global) ended.
Graphics systems deleted.
Visualization Manager deleting...
G4 kernel has come to Quit state.
Deleting G4Run (id:0)
-UserDetectorConstruction deleted 0x1ab5900
-UserPhysicsList deleted 0x1af7488
-UserActionInitialization deleted 0x1c8b820
+UserDetectorConstruction deleted 0x2174bc0
+UserPhysicsList deleted 0x21b5d68
+UserActionInitialization deleted 0x234abd0
UserWorkerInitialization deleted 0
UserWorkerThreadInitialization deleted 0
UserRunAction deleted.
@@ -810,18 +813,18 @@ G4RNGHelper object is deleted.
================== Deleting memory pools ===================
Pool ID '20G4NavigationLevelRep', size : 0.0135 MB
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
-Pool ID '17G4DynamicParticle', size : 0.024 MB
+Pool ID '17G4DynamicParticle', size : 0.0231 MB
Pool ID '7G4Event', size : 0.000961 MB
Pool ID '15G4PrimaryVertex', size : 0.000961 MB
Pool ID '17G4PrimaryParticle', size : 0.000961 MB
Pool ID '15G4HCofThisEvent', size : 0.000961 MB
Pool ID '16G4HitsCollection', size : 0.000961 MB
-Pool ID '7G4Track', size : 0.0471 MB
+Pool ID '7G4Track', size : 0.0461 MB
Pool ID '18G4TouchableHistory', size : 0.000961 MB
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
-Pool ID '15UltraOpticalHit', size : 0.000961 MB
+Pool ID '15UltraOpticalHit', size : 0.00385 MB
Number of memory pools allocated: 12 of which, static: 0
-Dynamic pools deleted: 12 / Total memory freed: 0.093 MB
+Dynamic pools deleted: 12 / Total memory freed: 0.094 MB
============================================================
G4Allocator objects are deleted.
UImanager deleted.
diff --git a/examples/advanced/amsEcal/run1.out b/examples/advanced/amsEcal/run1.out
index ada630c06b..b9f53c0ac4 100644
--- a/examples/advanced/amsEcal/run1.out
+++ b/examples/advanced/amsEcal/run1.out
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -62,7 +62,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
ElmMassFraction: 30.00 % ElmAbundance 27.29 %
- Material: Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 113427284.261 pc
+ Material: Galactic density: 0.000 mg/cm3 RadL: 204310098.490 pc Nucl.Int.Length: 3240.779 pc
Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm
---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole
@@ -158,6 +158,7 @@ Index : 2 used in the geometry : Yes
==================================================================
Start closing geometry.
+--------------------------------------------------------------------------------
G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Total memory consumed for geometry optimisation: 32 kByte
@@ -176,6 +177,8 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
94.74 30k 1 490 980 0.00 layer
3.16 1k 1 17 20 0.00 module
2.10 0k 1 10 18 0.00 calorimeter
+--------------------------------------------------------------------------------
+
### Run 0 starts.
------- MixMaxRng engine status -------
@@ -196,7 +199,7 @@ N=17 V[N]={906770732717044781, 629165745432651234, 1235682547346241386, 68420008
Run terminated.
Run Summary
Number of events processed : 10000
- User=3.410000s Real=3.858164s Sys=0.000000s
+ User=3.730000s Real=3.881180s Sys=0.000000s
-------------------------------------------------------------
---> The calorimeter is 9 Modules
@@ -244,88 +247,88 @@ Run Summary
layer 23: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
layer 24: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
layer 25: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
- layer 26: 508.63 eV +- 50.86 keV (1e+04 %) 35.94 eV +- 3.594 keV (1e+04 %)
- layer 27: 1.31 keV +- 131 keV (1e+04 %) 144.69 eV +- 14.47 keV (1e+04 %)
- layer 28: 1.8422 keV +- 184.2 keV (1e+04 %) 142.6 eV +- 14.26 keV (1e+04 %)
- layer 29: 925.67 eV +- 92.56 keV (1e+04 %) 85.879 eV +- 8.587 keV (1e+04 %)
- layer 30: 1.3123 keV +- 131.2 keV (1e+04 %) 133.51 eV +- 13.35 keV (1e+04 %)
- layer 31: 1.0592 keV +- 105.9 keV (1e+04 %) 100.2 eV +- 10.02 keV (1e+04 %)
- layer 32: 2.3302 keV +- 233 keV (1e+04 %) 142.69 eV +- 14.27 keV (1e+04 %)
- layer 33: 1.2736 keV +- 127.4 keV (1e+04 %) 129.42 eV +- 12.94 keV (1e+04 %)
- layer 34: 1.0782 keV +- 107.8 keV (1e+04 %) 96.262 eV +- 9.626 keV (1e+04 %)
- layer 35: 1.0338 keV +- 103.4 keV (1e+04 %) 116.97 eV +- 11.7 keV (1e+04 %)
- layer 36: 1.2998 keV +- 130 keV (1e+04 %) 112.37 eV +- 11.24 keV (1e+04 %)
- layer 37: 1.1875 keV +- 118.7 keV (1e+04 %) 101.5 eV +- 10.15 keV (1e+04 %)
- layer 38: 1.5113 keV +- 151.1 keV (1e+04 %) 139.21 eV +- 13.92 keV (1e+04 %)
- layer 39: 1.0974 keV +- 109.7 keV (1e+04 %) 142.31 eV +- 14.23 keV (1e+04 %)
- layer 40: 1.7981 keV +- 179.8 keV (1e+04 %) 442.45 eV +- 44.24 keV (1e+04 %)
- layer 41: 1.4551 keV +- 145.5 keV (1e+04 %) 148.19 eV +- 14.82 keV (1e+04 %)
- layer 42: 957.65 eV +- 95.76 keV (1e+04 %) 98.025 eV +- 9.802 keV (1e+04 %)
- layer 43: 2.7765 keV +- 277.6 keV (1e+04 %) 180.58 eV +- 18.06 keV (1e+04 %)
- layer 44: 1.1171 keV +- 111.7 keV (1e+04 %) 134.28 eV +- 13.43 keV (1e+04 %)
- layer 45: 1.1967 keV +- 119.7 keV (1e+04 %) 124.76 eV +- 12.48 keV (1e+04 %)
- layer 46: 1.5229 MeV +- 2.102 MeV (1.4e+02 %) 158.51 keV +- 674.3 keV (4.3e+02 %)
- layer 47: 1.531 MeV +- 2.159 MeV (1.4e+02 %) 162.39 keV +- 607.8 keV (3.7e+02 %)
- layer 48: 1.5069 MeV +- 2.122 MeV (1.4e+02 %) 152.99 keV +- 485.3 keV (3.2e+02 %)
- layer 49: 1.536 MeV +- 2.493 MeV (1.6e+02 %) 164.61 keV +- 1.06 MeV (6.4e+02 %)
- layer 50: 1.534 MeV +- 2.296 MeV (1.5e+02 %) 149.72 keV +- 382.2 keV (2.6e+02 %)
- layer 51: 1.5168 MeV +- 2.205 MeV (1.5e+02 %) 161.28 keV +- 798.9 keV (5e+02 %)
- layer 52: 1.5447 MeV +- 2.739 MeV (1.8e+02 %) 153.93 keV +- 512.6 keV (3.3e+02 %)
- layer 53: 1.5299 MeV +- 2.208 MeV (1.4e+02 %) 156.99 keV +- 870.4 keV (5.5e+02 %)
- layer 54: 1.5543 MeV +- 2.774 MeV (1.8e+02 %) 170.06 keV +- 1.052 MeV (6.2e+02 %)
- layer 55: 1.524 MeV +- 2.248 MeV (1.5e+02 %) 154.05 keV +- 529.4 keV (3.4e+02 %)
- layer 56: 1.5268 MeV +- 2.287 MeV (1.5e+02 %) 160.3 keV +- 664.2 keV (4.1e+02 %)
- layer 57: 1.5705 MeV +- 2.734 MeV (1.7e+02 %) 165.28 keV +- 987.5 keV (6e+02 %)
- layer 58: 1.528 MeV +- 1.964 MeV (1.3e+02 %) 161.04 keV +- 672.7 keV (4.2e+02 %)
- layer 59: 1.5566 MeV +- 2.486 MeV (1.6e+02 %) 147.28 keV +- 596 keV (4e+02 %)
- layer 60: 1.513 MeV +- 1.961 MeV (1.3e+02 %) 164.8 keV +- 648.3 keV (3.9e+02 %)
- layer 61: 1.5603 MeV +- 2.518 MeV (1.6e+02 %) 154.57 keV +- 598.9 keV (3.9e+02 %)
- layer 62: 1.5205 MeV +- 2.233 MeV (1.5e+02 %) 167.15 keV +- 964.4 keV (5.8e+02 %)
- layer 63: 1.5357 MeV +- 2.436 MeV (1.6e+02 %) 173.03 keV +- 1.215 MeV (7e+02 %)
- layer 64: 1.5742 MeV +- 3.039 MeV (1.9e+02 %) 178.74 keV +- 1.32 MeV (7.4e+02 %)
- layer 65: 1.5519 MeV +- 2.653 MeV (1.7e+02 %) 174.16 keV +- 1.228 MeV (7e+02 %)
- layer 66: 1.56 MeV +- 2.659 MeV (1.7e+02 %) 163.99 keV +- 1.137 MeV (6.9e+02 %)
- layer 67: 1.5188 MeV +- 2.228 MeV (1.5e+02 %) 147.7 keV +- 374.9 keV (2.5e+02 %)
- layer 68: 1.549 MeV +- 2.5 MeV (1.6e+02 %) 161.53 keV +- 657.9 keV (4.1e+02 %)
- layer 69: 1.5201 MeV +- 2.105 MeV (1.4e+02 %) 156.26 keV +- 531.1 keV (3.4e+02 %)
- layer 70: 1.501 MeV +- 1.837 MeV (1.2e+02 %) 148.24 keV +- 428.2 keV (2.9e+02 %)
- layer 71: 1.5485 MeV +- 2.506 MeV (1.6e+02 %) 171.55 keV +- 907.9 keV (5.3e+02 %)
- layer 72: 1.5056 MeV +- 1.89 MeV (1.3e+02 %) 151.96 keV +- 541.4 keV (3.6e+02 %)
- layer 73: 1.497 MeV +- 2.156 MeV (1.4e+02 %) 164.75 keV +- 614.7 keV (3.7e+02 %)
- layer 74: 1.5133 MeV +- 2.323 MeV (1.5e+02 %) 145.6 keV +- 366.2 keV (2.5e+02 %)
- layer 75: 1.4913 MeV +- 1.858 MeV (1.2e+02 %) 158.64 keV +- 931.1 keV (5.9e+02 %)
- layer 76: 1.5365 MeV +- 2.538 MeV (1.7e+02 %) 166.63 keV +- 965.8 keV (5.8e+02 %)
- layer 77: 1.497 MeV +- 1.9 MeV (1.3e+02 %) 156.94 keV +- 542.8 keV (3.5e+02 %)
- layer 78: 1.5094 MeV +- 1.83 MeV (1.2e+02 %) 154.57 keV +- 498.4 keV (3.2e+02 %)
- layer 79: 1.5017 MeV +- 1.946 MeV (1.3e+02 %) 150.5 keV +- 394.5 keV (2.6e+02 %)
- layer 80: 1.5375 MeV +- 2.608 MeV (1.7e+02 %) 176.78 keV +- 1.253 MeV (7.1e+02 %)
- layer 81: 1.5291 MeV +- 2.232 MeV (1.5e+02 %) 163.1 keV +- 902.6 keV (5.5e+02 %)
- layer 82: 1.5689 MeV +- 2.598 MeV (1.7e+02 %) 167.73 keV +- 775.1 keV (4.6e+02 %)
- layer 83: 1.5173 MeV +- 1.97 MeV (1.3e+02 %) 153.69 keV +- 465.9 keV (3e+02 %)
- layer 84: 1.534 MeV +- 2.631 MeV (1.7e+02 %) 182.14 keV +- 1.397 MeV (7.7e+02 %)
- layer 85: 1.5483 MeV +- 2.342 MeV (1.5e+02 %) 163.01 keV +- 979.9 keV (6e+02 %)
- layer 86: 1.5539 MeV +- 2.648 MeV (1.7e+02 %) 161.28 keV +- 909.6 keV (5.6e+02 %)
- layer 87: 1.5292 MeV +- 2.179 MeV (1.4e+02 %) 158.59 keV +- 718.2 keV (4.5e+02 %)
- layer 88: 1.5179 MeV +- 2.176 MeV (1.4e+02 %) 159.39 keV +- 672.3 keV (4.2e+02 %)
- layer 89: 1.5531 MeV +- 2.359 MeV (1.5e+02 %) 159.26 keV +- 632.7 keV (4e+02 %)
- layer 90: 1.5266 MeV +- 2.207 MeV (1.4e+02 %) 154.59 keV +- 613.6 keV (4e+02 %)
+ layer 26: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 27: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 28: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 29: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 30: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 31: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 32: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 33: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 34: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 35: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 36: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 37: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 38: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 39: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 40: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 41: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 42: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 43: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 44: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 45: 0 eV +- 0 eV ( 0 %) 0 eV +- 0 eV ( 0 %)
+ layer 46: 1.5607 MeV +- 2.472 MeV (1.6e+02 %) 165.73 keV +- 823 keV (5e+02 %)
+ layer 47: 1.5149 MeV +- 2.345 MeV (1.5e+02 %) 157.61 keV +- 555.1 keV (3.5e+02 %)
+ layer 48: 1.5042 MeV +- 1.965 MeV (1.3e+02 %) 153.46 keV +- 541 keV (3.5e+02 %)
+ layer 49: 1.5059 MeV +- 2.354 MeV (1.6e+02 %) 166.68 keV +- 1.135 MeV (6.8e+02 %)
+ layer 50: 1.5183 MeV +- 2.086 MeV (1.4e+02 %) 146.43 keV +- 284.7 keV (1.9e+02 %)
+ layer 51: 1.5189 MeV +- 2.084 MeV (1.4e+02 %) 159.53 keV +- 667.6 keV (4.2e+02 %)
+ layer 52: 1.5509 MeV +- 2.444 MeV (1.6e+02 %) 155.41 keV +- 505.6 keV (3.3e+02 %)
+ layer 53: 1.525 MeV +- 2.489 MeV (1.6e+02 %) 161.62 keV +- 879.5 keV (5.4e+02 %)
+ layer 54: 1.542 MeV +- 2.578 MeV (1.7e+02 %) 159.19 keV +- 869.5 keV (5.5e+02 %)
+ layer 55: 1.5212 MeV +- 1.984 MeV (1.3e+02 %) 160.13 keV +- 654.2 keV (4.1e+02 %)
+ layer 56: 1.5497 MeV +- 2.641 MeV (1.7e+02 %) 145.41 keV +- 278.1 keV (1.9e+02 %)
+ layer 57: 1.534 MeV +- 2.455 MeV (1.6e+02 %) 153.75 keV +- 809.4 keV (5.3e+02 %)
+ layer 58: 1.5322 MeV +- 2.131 MeV (1.4e+02 %) 153.31 keV +- 381.9 keV (2.5e+02 %)
+ layer 59: 1.5659 MeV +- 2.526 MeV (1.6e+02 %) 158.6 keV +- 799.9 keV (5e+02 %)
+ layer 60: 1.5495 MeV +- 2.364 MeV (1.5e+02 %) 181.37 keV +- 1.24 MeV (6.8e+02 %)
+ layer 61: 1.5495 MeV +- 2.406 MeV (1.6e+02 %) 159.3 keV +- 782.7 keV (4.9e+02 %)
+ layer 62: 1.5202 MeV +- 2.12 MeV (1.4e+02 %) 164.87 keV +- 778.9 keV (4.7e+02 %)
+ layer 63: 1.5281 MeV +- 2.348 MeV (1.5e+02 %) 162.37 keV +- 989.7 keV (6.1e+02 %)
+ layer 64: 1.5409 MeV +- 2.654 MeV (1.7e+02 %) 161.67 keV +- 1.03 MeV (6.4e+02 %)
+ layer 65: 1.5579 MeV +- 2.516 MeV (1.6e+02 %) 166.62 keV +- 996.2 keV (6e+02 %)
+ layer 66: 1.5266 MeV +- 2.271 MeV (1.5e+02 %) 164.68 keV +- 843.2 keV (5.1e+02 %)
+ layer 67: 1.5247 MeV +- 2.226 MeV (1.5e+02 %) 164.36 keV +- 921.5 keV (5.6e+02 %)
+ layer 68: 1.5444 MeV +- 2.422 MeV (1.6e+02 %) 159.25 keV +- 620.5 keV (3.9e+02 %)
+ layer 69: 1.503 MeV +- 2.083 MeV (1.4e+02 %) 157.76 keV +- 627.7 keV (4e+02 %)
+ layer 70: 1.4979 MeV +- 1.909 MeV (1.3e+02 %) 153.03 keV +- 538.3 keV (3.5e+02 %)
+ layer 71: 1.539 MeV +- 2.554 MeV (1.7e+02 %) 158.11 keV +- 620 keV (3.9e+02 %)
+ layer 72: 1.4969 MeV +- 1.906 MeV (1.3e+02 %) 159.99 keV +- 961.5 keV (6e+02 %)
+ layer 73: 1.505 MeV +- 2.043 MeV (1.4e+02 %) 163 keV +- 555 keV (3.4e+02 %)
+ layer 74: 1.5414 MeV +- 2.733 MeV (1.8e+02 %) 150.12 keV +- 507.7 keV (3.4e+02 %)
+ layer 75: 1.5154 MeV +- 2.088 MeV (1.4e+02 %) 160.28 keV +- 949.4 keV (5.9e+02 %)
+ layer 76: 1.5002 MeV +- 2.198 MeV (1.5e+02 %) 154.06 keV +- 551.5 keV (3.6e+02 %)
+ layer 77: 1.5242 MeV +- 2.418 MeV (1.6e+02 %) 156.59 keV +- 917.4 keV (5.9e+02 %)
+ layer 78: 1.5159 MeV +- 2.024 MeV (1.3e+02 %) 164.78 keV +- 675.1 keV (4.1e+02 %)
+ layer 79: 1.5036 MeV +- 2.019 MeV (1.3e+02 %) 152 keV +- 515.5 keV (3.4e+02 %)
+ layer 80: 1.5409 MeV +- 2.55 MeV (1.7e+02 %) 171.23 keV +- 1.182 MeV (6.9e+02 %)
+ layer 81: 1.5393 MeV +- 2.26 MeV (1.5e+02 %) 164.33 keV +- 988.4 keV (6e+02 %)
+ layer 82: 1.4987 MeV +- 1.999 MeV (1.3e+02 %) 162.13 keV +- 655.4 keV (4e+02 %)
+ layer 83: 1.5346 MeV +- 2.228 MeV (1.5e+02 %) 146.59 keV +- 393.8 keV (2.7e+02 %)
+ layer 84: 1.5039 MeV +- 2.212 MeV (1.5e+02 %) 172.99 keV +- 1.095 MeV (6.3e+02 %)
+ layer 85: 1.5544 MeV +- 2.449 MeV (1.6e+02 %) 170.27 keV +- 1.048 MeV (6.2e+02 %)
+ layer 86: 1.5328 MeV +- 2.564 MeV (1.7e+02 %) 161.58 keV +- 932.9 keV (5.8e+02 %)
+ layer 87: 1.5565 MeV +- 2.51 MeV (1.6e+02 %) 159.32 keV +- 717.6 keV (4.5e+02 %)
+ layer 88: 1.5206 MeV +- 2.124 MeV (1.4e+02 %) 160.63 keV +- 676.3 keV (4.2e+02 %)
+ layer 89: 1.5371 MeV +- 2.278 MeV (1.5e+02 %) 161.27 keV +- 577.2 keV (3.6e+02 %)
+ layer 90: 1.5134 MeV +- 2.027 MeV (1.3e+02 %) 151.89 keV +- 421.6 keV (2.8e+02 %)
- total calor : 75.155 MeV +- 16.27 MeV ( 22 %) 7.2321 MeV +- 5.373 MeV ( 74 %)
+ total calor : 75.038 MeV +- 16.1 MeV ( 21 %) 7.1933 MeV +- 5.221 MeV ( 73 %)
------------------------------------------------------------
- Leakage : 924.85 MeV +- 16.27 MeV
- Eleak/Ebeam =92.5 % ( forward =92.5 % backward = 0 % lateral =0.00684 %)
+ Leakage : 924.96 MeV +- 16.1 MeV
+ Eleak/Ebeam =92.5 % ( forward =92.5 % backward = 0 % lateral =0.00683 %)
------- MixMaxRng engine status -------
Current state vector is:
mixmax state, file version 1.0
-N=17 V[N]={1107671594470450757, 1240607435943435738, 2231204702643210350, 1189532161300035035, 1187160762106429718, 1279654564220372732, 394375735238574519, 1139581727873146704, 815563237799698575, 92100093776053926, 1421621212261671388, 1627816993775078338, 519999874798195897, 1532430024833830675, 1709850670266766569, 2049291853933162862, 367882786885510648} counter= 8sumtot= 1459601358416072823
+N=17 V[N]={2125414173700100552, 2142585805957254368, 76522162894449253, 1784158078511305541, 1604927075428355476, 1591418228791441455, 1319796215467225750, 510330441101115716, 292041348516976082, 1319273073710620057, 804550070673300322, 163284425230320842, 565490385491944821, 16112232889381638, 1636818388774373843, 1527274433194452312, 886262238668689935} counter= 11sumtot= 2225357714505450306
---------------------------------------
G4 kernel has come to Quit state.
Deleting G4Run (id:0)
-UserDetectorConstruction deleted 0x1178b40
-UserPhysicsList deleted 0x11ad150
-UserActionInitialization deleted 0x1333bf0
+UserDetectorConstruction deleted 0xf51240
+UserPhysicsList deleted 0xf84e30
+UserActionInitialization deleted 0x110b8c0
UserWorkerInitialization deleted 0
UserWorkerThreadInitialization deleted 0
UserRunAction deleted.
diff --git a/examples/advanced/brachytherapy/brachytherapy.out b/examples/advanced/brachytherapy/brachytherapy.out
index 6840cf6a3c..b937447ba3 100644
--- a/examples/advanced/brachytherapy/brachytherapy.out
+++ b/examples/advanced/brachytherapy/brachytherapy.out
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -34,7 +34,6 @@ Registered graphics systems are:
RayTracer (RayTracer)
VRML2FILE (VRML2FILE)
gMocrenFile (gMocrenFile)
- TOOLSSG_OFFSCREEN (TSG_OFFSCREEN)
TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
OpenGLImmediateQt (OGLIQt, OGLI)
OpenGLStoredQt (OGLSQt, OGL, OGLS)
@@ -281,10 +280,13 @@ Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100 TeV
+Positron annihilation at rest model AllisonPositronium
+Enable 3 gamma annihilation on fly 0
Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
@@ -800,20 +802,11 @@ Index : 3 used in the geometry : Yes
==================================================================
-G4VisManager: Using G4TrajectoryDrawByCharge as fallback trajectory model.
-See commands in /vis/modeling/trajectories/ for other options.
### Run 0 start.
Using
number of events = 5000
... write file : primary.root - done
... close file : primary.root - done
-There are histograms that can be viewed with visualization:
- 1 h1 histograms(s)
- List them with "/analysis/list".
- View them immediately with "/vis/plot" or "/vis/reviewPlots".
- But...there are no entries. To make your histograms available for
- plotting in this UI session, use CloseFile(false) in your
- EndOfRunAction and Reset() in your BeginOfRunAction.
/score/dumpQuantityToFile boxMesh_4 eDep EnergyDeposition_Flexi.out
... create file : brachytherapy.root - done
... open analysis file : brachytherapy.root - done
diff --git a/examples/advanced/composite_calorimeter/composite_calorimeter.out b/examples/advanced/composite_calorimeter/composite_calorimeter.out
index becdad6b9b..24c2d826f7 100644
--- a/examples/advanced/composite_calorimeter/composite_calorimeter.out
+++ b/examples/advanced/composite_calorimeter/composite_calorimeter.out
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -121,10 +121,13 @@ Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100 TeV
+Positron annihilation at rest model SimplePositronium
+Enable 3 gamma annihilation on fly 0
Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
@@ -295,7 +298,7 @@ ionIoni: for GenericIon XStype:3 SubType=2
Lambda tables from threshold to 100 TeV, 7 bins/decade, spline: 1
StepFunction=(0.2, 0.1 mm), integ: 3, fluct: 1, linLossLim= 0.02
===== EM models for the G4Region DefaultRegionForTheWorld ======
- BraggIon : Emin= 0 eV Emax= 2 MeV
+ Bragg : Emin= 0 eV Emax= 2 MeV
BetheBloch : Emin= 2 MeV Emax= 100 TeV
msc: for alpha SubType= 10
@@ -774,11 +777,10 @@ CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
Model: Binary Light Ion Cascade: 0 eV /n ---> 6 GeV/n
Model: FTFP: 3 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 eV ---> 25.6 PeV
-### G4LevelReader: broken transition 0 from level 24 to 24 for isotope Z= 89 A= 219 - use ground level
=======================================================================
====== Geant4 Native Pre-compound Model Parameters ========
=======================================================================
-Type of pre-compound inverse x-section 3
+Type of pre-compound inverse x-section 1
Pre-compound model active 1
Pre-compound excitation low energy 100 keV
Pre-compound excitation high energy 30 MeV
@@ -803,7 +805,7 @@ Use discrete excitation energy of the residual 0
Time limit for long lived isomeres 1 ns
Isomer production flag 1
Internal e- conversion flag 1
-Store e- internal conversion data 0
+Store e- internal conversion data 1
Correlated gamma emission flag 0
Max 2J for sampling of angular correlations 10
=======================================================================
@@ -868,6 +870,7 @@ Index : 5 used in the geometry : Yes
==================================================================
Start closing geometry.
+--------------------------------------------------------------------------------
G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Total memory consumed for geometry optimisation: 15 kByte
@@ -888,6 +891,8 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
20.31 3k 6 44 83 0.00 HadronCalorimeterBox0 14.44 2k 5 30 60 0.00 HadronCalorimeterBox1 4.81 0k 1 12 14 0.00 CrystalMatrixLayer
3.70 0k 2 7 13 0.00 HadronCalorimeterScntLayer2 2.08 0k 1 4 8 0.00 HadronCalorimeter
1.98 0k 1 4 6 0.00 HadronCalorimeterScntLayer0 1.67 0k 1 3 6 0.00 HadronCalorimeterScntLayer1 1.57 0k 1 3 4 0.00 HcalTB96
+--------------------------------------------------------------------------------
+
### Run 0 starts.
### Run 0 start.
... set ntuple merging row mode : row-wise - done
@@ -952,15 +957,15 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics
Run terminated.
Run Summary
Number of events processed : 20
- User=16.250000s Real=16.897608s Sys=0.010000s
+ User=15.240000s Real=16.118912s Sys=0.010000s
### Run 0 end.
... write file : ccal.root - done
... close file : ccal.root - done
G4 kernel has come to Quit state.
Deleting G4Run (id:0)
-UserDetectorConstruction deleted 0x25b6a80
-UserPhysicsList deleted 0x25b7c40
-UserActionInitialization deleted 0x2773b60
+UserDetectorConstruction deleted 0xec6160
+UserPhysicsList deleted 0xec7320
+UserActionInitialization deleted 0x1082a20
UserWorkerInitialization deleted 0
UserWorkerThreadInitialization deleted 0
UserRunAction deleted.
@@ -971,24 +976,24 @@ G4SDManager deleted.
EventManager deleted.
Units table cleared.
TransportationManager deleted.
-Total navigation history collections cleaned: 46
+Total navigation history collections cleaned: 52
G4RNGHelper object is deleted.
================== Deleting memory pools ===================
-Pool ID '20G4NavigationLevelRep', size : 0.0683 MB
+Pool ID '20G4NavigationLevelRep', size : 0.0759 MB
Pool ID '24G4ReferenceCountedHandleIvE', size : 0.000961 MB
-Pool ID '17G4DynamicParticle', size : 0.0731 MB
+Pool ID '17G4DynamicParticle', size : 0.0798 MB
Pool ID '7G4Event', size : 0.000961 MB
Pool ID '15G4PrimaryVertex', size : 0.000961 MB
Pool ID '17G4PrimaryParticle', size : 0.000961 MB
Pool ID '15G4HCofThisEvent', size : 0.000961 MB
Pool ID '16G4HitsCollection', size : 0.000961 MB
-Pool ID '7G4Track', size : 0.145 MB
-Pool ID '18G4TouchableHistory', size : 0.00577 MB
+Pool ID '7G4Track', size : 0.159 MB
+Pool ID '18G4TouchableHistory', size : 0.00673 MB
Pool ID '15G4CountedObjectIvE', size : 0.000961 MB
-Pool ID '17G4ReactionProduct', size : 0.0183 MB
-Pool ID '10G4Fragment', size : 0.00673 MB
+Pool ID '17G4ReactionProduct', size : 0.0144 MB
+Pool ID '10G4Fragment', size : 0.00577 MB
Number of memory pools allocated: 13 of which, static: 0
-Dynamic pools deleted: 13 / Total memory freed: 0.32 MB
+Dynamic pools deleted: 13 / Total memory freed: 0.35 MB
============================================================
G4Allocator objects are deleted.
UImanager deleted.
diff --git a/examples/advanced/dna/.README.txt b/examples/advanced/dna/.README.txt
new file mode 100644
index 0000000000..a0233858d6
--- /dev/null
+++ b/examples/advanced/dna/.README.txt
@@ -0,0 +1,19 @@
+
+///\file "dna/.README.txt"
+///\brief Advanced examples dna README page
+
+/*! \page Examples_dna Category "dna"
+
+This directory contains a set of advanced Geant4-DNA examples.
+
+\section dna_s0 DNA damage
+
+ - \link Examplemoleculardna moleculardna \endlink Damage simulation on DNA geometries.
+
+ - \link ExampleDsbandrepair dsbandrepair \endlink Damage simulation on DNA geometries.
+
+
+
+See the README page inside each example for more detail.
+*/
+
diff --git a/examples/advanced/dna/CMakeLists.txt b/examples/advanced/dna/CMakeLists.txt
new file mode 100644
index 0000000000..65362bd56b
--- /dev/null
+++ b/examples/advanced/dna/CMakeLists.txt
@@ -0,0 +1,10 @@
+#---Adding all dna examples subdirectories explicitly
+
+cmake_minimum_required(VERSION 3.16...3.27)
+
+project(advanced-dna-example)
+
+
+add_subdirectory(moleculardna)
+add_subdirectory(dsbandrepair)
+add_subdirectory(cellularPhantom)
diff --git a/examples/advanced/dna/History b/examples/advanced/dna/History
new file mode 100644
index 0000000000..d325f29745
--- /dev/null
+++ b/examples/advanced/dna/History
@@ -0,0 +1,10 @@
+# Example dna History
+
+See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
+which **must** added in reverse chronological order (newest at the top). It must **not**
+be used as a substitute for writing good git commit messages!
+
+## 2024-10-15 Hoang Tran (addna-V11-02-00)
+- added in advanced a dna category
+
+
diff --git a/examples/advanced/dna/README b/examples/advanced/dna/README
new file mode 100644
index 0000000000..926e976b3f
--- /dev/null
+++ b/examples/advanced/dna/README
@@ -0,0 +1,16 @@
+ =========================================================
+ Geant4 - dna examples
+ =========================================================
+ README file
+ ----------------------
+
+This directory contains a set of Geant4-DNA advanced examples.
+
+ - DNA damage simulation using DNA-scale geometries:
+ - moleculardna
+ - dsbandrepair
+
+ - Cellular phantom:
+ - cellularPhantom
+
+See the README page inside each example for more detail.
diff --git a/examples/advanced/dna/cellularPhantom/.README.txt b/examples/advanced/dna/cellularPhantom/.README.txt
new file mode 100644
index 0000000000..baaf1bfdbc
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/.README.txt
@@ -0,0 +1,127 @@
+///\file "medical/dna/cellularPhantom/.README.txt"
+///\brief Example cellularPhantom README page
+
+
+/*! \page ExamplecellularPhantom Example cellularPhantom
+
+\authors P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+LP2i, IN2P3 / CNRS / Bordeaux University, 33175 Gradignan, France
+E-mail: barberet@lp2ib.in2p3.fr or incerti@lp2ib.in2p3.fr
+
+If you use this code, please cite the following publication:
+Monte-Carlo dosimetry on a realistic cell monolayer geometry exposed to alpha-particle,
+P. Barberet, F. Vianna, M. Karamitros, T. Brun, N. Gordillo, P. Moretto, S. Incerti, H. Seznec,
+Phys. Med. Biol. 57 (2012) 2189-2207
+https://doi.org/10.1088/0031-9155/57/8/2189
+
+\section cellularPhantom_s1 INTRODUCTION.
+
+The cellularPhantom example shows how to simulate the irradiation of a 3D voxel
+phantom containing biological cells, created from a confocal microscopy 24-bit RGB image.
+
+The original image was created thanks to:
+- H. De Oliveira, T. Désigaux, N. Dusserre, ART BioPrint, France
+- F. Paris, C. Niaudet, Inserm, France
+
+These developments were carried out as part of the "Flash'Atlantic" project
+(2023-2024) funded by CNRS-MITI, France, and Inserm, France.
+
+Two phantom files phantom.dat (low resolution) and phantomHR.dat (high resolution)
+are provided in the phantoms directory.
+
+They were created using the ImageJ phantom.ijm macro located in the ImageJ directory.
+See the phantoms/Documentation.pdf file for more information
+
+The low resolution file is used for visualization in the macro vis.mac.
+It contains the following lines:
+
+54300 20230 17320 16750
+=> total number of voxels, number of red, green and blue voxels
+
+734.0507 734.0507 90.6372 microns
+=> whole X, Y and Z size of the phantom, with unit
+
+2.8674 2.8674 2.0142 microns
+=> size of a single voxel, with unit
+
+And the list of individual voxels, with the format: X, Y and Z positions, type
+(type is 1 for R, 2 for G, 3 for B):
+232.2582 31.5412 0.0000 2
+235.1256 31.5412 0.0000 2
+...
+
+The low resolution and high resolution files can be used by the run.mac macro.
+
+\section cellularPhantom_s2 GEOMETRY SET-UP
+
+The geometry is a 1-mm side cube ("World") made of air, with a thickness of 100 um,
+containing a liquid water medium ("Medium") of side 900 um and thickness 95 um,
+containing itself the phantom ("Phantom").
+
+The World and Medium dimensions can be changed by UI command.
+
+\section cellularPhantom_s3 SET-UP
+
+Make sure $G4LEDATA points to the low energy electromagnetic data files.
+
+\section cellularPhantom_s4 HOW TO RUN THE EXAMPLE
+
+In interactive mode, run:
+\verbatim
+./cellularPhantom
+this will show the phantom in 3D (requires memory).
+\endverbatim
+
+In batch, the macro run.mac can be used:
+\verbatim
+./cellularPhantom run.mac
+\endverbatim
+
+In this macro, the user can select:
+- the number of threads (MT mode)
+- the phantom file name
+- the World and Medium dimensions
+- the Medium material
+- the phantom voxel density
+- the position (shift in X or Y or Z) of the phantom in the Medium
+- the production cuts outside and inside in the phantom
+- the incident particles (using GPS)
+
+\section cellularPhantom_s5 PHYSICS
+
+The PhysicsList class uses Geant4 option4 electromagnetic physics.
+
+It also contains other physics lists including Geant4-DNA option2,
+which is commented by default.
+
+\section cellularPhantom_s6 SIMULATION OUTPUT AND RESULT ANALYSIS
+
+The output results consists in a phantom.root file, containing three ntuples,
+corresponding to the 3 types of voxels (red, green and blue) of the original image.
+
+The ROOT macro plot.C can be run to extract and display:
+- the cellular phantom
+- the absorbed energy distribution in the 3 types of voxels
+- the absorbed energy 2D map for the 3 types of voxels
+- the absorbed dose 2D map for the 3 types of voxels
+
+Simply do, after the simulation:
+\verbatim
+root plot.C
+\endverbatim
+
+In addition, the following quantities are displayed:
+- total number of voxels in phantom
+- total number of RED voxels in phantom
+- total number of GREEN voxels in phantom
+- total number of BLUE voxels in phantom
+- total absorbed energy in RED voxels (MeV)
+- total absorbed energy in GREEN voxels (MeV)
+- total absorbed energy in BLUE voxels (MeV)
+- total absorbed dose in RED voxels (Gy)
+- total absorbed dose in GREEN voxels (Gy)
+- total absorbed dose in BLUE voxels (Gy)
+
+Results are stored in the results.root file.
+
+*/
diff --git a/examples/advanced/dna/cellularPhantom/CMakeLists.txt b/examples/advanced/dna/cellularPhantom/CMakeLists.txt
new file mode 100644
index 0000000000..3b4e5f07cb
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/CMakeLists.txt
@@ -0,0 +1,116 @@
+#----------------------------------------------------------------------------
+# Setup the project
+cmake_minimum_required(VERSION 3.16...3.21)
+project(cellularPhantom)
+
+#----------------------------------------------------------------------------
+# Find Geant4 package, activating all available UI and Vis drivers by default
+# You can set WITH_GEANT4_UIVIS to OFF via the command line or ccmake/cmake-gui
+# to build a batch mode only executable
+#
+option(WITH_GEANT4_UIVIS "Build example with Geant4 UI and Vis drivers" ON)
+if(WITH_GEANT4_UIVIS)
+ find_package(Geant4 REQUIRED ui_all vis_all)
+else()
+ find_package(Geant4 REQUIRED)
+endif()
+
+#----------------------------------------------------------------------------
+# Setup Geant4 include directories and compile definitions
+#
+include(${Geant4_USE_FILE})
+
+#----------------------------------------------------------------------------
+# Dowload geometry data file
+set(GEOMETRY_NEEDS_DOWNLOAD TRUE)
+set(GEOMETRY_NEEDS_UNPACK_DELETE TRUE)
+set(GEOMETRY_FILE_NAME "phantoms.tar.gz")
+set(GEOMETRY_FOlDER_NAME "phantoms")
+set(GEOMETRY_LOCAL_FILENAME "${PROJECT_BINARY_DIR}/${GEOMETRY_FILE_NAME}")
+set(GEOMETRY_DATASETS_URL
+ "https://cern.ch/geant4-data/datasets/examples/advanced/dna/cellularPhantom/0/${GEOMETRY_FILE_NAME}")
+set(HASH_MD5 "b663329eaa7d93396689506a798a4577")
+
+if (EXISTS "${GEOMETRY_FOlDER_NAME}")
+ set(GEOMETRY_NEEDS_DOWNLOAD FALSE)
+endif ()
+
+
+if (GEOMETRY_NEEDS_DOWNLOAD)
+ message(STATUS "phantoms-data: attempting download: ${GEOMETRY_DATASETS_URL} ...")
+ file(DOWNLOAD "${GEOMETRY_DATASETS_URL}" "${GEOMETRY_LOCAL_FILENAME}"
+ INACTIVITY_TIMEOUT 500
+ TIMEOUT 500
+ STATUS DownloadStatus
+ )
+
+ list(GET DownloadStatus 0 DownloadReturnStatus)
+ if (DownloadReturnStatus)
+ message(FATAL_ERROR "phantoms-data: download FAILED: ${DownloadReturnStatus},
+ This example needs internet for the phantoms data file,
+ even configuring done and complied.
+ Please, check your connection.
+ ")
+ else ()
+ message(STATUS "phantoms-data: download OK")
+ endif ()
+endif ()
+
+
+if (EXISTS "${GEOMETRY_FOlDER_NAME}")
+ set(GEOMETRY_NEEDS_UNPACK_DELETE FALSE)
+endif ()
+
+if (GEOMETRY_NEEDS_UNPACK_DELETE)
+ message(STATUS "Going to unpack: phantoms.tar.gz")
+ execute_process(
+ COMMAND ${CMAKE_COMMAND} -E tar xfz "${GEOMETRY_LOCAL_FILENAME}"
+ OUTPUT_QUIET
+ RESULT_VARIABLE __phantoms_untar_result
+ )
+ if (__phantoms_untar_result)
+ message(FATAL_ERROR "phantoms-data: failed to untar file : ${GEOMETRY_LOCAL_FILENAME}")
+ else ()
+ message(STATUS "phantoms-data: untarred in '${PROJECT_BINARY_DIR}/phantoms' OK")
+ endif ()
+ message(STATUS "Going to delete: ${GEOMETRY_LOCAL_FILENAME}")
+ execute_process(
+ COMMAND rm "${GEOMETRY_LOCAL_FILENAME}"
+ )
+endif ()
+
+#----------------------------------------------------------------------------
+# Locate sources and headers for this project
+#
+include_directories(${PROJECT_SOURCE_DIR}/include
+ ${Geant4_INCLUDE_DIR})
+file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
+file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
+
+#----------------------------------------------------------------------------
+# Add the executable, and link it to the Geant4 libraries
+#
+add_executable(cellularPhantom cellularPhantom.cc ${sources} ${headers})
+target_link_libraries(cellularPhantom ${Geant4_LIBRARIES})
+
+#----------------------------------------------------------------------------
+# Copy all scripts to the build directory, i.e. the directory in which we
+# build cellule. This is so that we can run the executable directly because it
+# relies on these scripts being in the current working directory.
+#
+set(cellule_SCRIPTS
+ vis.mac run.mac plot.C
+ )
+
+foreach(_script ${cellule_SCRIPTS})
+ configure_file(
+ ${PROJECT_SOURCE_DIR}/${_script}
+ ${PROJECT_BINARY_DIR}/${_script}
+ COPYONLY
+ )
+endforeach()
+
+#----------------------------------------------------------------------------
+# Install the executable to 'bin' directory under CMAKE_INSTALL_PREFIX
+#
+install(TARGETS cellularPhantom DESTINATION bin)
diff --git a/examples/advanced/dna/cellularPhantom/History b/examples/advanced/dna/cellularPhantom/History
new file mode 100644
index 0000000000..8141433feb
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/History
@@ -0,0 +1,7 @@
+# Example cellularPhantom History
+
+## 2024-10-28 S. Incerti (cellularPhantom-V11-02-01)
+- Updated README
+
+## 2024-10-21 S. Incerti, H. Tran, Ph. Barberet (cellularPhantom-V11-02-00)
+- Created
diff --git a/examples/advanced/dna/cellularPhantom/ImageJ/phantom.ijm b/examples/advanced/dna/cellularPhantom/ImageJ/phantom.ijm
new file mode 100644
index 0000000000..e1c256e27a
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/ImageJ/phantom.ijm
@@ -0,0 +1,219 @@
+// Created by
+// - Ph. Barberet, J. Bordes
+// Bordeaux U., France
+// E-mail: barberet@lp2ib.in2p3.fr
+// - L. Morelli
+// Politecnico di Milano, Italy
+
+// Show progress
+showProgress(0);
+
+// The phantom file will be saved in the directory chosen by the user
+dir = getDirectory("Choose the output directory");
+
+// Get voxel size and image dimensions
+getVoxelSize(voxelWidth, voxelHeight, depth, unit);
+getDimensions(imgWidth, imgHeight, channels, slices, frames);
+
+// User settings dialog
+title = "Phantom settings";
+threshold1 = 0;
+threshold2 = 0;
+threshold3 = 0;
+Dialog.createNonBlocking(title);
+Dialog.addString("Output file name (.dat):", "phantom");
+Dialog.addNumber("Threshold red [0:255]:", 30);
+Dialog.addNumber("Threshold green [0:255]:", 30);
+Dialog.addNumber("Threshold blue [0:255]:", 30);
+
+numberSlices = 0;
+items = newArray("RGB", "RBG", "BRG", "BGR", "GRB", "GBR"); //Definition of color priority order (1st color priority, 2nd color priority, 3rd color priority)
+Dialog.addChoice("Priority", items);
+Dialog.show();
+
+// Read dialog parameters
+filename = Dialog.getString();
+threshold1 = Dialog.getNumber();
+threshold2 = Dialog.getNumber();
+threshold3 = Dialog.getNumber();
+priority = Dialog.getChoice();
+
+// Print output directory
+print(dir);
+
+// Generate file path
+path2file = dir + filename + ".dat";
+
+for (num = 0; File.exists(path2file); num++) {
+ newfilename = filename + "_" + num;
+ path2file = dir + newfilename + ".dat";
+}
+
+// Open temporary file for writing
+tempF = File.open(dir + "_temp.dat");
+
+// Display file parameters
+W = getWidth(); // Image width in voxels
+H = getHeight(); // Image height in voxels
+
+print("Voxel size : ", voxelWidth, " ", voxelHeight, " ", depth, " ", unit);
+print("Number of slices : ", slices);
+print("Definition : ", W, "*", H);
+print("Thresholds : ", threshold1, threshold2, threshold3);
+
+// Display number of voxels
+showStatus("Voxels count");
+
+
+// Initialize voxel counters
+numberVoxels1 = 0;
+numberVoxels2 = 0;
+numberVoxels3 = 0;
+
+
+// Initialize a string to store lines of data
+linesToWrite = "";
+linesArray = newArray("");
+
+// Loop through the image to write voxel coordinates and material in the phantom file
+for(k=0; k< nSlices; k++)
+{
+ showProgress(k/(nSlices));
+ setSlice(k+1);
+
+ for(j=0; j>16)&0xff; //Extracting red color data - bits 23-16
+ green = (v>>8)&0xff; //Extracting green color data - bits 15-8
+ blue = v&0xff; //Extracting blue color data - bits 7-0
+
+ //voxel coordinates (real units)
+ x=i*voxelWidth;
+ y=j*voxelWidth;
+ z=k*depth;
+
+
material = 0;
+ if (priority=="RGB") //Red has priority over blue, which has priority over green, if 2 or 3 of these colors are greater than their threshold.
+ {
+ if (red>=threshold1) {
+ numberVoxels1 +=1;
+ material = 1;}
+ else if (green>=threshold2) {
+ numberVoxels2 +=1;
+ material = 2;}
+ else if (blue>=threshold3) {
+ numberVoxels3 +=1;
+ material = 3;}
+
+
+ }
+
+ else if (priority=="RBG")
+ {
+ if (red>=threshold1) {
+ numberVoxels1 +=1;
+ material = 1;}
+ else if (blue>=threshold3) {
+ numberVoxels3 +=1;
+ material = 3}
+ else if (green>=threshold2) {
+ numberVoxels2 +=1;
+ material = 2;}
+ }
+
+ else if (priority=="BRG")
+ {
+ if (blue>=threshold3) {
+ numberVoxels3 +=1;
+ material = 3;}
+ else if (red>=threshold1) {
+ numberVoxels1 +=1;
+ material = 1;}
+ else if (green>=threshold2) {
+ numberVoxels2 +=1;
+ material = 2;}
+ }
+
+ else if (priority=="BGR")
+ {
+ if (blue>=threshold3) {
+ numberVoxels3 +=1;
+ material = 3;}
+ else if (green>=threshold2) {
+ numberVoxels2 +=1;
+ material = 2;}
+ else if (red>=threshold1) {
+ numberVoxels1 +=1;
+ material = 1;}
+ }
+
+ else if (priority=="GBR")
+ {
+ if (green>=threshold2) {
+ numberVoxels2 +=1;
+ material = 2;}
+ else if (blue>=threshold3) {
+ numberVoxels3 +=1;
+ material = 3;}
+ else if (red>=threshold1) {
+ numberVoxels1 +=1;
+ material = 1;}
+ }
+
+ else if (priority=="GRB")
+ {
+ if (green>=threshold2) {
+ numberVoxels2 +=1;
+ material = 2;}
+ else if (red>=threshold1) {
+ numberVoxels1 +=1;
+ material = 1;}
+ else if (blue>=threshold3) {
+ numberVoxels3 +=1;
+ material = 3;}
+ }
+
+ // Append the line to the list of lines to write
+ if (material != 0){
+ print(tempF, d2s(x,4) + " \t" + d2s(y,4) + " \t" + d2s(z,4) + " \t" + material + "\n");
+ }
+
+ }
+ }
+}
+
+numberVoxels=numberVoxels1+numberVoxels2+numberVoxels3;
+
+// Close temporary file
+File.close(tempF);
+
+// Open main file for writing
+F = File.open(path2file);
+
+// Write header in main file
+print(F, numberVoxels + "\t" + numberVoxels1 + "\t" + numberVoxels2 + "\t" + numberVoxels3 + "\n");
+print(F, imgWidth * voxelWidth + "\t" + imgHeight * voxelWidth + "\t" + slices * depth + "\t" + unit + "\n");
+print(F, voxelWidth + "\t" + voxelWidth + "\t" + depth + "\t" + unit + "\n");
+
+// Read data from temporary file and write to main file
+data = File.openAsString(dir + "_temp.dat");
+print(F, data);
+
+// Close main file
+File.close(F);
+
+// Delete temporary file
+File.delete(dir + "_temp.dat");
+
+// Show completion messages
+showProgress(1)
+
+if (num > 0) {
+ showMessage("WARNING: '" + filename + ".dat' file already exists.\nNew file: '" + newfilename + ".dat'");
+}
+showStatus("Completed");
+showMessage("Completed");
diff --git a/examples/advanced/dna/cellularPhantom/README b/examples/advanced/dna/cellularPhantom/README
new file mode 100644
index 0000000000..41ed52edb2
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/README
@@ -0,0 +1,122 @@
+================================
+Geant4 - cellularPhantom example
+================================
+
+ README file
+ ----------------------
+
+ Authors and contributors:
+
+P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+LP2i, IN2P3 / CNRS / Bordeaux University, 33175 Gradignan, France
+E-mail: barberet@lp2ib.in2p3.fr or incerti@lp2ib.in2p3.fr
+
+If you use this code, please cite the following publication:
+Monte-Carlo dosimetry on a realistic cell monolayer geometry exposed to alpha-particle,
+P. Barberet, F. Vianna, M. Karamitros, T. Brun, N. Gordillo, P. Moretto, S. Incerti, H. Seznec,
+Phys. Med. Biol. 57 (2012) 2189-2207
+https://doi.org/10.1088/0031-9155/57/8/2189
+
+---->0. INTRODUCTION
+
+The cellularPhantom example shows how to simulate the irradiation of a 3D voxel
+phantom containing biological cells, created from a confocal microscopy 24-bit RGB image.
+
+The original image was created thanks to:
+- H. De Oliveira, T. Désigaux, N. Dusserre, ART BioPrint, France
+- F. Paris, C. Niaudet, Inserm, France
+
+These developments were carried out as part of the "Flash'Atlantic" project
+(2023-2024) funded by CNRS-MITI, France, and Inserm, France.
+
+Two phantom files phantom.dat (low resolution) and phantomHR.dat (high resolution)
+are provided in the phantoms directory.
+
+They were created using the ImageJ phantom.ijm macro located in the ImageJ directory.
+See the phantoms/Documentation.pdf file for more information
+
+The low resolution file is used for visualization in the macro vis.mac.
+It contains the following lines:
+
+54300 20230 17320 16750
+=> total number of voxels, number of red, green and blue voxels
+
+734.0507 734.0507 90.6372 microns
+=> whole X, Y and Z size of the phantom, with unit
+
+2.8674 2.8674 2.0142 microns
+=> size of a single voxel, with unit
+
+And the list of individual voxels, with the format: X, Y and Z positions, type
+(type is 1 for R, 2 for G, 3 for B):
+232.2582 31.5412 0.0000 2
+235.1256 31.5412 0.0000 2
+...
+
+The low resolution and high resolution files can be used by the run.mac macro.
+
+---->1. GEOMETRY SET-UP
+
+The geometry is a 1-mm side cube ("World") made of air, with a thickness of 100 um,
+containing a liquid water medium ("Medium") of side 900 um and thickness 95 um,
+containing itself the phantom ("Phantom").
+
+The World and Medium dimensions can be changed by UI command.
+
+---->2. SET-UP
+
+Make sure $G4LEDATA points to the low energy electromagnetic data files.
+
+---->3. HOW TO RUN THE EXAMPLE
+
+In interactive mode, run:
+./cellularPhantom
+this will show the phantom in 3D (requires memory).
+
+In batch, the macro run.mac can be used:
+./cellularPhantom run.mac
+
+In this macro, the user can select:
+- the number of threads (MT mode)
+- the phantom file name
+- the World and Medium dimensions
+- the Medium material
+- the phantom voxel density
+- the position (shift in X or Y or Z) of the phantom in the Medium
+- the production cuts outside and inside in the phantom
+- the incident particles (using GPS)
+
+---->4. PHYSICS
+
+The PhysicsList class uses Geant4 option4 electromagnetic physics.
+
+It also contains other physics lists including Geant4-DNA option2,
+which is commented by default.
+
+---->5. SIMULATION OUTPUT AND RESULT ANALYSIS
+
+The output results consists in a phantom.root file, containing three ntuples,
+corresponding to the 3 types of voxels (red, green and blue) of the original image.
+
+The ROOT macro plot.C can be run to extract and display:
+- the cellular phantom
+- the absorbed energy distribution in the 3 types of voxels
+- the absorbed energy 2D map for the 3 types of voxels
+- the absorbed dose 2D map for the 3 types of voxels
+
+Simply do, after the simulation:
+root plot.C
+
+In addition, the following quantities are displayed:
+- total number of voxels in phantom
+- total number of RED voxels in phantom
+- total number of GREEN voxels in phantom
+- total number of BLUE voxels in phantom
+- total absorbed energy in RED voxels (MeV)
+- total absorbed energy in GREEN voxels (MeV)
+- total absorbed energy in BLUE voxels (MeV)
+- total absorbed dose in RED voxels (Gy)
+- total absorbed dose in GREEN voxels (Gy)
+- total absorbed dose in BLUE voxels (Gy)
+
+Results are stored in the results.root file.
diff --git a/examples/advanced/dna/cellularPhantom/cellularPhantom.cc b/examples/advanced/dna/cellularPhantom/cellularPhantom.cc
new file mode 100644
index 0000000000..8bcd77ab48
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/cellularPhantom.cc
@@ -0,0 +1,98 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#include "G4RunManagerFactory.hh"
+#include "G4UIExecutive.hh"
+#include "G4VisExecutive.hh"
+#include "G4UImanager.hh"
+
+#include "ActionInitialization.hh"
+#include "DetectorConstruction.hh"
+#include "PhysicsList.hh"
+
+int main(int argc,char** argv) {
+
+ // Detect interactive mode (if no arguments) and define UI session
+ G4UIExecutive* ui = nullptr;
+ if ( argc == 1 ) { ui = new G4UIExecutive(argc, argv); }
+
+ // (Optionally) Choose the Random engine
+ //G4Random::setTheEngine(new CLHEP::RanecuEngine);
+ //G4Random::setTheSeed(1408);
+
+ // Construct the default run manager
+ auto* runManager = G4RunManagerFactory::CreateRunManager();
+
+ // Set mandatory user initialization classes
+ DetectorConstruction* detector = new DetectorConstruction;
+ runManager->SetUserInitialization(detector);
+
+ runManager->SetUserInitialization(new PhysicsList);
+
+ // User action initialization
+ runManager->SetUserInitialization(new ActionInitialization());
+
+ G4VisManager* visManager = new G4VisExecutive;
+ visManager->Initialize();
+
+ // Get the pointer to the User Interface manager
+ G4UImanager* UImanager = G4UImanager::GetUIpointer();
+
+ // Process macro or start UI session
+ if ( ! ui ) {
+ // Batch mode
+ G4String command = "/control/execute ";
+ G4String fileName = argv[1];
+ UImanager->ApplyCommand(command+fileName);
+ }
+ else {
+ // Interactive mode
+ UImanager->ApplyCommand("/control/execute vis.mac");
+ ui->SessionStart();
+ delete ui;
+ }
+
+ // Job termination
+ delete visManager;
+ delete runManager;
+
+ return 0;
+}
diff --git a/examples/advanced/dna/cellularPhantom/cellularPhantom.out b/examples/advanced/dna/cellularPhantom/cellularPhantom.out
new file mode 100644
index 0000000000..099ef1c3fa
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/cellularPhantom.out
@@ -0,0 +1,754 @@
+Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type...
+
+ ############################################
+ !!! WARNING - FPE detection is activated !!!
+ ############################################
+
+
+ ################################
+ !!! G4Backtrace is activated !!!
+ ################################
+
+
+**************************************************************
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
+ Copyright : Geant4 Collaboration
+ References : NIM A 506 (2003), 250-303
+ : IEEE-TNS 53 (2006), 270-278
+ : NIM A 835 (2016), 186-225
+ WWW : http://geant4.org/
+**************************************************************
+
+Visualization Manager instantiating with verbosity "warnings (3)"...
+Visualization Manager initialising...
+Registering graphics systems...
+
+You have successfully registered the following graphics systems.
+Registered graphics systems are:
+ ASCIITree (ATree)
+ DAWNFILE (DAWNFILE)
+ G4HepRepFile (HepRepFile)
+ RayTracer (RayTracer)
+ VRML2FILE (VRML2FILE)
+ gMocrenFile (gMocrenFile)
+ TOOLSSG_OFFSCREEN (TSG_OFFSCREEN, TSG_FILE)
+ OpenGLImmediateQt (OGLIQt, OGLI)
+ OpenGLStoredQt (OGLSQt, OGL, OGLS)
+ OpenGLImmediateXm (OGLIXm, OGLIQt_FALLBACK)
+ OpenGLStoredXm (OGLSXm, OGLSQt_FALLBACK)
+ OpenGLImmediateX (OGLIX, OGLIQt_FALLBACK, OGLIXm_FALLBACK)
+ OpenGLStoredX (OGLSX, OGLSQt_FALLBACK, OGLSXm_FALLBACK)
+ RayTracerX (RayTracerX)
+ Qt3D (Qt3D)
+ TOOLSSG_X11_GLES (TSG_X11_GLES, TSGX11, TSG_XT_GLES_FALLBACK)
+ TOOLSSG_X11_ZB (TSG_X11_ZB, TSGX11ZB)
+ TOOLSSG_XT_GLES (TSG_XT_GLES, TSGXt, TSG_QT_GLES_FALLBACK)
+ TOOLSSG_XT_ZB (TSG_XT_ZB, TSGXtZB)
+ TOOLSSG_QT_GLES (TSG_QT_GLES, TSGQt, TSG)
+ TOOLSSG_QT_ZB (TSG_QT_ZB, TSGQtZB)
+You may choose a graphics system (driver) with a parameter of
+the command "/vis/open" or "/vis/sceneHandler/create",
+or you may omit the driver parameter and choose at run time:
+- by argument in the construction of G4VisExecutive
+- by environment variable "G4VIS_DEFAULT_DRIVER"
+- by entry in "~/.g4session"
+- by build flags.
+- Note: This feature is not allowed in batch mode.
+For further information see "examples/basic/B1/exampleB1.cc"
+and "vis.mac".
+
+Registering model factories...
+
+You have successfully registered the following model factories.
+Registered model factories:
+ generic
+ drawByAttribute
+ drawByCharge
+ drawByOriginVolume
+ drawByParticleID
+ drawByEncounteredVolume
+
+Registered models:
+ None
+
+Registered filter factories:
+ attributeFilter
+ chargeFilter
+ originVolumeFilter
+ particleFilter
+ encounteredVolumeFilter
+
+Registered filters:
+ None
+
+You have successfully registered the following user vis actions.
+Run Duration User Vis Actions: none
+End of Event User Vis Actions: none
+End of Run User Vis Actions: none
+
+Some /vis commands (optionally) take a string to specify colour.
+"/vis/list" to see available colours.
+*** /run/numberOfThreads command is issued in sequential mode.
+Command is ignored.
+ #########################################################################
+ Loading cell phantom from file: phantoms/phantom.dat
+ #########################################################################
+
+
+ #########################################################################
+ Phantom placement and density
+ #########################################################################
+
+ ==========> Phantom origin - X (um) = -367.025
+ ==========> Phantom origin - Y (um) = -367.025
+ ==========> Phantom origin - Z (um) = -45.3186
+
+ ==========> Red density (g/cm3) = 1
+ ==========> Green density (g/cm3) = 1
+ ==========> Blue density (g/cm3) = 1
+
+ #########################################################################
+
+ #########################################################################
+ Phantom information
+ #########################################################################
+
+ ==========> The phantom contains 54300 voxels
+ ==========> Voxel size X (um) = 2.8674
+ ==========> Voxel size Y (um) = 2.8674
+ ==========> Voxel size Z (um) = 2.0142
+
+ ==========> Number of red voxels = 20230
+ ==========> Number of green voxels = 17320
+ ==========> Number of blue voxels = 16750
+
+ ==========> Tolal mass of red voxels (kg) = 3.35023e-10
+ ==========> Tolal mass of green voxels (kg) = 2.86832e-10
+ ==========> Tolal mass of blue voxels (kg) = 2.77392e-10
+
+ #########################################################################
+
+
+========= Table of registered couples ============================
+
+==================================================================
+
+=======================================================================
+====== Electromagnetic Physics Parameters ========
+=======================================================================
+LPM effect enabled 1
+Enable creation and use of sampling tables 0
+Apply cuts on all EM processes 0
+Use combined TransportationWithMsc Disabled
+Use general process 1
+Enable linear polarisation for gamma 0
+Enable photoeffect sampling below K-shell 1
+Enable sampling of quantum entanglement 0
+X-section factor for integral approach 0.8
+Min kinetic energy for tables 100 eV
+Max kinetic energy for tables 100 TeV
+Number of bins per decade of a table 20
+Verbose level 1
+Verbose level for worker thread 0
+Bremsstrahlung energy threshold above which
+ primary e+- is added to the list of secondary 100 TeV
+Bremsstrahlung energy threshold above which primary
+ muon/hadron is added to the list of secondary 100 TeV
+Positron annihilation at rest model AllisonPositronium
+Enable 3 gamma annihilation on fly 1
+Lowest triplet kinetic energy 1 MeV
+Enable sampling of gamma linear polarisation 0
+5D gamma conversion model type 0
+5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
+Livermore data directory epics_2017
+=======================================================================
+====== Ionisation Parameters ========
+=======================================================================
+Step function for e+- (0.2, 0.01 mm)
+Step function for muons/hadrons (0.1, 0.05 mm)
+Step function for light ions (0.1, 0.02 mm)
+Step function for general ions (0.1, 0.001 mm)
+Lowest e+e- kinetic energy 100 eV
+Lowest muon/hadron kinetic energy 1 keV
+Use ICRU90 data 1
+Fluctuations of dE/dx are enabled 1
+Type of fluctuation model for leptons and hadrons Urban
+Use built-in Birks satuaration 0
+Build CSDA range enabled 0
+Use cut as a final range enabled 0
+Enable angular generator interface 1
+Max kinetic energy for CSDA tables 1 GeV
+Max kinetic energy for NIEL computation 1 MeV
+Linear loss limit 0.01
+Read data from file for e+e- pair production by mu 0
+=======================================================================
+====== Multiple Scattering Parameters ========
+=======================================================================
+Type of msc step limit algorithm for e+- 2
+Type of msc step limit algorithm for muons/hadrons 0
+Msc lateral displacement for e+- enabled 1
+Msc lateral displacement for muons and hadrons 1
+Urban msc model lateral displacement alg96 1
+Range factor for msc step limit for e+- 0.08
+Range factor for msc step limit for muons/hadrons 0.2
+Geometry factor for msc step limitation of e+- 2.5
+Safety factor for msc step limit for e+- 0.6
+Skin parameter for msc step limitation of e+- 3
+Lambda limit for msc step limit for e+- 1 mm
+Use Mott correction for e- scattering 1
+Factor used for dynamic computation of angular
+ limit between single and multiple scattering 1
+Fixed angular limit between single
+ and multiple scattering 3.1416 rad
+Upper energy limit for e+- multiple scattering 100 MeV
+Type of electron single scattering model 0
+Type of nuclear form-factor 1
+Screening factor 1
+=======================================================================
+====== Atomic Deexcitation Parameters ========
+=======================================================================
+Fluorescence enabled 1
+Directory in G4LEDATA for fluorescence data files fluor
+Auger electron cascade enabled 0
+PIXE atomic de-excitation enabled 0
+De-excitation module ignores cuts 0
+Type of PIXE cross section for hadrons Empirical
+Type of PIXE cross section for e+- Livermore
+=======================================================================
+
+### === Deexcitation model UAtomDeexcitation is activated for 2 regions:
+ DefaultRegionForTheWorld 1 0 0
+ phantomRegion 1 0 0
+### === Ignore cuts flag: 0
+
+phot: for gamma SubType=12 BuildTable=0
+ LambdaPrime table from 200 keV to 100 TeV in 174 bins
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ LivermorePhElectric : Emin= 0 eV Emax= 100 TeV SauterGavrila Fluo
+
+compt: for gamma SubType=13 BuildTable=1
+ Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1
+ LambdaPrime table from 1 MeV to 100 TeV in 160 bins
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ LowEPComptonModel : Emin= 0 eV Emax= 20 MeV Fluo
+ KleinNishina : Emin= 20 MeV Emax= 100 TeV Fluo
+
+conv: for gamma SubType=14 BuildTable=1
+ Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ BetheHeitler5D : Emin= 0 eV Emax= 100 TeV ModifiedTsai
+
+Rayl: for gamma SubType=11 BuildTable=1
+ Lambda table from 100 eV to 150 keV, 20 bins/decade, spline: 0
+ LambdaPrime table from 150 keV to 100 TeV in 176 bins
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ LivermoreRayleigh : Emin= 0 eV Emax= 100 TeV CullenGenerator
+
+msc: for e- SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
+ StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+ WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
+ StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+eIoni: for e- XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ PenIoni : Emin= 0 eV Emax= 100 keV
+ MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
+
+eBrem: for e- XStype:4 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
+ eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
+
+ePairProd: for e- XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
+ Sampling table 25x1001 from 0.1 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+CoulombScat: for e- XStype:1 SubType=1 BuildTable=1
+ Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
+
+msc: for e+ SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ GoudsmitSaunderson : Emin= 0 eV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
+ StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+ WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
+ StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+eIoni: for e+ XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.2, 0.01 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ PenIoni : Emin= 0 eV Emax= 100 keV
+ MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
+
+eBrem: for e+ XStype:4 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eBremSB : Emin= 0 eV Emax= 1 GeV AngularGen2BS
+ eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
+
+ePairProd: for e+ XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 0
+ Sampling table 25x1001 from 0.1 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ ePairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+annihil: for e+ XStype:2 SubType=5 AtRestModel:Allison BuildTable=0
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eplusTo2or3gamma : Emin= 0 eV Emax= 100 TeV
+
+CoulombScat: for e+ XStype:1 SubType=1 BuildTable=1
+ Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 0
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 100 MeV Emax= 100 TeV
+
+msc: for proton SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+hIoni: for proton XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ Bragg : Emin= 0 eV Emax= 2 MeV deltaVI
+ BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
+
+hBrems: for proton XStype:1 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+hPairProd: for proton XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ Sampling table 17x1001 from 7.50618 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+CoulombScat: for proton XStype:1 SubType=1 BuildTable=1
+ Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 0 eV Emax= 100 TeV
+
+nuclearStopping: for proton SubType=8 BuildTable=0
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
+
+msc: for GenericIon SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ UrbanMsc : Emin= 0 eV Emax= 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+ionIoni: for GenericIon XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.001 mm), integ: 3, fluct: 1, linLossLim= 0.02
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ LindhardSorensen : Emin= 0 eV Emax= 100 TeV deltaVI
+
+nuclearStopping: for GenericIon SubType=8 BuildTable=0
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
+
+msc: for alpha SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ UrbanMsc : Emin= 0 eV Emax= 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+ionIoni: for alpha XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.02 mm), integ: 3, fluct: 1, linLossLim= 0.02
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ BraggIon : Emin= 0 eV Emax=7.9452 MeV deltaVI
+ BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI
+
+nuclearStopping: for alpha SubType=8 BuildTable=0
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ ICRU49NucStopping : Emin= 0 eV Emax= 1 MeV
+
+msc: for anti_proton SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+hIoni: for anti_proton XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ ICRU73QO : Emin= 0 eV Emax= 2 MeV deltaVI
+ BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
+
+hBrems: for anti_proton XStype:1 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+hPairProd: for anti_proton XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ Sampling table 17x1001 from 7.50618 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+CoulombScat: for anti_proton XStype:1 SubType=1 BuildTable=1
+ Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 0 eV Emax= 100 TeV
+
+msc: for kaon+ SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+hIoni: for kaon+ XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ Bragg : Emin= 0 eV Emax=1.05231 MeV deltaVI
+ BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
+
+hBrems: for kaon+ XStype:1 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+hPairProd: for kaon+ XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ Sampling table 18x1001 from 3.94942 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+CoulombScat: for kaon+ XStype:1 SubType=1 BuildTable=1
+ Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 0 eV Emax= 100 TeV
+
+msc: for kaon- SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+hIoni: for kaon- XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ ICRU73QO : Emin= 0 eV Emax=1.05231 MeV deltaVI
+ BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
+
+hBrems: for kaon- XStype:1 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+hPairProd: for kaon- XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ Sampling table 18x1001 from 3.94942 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+CoulombScat: for kaon- XStype:1 SubType=1 BuildTable=1
+ Used Lambda table of kaon+
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 0 eV Emax= 100 TeV
+
+msc: for mu+ SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+muIoni: for mu+ XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ Bragg : Emin= 0 eV Emax= 200 keV deltaVI
+ MuBetheBloch : Emin= 200 keV Emax= 100 TeV deltaVI
+
+muBrems: for mu+ XStype:1 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+muPairProd: for mu+ XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ Sampling table 21x1001 from 0.85 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+CoulombScat: for mu+ XStype:1 SubType=1 BuildTable=1
+ Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 0 eV Emax= 100 TeV
+
+msc: for mu- SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+muIoni: for mu- XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ ICRU73QO : Emin= 0 eV Emax= 200 keV deltaVI
+ MuBetheBloch : Emin= 200 keV Emax= 100 TeV deltaVI
+
+muBrems: for mu- XStype:1 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ MuBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+muPairProd: for mu- XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ Sampling table 21x1001 from 0.85 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ muPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+CoulombScat: for mu- XStype:1 SubType=1 BuildTable=1
+ Used Lambda table of mu+
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 0 eV Emax= 100 TeV
+
+msc: for pi+ SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+hIoni: for pi+ XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ Bragg : Emin= 0 eV Emax=297.505 keV deltaVI
+ BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
+
+hBrems: for pi+ XStype:1 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+hPairProd: for pi+ XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ Sampling table 20x1001 from 1.11656 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+CoulombScat: for pi+ XStype:1 SubType=1 BuildTable=1
+ Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 0
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 0 eV Emax= 100 TeV
+
+msc: for pi- SubType= 10
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ WentzelVIUni : Emin= 0 eV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
+ StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
+
+hIoni: for pi- XStype:3 SubType=2
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ StepFunction=(0.1, 0.05 mm), integ: 3, fluct: 1, linLossLim= 0.01
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ ICRU73QO : Emin= 0 eV Emax=297.505 keV deltaVI
+ BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
+
+hBrems: for pi- XStype:1 SubType=3
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hBrem : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+hPairProd: for pi- XStype:1 SubType=4
+ dE/dx and range tables from 100 eV to 100 TeV in 240 bins
+ Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
+ Sampling table 20x1001 from 1.11656 GeV to 100 TeV
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ hPairProd : Emin= 0 eV Emax= 100 TeV ModifiedMephi
+
+CoulombScat: for pi- XStype:1 SubType=1 BuildTable=1
+ Used Lambda table of pi+
+ ThetaMin(p) < Theta(degree) < 180, pLimit(GeV^1)= 0.139531
+ ===== EM models for the G4Region DefaultRegionForTheWorld ======
+ eCoulombScattering : Emin= 0 eV Emax= 100 TeV
+
+========= Table of registered couples ============================
+
+Index : 0 used in the geometry : Yes
+ Material : G4_AIR
+ Range cuts : gamma 1 mm e- 1 mm e+ 1 mm proton 1 mm
+ Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 keV
+ Region(s) which use this couple :
+ DefaultRegionForTheWorld
+
+Index : 1 used in the geometry : Yes
+ Material : G4_WATER
+ Range cuts : gamma 1 nm e- 1 nm e+ 1 nm proton 1 nm
+ Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV proton 100 meV
+ Region(s) which use this couple :
+ phantomRegion
+
+==================================================================
+
+### Run 0 starts.
+
+-------- WWWW ------- G4Exception-START -------- WWWW -------
+*** G4Exception : Analysis_W001
+ issued by : G4RootNtupleFileManager::SetNtupleMergingMode
+Merging ntuples is not applicable in sequential application.
+Setting was ignored.
+*** This is just a warning message. ***
+-------- WWWW -------- G4Exception-END --------- WWWW -------
+
+--> Event 0 starts.
+--> Event 100 starts.
+--> Event 200 starts.
+--> Event 300 starts.
+--> Event 400 starts.
+--> Event 500 starts.
+--> Event 600 starts.
+--> Event 700 starts.
+--> Event 800 starts.
+--> Event 900 starts.
+--> Event 1000 starts.
+--> Event 1100 starts.
+--> Event 1200 starts.
+--> Event 1300 starts.
+--> Event 1400 starts.
+--> Event 1500 starts.
+--> Event 1600 starts.
+--> Event 1700 starts.
+--> Event 1800 starts.
+--> Event 1900 starts.
+--> Event 2000 starts.
+--> Event 2100 starts.
+--> Event 2200 starts.
+--> Event 2300 starts.
+--> Event 2400 starts.
+--> Event 2500 starts.
+--> Event 2600 starts.
+--> Event 2700 starts.
+--> Event 2800 starts.
+--> Event 2900 starts.
+--> Event 3000 starts.
+--> Event 3100 starts.
+--> Event 3200 starts.
+--> Event 3300 starts.
+--> Event 3400 starts.
+--> Event 3500 starts.
+--> Event 3600 starts.
+--> Event 3700 starts.
+--> Event 3800 starts.
+--> Event 3900 starts.
+--> Event 4000 starts.
+--> Event 4100 starts.
+--> Event 4200 starts.
+--> Event 4300 starts.
+--> Event 4400 starts.
+--> Event 4500 starts.
+--> Event 4600 starts.
+--> Event 4700 starts.
+--> Event 4800 starts.
+--> Event 4900 starts.
+--> Event 5000 starts.
+--> Event 5100 starts.
+--> Event 5200 starts.
+--> Event 5300 starts.
+--> Event 5400 starts.
+--> Event 5500 starts.
+--> Event 5600 starts.
+--> Event 5700 starts.
+--> Event 5800 starts.
+--> Event 5900 starts.
+--> Event 6000 starts.
+--> Event 6100 starts.
+--> Event 6200 starts.
+--> Event 6300 starts.
+--> Event 6400 starts.
+--> Event 6500 starts.
+--> Event 6600 starts.
+--> Event 6700 starts.
+--> Event 6800 starts.
+--> Event 6900 starts.
+--> Event 7000 starts.
+--> Event 7100 starts.
+--> Event 7200 starts.
+--> Event 7300 starts.
+--> Event 7400 starts.
+--> Event 7500 starts.
+--> Event 7600 starts.
+--> Event 7700 starts.
+--> Event 7800 starts.
+--> Event 7900 starts.
+--> Event 8000 starts.
+--> Event 8100 starts.
+--> Event 8200 starts.
+--> Event 8300 starts.
+--> Event 8400 starts.
+--> Event 8500 starts.
+--> Event 8600 starts.
+--> Event 8700 starts.
+--> Event 8800 starts.
+--> Event 8900 starts.
+--> Event 9000 starts.
+--> Event 9100 starts.
+--> Event 9200 starts.
+--> Event 9300 starts.
+--> Event 9400 starts.
+--> Event 9500 starts.
+--> Event 9600 starts.
+--> Event 9700 starts.
+--> Event 9800 starts.
+--> Event 9900 starts.
+ Run terminated.
+Run Summary
+ Number of events processed : 10000
+ User=29.190000s Real=30.611031s Sys=0.000000s
+Graphics systems deleted.
+Visualization Manager deleting...
+================== Deleting memory pools ===================
+Number of memory pools allocated: 9 of which, static: 0
+Dynamic pools deleted: 9 / Total memory freed: 0.19 MB
+============================================================
diff --git a/examples/advanced/dna/cellularPhantom/include/ActionInitialization.hh b/examples/advanced/dna/cellularPhantom/include/ActionInitialization.hh
new file mode 100644
index 0000000000..13c3d9432b
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/include/ActionInitialization.hh
@@ -0,0 +1,62 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#ifndef ActionInitialization_h
+#define ActionInitialization_h 1
+
+#include "G4VUserActionInitialization.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class DetectorConstruction;
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class ActionInitialization : public G4VUserActionInitialization
+{
+ public:
+ ActionInitialization();
+ ~ActionInitialization() override = default;
+ void BuildForMaster() const override;
+ void Build() const override;
+};
+
+#endif
diff --git a/examples/advanced/dna/cellularPhantom/include/CellParameterisation.hh b/examples/advanced/dna/cellularPhantom/include/CellParameterisation.hh
new file mode 100644
index 0000000000..6d1202be83
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/include/CellParameterisation.hh
@@ -0,0 +1,145 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#ifndef CellParameterisation_H
+#define CellParameterisation_H 1
+
+#include "G4VPVParameterisation.hh"
+#include "G4VPhysicalVolume.hh"
+#include "G4LogicalVolume.hh"
+#include "G4VisAttributes.hh"
+#include "G4SystemOfUnits.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+class CellParameterisation : public G4VPVParameterisation
+{
+ public:
+
+ explicit CellParameterisation
+ (G4String fileName,
+ G4Material *RedMat, G4Material *GreenMat, G4Material *BlueMat,
+ G4double shiftX, G4double shiftY, G4double shiftZ);
+
+ ~CellParameterisation() override;
+
+ void ComputeTransformation
+ (const G4int copyNo, G4VPhysicalVolume *physVol) const override;
+
+ G4Material *ComputeMaterial (const G4int copyNo,
+ G4VPhysicalVolume *physVol,
+ const G4VTouchable *) override;
+
+ inline auto GetPhantomTotalPixels() const { return fPhantomTotalPixels; }
+
+ inline auto GetRedTotalPixels() const { return fRedTotalPixels; }
+ inline auto GetGreenTotalPixels() const { return fGreenTotalPixels; }
+ inline auto GetBlueTotalPixels() const { return fBlueTotalPixels; }
+
+ inline auto GetPixelSizeX() const { return fDimCellBoxX; }
+ inline auto GetPixelSizeY() const { return fDimCellBoxY; }
+ inline auto GetPixelSizeZ() const { return fDimCellBoxZ; }
+
+ inline auto GetRedMass() const { return fRedMass; }
+ inline auto GetGreenMass() const { return fGreenMass; }
+ inline auto GetBlueMass() const { return fBlueMass; }
+
+ inline auto GetVoxelThreeVector(G4int i) const { return fMapCell[i]; }
+ inline auto GetVoxelThreeVectorPixel(G4int i) const { return fMapCellPxl[i]; }
+ inline auto GetVoxelThreeVectorOriginal(G4int i) const { return fMapCellOriginal[i]; }
+
+ inline auto GetMaterial(G4int i) const { return fMaterial[i]; }
+
+ // Singleton
+ static CellParameterisation *Instance()
+ {
+ return gInstance;
+ }
+
+ private:
+
+ void Initialize(const G4String&);
+
+ static CellParameterisation *gInstance;
+
+ G4double fDimCellBoxX = 0;
+ G4double fDimCellBoxY = 0;
+ G4double fDimCellBoxZ = 0;
+
+ G4double fSizeRealX = 0;
+ G4double fSizeRealY = 0;
+ G4double fSizeRealZ = 0;
+
+ G4Material *fRedMaterial = nullptr;
+ G4Material *fGreenMaterial = nullptr;
+ G4Material *fBlueMaterial = nullptr;
+
+ G4double fShiftX = 0.;
+ G4double fShiftY = 0.;
+ G4double fShiftZ = 0.;
+
+ G4VisAttributes *fRedAttributes = nullptr;
+ G4VisAttributes *fGreenAttributes = nullptr;
+ G4VisAttributes *fBlueAttributes = nullptr;
+
+ G4ThreeVector *fMapCell = nullptr; // VOXEL COORDINATES
+ G4ThreeVector *fMapCellPxl = nullptr;// VOXEL COORDINATES IN PIXEL, NO SHIFT
+ G4ThreeVector *fMapCellOriginal = nullptr; // VOXEL COORDINATES (original space)
+
+ G4int *fMaterial = nullptr; // MATERIAL
+
+ G4int fPhantomTotalPixels = 0;
+ G4int fRedTotalPixels = 0;
+ G4int fGreenTotalPixels = 0;
+ G4int fBlueTotalPixels = 0;
+
+ G4double fRedMass = 0.;
+ G4double fGreenMass = 0.;
+ G4double fBlueMass = 0.;
+
+ char fRealUnit;
+
+ G4double fOffsetX = 0.;
+ G4double fOffsetY = 0.;
+ G4double fOffsetZ = 0.;
+};
+
+#endif
diff --git a/examples/advanced/dna/cellularPhantom/include/DetectorConstruction.hh b/examples/advanced/dna/cellularPhantom/include/DetectorConstruction.hh
new file mode 100644
index 0000000000..3fb924d7ca
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/include/DetectorConstruction.hh
@@ -0,0 +1,133 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#ifndef DetectorConstruction_h
+#define DetectorConstruction_h 1
+
+#include "CellParameterisation.hh"
+
+#include "G4VUserDetectorConstruction.hh"
+#include "G4Box.hh"
+#include "G4Region.hh"
+#include "G4PVPlacement.hh"
+#include "G4PVParameterised.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class DetectorMessenger;
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class DetectorConstruction : public G4VUserDetectorConstruction {
+ public:
+
+ DetectorConstruction();
+ ~DetectorConstruction() override = default;
+
+ G4VPhysicalVolume *Construct() override;
+
+ inline auto *GetLogicalMedium() const { return fLogicMedium; };
+
+ void SetTargetMaterial(const G4String&);
+
+ void SetRedDensity(const G4double&);
+ void SetGreenDensity(const G4double&);
+ void SetBlueDensity(const G4double&);
+
+ void SetShiftX(const G4double&);
+ void SetShiftY(const G4double&);
+ void SetShiftZ(const G4double&);
+
+ void SetMediumSizeXY(const G4double&);
+ void SetMediumSizeZ(const G4double&);
+
+ void SetWorldSizeXY(const G4double&);
+ void SetWorldSizeZ(const G4double&);
+
+ void SetPhantomFileName(const G4String&);
+
+ private:
+
+ void DefineMaterials();
+
+ G4VPhysicalVolume *ConstructLine();
+
+ G4double fDensityRed = 1.0;
+ G4double fDensityGreen = 1.0;
+ G4double fDensityBlue = 1.0;
+
+ G4double fShiftX = 0.*um;
+ G4double fShiftY = 0.*um;
+ G4double fShiftZ = 0.*um;
+
+ G4double fWorldSizeXY = 0.;
+ G4double fWorldSizeZ = 0.;
+
+ G4double fMediumSizeXY = 0.;
+ G4double fMediumSizeZ = 0.;
+
+ G4Material *fDefaultMaterial = nullptr;
+ G4Material *fMediumMaterial = nullptr;
+ G4Material *fRedMaterial = nullptr;
+ G4Material *fGreenMaterial = nullptr;
+ G4Material *fBlueMaterial = nullptr;
+ G4Material *fPhantomMaterial = nullptr;
+
+ G4VPhysicalVolume *fPhysiWorld = nullptr;
+ G4LogicalVolume *fLogicWorld = nullptr;
+ G4Box *fSolidWorld = nullptr;
+
+ G4VPhysicalVolume *fPhysiMedium = nullptr;
+ G4LogicalVolume *fLogicMedium = nullptr;
+ G4Box *fSolidMedium = nullptr;
+
+ G4VPhysicalVolume *fPhysiPhantom = nullptr;
+ G4LogicalVolume *fLogicPhantom = nullptr;
+ G4Box *fSolidPhantom = nullptr;
+ CellParameterisation *fPhantomParam = nullptr;
+
+ DetectorMessenger* fDetectorMessenger = nullptr;
+
+ G4String fPhantomFileName = "";
+ G4Region* fPhantomRegion = nullptr;
+};
+
+#endif
diff --git a/examples/advanced/dna/cellularPhantom/include/DetectorMessenger.hh b/examples/advanced/dna/cellularPhantom/include/DetectorMessenger.hh
new file mode 100644
index 0000000000..5f12ab164c
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/include/DetectorMessenger.hh
@@ -0,0 +1,89 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#ifndef DetectorMessenger_h
+#define DetectorMessenger_h 1
+
+#include "G4UImessenger.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class DetectorConstruction;
+class G4UIcmdWithAString;
+class G4UIcmdWithADoubleAndUnit;
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+class DetectorMessenger: public G4UImessenger
+{
+ public:
+
+ explicit DetectorMessenger(DetectorConstruction*);
+ ~DetectorMessenger() override;
+
+ void SetNewValue(G4UIcommand*, G4String) override;
+
+ private:
+
+ DetectorConstruction* fDetector = nullptr;
+
+ G4UIdirectory* fPhantomDir = nullptr;
+ G4UIdirectory* fWorldDir = nullptr;
+
+ G4UIcmdWithAString* fNameCmd = nullptr;
+ G4UIcmdWithAString* fMatCmd = nullptr;
+
+ G4UIcmdWithADoubleAndUnit* fDenRedCmd = nullptr;
+ G4UIcmdWithADoubleAndUnit* fDenGreenCmd = nullptr;
+ G4UIcmdWithADoubleAndUnit* fDenBlueCmd = nullptr;
+
+ G4UIcmdWithADoubleAndUnit* fShiftXCmd = nullptr;
+ G4UIcmdWithADoubleAndUnit* fShiftYCmd = nullptr;
+ G4UIcmdWithADoubleAndUnit* fShiftZCmd = nullptr;
+
+ G4UIcmdWithADoubleAndUnit* fMediumSizeXYCmd = nullptr;
+ G4UIcmdWithADoubleAndUnit* fMediumSizeZCmd = nullptr;
+
+ G4UIcmdWithADoubleAndUnit* fWorldSizeXYCmd = nullptr;
+ G4UIcmdWithADoubleAndUnit* fWorldSizeZCmd = nullptr;
+};
+
+#endif
diff --git a/examples/advanced/dna/cellularPhantom/include/EventAction.hh b/examples/advanced/dna/cellularPhantom/include/EventAction.hh
new file mode 100644
index 0000000000..840876ad92
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/include/EventAction.hh
@@ -0,0 +1,63 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#ifndef EventAction_h
+#define EventAction_h 1
+
+#include "G4UserEventAction.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class RunAction;
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class EventAction : public G4UserEventAction
+{
+ public:
+ explicit EventAction();
+ ~EventAction() override;
+
+ void BeginOfEventAction(const G4Event*) override;
+ void EndOfEventAction(const G4Event*) override;
+};
+
+#endif
diff --git a/examples/advanced/dna/cellularPhantom/include/PhysicsList.hh b/examples/advanced/dna/cellularPhantom/include/PhysicsList.hh
new file mode 100644
index 0000000000..9374bf1808
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/include/PhysicsList.hh
@@ -0,0 +1,61 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#ifndef PhysicsList_h
+#define PhysicsList_h 1
+
+#include "G4VModularPhysicsList.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+class PhysicsList: public G4VModularPhysicsList
+{
+ public:
+
+ explicit PhysicsList();
+ ~PhysicsList() override;
+
+ void SetCuts() override;
+
+ private:
+};
+
+#endif
diff --git a/examples/advanced/dna/cellularPhantom/include/PrimaryGeneratorAction.hh b/examples/advanced/dna/cellularPhantom/include/PrimaryGeneratorAction.hh
new file mode 100644
index 0000000000..f79031ddf4
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/include/PrimaryGeneratorAction.hh
@@ -0,0 +1,67 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#ifndef PrimaryGeneratorAction_h
+#define PrimaryGeneratorAction_h 1
+
+#include "CellParameterisation.hh"
+
+#include "G4VUserPrimaryGeneratorAction.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class G4GeneralParticleSource;
+
+//....oooOO0OOooo........oooOO0OOooo.......eant4 units.oooOO0OOooo........oooOO0OOooo....
+
+class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
+{
+ public:
+ explicit PrimaryGeneratorAction();
+ ~PrimaryGeneratorAction() override;
+
+ void GeneratePrimaries(G4Event*) override;
+
+ private:
+ G4GeneralParticleSource* fGPS = nullptr;
+};
+
+#endif
diff --git a/examples/advanced/dna/cellularPhantom/include/RunAction.hh b/examples/advanced/dna/cellularPhantom/include/RunAction.hh
new file mode 100644
index 0000000000..5ee1445d95
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/include/RunAction.hh
@@ -0,0 +1,72 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#ifndef RunAction_h
+#define RunAction_h 1
+
+#include "DetectorConstruction.hh"
+
+#include "G4UserRunAction.hh"
+#include "G4AnalysisManager.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class RunAction : public G4UserRunAction
+{
+ public:
+
+ explicit RunAction();
+ ~RunAction() override;
+
+ void BeginOfRunAction(const G4Run*) override;
+ void EndOfRunAction(const G4Run*) override;
+
+ void AddDoseBox(G4int i, G4double x) {fVoxelEnergy[i] +=x;}
+ G4double GetDoseBox(G4int i) {return fVoxelEnergy[i];}
+
+ private:
+
+ const CellParameterisation * fMyPhantomParam = nullptr;
+ G4double * fVoxelEnergy = nullptr;
+ G4int fNbVoxels = 0;
+};
+
+#endif
diff --git a/examples/advanced/dna/cellularPhantom/include/SteppingAction.hh b/examples/advanced/dna/cellularPhantom/include/SteppingAction.hh
new file mode 100644
index 0000000000..81dc6d58e6
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/include/SteppingAction.hh
@@ -0,0 +1,64 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#ifndef SteppingAction_h
+#define SteppingAction_h 1
+
+#include "RunAction.hh"
+
+#include "G4UserSteppingAction.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+class SteppingAction : public G4UserSteppingAction
+{
+ public:
+ explicit SteppingAction(RunAction*);
+ ~SteppingAction() override = default;
+
+ void UserSteppingAction(const G4Step*) override;
+
+ private:
+ RunAction* fRunAction = nullptr;
+ const CellParameterisation * fMyPhantomParam = nullptr;
+};
+
+#endif
diff --git a/examples/advanced/dna/cellularPhantom/plot.C b/examples/advanced/dna/cellularPhantom/plot.C
new file mode 100644
index 0000000000..41a949632f
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/plot.C
@@ -0,0 +1,514 @@
+// -------------------------------------------------------------------
+// -------------------------------------------------------------------
+//
+// *********************************************************************
+// To execute this macro under ROOT,
+// 1 - launch ROOT (usually type 'root' at your machine's prompt)
+// 2 - type '.X plot.C' at the ROOT session prompt
+// Written by S. Incerti, 10/09/2024
+// *********************************************************************
+{
+gROOT->Reset();
+gROOT->SetStyle("Plain");
+gStyle->SetOptStat(0000);
+gStyle->SetPalette(1);
+
+auto c1 = new TCanvas ("c1","",20,20,1200,900);
+c1->Divide(4,3);
+
+//------------------------------
+// Original phantom file view
+//------------------------------
+
+FILE * fp = fopen("phantoms/phantom.dat","r");
+
+Double_t X, Y, Z, mat, tmp;
+char unit[100];
+Double_t voxelSizeX, voxelSizeY, voxelSizeZ;
+Long_t numberVoxTot, numberVoxRed, numberVoxGreen, numberVoxBlue;
+
+TNtuple *ntuplePhantom = new TNtuple("PHANTOM","ntuple","X:Y:Z:mat");
+
+Long_t nlines=0;
+Long_t ncols=0;
+
+while (1)
+ {
+ if ( nlines == 0 ) ncols = fscanf(fp,"%ld %ld %ld %ld",&numberVoxTot,&numberVoxRed,&numberVoxGreen,&numberVoxBlue);
+ if ( nlines == 1 ) ncols = fscanf(fp,"%lf %lf %lf %s",&tmp,&tmp,&tmp,unit);
+ if ( nlines == 2 ) ncols = fscanf(fp,"%lf %lf %lf %s",&voxelSizeX,&voxelSizeY,&voxelSizeZ, unit);
+ if ( nlines >= 3 ) ncols = fscanf(fp,"%lf %lf %lf %lf", &X, &Y, &Z, &mat);
+ //cout << X << " " << Y << " " << Z << " " << mat << endl;
+ if (ncols < 0) break;
+ ntuplePhantom->Fill(X,Y,Z,mat);
+ nlines++;
+ }
+fclose(fp);
+
+c1->cd(1);
+
+ntuplePhantom->SetMarkerColor(1);
+ntuplePhantom->Draw("Y:X");
+// RED
+ntuplePhantom->SetMarkerColor(2);
+ntuplePhantom->Draw("Y:X","mat==1","same");
+// GREEN
+ntuplePhantom->SetMarkerColor(3);
+ntuplePhantom->Draw("Y:X","mat==2","same");
+// BLUE
+ntuplePhantom->SetMarkerColor(4);
+ntuplePhantom->Draw("Y:X","mat==3","same");
+//
+TH2F *htemp = (TH2F*)gPad->GetPrimitive("htemp");
+htemp->GetXaxis()->SetTitle("X (microns)");
+htemp->GetYaxis()->SetTitle("Y (mirons)");
+htemp->GetXaxis()->SetLabelSize(0.025);
+htemp->GetYaxis()->SetLabelSize(0.025);
+htemp->GetXaxis()->SetTitleSize(0.035);
+htemp->GetYaxis()->SetTitleSize(0.035);
+htemp->GetXaxis()->SetTitleOffset(1.4);
+htemp->GetYaxis()->SetTitleOffset(1.4);
+htemp->SetTitle("RGB phantom YX view");
+
+c1->cd(5);
+
+ntuplePhantom->SetMarkerColor(1);
+ntuplePhantom->Draw("Y:Z");
+// RED
+ntuplePhantom->SetMarkerColor(2);
+ntuplePhantom->Draw("Y:Z","mat==1","same");
+// GREEN
+ntuplePhantom->SetMarkerColor(3);
+ntuplePhantom->Draw("Y:Z","mat==2","same");
+// BLUE
+ntuplePhantom->SetMarkerColor(4);
+ntuplePhantom->Draw("Y:Z","mat==3","same");
+//
+TH2F *htempBis = (TH2F*)gPad->GetPrimitive("htemp");
+htempBis->GetXaxis()->SetTitle("Z (microns)");
+htempBis->GetYaxis()->SetTitle("Y (mirons)");
+htempBis->GetXaxis()->SetLabelSize(0.025);
+htempBis->GetYaxis()->SetLabelSize(0.025);
+htempBis->GetXaxis()->SetTitleSize(0.035);
+htempBis->GetYaxis()->SetTitleSize(0.035);
+htempBis->GetXaxis()->SetTitleOffset(1.4);
+htempBis->GetYaxis()->SetTitleOffset(1.4);
+htempBis->SetTitle("RGB phantom YZ view");
+
+c1->cd(9);
+
+ntuplePhantom->SetMarkerColor(1);
+ntuplePhantom->Draw("X:Z");
+// RED
+ntuplePhantom->SetMarkerColor(2);
+ntuplePhantom->Draw("X:Z","mat==1","same");
+// GREEN
+ntuplePhantom->SetMarkerColor(3);
+ntuplePhantom->Draw("X:Z","mat==2","same");
+// BLUE
+ntuplePhantom->SetMarkerColor(4);
+ntuplePhantom->Draw("X:Z","mat==3","same");
+//
+TH2F *htempTer = (TH2F*)gPad->GetPrimitive("htemp");
+htempTer->GetXaxis()->SetTitle("Z (microns)");
+htempTer->GetYaxis()->SetTitle("X (mirons)");
+htempTer->GetXaxis()->SetLabelSize(0.025);
+htempTer->GetYaxis()->SetLabelSize(0.025);
+htempTer->GetXaxis()->SetTitleSize(0.035);
+htempTer->GetYaxis()->SetTitleSize(0.035);
+htempTer->GetXaxis()->SetTitleOffset(1.4);
+htempTer->GetYaxis()->SetTitleOffset(1.4);
+htempTer->SetTitle("RGB phantom XZ view");
+
+//------------------
+// Read ROOT file
+//------------------
+
+// IF no merging active in simulation
+//system ("rm -rf phantom.root");
+//system ("hadd -O phantom.root phantom_t*.root");
+
+TFile *f = new TFile ("phantom.root");
+
+TNtuple* ntuple1;
+TNtuple* ntuple2;
+TNtuple* ntuple3;
+
+ntuple1 = (TNtuple*)f->Get("ntuple1");
+ntuple2 = (TNtuple*)f->Get("ntuple2");
+ntuple3 = (TNtuple*)f->Get("ntuple3");
+
+//----------------------
+// Sum of ntuples
+//----------------------
+
+Double_t * tabVoxelXRed = new Double_t [numberVoxTot];
+Double_t * tabVoxelXGreen = new Double_t [numberVoxTot];
+Double_t * tabVoxelXBlue = new Double_t [numberVoxTot];
+
+Double_t * tabVoxelYRed = new Double_t [numberVoxTot];
+Double_t * tabVoxelYGreen = new Double_t [numberVoxTot];
+Double_t * tabVoxelYBlue = new Double_t [numberVoxTot];
+
+Double_t * tabVoxelZRed = new Double_t [numberVoxTot];
+Double_t * tabVoxelZGreen = new Double_t [numberVoxTot];
+Double_t * tabVoxelZBlue = new Double_t [numberVoxTot];
+
+Double_t * tabVoxelEnergyRed = new Double_t [numberVoxTot];
+Double_t * tabVoxelEnergyGreen = new Double_t [numberVoxTot];
+Double_t * tabVoxelEnergyBlue = new Double_t [numberVoxTot];
+
+Double_t * tabVoxelDoseRed = new Double_t [numberVoxTot];
+Double_t * tabVoxelDoseGreen = new Double_t [numberVoxTot];
+Double_t * tabVoxelDoseBlue = new Double_t [numberVoxTot];
+
+// Initialisation of the arrays
+for (Int_t i = 0; i < numberVoxRed; i++)
+{
+ tabVoxelXRed[i] = 0;
+ tabVoxelYRed[i] = 0;
+ tabVoxelZRed[i] = 0;
+ tabVoxelEnergyRed[i] = 0;
+ tabVoxelDoseRed[i] = 0;
+}
+for (Int_t i = 0; i < numberVoxGreen; i++)
+{
+ tabVoxelXGreen[i] = 0;
+ tabVoxelYGreen[i] = 0;
+ tabVoxelZGreen[i] = 0;
+ tabVoxelEnergyGreen[i] = 0;
+ tabVoxelDoseGreen[i] = 0;
+}
+for (Int_t i = 0; i < numberVoxBlue; i++)
+{
+ tabVoxelXBlue[i] = 0;
+ tabVoxelYBlue[i] = 0;
+ tabVoxelZBlue[i] = 0;
+ tabVoxelEnergyBlue[i] = 0;
+ tabVoxelDoseBlue[i] = 0;
+}
+
+Double_t x, y, z, energy, dose;
+Int_t voxelID;
+Double_t nrjRed=0.;
+Double_t nrjGreen=0.;
+Double_t nrjBlue=0.;
+Double_t doseRed=0.;
+Double_t doseGreen=0.;
+Double_t doseBlue=0.;
+
+//
+
+ntuple1->SetBranchAddress("x",&x);
+ntuple1->SetBranchAddress("y",&y);
+ntuple1->SetBranchAddress("z",&z);
+ntuple1->SetBranchAddress("energy",&energy);
+ntuple1->SetBranchAddress("dose",&dose);
+ntuple1->SetBranchAddress("voxelID",&voxelID);
+
+// RED
+
+Long_t nentriesRed = (Long_t)ntuple1->GetEntries();
+for (Long_t i=0;iGetEntry(i);
+ if (energy > 0)
+ {
+ nrjRed=nrjRed+energy;
+ doseRed=doseRed+dose;
+
+ tabVoxelXRed[voxelID] = x;
+ tabVoxelYRed[voxelID] = y;
+ tabVoxelZRed[voxelID] = z;
+ tabVoxelEnergyRed[voxelID] = tabVoxelEnergyRed[voxelID] + energy;
+ tabVoxelDoseRed[voxelID] = tabVoxelDoseRed[voxelID] + dose;
+ }
+}
+
+ntuple2->SetBranchAddress("x",&x);
+ntuple2->SetBranchAddress("y",&y);
+ntuple2->SetBranchAddress("z",&z);
+ntuple2->SetBranchAddress("energy",&energy);
+ntuple2->SetBranchAddress("dose",&dose);
+ntuple2->SetBranchAddress("voxelID",&voxelID);
+
+// GREEN
+
+Long_t nentriesGreen = (Long_t)ntuple2->GetEntries();
+for (Long_t i=0;iGetEntry(i);
+ if (energy > 0)
+ {
+ nrjGreen=nrjGreen+energy;
+ doseGreen=doseGreen+dose;
+
+ tabVoxelXGreen[voxelID] = x;
+ tabVoxelYGreen[voxelID] = y;
+ tabVoxelZGreen[voxelID] = z;
+ tabVoxelEnergyGreen[voxelID] = tabVoxelEnergyGreen[voxelID] + energy;
+ tabVoxelDoseGreen[voxelID] = tabVoxelDoseGreen[voxelID] + dose;
+ }
+}
+
+// BLUE
+
+ntuple3->SetBranchAddress("x",&x);
+ntuple3->SetBranchAddress("y",&y);
+ntuple3->SetBranchAddress("z",&z);
+ntuple3->SetBranchAddress("energy",&energy);
+ntuple3->SetBranchAddress("dose",&dose);
+ntuple3->SetBranchAddress("voxelID",&voxelID);
+
+Long_t nentriesBlue = (Long_t)ntuple3->GetEntries();
+for (Long_t i=0;iGetEntry(i);
+ if (energy > 0)
+ {
+ nrjBlue=nrjBlue+energy;
+ doseBlue=doseBlue+dose;
+ tabVoxelXBlue[voxelID] = x;
+ tabVoxelYBlue[voxelID] = y;
+ tabVoxelZBlue[voxelID] = z;
+ tabVoxelEnergyBlue[voxelID] = tabVoxelEnergyBlue[voxelID] + energy;
+ tabVoxelDoseBlue[voxelID] = tabVoxelDoseBlue[voxelID] + dose;
+ }
+}
+
+// To liberate memory
+f->Close();
+
+TFile *f2 = new TFile ("results.root","RECREATE");
+//
+
+TNtuple *ntupleRED = new TNtuple ("RED","RED","x:y:z:energy:dose");
+TNtuple *ntupleGREEN = new TNtuple ("GREEN","GREEN","x:y:z:energy:dose");
+TNtuple *ntupleBLUE = new TNtuple ("BLUE","BLUE","x:y:z:energy:dose");
+
+// Global sums
+for (Int_t i = 0; i < numberVoxTot; i++)
+{
+ ntupleRED->Fill(tabVoxelXRed[i],tabVoxelYRed[i],tabVoxelZRed[i],tabVoxelEnergyRed[i],tabVoxelDoseRed[i]);
+}
+for (Int_t i = 0; i < numberVoxTot; i++)
+{
+ ntupleGREEN->Fill(tabVoxelXGreen[i],tabVoxelYGreen[i],tabVoxelZGreen[i],tabVoxelEnergyGreen[i],tabVoxelDoseGreen[i]);
+}
+for (Int_t i = 0; i < numberVoxTot; i++)
+{
+ ntupleBLUE->Fill(tabVoxelXBlue[i],tabVoxelYBlue[i],tabVoxelZBlue[i],tabVoxelEnergyBlue[i],tabVoxelDoseBlue[i]);
+}
+
+//---------------------------------
+// Absorbed energy distributions
+//---------------------------------
+
+c1->cd(2);
+gPad->SetLogy();
+ntupleRED->Draw("energy","energy>0");
+TH1F *htemp2 = (TH1F*)gPad->GetPrimitive("htemp");
+htemp2->GetXaxis()->SetTitle("Energy (keV)");
+htemp2->GetXaxis()->SetLabelSize(0.025);
+htemp2->GetXaxis()->SetTitleSize(0.035);
+htemp2->GetXaxis()->SetTitleOffset(1.4);
+htemp2->SetTitle("RED voxel energy");
+htemp2->SetFillStyle(1001);
+htemp2->SetFillColor(2);
+
+c1->cd(6);
+gPad->SetLogy();
+ntupleGREEN->Draw("energy","energy>0");
+TH1F *htemp3 = (TH1F*)gPad->GetPrimitive("htemp");
+htemp3->GetXaxis()->SetTitle("Energy (keV)");
+htemp3->GetXaxis()->SetLabelSize(0.025);
+htemp3->GetXaxis()->SetTitleSize(0.035);
+htemp3->GetXaxis()->SetTitleOffset(1.4);
+htemp3->SetTitle("GREEN voxel energy");
+htemp3->SetFillStyle(1001);
+htemp3->SetFillColor(3);
+
+c1->cd(10);
+gPad->SetLogy();
+ntupleBLUE->Draw("energy","energy>0");
+TH1F *htemp4 = (TH1F*)gPad->GetPrimitive("htemp");
+htemp4->GetXaxis()->SetTitle("Energy (keV)");
+htemp4->GetXaxis()->SetLabelSize(0.025);
+htemp4->GetXaxis()->SetTitleSize(0.035);
+htemp4->GetXaxis()->SetTitleOffset(1.4);
+htemp4->SetTitle("BLUE voxel energy");
+htemp4->SetFillStyle(1001);
+htemp4->SetFillColor(4);
+
+//------------------------------
+// Map of energy distribution
+//------------------------------
+
+c1->cd(3);
+TH2F *histNrjRed = new TH2F("histNrjRed","histNrjRed",100,0,800,100,0,800);
+ntupleRED->Draw("y:x>>histNrjRed","energy","contz");
+gPad->SetLogz();
+histNrjRed->Draw("contz");
+histNrjRed->GetXaxis()->SetTitle("X (microns)");
+histNrjRed->GetYaxis()->SetTitle("Y (mirons)");
+histNrjRed->GetZaxis()->SetTitle("Energy (keV)");
+histNrjRed->GetXaxis()->SetLabelSize(0.025);
+histNrjRed->GetYaxis()->SetLabelSize(0.025);
+histNrjRed->GetZaxis()->SetLabelSize(0.025);
+histNrjRed->GetXaxis()->SetTitleSize(0.035);
+histNrjRed->GetYaxis()->SetTitleSize(0.035);
+histNrjRed->GetZaxis()->SetTitleSize(0.035);
+histNrjRed->GetXaxis()->SetTitleOffset(1.4);
+histNrjRed->GetYaxis()->SetTitleOffset(1.4);
+histNrjRed->GetZaxis()->SetTitleOffset(.6);
+histNrjRed->SetTitle("Energy map for RED voxels");
+
+c1->cd(7);
+TH2F *histNrjGreen = new TH2F("histNrjGreen","histNrjGreen",100,0,800,100,0,800);
+ntupleGREEN->Draw("y:x>>histNrjGreen","energy","contz");
+gPad->SetLogz();
+histNrjGreen->Draw("contz");
+histNrjGreen->GetXaxis()->SetTitle("X (microns)");
+histNrjGreen->GetYaxis()->SetTitle("Y (mirons)");
+histNrjGreen->GetZaxis()->SetTitle("Energy (keV)");
+histNrjGreen->GetXaxis()->SetLabelSize(0.025);
+histNrjGreen->GetYaxis()->SetLabelSize(0.025);
+histNrjGreen->GetZaxis()->SetLabelSize(0.025);
+histNrjGreen->GetXaxis()->SetTitleSize(0.035);
+histNrjGreen->GetYaxis()->SetTitleSize(0.035);
+histNrjGreen->GetZaxis()->SetTitleSize(0.035);
+histNrjGreen->GetXaxis()->SetTitleOffset(1.4);
+histNrjGreen->GetYaxis()->SetTitleOffset(1.4);
+histNrjGreen->GetZaxis()->SetTitleOffset(.6);
+histNrjGreen->SetTitle("Energy map for GREEN voxels");
+
+c1->cd(11);
+TH2F *histNrjBlue = new TH2F("histNrjBlue","histNrjBlue",100,0,800,100,0,800);
+ntupleBLUE->Draw("y:x>>histNrjBlue","energy","contz");
+gPad->SetLogz();
+histNrjBlue->Draw("contz");
+histNrjBlue->GetXaxis()->SetTitle("X (microns)");
+histNrjBlue->GetYaxis()->SetTitle("Y (mirons)");
+histNrjBlue->GetZaxis()->SetTitle("Energy (keV)");
+histNrjBlue->GetXaxis()->SetLabelSize(0.025);
+histNrjBlue->GetYaxis()->SetLabelSize(0.025);
+histNrjBlue->GetZaxis()->SetLabelSize(0.025);
+histNrjBlue->GetXaxis()->SetTitleSize(0.035);
+histNrjBlue->GetYaxis()->SetTitleSize(0.035);
+histNrjBlue->GetZaxis()->SetTitleSize(0.035);
+histNrjBlue->GetXaxis()->SetTitleOffset(1.4);
+histNrjBlue->GetYaxis()->SetTitleOffset(1.4);
+histNrjBlue->GetZaxis()->SetTitleOffset(.6);
+histNrjBlue->SetTitle("Energy map for BLUE voxels");
+
+//----------------------------
+// Map of dose distribution
+//----------------------------
+
+c1->cd(4);
+TH2F *histDoseRed = new TH2F("histDoseRed","histDoseRed",100,0,800,100,0,800);
+// WARNING : dose scaling to mGy
+ntupleRED->Draw("y:x>>histDoseRed","dose/1000","contz");
+//gPad->SetLogz();
+histDoseRed->Draw("contz");
+histDoseRed->GetXaxis()->SetTitle("X (microns)");
+histDoseRed->GetYaxis()->SetTitle("Y (mirons)");
+histDoseRed->GetZaxis()->SetTitle("Dose (mGy)");
+histDoseRed->GetXaxis()->SetLabelSize(0.025);
+histDoseRed->GetYaxis()->SetLabelSize(0.025);
+histDoseRed->GetZaxis()->SetLabelSize(0.025);
+histDoseRed->GetXaxis()->SetTitleSize(0.035);
+histDoseRed->GetYaxis()->SetTitleSize(0.035);
+histDoseRed->GetZaxis()->SetTitleSize(0.035);
+histDoseRed->GetXaxis()->SetTitleOffset(1.4);
+histDoseRed->GetYaxis()->SetTitleOffset(1.4);
+histDoseRed->GetZaxis()->SetTitleOffset(.6);
+histDoseRed->SetTitle("Dose map for RED voxels");
+
+c1->cd(8);
+TH2F *histDoseGreen = new TH2F("histDoseGreen","histDoseGreen",100,0,800,100,0,800);
+// WARNING : dose scaling to mGy
+ntupleGREEN->Draw("y:x>>histDoseGreen","dose/1000","contz");
+//gPad->SetLogz();
+histDoseGreen->Draw("contz");
+histDoseGreen->GetXaxis()->SetTitle("X (microns)");
+histDoseGreen->GetYaxis()->SetTitle("Y (mirons)");
+histDoseGreen->GetZaxis()->SetTitle("Dose (mGy)");
+histDoseGreen->GetXaxis()->SetLabelSize(0.025);
+histDoseGreen->GetYaxis()->SetLabelSize(0.025);
+histDoseGreen->GetZaxis()->SetLabelSize(0.025);
+histDoseGreen->GetXaxis()->SetTitleSize(0.035);
+histDoseGreen->GetYaxis()->SetTitleSize(0.035);
+histDoseGreen->GetZaxis()->SetTitleSize(0.035);
+histDoseGreen->GetXaxis()->SetTitleOffset(1.4);
+histDoseGreen->GetYaxis()->SetTitleOffset(1.4);
+histDoseGreen->GetZaxis()->SetTitleOffset(.6);
+histDoseGreen->SetTitle("Dose map for GREEN voxels");
+
+c1->cd(12);
+TH2F *histDoseBlue = new TH2F("histDoseBlue","histDoseBlue",100,0,800,100,0,800);
+// WARNING : dose scaling to mGy
+ntupleBLUE->Draw("y:x>>histDoseBlue","dose/1000","contz");
+//gPad->SetLogz();
+histDoseBlue->Draw("contz");
+histDoseBlue->GetXaxis()->SetTitle("X (microns)");
+histDoseBlue->GetYaxis()->SetTitle("Y (mirons)");
+histDoseBlue->GetZaxis()->SetTitle("Dose (mGy)");
+histDoseBlue->GetXaxis()->SetLabelSize(0.025);
+histDoseBlue->GetYaxis()->SetLabelSize(0.025);
+histDoseBlue->GetZaxis()->SetLabelSize(0.025);
+histDoseBlue->GetXaxis()->SetTitleSize(0.035);
+histDoseBlue->GetYaxis()->SetTitleSize(0.035);
+histDoseBlue->GetZaxis()->SetTitleSize(0.035);
+histDoseBlue->GetXaxis()->SetTitleOffset(1.4);
+histDoseBlue->GetYaxis()->SetTitleOffset(1.4);
+histDoseBlue->GetZaxis()->SetTitleOffset(.6);
+histDoseBlue->SetTitle("Dose map for BLUE voxels");
+
+//----------------------------
+// SUMMARY
+//----------------------------
+
+cout << endl;
+cout << "- Summary --------------------------------------------------" << endl;
+cout << endl;
+cout << " Total number of voxels in phantom = " << numberVoxTot << endl;
+cout << " Total number of RED voxels in phantom = " << numberVoxRed << endl;
+cout << " Total number of GREEN voxels in phantom = " << numberVoxGreen << endl;
+cout << " Total number of BLUE voxels in phantom = " << numberVoxBlue << endl;
+cout << endl;
+cout << " Total absorbed energy in RED voxels (MeV) = " << nrjRed/1E3 << endl;
+cout << " Total absorbed energy in GREEN voxels (MeV) = " << nrjGreen/1E3 << endl;
+cout << " Total absorbed energy in BLUE voxels (MeV) = " << nrjBlue/1E3 << endl;
+cout << endl;
+cout << " Total absorbed dose in RED voxels (Gy) = " << doseRed << endl;
+cout << " Total absorbed dose in GREEN voxels (Gy) = " << doseGreen << endl;
+cout << " Total absorbed dose in BLUE voxels (Gy) = " << doseBlue << endl;
+cout << endl;
+cout << "------------------------------------------------------------" << endl;
+
+// End
+f2->Write();
+
+}
diff --git a/examples/advanced/dna/cellularPhantom/run.mac b/examples/advanced/dna/cellularPhantom/run.mac
new file mode 100644
index 0000000000..12dfcd24a0
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/run.mac
@@ -0,0 +1,72 @@
+# *********************************************************************
+# MANDATORY SETTINGS
+# (before kernel initialization)
+#
+# MT
+/run/numberOfThreads 4
+#
+# Phantom file name
+#/phantom/fileName phantoms/phantomHR.dat
+/phantom/fileName phantoms/phantom.dat
+#
+# World volume size
+/world/sizeXY 1 mm
+/world/sizeZ 100 um
+#
+# Cellular medium size
+/phantom/mediumSizeXY 900 um
+/phantom/mediumSizeZ 95 um
+#
+# *********************************************************************
+# OPTIONAL SETTINGS
+# (before kernel initialization)
+#
+# Change cellular medium material
+#/phantom/mediumMat G4_AIR
+#
+# Change phantom densities
+#/phantom/redDen 2.0 g/cm3 # red volume density
+#/phantom/greenDen 1.0 g/cm3 # green volume density
+#/phantom/blueDen 3.0 g/cm3 # blue volume density
+#
+# Phantom shift
+#/phantom/shiftX 100 um
+#/phantom/shiftY 50 um
+#/phantom/shiftZ 1.4 um
+#
+/run/verbose 1
+/event/verbose 0
+/tracking/verbose 0
+#
+# *********************************************************************
+# RUN
+#
+/run/initialize
+#
+# Set cuts OUTSIDE the phantom region
+/run/setCut 1 mm
+#
+# Set cut for the phantom region
+/run/setCutForRegion phantomRegion 1 nm
+#
+# Print a summary of particles/regions/cuts
+/run/dumpCouples
+#
+/gps/particle proton
+/gps/energy 3. MeV
+#
+# Square plane source
+/gps/pos/type Plane
+/gps/pos/shape Square
+/gps/direction 0 0 1
+/gps/pos/rot1 1 0 0
+/gps/pos/rot2 0 1 0
+/gps/pos/centre 0. 0. -50 um
+/gps/pos/halfx 350 um
+/gps/pos/halfy 350 um
+#/gps/pos/halfx 0 um
+#/gps/pos/halfy 0 um
+#
+/run/printProgress 100
+#
+/run/beamOn 10000
diff --git a/examples/advanced/dsbandrepair/src/PhysActionInitialization.cc b/examples/advanced/dna/cellularPhantom/src/ActionInitialization.cc
similarity index 60%
rename from examples/advanced/dsbandrepair/src/PhysActionInitialization.cc
rename to examples/advanced/dna/cellularPhantom/src/ActionInitialization.cc
index bb94aa31ef..77dfec6d47 100644
--- a/examples/advanced/dsbandrepair/src/PhysActionInitialization.cc
+++ b/examples/advanced/dna/cellularPhantom/src/ActionInitialization.cc
@@ -23,46 +23,51 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
//
-/// \file PhysActionInitialization.hh
-/// \brief Definition of the PhysActionInitialization class
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
-#include "PhysActionInitialization.hh"
-
-#include "PhysPrimaryGeneratorAction.hh"
-#include "PhysEventAction.hh"
-#include "PhysRunAction.hh"
-#include "PhysSteppingAction.hh"
-#include "PhysChemIO.hh"
-#include "G4DNAChemistryManager.hh"
-#include "G4Threading.hh"
-
-#include
+#include "ActionInitialization.hh"
+#include "PrimaryGeneratorAction.hh"
+#include "EventAction.hh"
+#include "SteppingAction.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void PhysActionInitialization::BuildForMaster() const
+ActionInitialization::ActionInitialization()
+:G4VUserActionInitialization()
+{}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void ActionInitialization::BuildForMaster() const
{
- SetUserAction(new PhysRunAction());
+ // Needed for merging of analysis ROOT files
+ SetUserAction(new RunAction());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void PhysActionInitialization::Build() const
+void ActionInitialization::Build() const
{
- PhysPrimaryGeneratorAction* primGenAction = new PhysPrimaryGeneratorAction();
- SetUserAction(primGenAction);
+ SetUserAction(new PrimaryGeneratorAction());
- PhysEventAction* eventAction = new PhysEventAction;
- SetUserAction(eventAction);
+ auto runAction= new RunAction();
+ SetUserAction(runAction);
- SetUserAction(new PhysRunAction);
+ SetUserAction(new EventAction());
- PhysSteppingAction* steppingAction = new PhysSteppingAction(eventAction);
- SetUserAction(steppingAction);
- //pass- PhysChemIO to G4DNAChemistryManager
- std::unique_ptr fPhysChemIO = std::make_unique(steppingAction);
- G4DNAChemistryManager::Instance()->SetPhysChemIO(std::move(fPhysChemIO));
+ SetUserAction(new SteppingAction(runAction));
}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
\ No newline at end of file
diff --git a/examples/advanced/dna/cellularPhantom/src/CellParameterisation.cc b/examples/advanced/dna/cellularPhantom/src/CellParameterisation.cc
new file mode 100644
index 0000000000..5fe58681df
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/src/CellParameterisation.cc
@@ -0,0 +1,229 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#include "CellParameterisation.hh"
+
+#include "G4Material.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+CellParameterisation *CellParameterisation::gInstance = nullptr;
+
+CellParameterisation::CellParameterisation
+(G4String fileName,
+ G4Material *RedMat, G4Material *GreenMat, G4Material *BlueMat,
+ G4double shiftX, G4double shiftY, G4double shiftZ
+)
+:fRedMaterial(RedMat), fGreenMaterial(GreenMat), fBlueMaterial(BlueMat),
+ fShiftX(shiftX), fShiftY(shiftY), fShiftZ(shiftZ)
+{
+ Initialize(fileName);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void CellParameterisation::Initialize(const G4String &fileName)
+{
+ G4int ncols, l, mat;
+ G4int pixelX, pixelY, pixelZ;
+ G4double x, y, z, den1, den2, den3;
+
+ ncols = 0;
+ l = 0;
+
+ // Read phantom
+
+ FILE *fMap;
+ fMap = fopen(fileName, "r");
+
+ fRedMass = 0;
+ fGreenMass = 0;
+ fBlueMass = 0;
+
+ ncols = fscanf(fMap, "%d %d %d %d", &fPhantomTotalPixels, &fRedTotalPixels, &fGreenTotalPixels,
+ &fBlueTotalPixels);
+ ncols = fscanf(fMap, "%lf %lf %lf %s", &fSizeRealX, &fSizeRealY, &fSizeRealZ, &fRealUnit);
+ ncols = fscanf(fMap, "%lf %lf %lf %s", &fDimCellBoxX, &fDimCellBoxY, &fDimCellBoxZ, &fRealUnit);
+
+ fMapCell = new G4ThreeVector[fPhantomTotalPixels]; //geant4 coordinates space
+ fMapCellPxl = new G4ThreeVector[fPhantomTotalPixels]; //voxel space
+ fMapCellOriginal = new G4ThreeVector[fPhantomTotalPixels]; //original coordinates space
+ fMaterial = new G4int[fPhantomTotalPixels];
+
+ fDimCellBoxX = fDimCellBoxX * um;
+ fDimCellBoxY = fDimCellBoxY * um;
+ fDimCellBoxZ = fDimCellBoxZ * um;
+
+ den1 = fRedMaterial->GetDensity();
+ den2 = fGreenMaterial->GetDensity();
+ den3 = fBlueMaterial->GetDensity();
+
+ fOffsetX = -fSizeRealX / 2 *um;
+ fOffsetY = -fSizeRealY / 2 *um;
+ fOffsetZ = -fSizeRealZ / 2 *um;
+
+ G4cout << G4endl;
+ G4cout << " #########################################################################" << G4endl;
+ G4cout << " Phantom placement and density " << G4endl;
+ G4cout << " #########################################################################" << G4endl;
+ G4cout << G4endl;
+ G4cout << " ==========> Phantom origin - X (um) = " << (fOffsetX + fShiftX)/um << G4endl;
+ G4cout << " ==========> Phantom origin - Y (um) = " << (fOffsetY + fShiftY)/um << G4endl;
+ G4cout << " ==========> Phantom origin - Z (um) = " << (fOffsetZ + fShiftZ)/um << G4endl;
+ G4cout << G4endl;
+ G4cout << " ==========> Red density (g/cm3) = " << den1/(g/cm3) << G4endl;
+ G4cout << " ==========> Green density (g/cm3) = " << den2/(g/cm3) << G4endl;
+ G4cout << " ==========> Blue density (g/cm3) = " << den3/(g/cm3) << G4endl;
+ G4cout << G4endl;
+ G4cout << " #########################################################################" << G4endl;
+ G4cout << G4endl;
+
+ while (1)
+ {
+ ncols = fscanf(fMap, "%lf %lf %lf %d", &x, &y, &z, &mat);
+ if (ncols < 0) break;
+
+ G4ThreeVector v( x*um + fOffsetX + fShiftX, // phantom shift
+ -(y*um + fOffsetY + fShiftY),
+ z*um + fOffsetZ + fShiftZ );
+
+ // Pixel coordinates
+ pixelX = (x*um)/fDimCellBoxX;
+ pixelY = (y*um)/fDimCellBoxY;
+ pixelZ = (z*um)/fDimCellBoxZ;
+
+ G4ThreeVector w(pixelX, pixelY, pixelZ);
+
+ G4ThreeVector v_original(x*um, y*um, z*um);
+
+ fMapCell[l] = v;
+ fMapCellPxl[l] = w;
+ fMapCellOriginal[l] = v_original;
+
+ fMaterial[l] = mat;
+
+ if (mat == 1){
+ fRedMass += den1 * fDimCellBoxX * fDimCellBoxY * fDimCellBoxZ;
+ }
+ else if (mat == 2){
+ fGreenMass += den2 * fDimCellBoxX * fDimCellBoxY * fDimCellBoxZ;
+ }
+ else if (mat == 3){
+ fBlueMass += den3 * fDimCellBoxX * fDimCellBoxY * fDimCellBoxZ;
+ }
+ l++;
+ }
+
+ fclose(fMap);
+
+ fRedAttributes = new G4VisAttributes;
+ fRedAttributes->SetColour(G4Colour(1, 0, 0));
+ fRedAttributes->SetForceSolid(false);
+
+ fGreenAttributes = new G4VisAttributes;
+ fGreenAttributes->SetColour(G4Colour(0, 1, 0));
+ fGreenAttributes->SetForceSolid(false);
+
+ fBlueAttributes = new G4VisAttributes;
+ fBlueAttributes->SetColour(G4Colour(0, 0, 1));
+ fBlueAttributes->SetForceSolid(false);
+
+ gInstance = this;
+}
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+CellParameterisation::~CellParameterisation()
+{
+ delete[] fMapCell;
+ delete[] fMapCellPxl;
+ delete[] fMaterial;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void CellParameterisation::ComputeTransformation
+(const G4int copyNo, G4VPhysicalVolume *physVol) const
+{
+ if(fMapCell == nullptr)
+ {
+ G4ExceptionDescription ex;
+ ex<< "fMapCell == nullptr ";
+ G4Exception("CellParameterisation::ComputeTransformation",
+ "CellParameterisation001",
+ FatalException,
+ ex);
+ }
+ else
+ {
+ G4ThreeVector
+ origin(fMapCell[copyNo].x(), fMapCell[copyNo].y(), fMapCell[copyNo].z());
+
+ physVol->SetTranslation(origin);
+ }
+}
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+G4Material *
+CellParameterisation::ComputeMaterial(const G4int copyNo,
+ G4VPhysicalVolume *physVol,
+ const G4VTouchable *)
+{
+ if (fMaterial[copyNo] == 3) // fMaterial 3 is blue
+ {
+ physVol->SetName("physicalMat3");
+ physVol->GetLogicalVolume()->SetVisAttributes(fBlueAttributes);
+ return fBlueMaterial;
+ }
+ else if (fMaterial[copyNo] == 2) // fMaterial 2 is green
+ {
+ physVol->SetName("physicalMat2");
+ physVol->GetLogicalVolume()->SetVisAttributes(fGreenAttributes);
+ return fGreenMaterial;
+ }
+ else if (fMaterial[copyNo] == 1) // fMaterial 1 is red
+ {
+ physVol->SetName("physicalMat1");
+ physVol->GetLogicalVolume()->SetVisAttributes(fRedAttributes);
+ return fRedMaterial;
+ }
+
+ return physVol->GetLogicalVolume()->GetMaterial();
+}
diff --git a/examples/advanced/dna/cellularPhantom/src/DetectorConstruction.cc b/examples/advanced/dna/cellularPhantom/src/DetectorConstruction.cc
new file mode 100644
index 0000000000..c3017e914c
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/src/DetectorConstruction.cc
@@ -0,0 +1,367 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+
+#include "DetectorConstruction.hh"
+#include "DetectorMessenger.hh"
+
+#include "G4PhysicalConstants.hh"
+#include "G4NistManager.hh"
+#include "G4ProductionCuts.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+DetectorConstruction::DetectorConstruction()
+:G4VUserDetectorConstruction()
+{
+ fDetectorMessenger = new DetectorMessenger(this);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4VPhysicalVolume *DetectorConstruction::Construct()
+{
+ DefineMaterials();
+ return ConstructLine();
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+void DetectorConstruction::DefineMaterials()
+{
+ G4String name, symbol;
+
+ // Water and air are defined from NIST material database
+ G4NistManager *man = G4NistManager::Instance();
+
+ G4Material *H2O = man->FindOrBuildMaterial("G4_WATER");
+ G4Material *Air = man->FindOrBuildMaterial("G4_AIR");
+
+ fDefaultMaterial = Air;
+ fPhantomMaterial = H2O; // material is not relevant
+ // it will be changed by the ComputeMaterial
+ // method of the CellParameterisation
+
+ // Default materials
+ if (fMediumMaterial == nullptr) {fMediumMaterial = H2O;}
+ if (fRedMaterial == nullptr) {fRedMaterial = H2O;}
+ if (fGreenMaterial == nullptr) {fGreenMaterial = H2O;}
+ if (fBlueMaterial == nullptr) {fBlueMaterial = H2O;}
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4VPhysicalVolume *DetectorConstruction::ConstructLine() {
+
+ //*************
+ // World volume
+ //*************
+
+ fSolidWorld = new G4Box("World", //its name
+ fWorldSizeXY / 2, fWorldSizeXY / 2, fWorldSizeZ / 2); //its size
+
+ fLogicWorld = new G4LogicalVolume(fSolidWorld, //its solid
+ fDefaultMaterial, //its material
+ "World"); //its name
+
+ fPhysiWorld = new G4PVPlacement(nullptr, //no rotation
+ G4ThreeVector(), //at (0,0,0)
+ "World", //its name
+ fLogicWorld, //its logical volume
+ nullptr, //its mother volume
+ false, //no boolean operation
+ 0); //copy number
+
+ //********************
+ // Cell culture medium
+ //********************
+
+ fSolidMedium = new G4Box("Medium", fMediumSizeXY / 2, fMediumSizeXY / 2, fMediumSizeZ / 2);
+
+ fLogicMedium = new G4LogicalVolume(fSolidMedium, fMediumMaterial, "Medium");
+
+ fPhysiMedium = new G4PVPlacement(nullptr,
+ G4ThreeVector(0, 0, 0),
+ "Medium",
+ fLogicMedium,
+ fPhysiWorld,
+ false,
+ 0);
+
+ // ************
+ // Cell phantom
+ // ************
+
+ // The cell phantom is placed in the middle of the parent volume (fLogicMedium here)
+
+ fPhantomParam = new CellParameterisation
+ (fPhantomFileName, fRedMaterial, fGreenMaterial, fBlueMaterial, fShiftX, fShiftY, fShiftZ);
+
+ fSolidPhantom = new G4Box("Phantom",
+ fPhantomParam->GetPixelSizeX() / 2,
+ fPhantomParam->GetPixelSizeY() / 2,
+ fPhantomParam->GetPixelSizeZ() / 2);
+
+ fLogicPhantom = new G4LogicalVolume(fSolidPhantom,
+ fPhantomMaterial, // material is not relevant,
+ // it will be changed by the
+ // ComputeMaterial method
+ // of the CellParameterisation
+ "Phantom",
+ nullptr,
+ nullptr,
+ nullptr);
+
+ fPhysiPhantom = new G4PVParameterised(
+ "Phantom", // name
+ fLogicPhantom, // logical volume
+ fLogicMedium, // mother logical volume
+ kUndefined, // kUndefined: three-dimensional optimization
+ fPhantomParam->GetPhantomTotalPixels(), // number of voxels
+ fPhantomParam, // the parametrisation
+ false);
+
+ G4cout << " #########################################################################" << G4endl;
+ G4cout << " Phantom information " << G4endl;
+ G4cout << " #########################################################################" << G4endl;
+ G4cout << G4endl;
+
+ G4cout << " ==========> The phantom contains " << fPhantomParam->GetPhantomTotalPixels()
+ << " voxels " << G4endl;
+ G4cout << " ==========> Voxel size X (um) = " << fPhantomParam->GetPixelSizeX()/um << G4endl;
+ G4cout << " ==========> Voxel size Y (um) = " << fPhantomParam->GetPixelSizeY()/um << G4endl;
+ G4cout << " ==========> Voxel size Z (um) = " << fPhantomParam->GetPixelSizeZ()/um << G4endl;
+ G4cout << G4endl;
+
+ G4cout << " ==========> Number of red voxels = "
+ << fPhantomParam->GetRedTotalPixels() << G4endl;
+ G4cout << " ==========> Number of green voxels = "
+ << fPhantomParam->GetGreenTotalPixels() << G4endl;
+ G4cout << " ==========> Number of blue voxels = "
+ << fPhantomParam->GetBlueTotalPixels() << G4endl;
+ G4cout << G4endl;
+
+ G4cout << " ==========> Tolal mass of red voxels (kg) = "
+ << fPhantomParam->GetRedMass() / kg << G4endl;
+ G4cout << " ==========> Tolal mass of green voxels (kg) = "
+ << fPhantomParam->GetGreenMass() / kg << G4endl;
+ G4cout << " ==========> Tolal mass of blue voxels (kg) = "
+ << fPhantomParam->GetBlueMass() / kg << G4endl;
+ G4cout << G4endl;
+ G4cout << " #########################################################################" << G4endl;
+ G4cout << G4endl;
+
+ // USER LIMITS ON STEP LENGTH
+
+ // fLogicWorld->SetUserLimits(new G4UserLimits(100 * mm));
+ // fLogicPhantom->SetUserLimits(new G4UserLimits(0.5 * micrometer));
+ // fLogicMedium->SetUserLimits(new G4UserLimits(1 * micrometer));
+
+ // Create a phantom G4Region and add logical volume
+
+ fPhantomRegion = new G4Region("phantomRegion");
+
+ G4ProductionCuts* cuts = new G4ProductionCuts();
+
+ G4double defCut = 1*nanometer;
+ cuts->SetProductionCut(defCut,"gamma");
+ cuts->SetProductionCut(defCut,"e-");
+ cuts->SetProductionCut(defCut,"e+");
+ cuts->SetProductionCut(defCut,"proton");
+
+ fPhantomRegion->SetProductionCuts(cuts);
+ fPhantomRegion->AddRootLogicalVolume(fLogicMedium);
+
+ return fPhysiWorld;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetTargetMaterial(const G4String& mat)
+{
+ if (G4Material* material = G4NistManager::Instance()->FindOrBuildMaterial(mat))
+ {
+ if (material && mat != "G4_WATER")
+ {
+ fMediumMaterial = material;
+ G4cout << " #########################################################################"
+ << G4endl;
+ G4cout << " Cell culture medium material "
+ << G4endl;
+ G4cout << fMediumMaterial << G4endl;
+ G4cout << " #########################################################################"
+ << G4endl;
+ G4cout << G4endl;
+ }
+ }
+ else
+ {
+ G4cout << G4endl;
+ G4cout << "WARNING: material \"" << mat << "\" doesn't exist in NIST elements/materials"
+ << G4endl;
+ G4cout << " table [located in $G4INSTALL/source/materials/src/G4NistMaterialBuilder.cc]"
+ << G4endl;
+ G4cout << G4endl;
+ }
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetRedDensity(const G4double& value)
+{
+ fDensityRed = value;
+ if (fDensityRed != 1.0)
+ {
+ G4NistManager *man = G4NistManager::Instance();
+ G4Material * H2O_red = man->BuildMaterialWithNewDensity("G4_WATER_red","G4_WATER",
+ fDensityRed);
+ fRedMaterial = H2O_red;
+ }
+ else
+ {
+ G4NistManager *man = G4NistManager::Instance();
+ fRedMaterial = man->FindOrBuildMaterial("G4_WATER");
+ }
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetGreenDensity(const G4double& value)
+{
+ fDensityGreen = value;
+ if (fDensityGreen != 1.0)
+ {
+ G4NistManager *man = G4NistManager::Instance();
+ G4Material * H2O_green = man->BuildMaterialWithNewDensity("G4_WATER_green","G4_WATER",
+ fDensityGreen);
+ fGreenMaterial = H2O_green;
+ }
+ else
+ {
+ G4NistManager *man = G4NistManager::Instance();
+ fGreenMaterial = man->FindOrBuildMaterial("G4_WATER");
+ }
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetBlueDensity(const G4double& value)
+{
+ fDensityBlue = value;
+ if (fDensityBlue != 1.0)
+ {
+ G4NistManager *man = G4NistManager::Instance();
+ G4Material * H2O_blue = man->BuildMaterialWithNewDensity("G4_WATER_blue","G4_WATER",
+ fDensityBlue);
+ fBlueMaterial = H2O_blue;
+ }
+ else
+ {
+ G4NistManager *man = G4NistManager::Instance();
+ fBlueMaterial = man->FindOrBuildMaterial("G4_WATER");
+ }
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetShiftX(const G4double& value)
+{
+ fShiftX = value;
+ G4cout << "... setting phantom shift: X = " << fShiftX/um << " um" << G4endl;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetShiftY(const G4double& value)
+{
+ fShiftY = value;
+ G4cout << "... setting phantom shift: Y = " << fShiftY/um << " um" << G4endl;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetShiftZ(const G4double& value)
+{
+ fShiftZ = value;
+ G4cout << "... setting phantom shift: Y = " << fShiftZ/um << " um" << G4endl;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetMediumSizeXY(const G4double& value)
+{
+ fMediumSizeXY = value;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetMediumSizeZ(const G4double& value)
+{
+ fMediumSizeZ = value;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetWorldSizeXY(const G4double& value)
+{
+ fWorldSizeXY = value;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetWorldSizeZ(const G4double& value)
+{
+ fWorldSizeZ = value;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorConstruction::SetPhantomFileName(const G4String& phantomName)
+{
+ fPhantomFileName = phantomName;
+ G4cout << " #########################################################################"
+ << G4endl;
+ G4cout << " Loading cell phantom from file: "
+ << fPhantomFileName << G4endl;
+ G4cout << " #########################################################################"
+ << G4endl;
+ G4cout << G4endl;
+}
diff --git a/examples/advanced/dna/cellularPhantom/src/DetectorMessenger.cc b/examples/advanced/dna/cellularPhantom/src/DetectorMessenger.cc
new file mode 100644
index 0000000000..a0834a840e
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/src/DetectorMessenger.cc
@@ -0,0 +1,197 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#include "DetectorMessenger.hh"
+#include "DetectorConstruction.hh"
+
+#include "G4UIcmdWithAString.hh"
+#include "G4UIcmdWithADoubleAndUnit.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+DetectorMessenger::DetectorMessenger(DetectorConstruction * det)
+:G4UImessenger(), fDetector(det)
+{
+ fPhantomDir = new G4UIdirectory("/phantom/");
+ fPhantomDir->SetGuidance(" Cell phantom settings");
+
+ fNameCmd = new G4UIcmdWithAString("/phantom/fileName",this);
+ fNameCmd->SetGuidance("Select phantom file name");
+ fNameCmd->SetParameterName("fileName",true);
+ fNameCmd->SetDefaultValue("phantom.dat");
+ fNameCmd->AvailableForStates(G4State_PreInit);
+
+ fMatCmd = new G4UIcmdWithAString("/phantom/mediumMat",this);
+ fMatCmd->SetGuidance("Select material for the phantom medium");
+ fMatCmd->SetParameterName("mediumMat",true);
+ fMatCmd->AvailableForStates(G4State_PreInit);
+
+ fDenRedCmd = new G4UIcmdWithADoubleAndUnit("/phantom/redDen",this);
+ fDenRedCmd->SetGuidance("Select density for the red volume");
+ fDenRedCmd->SetParameterName("redDen",true);
+ fDenRedCmd->SetDefaultValue(1.);
+ fDenRedCmd->SetDefaultUnit("g/cm3");
+ fDenRedCmd->AvailableForStates(G4State_PreInit);
+
+ fDenGreenCmd = new G4UIcmdWithADoubleAndUnit("/phantom/greenDen",this);
+ fDenGreenCmd->SetGuidance("Select density for the green volume");
+ fDenGreenCmd->SetParameterName("greenDen",true);
+ fDenGreenCmd->SetDefaultValue(1.);
+ fDenGreenCmd->SetDefaultUnit("g/cm3");
+ fDenGreenCmd->AvailableForStates(G4State_PreInit);
+
+ fDenBlueCmd = new G4UIcmdWithADoubleAndUnit("/phantom/blueDen",this);
+ fDenBlueCmd->SetGuidance("Select density for the blue volume");
+ fDenBlueCmd->SetParameterName("blueDen",true);
+ fDenBlueCmd->SetDefaultValue(1.);
+ fDenBlueCmd->SetDefaultUnit("g/cm3");
+ fDenBlueCmd->AvailableForStates(G4State_PreInit);
+
+ fShiftXCmd = new G4UIcmdWithADoubleAndUnit("/phantom/shiftX",this);
+ fShiftXCmd->SetGuidance("Set phantom X shift");
+ fShiftXCmd->SetParameterName("shiftX",true);
+ fShiftXCmd->SetDefaultValue(0.);
+ fShiftXCmd->SetDefaultUnit("um");
+ fShiftXCmd->AvailableForStates(G4State_PreInit);
+
+ fShiftYCmd = new G4UIcmdWithADoubleAndUnit("/phantom/shiftY",this);
+ fShiftYCmd->SetGuidance("Set phantom Y shift");
+ fShiftYCmd->SetParameterName("shiftY",true);
+ fShiftYCmd->SetDefaultValue(0.);
+ fShiftYCmd->SetDefaultUnit("um");
+ fShiftYCmd->AvailableForStates(G4State_PreInit);
+
+ fShiftZCmd = new G4UIcmdWithADoubleAndUnit("/phantom/shiftZ",this);
+ fShiftZCmd->SetGuidance("Set phantom Z shift");
+ fShiftZCmd->SetParameterName("shiftZ",true);
+ fShiftZCmd->SetDefaultValue(0.);
+ fShiftZCmd->SetDefaultUnit("um");
+ fShiftZCmd->AvailableForStates(G4State_PreInit);
+
+ fMediumSizeXYCmd = new G4UIcmdWithADoubleAndUnit("/phantom/mediumSizeXY",this);
+ fMediumSizeXYCmd->SetGuidance("Set cellular medium size XY");
+ fMediumSizeXYCmd->SetParameterName("mediumSizeXY",false);
+ fMediumSizeXYCmd->SetDefaultUnit("um");
+ fMediumSizeXYCmd->AvailableForStates(G4State_PreInit);
+
+ fMediumSizeZCmd = new G4UIcmdWithADoubleAndUnit("/phantom/mediumSizeZ",this);
+ fMediumSizeZCmd->SetGuidance("Set cellular medium size Z");
+ fMediumSizeZCmd->SetParameterName("mediumSizeZ",false);
+ fMediumSizeZCmd->SetDefaultUnit("um");
+ fMediumSizeZCmd->AvailableForStates(G4State_PreInit);
+
+ fWorldDir = new G4UIdirectory("/world/");
+ fWorldDir->SetGuidance(" World volume settings");
+
+ fWorldSizeXYCmd = new G4UIcmdWithADoubleAndUnit("/world/sizeXY",this);
+ fWorldSizeXYCmd->SetGuidance("Set world size XY");
+ fWorldSizeXYCmd->SetParameterName("sizeXY",false);
+ fWorldSizeXYCmd->SetDefaultUnit("um");
+ fWorldSizeXYCmd->AvailableForStates(G4State_PreInit);
+
+ fWorldSizeZCmd = new G4UIcmdWithADoubleAndUnit("/world/sizeZ",this);
+ fWorldSizeZCmd->SetGuidance("Set world size Z");
+ fWorldSizeZCmd->SetParameterName("sizeZ",false);
+ fWorldSizeZCmd->SetDefaultUnit("um");
+ fWorldSizeZCmd->AvailableForStates(G4State_PreInit);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+DetectorMessenger::~DetectorMessenger()
+{
+ delete fWorldDir;
+ delete fPhantomDir;
+ delete fNameCmd;
+ delete fMatCmd;
+ delete fDenRedCmd;
+ delete fDenGreenCmd;
+ delete fDenBlueCmd;
+ delete fShiftXCmd;
+ delete fShiftYCmd;
+ delete fShiftZCmd;
+ delete fMediumSizeXYCmd;
+ delete fMediumSizeZCmd;
+ delete fWorldSizeXYCmd;
+ delete fWorldSizeZCmd;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void DetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValue)
+{
+ if( command == fMatCmd ) {
+ fDetector->SetTargetMaterial(newValue);
+ }
+ else if(command == fDenRedCmd) {
+ fDetector->SetRedDensity(fDenRedCmd->GetNewDoubleValue(newValue));
+ }
+ else if(command == fDenGreenCmd) {
+ fDetector->SetGreenDensity(fDenGreenCmd->GetNewDoubleValue(newValue));
+ }
+ else if(command == fDenBlueCmd) {
+ fDetector->SetBlueDensity(fDenBlueCmd->GetNewDoubleValue(newValue));
+ }
+ else if (command == fShiftXCmd) {
+ fDetector->SetShiftX(fShiftXCmd->GetNewDoubleValue(newValue));
+ }
+ else if (command == fShiftYCmd) {
+ fDetector->SetShiftY(fShiftYCmd->GetNewDoubleValue(newValue));
+ }
+ else if (command == fShiftZCmd) {
+ fDetector->SetShiftZ(fShiftZCmd->GetNewDoubleValue(newValue));
+ }
+ else if (command == fMediumSizeXYCmd) {
+ fDetector->SetMediumSizeXY(fMediumSizeXYCmd->GetNewDoubleValue(newValue));
+ }
+ else if (command == fMediumSizeZCmd) {
+ fDetector->SetMediumSizeZ(fMediumSizeZCmd->GetNewDoubleValue(newValue));
+ }
+ else if (command == fWorldSizeXYCmd) {
+ fDetector->SetWorldSizeXY(fWorldSizeXYCmd->GetNewDoubleValue(newValue));
+ }
+ else if (command == fWorldSizeZCmd) {
+ fDetector->SetWorldSizeZ(fWorldSizeZCmd->GetNewDoubleValue(newValue));
+ }
+ else if(command == fNameCmd) {
+ fDetector->SetPhantomFileName(newValue);
+ }
+}
diff --git a/examples/advanced/dsbandrepair/src/ChemPrimaryGeneratorAction.cc b/examples/advanced/dna/cellularPhantom/src/EventAction.cc
similarity index 65%
rename from examples/advanced/dsbandrepair/src/ChemPrimaryGeneratorAction.cc
rename to examples/advanced/dna/cellularPhantom/src/EventAction.cc
index 62d7e6e457..e9086595d5 100644
--- a/examples/advanced/dsbandrepair/src/ChemPrimaryGeneratorAction.cc
+++ b/examples/advanced/dna/cellularPhantom/src/EventAction.cc
@@ -23,43 +23,42 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
//
-/// \file ChemPrimaryGeneratorAction.cc
-/// \brief Implementation of the ChemPrimaryGeneratorAction class
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
-#include "ChemPrimaryGeneratorAction.hh"
-#include "G4SystemOfUnits.hh"
-#include "G4ParticleTable.hh"
-#include "G4ParticleGun.hh"
+#include "EventAction.hh"
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+#include "G4Event.hh"
-ChemPrimaryGeneratorAction::ChemPrimaryGeneratorAction() :
- G4VUserPrimaryGeneratorAction(),
- fpParticleGun(new G4ParticleGun(1))
-{
- G4ParticleDefinition* particle =
- G4ParticleTable::GetParticleTable()->FindParticle("geantino");
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
- // default gun parameters
- fpParticleGun->SetParticleDefinition(particle);
- fpParticleGun->SetParticleEnergy(100*keV);
- fpParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.));
- fpParticleGun->SetParticlePosition(G4ThreeVector(0.,0.,0.));
-}
+EventAction::EventAction()
+{}
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-ChemPrimaryGeneratorAction::~ChemPrimaryGeneratorAction()
-{
- delete fpParticleGun;
-}
+EventAction::~EventAction()
+{}
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-void ChemPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
-{
- fpParticleGun->GeneratePrimaryVertex(anEvent);
-}
+void EventAction::BeginOfEventAction(const G4Event *)
+{}
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+void EventAction::EndOfEventAction(const G4Event *)
+{}
diff --git a/examples/advanced/dsbandrepair/src/ChemActionInitialization.cc b/examples/advanced/dna/cellularPhantom/src/PhysicsList.cc
similarity index 57%
rename from examples/advanced/dsbandrepair/src/ChemActionInitialization.cc
rename to examples/advanced/dna/cellularPhantom/src/PhysicsList.cc
index 3bb27821b2..feed1f23ea 100644
--- a/examples/advanced/dsbandrepair/src/ChemActionInitialization.cc
+++ b/examples/advanced/dna/cellularPhantom/src/PhysicsList.cc
@@ -23,64 +23,58 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
//
-/// \file ChemActionInitialization.cc
-/// \brief Implementation of the ChemActionInitialization class
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+#include "PhysicsList.hh"
-#include "ChemActionInitialization.hh"
-#include "ChemNtupleManager.hh"
-#include "ChemRunAction.hh"
-
-#include "G4Timer.hh"
-#include "G4UnitsTable.hh"
-
-#include "ChemStackingAction.hh"
-#include "ChemPrimaryGeneratorAction.hh"
-
-// chemistry
-#include "G4Scheduler.hh"
-#include "G4DNAChemistryManager.hh"
-#include "ChemITSteppingAction.hh"
-#include "ChemTimeStepAction.hh"
+#include "G4SystemOfUnits.hh"
+#include "G4EmStandardPhysics_option4.hh"
+#include "G4EmDNAPhysics_option2.hh"
+#include "G4DecayPhysics.hh"
+#include "G4RadioactiveDecayPhysics.hh"
+#include "G4PhysicsConstructorRegistry.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-ChemActionInitialization::ChemActionInitialization(ChemNtupleManager* nMana, ChemPhysicsList *phys)
-:fpNtuple(nMana), fPhysList(phys)
+G4VPhysicsConstructor* GetPhysicsConstructor(const G4String& name)
{
-
+ return G4PhysicsConstructorRegistry::Instance()->GetPhysicsConstructor(name);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void ChemActionInitialization::BuildForMaster() const
+PhysicsList::PhysicsList():G4VModularPhysicsList()
{
- ;
+ defaultCutValue = 1. * nm;
+ SetVerboseLevel(0);
+ RegisterPhysics(new G4EmStandardPhysics_option4());
+ //RegisterPhysics(new G4EmDNAPhysics_option2());
+ //RegisterPhysics(new G4DecayPhysics());
+ //RegisterPhysics(new G4RadioactiveDecayPhysics());
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-void ChemActionInitialization::Build() const
+PhysicsList::~PhysicsList()
+{}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void PhysicsList::SetCuts()
{
- SetUserAction(new ChemRunAction(fpNtuple));
-
- SetUserAction(new ChemPrimaryGeneratorAction());
-
- SetUserAction(new ChemStackingAction());
-
- G4bool chemistryFlag = G4DNAChemistryManager::Instance()->IsActivated();
-
- if(chemistryFlag)
- {
- G4Scheduler::Instance()->SetVerbose(0);
-
- G4Scheduler::Instance()->SetMaxZeroTimeAllowed(10000);
-
- ChemTimeStepAction* timeStepAction = new ChemTimeStepAction(fpNtuple,fPhysList->GetTimeStepModel());
- G4Scheduler::Instance()->SetUserAction(timeStepAction);
- }
-
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
\ No newline at end of file
+ SetCutsWithDefault();
+}
diff --git a/examples/advanced/dna/cellularPhantom/src/PrimaryGeneratorAction.cc b/examples/advanced/dna/cellularPhantom/src/PrimaryGeneratorAction.cc
new file mode 100644
index 0000000000..843f28e5e7
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/src/PrimaryGeneratorAction.cc
@@ -0,0 +1,74 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#include "PrimaryGeneratorAction.hh"
+
+#include
+#include "G4ParticleTable.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+PrimaryGeneratorAction::PrimaryGeneratorAction()
+:G4VUserPrimaryGeneratorAction()
+{
+ fGPS = new G4GeneralParticleSource();
+
+ G4ParticleDefinition* particle = G4ParticleTable::GetParticleTable()->FindParticle("proton");
+
+ fGPS->SetParticleDefinition(particle);
+ fGPS->GetCurrentSource()->GetEneDist()->SetMonoEnergy(6 * MeV);
+ fGPS->GetCurrentSource()->GetAngDist()->SetParticleMomentumDirection(G4ThreeVector(0., 0., 1.));
+ fGPS->GetCurrentSource()->GetPosDist()->SetCentreCoords(G4ThreeVector(0., 0., -1. * mm));
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+PrimaryGeneratorAction::~PrimaryGeneratorAction()
+{
+ delete fGPS;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
+{
+ fGPS->GeneratePrimaryVertex(anEvent);
+}
diff --git a/examples/advanced/dna/cellularPhantom/src/RunAction.cc b/examples/advanced/dna/cellularPhantom/src/RunAction.cc
new file mode 100644
index 0000000000..32cf762279
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/src/RunAction.cc
@@ -0,0 +1,200 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#include "RunAction.hh"
+
+#include "G4UnitsTable.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+RunAction::RunAction()
+:G4UserRunAction()
+{
+ auto man = G4AnalysisManager::Instance();
+ man->SetDefaultFileType("root");
+ man->SetNtupleMerging(true);
+ man->SetFirstNtupleId(1);
+
+ // Create 1st ntuple (id = 1)
+ man->CreateNtuple("ntuple1", "RED");
+ man->CreateNtupleDColumn("x");
+ man->CreateNtupleDColumn("y");
+ man->CreateNtupleDColumn("z");
+ man->CreateNtupleDColumn("energy");
+ man->CreateNtupleDColumn("dose");
+ man->CreateNtupleIColumn("voxelID");
+ man->FinishNtuple();
+
+ // Create 2nd ntuple (id = 2)
+ man->CreateNtuple("ntuple2", "GREEN");
+ man->CreateNtupleDColumn("x");
+ man->CreateNtupleDColumn("y");
+ man->CreateNtupleDColumn("z");
+ man->CreateNtupleDColumn("energy");
+ man->CreateNtupleDColumn("dose");
+ man->CreateNtupleIColumn("voxelID");
+ man->FinishNtuple();
+
+ // Create 3rd ntuple (id = 3)
+ man->CreateNtuple("ntuple3", "BLUE");
+ man->CreateNtupleDColumn("x");
+ man->CreateNtupleDColumn("y");
+ man->CreateNtupleDColumn("z");
+ man->CreateNtupleDColumn("energy");
+ man->CreateNtupleDColumn("dose");
+ man->CreateNtupleIColumn("voxelID");
+ man->FinishNtuple();
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+RunAction::~RunAction()
+{
+ delete[] fVoxelEnergy;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+void RunAction::BeginOfRunAction(const G4Run *)
+{
+ // Analysis manager
+ auto man = G4AnalysisManager::Instance();
+ man->OpenFile("phantom");
+
+ // Access phantom singleton
+ fMyPhantomParam = CellParameterisation::Instance();
+
+ fNbVoxels = fMyPhantomParam->GetPhantomTotalPixels();
+
+ // Allocates the array receiving the energy per voxel
+ fVoxelEnergy = new G4double[fNbVoxels];
+
+ // Initialisation of the energy array
+ for (G4int i = 0; i < fNbVoxels; i++) fVoxelEnergy[i] = 0;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+void RunAction::EndOfRunAction(const G4Run * /*aRun*/)
+{
+ auto man = G4AnalysisManager::Instance();
+
+ G4double X, Y, Z;
+
+ // Total mass of voxel
+ G4double redMassTot=0.;
+ G4double greenMassTot=0.;
+ G4double blueMassTot=0.;
+
+ redMassTot = fMyPhantomParam->GetRedMass();
+ greenMassTot = fMyPhantomParam->GetGreenMass();
+ blueMassTot = fMyPhantomParam->GetBlueMass();
+
+ // (Optional) Numbers of voxel
+ //G4double redVox=0;
+ //G4double greenVox=0;
+ //G4double blueVox=0;
+ //redVox = fMyPhantomParam->GetRedTotalPixels();
+ //greenVox = fMyPhantomParam->GetGreenTotalPixels();
+ //blueVox = fMyPhantomParam->GetBlueTotalPixels();
+
+ // (Optional) Single voxel mass
+ //G4double redMass=0.;
+ //G4double greenMass=0.;
+ //G4double blueMass=0.;
+ //redMass = redMassTot/redVox;
+ //greenMass = greenMassTot/greenVox;
+ //blueMass = blueMassTot/blueVox;
+
+ // Save x, y, z and energy for every voxel having absorbed an energy above 0.
+ // Energy is in keV
+ // Dose is in Gy
+
+ for (G4int i = 0; i < fMyPhantomParam->GetPhantomTotalPixels(); i++)
+ {
+ if (fVoxelEnergy[i] > 0.)
+ {
+ X = (fMyPhantomParam->GetVoxelThreeVectorOriginal(i).x()) / um;
+ Y = (fMyPhantomParam->GetVoxelThreeVectorOriginal(i).y()) / um;
+ Z = (fMyPhantomParam->GetVoxelThreeVectorOriginal(i).z()) / um;
+
+ if (fMyPhantomParam->GetMaterial(i) == 1)
+ {
+ man->FillNtupleDColumn(1,0,X);
+ man->FillNtupleDColumn(1,1,Y);
+ man->FillNtupleDColumn(1,2,Z);
+ man->FillNtupleDColumn(1,3,fVoxelEnergy[i]/keV);
+ man->FillNtupleDColumn(1,4,((fVoxelEnergy[i]/joule)/(redMassTot/kg)));
+ man->FillNtupleIColumn(1,5,i);
+ man->AddNtupleRow(1);
+ }
+
+ else if (fMyPhantomParam->GetMaterial(i) == 2)
+ {
+ man->FillNtupleDColumn(2,0,X);
+ man->FillNtupleDColumn(2,1,Y);
+ man->FillNtupleDColumn(2,2,Z);
+ man->FillNtupleDColumn(2,3,fVoxelEnergy[i]/keV);
+ man->FillNtupleDColumn(2,4,((fVoxelEnergy[i]/joule)/(greenMassTot/kg)));
+ man->FillNtupleIColumn(2,5,i);
+ man->AddNtupleRow(2);
+ }
+
+ else if (fMyPhantomParam->GetMaterial(i) == 3)
+ {
+ man->FillNtupleDColumn(3,0,X);
+ man->FillNtupleDColumn(3,1,Y);
+ man->FillNtupleDColumn(3,2,Z);
+ man->FillNtupleDColumn(3,3,fVoxelEnergy[i]/keV);
+ man->FillNtupleDColumn(3,4,((fVoxelEnergy[i]/joule)/(blueMassTot/kg)));
+ man->FillNtupleIColumn(3,5,i);
+ man->AddNtupleRow(3);
+ }
+ }
+ }
+
+ // Save histograms
+ man->Write();
+ man->CloseFile();
+
+ // Complete clean-up
+ man->Clear();
+}
diff --git a/examples/advanced/dna/cellularPhantom/src/SteppingAction.cc b/examples/advanced/dna/cellularPhantom/src/SteppingAction.cc
new file mode 100644
index 0000000000..2da7af4d6b
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/src/SteppingAction.cc
@@ -0,0 +1,84 @@
+//
+// ********************************************************************
+// * License and Disclaimer *
+// * *
+// * The Geant4 software is copyright of the Copyright Holders of *
+// * the Geant4 Collaboration. It is provided under the terms and *
+// * conditions of the Geant4 Software License, included in the file *
+// * LICENSE and available at http://cern.ch/geant4/license . These *
+// * include a list of copyright holders. *
+// * *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work make any representation or warranty, express or implied, *
+// * regarding this software system or assume any liability for its *
+// * use. Please see the license in the file LICENSE and URL above *
+// * for the full disclaimer and the limitation of liability. *
+// * *
+// * This code implementation is the result of the scientific and *
+// * technical work of the GEANT4 collaboration. *
+// * By using, copying, modifying or distributing the software (or *
+// * any work based on the software) you agree to acknowledge its *
+// * use in resulting scientific publications, and indicate your *
+// * acceptance of all terms of the Geant4 Software license. *
+// ********************************************************************
+//
+// --------------------------------------------------------------------------------
+// MONTE CARLO SIMULATION OF REALISTIC GEOMETRY FROM MICROSCOPES IMAGES
+//
+// Authors and contributors:
+// P. Barberet, S. Incerti, N. H. Tran, L. Morelli
+//
+// University of Bordeaux, CNRS, LP2i, UMR5797, Gradignan, France
+//
+// If you use this code, please cite the following publication:
+// P. Barberet et al.,
+// "Monte-Carlo dosimetry on a realistic cell monolayer
+// geometry exposed to alpha particles."
+// Ph. Barberet et al 2012 Phys. Med. Biol. 57 2189
+// doi: 110.1088/0031-9155/57/8/2189
+// --------------------------------------------------------------------------------
+
+#include "SteppingAction.hh"
+
+#include "G4SteppingManager.hh"
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+SteppingAction::SteppingAction(RunAction* runAction)
+:G4UserSteppingAction(), fRunAction(runAction)
+{}
+
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+void SteppingAction::UserSteppingAction(const G4Step* aStep)
+{
+ // ********************************************************************************
+ // Avoid string comparison to extract material (1, 2 or 3) whic causes issues in MT
+ // ********************************************************************************
+
+ fMyPhantomParam = CellParameterisation::Instance();
+ const G4StepPoint* preStep = aStep->GetPreStepPoint();
+ G4int preReplicaNumber = preStep->GetTouchableHandle()->GetReplicaNumber();
+ G4int voxelMaterial = fMyPhantomParam->GetMaterial(preReplicaNumber);
+
+ // The absorbed energy is added to the "voxel energy" array in RunAction
+ // Added protection to make sure Replica Number has been identified
+
+ if (aStep->GetTotalEnergyDeposit()>0. && preReplicaNumber>0)
+ {
+ if (voxelMaterial == 1)
+ {
+ fRunAction->AddDoseBox(preReplicaNumber, aStep->GetTotalEnergyDeposit());
+ }
+ else if (voxelMaterial == 2)
+ {
+ fRunAction->AddDoseBox(preReplicaNumber, aStep->GetTotalEnergyDeposit());
+ }
+ else if (voxelMaterial == 3)
+ {
+ fRunAction->AddDoseBox(preReplicaNumber, aStep->GetTotalEnergyDeposit());
+ }
+ }
+}
diff --git a/examples/advanced/dna/cellularPhantom/vis.mac b/examples/advanced/dna/cellularPhantom/vis.mac
new file mode 100644
index 0000000000..e2b9a244bc
--- /dev/null
+++ b/examples/advanced/dna/cellularPhantom/vis.mac
@@ -0,0 +1,145 @@
+# *********************************************************************
+# MANDATORY SETTINGS
+# (before kernel initialization)
+#
+# MT
+/run/numberOfThreads 10
+#
+# Phantom file name
+/phantom/fileName phantoms/phantom.dat
+#
+# World volume size
+/world/sizeXY 1 mm
+/world/sizeZ 100 um
+#
+# Cellular medium size
+/phantom/mediumSizeXY 900 um
+/phantom/mediumSizeZ 95 um
+#
+# *********************************************************************
+# OPTIONAL SETTINGS
+# (before kernel initialization)
+#
+# Change cellular medium material
+#/phantom/mediumMat G4_AIR
+#
+# Change phantom densities
+#/phantom/redDen 2.0 g/cm3 # red volume density
+#/phantom/greenDen 1.0 g/cm3 # green volume density
+#/phantom/blueDen 3.0 g/cm3 # blue volume density
+#
+# Phantom shift
+#/phantom/shiftX 100 um
+#/phantom/shiftY 50 um
+#/phantom/shiftZ 1.4 um
+#
+/run/verbose 1
+/event/verbose 0
+/tracking/verbose 0
+#
+# *********************************************************************
+# RUN
+#
+/run/initialize
+#
+# Set cuts OUTSIDE the phantom region
+/run/setCut 1 mm
+#
+# Set cut for the phantom region
+/run/setCutForRegion phantomRegion 1 nm
+#
+# Print a summary of particles/regions/cuts
+/run/dumpCouples
+#
+/gps/particle proton
+/gps/energy 3.5 MeV
+#
+# Square plane source
+/gps/pos/type Plane
+/gps/pos/shape Square
+/gps/direction 0 0 1
+/gps/pos/rot1 1 0 0
+/gps/pos/rot2 0 1 0
+/gps/pos/centre 0. 0. -50 um
+/gps/pos/halfx 350 um
+/gps/pos/halfy 350 um
+#/gps/pos/halfx 0 um
+#/gps/pos/halfy 0 um
+#
+# *********************************************************************
+# VISUALIZATION SETTINGS
+#
+# Use this open statement to create an OpenGL view:
+/vis/open OGL 600x600-0+0
+#
+# Use this open statement to create a .prim file suitable for
+# viewing in DAWN:
+#/vis/open DAWNFILE
+#
+# Use this open statement to create a .heprep file suitable for
+# viewing in HepRApp:
+#/vis/open HepRepFile
+#
+# Use this open statement to create a .wrl file suitable for
+# viewing in a VRML viewer:
+#/vis/open VRML2FILE
+#
+# Disable auto refresh and quieten vis messages whilst scene and
+# trajectories are established:
+/vis/viewer/set/autoRefresh false
+/vis/verbose errors
+#
+# Draw geometry:
+/vis/drawVolume
+#
+# Specify style (surface or wireframe):
+/vis/viewer/set/style wireframe
+#
+# Theta and phi camera angle:
+/vis/viewer/set/viewpointThetaPhi 30 45
+#
+# Specify zoom value:
+/vis/viewer/zoom 1
+#
+# Specify viewpoint:
+#/vis/viewer/set/viewpointVector 400 0 105.79
+#
+# Specify target point (so a viewpoint rotation keeps it in view)
+#/vis/viewer/set/targetPoint -1461.42 0.0 -386.51 mm
+#
+# Draw coordinate axes:
+#/vis/scene/add/axes 0 0 0 1 m
+#
+# Draw smooth trajectories at end of event, showing trajectory points
+# as markers 2 pixels wide:
+/vis/scene/add/trajectories smooth
+/vis/modeling/trajectories/create/drawByCharge
+/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
+/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
+# (if too many tracks cause core dump => /tracking/storeTrajectory 0)
+#
+# Draw hits at end of event:
+/vis/scene/add/hits
+#
+# To draw only gammas:
+#/vis/filtering/trajectories/create/particleFilter
+#/vis/filtering/trajectories/particleFilter-0/add gamma
+#
+# To invert the above, drawing all particles except gammas,
+# keep the above two lines but also add:
+#/vis/filtering/trajectories/particleFilter-0/invert true
+#
+# Many other options are available with /vis/modeling and /vis/filtering.
+# For example, to select colour by particle ID:
+#/vis/modeling/trajectories/create/drawByParticleID
+#/vis/modeling/trajectories/drawByParticleID-0/set e- blue
+#
+# To superimpose all of the events from a given run:
+/vis/scene/endOfEventAction accumulate
+#
+# Re-establish auto refreshing and verbosity:
+/vis/viewer/set/autoRefresh true
+/vis/verbose warnings
+#
+# For file-based drivers, use this to create an empty detector view:
+#/vis/viewer/flush
diff --git a/examples/advanced/dsbandrepair/.README.txt b/examples/advanced/dna/dsbandrepair/.README.txt
similarity index 76%
rename from examples/advanced/dsbandrepair/.README.txt
rename to examples/advanced/dna/dsbandrepair/.README.txt
index 8e5c2b4083..b3f3fe32fd 100644
--- a/examples/advanced/dsbandrepair/.README.txt
+++ b/examples/advanced/dna/dsbandrepair/.README.txt
@@ -9,9 +9,13 @@
L. T. Anh, Y. Perrot, C. Villagrasa, S. Meylan, H. N. Tran
-(\*) contact: yann.perrot@irsn.fr or carmen.villagrasa@irsn.fr
+contact: yann.perrot@irsn.fr or le.tuan.anh@vinatom.gov.vn
-\section dsbandrepair_s1 Introduction
+\section dsbandrepair_s1 REFERENCE
+Please cite:
+Anh et al., Physica Medica 124 (2024) 103422, https://doi.org/10.1016/j.ejmp.2024.103422
+
+\section dsbandrepair_s2 Introduction
“dsbandrepair” is a Geant4-DNA simulation chain for evaluating the early radiation-induced DNA damage.
The first development of the simulation chain was carried out by Meylan et al. in 2017 (Sci. Rep. 2017 7:11923)
@@ -24,10 +28,17 @@ The geometric models are constructed from 10 voxels to form a continuous chromat
Physical stage and chemical stage allow the calculation of direct and indirect Strand Breaks in the whole nucleus.
-Furthermore, the Two Lesion Kinetic model (Radiat. Res. 2001 156:365-378) and the Local Effect Model IV (Radiat. Res. 2013 180:524-538) were also included to allow users calculate the survival fraction and un-rejoined DSBs.
-The Belov's model (J. Theo. Biol. 2015 366:115-130) for double-strand breaks repair is provided but has not been compared to experimental data.
+Furthermore, repair models were added in the analysis part:
-\section dsbandrepair_s2 How to build and run
+- The Two Lesion Kinetic model developed by Stewart (Radiat. Res. 2001 156:365-378) provides a method to link DSBs (subdivided into simple and complex DSBs) with cell death. It suggests that DSB repair depends on the severity of the lesion. It includes non-saturable first and second order repair processes. DNA fragments associated with DSBs can interact with each other in paors and form lethal or non-lethal chromosomal aberrations.
+
+- The Local Effect Model IV from Tommasino et al (Radiat. Res. 2013 180:524-538) was included to calculate the fraction of un-rejoined DSBs.
+It is based on the spatial distribution of DSBs by looking at the number of DSBs present in 2 Mbp chromatin loops.
+DSBs in the loops are consideres as "isolated DSB" or "cluster of DSBs". the fraction of unrepaired DSBs is calculated by a two-phase exponential decay.
+
+- The Belov's model (J. Theo. Biol. 2015 366:115-130) for double-strand breaks repair is provided but has not been compared to experimental data.
+
+\section dsbandrepair_s3 How to build and run
To build dsbandrepair, in the terminal, use:
\verbatim
@@ -51,7 +62,7 @@ Note that: dsbandrepair was designed in a modular way that offers users to run p
where chem.in is a macrofile. User can change it to his/her own macrofile.
-\section dsbandrepair_s3 Running with mpi library
+\section dsbandrepair_s4 Running with mpi library
To improve the simulation in term of computational time, user can run dsbandrepair with mpi library.
@@ -77,7 +88,7 @@ Or ro run chemical stage:
- shell$ mpiexec -np $nranks ./dsbandrepair chem.in chem
\endverbatim
-\section dsbandrepair_s4 Analyzing results
+\section dsbandrepair_s5 Analyzing results
To run "analysis" module, in the "build" directory, build this module with the commands:
\verbatim
- shell$ mkdir analysis
@@ -98,14 +109,14 @@ or
where the macro file allows user to interact with the code.
Example: ./analysis/runAna analysis.in
-\section dsbandrepair_s5 Outputs
+\section dsbandrepair_s6 Outputs
By default, the output of "Analysis" module will be written in 4 different text files:
- SB results: this text file contains all SB results, such as total SB, direct and indirect SBs, SSB and DSB.
- SDD format: All damages are written in SDD format (Radiat. Res. 2019 191:11). File name starts with "SDD_"
- TLK result: File name starts with "TLK_". This file contains results from TLK model.
- LEM-IV result: File name starts with "LEMIV_". This file contains results from LEMIV model.
-\section dsbandrepair_s6 Maro files
+\section dsbandrepair_s7 Maro files
Some macro files are provided along with this code, user can change them based on their own needs.
- macro files for physical stage:
@@ -120,5 +131,5 @@ Some macro files are provided along with this code, user can change them based o
An alternative example for DNA damage calculation can be found in examples/extended/medical/dna/moleculardna
-\section dsbandrepair_s7 Acknowledgments
+\section dsbandrepair_s8 Acknowledgments
The transition from the initial simulation chain of Meylan et al. to a version adapted for a Geant4 example benefited from funds from the BioRad3 project financed by the ESA (grant DAR 4000132935/21/NL/CRS)
\ No newline at end of file
diff --git a/examples/advanced/dsbandrepair/CMakeLists.txt b/examples/advanced/dna/dsbandrepair/CMakeLists.txt
similarity index 96%
rename from examples/advanced/dsbandrepair/CMakeLists.txt
rename to examples/advanced/dna/dsbandrepair/CMakeLists.txt
index 8a41e9707a..b6996d1173 100644
--- a/examples/advanced/dsbandrepair/CMakeLists.txt
+++ b/examples/advanced/dna/dsbandrepair/CMakeLists.txt
@@ -13,7 +13,7 @@ if (DOWNLOAD_GEOMETRY)
include(ExternalProject)
ExternalProject_Add(dnafabric_geometries
SOURCE_DIR ${PROJECT_BINARY_DIR}/dnafabric_geometries
- URL https://cern.ch/geant4-data/datasets/examples/advanced/dsbandrepair/0/dnafabric_geometries.tar.xz
+ URL https://cern.ch/geant4-data/datasets/examples/advanced/dna/dsbandrepair/0/dnafabric_geometries.tar.xz
URL_HASH SHA256=7e77ec0dd4291599768a4c95b95f2456a1477b32f8141c97ddb78f982d828649
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
diff --git a/examples/advanced/dsbandrepair/History b/examples/advanced/dna/dsbandrepair/History
similarity index 59%
rename from examples/advanced/dsbandrepair/History
rename to examples/advanced/dna/dsbandrepair/History
index d6ad64c541..efbf044e8d 100644
--- a/examples/advanced/dsbandrepair/History
+++ b/examples/advanced/dna/dsbandrepair/History
@@ -4,6 +4,16 @@ See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
which **must** added in reverse chronological order (newest at the top). It must **not**
be used as a substitute for writing good git commit messages!
+## 2024-11-13 Le Tuan Anh (dsbandrepair-V11-02-03)
+- Merge classes have the same functionality in PhysStage and ChemStage
+
+## 2024-10-15 H. Tran (dsbandrepair-V11-02-02)
+- Moved from to dna folder
+
+## 2024-10-03 H. Tran (dsbandrepair-V11-02-01)
+- Modified the molecule names of OH, HO2, O in MoleculeDefinition.
+ Each molecule configuration has a molecule definition.
+
## 2024-05-24 H. Tran (dsbandrepair-V11-02-00)
- used the EmParameter to control chemistry time step model
diff --git a/examples/advanced/dsbandrepair/README.txt b/examples/advanced/dna/dsbandrepair/README.txt
similarity index 81%
rename from examples/advanced/dsbandrepair/README.txt
rename to examples/advanced/dna/dsbandrepair/README.txt
index b1fc10c14b..29893770d7 100644
--- a/examples/advanced/dsbandrepair/README.txt
+++ b/examples/advanced/dna/dsbandrepair/README.txt
@@ -11,7 +11,12 @@
# AUTHORS
L. T. Anh, Y. Perrot, C. Villagrasa, S. Meylan, H. N. Tran
-(\*) contact: yann.perrot@irsn.fr or carmen.villagrasa@irsn.fr
+contact: yann.perrot@irsn.fr or le.tuan.anh@vinatom.gov.vn
+
+# REFERENCE
+
+Please cite:
+Anh et al., Physica Medica 124 (2024) 103422, https://doi.org/10.1016/j.ejmp.2024.103422
# Introduction
@@ -26,8 +31,15 @@ The geometric models are constructed from 10 voxels to form a continuous chromat
Physical stage and chemical stage allow the calculation of direct and indirect Strand Breaks in the whole nucleus.
-Furthermore, the Two Lesion Kinetic model (Radiat. Res. 2001 156:365-378) and the Local Effect Model IV (Radiat. Res. 2013 180:524-538) were also included to allow users calculate the survival fraction and un-rejoined DSBs.
-The Belov's model (J. Theo. Biol. 2015 366:115-130) for double-strand breaks repair is provided but has not been compared to experimental data.
+Furthermore, repair models were added in the analysis part:
+
+- The Two Lesion Kinetic model developed by Stewart (Radiat. Res. 2001 156:365-378) provides a method to link DSBs (subdivided into simple and complex DSBs) with cell death. It suggests that DSB repair depends on the severity of the lesion. It includes non-saturable first and second order repair processes. DNA fragments associated with DSBs can interact with each other in paors and form lethal or non-lethal chromosomal aberrations.
+
+- The Local Effect Model IV from Tommasino et al (Radiat. Res. 2013 180:524-538) was included to calculate the fraction of un-rejoined DSBs.
+It is based on the spatial distribution of DSBs by looking at the number of DSBs present in 2 Mbp chromatin loops.
+DSBs in the loops are consideres as "isolated DSB" or "cluster of DSBs". the fraction of unrepaired DSBs is calculated by a two-phase exponential decay.
+
+- The Belov's model (J. Theo. Biol. 2015 366:115-130) for double-strand breaks repair is provided but has not been compared to experimental data.
# How to build and run
diff --git a/examples/advanced/dsbandrepair/analysis/CMakeLists.txt b/examples/advanced/dna/dsbandrepair/analysis/CMakeLists.txt
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/CMakeLists.txt
rename to examples/advanced/dna/dsbandrepair/analysis/CMakeLists.txt
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/include/ClassifiedDamage.hh b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/ClassifiedDamage.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/include/ClassifiedDamage.hh
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/ClassifiedDamage.hh
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/include/Damage.hh b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/Damage.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/include/Damage.hh
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/Damage.hh
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/include/DamageClassifier.hh b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/DamageClassifier.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/include/DamageClassifier.hh
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/DamageClassifier.hh
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/include/SDDData.hh b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/SDDData.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/include/SDDData.hh
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/SDDData.hh
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/include/ScanDamage.hh b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/ScanDamage.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/include/ScanDamage.hh
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/include/ScanDamage.hh
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/src/ClassifiedDamage.cc b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/ClassifiedDamage.cc
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/src/ClassifiedDamage.cc
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/ClassifiedDamage.cc
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/src/Damage.cc b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/Damage.cc
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/src/Damage.cc
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/Damage.cc
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/src/DamageClassifier.cc b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/DamageClassifier.cc
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/src/DamageClassifier.cc
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/DamageClassifier.cc
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/src/SDDData.cc b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/SDDData.cc
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/src/SDDData.cc
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/SDDData.cc
diff --git a/examples/advanced/dsbandrepair/analysis/dnadamage/src/ScanDamage.cc b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/ScanDamage.cc
similarity index 98%
rename from examples/advanced/dsbandrepair/analysis/dnadamage/src/ScanDamage.cc
rename to examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/ScanDamage.cc
index 455949b844..646cf03501 100644
--- a/examples/advanced/dsbandrepair/analysis/dnadamage/src/ScanDamage.cc
+++ b/examples/advanced/dna/dsbandrepair/analysis/dnadamage/src/ScanDamage.cc
@@ -28,6 +28,7 @@
/// \brief Implementation of the ScanDamage class
#include "ScanDamage.hh"
+#include "ParametersParser.hh"
#include "TSystemDirectory.h"
#include "TFile.h"
@@ -274,7 +275,9 @@ void ScanDamage::ScanDamageFromPhys()
void ScanDamage::ScanDamageFromChem()
{
std::cout<<"===== Start Scanning Damages From Chem =====\n";
- fs::path currentP{"chem_output"};
+ std::string fChemOutFolderName = ParametersParser::Instance()->GetChemOutFolderName();
+ if (fChemOutFolderName == "") fChemOutFolderName = "chem_output";
+ fs::path currentP{fChemOutFolderName};
fs::file_status s = fs::file_status{};
auto isExist = fs::status_known(s) ? fs::exists(s) : fs::exists(currentP);
if (isExist) {
@@ -286,14 +289,14 @@ void ScanDamage::ScanDamageFromChem()
}
}
if (!isFoundRootFiles) {
- std::cout<<"=====>> No root files found in folder \"chem_ouput\"!!! Skip Scanning Damages From Chem =====\n";
+ std::cout<<"=====>> No root files found in folder \""< 0) {
SortChemTableWithSelection();
}
} else {
- std::cout<<"=====>> Cannot find folder \"chem_ouput\"!!! Skip Scanning Damages From Chem =====\n";
+ std::cout<<"=====>> Cannot find folder \""<GetEntries() >0)
{
- double strand;
- double copyNumber;
+ int strand;
+ int copyNumber;
double xp;
double yp;
double zp;
double time;
- double base;
+ int base;
chemTree->SetBranchAddress("strand", &strand);
chemTree->SetBranchAddress("copyNumber", ©Number);
chemTree->SetBranchAddress("xp", &xp);
@@ -405,17 +408,17 @@ void ScanDamage::AnaPhysRootTree1(TFile* f)
if( tPhys->GetEntries() > 0)
{
- double flagParticle;
- double flagParentID;
- double flagProcess;
+ int flagParticle;
+ int flagParentID;
+ int flagProcess;
double x;
double y;
double z;
double edep;
- double eventNumber;
- double volumeName;
- double copyNumber;
- double lastMetVoxelCopyNum;
+ int eventNumber;
+ int volumeName;
+ int copyNumber;
+ int lastMetVoxelCopyNum;
tPhys->SetBranchAddress("flagParticle", &flagParticle);
tPhys->SetBranchAddress("flagParentID", &flagParentID);
@@ -528,7 +531,7 @@ void ScanDamage::AnaPhysRootTree2(TFile* f)
if( int(tPhys2->GetEntries() ) > 0)
{
double edep;
- double eventNumber;
+ int eventNumber;
tPhys2->SetBranchAddress("edep", &edep);
tPhys2->SetBranchAddress("eventNumber", &eventNumber);
diff --git a/examples/advanced/dsbandrepair/analysis/include/AnalysisHandler.hh b/examples/advanced/dna/dsbandrepair/analysis/include/AnalysisHandler.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/include/AnalysisHandler.hh
rename to examples/advanced/dna/dsbandrepair/analysis/include/AnalysisHandler.hh
diff --git a/examples/advanced/dsbandrepair/analysis/include/ODESolver.hh b/examples/advanced/dna/dsbandrepair/analysis/include/ODESolver.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/include/ODESolver.hh
rename to examples/advanced/dna/dsbandrepair/analysis/include/ODESolver.hh
diff --git a/examples/advanced/dsbandrepair/analysis/include/ParametersParser.hh b/examples/advanced/dna/dsbandrepair/analysis/include/ParametersParser.hh
similarity index 98%
rename from examples/advanced/dsbandrepair/analysis/include/ParametersParser.hh
rename to examples/advanced/dna/dsbandrepair/analysis/include/ParametersParser.hh
index 2077945f7d..12d4f16b4c 100644
--- a/examples/advanced/dsbandrepair/analysis/include/ParametersParser.hh
+++ b/examples/advanced/dna/dsbandrepair/analysis/include/ParametersParser.hh
@@ -72,10 +72,12 @@ public:
std::string GetCellNucleusName() {return fCellNucleusName;};
int GetUnitTypeOfNormalization() {return fUnitOfNormalization;}
bool WannaSkipScanningIndirectDamage() {return fSkipScanningIndirectDamage;}
+ std::string GetChemOutFolderName() {return fChemOutFolderName;}
private:
explicit ParametersParser();
static ParametersParser* fInstance;
std::string fOutputName{"Output.dat"};
+ std::string fChemOutFolderName{""};
std::string fSDDfileName{""};
std::string fCellNucleusName{"Undefined"};
std::string fThresholdE{""};
diff --git a/examples/advanced/dsbandrepair/analysis/main.cc b/examples/advanced/dna/dsbandrepair/analysis/main.cc
similarity index 96%
rename from examples/advanced/dsbandrepair/analysis/main.cc
rename to examples/advanced/dna/dsbandrepair/analysis/main.cc
index 507fd85ad4..687e3d104d 100644
--- a/examples/advanced/dsbandrepair/analysis/main.cc
+++ b/examples/advanced/dna/dsbandrepair/analysis/main.cc
@@ -40,10 +40,11 @@ int main(int argc,char** argv)
<<"\n"
<<"--------------------------> Start running <--------------------------"< 1) {
- std::string macrofile = argv[1];
- parParser->LoadParameters(macrofile);
+ macrofile = argv[1];
}
+ parParser->LoadParameters(macrofile);
AnalysisHandler aAna;
if (parParser->GetBpForDSB() > 0) aAna.SetBpForDSB(parParser->GetBpForDSB());
diff --git a/examples/advanced/dsbandrepair/analysis/repairmodels/include/BelovModel.hh b/examples/advanced/dna/dsbandrepair/analysis/repairmodels/include/BelovModel.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/repairmodels/include/BelovModel.hh
rename to examples/advanced/dna/dsbandrepair/analysis/repairmodels/include/BelovModel.hh
diff --git a/examples/advanced/dsbandrepair/analysis/repairmodels/include/LEMIVModel.hh b/examples/advanced/dna/dsbandrepair/analysis/repairmodels/include/LEMIVModel.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/repairmodels/include/LEMIVModel.hh
rename to examples/advanced/dna/dsbandrepair/analysis/repairmodels/include/LEMIVModel.hh
diff --git a/examples/advanced/dsbandrepair/analysis/repairmodels/include/TLKModel.hh b/examples/advanced/dna/dsbandrepair/analysis/repairmodels/include/TLKModel.hh
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/repairmodels/include/TLKModel.hh
rename to examples/advanced/dna/dsbandrepair/analysis/repairmodels/include/TLKModel.hh
diff --git a/examples/advanced/dsbandrepair/analysis/repairmodels/src/BelovModel.cc b/examples/advanced/dna/dsbandrepair/analysis/repairmodels/src/BelovModel.cc
similarity index 100%
rename from examples/advanced/dsbandrepair/analysis/repairmodels/src/BelovModel.cc
rename to examples/advanced/dna/dsbandrepair/analysis/repairmodels/src/BelovModel.cc
diff --git a/examples/advanced/dsbandrepair/analysis/repairmodels/src/LEMIVModel.cc b/examples/advanced/dna/dsbandrepair/analysis/repairmodels/src/LEMIVModel.cc
similarity index 95%
rename from examples/advanced/dsbandrepair/analysis/repairmodels/src/LEMIVModel.cc
rename to examples/advanced/dna/dsbandrepair/analysis/repairmodels/src/LEMIVModel.cc
index d5497444b1..4a81315dca 100644
--- a/examples/advanced/dsbandrepair/analysis/repairmodels/src/LEMIVModel.cc
+++ b/examples/advanced/dna/dsbandrepair/analysis/repairmodels/src/LEMIVModel.cc
@@ -164,6 +164,16 @@ int LEMIVModel::GetDSBPerLoop(std::vector vecDamage,unsigned int startLo
void LEMIVModel::CalculateRepair(double pTMax, double pDeltaT)
{
+ if (pTMax <= 0.) {
+ std::cout<<"LEMIVModel::CalculateRepair() wrong value for timeMax !!!\n"
+ <<"Plese check the input macro file!!!"<> Wrong input. To run Physgeo, type : ./dsbandrepair macrofile\n"
<<"To run Chem_geo, type : ./dsbandrepair macrofile chem"< 2) {
const G4String rmode = argv[2];
if (rmode == "phys") gRunMode = RunningMode::Phys;
- if (rmode == "chem") gRunMode = RunningMode::Chem;
+ else if (rmode == "chem") gRunMode = RunningMode::Chem;
+ else {
+ G4cout<<"Undefined Running Mode = "<GetRank();
+ seed += g4MPI->GetRank();
#endif // USE_MPI
G4cout<<"Initial Seed for random engine: "<GetRank() == 0 ){
- CheckingSomeFilesAndFolders();
- }
-#else
- CheckingSomeFilesAndFolders();
-#endif // USE_MPI
- G4Random::setTheSeed(seed);
- auto* runManager = G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default);
+ stgstr = "physical stage";
+ runManager = G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default);
#ifdef G4MULTITHREADED
G4int threadNumber= 1;
runManager-> SetNumberOfThreads(threadNumber);
#endif // G4MULTITHREADED
-
- DetectorConstruction* detector = new DetectorConstruction(1.,0,false);
- runManager->SetUserInitialization(detector);
+#ifdef USE_MPI
+ stgstr += " in #rank"+std::to_string(g4MPI->GetRank());
+ if (g4MPI->IsMaster()) analysis->CheckAndCreateNewFolderInPhysStage();
+#else
+ analysis->CheckAndCreateNewFolderInPhysStage();
+#endif
+ } else if (gRunMode == RunningMode::Chem) {
+ stgstr = "chemical stage";
+ runManager = G4RunManagerFactory::CreateRunManager(G4RunManagerType::Serial);
+ G4DNAChemistryManager::Instance()->SetChemistryActivation(true);
+ G4Scheduler::Instance();
+ }
+
+ DetectorConstruction* detector = new DetectorConstruction(1.,0,false);
+ runManager->SetUserInitialization(detector);
+ PhysicsList* physList = new PhysicsList;
+ ActionInitialization* actionIni = new ActionInitialization();
- PhysicsList* physList = new PhysicsList;
+ if (gRunMode == RunningMode::Phys) {
runManager->SetUserInitialization(physList);
-
- PhysActionInitialization* actionIni = new PhysActionInitialization();
- runManager->SetUserInitialization(actionIni);
+ runManager->SetUserInitialization(actionIni);
#ifdef USE_MPI
- // extra worker (for collecting ntuple data)
- if ( g4MPI->IsExtraWorker() ) {
- G4cout << "Set extra worker" << G4endl;
- G4UserRunAction* runAction = const_cast(runManager->GetUserRunAction());
- g4MPI->SetExtraWorker(new G4MPIextraWorker(runAction));
- }
session-> SessionStart();
-
-
if (g4MPI->GetRank() == 0 ){
- InformationKeeper::Instance()->WritePhysGeo();
+ analysis->WritePhysGeo();
}
- delete g4MPI;
#else
// Get the pointer to the User Interface manager
G4UImanager* UImanager = G4UImanager::GetUIpointer();
@@ -152,10 +154,26 @@ int main(int argc,char** argv)
G4String command = "/control/execute ";
UImanager->ApplyCommand(command+macrofileName);
}
- InformationKeeper::Instance()->WritePhysGeo();
-#endif // USE_MPI
- delete runManager;
- } else if (gRunMode == RunningMode::Chem) {
+ analysis->WritePhysGeo();
+#endif // USE_MPI
+ }
+
+
+ if (gRunMode == RunningMode::Chem) {
+ //get the pointer to the User Interface manager
+ G4UImanager* UI = G4UImanager::GetUIpointer();
+#ifdef USE_MPI
+ session->SessionStart();
+ stgstr += " in #rank"+std::to_string(g4MPI->GetRank());
+ if (g4MPI->IsMaster()) analysis->CheckAndCreateNewFolderInChemStage();
+#else
+ G4String command = "/control/execute ";
+ UI->ApplyCommand(command+macrofileName);
+ analysis->CheckAndCreateNewFolderInChemStage();
+#endif
+ //------------------------------------------
+ // Prepare input file
+ //------------------------------------------
std::string inputFileorFolder = "chem_input";
if (argc == 4) inputFileorFolder = argv[3];
G4fs::path p{inputFileorFolder};
@@ -194,7 +212,11 @@ int main(int argc,char** argv)
if (totalNumberofFilesVector.size() == 0) {
G4cout<<"===>> There is no files found in "<> Total files found in "<>dsbandrepair: "<SetChemistryActivation(true);
-
- ChemNtupleManager ntupleManager;
-
- DetectorConstruction* detector = new DetectorConstruction();
G4String firstFileForInit="";
if (numberOfFilesTobeProcessedVector.size()>0) {
firstFileForInit=numberOfFilesTobeProcessedVector.at(0);
detector->ParseGeoFileForChemMode(firstFileForInit); // read to build voxel
}
- runManager->SetUserInitialization(detector);
- G4String chemListName = ExtractChemListNameFromMacroFile(macrofileName);
- ChemPhysicsList* physList;
- if (chemListName != "") {
- physList = new ChemPhysicsList(chemListName);
- } else physList = new ChemPhysicsList();
- runManager->SetUserInitialization(physList);
-
- ChemActionInitialization* actionIni = new ChemActionInitialization(&ntupleManager,physList);
- runManager->SetUserInitialization(actionIni);
+ //------------------------------------------
+ // Initialization classes
+ //------------------------------------------
- //get the pointer to the User Interface manager
- G4UImanager* UI = G4UImanager::GetUIpointer();
- G4String command = "/control/execute ";
- UI->ApplyCommand(command+macrofileName);
+ runManager->SetUserInitialization(physList);
+ runManager->SetUserInitialization(actionIni);
runManager->Initialize();
if (numberOfFilesTobeProcessedVector.size()>0) {
size_t nprocessedfiles{0}, ncounts{1};
@@ -249,7 +250,7 @@ int main(int argc,char** argv)
if (aP.has_stem()) {
outputFileName = aP.stem().string();
} else outputFileName = fileInput;
- ntupleManager.SetFileName(outputFileName);
+ analysis->SetFileName(outputFileName);
if (fileInput != firstFileForInit) detector->ParseGeoFileForChemMode(fileInput);
detector->InsertMoleculeInWorld();
UI->ApplyCommand("/run/beamOn 1");
@@ -268,67 +269,15 @@ int main(int argc,char** argv)
} else {
UI->ApplyCommand("/run/beamOn 1");
}
+ }
+
#ifdef USE_MPI
- delete g4MPI;
+ delete g4MPI;
#endif // USE_MPI
- delete runManager;
- } else {
- G4cout<<"Undefined Running Mode; dsbansrepair will quit now. See you!\n";
- }
+ delete runManager;
+ G4cout <<"----------------------> Finish "<GetPhysOutFolderName().c_str()};
- auto isExist = G4fs::status_known(fst) ? G4fs::exists(fst) : G4fs::exists(outFolderPhysP);
- if (! isExist) {
- G4fs::create_directory(outFolderPhysP);
- } else {
- G4fs::remove_all(outFolderPhysP);//delete old folder
- G4fs::create_directory(outFolderPhysP);
- }
- // create output folder for containing chem_input
- const G4fs::path outFolderP{InformationKeeper::Instance()->GetChemInputFolderName().c_str()};
- isExist = G4fs::status_known(fst) ? G4fs::exists(fst) : G4fs::exists(outFolderP);
- if (! isExist) {
- G4fs::create_directory(outFolderP);
- } else {
- G4fs::remove_all(outFolderP);//delete old folder
- G4fs::create_directory(outFolderP);
- }
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
-
-G4String ExtractChemListNameFromMacroFile(G4String fileName)
-{
- G4String out="";
- std::ifstream file;
- file.open(fileName.c_str());
- if (!file.is_open()) {
- G4String msg = "Error in openning file " + fileName;
- G4Exception("G4String ExtractChemListNameFromMacroFile()", "", FatalException, msg);
- } else {
- G4String line;
- while(std::getline(file, line))
- {
- std::istringstream iss(line);
- G4String flag;
- iss >> flag;
- G4String tvalue;
- iss >> tvalue;
- if (flag == "/dsbandrepair/chem/chemList") out = tvalue;
- }
- }
- file.close();
- return out;
-}
-
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
diff --git a/examples/advanced/dsbandrepair/dsbandrepair.out b/examples/advanced/dna/dsbandrepair/dsbandrepair.out
similarity index 98%
rename from examples/advanced/dsbandrepair/dsbandrepair.out
rename to examples/advanced/dna/dsbandrepair/dsbandrepair.out
index 5e194b0e52..66ba393975 100644
--- a/examples/advanced/dsbandrepair/dsbandrepair.out
+++ b/examples/advanced/dna/dsbandrepair/dsbandrepair.out
@@ -1,4 +1,4 @@
-Initial Seed for random engine: 1719414420
+Initial Seed for random engine: 1733190484
Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Forcing G4RunManager type...
############################################
@@ -12,7 +12,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
**************************************************************
- Geant4 version Name: geant4-11-02-ref-06 (28-June-2024)
+ Geant4 version Name: geant4-11-03-ref-00 (6-December-2024)
Copyright : Geant4 Collaboration
References : NIM A 506 (2003), 250-303
: IEEE-TNS 53 (2006), 270-278
@@ -75,10 +75,13 @@ Bremsstrahlung energy threshold above which
primary e+- is added to the list of secondary 100 TeV
Bremsstrahlung energy threshold above which primary
muon/hadron is added to the list of secondary 100 TeV
+Positron annihilation at rest model AllisonPositronium
+Enable 3 gamma annihilation on fly 0
Lowest triplet kinetic energy 1 MeV
Enable sampling of gamma linear polarisation 0
5D gamma conversion model type 0
5D gamma conversion model on isolated ion 0
+Use Ricardo-Gerardo pair production model 0
Livermore data directory epics_2017
=======================================================================
====== Ionisation Parameters ========
@@ -522,3 +525,4 @@ hIoni: for pi- XStype:3 SubType=2
--> Event 0 starts.
... write file : phys_output/phys_output.root - done
... close file : phys_output/phys_output.root - done
+----------------------> Finish physical stage!!! Good bye :) <----------------------
diff --git a/examples/advanced/dsbandrepair/include/PhysActionInitialization.hh b/examples/advanced/dna/dsbandrepair/include/ActionInitialization.hh
similarity index 85%
rename from examples/advanced/dsbandrepair/include/PhysActionInitialization.hh
rename to examples/advanced/dna/dsbandrepair/include/ActionInitialization.hh
index c5cb107dcc..2078933f98 100644
--- a/examples/advanced/dsbandrepair/include/PhysActionInitialization.hh
+++ b/examples/advanced/dna/dsbandrepair/include/ActionInitialization.hh
@@ -24,19 +24,19 @@
// ********************************************************************
//
//
-/// \file PhysActionInitialization.hh
-/// \brief Definition of the PhysActionInitialization class
+/// \file ActionInitialization.hh
+/// \brief Definition of the ActionInitialization class
-#ifndef PHYSACTIONINITIALIZATION_HH
-#define PHYSACTIONINITIALIZATION_HH
+#ifndef ACTIONINITIALIZATION_HH
+#define ACTIONINITIALIZATION_HH
#include "G4VUserActionInitialization.hh"
-class PhysActionInitialization : public G4VUserActionInitialization
+class ActionInitialization : public G4VUserActionInitialization
{
public:
- PhysActionInitialization() = default;
- ~PhysActionInitialization() override = default;
+ ActionInitialization() = default;
+ ~ActionInitialization() override = default;
void BuildForMaster() const override;
void Build() const override;
diff --git a/examples/advanced/dsbandrepair/include/PhysAnalysis.hh b/examples/advanced/dna/dsbandrepair/include/Analysis.hh
similarity index 58%
rename from examples/advanced/dsbandrepair/include/PhysAnalysis.hh
rename to examples/advanced/dna/dsbandrepair/include/Analysis.hh
index a623f7e1ca..7bd4c0fba6 100644
--- a/examples/advanced/dsbandrepair/include/PhysAnalysis.hh
+++ b/examples/advanced/dna/dsbandrepair/include/Analysis.hh
@@ -24,15 +24,18 @@
// ********************************************************************
//
//
-/// \file PhysAnalysis.hh
-/// \brief Definition of the PhysAnalysis class
+/// \file Analysis.hh
+/// \brief Definition of the Analysis class
+/// \file Analysis.hh
+/// \brief Definition of the Analysis class
-#ifndef PHYSANALYSIS_h
-#define PHYSANALYSIS_h 1
+#ifndef ANALYSIS_h
+#define ANALYSIS_h 1
#include "G4ThreeVector.hh"
#include