Back to home page

EIC code displayed by LXR

 
 

    


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

0001 
0002                   Geant4 11.4-beta-01 Release Notes
0003                   ---------------------------------
0004 
0005                                                             26 June 2025
0006 
0007                  Migration Notes & Main New Features
0008                  -----------------------------------
0009 
0010   o New "@@" keyword to be used in UI commands taking a macro file name;
0011     it allows to create a temporary macro file with the commands being
0012     defined following it, until a "/control/endRecord" command is specified.
0013   o New utility class G4VSIntegration, for integration of probability density
0014     function and dynamically sampling of final state.
0015   o Enabled voxelisation parallelism by default in G4GeometryManager, when
0016     MT/tasks are enabled. Enabled also for potential 2nd (and later) calls.
0017   o Code optimization in GetPointOnSurface() in specific shapes.
0018     Optimised surface area and cubic volume calculation of several geometrical
0019     primitives.
0020   o Updated implementation of QSS integration method to QSS version-2.
0021   o Extended UI command "/geometry/test/run" to support optional overlap check
0022     mode to check for overlaps in the volume tree without duplication in
0023     identical logical volumes.
0024   o New base class G4VXRayModel for models of X-ray processes.
0025   o New G4LowPAIH2O model for dE/dx in water for p and e-.
0026   o In G4Scintillation and G4Cerenkov, build the integral tables only for
0027     materials that have non-empty material property tables.
0028   o Implemented new option to enable/disable fluctuation of energy loss per
0029     G4Region.
0030   o Introduced usage of the new ion ionisation model in DNA Opt8 physics
0031     configuration.
0032   o New class G4DNABornIonisationModel, a new implementation of the Born model
0033     using a new class G4DNASamplingTable, which allows the sharing of sampling
0034     data between threads.
0035   o New class G4ChemReboundTransportation to handle the rebound transportation
0036     of the molecule.
0037   o New classes with alternative pre-compound model.
0038   o In G4HadronicProcess, removed warning for the case when K0 and anti-K0
0039     are transformed into K0S or K0L.
0040   o Updated algorithms of integration of probabilities and sampling of kinetic
0041     energy for emitted fragment in hadronic de-excitation and pre-equilibrium.
0042     Expected more accurate spectra.
0043   o New alternative hadronic de-excitation FermiBreakUp model, G4FermiBreakUpAN,
0044     and support classes.
0045   o Major update of GIDIplus interface in LEND hadronic model, with refactored
0046     C++ code, including use of official GNDS formatted data. Added feature for
0047     high-fidelity gamma cascades following reactions such as neutron capture
0048     and inelastic scattering.
0049   o Added G4HadronPhysicsLEND in physics-lists to configure neutron and photon
0050     induced processes from LEND.
0051   o First version of generic time windowing of trajectory slices in
0052     visualisation. Introduced Time Window tab in Qt UI.
0053   o Introducing RayTracerQt visualisation driver, enabled when GEANT4_USE_QT
0054     configuration is enabled.
0055   o Set default configuration to use Qt6 when selecting Qt support.
0056     User must set GEANT4_USE_QT_QT5 to force find/use of Qt5.
0057   o Make the TSG driver the "flagship" visualization driver.
0058   o Re-instated transparency slider in visualization GUI.
0059   o In G4OpenGLQtViewer, fixed the original pick feature, which was
0060     inadvertently broken, to show pick info window.
0061   o Introduced the CaloDiT pre-trained ML model for fast simulation
0062     in Par04 example, offering greater accuracy.
0063   o Build option with VecGeom requires VecGeom v1.2.11 or v2.0.0-rc.5.
0064   o Requiring CLHEP-2.4.7.1 for external CLHEP installation.
0065   o New versions of datasets: G4EMLOW-8.7.
0066 
0067  ----------------------------------------------------------------------------
0068 
0069                              Technical Notes
0070                              --------------- 
0071 
0072   o Tested platforms:
0073     + Linux, gcc-15.2.0.
0074       Tested on 64 bit architectures (Intel or AMD) with Alma Linux 9
0075       (based on RedHat Linux Enterprise 9). Versions of Geant4 have also
0076       been compiled successfully on other Linux distributions, Ubuntu,
0077       Debian, Suse or other RedHat systems.
0078     + MacOS 15.5, Apple LLVM/clang-17 (Intel or Apple Silicon), 64 bits.
0079     + Windows/11 with Visual C++ 14.4 (Visual Studio 2022), 64 bits.
0080 
0081   o More verified configurations:
0082     + Linux, with gcc-11.5/12.1/13.2/14.2, clang-19/20.
0083     + Linux, with Intel-icx 2024.2.
0084     + MacOS 13.7/14.7, with Apple LLVM/clang-15/16.
0085     + Windows/10 with Visual C++ 14.36 (Visual Studio 2022)
0086 
0087   o External dependencies
0088     + CLHEP-2.4.7.1, required for external installation of the CLHEP library.
0089     + VecGeom v1.2.11 or v2.0.0-rc.5, for optional use of VecGeom primitives.
0090     + PTL-3.0.1, for external installation of the PTL tasking library.
0091 
0092   o New datasets:
0093     + G4EMLOW-8.7.
0094 
0095  Please refer to the Geant4 User Documentation:
0096    https://cern.ch/geant4/support/user_documentation
0097  for further information about using Geant4.
0098 
0099  ----------------------------------------------------------------------------
0100 
0101 List of features and fixes included in this Beta release since 11.3.p02:
0102 
0103   o Configuration:
0104     -------------
0105     + CMake:
0106       o Set default configuration to use Qt6 when selecting Qt support.
0107         User must set GEANT4_USE_QT_QT5 to force find/use of Qt5.
0108       o Include external categories (G4zlib etc) in link resolution for unit
0109         test executables.
0110       o Export CMAKE_EXPORT_COMPILE_COMMANDS setting from toolkit to the build
0111         of any test done by geant4_add_test to assist use of clang-tidy and
0112         other tooling.
0113       o Add ENVIRONMENT to any build step of geant4_add_test for consistency
0114         and to allow easier propagation of additional build settings.
0115       o Updated to datasets: G4EMLOW-8.7.
0116     + GNUmake:
0117       o Updated system scripts for Qt settings: set Qt6 as default.
0118       o Correction in generation of geant.[c]sh and geant4.bat on Windows.
0119 
0120   o Analysis:
0121     --------
0122     + New implementation of generic 'G4Analysis::GetHnType()' and 'IsProfile()'
0123       functions, which do not rely on the histogram/profile name position in
0124       the long type name provided via tools 's_class()'.
0125     + Modernized g4tools macro-based for loops with range-based for.
0126 
0127   o Externals:
0128     ---------
0129     + g4tools:
0130       o Updated to version 6.5.1.
0131       o Implemented windows_size and render_area_size methods; fixed setting of
0132         mouse position in the wheel_rotation_event. Handle the shift and control
0133         modifiers in the mouse_[down,up,move]_event and wheel_rotation_event.
0134       o In glarea, in mouseMoveEvent() for Qt5, corrected a bad cut/paste when
0135         creating the mouse_move_event.
0136       o In *ntuple, fix in the initialise() method, to switch from "warning" to
0137         "error" and return false if the name of a booking column is not found
0138         in the file. Addressing problem report #2657.
0139     + zlib:
0140       o Updated zlib to version 1.3.1. Prior Geant4 patches are retained.
0141 
0142   o Geometry:
0143     --------
0144     + magneticfield:
0145       o Updated implementation of QSS integration method to QSS version-2.
0146     + management:
0147       o Enabled voxelisation parallelism by default in G4GeometryManager, when
0148         MT/tasks are enabled. Enabled also for potential 2nd (and later) calls
0149         in runs after geometry was changed.
0150       o G4VSolid: set seed in EvaluateCubicVolume() and EvaluateSurfaceArea()
0151         to ensure reproducibility of the resulting value.
0152       o G4GeomTools: added functions HyperboloidSurfaceArea(), HypeStereo()
0153         and TwistedTubeBoundingTrap().
0154       o Applied clang-tidy fixes fixes (readability, modernization,
0155         performance, ...) based on llvm version 19.1.17.
0156     + navigation:
0157       o Extended UI command "/geometry/test/run" to support optional overlap
0158         check mode: depending on the selected mode, it invokes either
0159         'TestRecursiveOverlap' (default and original algorithm) or
0160         'TestOverlapInTree', allowing to check for overlaps in the volume tree
0161         without duplication in identical logical volumes.
0162       o Reorganised and enriched comments in headers to follow Doxygen style.
0163       o Removed declared but not implemented methods in G4VoxelNavigation,
0164         G4ParameterisedNavigation, G4VoxelSafety and G4PathFinder.
0165     + solids/Boolean:
0166       o G4MultiUnion: fix in GetSurfaceArea() and some optimisation to use
0167         G4QuickRand(). In GetLocalPoint(), GetLocalVector(), GetGlobalPoint()
0168         and GetGlobalVector(), make direct usage of the transformation matrix
0169         elements.
0170     + solids/CSG:
0171       o G4Box: code restructuring in DistanceToOut() methods.
0172       o G4Orb: provide faster algorithm in GetPointOnSurface().
0173       o G4Para: speedup calculation of surface area in GetSurfaceArea() and
0174         GetPointOnSurface().
0175       o G4Box, G4Para, G4Trd: code optimization in GetPointOnSurface().
0176       o G4Torus: implemented uniform sampling of random points on surface.
0177     + solids/specific:
0178       o G4Ellipsoid, G4EllipticalTube: code optimization in GetPointOnSurface().
0179       o G4TessellatedSolid, G4TriangularFacet, G4QuadrangularFacet: use
0180         G4QuickRand() for generating points on surface.
0181       o G4EllipticalCone: code optimization in GetPointOnSurface(); moved
0182         setters implementations to source.
0183       o G4Paraboloid: implemented uniform sampling of random points on surface.
0184       o G4Hype: revised surface area calculation and random point sampling.
0185         Code optimization in GetPointOnSurface().
0186       o Use G4QuickRand() in G4PolyPhiFace, G4PolyconeSide, G4PolyhedraSide,
0187         G4TwistedTubs, G4VCSGfaceted and G4VTwistedFaceted for sampling points
0188         on surface.
0189       o G4EllipticalCone, G4EllipticalTube, G4Voxelizer: removed unnecessary
0190         headers.
0191     + volumes:
0192       o Fix to only delete the logical skin/border surfaces if the geometry
0193         is not closed.
0194       o Reorganised and enriched comments in headers to follow Doxygen style.
0195       o Applied clang-tidy fixes for readability, based on llvm version 19.1.7.
0196 
0197   o Global:
0198     ------
0199     + Factored common ieee754 union and helper functions out of G4Log and
0200       G4Exp to remove code duplication.
0201     + G4VSIntegration: added new utility class for integration of probability
0202       density function and dynamically sampling of final state. This is useful
0203       for the case when sampling tables  cannot be prepared and stored, instead
0204       computations are performed for each case again and again. 
0205     + G4QuickRand: Added a possibility to set a seed.
0206     + Changed date for release 11.4-beta.
0207 
0208   o Graphics Representations:
0209     ------------------------
0210     + Re-instated transparency slider in GUI.
0211     + G4VGraphicsScene: added 'fMaxGeometryDepth' data member and
0212       corresponding access functions.
0213 
0214   o Intercoms:
0215     ---------
0216     + In G4UImanager and G4UIcontrolMessenger, introducing "@@" keyword that
0217       can be placed in any UI command taking a macro file name. It creates a
0218       temporary macro file with defined commands until the "/control/endRecord"
0219       command is specified. The "@@" mechanism works recursively.
0220       If a file name is enclosed in a pair of "@", that macro file is created.
0221       The mechanism works for both interactive mode and batch mode. When used
0222       in interactive mode with Qt GUI, one can use up-arrow, tab-key and
0223       clickable menu in left-side bar to complete a command.
0224 
0225   o Interfaces:
0226     ----------
0227     + G4UIQt: re-instated transparency slider.
0228       Introduced Time Window tab. This exploits generic time windowing
0229       recently introduced in visualisation. Currently, it doesn't work with
0230       OGL in Qt6. The TSG visualisation driver works fine with both Qt5 and
0231       Qt6, except line width is not implemented.
0232       Simplified and improved touchable dump, using QScrollArea instead of
0233       QMessage. Improved pick info window size.
0234     + General code tidy.
0235 
0236   o Persistency:
0237     -----------
0238     + gdml:
0239       o Fix to pre-pend '0x' string before the address when writing entities
0240         on Windows platform. Addressing problem report #2322.
0241 
0242   o Physics Lists:
0243     -------------
0244     + Builders:
0245       o In G4HadronPHPBuilder, G4ParticleHPCapture and G4ParticleHPCaptureData
0246         are replaced by G4NeutronRadCaptureHP and G4NeutronHPCaptureData,
0247         respectively.
0248         The first allows the use of the full list of updated PhotonEvaporation
0249         data set, while for the second it is only a change of the name, the
0250         data are the same. Addressing problem report #2660.
0251     + Constructors:
0252       o electromagnetic:
0253         - G4GeneralGammaProcess: updated destructor according to modification
0254           in electromagnetic/utils.
0255         - G4EmDNABuilder: use G4DNABornIonisationModel1 for proton ionisation.
0256           For Opt8 configuration, use the same configuration of models for e-
0257           and protons as in Opt2.
0258         - In all DNA constructors the upper limit for DNA models for ions is
0259           set to 300 MeV instead of 400 MeV; for increase/decrease processes
0260           it is set to 100 MeV; for ionisation of hydrogen it is set to 100 MeV.
0261         - G4EmDNAPhysics_option6: disabled "fast" flag in order to have
0262           comparisons with Opt4 in the same set of general DNA parameters.
0263         - G4EmDNAPhysics_stationary_X constructors: added deprecation warning, 
0264           indicating that these constructors are now obsolete.
0265         - G4EmDNABuilder, G4EmDNAPhysicsActivator: introduced usage of the
0266           new ion ionisation model in DNA Opt8 physics configuration.
0267         - G4EmDNAPhysics, G4EmDNAPhysics_option2, G4EmDNAPhysics_option4,
0268           G4EmDNAPhysics_option6, G4EmDNAPhysics_option8: updated interface to
0269           G4EmDNABuilder.
0270       o gamma_lepto_nuclear:
0271         - G4EmExtraPhysics: removed LEND photo-nuclear; it is now selected by
0272           G4HadronPhysicsLEND.
0273       o hadron_elastic:
0274         - In G4ChargeExchangePhysics, fixed usage of the messenger.
0275       o hadron_inelastic:
0276         - In G4HadrocPhysicsQBBC, disabled General Neutron Process.
0277           Addressing problem reports #2558 and #2559.
0278         - Added G4HadronPhysicsLEND to define neutron and photon induced
0279           processes from LEND.
0280         - G4HadronPhysicsShielding: removed LEND neutron process, now selected
0281           by G4HadronPhysicsLEND.
0282     + Lists:
0283       o G4PhysListFactory: prevent fallback to default physics list when an
0284         invalid name is provided. Now, if a user specifies an unknown physics
0285         list, Geant4 will throw a fatal error instead of silently using
0286         FTFP_BERT. This ensures that users are aware of incorrect configurations
0287         and helps preventing unintended simulation results.
0288       o In QBBC physics list, added G4ChargeExchangePhysics.
0289       o In Shielding physics list, simplified logic tree for inelastic models
0290         and moved all LEND hadronic inelastic processes to G4HadronPhysicsLEND.
0291 
0292   o Electromagnetic Processes:
0293     -------------------------
0294     + DNA:
0295       o Added new G4DNARuddIonisationDynamicModel, which uses charge from
0296         G4DynamicParticle. The model is applicable for all ions.
0297       o G4DNABornIonisationModel: new implementation of the Born model using
0298         G4DNASamplingTable class; use stationary and fast flags from EM
0299         parameters.
0300       o G4DNARuddIonisationModel, G4DNABornIonisationModel1 and
0301         G4DNABornIonisationModel2: fixed definition of the stationary code via
0302         G4EmParameters.
0303       o G4DNASamplingTable, new class allowing the sharing of  sampling data
0304         between threads.
0305       o Updated IRT-syn model for high LET applications.
0306       o Correction in the G4DNAScavengerProcess for IRT-syn model.
0307       o Created G4ChemReboundTransportation to handle the rebound transportation
0308         of the molecule.
0309       o Replaced the G4MoleculeCounter singleton with G4MoleculeCounterManager
0310         for managing counters.
0311       o Replaced shared_ptr with unique_ptr and raw for manager counters.
0312       o Fixed FPE on G4ChemReboundTransportation::calculateNextCoordinate().
0313       o In G4PhysChemIO, removed dependency on 'analysis' module.
0314     + Low Energy:
0315       o G4LivermorePhotoElectricModel: reorganisation of initialisation and
0316         data destruction.
0317       o In G4AtomicTransitionManager, G4UAtomicDeexcitation, use std::size_t
0318         and few other cosmetic changes.
0319       o In G4hIonEffChargeSquare, fixed reported Coverity defect.
0320     + Muons:
0321       o G4RiGeMuPairProductionModel, G4RiGeAngularGenerator: fixes to the
0322         angular distribution of electrons and positrons.
0323       o G4MuPairProduction: enable RiGe model via G4EmParameters.
0324     + Pii:
0325       o Use "const G4String&" in G4hImpactIonisation::InitializeMe() to avoid
0326         unnecessary copy, reported by Coverity.
0327     + Standard:
0328       o Added G4LowPAIH2O model for dE/dx in water for p and e-.
0329       o G4UrbanMscModel: cosmetic change for Opt3 case; minor code improvement
0330         and updated comments to the code. Not affecting any result.
0331       o Reverted changes introduced in release 11.3 for static data
0332         initialization in G4eBremsstrahlungRelModel.
0333     + Utils:
0334       o New base class G4VXRayModel for X-ray processes. Adapted classes
0335         G4OpticalParameters, G4OpticalParametersMessenger and G4LossTableManager
0336         to configure and use G4VXRayModel.
0337       o G4EmParametersMessenger: added UI command to enable/disable 5D pair
0338         production model by muons.
0339       o G4EmUtility, G4EmDataHandler, G4EmDataRegistry: removed minor memory
0340         leaks and improved destruction at exit.
0341       o G4EmParameters, G4EmParametersMessenger, G4EmUtility, G4LossTableBuilder,
0342         G4VEnergyLossProcess: implemented new option to enable/disable
0343         fluctuation of energy loss per G4Region.
0344       o G4VEmProcess: added call to StartTracking(..) for all used models,
0345         which need access to G4Track pointer.
0346     + Xrays:
0347       o In G4Scintillation, build the scintillation integral tables for
0348         materials that have non-empty material property tables and added
0349         method BuildInverseCdfTable().
0350       o In G4Cerenkov, build the Cerenkov integral only for materials that
0351         have non-empty material property tables.
0352 
0353   o Hadronic Processes:
0354     ------------------
0355     + cross_sections
0356       o G4NeutronInelasticXS, G4ParticleInelasticXS: added download data for
0357         all elements in class constructor, avoiding lazy initialisation at
0358         run-time. No locks are set any longer by these cross-section classes.
0359         For simple applications, the initialisation CPU time increases by
0360         roughly 10%; no effect on complex applications.
0361       o G4ChargeExchangeXS: fixed selection of reaction for compound materials;
0362         added extra public and private methods; added extra method for sampling
0363         of scattering angle; updated parameterisation using new fit to data.
0364       o Fixed minor memory leaks in classes G4CrossSectionFactory,
0365         G4CrossSectionFactoryRegistry, G4CrossSectionFactory,
0366         G4ElectroNuclearCrossSection and G4ChipsAntiBaryonElasticXS. 
0367       o G4EMDissociationCrossSection: fixed several technical inaccuracies
0368         in the code, addressing reported Coverity defects and to correctly
0369         use G4Pow.
0370       o G4ParticleInelasticXS: fixed reported Coverity defect.
0371       o In G4EMDissociationSpectrum, added protection against beta=0, to fix
0372         reported Coverity defect; correctly use G4Pow.
0373     + management
0374       o G4HadronicProcess: removed warning for the case when K0 and anti-K0
0375         are transformed into K0S or K0L.
0376     + models/coherent_elastic
0377       o G4ChargeExchange: fixed problem in kinematic computations, allowed
0378         recoil nucleus to be in an excited state. Fixed issue in final state
0379         generation for the case of unstable meson production omega(782) and
0380         f2(1270).
0381       o G4ChargeExchange, G4HadronElastic: cleanup final state generation; use
0382         the numerical limit for argument of the exponent to avoid precision
0383         loss; in case of numerical problems force scattering angle to zero (do
0384         not consider scattering backwards); use similar parameterisation and
0385         code for both models. Fixed reported Coverity defect.
0386     + models/de_excitation
0387       o Added G4FermiBreakUpAN, new alternative FermiBreakUp model and support
0388         classes, contributed by A. Novikov (Yandex and MIPT) through
0389         [GitHub PR #84](https://github.com/Geant4/geant4/pull/84). The model is
0390         based on: J.P. Bondorf et al., Physics Reports, 257(3):133-221.
0391       o G4ExcitationHandler, G4DeexPrecoParameters: updated initialisation
0392         to allow switching between different FermiBreakUp models.
0393       o G4DeexPrecoUtility: new class, providing common computation, to avoid
0394         code duplication. Use it in classes G4EvaporationProbability,
0395         G4ProtonEvaporationProbability, G4DeuteronEvaporationProbability,
0396         G4TritonEvaporationProbability, G4He3EvaporationProbability and
0397         G4AlphaEvaporationProbability, simplifying code.
0398       o G4DeexPrecoParameters: added extra enumerator to choose variants of
0399         the pre-compound model.
0400       o G4NucLevel, G4PhotonEvaporation: use explicit type conversion from
0401         double to float; use const arguments where possible.
0402       o G4VEmissionProbability, G4EvaporationProbability, G4GEMProbabilityVI:
0403         updated algorithms of integration of probabilities and sampling of
0404         kinetic energy for emitted fragment. Expected more accurate spectra.
0405       o G4GEMChannelVI, G4EvaporationGEMFactoryVI, G4DeexPrecoParameters: new
0406         GEM de-excitation model with 83 decay channels.
0407       o G4VEmissionProbability: use the new utility class G4VSIntegration,
0408         to simplify code; not affecting results.
0409         Updated parameters of integration of the probability density function.
0410       o In G4PhotonEvaporation, G4VEmissionProbability, check life time of
0411         final excitation level; special treatment for the ground state and the
0412         next level. Addressing problem report #2660.
0413       o In G4EvaporationProbability, fixed computation of inverse cross-section.
0414       o G4StatMFMicroPartition: code cleanup, removed non-informative printout,
0415         which can be repeated many times; instead stop MF model and return to
0416         de-excitation handler.
0417       o G4LevelReader: fix for reported Coverity defect.
0418       o G4VFermiFragmentAN, G4FermiBreakUpAN: fixed reported Coverity defects.
0419       o G4CoulombBarrier: some code cleanup.
0420       o G4Evaporation: improved debug printout.
0421     + models/em_dissociation
0422       o G4EMDissociation: fixed reported Coverity defects.
0423     + models/inclxx
0424       o Fixed one more reported Coverity defect for use of std::move()
0425         in G4INCLCascade.
0426       o Fixed URL to Root in comments.
0427         Fixes [GitHub PR#87](https://github.com/Geant4/geant4/pull/87).
0428     + models/lend
0429       o Major update of GIDIplus interface with refactored C++ code, including
0430         use of official GNDS formatted data.
0431       o Added feature for high-fidelity gamma cascades following reactions such
0432         as neutron capture and inelastic scattering.
0433       o Collect all inelastic models (neutron and gamma induced) into
0434         G4HadronPhysicsLEND. Updated and simplified Shielding and
0435         G4EmExtraPhysics accordingly.
0436       o Fix in G4EmExtraPhysics for failing in loading photonuclear from LEND
0437         if G4GammaGeneralProcess existed.
0438       o Fix in G4LENDCombinedModel photofission; check energy function was not
0439         connected to the base class, resulting in a crash.
0440     + models/nudex
0441       o Address maybe-unitialized warnings when building/linking with LTO,
0442         identified by ATLAS.
0443     + models/particle_hp
0444       o G4ParticleHPThermalScatteringData: attempt to fix reported Coverity
0445         defect on wrong handling of map iterator. Substituted several calls to
0446         G4HadronicExceptions by one G4Exception inside BuildPhysicsTable(..)
0447         method, which provides a fatal exception if a particle is not a neutron.
0448         Simplified IsApplicable(..) methods called at each step; the directory
0449         path is taken from G4ParticleHPManager to reduce number of calls to
0450         getenv() function; initialisation is performed only once in one
0451         instance of the class; initilised data structures are saved to
0452         G4ParticleHPManager and are accessed from all threads and instances;
0453         end of job destruction is also performed only once; removed commented
0454         lines and extended comments to code.
0455       o In G4ParticleHPInelastic, fixed AllHP physics for  initialisation of
0456         neutrons and light ions. Addressing problem report #2591.
0457       o G4ParticleHPThermalScattering, G4ParticleHPThermalScatteringData,
0458         G4ParticleHPJENDLHEData: fixed reported Coverity defects for
0459         unprotected access to maps.
0460       o Fixed reported Coverity defects, mainly in handling of maps and finding
0461         of isotopes.
0462     + models/pre_equilibrium
0463       o New classes G4PreCompoundInterface, G4PreCompoundTransitionInt and
0464         G4PreCompoundEmissionInt with alternative precompound model.
0465       o G4PreCompoundModel, G4PreCompoundTransition, G4PreCompoundEmission:
0466         added an option to use alternative precompound models, which may be
0467         done via configuration without change of interface to consumer code;
0468         introduced verbose flag and extended printout needed to debug; removed
0469         old commented printout lines.
0470       o G4PreCompoundFragment, G4PreCompoundNucleon, G4PreCompoundIon: updated
0471         computation of inverse cross-section; added factor to cross-section.
0472       o G4VPreCompoundFragment, G4PreCompoundFragment, G4HETCFragment: use the
0473         new utility class G4VSIntegration, to simplify code; not affecting
0474         results.
0475       o G4PreCompoundFragment, G4PreCompoundProton, G4PreCompoundDeuteron,
0476         G4PreCompoundTriton, G4PreCompoundHe3, G4PreCompoundAlpha: use new
0477         utility class G4DeexPrecoUtility.
0478     + util
0479       o G4HadronicParameters: implemented pretty-print to ostream to allow
0480         users to check values at runtime, a-la G4EmParameters (request from
0481         ATLAS).
0482 
0483   o Run:
0484     ---
0485     + Fix in G4RunManager::ReinitializeGeometry(); the logical skin/border
0486       surfaces (used for optical physics) contain pointers to logical/physical
0487       volumes that are deleted when the geometry is reset. Resetting the
0488       geometry will also clear these surface tables.
0489 
0490   o Track & Tracking:
0491     ----------------
0492     + G4VTrajectory and G4VTrajectoryPoint: added caching of G4AttValues.
0493       GetAttValues() returns a shared_ptr that points to the object created by
0494       CreateAttValues() if not already created. Thus acts as a cache.
0495       Protected copy and move constructors and copy and move assignment
0496       operators.
0497     + G4RichTrajectoryPoint: added accessors for Pre/PostStepPointGlobalTime.
0498       This allows fast access for time windowing feature of trajectory modeling.
0499 
0500   o Visualization:
0501     -------------
0502     + management:
0503       o Make the TSG driver the "flagship" visualization driver.
0504         In G4VisExecutive, make nickname/alias OGL synonymous with TSG and make
0505         TSG the default for selection by build flags.
0506       o Re-instated the transparency slider; re-implemented it in a generic way,
0507         i.e., for all drivers; uses a new UI command:
0508         "/vis/viewer/set/transparencyByDepth <d> [option]".
0509         G4UIQt issues this command on signals from the slider. The user may,
0510         of course, use this command directly.
0511       o Split scene processing into its "permanent" (run-duration models) and
0512         "transient" (end-of-event and end-of-run models) parts.
0513         This allows to update just the transient part, e.g., trajectories,
0514         which we might want to display in a different way, leaving the
0515         permanent part (e.g., detector) unchanged, avoiding unnecessary
0516         re-processing. This is exactly the situation for time windowing - the
0517         detector does not change, the trajectories also actually do not change,
0518         just the way they are drawn changes.
0519       o G4VSceneHandler: introduced ProcessTransients() virtual function.
0520         Moved pertinent code from ProcessScene() to ProcessTransients().
0521         Copied time parameters into modeling parameters.
0522         Calculate and maintain 'fMaxGeometryDepth', new base class data member.
0523         Improved some diagnostic printing.
0524       o G4VViewer: introduced ProcessTransients() method. Follow changes in
0525         G4PhysicalVolumeModel.
0526         Initialise fTransientsNeedRedrawing to "false". Previously, this was
0527         initialised "true", but it is up to the viewer to decide if transients
0528         (trajectories) need redrawing. Code tidy.
0529       o Added RayTracerQt in G4VisExecutive.
0530       o G4VVisCommand: in InterpolateViews(), implemented desired time per time
0531         step. Computation time per step may cause this to increase.
0532       o G4VisCommandsViewer: improved guidance of "/vis/viewer/interpolate"
0533         command. In "/vis/viewer/set/timeWindow/displayHeadTime", implemented
0534         "current as default". There might be some minor change of behaviour.
0535         In "/vis/viewer/select", removed subsequent refresh, even for
0536         auto-refresh drivers. Refresh is not required after a select, window
0537         systems keep the image.
0538       o In G4VisCommandsTouchable, disabled "/vis/touchable/centre..." and
0539         "/twinkle" in the case of large process times.
0540       o Added UI command "/vis/scene/add/endOfRunMacro".
0541         The macro is executed at end of run and when rebuild required.
0542         WARNING: some vis commands in the macro cause recursion. Stick to
0543         simple commmands, e.g., which invoke vis manager Draw() methods.
0544       o G4ViewParameters: added 'TransparencyByDepth' and
0545         'TransparencyByDepthOption'. Simplified code; use single TimeParameters
0546         from G4ModelingParameters, to replace 18 time window parameters.
0547         Fixed typo to make "/vis/viewer/set/lightsMove cam" behaving correctly
0548         for "/vis/viewer/set/lightsVector 0 0 1".
0549         Addressing problem report #2460.
0550       o G4VisCommandsViewerSet: updated to "/vis/viewer/set/timeWindow"
0551         commands according to changes in G4ViewParameters.
0552         Added UI command "/vis/viewer/set/transparencyByDepth".
0553       o Minor improvement to listing of histograms (if any).
0554       o In G4VisManager::EndOfRun(), print list of histograms even with vis
0555         disabled.
0556       o Modernised macro-based loops with range-based for.
0557       o Replaced raw for loops with range-for where possible.
0558     + modeling:
0559       o G4TrajectoryDrawerUtils: first version of generic time windowing of
0560         trajectory slices; draws only slices within the viewer time window.
0561         Note: unless the viewer can handled time-sliced trajectories (only
0562         OGLS can do this at present), the viewer must request a kernel visit
0563         on change of viewer time window.
0564         Trap trajectories with very long global times, e.g, products of
0565         long-lived radioactive isotopes. Draw as non-time-sliced trajectories.
0566         Added fading of trajectory slices if time windowing is active; makes
0567         trajectory slices look like little meteors streaking across the screen.
0568         Applied clang-format.
0569       o G4ModelingParameters: implemented TimeParameters::operator!=().
0570         Adjusted default values in TimeParameters: set fade factor to 1
0571         (maximum fading); set head time display 2D x-coordinate to zero
0572         (centre), while 2D y-coordinate remains at -0.9 (bottom).
0573         Added struct 'TimeParameters', a prerequisite for "Generic Time-Slicing"
0574         for the display of the time evolution of events. With that feature, the
0575         display of tracks moving through time will be available to all vis
0576         drivers (drivers will still be allowed to implement their own time
0577         evolution).
0578       o G4TrajectoriesModel: in DescribeYourselfTo(), draw display head time
0579         if requested and if time windowing is active; removed Begin/EndDraw
0580         around the trajectories loop.
0581       o In G4TrajectoryDrawByEncounteredVolume and
0582         G4TrajectoryEncounteredVolumeFilter, use G4VTrajectory::GetAttValues()
0583         instead of CreateAttValues(), to speedup repeated visits.
0584       o G4VModel: introduced static data member for current modeling parameters
0585         and its static accessor, GetCurrentModelingParameters().
0586       o In G4PhysicalVolumeModel, fixed typo in ModelType.
0587       o G4TrajectoriesModel: call SetCurrentModelingParameters().
0588       o G4ModelingParameters: added 'TransparencyByDepth' and
0589         'TransparencyByDepthOption'.
0590       o G4PhysicalVolumeModel: renamed some data members and access functions
0591         for clarity; added 'fMaxFullDepth' (includes base path, i.e., from
0592         world volume); added code for processing transparency by depth.
0593     + OpenGL:
0594       o G4OpenGLQtViewer: fixed the original pick feature to show pick info
0595         window.
0596       o G4OpenGLWin32Viewer: added SwitchToMasterThread() method to draw
0597         trajectories at the end of run in MT mode.
0598       o G4OpenGLStoredViewer, G4OpenGLStoredQtViewer: initiate kernel visit if
0599         'TransparencyByDepth' or its options change.
0600       o In G4OpenGLQtViewer, commented calls to TouchableSetVisibility/Colour;
0601         no longer needed since the introduction of the new scene tree.
0602         Commented out some debug printing to std::cout.
0603       o In G4OpenGLStoredViewer, follow changes introduced in G4ViewParameters.
0604     + OpenInventor:
0605       o G4OpenInventorViewer: initiate kernel visit if 'TransparencyByDepth' or
0606         its options change. In CompareForKernelVisit(), cause kernel visit if
0607         viewer start/end time changes; this is to take advantage of the new
0608         generic time window. Implemented CompareForTransientsRedraw().
0609         Take advantage of ProcessTransients(), which reconstructs that part of
0610         the graphical database for transient objects, e.g., trajectories,
0611         without reconstructing the "permanent" (run-duration) objects, e.g.,
0612         the detector. In other words, something short of a complete "kernel
0613         visit". For example, if the time window changes. Maximises the
0614         efficiency of the recently implemented "generic" time windowing.
0615     + Qt3D
0616       o G4Qt3DViewer: initiate kernel visit if 'TransparencyByDepth' or its
0617         options change. In CompareForKernelVisit(), cause kernel visit if
0618         viewer start/end time changes; this is to take advantage of the new
0619         generic time window. Implemented CompareForTransientsRedraw().
0620     + RayTracer:
0621       o Introducing RayTracerQt. Uses multithreading tracer, G4TheMTRayTracer.
0622         With multithreading, image construction is quite fast.
0623       o Introduced nicknames (long names still work): RT (for RayTracer),
0624         RTX (for RayTracerX), RTQt (for RayTracerQt).
0625       o In G4RayTracerViewer, use G4Timer to estimate
0626         KernelVisitElapsedTimeSeconds.
0627       o In G4VRTScanner (and inherited classes), removed misleading and un-used
0628         methods GetGSName() and GetGSNickName().
0629     + ToolsGS:
0630       o Allow accumulation of transients (trajectories) during multithreading.
0631       o Trajectories are stored in the database during the run, and displayed
0632         at end of run. All events are displayed at end of run.
0633       o In G4ToolsSGViewer, initiate kernel visit if 'TransparencyByDepth' or
0634         its options change. In CompareForKernelVisit(), cause kernel visit if
0635         viewer start/end time changes; this is to take advantage of the new
0636         generic time window. Implemented CompareForTransientsRedraw().
0637         Removed 'SwitchToVisSubThread' and 'SwitchToMasterThread' as no action
0638         is needed on thread switching.
0639         In mouse_move(), use the event.shift_modifier() method, to pass in pan
0640         mode. Have GetWindowSize() and GetRenderAreaSize() methods to retrieve
0641         the actual sizes of the "seen/visible window" and of the "render area"
0642         size; these may return different sizes, for example with Qt/OpenGL on
0643         Mac and Windows. In SetView(), use the new GetWindowSize(),
0644         GetRenderAreaSize() methods to set the "marker scale" on
0645         G4ToolsSGSceneHandler.
0646       o G4ToolsSGQtGLESViewer, G4ToolsSGQtZBViewer, G4ToolsSGOffscreenViewer:
0647         suppressed SetView() method, as no more needed.
0648       o In G4ToolsSGSceneHandler, respect line width in vis attributes and view
0649         parameters. In GetOrCreateNode(), removed restriction on multithreading.
0650         Handle the 'fMarkerScale' field.
0651       o Modernised macro-based loops with range-based for statements.
0652 
0653   o Datasets:
0654     ---------
0655     + G4EMLOW-8.7:
0656       o Updated MicroElec data: added new files and updated format of other
0657         files.
0658 
0659   o Examples:
0660     --------
0661     + Updated reference outputs, macros, READMEs and scripts.
0662     + advanced/dna/cellularPhantom
0663       o Code reorganisation; introduced Run class.
0664       o Simplified analysis of results.
0665       o Updated affiliation.
0666     + advanced/dna/moleculardna
0667       o Updated new implementation of IRT-syn model.
0668       o Deleted Max Time Step parameter.
0669       o Corrected segmentation error with Root macrofiles, caused when low
0670         damage had been produced.
0671       o Updated reaction list for DNA reactions.
0672       o Define missing variable in some macros.
0673       o Increased default statistics in ecoli.mac.
0674       o Added moleculardna macro, Root macro and geometry files for the
0675         simulation of phages.
0676       o Updated direct damage range for plasmid.mac and cylinders.mac.
0677       o Added fiber.mac macro.
0678       o Increased max number of arguments in main().
0679       o Added protection to all analysis macros to avoid 'nan' in error
0680         calculation.
0681       o Added possibility to activate parallel world using dedicated flag from
0682         executable.
0683     + advanced/microbeam
0684       o Added n-tuple merging.
0685     + extended/biasing
0686       o Applied basic clang-tidy fixes and clang-format to code.
0687     + extended/biasing/GB03
0688       o Instantiate G4GenericBiasingPhysics only if biasing is enabled.
0689         Propagate biasing on/off to detector construction to initialise
0690         biasing classes only if biasing is requested.
0691     + extended/biasing/GB05
0692     + extended/biasing/GB07
0693       o Removed explicit call of base class constructor in DetectorConstruction.
0694     + extended/electromagnetic/TestEm2
0695       o Fixed memory leak at exit in ActionInitialisation, DetectorConstruction
0696         and RunAction. Instantiate the field messenger differently.
0697     + extended/electromagnetic/TestEm4
0698       o Added G4RayleighScattering in PhysicsList.
0699     + extended/electromagnetic/TestEm13
0700     + extended/electromagnetic/TestEm14
0701       o Added G4RayleighScattering in PhysicsList.
0702     + extended/electromagnetic/TestEm15
0703       o Updated gamma.mac input macro to use emstandard_opt4.
0704       o Removed gamma2mumu.mac input macro.
0705     + extended/electromagnetic/TestEm18
0706       o Added G4RayleighScattering in PhysicsList.
0707     + extended/eventgenerator/exgps
0708       o In HistoManager, activated n-tuple merging.
0709       o Fixed python and analysis macros (tested with python 3.13.3).
0710       o Moved plotHisto.C to macros. Removed plottest35.py and plotit.csh.
0711       o Excluded not working tests (needed further investigation).
0712       o Removed exgps_batch.in (identical with exgps.in).
0713       o Copy all macros and run script into the build area in CMake script.
0714     + extended/eventgenerator/pythia/py8decayer
0715       o Updated to Pythia-8.3.15.
0716     + extended/exoticphysics/phonon
0717       o Updated build script for CTests definitions.
0718     + extended/hadronic/NeutronSource
0719       o In main(), added SetUseNRESP71Model(true).
0720     + extended/medical/DICOM
0721       o Refactored DICOM examples into a single project; now build everything
0722         together for ease of use and demonstration. Code/behaviour otherwise
0723         is unchanged. Including two examples, DICOM1 (renamed from the original
0724         DICOM) and DICOM2, with two libraries that implement capabilities
0725         common to both applications: G4DicomCore, providing the core Geant4
0726         application structure; G4DicomReader, optional utility library to read
0727         DICOM files and RT structure in DICOM format, as well as RT plans.
0728         Both applications can optionally use the DICOM Digital Head.
0729     + extended/medical/dna/chem4
0730       o Replaced shared_ptr with unique_ptr and raw for manager counters.
0731     + extended/medical/dna/chem5
0732       o Use the new G4MoleculeCounterManager to manage the G4MoleculeCounter.
0733       o Replaced shared_ptr with unique_ptr and raw for manager counters.
0734       o Code clean up; added plot.py script for plotting the output data.
0735     + extended/medical/dna/chem6
0736     + extended/medical/dna/dnadamage1
0737       o Replaced shared_ptr with unique_ptr and raw for manager counters.
0738     + extended/medical/dna/dnaphysics
0739       o Added possibility to simulate radioactive nuclei; added radioactive.in
0740         macro and plotRadioactive.C.
0741       o Added elastic.in and plotElastic.C macros to show distribution of
0742         scattering angles.
0743       o Added UI command to record first step only; updated elastic.in macro
0744         accordingly.
0745       o Updated PhysicsList and SteppingAction.
0746     + extended/medical/dna/mfp
0747       o Added n-tuple merging.
0748     + extended/medical/dna/molcounters
0749       o New example showing how to use the new molecule counter manager system
0750         and how to write custom molecule counters. The custom (spatially-aware)
0751         molecule counter used here is further described in:
0752         Radiat. Phys. Chem. 212 (2023) 111194.
0753     + extended/medical/dna/radial
0754       o New example showing how to simulate radial dose profiles in liquid
0755         water from incident ions using the Geant4-DNA physics processes and
0756         models.
0757     + extended/medical/dna/range
0758       o Added beta option8 physics list.
0759     + extended/medical/dna/scavenger
0760       o Replaced shared_ptr with unique_ptr and raw for manager counters.
0761     + extended/medical/dna/slowing
0762       o Added n-tuple merging.
0763     + extended/medical/dna/spower
0764       o Added scoring of secondary electrons.
0765       o PhysicsList: added all DNA Physics Lists and usage of G4EmParameters.
0766       o In lot.C, added selection of electrons by default.
0767       o In spower.in, changed physics constructors.
0768     + extended/medical/dna/svalue
0769       o Added n-tuple merging.
0770       o Added optional time threshold to iodine macros.
0771     + extended/medical/dna/wvalue
0772       o Added n-tuple merging.
0773     + extended/medical/dna/UHDR
0774       o Updated pulseAction for larger pulse size.
0775       o Temporarily use molecule counter for EventScheduler.
0776       o Updated reaction table for scavengers.
0777       o Use the new G4MoleculeCounterManager to manage the G4MoleculeCounter.
0778       o Added pulse structure and interpulse feature.
0779       o Fixed partially diffused-control reactions.
0780       o Fixed crash due to typo in UHDR.in
0781       o Removed dependence of PrimaryGeneratorAction/Physlist/ChemList
0782         and ActionIni classes on DetectorConstruction class.
0783       o Updated macro files.
0784     + extended/medical/radiobiology
0785       o Primary beam origin can be located outside the detector water tank.
0786     + extended/parallel
0787       o Retired obsolete TBB example. Functionality fully provided by tasking
0788         run manager with TBB support with no user code changes required.
0789     + extended/parallel/MPI
0790       o Modernised and simplified library and example build scripts to build
0791         G4mpi library and examples of its use in one project.
0792       o Moved MPI from deprecated C++ interface to C interface (MPI 3+).
0793         Based on [GitHub PR#81](https://github.com/Geant4/geant4/pull/81).
0794     + extended/parameterisations/Par04
0795       o Introduction of the CaloDiT pre-trained model, offering greater
0796         accuracy.
0797       o Updated VAE training with the new translation script and Condor scripts.
0798     + extended/radioactivedecay/Activation
0799       o In main(), added SetUseNRESP71Model(true).
0800 
0801  ----------------------------------------------------------------------------
0802