Back to home page

EIC code displayed by LXR

 
 

    


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

0001 
0002                   Geant4 11.1-beta-01 Release Notes
0003                   ---------------------------------
0004 
0005                                                             30 June 2022
0006 
0007                  Migration Notes & Main New Features
0008                  -----------------------------------
0009 
0010   o Added ability to optionally check for overlaps in parallel geometries
0011     through the "/geometry/run/test" UI command.
0012   o Improved computation of surface area and cubic volume in specific solids.
0013   o Revised implementation of G4CoupledTransportation: now inheriting from
0014     G4Transportation and removed duplicated variables and methods.
0015   o Provided choice of the model of fluctuations with the default
0016     G4UrbanFluctuation, alternative G4UniversalFluctuation (more accurate for
0017     thin targets), and G4LossFluctuationDummy (no fluctuations); new UI command
0018     defines model of fluctuations for the full setup; inside user physics lists
0019     it is possible to configure different fluctuation models per G4Region.
0020   o In G4UrbanMscModel, moving safety computation before step limitation
0021     algorithms in order to save few instructions; should not affect results.
0022   o New G4TransportationWithMsc specialised tranportation process combined with
0023     multiple-scattering, enabled by default with G4EmStandardPhysics_option1.
0024     May be enabled for any EM physics via the new UI command. Added also 
0025     possibility to enable internal stepping.
0026   o In EM processes, updated methods to access cross-sections at run time.
0027   o In G4EmStandardPhysics_option3, use options providing more accurate 
0028     simulation without loss of CPU performance; significantly improving
0029     fanoCavity results.
0030   o Use G4LinhardSorensenIonModel for GenericIon in physics-lists for
0031     G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
0032     G4EmPenelopePhysics and G4EmLivermorePhysics.
0033   o G4EmStandardPhysics_option4: use Penelope ionisation model for e- below
0034     100 keV.
0035   o Set EPICS2017 cross sections to be the default for Livermore gamma processes.
0036   o New utility class G4EmDNABuilder, providing instantiation of standard
0037     and DNA processes/models in physics lists. Made G4EmDNAPhysics the base
0038     class for DNA physics constructors. Optimised IRT-syn DNA model.
0039   o Added parameters in DNA including the chemical molecules and reaction
0040     list involved in the radiolysis.
0041   o In G4DNA, incorporated model based on RPWBA to transport protons at
0042     100-300 MeV and updated data structure to improve performance of the
0043     mesoscopic model.
0044   o Added flush() method to the fast simulation models, allowing to process the
0045     input buffer of the fast simulation model before the end of an event;
0046     triggered inside the event loop of G4EventManager, when the stack is empty.
0047   o Added a new utility method to access a process via sub-type.
0048   o New integral method for hadronic processes.
0049   o Extended cross-sections for computation of light anti-nuclei on hydrogen.
0050   o In G4Evaporation and G4UnstableFragmentBreakUp, completed fix about
0051     production of unphysical fragments.
0052   o In hadronic de_excitation, added limitation (A < 30) on decay of unphysical
0053     fragment, allowing for removal of light unphysical states and providing
0054     improved isotope production for the spallation fragments.
0055   o Improved FTF fragmentation to better describe the production of strange
0056     mesons and baryons in proton-proton interactions, as measured by the
0057     NA61/SHINE Collaboration.
0058   o Added option to G4HadronicParameters to control the diffraction 
0059     dissociation for nucleon projectile on target nucleus with baryon number
0060     greater than 10: by default, both projectile and target diffraction are
0061     switched off (but they are both active in the case of target nucleus with
0062     baryon number below or equal to 10; if instead the flag is set to "true",
0063     then both projectile and target diffraction are activated regardless of
0064     the target nucleus).
0065   o Added temporary check and protection in G4HadronicProcess against anomalous
0066     condition leading to rare crashes recently observed with neutronHP and
0067     fixed also rare reproducibility problems in particleHP.
0068   o Implemented Twinkling in visualization, i.e, the rhythmic variation of
0069     brightness of given touchables.
0070   o Introducing 'FALLBACK' visualisation drivers for TSGQt and VTKQt and new
0071     commands to facilitate the drawing of plots at the end of a run.
0072   o Retired "tasking" module and merged contents in "global" and "run"
0073     categories.
0074   o New meshing features in visualization. Allowing for multiple meshes in
0075     a single screen; relevant for special mesh rendering. Improved graphics
0076     representation.
0077   o Use standard install location for CMake installation scripts, now being
0078     installed in $CMAKE_INSTALL_PREFIX/lib/cmake/Geant4.
0079   o Added required configuration to be able to generate DEB/RPM packages
0080     with CPack.
0081   o Dataset environment variables are now optional in CMake builds.
0082     Consistently use G4FindDataDir() in place of std::getenv() in code for
0083     accessing data-sets.
0084   o Added support for Intel-icpx/icx compiler.
0085   o Preliminary configuration support for Qt5 and Qt6.
0086   o New set of extended examples, implementing different setups showing how
0087     to score particle fluences.
0088   o Updated tasking system to upstream PTL version 2.3.3.
0089   o Build option with VecGeom requires VecGeom-1.2.0 or higher.
0090   o Requires CLHEP-2.4.5.3 for external CLHEP installation.
0091   o New data sets: G4EMLOW-8.1, G4NDL-4.7.
0092 
0093  ----------------------------------------------------------------------------
0094 
0095                              Technical Notes
0096                              --------------- 
0097 
0098   o Tested platforms:
0099     + Linux, gcc-8.3.1.
0100       Tested on 64 bit architectures (Intel or AMD) with Linux CentOS8.
0101       Versions of Geant4 have also been compiled successfully on other
0102       Linux distributions, Ubuntu, Debian, Suse or other RedHat systems.
0103     + MacOS 12.4, Apple LLVM/clang-13.1.6 (Intel or Apple Silicon).
0104     + Windows/10 with Visual C++ 14.31 (Visual Studio 2022)
0105 
0106   o More verified configurations:
0107     + Linux, with gcc-9.3/10.3/11.2/12.1, clang-10/11.
0108     + Linux, with Intel-icc 2022.1, Intel-icx 2022.1.
0109     + MacOS 11.6 and 10.15, with Apple LLVM/clang-12.
0110     + Windows/10 with Visual C++ 14.29 (Visual Studio 2019)
0111 
0112   o External dependencies
0113     + CLHEP-2.4.5.3, suggested for external installation of the CLHEP library.
0114     + VecGeom-1.2.0, for optional use of the VecGeom geometry primitives.
0115     + PTL-2.3.3, for external installation of the PTL tasking library.
0116 
0117   o New data sets:
0118     + G4EMLOW-8.1, G4NDL-4.7.
0119 
0120  Please refer to the Geant4 User Documentation:
0121    http://cern.ch/geant4/support/user_documentation
0122  for further information about using Geant4.
0123 
0124  ----------------------------------------------------------------------------
0125 
0126 List of features and fixes included in this Beta release since 11.0.p02:
0127 
0128   o Configuration:
0129     -------------
0130     + CMake:
0131       o Added support for Intel-icpx/icx compiler and updated compilation flags
0132         for all Intel compilers.
0133       o Enable ToolsSG and backends based on use of external libraries (Qt, X11,
0134         Xm, Win32). Backends made non-mutally exclusive; removed 
0135         GEANT4_USE_TOOLSSG public CMake option.
0136       o Avoid setting LD_LIBRARY_PATH configuration on MacOS; adding paths to
0137         DLL into PATH on Windows.
0138       o Corrected logic error in checking whether module is already composed.
0139       o Deprecated tags `geant4_define_module`, `geant4_global_library_target`;
0140         decouples the source code organisation and the module/library
0141         composition commands; implementation reduced to emitting a CMake
0142         warning message on what to replace with.
0143       o Updated CMake build scripts in all modules, by replacing
0144         `geant4_global_library_target` with direct file inclusion and call to
0145         `geant4_add_category` to define library build from source modules.
0146       o Reorganised DLL import/export flags for single-module categories.
0147       o Set default value of GEANT4_BUILD_BUILTIN_BACKTRACE to OFF.
0148       o Do not use CMAKE_VERBOSE_MAKEFILE when building tests.
0149       o Rationalized declaration and use of internal builds of required
0150         externals CLHEP, zlib, expat, PTL and tools libraries.
0151       o Support declaration and composition of header-only modules and libraries.
0152       o Adding geant4_module_sources command to enable appending of
0153         headers/sources to a module after creation.
0154       o Providing GEANT4_BUILD_ENABLE_ASSERTIONS option to enable assert() in
0155         all release build modes (Release, RelWithDebInfo, MinSizeRel).
0156       o Forward `CMAKE_<LANG>_FLAGS[_<MODE>]` flags to `geant4_add_test` so that
0157         a consistent set is used through the project.
0158       o Removed retired "tasking" module and library from configuration files.
0159       o Removed deprecated functions in G4DeveloperAPI and fixed typo that
0160         prevented installation of headers.
0161       o Allow library composition to be overriden in developer builds.
0162       o Do not use "readlink -f" to support pre-Monterey macOS systems.
0163       o Adding -Og to GNU/Clang default debug flags.
0164       o Copy .clang-tidy file to build directory to assist run-clang-tidy
0165         reporting.
0166       o In G4ConfigurePkgConfigHelpers.cmake, geant4-config.in for geant4-config
0167         generation: adding new flag "--features" (add vtk and qt3d features);
0168         allow use of md5sun if openssl missing; canonicalise prefix path.
0169       o Added options --sh and --csh to geant4-config script.
0170       o In G4ConfigureGNUMakeHelpers.cmake for geant4.[c]sh, geant4.bat
0171         generation: allow full path source in zsh, sh; unset local variables at
0172         the end; introducing GEANT4_DATA_DIR, with all data-set paths relative
0173         to this.
0174       o Added commands for working with categories analagous to module commands.
0175       o Preliminary configuration support for Qt5 and Qt6.
0176       o Added required configuration to be able to generate DEB/RPM packages
0177         with CPack.
0178       o Use more standard install location for CMake files.
0179       o Remove version from default installation directories.
0180       o Rationalised interlinked PTL/TBB build options.
0181       o G4ConfigureGNUMakeHelpers.cmake (geant4.[c]sh, geant4.bat generation):
0182         use the environment variable GEANT4_DATA_DIR as top data directory; the
0183         environment variables for individual dataset commented in scripts.
0184       o Added source validation exception for G4FindDataDir generated header.
0185       o New data set G4EMLOW-8.1 and G4NDL-4.7 with new TermalScattering data.
0186       o Updated tag-IDs for 11.0-beta.
0187     + GNUMake:
0188       o Added Linux-icx.gmk configuration for Intel OneAPI DPC++ compiler.
0189         Updated compilation flags for Intel icc/icx compilers.
0190       o Enable -pthread only for MT builds in other configurations.
0191       o Retired "tasking" category and library from build.
0192 
0193   o Analysis:
0194     --------
0195     + Added UI commands for visualization: '/analysis/hn|pn/getVector'.
0196     + Changed namespace for g4tools code from "tools" to "toolx" for externals.
0197     + Use geant4_category_modules in CMake script to optionally add G4hdf5
0198       module to category.
0199 
0200   o Digits & Hits:
0201     -------------
0202     + Canonicalise implementations of custom new() and delete() operators that
0203       use G4Allocator. Removed un-needed/duplicated checks on static allocator
0204       creation in member functions.
0205 
0206   o Event:
0207     -----
0208     + Added call to G4GlobalFastSimulationManager::Flush() method in the event
0209       loop.
0210     + Canonicalise implementations of custom new() and delete() operators that
0211       use G4Allocator.
0212 
0213   o Externals:
0214     ---------
0215     + Rationalising externals builds to decouple them from the core
0216       module/category definitions.
0217     + CLHEP:
0218       o Synchronised with CLHEP-2.4.5.3.
0219     + g4tools:
0220       o Updated to g4tools 6.0.1:
0221         - Fixed compilation warnings on Intel compiler and Coverity defects.
0222         - Use thread-safe version of gl2ps-1.4.2.
0223           In gl2psPrintPostScriptPixmap(): pass greyscale, nbit in arguments
0224           to avoid a dead code issue; in gl2psPDFgroupListInit(), fixed issue
0225           for uninitialized pointer read; removed commented out code.
0226         - sg/text: corrections in update_sg() due to copy-paste error.
0227         - Moved g4tools code externals from "tools" to "toolx" module.
0228           Concerns code related to Qt, Windows, X11, Xt, OpenGL, hdf5, expat,
0229           mpi, zlib.
0230         o In toolx/X11/base_session, check in show_window() that the window is
0231           not already mapped.
0232     + ptl:
0233       o Updated to upstream PTL version v2.3.3:
0234         - New/improved support for initialization and finalization routines
0235           in ThreadPool.
0236         - Threading: fix in GetNumberOfPhysicalCpus(), to never return zero.
0237         - Fixed verbose message to cerr to be protected within verbosity level.
0238         - Fixes for C++20 compilation warnings and updates to build scripts.
0239         - Removed outdated TiMemory implementation.
0240         - Code formatting.
0241       o Minor fixes for macOS/Clang and use as a subproject.
0242       o Updated CMake install directory for PTL to match recent changes
0243         in default install directories in Geant4.
0244       o Use any existing value of PTL_SANITIZER_TYPE to set the cache value
0245         to prevent override.
0246 
0247   o Geometry:
0248     --------
0249     + management:
0250       o Get rid of heap allocations in G4BoundingEnvelope.
0251       o G4ReflectedSolid: added GetCubicVolume(), GetSurfaceArea().
0252     + navigation:
0253       o The "/geometry/run/test" UI command can now check for overlaps in
0254         parallel worlds if "/geometry/run/check_parallel" is set to 'true'.
0255       o G4Navigator: minor code improvements in ComputeSafety(), ComputeStep(),
0256         and LocateGlobalPointAndSetup().
0257       o Added constant 'kMassNavigatorId' in G4TransportationManager and make
0258         use of it in G4SafetyHelper.
0259     + solids/Boolean:
0260       o G4DisplacedSolid: added GetCubicVolume(), GetSurfaceArea().
0261     + solids/specific:
0262       o G4GenericTrap: implemented calculation of volume using analytical
0263         expression in GetCubicVolume(); in GetSurfaceArea(), improved
0264         calculation of the area of lateral faces; removed private function
0265         GetFaceCubicVolume(); private functions GetFaceSurfaceArea(),
0266         GetTwistedFaceSurfaceArea() replaced with private function
0267         GetLateralFaceArea().
0268       o G4Ellipsoid: in LateralSurfaceArea(), enhanced calculation of the
0269         lateral surface area.
0270       o G4VTwistedFaceted, G4TwistedBox, G4TwistedTrd: optimised calculation
0271         of volume and surface area.
0272       o G4VTwistedFaceted: fCubicVolume, fSurfaceArea made protected;
0273         GetCubicVolume() and GetSurfaceArea() no longer inlined and moved to
0274         source.
0275       o G4TwistedTubs: implemented GetSurfaceArea() based on analytical
0276         expressions; added private functions GetLateralArea(), GetPhiCutArea().
0277       o G4Hype: use analytical expression in GetCubicVolume() and
0278         GetSurfaceArea().
0279       o G4VTwistedFaceted: use numerical evaluation of a single integral to
0280         calculate lateral face surface area.
0281       o G4ExtrudedSolid, G4UExtrudedSolid: added default values for parameters
0282         in the constructor with two z-sections. Added default constructor to
0283         ZSection.
0284 
0285   o Global:
0286     ------
0287     + Define G4lrint as std::lrint; removed unused G4lint and G4rint.
0288     + Imported from "Tasking" module all core interfaces that only depend on PTL.
0289     + Corrected G4ErrorPropagatorData destructor.
0290     + Commented out debug printout in G4ThreadLocalSingleton constructor.
0291     + Make dataset environment variables optional in CMake builds.
0292     + G4FindDataDir: correction for windows runtime, G4MULTITHREADED flag.
0293       Use the environment variable GEANT4_DATA_DIR as top data dir.
0294     + Removed obsolete CMakeLists.txt script in "management" module.
0295       Declare "HEPGeometry" dependencies as INTERFACE as the module is
0296       header-only. Removed dependency on TBB which is not a direct dependency
0297       of the global category.
0298     + Changed date for release 11.1-beta.
0299 
0300   o Graphics Representations:
0301     ------------------------
0302     + HepPolyhedron, G4Polyhedron: added new constructors taking vertices and
0303       faces; added derived classes HepPolyhedronTetMesh, G4PolyhedronTetMesh;
0304       added SetVertex(), SetFacet() functions and made SetReferences() and
0305       InvertFacets() public methods. Implemented JoinCoplanarFacets() function,
0306       move constructor and move assignment operator.
0307     + Implemented faster version of HepPolyhedronTetMesh.
0308     + Revised HepPolyhedronEllipsoid, fixed visibility of edges in case of cut
0309       ellipsoid.
0310     + G4Visible: added "user" data member 'fInfo' from G4VMarker, with access
0311       and operator<<() functions, intended to offer the user/developer a way
0312       of communicating information.
0313     + G4VisExtent: in Transform(), use 'const auto&' to avoid copying.
0314 
0315   o Intercoms
0316     ---------
0317     + Applied set of clang-tidy modernize, readability and performance fixes.
0318 
0319   o Interfaces
0320     ----------
0321     + G4InteractorMessenger: prevent propagation of "/gui/*" commands to workers.
0322     + Fixed compilation warning on Intel compiler for shadowing data.
0323     + Preliminary build support for Qt5 and Qt6.
0324     + Use geant4_module_sources to add optional sources in CMake script.
0325       Added required G4VIS_USE_VTK_QT flag here instead of "Vtk" visualization
0326       module. Added dependency on Qt5 Widgets to "common" sub-module CMake
0327       script.
0328 
0329   o Materials
0330     ---------
0331     + G4MaterialPropertyVector, G4OpticalMaterialProperties: organise material
0332       property vectors in increasing order of energy.
0333       Modified from GitHub PR#42 (https://github.com/Geant4/geant4/pull/42).
0334     + Corrected G4UCNMicroRoughnessHelper destructor.
0335     + Applied set of clang-tidy modernize, readability and performance fixes.
0336     + G4NistManager, G4NistMaterialBuilder, G4NistElementBuilder: use G4AutoLock
0337       for code simplification.
0338     + Replaced getenv() calls for data variables with G4FindDataDir() in
0339       G4IonStoppingData, G4MicroElecMaterialStructure and G4OpticalSurface.
0340     + G4Material: fixed trivial Coverity warnings.
0341 
0342   o Parameterisations:
0343     -----------------
0344     + Added flush() method to the fast simulation models. This method allows to
0345       process the input buffer of the fast simulation model before the end of an
0346       event. It is used when particles are grouped together before the
0347       processing. The 'flush' is triggered inside the event loop of
0348       G4EventManager, when the stack is empty. The fast simulation model may
0349       add secondaries to the stack, which will then be processed by Geant4.
0350 
0351   o Particles:
0352     ---------
0353     + In G4NuclieTable, replaced getenv() calls for data variables with
0354       G4FindDataDir().
0355     + Minor code formatting.
0356 
0357   o Physics Lists:
0358     -------------
0359     + Constructors:
0360       o Replaced getenv() calls for data variables with G4FindDataDir() in data
0361         readers.
0362       o electromagnetic:
0363         - G4EmModelActivator: fixed mechanism to define PAI model per region.
0364         - In G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
0365           G4EmPenelopePhysics, G4EmStandardPhysicsSS, and G4EmLivermorePhysics
0366           use G4LinhardSorensenIonModel for GenericIon.
0367         - Adding possibility to enable new G4TransportationWithMsc for
0368           multiple-scattering. Enabled by default in G4EmStandardPhysics_option1.
0369         - G4EmBuilder: enable internal stepping in G4TransportationWithMsc
0370           if requested.
0371         - G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4:
0372           adopt identical configuration for msc, muon, hadron, and ion physics.
0373         - G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4,
0374           G4EmStandardPhysics: selection of the model for energy loss
0375           fluctuation is included in ionisation processes according to the type
0376           defined in G4EmParameters.
0377         - G4EmStandardPhysics, G4EmStandardPhysics_option3,
0378           G4EmStandardPhysics_option4: use G4GammaGeneralProcess by default.
0379         - G4GammaGeneralProcess: implemented new method GetCreatorProcess().
0380         - G4EmStandardPhysics_option4: use Penelope ionisation model for e- 
0381           below 100 keV.
0382         - G4EmBuilder: use check on process sub-type, do not substitute
0383           G4CoupledTransportation with G4TransportationWithMsc.
0384         - G4EmDNABuilder: new utility class, which provides instantiation of 
0385           standard and DNA processes/models; this reduces code duplication for
0386           DNA physics, energy intervals for DNA models are defined in one place.
0387           Added option2,3,4,6,8 configurations.
0388           Added extra utility methods to find or to build electron processes.
0389         - Made G4EmDNAPhysics the base class for DNA physics constructors.
0390           Added interface to G4EmDNABuilder.
0391         - G4EmDNABuilder, G4EmDNAPhysicsActivator: make consistent the
0392           configuration of DNA physics on top of standard physics.
0393         - Simplified code in G4EmDNAPhysics_option1, G4EmDNAPhysics_stationary,
0394           G4EmDNAPhysics_option5 and G4EmDNAPhysics_stationary_option4.
0395         - G4EmDNAPhysics_option6, G4EmDNAPhysics_option8: use "fast" option.
0396         - G4EmDNAPhysics_option7, G4EmDNAPhysics_stationary_option6,
0397           G4EmDNAPhysics_option3, G4EmDNAPhysics_stationary_option2: simplified
0398           code.
0399         - Added G4DNABrownianTransportation, SBS and IRT_syn models in
0400           G4EmDNAChemistry_option3.
0401       o gamma_lepto_nuclear:
0402         - G4EmExtraPhysics, G4EmMessenger: use C++11 keywords; suppressed 
0403           broadcasting of UI commands.
0404       o limiters:
0405         - G4SpecialCuts: added setting of process type 'fGeneral' and sub type.
0406         - G4MinEkineCuts: removed setting of process type 'fUserDefined'.
0407         - Moved G4UserSpecialCuts class from "transportation" module.
0408     + util:
0409       o G4PhysListUtil: added new utility method to access a process via
0410         sub-type, simplified methods to access hadron processes.
0411         Use dynamic_cast instead of static_cast.
0412 
0413   o Electromagnetic Processes:
0414     -------------------------
0415     + Adjoint:
0416       o G4AdjointComptonModel, G4AdjointCSManager: use updated interface
0417         to cross-section from G4VEmProcess.
0418       o G4AdjointBremsstrahlungModel: use updated interface to G4EmModelManager.
0419     + DNA:
0420       o Added G4DNAPolyNucleotideReactionProcess and G4VDNAHitModel classes for
0421         DNA damage applications.
0422       o Prefer pointer to 'const G4Material' where possible.
0423         Removed useless 'const_cast' of G4VSensitiveDetector.
0424       o Optimised IRT-syn model, use reaction radius and reaction type from the
0425         reaction table.
0426       o Deleted G4VReactionType, G4DNAReactionTypeManager, G4DNAIRT_geometries,
0427         G4DNATotallyDiffusionControlled and G4DNAPartiallyDiffusionControlled.
0428       o G4ITTransportation: Make PrepareState() more function-like, expect
0429         semicolon.
0430       o G4DNAPolyNucleotideReactionProcess: moved 'PrepareState' and 'State'
0431         macros in source file; made PrepareState() more function-like, expect
0432         semicolon; moved variable 'pMoleculeA' under G4VERBOSE.
0433       o Added condition of water material for the OUTSIDE_OF_MOTHER_VOLUME
0434         warning in G4DNAMolecularDissociation::DecayIt().
0435       o Added protection in G4DNACPA100IonisationModel for cumulative
0436         cross-section interpolation.
0437       o Added flag 'OctreeFinder' in IRT_syn's Initialize() method.
0438       o Added parameters including the chemical molecules and reaction list
0439         involved in the radiolysis.
0440       o Modified the macro in G4Molecule and G4ITType for linker problems on
0441         Windows.
0442       o Save local instances for recurrent access to particle definition in 
0443         G4DNAMillerGreenExcitationModel, G4DNARuddIonisationExtendedModel and
0444         G4DNARuddIonisationModel.
0445       o Revised code to use G4Pow and G4Log consistently.
0446       o In G4DNARuddIonisationExtendedModel, do not include ions that are not
0447         defined in G4DNAGenericIonsManager.
0448       o Fix in G4KDTree algorithm. Addressing problem report #2235.
0449         Minor code cleanup.
0450       o Added G4VUserBrownianAction class, used in G4DNABrownianTransportation
0451         and in G4DNAMolecularDissociation.
0452       o Use int64_t for molecules width integer types.
0453       o Added 'fResetScavenger' data member in G4SchedulerMessenger.
0454       o Incorporation of model based on RPWBA to transport protons
0455         at 100-300 MeV.
0456       o Added G4DNARPWBAExcitationModel and G4DNARPWBAIonisationModel.
0457       o Updated data structure to improve performance of the mesoscopic model.
0458       o Change scavenging filter of the IRT beyond 1 us.
0459       o Use thread-local flag in G4VMoleculeCounter.
0460       o Replaced std::getenv() calls for data variables with G4FindDataDir()
0461         in data readers.
0462       o Corrected DNA ion definitions in G4DNARuddIonisationExtendedModel.
0463       o Added missing headers inclusions for self-consistency.
0464     + Low Energy:
0465       o G4LivermoreGammaConversionModel, G4LivermorePhotoElectricModel and
0466         G4LivermoreGammaConversion5DModel: set Spline interpolation for EPDL97.
0467       o Fixed use of potential uninitialised pointer in
0468         G4AtomicDeexcitation::GenerateParticles(..).
0469       o Replaced getenv() calls for data variables with G4FindDataDir() in data
0470         readers.
0471       o Removed Latin-1 characters from description in banners.
0472     + Muons:
0473       o G4MuIonisation: added selection of the model for energy loss
0474         fluctuations. Use G4MuBetheBloch model above 0.2 MeV.
0475       o G4MuBremsstrahlungModel: moved low energy limit from 1 GeV to 100 MeV.
0476       o G4MuPairProductionModel: moved low energy limit from 1 GeV to 850 MeV.
0477         Some code cleanup: formatting, removed extra space lines.
0478     + Polarisation:
0479       o Prefer pointer to 'const G4Material' where possible.
0480     + Standard:
0481       o G4UrbanMscModel: moving safety computation before step limitation
0482         algorithms in order to save few instructions; should not affect results.
0483         Added two extra class members. Improved code comments.
0484         Extended cache data with 5 variables for positrons;
0485         removed unused headers; minor saving of instructions.
0486       o G4eIonisation, G4hIonisation, G4ionIonisation: added selection of the
0487         model for energy loss fluctuations.
0488       o G4PairProductionRelModel, G4eBremsstrahlungRelModel,
0489         G4PairProductionRelModel and G4eBremsstrahlungRelModel: added inclusion
0490         of headers of G4Exp, G4Pow to to make translation unit self-consistent.
0491       o In G4WentzelVIRelModel, G4WentzelOKandVIxSection,
0492         G4LindhardSorensenIonModel and G4ICRU49NuclearStoppingModel, use
0493         G4AutoLock.
0494       o G4BetheHeitler5DModel: do not instantiate G4MuonPlus, G4MuonMinus inside
0495         the model to allow usage of this class in physics lists without muons.
0496       o G4eBremsstrahlung, G4hIonisation: improved initialisation.
0497       o G4eBremsstrahlungRelModel, G4eBremParametrizedModel: code cosmetics.
0498       o Run clang-tidy, use nullptr, default and auto keywords; removed unneeded
0499         nullptr checks when deleting.
0500       o Replaced getenv() calls for data variables with G4FindDataDir() in data
0501         readers.
0502    + Utils:
0503       o New G4TransportationWithMsc specialised tranportation process; added
0504         related flag to G4EmParameters.
0505       o G4EmConfigurator implemented model per region for
0506         G4TransportationWithMsc. Updated interfaces.
0507       o G4EmTableType: added 3d peak energy in the data structure needed for
0508         Bremsstrahlung.
0509       o G4VEnergyLossProcess: fill data structure for Bremsstrahlung type of
0510         cross-section only in the master thread; do not repeat in each thread;
0511         removed ineffective cache from run time computation of cross-section.
0512       o G4EmParametersMessenger: improved instantion order of UI directories;
0513         directories are created only in the master thread.
0514       o G4EmModelManager: updated interface to Initialise() method;
0515         removed obsolete method Update().
0516       o G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering: use updated
0517         method of G4EmModelManager.
0518       o G4EmParametersMessenger: restored UI command "/process/em/integral".
0519       o G4VEmProcess: updated methods to access cross-section at run time;
0520         implemented new virtual method GetCrossSection(); removed unused methods.
0521       o G4EmCalculator: use updated method from G4VEmProcess.
0522         Fixed variable shadowing.
0523       o G4EmUtility: a new utility class.
0524       o G4VMultipleScattering: updated arguments for AddEmModel(..),
0525         SetEmModel(..), and EmModel(..) methods from G4VEmModel* to
0526         G4VMscModel*.
0527       o G4LowEnergyEmProcessSubType: added sub-type ID (66) for DNAScavenger
0528         process.
0529       o G4EmTableUtil: new utility to perform common computations at
0530         initialisation.
0531       o G4VEmModel, G4EmCalculator, G4EmConfigurator: use G4EmUtility.
0532       o G4VEmModel, G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering
0533         and G4LossTableManager: use new utiity methods; updated sampling of
0534         random elements in compounds and random isotopes; code cleanup.
0535       o G4EmLowEParameters: change default photon database to EPICS2017.
0536       o G4VEmProcess, G4VEnergyLossProcess: for integral method, use master
0537         thread cross-section type and pointers directly; simplifying
0538         initialisation.
0539       o G4EmParameters: update flag to tri-state for enabling it.
0540         Added extra parameter: type of fluctuation model.
0541       o G4EmExtraParametersMessenger: fixed typo.
0542         Addressing problem report #2492.
0543       o G4VEnergyLossProcess: moved out common computations to G4EmTableUtil;
0544         use G4EmDataHandler and removed unused headers/methods. Fixed trivial
0545         Coverity warnings.
0546       o G4VEnergyLossProcess, G4EmDataHandler: improved StorePhysicsTable(..)
0547         method and debug printouts.
0548       o G4EmParametersMessenger: added extra UI command to define fluctuations
0549         model.
0550       o Code cleanup with clang-tidy: use default constructors; nullptr, auto
0551         and using keywords.
0552     + Xrays:
0553       o Code cleanup with clang-tidy: use default constructors; nullptr and
0554         auto keywords.
0555 
0556   o Generic Processes:
0557     -----------------
0558     + Management:
0559       o G4VDiscreteProcess: added virtual method GetCrossSection()
0560         needed for integral approach both in hadronics and EM modules.
0561         Added virtual method MinPrimaryEnergy(..).
0562       o G4VProcess: introduced new virtual method GetCreatorProcess().
0563     + Optical:
0564       o Prefer pointer to 'const G4Material' where possible.
0565       o Code cleanup with clang-tidy: use default constructors; auto keyword;
0566         remove 'void' function argument; don't check for nullptr before delete;
0567         use operator==() for string comparisons.
0568     + Parameterisation:
0569       o Added flush() method to the fast simulation models. This method allows
0570         to process the input buffer of the fast simulation model before the end
0571         of an event. It is used when particles are grouped together before the
0572         processing. The 'flush' is triggered inside the event loop of
0573         G4EventManager, when the stack is empty. The fast simulation model may
0574         add secondaries to the stack, which will then be processed by Geant4.
0575     + Solids State:
0576       o In G4LatticeReader, replaced getenv() calls for data variables with
0577         G4FindDataDir().
0578     + Transportation:
0579       o Revised implementation of G4CoupledTransportation: now inheriting from
0580         G4Transportation and removed duplicated variables and methods; use new
0581         constant 'kMassNavigatorId' from G4TransportationManager.
0582       o G4CoupledTransportation: set flags from G4Transportation: replaced
0583         'fFirstStepInAnyVolume' with 'fFirstStepInVolume'; replaced
0584         'fAnyGeometryLimitedStep' with 'fGeometryLimitedStep'; removed wrong
0585         check in case of zero steps.
0586       o G4Transportation: removed wrong check in case of zero steps; set step
0587         status on volume boundary. Removed non-working check for any field.
0588       o Moved G4UserSpecialCuts to "physics_lists/constructors/limiters" module.
0589       o Removed useless 'const_cast' of G4VSensitiveDetector.
0590 
0591   o Hadronic Processes:
0592     ------------------
0593     + Replaced getenv() calls for data variables with G4FindDataDir() in data
0594       readers.
0595     + cross_sections
0596       o G4CrossSectionDataStore, G4VCrossSectionDataSet: preparation for
0597         integral method; removed unused methods.
0598     + management
0599       o G4HadronicProcess: temporary check and protection against anomalous
0600         condition leading to rare crashes recently observed with neutronHP; when a
0601         secondary particle has a huge kinetic energy (i.e. higher than the max
0602         energy allowed - by default 100 TeV), throw a warning exception and
0603         neglect the particle concerned (i.e. corresponding G4Track object is not
0604         created). Propagate the information on parent resonance (in the
0605         FillResults() method, from G4HadSecondary to G4Track).
0606       o G4HadronicProcess: implemented integral method.
0607       o G4HadXSTypes, G4HadXSHelper: new helper classes.
0608     + models/binary_cascade
0609       o G4GeneratorPrecompoundInterface, G4BinaryCascade: propagate the
0610         information on parent resonance (in the ApplyYourself() method, from
0611         G4ReactionProduct to G4HadSecondary; in other methods, from
0612         G4KineticTrack to G4ReactionProduct).
0613     + models/cascade
0614       o Fixed wrong comparison between two arrays in findCrossSection(..) for
0615         G4CascadePPChannel, G4CascadeNPChanneland G4CascadeNNChannel.
0616     + models/de_excitation
0617       o G4Evaporation, G4UnstableFragmentBreakUp: completed fix about production 
0618         of unphysical fragments; improved debug printout.
0619         Addressing problem report #2355.
0620       o G4EvaporationChannel, G4Evaporation: added limitation (A < 30) on decay
0621         of unphysical fragment, allowing for removal of light unphysical states
0622         and providing improved isotope production for the spallation fragments.
0623       o G4EvaporationChannel, G4EvaporationProbability, G4VEmissionProbability,
0624         G4VCoulombBarrier, G4CoulombBarrier: use new method from G4Fragment.
0625       o G4VEvaporationChannel, G4EvaporationChannel, G4VEmissionProbability
0626         and G4EvaporationProbability: improved inverse cross-section
0627         parameterisation at threshold.
0628       o G4PhotonEvaporation: fixed situation when excited fragments are created
0629         with excitation energy not corresponding to level energies from
0630         G4LEVELGAMMADATA. Addressing problem report #2434.
0631         Also fixing event non-reproducibility for the case when radioactive
0632         decay is enabled on top of any physics list.
0633         Simplified handling of floating levels. For floating levels check if
0634         levels with the same energy can be used for sampling transitions;
0635         code clean-up.
0636       o G4EvaporationProbability: reduced usage of cache.
0637       o G4ExcitationHandler: use IsLongLived() flag from G4Fragment to decide
0638         if de-excitation of the fragment should be stopped.
0639       o G4VEmissionProbability: limit number of bins for numerical integration
0640         to 50.
0641       o G4VEmissionProbability: updated sampling of the emitted fragment energy
0642         needed. Addressing proble report #2443.
0643         Fixed sampling of tail of distribution; added numerical protections.
0644         More strong limit on accuracy of integrated probability; improved debug
0645         printout.
0646       o G4CoulombBarrier: tuned parameters.
0647       o G4LevelManger, G4NuclLevel: removed verbose printouts; code clean-up.
0648       o G4NuclearLevelData: use G4AutoLock.
0649       o Use G4BestUnit in G4DeexPrecoParameters::StreamInfo().
0650       o Code cleanup.
0651     + models/em_dissociation
0652       o G4EMDissociation: updated according to G4Fragment modifications.
0653     + models/inclxx
0654       o G4INCLParticle, G4INCLEventInfo, G4INCLNucleus, G4INCLDeltaDecayChannel,
0655         G4INCLXXInterface: set and propagate the information on parent resonance.
0656       o G4INCLPiNElasticChannel: erase the information on parent resonance in
0657         the case of charge exchange.
0658       o G4INCLPiNToDeltaChannel, G4INCLPiNToOmegaChannel, G4INCLPiNToEtaChannel,
0659         G4INCLPiNToMultiPionsChannel, G4INCLNpiToLKpiChannel,
0660         G4INCLNpiToLK2piChannel, G4INCLNpiToNKKbChannel, G4INCLNpiToSK2piChannel,  
0661         G4INCLNpiToSKpiChannel, G4INCLNpiToSKChannel, G4INCLNpiToLKChannel,
0662         G4INCLNpiToMissingStrangenessChannel: erase the information on parent
0663         resonance in inelastic channels (where the nucleon and pion initial-state
0664         objects are re-used for the final state).
0665     + models/lend
0666       o Fixed potential use of pointer after free in nf_utilities/nfu_realloc(..)
0667         function.
0668     + models/particle_hp
0669       o G4ParticleHPContAngularPar: added protections against evaluations of
0670         arrays at negative index (-1), fixing rare reproducibility problems and
0671         rare crashes that have been recently observed.
0672       o G4ParticleHPContEnergyAngular: fixed Coverity report. Expected no effect.
0673       o G4ParticleHPThermalScatteringNames: updated to use new ThermalScattering
0674         data in G4NDL-4.7.
0675     + models/parton_string
0676       o Allow control of diffraction for baryon number greater than 10 in
0677         G4FPFParameters. The option comes from G4HadronicParameters and the
0678         default behaviour remains the same (i.e. off).
0679       o Fixes to get isotropic distributions in annihilations at rest: in
0680         G4DiffractiveSplitableHadron, set proper parton index.
0681         In G4DiffractiveExcitation, in the CreateStrings() method, take into
0682         account that strings are created in G4FTFAnnihilation; by default, the
0683         method CreateStrings() creates a string from a wounded nucleon/hadron,
0684         but this is not needed in the case of annihilation.
0685         In G4FTFAnnihilation, removed splitting of hadron; fixed bugs in the 
0686         calculations of kinematical properties; set quark momenta at string ends,
0687         to properly account for string order on rapidity.
0688       o G4HadronBuilder: added a new argument in constructor, and a new data
0689         member to the class. This is needed to set a special mixing of
0690         pseudo-scalar and vector mesons for s-sbar mesons. Introduced to
0691         describe phi-meson production in proton-proton interactions measured
0692         by NA61/SHINE.
0693       o G4VLongitudinalStringDecay: tuned the probability of pseudo-scalar meson
0694         production, to describe K*0 meson production in proton-proton
0695         interactions according to NA61/SHINE data. Introduced also a new
0696         parameter (probability of pseudo-scalar meson production in s-sbar
0697         mesons) to increase the phi-meson yield in proton-proton interactions.
0698         Fixed a bug in mixing eta_prime and phi mesons in the quark systems
0699         d-dbar, u-ubar and s-sbar.
0700       o G4LundStringFragmentation: introduced few changes for special treatment
0701         of the last string decay in the case of ss-q or ss-qq, ss-sbar sbar last
0702         string decay. This improves the yield of anti-Xi hyperons in
0703         proton-proton interactions according to the NA61/SHINE data.
0704       o G4VSplitableHadron: changed the method Splitting() from "protected" to
0705         "public" (needed to change the status of SplitableHadron in
0706         G4FTFAnnihilation, to get isotropic distributions in annihilations at
0707         rest).
0708     + models/radioactive_decay
0709       o Cosmetics in G4RadioactiveDecay::StreamInfo().
0710     + models/theo_high_energy
0711       o G4TheoFSGenerator: propagate the information on parent resonance (in
0712         the ApplyYourself() method, from G4ReactionProduct to G4HadSecondary).
0713     + processes
0714       o Prefer pointer to 'const G4Material' where possible.
0715     + util
0716       o G4Fragment: added 'IsLongLived' flag and Get/Set methods needed for the
0717         de-excitation module; clean-up inline methods.
0718         Fixed computation of binding energy for hypernuclei; added
0719         a new private method to recompute ground state mass, excitation energy
0720         and to check consistency of input; left inlined only simple methods;
0721         added new methods SetZAandMomentum(..) and RecomputeGroundStateMass();
0722         improved comments and warning messages.
0723       o G4HadronicParameters: added flags for switching on/off the integral 
0724         approach for hadron elastic and, independently, inelastic processes; 
0725         by default, it is enabled for inelastic. 
0726         Moved G4Threading header to source.
0727       o Added option to G4HadronicParameters to control the diffraction 
0728         dissociation for nucleon projectile on target nucleus with baryon
0729         number greater than 10: by default, both projectile and target
0730         diffraction are switched off (but they are both active in the case
0731         of target nucleus with baryon number below or equal to 10; if instead
0732         the flag is set to "true", then both projectile and target diffraction
0733         are activated regardless of the target nucleus).
0734       o G4KineticTrack, G4HadSecondary, G4ReactionProduct, G4DecayKineticTracks,
0735         G4DecayStrongResonances: propagate the information on parent resonance.
0736 
0737   o Run
0738     ---
0739     + Imported implementations of task-based interfaces/implementations from
0740       the "Tasking" module. See History.tasking file for History of tasking
0741       code.
0742     + Added new G4DNAScavenger in PhysicsListHelper for DNA processes.
0743 
0744   o Tasking
0745     -------
0746     + Retired module. Contents merged in "global" and "Run" categories.
0747 
0748   o Track & Tracking
0749     ----------------
0750     + In G4ParticleChangeForTransport, simplified UpdateStepForAlongStep(),
0751       assuming that transportation is always the first process.
0752       Apply proposed step length; further simplified UpdateStepForAlongStep()
0753       method, assuming that transportation is always the first process.
0754     + Only set step status of 'fGeomBoundary' when on volume boundary.
0755     + In G4SteppingManager, refactor and simplify processing of secondaries;
0756       use new virtual method GetCreatorProcess() when processing secondaries.
0757       Corrected 'ProcessDefinedStep' for AtRest case.
0758       Removed check on cuts and removed dependence of tracking from EM physics;
0759       real implementation of ApplyCut() is done within EM physics classes.
0760       Merged G4SteppingManager translation units.
0761     + G4Track: added methods to get/set information on (short-lived) parent
0762       resonance.
0763 
0764   o Visualization:
0765     -------------
0766     + Updated build scripts and internal dependencies.
0767     + Preliminary build support for Qt5 and Qt6.
0768     + management:
0769       o Implemented Twinkling, i.e, the rhythmic variation of brightness of
0770         given touchables: in G4VVisCommand added Twinkle() method; exploit
0771         twinkling in UI commands in G4VisCommandsTouchable and
0772         G4VisCommandsViewer.
0773       o Re-worked and rationalised special mesh rendering utilities.
0774         The idea is that these are "standard" functions that are optional.
0775         They are optimised for OpenGL but they also work fine for ToolsSG and
0776         Qt3D. An attempt to draw a mesh with any other driver will result in a
0777         warning and only the container will be drawn. Other drivers will have to
0778         implement their own AddCompound(...G4Mesh...) function or choose to use
0779         the standard functions or some thereof.
0780       o Take advantage of recent developments in HepPolyhedron for rendering:
0781         conversion of tetrahedra to enclosing polyhedron removing inner surfaces;
0782         conversion of boxes to enclosing polyhedron removing inner surfaces.
0783         Also take advantage of developments in G4PhysicalVolumeModel:
0784         when a mesh has been found, an artificial node is created and added
0785         to the PVPath whose physical volume points to the parameterisation.
0786         It is used in G4VSceneHandler to transmit the material name so that,
0787         for example, the Qt viewer scene tree shows items by material. In the
0788         case of a medical phantom, the materials are usually given the name
0789         of the organ, so users can select on them.
0790       o G4VisCommandsViewer: "/vis/viewer/centreOn" and "centreAndZoomInOn":
0791         only fly and twinkle if 'KernelVisitElapsedTimeSeconds < 0.1'. It is
0792         not feasible for complex scenes; in that case go straight to requested
0793         volume without flying and twinkling.
0794         Introducing "/vis/viewer/resetCameraParameters" UI command, resetting
0795         *only* the camera parameters (view direction, etc.).
0796       o G4VSceneHandler: added utility function Draw3DRectMeshAsDots(..); for a
0797         rectangular 3-D mesh, draw as coloured dots, one dot randomly placed in
0798         each visible cell. Tidy Draw3DRectMeshAsDots().
0799         Allow for multiple meshes in a single screen; relevant for special mesh
0800         rendering. Renamed 'PseudoSceneFor3DRectMeshAsDots' to
0801         'PseudoSceneFor3DRectMeshPositions'; serves both dots and surfaces.
0802         Added 'Draw3DRectMeshAsSurfaces'.
0803         Make sure dots (markers) are treated as "hidden", i.e., use the z-buffer
0804         like other primitives (the default is "non-hidden").
0805         Make sure dots and vertices are in local coordinate system and ask the
0806         rendering train to transform them to world coordinates in the normal
0807         way through BeginPrimitives(..).
0808         Replaced 'NameAndColour' by 'NameAndVisAtts'.
0809         Exploit move operator when creating polyhedra for Special Mesh Rendering.
0810         Numerous improvements to comments and messaging.
0811       o Introducing drawing of parameterised tetrahedral mesh.
0812         G4VSceneHandler::DrawTetMeshAsDots(): default tet mesh drawing.
0813       o Ensure X-geometry string is copied correctly to a new viewer.
0814       o G4VisCommandsCompound: improved command guidance of "/vis/open".
0815       o G4VisCommandsViewer: improved command guidance of "/vis/viewer/create".
0816       o G4VisParameters: added new accessors IsWindowLocationHintX/YNegative().
0817       o G4VisCommandsTouchable: augment "/vis/touchable/draw", added Boolean
0818         argument: if true, draw the extent (bounding box); Default false.
0819         In "/vis/touchable/dump", fix missing dump of vis attributes.
0820       o G4VViewer: added data member and access method for
0821         'KernelVisitElapsedTimeSeconds'. This is measured in ProcessView().
0822       o In G4VisExecutive, introducing 'FALLBACK' drivers for TSGQt and VTKQt.
0823         A FALLBACK vis driver is selected if the user chooses a UI session that
0824         is not compatible with the requested driver. For example, if the user
0825         has built Geant4 with Qt, the TSGQt driver will be available and be
0826         the "default" driver, so "/vis/open TSG" will attempt to open TSGQt. But
0827         if the user has chosen a dumb terminal session, the vis manager selects
0828         TSGX11, for example, instead.
0829       o Improved messaging for the case that a driver is not found in the
0830         candidate list.
0831       o Introduced compound command: "/vis/plot <h1|h2> <id>".
0832         This is the first part of a programme to facilitate the drawing of
0833         plots (if any have been registered with the analysis manager) at the
0834         end of a run. At the moment only the ToolsSG vis driver can offer this,
0835         so the vis manager issues appropriate messages. 
0836         Later, we hope to introduce something like "/vis/reviewPlots", which
0837         will allow the user to view all available plots in sequence.
0838       o G4VisManager: added access method: IsEnabled(). Register the new
0839         commands. In EndOfEvent(), protect view checking with mutex lock
0840         in MT mode, and deal better with the case of scene requesting no kept
0841         events (greatly speeds plotting).
0842         Only print list of available histograms if more than one per category.
0843         Fixed crash in G4VisManager::GeometryHasChanged() observed in example
0844         AnaEx01. GeometryHasChanged() is a method that is called by the run
0845         manager. Sometimes the user chooses to delete the existing geometry
0846         tree and ask the run manager to construct a new detector geometry.
0847         Previously existing vis models of the geometry become invalid and the
0848         vis manager had to pick up the new geometry.
0849         The vis manager removes invalid models from the vis scenes and now adds
0850         the new version of the world back in. Other types of models, trajectory
0851         drawing, for example, if specified in the original scene, are kept in
0852         the new version of the scene.
0853       o G4VisCommandsSceneAdd: new command "/vis/scene/add/plotter", to add
0854         G4PlotterModel to end-of-run list.
0855         Adapted "/vis/scene/add/volume" UI command to new
0856         G4PhysicalVolumesSearchScene.
0857       o G4VisCommandsCompound: introducing "/vis/plot <h1|h2> <id>" command.
0858       o G4Scene: redefined IsEmpty().
0859       o G4VisCommandsViewerSet: improved messaging for
0860         "/vis/viewer/set/lineWidth"; this simply prints a message saying
0861         how *actually* to change line width.
0862       o Introducing "/vis/viewer/set/specialMeshRenderingOption <dots|surfaces>"
0863         UI command; "dots" draw one dot per mesh point; "surfaces" group mesh
0864         points by colour and material and compute the outer surface or envelope,
0865         removing internal shared faces. So far, only the "dots" option is
0866         implemented for some drivers.
0867       o Introducing "/vis/viewer/set/lineWidth" UI command, a do-nothing command
0868         that tells how to change line width.
0869       o Implemented "/vis/reviewPlots" UI command.
0870       o G4PlotterManager: removed not used inclusion of <tools/xml/xml_style>.
0871       o G4VisCommandsSceneAdd: changed the default width of axes added to the
0872         scene with automatic length and width determination.
0873     + modeling:
0874       o G4Mesh: augmented available data for 3D rectangular mesh.
0875         Programmed for parameterised tetrahedron mesh.
0876         Simplified algorithm: now finding 1-deep rectangular meshes such as
0877         G4PhantomParameterisation. Added 'fpParameterisedVolume' pointer and
0878         accessor.
0879       o G4PhysicalVolumeModel: added 'LocalExtent' and 'GlobalExtent' to method
0880         GetAttDefs(). In TouchableProperties, added 'fTouchableFullPVPath'.
0881         Added modifiers; for AddCompound(mesh), provide an artificial node as
0882         an (optional) hook for anything that might be generated.
0883       o Migrated G4PhysicalVolumesSearchScene and G4TouchablePropertiesScene
0884         to use 'fTouchableFullPVPath'.
0885       o Retired G4BoundingSphereScene and G4PhysicalVolumeSearchScene.
0886         G4BoundingSphereScene accumulated bounding spheres and often
0887         overestimated the extent of the scene; it is now superseded by
0888         G4BoundingExtentScene. G4BoundingExtentScene deals directly with
0889         extents, which makes it neater and more tightly estimates the overall
0890         extent of the scene.
0891       o G4PhysicalVolumeSearchScene is superseded by
0892         G4PhysicalVolumesSearchScene. G4PhysicalVolumesSearchScene finds all
0893         occurrences of a physical volume and returns a "findings vector".
0894         Removed last ambiguous and misleading argument in the constructor.
0895       o G4PseudoScene: added AddCompound(const G4Mesh&) method; if special mesh
0896         rendering is set, this catches mesh candidates (certain types of
0897         parameterisations) and avoids descending into the parameterisations.
0898       o G4PhysicalVolumeModel: added SetSpecialMeshRendering(true) to avoid
0899         traversing (certain types of) parameterisations (see above).
0900         Eliminated goto statements.
0901       o Allow arrow proportions to be greater than 1/100. Produces more visible
0902         arrows for field visualisation and also obeys the input parameters more
0903         closely.
0904     + externals/gl2ps:
0905       o Fixed Coverity warnings in gl2ps.
0906     + gMocren:
0907       o G4GMocrenFileSceneHandler: removed redundant header inclusion.
0908     + OpenGL:
0909       o G4OpenGLSceneHandler: in AddCompound(..), use base class utility
0910         G4VSceneHandler::Draw3DRectMeshAsDots(..); for parameterised tetrahedron
0911         mesh, call default G4VSceneHandler::DrawTetMeshAsDots(); added missing
0912         return statement for unimplemented cases; code tidy.
0913       o Retired display list re-use and display list limit.
0914       o Added G4gl2ps, a class frontend to tools/gl2ps intended to be used by
0915         OpenGL and OpenInventor; does not depend directly of OpenGL.
0916       o Have G4OpenGLViewer use the thread safe tools/gl2ps.
0917       o Use StandardSpecialMeshRendering(mesh).
0918     + OpenInventor:
0919       o G4OpenInventorViewer: removed misleading obsolete comment regarding
0920         kernel visit in the case of a change in vis attribute modifiers.
0921       o G4OpenInventorQtExaminerViewer: fixed compilation warning on Intel
0922         compiler for shadowing data.
0923       o Have G4OpenGLOpenInventorViewer and SoGL2PSAction using the thread safe
0924         tools/gl2ps.
0925    + Qt3D
0926       o G4Qt3DViewer: re-implemented wheelEvent() for perspective projection;
0927         now taking into account the extent of the scene.
0928       o G4Qt3DSceneHandler:in AddCompound(..), use base class utility
0929         G4VSceneHandler::Draw3DRectMeshAsDots(..).
0930       o G4Qt3DSceneHandler::AddCompound(): for parameterised tetrahedron mesh,
0931         call default G4VSceneHandler::DrawTetMeshAsDots().
0932       o G4Qt3DSceneHandler: updated AddPrimitive(..) to current usage.
0933         Commented out line elimination in AddPrimitive(..), as too expensive for
0934         a large polyhedron; allow the graphics-reps utilities to optimise this.
0935         Use StandardSpecialMeshRendering(mesh).
0936       o Fixed compilation warnings about shadowing.
0937     + ToolsGS:
0938       o G4ToolsSGViewer: reimplement wheel_rotate() for perspective projection;
0939         now taking into account the extent of the scene.
0940         Currently, the ToolsSG viewer cannot draw trajectories in MT mode, so
0941         in function SwitchToMasterThread() we draw any events that have been
0942         kept by the vis manager. It fixes an issue where plots were being drawn
0943         twice.
0944       o Reactivate G4ToolsSGQtGLES::IsUISessionCompatible(), paves way for
0945         permitted instantiation of multiple TSG drivers.
0946       o Access G4VVisCommand::G4VisManager pointer through static function
0947         GetVisManager() to prevent DLL issues on Windows.
0948       o G4ToolsSGSceneHandler: in AddPrimitive(), define dots as a single pixel;
0949         Use GetMarkerSize() for circles and squares.
0950         In AddCompound(): for parameterised tetrahedron mesh, call default
0951         G4VSceneHandler::DrawTetMeshAsDots().
0952         Adding warning message if plot cannot be found.
0953         In SetPlotterHistograms(), suppressed "/control/verbose" messages for
0954         "/analysis/*/get*" commands.
0955         In AddPrimitive(..), comment out common line elimination, as too
0956         expensive for a large polyhedron; allow the graphics-reps utilities to
0957         optimise this. Use StandardSpecialMeshRendering(mesh).
0958       o Changed namespace for g4tools code from "tools" to "toolx" for externals.
0959     + Vtk:
0960       o Moved setting of G4VIS_USE_VTK_QT flag to "interfaces" module.
0961 
0962   o Data Sets:
0963     ---------
0964     + G4EMLOW-8.1:
0965       o Added DNA files for the RPWBA models.
0966     + G4NDL-4.7:
0967       o Updated "ThermalScattering" component, obtained from thermal scattering
0968         data from JEFF-3.3, and adding the ENDF/BVIII-0 materials not in
0969         JEFF-3.3, coupled to JEFF-3.3 nuclear cross-sections.
0970 
0971   o Examples:
0972     --------
0973     + Updated reference outputs, macros, READMEs and scripts.
0974     + advanced/air_shower
0975       o Define all material properties in order of increasing energy.
0976     + advanced/amsEcal
0977       o Prefer pointer to 'const G4Material' where possible.
0978     + advanced/brachytherapy
0979       o Migration to C++11/14/17 features.
0980     + advanced/ChargeExchangeMC
0981       o CexmcHadronicProcess: disabled integral method, as not applicable to
0982         this example.
0983     + advanced/eRosita
0984       o Replaced getenv() calls for data variables with G4FindDataDir().
0985     + advanced/hadrontherapy
0986       o Prefer pointer to 'const G4Material' where possible.
0987     + advanced/ICRP110_HumanPhantoms
0988       o Use special mesh rendering.
0989       o Corrected error in reading the first voxels (in x=0, y=0).
0990       o Migration to C++11/14/17 features.
0991     + advanced/iort_therapy
0992       o Simplified calls to SetProductionCut().
0993     + advanced/microbeam
0994       o Moved back to original switching field value.
0995     + advanced/STCyclotron
0996       o Removed no-op lines; simplified calls to SetProductionCut().
0997     + basic/B3
0998       o Set new analysis file name for the second run in run2.mac to avoid
0999         overwriting the output from the first run.
1000     + extended/electromagnetic/TestEm3
1001       o Prefer pointer to 'const G4Material' where possible.
1002     + extended/electromagnetic/TestEm5
1003       o Allow changing the gun position via UI command.
1004     + extended/electromagnetic/TestEm9
1005       o Updated all user actions: more correct count of creator processes;
1006         use C++11 keywords; removed not needed headers; moved ScoreNewTrack(..)
1007         from Tracking to Stepping action class.
1008     + extended/electromagnetic/TestEm15
1009       o Added description of UI commands to control G4BetheHeitler5DModel.
1010     + extended/eventgenerator/particleGun
1011       o Updated reference in PrimaryGeneratorAction2.
1012     + extended/exoticphysics/monopole
1013       o G4MonopoleTransportation: set step status on volume boundary.
1014       o Removed useless 'const_cast' of G4VSensitiveDetector.
1015     + extended/hadronic/Hadr03
1016       o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1017     + extended/hadronic/Hadr05
1018       o Prefer pointer to 'const G4Material' where possible.
1019       o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1020     + extended/hadronic/Hadr06
1021       o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1022     + extended/hadronic/Hadr07
1023       o TrackingAction: print ions with zero meanLife.
1024       o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1025     + extended/hadronic/NeutronSource
1026       o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1027     + extended/hadronic/ParticleFluence
1028       o New set of examples implementing different setups showing how to score
1029         particle fluences (Sphere, Concentric Spheres, Layer, Calo).
1030     + extended/medical/dna/chem4
1031       o Added macro commands to control chemical molecules and reactions.
1032       o Minor correction for reaction type in macro file beam.in.
1033       o Use thread-local flag in G4VMoleculeCounter.
1034     + extended/medical/dna/chem5
1035       o Use thread-local flag in G4VMoleculeCounter.
1036     + extended/medical/dna/chem6
1037       o Adding condition for only one event, to avoid potential FPE crash.
1038       o Added PhysicsListMessenger.
1039       o Added short chemical reaction list.
1040       o Use thread-local flag in G4VMoleculeCounter.
1041       o Added missing headers inclusion for self-consistency.
1042     + extended/medical/dna/dnaphysics
1043       o In main(), enable visualisation only in interactive mode;
1044         use G4RunManagerFactory.
1045       o PhysicsList: added RadioactiveDecayPhysics.
1046     + extended/medical/dna/microyz
1047       o Added UI commands for TrackerSD radius selection.
1048       o Added missing headers inclusion for self-consistency.
1049     + extended/medical/dna/moleculardna
1050       o New example showing how to simulate physics, physico-chemistry and
1051         chemistry processes in DNA geometries, for simulating DNA damage.
1052     + extended/medical/dna/scavenger
1053       o Use thread-local flag in G4VMoleculeCounter.
1054     + extended/medical/dna/spower
1055       o In main(), enable visualisation only in interactive mode;
1056         use G4RunManagerFactory.
1057     + extended/optical/OpNovice2
1058       o Added new macro complexRindex.mac, using dielectric-metal surface with
1059         the surface having a complex index of refraction.
1060       o Added new histograms to record separately Fresnel reflection, TIR,
1061         absorption, etc.
1062       o Use new histos to plot spike reflection/absorption vs angle on surface
1063         (useful for complex refractive index).
1064       o PrimaryGeneratorMessenger: fixed command /opnovice2/gun/randomDirection.
1065         Based on GitHub PR#33 (https://github.com/Geant4/geant4/pull/33).
1066       o Added local SteppingVerbose to print velocity with /tracking/verbose 1.
1067     + extended/parallel/MPI
1068       o Removed use of obsolete G4DeveloperAPI functions from CMake script.
1069       o Changed namespace for g4tools code from "tools::mpi" to "toolx::mpi".
1070     + extended/parameterisations/Par04
1071       o Added python training scripts.
1072       o Added model conversion to ONNX and LWTNN to the training script.
1073       o Fixed warnings and lwtnn macro.
1074       o Changed visualization scripts for fast simulation.
1075       o Added new control histograms.
1076       o Changed extension of macros from .in to .mac.
1077     + extended/radioactivedecay/Activation
1078       o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1079     + extended/radioactivedecay/rdecay01
1080       o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1081 
1082  ----------------------------------------------------------------------------
1083