742 lines
39 KiB
Plaintext
742 lines
39 KiB
Plaintext
|
|
Geant4 11.3-beta-01 Release Notes
|
|
---------------------------------
|
|
|
|
28 June 2024
|
|
|
|
Migration Notes & Main New Features
|
|
-----------------------------------
|
|
|
|
o Fixed spurious compilation warnings on gcc when LTO settings are enabled.
|
|
o 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.
|
|
o Added protection in G4VPrimaryGenerator::SetParticlePosition() to avoid
|
|
and warn for attempts to place vertex position outside or on surface of
|
|
the world volume.
|
|
o Extended diagnostics and output from material scanner.
|
|
o First implementation of parallel initialisation of geometry optimisation.
|
|
o New revised and optimised implementation of G4GenericTrap shape.
|
|
o Improved/optimised implementation of GetCubicVolume() in Boolean solids.
|
|
o Added new classes for automatic field construction from parameters.
|
|
o Optimised step limitation algorithm in G4UrbanMscModel.
|
|
o G4eeToTwoGammaModel: fixed precision lost in sampling of final state
|
|
for very high energies.
|
|
o New class G4EmDataRegistry, to keep EM data tables.
|
|
o New G4OrePowellAtRestModel class, Orel & Powell orto positronium decay
|
|
model AtRest and G4SimpleoPsAtRestModel, a simple orto para positronium
|
|
chooser.
|
|
o New classes for multiple-ionisation in Geant4-DNA.
|
|
o In 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
|
|
o Added three new variants of 'Shielding' physics list in G4PhysListFactory.
|
|
o Introduced neutron treatment of the Unresolved Resonance Region (URR)
|
|
via Probability Table (PT); relevant for precise simulations of nuclear
|
|
reactor criticality and shielding applications.
|
|
o First implementation of NuDEX nuclear de-excitation hadronic model.
|
|
o Updates to cross-section classes to rationalise initialisation of data
|
|
in MT mode.
|
|
o Simplified computation of cross-section maximum for discrete processes
|
|
in G4EmUtility.
|
|
o New class G4XTRGaussRadModel, providing improved account on the origin
|
|
of XTR photons.
|
|
o Restored OpenGL as default backend for Qt6. Fixed open issues when using
|
|
Qt6 with supported drivers.
|
|
o 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)
|
|
o Removed configuration/setup of no longer supported TiMemory profiling.
|
|
o Build option with VecGeom requires VecGeom-1.2.8 or higher.
|
|
o Requires CLHEP-2.4.7.1 for external CLHEP installation.
|
|
o New versions of datasets: G4PARTICLEXS-4.1, G4EMLOW-8.6.
|
|
o New optional datasets: G4NUDEXLIB-1.0, G4URRPT-1.0.
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
Technical Notes
|
|
---------------
|
|
|
|
o Tested platforms:
|
|
+ Linux, gcc-11.3.1.
|
|
Tested on 64 bit architectures (Intel or AMD) with Alma Linux 9
|
|
(based on RedHat Linux Enterprise 9). Versions of Geant4 have also
|
|
been compiled successfully on other Linux distributions, Ubuntu,
|
|
Debian, Suse or other RedHat systems.
|
|
+ MacOS 14.5, Apple LLVM/clang-15 (Intel or Apple Silicon).
|
|
+ Windows/11 with Visual C++ 14.40 (Visual Studio 2022)
|
|
|
|
o More verified configurations:
|
|
+ Linux, with gcc-9.4/10.3/11.3/12.1/13.2/14.1, clang-14/15/16/17.
|
|
+ Linux, with Intel-icx 2024.1.
|
|
+ MacOS 12.7/13.6, with Apple LLVM/clang-14/15.
|
|
+ Windows/10 with Visual C++ 14.36 (Visual Studio 2022)
|
|
|
|
o External dependencies
|
|
+ CLHEP-2.4.7.1, suggested for external installation of the CLHEP library.
|
|
+ VecGeom-1.2.8 or later, for optional use of VecGeom geometry primitives.
|
|
+ PTL-2.3.3, for external installation of the PTL tasking library.
|
|
|
|
o New datasets:
|
|
+ G4PARTICLEXS-4.1, G4EMLOW-8.6, G4NUDEXLIB-1.0, G4URRPT-1.0.
|
|
|
|
Please refer to the Geant4 User Documentation:
|
|
https://cern.ch/geant4/support/user_documentation
|
|
for further information about using Geant4.
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
List of features and fixes included in this Beta release since 11.2.p02:
|
|
|
|
o Configuration:
|
|
-------------
|
|
+ CMake:
|
|
o Added compiler flags for GCC only to help detect/debug LTO-related
|
|
problems when building with CMAKE_INTERPROCEDURAL_OPTIMIZATION.
|
|
o Provide CMake function to assist in linking unit tests to final
|
|
libraries given required source code modules.
|
|
o Removed configuration/setup of no longer supported TiMemory profiling.
|
|
o Introduced new "FullRelWithDebInfo" build mode, "-O3 -g", so maximum
|
|
optimisation with debugging symbols.
|
|
o 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.
|
|
o Added optional install of new NuDEXLib and URRPT datasets.
|
|
o Updated to datasets: G4PARTICLEXS-4.1, G4EMLOW-8.6, G4NUDEXLIB-1.0,
|
|
G4URRPT-1.0.
|
|
|
|
o Event:
|
|
-----
|
|
+ Initial implementation of creation and processing of sub-events.
|
|
+ Added protection in G4VPrimaryGenerator::SetParticlePosition() to avoid
|
|
and warn for attempts to place vertex position outside or on surface of
|
|
the world volume.
|
|
+ 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).
|
|
+ Removed use of no longer supported TiMemory.
|
|
|
|
o Geometry:
|
|
--------
|
|
+ divisions:
|
|
o Applied trivial clang-tidy fixes to classes, i.e. use of default
|
|
constructor/destructor.
|
|
+ magneticfield:
|
|
o Added new classes for automatic field construction from parameters:
|
|
G4FieldBuilder[Messenger], G4FieldParameters[Messenger] and
|
|
G4FieldSetup.
|
|
o Applied trivial clang-tidy fixes to classes, i.e. use of default
|
|
constructor/destructor, auto and using statements.
|
|
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 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
|
|
geometries.
|
|
o Added new methods GetNumOfConstituents() and IsFaceted() to G4VSolid.
|
|
o Applied trivial clang-tidy fixes to classes, i.e. use of default
|
|
constructor/destructor.
|
|
+ navigation:
|
|
o 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.
|
|
o Applied trivial clang-tidy fixes to classes, i.e. use of 'override' and
|
|
removal of 'virtual' keywords; use of default constructor/destructor.
|
|
+ solids/Boolean:
|
|
o In G4BooleanSolid, propagate parameter to all constituents in
|
|
SetCubVolStatistics() and SetCubVolEpsilon().
|
|
o In G4UnionSolid and G4SubtractionSolid, limit calculations with
|
|
construction of temporary G4IntersectionSolid by 10 constituents for
|
|
GetCubicVolume().
|
|
o Implemented new methods GetNumOfConstituents() and IsFaceted().
|
|
o 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:
|
|
o Implemented new methods GetNumOfConstituents() and IsFaceted().
|
|
o Applied trivial clang-tidy fixes to G4CSGSolid, i.e. use of 'override'.
|
|
+ solids/specific:
|
|
o Completely revised and optimised implementation of G4GenericTrap.
|
|
Addressing problem report #2547.
|
|
o Implemented new methods GetNumOfConstituents() and IsFaceted().
|
|
o Applied trivial clang-tidy fixes to classes, i.e. use of 'override'
|
|
and 'default' keywords.
|
|
+ volumes:
|
|
o Applied trivial clang-tidy fixes to G4AssemblyStore, i.e. removed
|
|
unnecessary 'if' check for null pointer in Clean() method.
|
|
|
|
o Global:
|
|
------
|
|
+ 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).
|
|
+ Removed use of no longer supported TiMemory.
|
|
+ Changed date for release 11.3-beta.
|
|
|
|
o Graphics Representations:
|
|
------------------------
|
|
+ G4SceneTreeItem: added G4String field 'FurtherInfo' and access functions.
|
|
+ G4Colour: clarify usage; added GetColor (US spelling); added G4Exception.
|
|
+ G4VVisManager: added EventReadyForVis(), used by G4SubEvtRunManager.
|
|
|
|
o Intercoms:
|
|
---------
|
|
+ Unify range checking implementation in G4UIparameter/command; pure
|
|
refactor to remove code duplication and complexity of user-facing
|
|
classes.
|
|
+ Removed use of no longer supported TiMemory.
|
|
|
|
o 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.
|
|
+ Removed use of no longer supported TiMemory.
|
|
|
|
o Physics Lists:
|
|
-------------
|
|
+ Constructors:
|
|
o electromagnetic:
|
|
- 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.
|
|
- 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.
|
|
o factory:
|
|
- Minor code cleanup in G4PhysicsConstructorRegistry source.
|
|
o constructors/hadron_inelastic
|
|
- G4HadronPhysicsQGSP_BERT_HP: use alternative NUDEX model of
|
|
gamma de-excitation.
|
|
|
|
o Electromagnetic Processes:
|
|
-------------------------
|
|
+ DNA:
|
|
o Optimised IRT-syn at 1 ps for high LET applications.
|
|
o 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 ~10 times faster); updated initialisation to
|
|
allow be called from the general model; removed unused parameters.
|
|
o G4GeneralIonIonisationModel, G4DNAIonChargeIncreaseModel and
|
|
G4DNAIonChargeDecreaseModel: new classes implementing general models
|
|
for ions heavier than Helium.
|
|
o G4DNAChargeDecrease, G4DNAChargeIncrease: removed obsolete definition
|
|
of min/max model energy inside processes class; some code clean-up.
|
|
o G4DNAElectronHoleRecombination: changed branch condition in
|
|
FindReactant() to select only H2O+ ions involved in electron-hole
|
|
recombination.
|
|
o G4DNAWaterDissociationDisplacer: added dissociative decay channels for
|
|
multiple-ionised water ions.
|
|
o 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.
|
|
o G4DNADoubleIonisation, G4DNATripleIonisation and
|
|
G4DNAQuadrupleIonisation: new process classes for multiple-ionisation.
|
|
o G4DNADoubleIonisationModel, G4DNATripleIonisationModel and
|
|
G4DNAQuadrupleIonisationModel: new model classes related to
|
|
multiple-ionisation.
|
|
o G4DNAELSEPAElasticModel: modified to be compatible with density
|
|
scaling.
|
|
o Debug invalid KDTree node.
|
|
o Deleted DelayLists at the end of chemistry stage.
|
|
o Delete unused enum, as now adopting EmParameters to control chemistry
|
|
models in G4EmDNAChemistry_option3.
|
|
o Cleaned G4Scheduler and cleanup in CMake scripts.
|
|
+ Low Energy:
|
|
o G4MicroElecLOPhononModel: minor code cleanup.
|
|
+ Standard:
|
|
o New G4OrePowellAtRestModel class, Orel & Powell orto positronium decay
|
|
model AtRest and G4SimpleoPsAtRestModel, simple orto para positronium
|
|
chooser.
|
|
o 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.
|
|
o G4eeToTwoGammaModel: fixed precision lost in sampling of final state
|
|
for the very high energy (ATLAS report).
|
|
o G4UrbanMscModel: optimised DistanceToBoundary step limitation
|
|
algorithm currently used only in Opt3 EM physics.
|
|
o G4SimplePositronAtRestModel, G4AllisonAtRestModel: new classes to
|
|
sample positron annihilation.
|
|
o G4eplusTo2GammaOKVIModel: removed sampling at rest.
|
|
o 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.
|
|
+ Utils:
|
|
o 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.
|
|
o 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.
|
|
o G4LowEnergyEmProcessSubType: added 'fLowEnergyTripleIonisation' and
|
|
'fLowEnergyQuadrupleIonisation' for implementing multiple-ionisation
|
|
processes in Geant4-DNA.
|
|
o G4VPositronAtRestModel: new virtual interface.
|
|
o G4EmDataRegistry: new class to keep EM data tables.
|
|
o G4VEmProcess: extended info printout for e+ annihilation at rest.
|
|
o G4VEmProcess, G4VEnergyLossProcess: improved identification of model ID
|
|
for atomic de-excitation (fluorescence, Auger e-, PIXE).
|
|
o G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger: added
|
|
DNA chemistry time step model.
|
|
o G4EmDataHandler: extended functionality.
|
|
o G4LossTableManager: identify master thread using std method.
|
|
o G4LossTableBUilder: more accurate use of static members and methods.
|
|
o G4VEmModel, G4VEmProcess, G4VEnergyLossProcess, G4EmTableUtil: updated
|
|
according to change in the data.
|
|
o G4VMscModel: moved initialisation of tables for model to G4EmTableUtil.
|
|
o G4EmBiasingManager: minor cosmetic change.
|
|
+ Xrays:
|
|
o G4XTRGaussRadModel: new class providing improved account on the origin
|
|
of XTR photons.
|
|
|
|
o Hadronic Processes:
|
|
------------------
|
|
+ cross_sections
|
|
o 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.
|
|
o 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.
|
|
o Moved G4IsotopeList header to 'util' module.
|
|
o 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.
|
|
o 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.
|
|
o 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).
|
|
o In G4NeutronInelasticXS::SelectIsotope(), fixed compilation warnings
|
|
for implicit type conversions detected with macOS/XCode.
|
|
o G4ComponentGGNuclNuclXsc: removed debug printout, added check of
|
|
G4VERBOSE.
|
|
o G4BGGPionElasticXS, G4BGGNucleonInelasticXS, G4BGGNucleonElasticXS:
|
|
added check of G4VERBOSE compilation flag.
|
|
+ management
|
|
o G4HadronicProcessStore: fixed handling of rare processes, printout,
|
|
cross-section maximum search, and deletion at the end of run.
|
|
+ models/abla
|
|
o Added array extension for super-heavy nuclei.
|
|
o Added the dissipation parameter for heavy hypernuclei.
|
|
o General code cleanup; removed unused data structures; consistently use
|
|
G4 types; added pragma once for compilation.
|
|
+ models/cascade
|
|
o Use G4UniformRand() instead of G4InuclSpecialFunctions::inuclRndm()
|
|
wrapper (now removed from class G4InuclSpecialFunctions) in the code.
|
|
o In G4CascadeFinalStateAlgorithm::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.
|
|
+ models/de_excitation
|
|
o G4CameronGilbertPairingCorrections, G4CameronGilbertShellCorrections,
|
|
G4NuclearLevelData, G4PairingCorrection: simplified computation of
|
|
corrections; computations are now done in one place only, not spread
|
|
among classes.
|
|
o G4EvaporationChannel, G4EvaporationProbability: fixed usage of pairing
|
|
corrections; agreement with test data is improved.
|
|
o G4EvaporationChannel: fixed computation of minimal kinetic energy of a
|
|
fragment for odd-even residual nucleus.
|
|
o 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.
|
|
o G4PhotonEvaporation: use abs() in all computations for 'JP', as it can
|
|
be negative due to parity. Addressing problem report #2587.
|
|
o G4VEmissionProbability: renamed local variable to avoid possible
|
|
shadowing. Use the new width parameter.
|
|
o G4ExcitationHandler: improved debug printout.
|
|
o G4ExcitationHandle, G4NeutronRadCapture: corrected model ID for IC
|
|
electrons.
|
|
o G4GEMChannelVI, G4GEMProbabilityVI: updated interfaces and simplified
|
|
algorithm of computation of probability.
|
|
o G4VCoulombBarrier, G4CoulombBarrier, G4GEMCoulombBarrier,
|
|
G4FermiBreakUpUtil: code cleanup; removed unused headers and variables.
|
|
+ models/fission
|
|
o G4FissLib: fixed compilation warning on gcc when LTO settings are
|
|
enabled.
|
|
+ models/lepto_nuclear
|
|
o Fixed Coverity warning on unused variable in neutrino models.
|
|
+ models/nudex
|
|
o 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 environmental 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.
|
|
+ models/particle_hp
|
|
o 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.0 dataset pointed by the G4URRPTDATA environment variable.
|
|
+ models/parton_string
|
|
o G4ExcitedStringDecay: fixed minor memory leak suggested by Coverity.
|
|
+ models/radioactive_decay
|
|
o Renamed G4RadioactiveDecay to G4VRadioactiveDecay and G4Radioactivation
|
|
to G4RadioactiveDecay. The header for G4Radioactivation is preserved to
|
|
provide backwards compatibility.
|
|
+ util
|
|
o G4HadronicParameters: introduced Get/Set methods for flag controlling
|
|
the NuDEX gamma de-excitation module.
|
|
o Moved G4IsotopeList header with static data in this module, from
|
|
'cross_sections'.
|
|
|
|
o Run:
|
|
---
|
|
+ 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. Some additional work
|
|
may be needed to correctly retain a limited sample of events.
|
|
No impact of the core changes needed to support sub event parallelism in
|
|
any other mode (Seq, MT, Tasking) other than some counting issues with
|
|
retained events.
|
|
+ Extended diagnostics and output from material scanner.
|
|
+ Added call in G4WorkerRunManager to use parallel initialisation of
|
|
voxels.
|
|
+ In G4RunManager::ReinitializeGeometry(), added call to new function
|
|
G4FieldBuilder::Reinitialize().
|
|
+ G4PhysicsListHelper: added 'DNATripleIoni' and 'DNAQuadrupleIoni'
|
|
for the implementation of multiple-ionisation processes in Geant4-DNA.
|
|
+ G4RunManager: added SetDefaultClassification() methods to enable setting
|
|
the classification for tracks newly arriving to a stack.
|
|
+ Removed use of no longer supported TiMemory.
|
|
+ Fixed compilation warnings for implicit type conversions on macOS/XCode
|
|
on G4MSSteppingAction. Use consistently G4 types.
|
|
|
|
o Track & Tracking:
|
|
----------------
|
|
+ Added optional copy of touchable when copy constructing a G4Track, to
|
|
support sub-event parallelism.
|
|
+ Some code cleanup, providing more easy reading of class headers; expected
|
|
tiny CPU speedup; identical results.
|
|
+ G4Track, G4Step, G4StepPoint: added keyword "inline" to all inline method
|
|
declarations; 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.
|
|
+ Removed use of no longer supported TiMemory.
|
|
|
|
o Visualization:
|
|
-------------
|
|
+ management:
|
|
o Rationalisation, simplification and code tidying.
|
|
o 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".
|
|
o Corrected the use of "KeepForPostProcessing/PostProcessingFinished".
|
|
o G4VisExecutive: restored OpenGL as default backend for Qt6.
|
|
o Improved identification of scene tree models: use full description,
|
|
including embedded blanks.
|
|
o 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.
|
|
o 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).
|
|
o 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).
|
|
o G4VisCommandsViewer: use GetSceneTree() rather than AccessSceneTree()
|
|
when not necessary.
|
|
o 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.
|
|
o 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.
|
|
o 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".
|
|
o G4VisCommandsTouchable: "/vis/touchable/dump" and "findPath" do not
|
|
need a scene handler nor a viewer.
|
|
Moved them to the beginning of G4VisCommandsTouchable::SetNewValue(),
|
|
before the check on scene handler and viewer. This allows the user to
|
|
"/vis/touchable/dump" even if he/she has not yet opened a viewer.
|
|
+ modeling:
|
|
o G4PhysicalVolumeModel: added data field 'TotalTouchables' and access
|
|
functions.
|
|
o G4TextModel: use single quote (') to delineate actual text in
|
|
description.
|
|
+ OpenGL:
|
|
o 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().
|
|
o 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 on the ClearView(), SetView().
|
|
o Make headers of implementation detail classes private.
|
|
+ OpenInventor:
|
|
o 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.
|
|
o 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.
|
|
o Make headers of implementation detail classes private.
|
|
+ Qt3D
|
|
o Added missing call to fpPhysicalVolumeObjects.clear() in
|
|
G4Qt3DSceneHandler::EstablishG4Qt3DQEntities(). Fixes cases of
|
|
crash when opening multiple viewers with "/vis/open Qt3D".
|
|
o In G4Qt3DViewer destructor, call setRootEntity(nullptr) to disconnect
|
|
the G4Qt3DSceneHandler::fpQt3DScene from a viewer.
|
|
o In G4Qt3DSceneHandler destructor, clear the scene tree.
|
|
+ ToolsGS:
|
|
o Replace TOOLSSG vis driver variables that are just synonyms for more
|
|
fundamental config options (e.g. GEANT4_USE_QT) with the underlying
|
|
variable.
|
|
o Make Freetype a private dependency in CMake script.
|
|
+ Vtk:
|
|
o In G4VtxQtViewer, fixed MT issue of possible dead-lock in case multiple
|
|
Vtk viewers are enabled and when issuing "/run/beamOn".
|
|
|
|
o Datasets:
|
|
---------
|
|
+ G4PARTICLEXS-4.1:
|
|
o 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.
|
|
+ G4EMLOW-8.6:
|
|
o Added new data for multi-ionisation DNA processes.
|
|
+ G4NUDEXLIB-1.0:
|
|
o 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.
|
|
+ G4URRPT-1.0:
|
|
o 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.
|
|
|
|
o Examples:
|
|
--------
|
|
+ Updated reference outputs, macros, READMEs and scripts.
|
|
+ Updated URL for schema validation in all GDML files to valid short
|
|
address.
|
|
+ Applied clang-format to basic and extended examples; addressed coding
|
|
style warnings.
|
|
+ advanced/dsbandrepair
|
|
o Use EmParameters to control chemistry time step model.
|
|
+ advanced/eFLASH_radiotherapy
|
|
o Added FlashPhysicsListMessenger class to allow changing the physics
|
|
list by macro commands (opt3, opt4, Penelope and Livermore).
|
|
+ basic/B3
|
|
o Looping over G4THitsMap via range for loop instead of iterators.
|
|
+ extended/electromagnetic/TestEm0
|
|
o DetectorConstruction: introduced Xenon gas.
|
|
o Added new macro xenonGas.mac.
|
|
+ extended/electromagnetic/TestEm4
|
|
o PhysicsLists: fixed annoying warnings on decay table;
|
|
removed obsolete methods.
|
|
o Run: code cleanup; removed Tabs.
|
|
+ extended/electromagnetic/TestEm5
|
|
o TrackingAction: added protection against wrong argument of std::acos(),
|
|
rarely happening for very high energy projectile particles.
|
|
o Removed macro subcut.mac.
|
|
+ extended/electromagnetic/TestEm7
|
|
o RunAction: added protection to histogram binning for very low step
|
|
limit.
|
|
+ extended/electromagnetic/TestEm12
|
|
o Added comments to dna.mac input macro.
|
|
+ extended/electromagnetic/TestEm15
|
|
o SteppingAction: code cleanup; removed Tabs.
|
|
+ extended/eventgenerator/exgps
|
|
o Updated build script for CTests definitions.
|
|
+ extended/eventgenerator/pythia/py8decayer
|
|
o Updated to Pythia8.3.10 for testing.
|
|
o Added Py8DecayerEngine to override Pythia8 native engine with the
|
|
default one from Geant4 (CLHEP), to properly run in the MT/Tasking mode.
|
|
o Updated main() to use MT mode; some code cleanup.
|
|
+ extended/exoticphysics/phonon
|
|
o Updated build script for CTests definitions.
|
|
+ extended/field/field01
|
|
+ extended/field/field02
|
|
+ extended/field/field03
|
|
o Replaced FieldSetup and FieldMessenger classes with usage of new
|
|
field builder class G4FieldBuilder.
|
|
o Moved setting field value (ThreeVector) from FieldSetup (now removed)
|
|
in DetectorConstruction and its messenger and removed setting of
|
|
Z-value only.
|
|
+ extended/hadronic/Hadr01
|
|
o Enable usage of the NUDEX library for QGSP_BERT_HP physics in main().
|
|
+ extended/hadronic/Hadr03
|
|
o PrimaryGeneratorAction: added tiny shift of position of the particle
|
|
gun from the world volume boundary; fixing a warning now detecting this.
|
|
o PhysicsList: removed G4RadioactiveDecayPhysics.
|
|
o Updated fusion.mac input macro.
|
|
+ extended/hadronic/Hadr05
|
|
o PrimaryGeneratorAction: added tiny shift of position of the particle
|
|
gun from the world volume boundary; fixing a warning now detecting this.
|
|
o RadioactiveDecayPhysics: added Triton.
|
|
o Applied coding rules.
|
|
+ extended/hadronic/Hadr07
|
|
o RadioactiveDecayPhysics: added Triton.
|
|
o Applied coding rules.
|
|
+ extended/hadronic/NeutronSource
|
|
o PhysicsList: added G4HadronElasticPhysicsXS.
|
|
o RadioactiveDecayPhysics: added Triton.
|
|
o GammaNuclearPhysics, GammaNuclearPhysicsLEND: applied coding rules.
|
|
+ extended/medical/dna/chem6
|
|
o Use EmParameters to control chemistry models.
|
|
+ extended/medical/dna/dnadamage1
|
|
o Fixed compilation errors on macOS/clang with C++23 enabled.
|
|
+ extended/medical/dna/dnaphysics
|
|
o PhysicsList: switched to DNA physics constructors i/o model activator.
|
|
o Added new n-tuple to collect track information.
|
|
o Added plotDeexcitation.C analysis and deexcitation.in macro.
|
|
o Updated comments in headers.
|
|
+ extended/medical/dna/mfp
|
|
o Code cleanup.
|
|
+ extended/medical/dna/microdosimetry
|
|
o Removed original content of the example; replaced by dnaphysics example.
|
|
o Code simplification to demonstrate the usage of G4DNAPhysicsActivator.
|
|
+ extended/medical/dna/microprox
|
|
+ extended/medical/dna/microyz
|
|
o Code cleanup.
|
|
+ extended/medical/dna/moleculardna
|
|
o Updated /dnageom/interactionDirectRange to 2.0 angstrom.
|
|
+ extended/medical/dna/range
|
|
+ extended/medical/dna/slowing
|
|
o Code cleanup.
|
|
+ extended/medical/dna/spower
|
|
o SteppingAction: extended use for ions heavier than helium.
|
|
o In spower.in input macro, added extra commands to show how to shoot
|
|
ions heavier than helium.
|
|
o Code cleanup.
|
|
+ extended/medical/dna/svalue
|
|
+ extended/medical/dna/wvalue
|
|
o Code cleanup.
|
|
+ extended/medical/dna/UHDR
|
|
o Updated bounce off condition based on:
|
|
Karamitros M. et al.2020,arXiv:2006.14225 (2020).
|
|
o Implemented PBC based on https://github.com/amentumspace/g4pbc
|
|
to calculate microdosimetry
|
|
o Added a maximum dose (2 times of cut-off dose) to abort the event.
|
|
o Fixed compilation errors on macOS/clang with C++23 enabled, for
|
|
incomplete types of smart-pointers through defaulted destructors.
|
|
+ extended/medical/fanoCavity
|
|
o Make PhysicsLists of the example coherent with physics_list library.
|
|
Fixed annoying warnings on decay table.
|
|
+ extended/medical/fanoCavity2
|
|
o Make PhysicsLists of the example coherent with physics_list library.
|
|
+ extended/parallel
|
|
o Removed obsolete TopC example.
|
|
+ extended/parallel/MPI
|
|
o Updated build script for CTests definitions.
|
|
+ extended/parallel/ThreadsafeScorers
|
|
o Removed use of no longer supported TiMemory.
|
|
+ extended/radioactivedecay/Activation
|
|
o PhysicsList: added G4HadronElasticPhysicsXS.
|
|
o RadioactiveDecayPhysics: added Triton.
|
|
o GammaNuclearPhysics, GammaNuclearPhysicsLEND: applied coding rules.
|
|
+ extended/radioactivedecay/rdecay01
|
|
o PhysicsList: set 'MeanLifeThreshold' to 1 nanosecond.
|
|
o Added time windowed biasing to rdecay01.in macro.
|
|
o In timeWindowBiased.mac and rdecay01.in, removed
|
|
"/process/had/rdm/BRbias".
|
|
+ extended/runAndEvent/RE07
|
|
o Fixed compilation warnings for potentially initialised local variable
|
|
in EmStandardPhysicsTrackingManager::PostStepDoIt().
|
|
+ extended/visualization/standalone
|
|
o A smarter way of getting extent of geometry that ignores invisible
|
|
volumes. Thus, if the world is marked invisible, it ignores it.
|
|
o In DrawGeometryVisAction: use G4PhysicalVolumeModel to determine extent.
|
|
|
|
----------------------------------------------------------------------------
|
|
|