Back to home page

EIC code displayed by LXR

 
 

    


Warning, /geant4/CHANGELOG/Beta4.11.3-1.txt is written in an unsupported language. File is not indexed.

0001 
0002                   Geant4 11.3-beta-01 Release Notes
0003                   ---------------------------------
0004 
0005                                                             28 June 2024
0006 
0007                  Migration Notes & Main New Features
0008                  -----------------------------------
0009 
0010   o Fixed spurious compilation warnings on gcc when LTO settings are enabled.
0011   o First full implementation of sub-event parallelism, with creation and
0012     processing of sub-events in workers, and merging of results back into
0013     events on the main thread.
0014   o Added protection in G4VPrimaryGenerator::SetParticlePosition() to avoid
0015     and warn for attempts to place vertex position outside or on surface of
0016     the world volume.
0017   o Extended diagnostics and output from material scanner.
0018   o First implementation of parallel initialisation of geometry optimisation.
0019   o New revised and optimised implementation of G4GenericTrap shape.
0020   o Improved/optimised implementation of GetCubicVolume() in Boolean solids.
0021   o Added new classes for automatic field construction from parameters.
0022   o Optimised step limitation algorithm in G4UrbanMscModel.
0023   o G4eeToTwoGammaModel: fixed precision lost in sampling of final state
0024     for very high energies.
0025   o New class G4EmDataRegistry, to keep EM data tables.
0026   o New G4OrePowellAtRestModel class, Orel & Powell orto positronium decay
0027     model AtRest and G4SimpleoPsAtRestModel, a simple orto para positronium
0028     chooser.
0029   o New classes for multiple-ionisation in Geant4-DNA.
0030   o In G4EmDNAPhysics, define default maximum kinetic energy 600 MeV instead
0031     of 300 MeV in order to have standard ionisation and multiple scattering
0032     always defined for DNA physics configurations
0033   o Added three new variants of 'Shielding' physics list in G4PhysListFactory.
0034   o Introduced neutron treatment of the Unresolved Resonance Region (URR)
0035     via Probability Table (PT); relevant for precise simulations of nuclear
0036     reactor criticality and shielding applications.
0037   o First implementation of NuDEX nuclear de-excitation hadronic model.
0038   o Updates to cross-section classes to rationalise initialisation of data
0039     in MT mode.
0040   o Simplified computation of cross-section maximum for discrete processes
0041     in G4EmUtility.
0042   o New class G4XTRGaussRadModel, providing improved account on the origin
0043     of XTR photons.
0044   o Restored OpenGL as default backend for Qt6. Fixed open issues when using
0045     Qt6 with supported drivers.
0046   o Improved identification of scene tree models in visualisation.
0047     Now suppressing the scene tree if the number of touchables exceeds
0048     10000 (equivalent to about 20 MB)
0049   o Removed configuration/setup of no longer supported TiMemory profiling.
0050   o Build option with VecGeom requires VecGeom-1.2.8 or higher.
0051   o Requires CLHEP-2.4.7.1 for external CLHEP installation.
0052   o New versions of datasets: G4PARTICLEXS-4.1, G4EMLOW-8.6.
0053   o New optional datasets: G4NUDEXLIB-1.0, G4URRPT-1.0.
0054 
0055  ----------------------------------------------------------------------------
0056 
0057                              Technical Notes
0058                              --------------- 
0059 
0060   o Tested platforms:
0061     + Linux, gcc-11.3.1.
0062       Tested on 64 bit architectures (Intel or AMD) with Alma Linux 9
0063       (based on RedHat Linux Enterprise 9). Versions of Geant4 have also
0064       been compiled successfully on other Linux distributions, Ubuntu,
0065       Debian, Suse or other RedHat systems.
0066     + MacOS 14.5, Apple LLVM/clang-15 (Intel or Apple Silicon).
0067     + Windows/11 with Visual C++ 14.40 (Visual Studio 2022)
0068 
0069   o More verified configurations:
0070     + Linux, with gcc-9.4/10.3/11.3/12.1/13.2/14.1, clang-14/15/16/17.
0071     + Linux, with Intel-icx 2024.1.
0072     + MacOS 12.7/13.6, with Apple LLVM/clang-14/15.
0073     + Windows/10 with Visual C++ 14.36 (Visual Studio 2022)
0074 
0075   o External dependencies
0076     + CLHEP-2.4.7.1, suggested for external installation of the CLHEP library.
0077     + VecGeom-1.2.8 or later, for optional use of VecGeom geometry primitives.
0078     + PTL-2.3.3, for external installation of the PTL tasking library.
0079 
0080   o New datasets:
0081     + G4PARTICLEXS-4.1, G4EMLOW-8.6, G4NUDEXLIB-1.0, G4URRPT-1.0.
0082 
0083  Please refer to the Geant4 User Documentation:
0084    https://cern.ch/geant4/support/user_documentation
0085  for further information about using Geant4.
0086 
0087  ----------------------------------------------------------------------------
0088 
0089 List of features and fixes included in this Beta release since 11.2.p02:
0090 
0091   o Configuration:
0092     -------------
0093     + CMake:
0094       o Added compiler flags for GCC only to help detect/debug LTO-related
0095         problems when building with CMAKE_INTERPROCEDURAL_OPTIMIZATION.
0096       o Provide CMake function to assist in linking unit tests to final
0097         libraries given required source code modules.
0098       o Removed configuration/setup of no longer supported TiMemory profiling.
0099       o Introduced new "FullRelWithDebInfo" build mode, "-O3 -g", so maximum
0100         optimisation with debugging symbols.
0101       o Simplifications to Geant4Config.cmake: removed obsolete and never run
0102         "whole archive" linking of G4physics_lists; replaced TOOLSSG
0103         visualisation driver variables that are just synonyms for more
0104         fundamental config options (e.g. GEANT4_USE_QT) with the underlying
0105         variable.
0106       o Added optional install of new NuDEXLib and URRPT datasets.
0107       o Updated to datasets: G4PARTICLEXS-4.1, G4EMLOW-8.6, G4NUDEXLIB-1.0,
0108         G4URRPT-1.0.
0109 
0110   o Event:
0111     -----
0112     + Initial implementation of creation and processing of sub-events.
0113     + Added protection in G4VPrimaryGenerator::SetParticlePosition() to avoid
0114       and warn for attempts to place vertex position outside or on surface of
0115       the world volume.
0116     + G4PrimaryTransformer: adding sanity check of 4-momentum.
0117     + Added UI command to switch on/off the vertex position check (default: on).
0118     + Updated "/gun/position" UI command guidance in G4ParticleGunMessenger.
0119       Removed unnecessary setting of gun position to (0, 0, 0).
0120     + Removed use of no longer supported TiMemory.
0121 
0122   o Geometry:
0123     --------
0124     + divisions:
0125       o Applied trivial clang-tidy fixes to classes, i.e. use of default
0126         constructor/destructor.
0127     + magneticfield:
0128       o Added new classes for automatic field construction from parameters:
0129         G4FieldBuilder[Messenger], G4FieldParameters[Messenger] and
0130         G4FieldSetup.
0131       o Applied trivial clang-tidy fixes to classes, i.e. use of default
0132         constructor/destructor, auto and using statements.
0133       o Minor cleanup in QSS classes.
0134     + management:
0135       o Added new capability to run voxel optimisation in threads in MT mode.
0136         Parallelises only over volumes. The user can call the method
0137         RequestParallelOptimisation(optimise, verbose) from G4GeometryManager
0138         to turn it on/off. Set 'verbose=true' to obtain statistics on the
0139         volumes with biggest contribution to memory size and CPU time for
0140         voxelisation.
0141         New method BuildOptimisationsParallel() can be called by
0142         G4WorkerRunManager to initialise. New method ReportVoxelInfo() to
0143         write out for verification. Checked with simple and complex/large
0144         geometries.
0145       o Added new methods GetNumOfConstituents() and IsFaceted() to G4VSolid.
0146       o Applied trivial clang-tidy fixes to classes, i.e. use of default
0147         constructor/destructor.
0148     + navigation:
0149       o G4TransportationManager now notifies G4FieldManager about the global
0150         field via its new function SetGlobalFieldManager(). This provides
0151         the ability to access/revise the global field manager directly
0152         from G4FieldManager without dependency on the navigation module.
0153       o Applied trivial clang-tidy fixes to classes, i.e. use of 'override' and
0154         removal of 'virtual' keywords; use of default constructor/destructor.
0155     + solids/Boolean:
0156       o In G4BooleanSolid, propagate parameter to all constituents in
0157         SetCubVolStatistics() and SetCubVolEpsilon().
0158       o In G4UnionSolid and G4SubtractionSolid, limit calculations with
0159         construction of temporary G4IntersectionSolid by 10 constituents for
0160         GetCubicVolume().
0161       o Implemented new methods GetNumOfConstituents() and IsFaceted().
0162       o Added extra method to process solid and not perform external operations
0163         via G4Polyhedron. Successive Boolean mesh operations with floating point
0164         are invariably going to be unstable. Providing a method which takes a
0165         solid and returns the G4Polyhedron allows the external processor to use
0166         significantly more precise types and strategies to avoid ambiguity and
0167         then finally convert to double at the very last step.
0168     + solids/CSG:
0169       o Implemented new methods GetNumOfConstituents() and IsFaceted().
0170       o Applied trivial clang-tidy fixes to G4CSGSolid, i.e. use of 'override'.
0171     + solids/specific:
0172       o Completely revised and optimised implementation of G4GenericTrap.
0173         Addressing problem report #2547.
0174       o Implemented new methods GetNumOfConstituents() and IsFaceted().
0175       o Applied trivial clang-tidy fixes to classes, i.e. use of 'override'
0176         and 'default' keywords.
0177     + volumes:
0178       o Applied trivial clang-tidy fixes to G4AssemblyStore, i.e. removed
0179         unnecessary 'if' check for null pointer in Clean() method.
0180 
0181   o Global:
0182     ------
0183     + G4StateManager, G4VStateDependent: added notifying methods when an event
0184       or a run is deleted to avoid a state-dependent class from accessing to an
0185       obsolete event/run object.
0186     + G4PhysicsModelCatalog: added ID for the NuDEX nuclear de-excitation model;
0187       removed unnecessary ID (24110) for internal conversion.
0188     + G4PhysicsTable: avoid crash in printout for the case when a vector in the
0189       table is not yet created (useful for debugging).
0190     + Removed use of no longer supported TiMemory.
0191     + Changed date for release 11.3-beta.
0192 
0193   o Graphics Representations:
0194     ------------------------
0195     + G4SceneTreeItem: added G4String field 'FurtherInfo' and access functions.
0196     + G4Colour: clarify usage; added GetColor (US spelling); added G4Exception.
0197     + G4VVisManager: added EventReadyForVis(), used by G4SubEvtRunManager.
0198 
0199   o Intercoms:
0200     ---------
0201     + Unify range checking implementation in G4UIparameter/command; pure
0202       refactor to remove code duplication and complexity of user-facing
0203       classes.
0204     + Removed use of no longer supported TiMemory.
0205 
0206   o Interfaces:
0207     ----------
0208     + Improved identification of scene tree models: use full description,
0209       including embedded blanks.
0210     + In G4UIQt, now all models are treated alike. Load tooltip with "further
0211       information", if any; inform user if scene tree is suppressed because
0212       of too many touchable. Fixed crash and bad rendering behaviour when
0213       using QOpenGLWidget with Qt6.
0214     + Removed use of no longer supported TiMemory.
0215 
0216   o Physics Lists:
0217     -------------
0218     + Constructors:
0219       o electromagnetic:
0220         - G4EmStandardPhysicsWVI: return back ATIMA model for ionisation and
0221           fluctuations of ions in order to make comparisons with other models.
0222         - G4EmStandardPhysics_option3: return back step limit type to
0223           'fUseDistanceToBoundary' and the default RangeFactor from 0.03
0224           to 0.04. This will allow to restore more accurate distributions for
0225           several medical benchmark tests.
0226         - G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
0227           G4EmLivermorePhysics, G4EmLivermorePhysics, G4EmDNAPhysics: use
0228           fAllisonPositronium type of model for sampling of positron
0229           annihilation at rest (as in release 11.2).
0230         - G4EmStandardPhysics_option4: use alternative model for positron
0231           annihilation on fly with 3-gamma annihilation channel enabled.
0232         - G4GammaGeneralProcess: updated according to change in EM data tables.
0233         - G4EmDNAPhysics: define default maximum kinetic energy 600 MeV instead
0234           of 300 MeV in order to have standard ionisation and multiple
0235           scattering always defined for DNA physics configurations.
0236           This allows to avoid situations when low-energy ions pass through
0237           DNA regions without interaction.
0238         - G4EmDNAPhysics, G4EmDNAPhysicsActivator, G4EmDNAPhysics_option2,
0239           G4EmDNAPhysics_option4, G4EmDNAPhysics_option6 and
0240           G4EmDNAPhysics_option8: changed upper limit for DNA physics of
0241           Helium ions from 300 MeV to 400 MeV.
0242         - G4EmDNABuilder: added nuclear stopping process for G4GenericIon
0243           below 1 MeV/u.
0244         - Use EmParameters to control chemistry models in
0245           G4EmDNAChemistry_option3.
0246       o factory:
0247         - Minor code cleanup in G4PhysicsConstructorRegistry source.
0248       o constructors/hadron_inelastic
0249         - G4HadronPhysicsQGSP_BERT_HP: use alternative NUDEX model of
0250           gamma de-excitation.
0251 
0252   o Electromagnetic Processes:
0253     -------------------------
0254     + DNA:
0255       o Optimised IRT-syn at 1 ps for high LET applications.
0256       o G4DNARuddIonisationExtendedModel: updated model to not use autolock but
0257         rather upload data in the class constructor once in all threads; use
0258         effective charge approach for all ions with Z > 2 (in order to have
0259         more correct computation of stopping power and ranges); precompute
0260         internal variables before sampling; optimised algorithm of sampling
0261         (at 10 MeV it becomes ~10 times faster); updated initialisation to
0262         allow be called from the general model; removed unused parameters.
0263       o G4GeneralIonIonisationModel, G4DNAIonChargeIncreaseModel and
0264         G4DNAIonChargeDecreaseModel: new classes implementing general models
0265         for ions heavier than Helium.
0266       o G4DNAChargeDecrease, G4DNAChargeIncrease: removed obsolete definition
0267         of min/max model energy inside processes class; some code clean-up.
0268       o G4DNAElectronHoleRecombination: changed branch condition in
0269         FindReactant() to select only H2O+ ions involved in electron-hole
0270         recombination.
0271       o G4DNAWaterDissociationDisplacer: added dissociative decay channels for
0272         multiple-ionised water ions.
0273       o G4DNAMultipleIonisationManager: new class focusing on generation of
0274         multiple-ionised water ions and calculation of scale parameter to
0275         compute cross-section of each multiple-ionisation process.
0276       o G4DNADoubleIonisation, G4DNATripleIonisation and
0277         G4DNAQuadrupleIonisation: new process classes for multiple-ionisation.
0278       o G4DNADoubleIonisationModel, G4DNATripleIonisationModel and
0279         G4DNAQuadrupleIonisationModel: new model classes related to
0280         multiple-ionisation.
0281       o G4DNAELSEPAElasticModel: modified to be compatible with density
0282         scaling.
0283       o Debug invalid KDTree node.
0284       o Deleted DelayLists at the end of chemistry stage.
0285       o Delete unused enum, as now adopting EmParameters to control chemistry
0286         models in G4EmDNAChemistry_option3.
0287       o Cleaned G4Scheduler and cleanup in CMake scripts.
0288     + Low Energy:
0289       o G4MicroElecLOPhononModel: minor code cleanup.
0290     + Standard:
0291       o New G4OrePowellAtRestModel class, Orel & Powell orto positronium decay
0292         model AtRest and G4SimpleoPsAtRestModel, simple orto para positronium
0293         chooser.
0294       o G4IonICRU73Data: fix for the case when target material has an element
0295         with Z>92; improved debug printouts. In the Lindhard-Sorensen model to
0296         compute dEdx the first try is to take it from ICRU73 or ICRU90 data,
0297         if this class returns zero, then dEdx is computed from G4GenericIon 
0298         and effective charge. Addressing problem report #2586.
0299       o G4eeToTwoGammaModel: fixed precision lost in sampling of final state
0300         for the very high energy (ATLAS report).
0301       o G4UrbanMscModel: optimised DistanceToBoundary step limitation
0302         algorithm currently used only in Opt3 EM physics.
0303       o G4SimplePositronAtRestModel, G4AllisonAtRestModel: new classes to
0304         sample positron annihilation.
0305       o G4eplusTo2GammaOKVIModel: removed sampling at rest.
0306       o G4eplusAnnihilation: added selection of AtRest model; implemented
0307         ApplyCuts() for AtRest; implemented choice of positron annihilation
0308         model at rest. Use more const class members; changed model ID
0309         definition for produced tracks.
0310     + Utils:
0311       o G4EmParameters: increased low-limit on 'maxKinEnergy' parameter from
0312         10 MeV to 600 MeV in order to have standard ionisation and multiple
0313         scattering always defined for DNA physics configurations. 
0314         Added protection to fix segmentation fault when data is unavailable.
0315       o G4EmParameters, G4EmParametersMessenger: added enumerator and a new
0316         flag G4PositronAtRestModel, which allows selection and configuration of
0317         the model of positron annihilation at rest. Added orto positronium
0318         fraction flag.
0319       o G4LowEnergyEmProcessSubType: added 'fLowEnergyTripleIonisation' and
0320         'fLowEnergyQuadrupleIonisation' for implementing multiple-ionisation
0321         processes in Geant4-DNA.
0322       o G4VPositronAtRestModel: new virtual interface.
0323       o G4EmDataRegistry: new class to keep EM data tables.
0324       o G4VEmProcess: extended info printout for e+ annihilation at rest.
0325       o G4VEmProcess, G4VEnergyLossProcess: improved identification of model ID
0326         for atomic de-excitation (fluorescence, Auger e-, PIXE).
0327       o G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger: added
0328         DNA chemistry time step model.
0329       o G4EmDataHandler: extended functionality.
0330       o G4LossTableManager: identify master thread using std method.
0331       o G4LossTableBUilder: more accurate use of static members and methods.
0332       o G4VEmModel, G4VEmProcess, G4VEnergyLossProcess, G4EmTableUtil: updated
0333         according to change in the data.
0334       o G4VMscModel: moved initialisation of tables for model to G4EmTableUtil.
0335       o G4EmBiasingManager: minor cosmetic change.
0336     + Xrays:
0337       o G4XTRGaussRadModel: new class providing improved account on the origin
0338         of XTR photons.
0339 
0340   o Hadronic Processes:
0341     ------------------
0342     + cross_sections
0343       o G4NeutronCapture: lowest energy limit is set to 10^-5 eV; below this
0344         energy no computations are done, to avoid numerical problems.
0345         Improved comments to the code.
0346       o G4NeutronInelastic: implemented 1/v cross-section dependence below
0347         low-energy limit of the cross-section vector, if the cross-section
0348         does not start from null.
0349       o Moved G4IsotopeList header to 'util' module.
0350       o G4HadronXSDataTable: make class a singleton for registration and
0351         destruction of static objects with cross-section data; data are deleted
0352         only at the end of run.
0353       o G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4BGGPionElasticXS,
0354         G4BGGPionInelasticXS, G4ComponentBarNucleonNucleusXsc,
0355         G4HadronNucleonXsc, G4UPiNuclearCrossSection and
0356         G4CrossSectionDataSetRegistry: code clean-up; removed 'isMaster' checks,
0357         removed mutex locks, removed unused variables and applied code
0358         formatting.
0359       o G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4NeutronInelasticXS,
0360         G4ComponentBarNucleonNucleusXsc, G4ComponentGGNuclNuclXsc, G4PiData and
0361         G4NucleonNuclearCrossSection: general clean-up of proton and neutron
0362         cross-sections; removed unused methods, removed not needed mutex locks,
0363         improved printouts, cross-sections outside data tables are equal to
0364         low or high edge of the table (not zero).
0365       o In G4NeutronInelasticXS::SelectIsotope(), fixed compilation warnings
0366         for implicit type conversions detected with macOS/XCode.
0367       o G4ComponentGGNuclNuclXsc: removed debug printout, added check of
0368         G4VERBOSE.
0369       o G4BGGPionElasticXS, G4BGGNucleonInelasticXS, G4BGGNucleonElasticXS:
0370         added check of G4VERBOSE compilation flag.
0371     + management
0372       o G4HadronicProcessStore: fixed handling of rare processes, printout, 
0373         cross-section maximum search, and deletion at the end of run.
0374     + models/abla
0375       o Added array extension for super-heavy nuclei.
0376       o Added the dissipation parameter for heavy hypernuclei.
0377       o General code cleanup; removed unused data structures; consistently use
0378         G4 types; added pragma once for compilation.
0379     + models/cascade
0380       o Use G4UniformRand() instead of G4InuclSpecialFunctions::inuclRndm()
0381         wrapper (now removed from class G4InuclSpecialFunctions) in the code.
0382       o In G4CascadeFinalStateAlgorithm::GenerateCosTheta(), for 4-body and
0383         higher-body generation of cosTheta, use direct sampling of
0384         exp(1-cosTheta) instead of previously used rejection method on
0385         sinTheta*exp(-sinTheta). This removes the reflection about cosTheta=0
0386         that caused a symmetric double bump in the Feynman-x distribution.
0387     + models/de_excitation
0388       o G4CameronGilbertPairingCorrections, G4CameronGilbertShellCorrections,
0389         G4NuclearLevelData, G4PairingCorrection: simplified computation of
0390         corrections; computations are now done in one place only, not spread
0391         among classes.
0392       o G4EvaporationChannel, G4EvaporationProbability: fixed usage of pairing
0393         corrections; agreement with test data is improved.
0394       o G4EvaporationChannel: fixed computation of minimal kinetic energy of a
0395         fragment for odd-even residual nucleus. 
0396       o G4DeexPrecoParameters: moved definition of int and bool parameters to
0397         source; improved comments; added default width of nuclear level needed
0398         for selection of final excitation in a decay of an excited state.
0399       o G4PhotonEvaporation: use abs() in all computations for 'JP', as it can
0400         be negative due to parity. Addressing problem report #2587.
0401       o G4VEmissionProbability: renamed local variable to avoid possible
0402         shadowing. Use the new width parameter.
0403       o G4ExcitationHandler: improved debug printout.
0404       o G4ExcitationHandle, G4NeutronRadCapture: corrected model ID for IC
0405         electrons.
0406       o G4GEMChannelVI, G4GEMProbabilityVI: updated interfaces and simplified
0407         algorithm of computation of probability.
0408       o G4VCoulombBarrier, G4CoulombBarrier, G4GEMCoulombBarrier,
0409         G4FermiBreakUpUtil: code cleanup; removed unused headers and variables.
0410     + models/fission
0411       o G4FissLib: fixed compilation warning on gcc when LTO settings are
0412         enabled.
0413     + models/lepto_nuclear
0414       o Fixed Coverity warning on unused variable in neutrino models.
0415     + models/nudex
0416       o New alternative and more sophisticated nuclear de-excitation model
0417         (NuDEX) as far as the emission of gammas and internal conversion
0418         electrons are concerned. The model relies on the dataset
0419         G4NUDEXLIB-1.0, which is pointed by the environmental variable
0420         G4NUDEXLIBDATA. When NuDEX is not applicable - e.g. because the
0421         corresponding nucleus is not present in the dataset - the
0422         G4PhotonEvaporation class is utilised instead. Currently, the model
0423         will be used only for the neutron capture process, when ParticleHP is
0424         utilised; in the future it can be used more generally as one of the
0425         possible "evaporation" models. This, at the beginning, will only be
0426         possible for the physics list QGSP_BERT_HP.
0427     + models/particle_hp
0428       o Introduced neutron treatment of the Unresolved Resonance Region (URR)
0429         via Probability Table (PT); relevant for precise simulations of nuclear
0430         reactor criticality and shielding applications.
0431         Reading probability table files in compressed format from the new
0432         G4URRPT-1.0 dataset pointed by the G4URRPTDATA environment variable.
0433     + models/parton_string
0434       o G4ExcitedStringDecay: fixed minor memory leak suggested by Coverity.
0435     + models/radioactive_decay
0436       o Renamed G4RadioactiveDecay to G4VRadioactiveDecay and G4Radioactivation
0437         to G4RadioactiveDecay. The header for G4Radioactivation is preserved to
0438         provide backwards compatibility.
0439     + util
0440       o G4HadronicParameters: introduced Get/Set methods for flag controlling
0441         the NuDEX gamma de-excitation module.
0442       o Moved G4IsotopeList header with static data in this module, from
0443         'cross_sections'.
0444 
0445   o Run:
0446     ---
0447     + First full implementation of of sub-event parallelism, adding the
0448       creation and processing of sub-events in workers, plus the merging
0449       of results back into events on the main thread. Some additional work
0450       may be needed to correctly retain a limited sample of events.
0451       No impact of the core changes needed to support sub event parallelism in
0452       any other mode (Seq, MT, Tasking) other than some counting issues with
0453       retained events.
0454     + Extended diagnostics and output from material scanner.
0455     + Added call in G4WorkerRunManager to use parallel initialisation of
0456       voxels.
0457     + In G4RunManager::ReinitializeGeometry(), added call to new function
0458       G4FieldBuilder::Reinitialize().
0459     + G4PhysicsListHelper: added 'DNATripleIoni' and 'DNAQuadrupleIoni'
0460       for the implementation of multiple-ionisation processes in Geant4-DNA.
0461     + G4RunManager: added SetDefaultClassification() methods to enable setting
0462       the classification for tracks newly arriving to a stack.
0463     + Removed use of no longer supported TiMemory.
0464     + Fixed compilation warnings for implicit type conversions on macOS/XCode
0465       on G4MSSteppingAction. Use consistently G4 types.
0466 
0467   o Track & Tracking:
0468     ----------------
0469     + Added optional copy of touchable when copy constructing a G4Track, to
0470       support sub-event parallelism.
0471     + Some code cleanup, providing more easy reading of class headers; expected
0472       tiny CPU speedup; identical results.
0473     + G4Track, G4Step, G4StepPoint: added keyword "inline" to all inline method
0474       declarations; improved comments.
0475     + G4Step: move methods to compute delta energy and momentum to inline
0476       removing G4Exception but improving comments to these methods; removed
0477       G4ThreadLocal variable.
0478     + G4VParticleChange: improved layout of variables.
0479     + G4ParticleChangeForGamma, G4ParticleChangeForLoss: reserve vector of
0480       secondaries.
0481     + Removed use of no longer supported TiMemory.
0482 
0483   o Visualization:
0484     -------------
0485     + management:
0486       o Rationalisation, simplification and code tidying.
0487       o Updated visualisation manager to correctly merge/handle asynchronous
0488         event merging (also resolving long standing issues with post
0489         processing). Implemented 'EventReadyForVis', used by G4SubEvtRunManager;
0490         restructured EndOfEvent functions to accommodate this and avoid code
0491         duplication; this involved introducing: "Relinquishable",
0492         "EndOfEventKernel" and "EndOfEventCleanup".
0493       o Corrected the use of "KeepForPostProcessing/PostProcessingFinished".
0494       o G4VisExecutive: restored OpenGL as default backend for Qt6.
0495       o Improved identification of scene tree models: use full description,
0496         including embedded blanks.
0497       o G4VViewer: check validity of arguments in SceneTreeScene constructor.
0498         Pre-calculate quantities in SceneTreeScene constructor; pre-calculate
0499         the number of touchable; if more than 10000, suppress them in the
0500         scene tree and add some information about it to the model item so that
0501         it pops up as a tooltip in the GUI.
0502         More logical order of some functions.
0503       o G4VSceneHandler: specify the G4PhysicalVolumeModel for construction
0504         of scene tree. Simplified loop over models, added some printing.
0505         Print number of touchable by depth (if verbosity >= confirmations).
0506         Print problematic volumes (if verbosity >= confirmations).
0507       o Limit the number of scene tree items. For complex geometries, the scene
0508         tree can take up a lot of space, and, anyway, not easy to navigate.
0509         Now suppressing the scene tree if the number of touchable exceeds
0510         10000 (equivalent to about 20 MB).
0511       o G4VisCommandsViewer: use GetSceneTree() rather than AccessSceneTree()
0512         when not necessary.
0513       o In G4VisExecutive, trap use of run-time visualisation driver choice,
0514         and (if using run-time choice) insist the UI session is instantiated
0515         *before* G4VisExecutive.
0516         Keep argc, argv and user-specified system, if specified, for delayed
0517         use. Moved informational (G4warn) from G4VisManager.
0518       o Delay determination of the run-time-chosen default driver.
0519         The run-time-chosen default driver is not actually used until the first
0520         use of "/vis/open" or "/vis/sceneHandler/create" without driver
0521         parameter, so we delay to this point. This catches the situation when
0522         the user instantiates the UI session *after* instantiating the vis
0523         manager.
0524       o G4VisManager: make GetDefaultGraphicsSystemName() virtual and non const.
0525         The code for choosing a default driver *has to be* in user space, i.e.,
0526         in G4VisExecutive, so that it has access to use flags.
0527         Modified the informational (G4warn) in PrintAvailableGraphicsSystems()
0528         to give advice and point to further information to be given after
0529         "/vis/open".
0530       o G4VisCommandsTouchable: "/vis/touchable/dump" and "findPath" do not
0531         need a scene handler nor a viewer.
0532         Moved them to the beginning of G4VisCommandsTouchable::SetNewValue(),
0533         before the check on scene handler and viewer. This allows the user to
0534         "/vis/touchable/dump" even if he/she has not yet opened a viewer.
0535     + modeling:
0536       o G4PhysicalVolumeModel: added data field 'TotalTouchables' and access
0537         functions.
0538       o G4TextModel: use single quote (') to delineate actual text in
0539         description.
0540     + OpenGL:
0541       o In G4OpenGLQtViewer, fixed MT issue of possible dead-lock in case
0542         multiple OGLI or OGLS viewers are enabled and when issuing
0543         "/run/beamOn". Restored picking feature for Qt6 and implemented 2D
0544         draw text in DrawText().
0545       o In G4OpenGLImmediateQtViewer and G4OpenGLStoredQtViewer, removed usage
0546         of paintEvent() for Qt6, paintGL() should be sufficient.
0547         For updateQWidget, use update() to trigger a repaint.
0548         In Initialise() check validity of widget type, to avoid observed crash
0549         at startup on macOS; do the same on the ClearView(), SetView().
0550       o Make headers of implementation detail classes private.
0551     + OpenInventor:
0552       o G4OpenInventorQtViewer: in Qt6, reparent G4OpenInventorQtExaminerViewer
0553         in its own QWidget, allowing to restore correct behaviour when opening
0554         multiple viewers. Properly handle viewer destruction.
0555         Have "addInTab" done in Initialise() method. Avoid to do an examiner
0556         viewer "move/resize" in Initialise() method, as causing strange widget
0557         rendering behaviour.
0558       o In G4OpenInventorQtExaminerViewer, allow with Qt6 to map a dialog in
0559         case being closed with the mouse. Have the title window reflecting the
0560         name of the viewer. In MT mode, fixed behaviour when issuing multiple
0561         "/run/beamOn" commands within multiple viewers.
0562       o Make headers of implementation detail classes private.
0563     + Qt3D
0564       o Added missing call to fpPhysicalVolumeObjects.clear() in
0565         G4Qt3DSceneHandler::EstablishG4Qt3DQEntities(). Fixes cases of
0566         crash when opening multiple viewers with "/vis/open Qt3D".
0567       o In G4Qt3DViewer destructor, call setRootEntity(nullptr) to disconnect
0568         the G4Qt3DSceneHandler::fpQt3DScene from a viewer.
0569       o In G4Qt3DSceneHandler destructor, clear the scene tree.
0570     + ToolsGS:
0571       o Replace TOOLSSG vis driver variables that are just synonyms for more
0572         fundamental config options (e.g. GEANT4_USE_QT) with the underlying
0573         variable.
0574       o Make Freetype a private dependency in CMake script.
0575     + Vtk:
0576       o In G4VtxQtViewer, fixed MT issue of possible dead-lock in case multiple
0577         Vtk viewers are enabled and when issuing "/run/beamOn".
0578 
0579   o Datasets:
0580     ---------
0581     + G4PARTICLEXS-4.1:
0582       o Updated data for all isotopes, for neutron, proton and light ion
0583         cross-sections. Fixed cross-sections for Argon, Promethium, Astatine,
0584         Radon, Francium. Fixed low-energy cross-section; low-energy limits of
0585         cross-sections per target are verified and updated based on neutron
0586         data.
0587     + G4EMLOW-8.6:
0588       o Added new data for multi-ionisation DNA processes.
0589     + G4NUDEXLIB-1.0:
0590       o New [optional] dataset required to enable the NuDEX hadronic model
0591         (E. Mendoza et al., NIMA 1047, 167894 (2023) https://doi.org/10.1016/
0592         j.nima.2022.167894).
0593         Including: data file with general parameters used by NuDEX; data tables
0594         to get internal conversion factors, obtained from BrICC; nuclear level
0595         schemes and densities downloaded from the RIPL-3 data library; files
0596         containing primary capture gamma rays, obtained from ENSDF; photon
0597         strength function parameters, obtained from RIPL-3 and from the IAEA
0598         Photon Strength Function Database; folder to change the default
0599         parameters for the decay of specific nuclei.
0600     + G4URRPT-1.0:
0601       o New [optional] Probability Table dataset, used for the treatment of
0602         low-energy neutrons in the Unresolved Resonance Region (URR), at
0603         temperature of 293.15 K, processed with both NJOY and CALENDF.
0604         As described in: M. Zmeskal et al., Comp.Phys. arXiv:2404.16389.
0605 
0606   o Examples:
0607     --------
0608     + Updated reference outputs, macros, READMEs and scripts.
0609     + Updated URL for schema validation in all GDML files to valid short
0610       address.
0611     + Applied clang-format to basic and extended examples; addressed coding
0612       style warnings.
0613     + advanced/dsbandrepair
0614       o Use EmParameters to control chemistry time step model.
0615     + advanced/eFLASH_radiotherapy
0616       o Added FlashPhysicsListMessenger class to allow changing the physics
0617         list by macro commands (opt3, opt4, Penelope and Livermore).
0618     + basic/B3
0619       o Looping over G4THitsMap via range for loop instead of iterators.
0620     + extended/electromagnetic/TestEm0
0621       o DetectorConstruction: introduced Xenon gas.
0622       o Added new macro xenonGas.mac.
0623     + extended/electromagnetic/TestEm4
0624       o PhysicsLists: fixed annoying warnings on decay table;
0625         removed obsolete methods.
0626       o Run: code cleanup; removed Tabs.
0627     + extended/electromagnetic/TestEm5
0628       o TrackingAction: added protection against wrong argument of std::acos(),
0629         rarely happening for very high energy projectile particles.
0630       o Removed macro subcut.mac.
0631     + extended/electromagnetic/TestEm7
0632       o RunAction: added protection to histogram binning for very low step
0633         limit.
0634     + extended/electromagnetic/TestEm12
0635       o Added comments to dna.mac input macro.
0636     + extended/electromagnetic/TestEm15
0637       o SteppingAction: code cleanup; removed Tabs.
0638     + extended/eventgenerator/exgps
0639       o Updated build script for CTests definitions.
0640     + extended/eventgenerator/pythia/py8decayer
0641       o Updated to Pythia8.3.10 for testing.
0642       o Added Py8DecayerEngine to override Pythia8 native engine with the
0643         default one from Geant4 (CLHEP), to properly run in the MT/Tasking mode.
0644       o Updated main() to use MT mode; some code cleanup.
0645     + extended/exoticphysics/phonon
0646       o Updated build script for CTests definitions.
0647     + extended/field/field01
0648     + extended/field/field02
0649     + extended/field/field03
0650       o Replaced FieldSetup and FieldMessenger classes with usage of new
0651         field builder class G4FieldBuilder.
0652       o Moved setting field value (ThreeVector) from FieldSetup (now removed)
0653         in DetectorConstruction and its messenger and removed setting of
0654         Z-value only.
0655     + extended/hadronic/Hadr01
0656       o Enable usage of the NUDEX library for QGSP_BERT_HP physics in main().
0657     + extended/hadronic/Hadr03
0658       o PrimaryGeneratorAction: added tiny shift of position of the particle
0659         gun from the world volume boundary; fixing a warning now detecting this.
0660       o PhysicsList: removed G4RadioactiveDecayPhysics.
0661       o Updated fusion.mac input macro.
0662     + extended/hadronic/Hadr05
0663       o PrimaryGeneratorAction: added tiny shift of position of the particle
0664         gun from the world volume boundary; fixing a warning now detecting this.
0665       o RadioactiveDecayPhysics: added Triton.
0666       o Applied coding rules.
0667     + extended/hadronic/Hadr07
0668       o RadioactiveDecayPhysics: added Triton.
0669       o Applied coding rules.
0670     + extended/hadronic/NeutronSource
0671       o PhysicsList: added G4HadronElasticPhysicsXS.
0672       o RadioactiveDecayPhysics: added Triton.
0673       o GammaNuclearPhysics, GammaNuclearPhysicsLEND: applied coding rules.
0674     + extended/medical/dna/chem6
0675       o Use EmParameters to control chemistry models.
0676     + extended/medical/dna/dnadamage1
0677       o Fixed compilation errors on macOS/clang with C++23 enabled.
0678     + extended/medical/dna/dnaphysics
0679       o PhysicsList: switched to DNA physics constructors i/o model activator.
0680       o Added new n-tuple to collect track information.
0681       o Added plotDeexcitation.C analysis and deexcitation.in macro.
0682       o Updated comments in headers.
0683     + extended/medical/dna/mfp
0684       o Code cleanup.
0685     + extended/medical/dna/microdosimetry
0686       o Removed original content of the example; replaced by dnaphysics example.
0687       o Code simplification to demonstrate the usage of G4DNAPhysicsActivator.
0688     + extended/medical/dna/microprox
0689     + extended/medical/dna/microyz
0690       o Code cleanup.
0691     + extended/medical/dna/moleculardna
0692       o Updated /dnageom/interactionDirectRange to 2.0 angstrom.
0693     + extended/medical/dna/range
0694     + extended/medical/dna/slowing
0695       o Code cleanup.
0696     + extended/medical/dna/spower
0697       o SteppingAction: extended use for ions heavier than helium.
0698       o In spower.in input macro, added extra commands to show how to shoot
0699         ions heavier than helium.
0700       o Code cleanup.
0701     + extended/medical/dna/svalue
0702     + extended/medical/dna/wvalue
0703       o Code cleanup.
0704     + extended/medical/dna/UHDR
0705       o Updated bounce off condition based on:
0706         Karamitros M. et al.2020,arXiv:2006.14225 (2020).
0707       o Implemented PBC based on https://github.com/amentumspace/g4pbc
0708         to calculate microdosimetry
0709       o Added a maximum dose (2 times of cut-off dose) to abort the event.
0710       o Fixed compilation errors on macOS/clang with C++23 enabled, for
0711         incomplete types of smart-pointers through defaulted destructors.
0712     + extended/medical/fanoCavity
0713       o Make PhysicsLists of the example coherent with physics_list library.
0714         Fixed annoying warnings on decay table.
0715     + extended/medical/fanoCavity2
0716       o Make PhysicsLists of the example coherent with physics_list library.
0717     + extended/parallel
0718       o Removed obsolete TopC example.
0719     + extended/parallel/MPI
0720       o Updated build script for CTests definitions.
0721     + extended/parallel/ThreadsafeScorers
0722       o Removed use of no longer supported TiMemory.
0723     + extended/radioactivedecay/Activation
0724       o PhysicsList: added G4HadronElasticPhysicsXS.
0725       o RadioactiveDecayPhysics: added Triton.
0726       o GammaNuclearPhysics, GammaNuclearPhysicsLEND: applied coding rules.
0727     + extended/radioactivedecay/rdecay01
0728       o PhysicsList: set 'MeanLifeThreshold' to 1 nanosecond.
0729       o Added time windowed biasing to rdecay01.in macro.
0730       o In timeWindowBiased.mac and rdecay01.in, removed
0731         "/process/had/rdm/BRbias".
0732     + extended/runAndEvent/RE07
0733       o Fixed compilation warnings for potentially initialised local variable
0734         in EmStandardPhysicsTrackingManager::PostStepDoIt().
0735     + extended/visualization/standalone
0736       o A smarter way of getting extent of geometry that ignores invisible
0737         volumes. Thus, if the world is marked invisible, it ignores it.
0738       o In DrawGeometryVisAction: use G4PhysicalVolumeModel to determine extent.
0739 
0740  ----------------------------------------------------------------------------
0741