Back to home page

EIC code displayed by LXR

 
 

    


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

0001 
0002                   Geant4 11.0-beta-01 Release Notes
0003                   ---------------------------------
0004 
0005                                                             25 June 2021
0006 
0007                  Migration Notes & Main New Features
0008                  -----------------------------------
0009 
0010   o Requiring C++17 as minimum standard to compile Geant4.
0011     Allowing also compilation against C++23 with CMake 3.20 and newer.
0012   o Bumped minimum CMake version to 3.12.
0013   o Updated external PTL module to version v2.0.0.
0014   o Added Boolean parameter for enabling Spline in constructor of the
0015     PhysicsVector classes.
0016   o Removed deprecated classes: G4LPhysicsFreeVector, G4PhysicsLnVector
0017     and G4PhysicsOrderedFreeVector.
0018   o New G4SteppingVerboseWithUnits class, an alternative to G4SteppingVerbose
0019     with printout of proper units. Simplified way of defining a user-specific
0020     stepping verbose, that is now common to all sequential, MT and tasking
0021     modes.
0022   o Added maps for faster search based on name in solids, regions and
0023     volumes stores.
0024   o Extended cylindrical scoring mesh to tube and tube segment.
0025   o Added new unit definitions for Time, Velocity and Momentum in G4UnitsTable.
0026   o General code cleanup in EM modules; removed obsolete model and processes,
0027     removed G4EmProcessOptions class.
0028   o Introducing quantum entanglement of e+ annihilation. Currently implemented
0029     only in G4eplusAnnihilation and G4LivermorePolarizedComptonModel.
0030   o Updated EM integral approach by introduction of a cross-section shape type
0031     including cross-section shape with 2 maxima.
0032   o Updates to G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd
0033     energy area.
0034   o Fixed model per region definition for all base processes G4VEmProcess,
0035     G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility for
0036     energy loss processes.
0037   o New class G4OpticalMaterialProperties, a store for optical material
0038     properties and allow use of predefined optical material properties.
0039   o Added new IRT-syn model for DNA.
0040   o General code clean-up in hadronic processes and models; removed obsolete
0041     and deprecated classes; removed obsolete "rpg" model.
0042   o Removed obsolete classes G4RadioactiveDecay and G4RadioactiveDecaymessenger.
0043   o Introduced a new threshold parameter in radioactive-decay for analogue mode
0044     to kill very long radioactive decays at rest of nuclides happening later
0045     than such threshold.
0046   o Updated physics lists to use a uniform approach for verbosity.
0047   o G4RunManagerFactory: set default run manager type to be Tasking.
0048   o Corrected way to count the number of events processed in a worker thread
0049     when using G4TaskRunManager.
0050   o Extended G4UIWin32 driver with new features.
0051   o New ToolsSG (TSG) visualisation package based on g4tools, providing four
0052     new (mutually exclusive) visualisation drivers: TOOLSSG_X11_GLES,
0053     TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.
0054   o Introducing G4Mesh, a light class that encapsulates and validates
0055     visualisation of a nested parameterisation.
0056   o Removed deprecated functions in visualization.
0057   o Build option with VecGeom requires VecGeom-1.1.16 or higher.
0058     Added new example demonstrating interface with VecGeom navigator.
0059   o Requires CLHEP-2.4.4.2 for external CLHEP installation.
0060   o New data set: G4EMLOW-7.17.
0061 
0062  ----------------------------------------------------------------------------
0063 
0064                              Technical Notes
0065                              --------------- 
0066 
0067   o Tested platforms:
0068     + Linux, gcc-8.3.1.
0069       Tested on 64 bit architectures (Intel or AMD) with Linux CentOS8.
0070       Versions of Geant4 have also been compiled successfully on other
0071       Linux distributions, Ubuntu, Debian, Suse or other RedHat systems.
0072     + MacOS 11.4, Apple LLVM/clang-12.0.5
0073     + Windows/10 with Visual C++ 14.28 (Visual Studio 2019)
0074 
0075   o More verified configurations:
0076     + Linux, 9.3.0/10.2.0/11.1.0, clang-9.0/10.0/11.0.
0077     + Linux, Intel-icc 20.2.
0078     + MacOS 10.15 with Apple LLVM/clang-12.0.
0079 
0080   o External dependencies
0081     + CLHEP-2.4.4.2, suggested for external installation of the CLHEP library.
0082     + VecGeom-1.1.16, for optional use of the VecGeom geometry primitives.
0083 
0084   o New data sets:
0085     + G4EMLOW-7.17.
0086 
0087  Please refer to the Geant4 User Documentation:
0088    http://cern.ch/geant4/support/user_documentation
0089  for further information about using Geant4.
0090 
0091  ----------------------------------------------------------------------------
0092 
0093 List of features and fixes included in this Beta release since 10.7.p02:
0094 
0095   o Configuration:
0096     -------------
0097     + CMake:
0098       o Requiring C++17 as minimum standard to compile Geant4.
0099         Allow compilation against C++23 with CMake 3.20 and newer.
0100         Check for filesystem support in native or extension (GNU/Clang)
0101         libraries.
0102       o Implemented build/test script in Python to check for cycles in the
0103         declared source module dependency graph.
0104       o Added G4tools target to CMake/GNUmake configuration following its
0105         migration from analysis to externals categories.
0106       o Check for unparsed arguments in G4DeveloperAPI functions to
0107         provide better validation against typos/etc in use.
0108       o Store PUBLIC/PRIVATE/INTERFACE module usage requirements explicitly.
0109       o Removed all references to Wt.
0110       o Removed settings of deprecated PHP_AS_HP environmental variable.
0111       o Added geant4.bat prototype.
0112       o Hint to run geant4-config on Windows.
0113       o Added preliminary support for sanitizers. Introduces new advanced
0114         option GEANT4_BUILD_SANITIZER to allow selection of one of address,
0115         thread, or undefined sanitizer. The default is no sanitization.
0116         Adds appropriate flags to CMAKE_CXX_FLAGS.
0117       o Added GEANT4_USE_PTL_LOCKS option to forward to internal PTL as
0118         PTL_USE_LOCKS.
0119       o Clarified use of Freetype for both analysis and visualization.
0120         Removed use of no longer required imported target shim for build.
0121       o Set GEANT4_BUILD_BUILTIN_BACKTRACE to ON to enable debug information on
0122         segmentation faults in testing.
0123       o Qualify geant4_add_feature descriptions with "G4_" to distinguish them
0124         from CMake property descriptions.
0125       o Added settings for enabling new TOOLSSG vis driver.
0126         Four (mutually exclusive) options: TOOLSSG_X11_GLES,
0127         TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLES.
0128       o Added FindPythia8.cmake script.
0129       o Removed obsolete -stdlib flag for AppleClang.
0130       o Updated external PTL module to version v2.0.0.
0131       o Bumped minimum CMake version to 3.12.
0132       o Migrated all CMake scripts to modular CMake API.
0133       o Updated version of data sets: G4EMLOW-7.17.
0134         Updated tag-IDs for 11.0-beta.
0135     + GNUMake:
0136       o Moved default to C++17 Standard.
0137       o Updated compiler/link flags for migration of g4tools to externals
0138         category.
0139       o Added comctl32.lib to UI32LIBS for WIN32-VC configuration.
0140       o binmake.gmk: removed include path to "rpg" hadronic model, now retired.
0141         Removed include paths to "hadronic/models/management"
0142         and "hadronic/models/util" modules, now retired.
0143 
0144   o Analysis:
0145     --------
0146     + Moved g4tools to externals category. Moved "fonts" directory and install
0147       logic to g4tools package in externals, as prime interface to Freetype.
0148 
0149   o Digits & Hits:
0150     -------------
0151     + Extending cylindrical scoring mesh to tube and tube segment.
0152     + Make sure probe commands are not unnecessarily broadcasted to the worker
0153       threads.
0154     + Code formatting.
0155 
0156   o Environments
0157     ------------
0158     + G4Py:
0159       o In TestEm0, use default EM physics in place of obsolete
0160         G4EmProcessOptions.
0161 
0162   o Error Propagation:
0163     -----------------
0164     + Code formatting.
0165 
0166   o Event:
0167     -----
0168     + Use existing facility to find physical volume in store, rather than
0169       looping through in G4SPSPosDistribution::ConfineSourceToVolume().
0170     + Use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector
0171       in G4AdjointPrimaryGenerator, G4SPSAngDistribution, G4SPSEneDistribution,
0172       and G4SPSRandomGenerator.
0173 
0174   o Externals:
0175     ---------
0176     + CLHEP:
0177       o Synchronised with CLHEP-2.4.4.2.
0178       o Added units: minute, hour, day, year and millielectronvolt.
0179         Added constants: Bohr_magneton and nuclear_magneton.
0180       o Fixed trivial compilation warnings on gcc-11 in Random headers.
0181     + g4tools:
0182       o Updated to g4tools 5.4.0:
0183         - Added "Windowing" code needed for G4/vis/tools_sg.
0184         - Fixed compilation warnings on gcc-11.
0185         - See History_tools for the complete list of modifications.
0186     + ptl:
0187       o Updated PTL to version v2.0.0 which replaced raw pointers to tasks with
0188         shared_ptrs for memory management improvements.
0189       o Removed PTL custom task allocator classes.
0190       o Fixed warnings about TBB task scheduler init.
0191       o Improved thread safety.
0192       o Fixed some memory issues.
0193       o Fix to TaskRunManager::Terminate() + nullptr to m_thread_pool
0194         responsible for segmentation-fault when ui/vis initialised, but not
0195         run manager.
0196       o Make PTL cmake options available in configuration, including:
0197         PTL_USE_SANITIZER and PTL_USE_LOCKS, but hidden from clients building
0198         Geant4; relevant Geant4 options forwarded to PTL: TBB, sanitizer, locks.
0199       o Use CMAKE_CXX_STANDARD in place of GEANT4_BUILD_CXXSTD in CMake
0200         configuration. Also, updated minimum CMake version requirements.
0201 
0202   o Geometry:
0203     --------
0204     + management:
0205       o Added map for faster search based on name in G4SolidStore,
0206         G4RegionStore, G4logicalVolumeStore and G4PhysicalVolumeStore.
0207         Pointers to elements are stored in the map as buckets, grouping
0208         elements with same name.
0209       o G4UAdapter: added operator<<() to fix clash between similar methods
0210         for G4VSolid and VecGeom UnplacedVolume.
0211     + navigation:
0212       o G4Navigator: enabled use of alternative G4VoxelNavigation class.
0213         Adds call to virtual method in ComputeStep(), LocateGlobalPointAndSetup()
0214         for voxelised volumes. Controlled by ALTERNATIVE_VOXEL_NAV flag, turned
0215         on by default.
0216         Deleted experimental obsolete method RecheckDistanceToCurrentBoundary(),
0217         also removed in G4SafetyHelper and G4PathFinder.
0218         Cleaned up ComputeSafety().
0219       o G4VoxelNavigation: simplify code of 'check' mode tests to avoid 2nd
0220         code path. Added comments about method arguments.
0221       o G4NavigationLogger: soften check of step vs distance (using tolerance).
0222     + solids/Boolean:
0223       o In G4UnionSolid and G4SubtractionSolid, revised GetCubicVolume() method
0224         to use cubic volume of constituent volume(s) and an intersection solid,
0225         for more accurate measurement.
0226     + solids/CSG:
0227       o G4Trap, G4Para and wrappers: added accessors to retrieve/calculate
0228         original values for alpha, theta, phi.
0229     + solids/specific:
0230       o Simplified implementation of CreatePolyhedron() in G4Polyhedra,
0231         G4Polycone, G4GenericPolycone and related wrappers.
0232       o Added missing accessor in G4UTet.
0233     + volumes:
0234       o G4ReflectionFactory: added Clean() method for clearing the internal
0235         maps on user request and removed problematic Reset() function.
0236 
0237   o Global:
0238     ------
0239     + Removed deprecated classes: G4LPhysicsFreeVector, G4PhysicsLnVector
0240       and G4PhysicsOrderedFreeVector.
0241     + G4PhysicsFreeVector, G4PhysicsLogVector, G4PhysicsLinearFreeVector:
0242       in each constructor added extra Boolean parameter for enabling Spline;
0243       needed for later removal of the SetSpline() method, required for
0244       re-organisation of the code using templates.
0245     + G4PhysicsFreeVector: added to all constructors control on continuous
0246       increase energy in the energy vector. Added accessor to allow user query
0247       for use or not of Spline interpolation.
0248     + G4PhysicsVector: extended warning printout.
0249     + G4ConvergenceTester: fixed potential thread contention likely
0250       responsible for crashes in ThreadSafe-Scorers example, observed in
0251       system testing. Some code cleanup.
0252     + Updated G4SIUnits and G4PhysicalConstants to include new symbols
0253       (minute, hour, day, year and millielectronvolt) and new constants
0254       (Bohr_magneton and nuclear_magneton), based on CLHEP-2.4.4.2.
0255     + G4UnitsTable: added unit definitions for Velocity and Momentum.
0256     + New G4Filesystem header to support transparent use of C++ filesystem
0257       whether it is in std:: or std::experimental namespaces.
0258     + G4ThreadLocalSingleton: added way to explicitly call Clear() for all
0259       TLS singletons.
0260     + Reworked G4Backtrace to use fewer dynamic memory allocations when
0261       printing backtrace in order to avoid overflowing the signal stack.
0262     + Modernised CMake script.
0263     + Changed date for release 11.0-beta.
0264 
0265   o Graphics Representations:
0266     ------------------------
0267     + Reviewed HepPolyhedronPgon, HepPolyhedronPcon classes given by rz-contour.
0268     + HepPolyhedron: added TriangulatePolygon() and RotateContourAroundZ().
0269       Fixed calculation of number of faces in a polyhedron object in method
0270       RotateContourAroundZ(). In some cases, 'Nfaces' was computed incorrectly,
0271       resulting in more memory being allocated than required; this did not
0272       create problems for rendering, but used to generate warning messages
0273       in some cases.
0274     + Removed deprecated G4VisAttributes::Invisible.
0275     + Added G4Colour::operator<(), useful for making a set or map based on
0276       G4colour as a key.
0277     + G4VGraphicsScene: introduced new pure virtual function
0278       AddCompound(const G4Mesh&).
0279     + G4VisAttributes: improved message in SetForceNumberOfCloudPoints().
0280     + Modernised CMake script.
0281 
0282   o Intercoms
0283     ---------
0284     + G4UImanager: set LastCommandOutputTreated=false only for master thread.
0285       Avoids inadvertent "highlighting" in G4UIQt on worker threads.
0286     + Fixed leak in G4ProfilerMessenger.
0287     + Modernised CMake script.
0288 
0289   o Interfaces
0290     ----------
0291     + Modified G4UIExecutive::SelectSessionByFile() to ensure that in Windows
0292       the Win32 OpenGL driver is selected as the second choice by default.
0293       Based on GitHub PR#20.
0294     + Extended G4UIWin32 driver with new features, based on contribution
0295       proposed in GitHub PR#23.
0296     + G4UIQt: deal properly with creation and deletion of viewer properties.
0297     + Removed obsolete Wt code from source and use in G4UIexecutive.
0298 
0299   o Materials
0300     ---------
0301     + G4MaterialPropertiesTable: removed deprecated optical material properties.
0302       Recalculate GROUPVEL if RINDEX is modified.
0303       Addressing problem report #2313.
0304     + G4ExtDEDXTable, G4IonStoppingData: corrected initialisation of spline
0305       flag.
0306     + G4NistMaterialBuilder: removed unused argument "isotopes" from all
0307       methods where NIST materials are built.
0308     + G4NistManager: adopt modifications in method signatures of 
0309       G4NistMaterialBuilder but keep own method signatures unchanged.
0310     + G4MaterialPropertiesTable: added 'createNewKey' to AddProperty();
0311       merged .icc into .cc; removed deprecated methods; applied clang-format.
0312     + G4OpticalMaterialProperties: added missing include.
0313     + G4MaterialPropertyVector: use G4PhysicsFreeVector instead of
0314       obsolete G4PhysicsOrderedFreeVector.
0315     + New class G4OpticalMaterialProperties, a store for optical material
0316       properties.
0317     + G4MaterialPropertiesTable: new AddProperty() method to allow use of
0318       predefined optical material properties.
0319     + G4IonStoppingData, G4ICRU90StoppingData, G4ExtDEDXTable,
0320       G4VIonDEDXTable: substituted G4LPhysicsFreeVector by G4PhysicsFreeVector.
0321     + G4Material, G4Element, G4Isotope, G4IonisParamElm,
0322       G4IonisParamMat, G4NistMaterialBuilder, G4NistMessenger,
0323       G4SandiaTable: minor clean-up.
0324     + Modernised CMake script.
0325 
0326   o Particles:
0327     ---------
0328     + Fixed shadowing compilation warning in G4Triton.
0329 
0330   o Persistency:
0331     -----------
0332     + GDML:
0333       o G4GDMLWriteMaterials: use G4PhysicsFreeVector instead of deprecated
0334         G4PhysicsOrderedFreeVector.
0335 
0336   o Physics Lists:
0337     -------------
0338     + Removed dependencies on hadronic/model/util and hadronic/model/management
0339       modules now retired.
0340     + Builders:
0341       o Replaced G4HadronCaptureProcess with G4NeutronCaptureProcess
0342         and G4HadronFissionProcess with G4NeutronFissionProcess in builders.
0343       o Replaced particle-specific hadronic inelastic processes (that have
0344         been deleted) with G4HadronInelasticProcess.
0345       o G4PrecoNeutronBuilder, G4PrecoProtonBuilder, G4INCLXXNeutronBuilder,
0346         G4QGSBinaryKaonBuilder: replaced obsoleted cross-sections
0347         (that have been deleted) with better ones.
0348       o G4BinaryDeuteronBuilder, G4BinaryTritonBuilder, G4BinaryHe3Builder,
0349         G4BinaryAlphaBuilder: removed unused header files.
0350     + Constructors:
0351       o electromagnetic:
0352         - Updated all standard EM physics lists: removed local member "verbose" and
0353           use uniform approach for verbosity via G4EmParameters; instantiate
0354           NIEL process only if parameter MaxNIELEnergy is above zero; include
0355           gamma linear polarization model to Opt0, Opt3, Opt4, SS, and
0356           Livermore physics constructors if the parameter EnablePolarisation
0357           is "true"; G4EmLivermorePolarizedPhysics fully inheriting from
0358           G4EmLivermorePhysics.
0359         - G4GammaGeneralProcess: updated interface in the Retrieve() method.
0360         - G4EmDNAPhysics: updated configuration of standard physics for gamma
0361           and positrons according to Opt3; updated particle list by addition
0362           of G4Alpha; simplified ConstructProcess() method using
0363           G4PhysicsListHelper.
0364         - Updated G4EmLowEPPhysics physics model configuration
0365           See https://arxiv.org/abs/2102.02721 for details.
0366         - G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd energy area,
0367           because cross-section is zero; in the 4th energy interval include in
0368           the vector value of 1 - p instead of p, where p is the cumulative
0369           probability of a sub-process.
0370         - G4EmDNAChemistry, _option1, _option2, _option3
0371           added dissociation channel for electron-hole recombination.
0372         - G4EmDNAChemistry_option3: changed pre-chemical model.
0373         - DNA PhysicsLists: use SeEmModel() with correct signature.
0374         - G4OpticalPhysicsList: removed deprecated optical commands.
0375         - G4EmLivermorePolarizedPhysics: removed unused header,
0376         - G4EmLivermorePhysics: use G4LivermorePolarizedComptonModel if
0377           polarisation is enabled.
0378         - Removed obsolete G4EmLEPTSPhysics, and code cleanup in G4EmDNAPhysics
0379           and G4EmDNAPhysics_stationary.
0380         - G4EmLivermorePhysics, G4EmPenelopePhysics_option1,
0381           G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
0382           G4EmLowEPhysics, G4EmStandardPhysicsSS: instantiate G4ePairProduction
0383           process after ionisation and bremsstrahlung; does not change physics
0384           but helps to have clearer debug printouts.
0385       o gamma_lepto_nuclear:
0386         - G4EmExtraPhysics, G4BertiniElectroNuclearBuilder,
0387           G4LENDBertiniGammaElectroNuclearBuilder: replaced
0388           G4PhotoNuclearProcess (now deleted) with G4HadronInelasticProcess.
0389       o hadron_elastic:
0390         - G4HadronDElasticPhysics, G4HadronHElasticPhysics: use inheritance
0391           from G4HadronElasticPhysics; use G4HadProcesses, G4PhysListUtil and
0392           G4HadParticles; implement cross-section factor.
0393         - G4HadronHElasticPhysics: fixed problem of fully overlapping energy
0394           transition between G4HadronElastic and G4ChipsElasticModel, using
0395           now G4ChipsElasticModel only for Hydrogen element above 10 MeV.
0396         - G4ChargeExchangePhysics: set explicitly the elastic cross-sections
0397           according to the hadron type, given that the universal Gheisha
0398           elastic cross-section has been now deleted.
0399         - In all constructors, use verbosity level from G4HadronicParameters.
0400       o hadron_inelastic:
0401         - In all constructors: printouts are controlled by verbosity level of
0402           G4HadronicParameters class; 'verboseLevel' member in base class is 
0403           not used; G4HadronicParameters singleton is initialized in all class
0404           constructors; if the verbosity level is defined in class constructor,
0405           it is propagated to G4HadronicParameters (user may change this level
0406           using UI command before physics is initialized); check versus nullptr
0407           is added in several places.
0408         - Removed unused header files, and replaced when needed
0409           G4HadronCaptureProcess with G4NeutronCaptureProcess.
0410     + lists:
0411       o Replaced particle-specific hadronic inelastic processes
0412         (that have been deleted) with G4HadronInelasticProcess in LBE.
0413         Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess.
0414       o In all physics-lists, protected banners by verbosity level.
0415       o G4PhysListFactory: added verbosity level to constructor and propagated
0416         to constructed lists.
0417       o Mirror changes to G4PhysListFactory constructor signature (taking a
0418         default verbosity argument) in the G4PhysListFactoryAlt constructor.
0419 
0420   o Electromagnetic Processes:
0421     -------------------------
0422     + Adjoint:
0423       o General code cleanup: applied clang-format style guidelines;
0424         applied C++11 codewords to method declarations (virtual, override,
0425         explicit); deleted unused variables and methods; started naming class
0426         member variables with 'f'; use 'nullptr' instead of '0'; removed unused
0427         headers; use constexpr for numbers. Use 'virtual' and 'override' methods
0428         consistently; member variables start with f; shorten long names; removed
0429         unused variables; make class variables local where appropriate; order
0430         declarations of class variables; define class variables; removed unused
0431         functions; marked copy/assignment operators as 'delete'; added
0432         ProcessDescriptions; removed ChangeHistory from top of code;
0433         use CLHEP::twopi instead of hardcoded value; removed more unused
0434         headers.
0435       o G4ContinuousGainOfEnergy: use updated signature for ion ionisation.
0436       o Free resources in destructors.
0437     + DNA:
0438       o Added IRT-syn model.
0439       o Added new models: G4DNADiracRMatrixExcitationModel,
0440         G4DNAQuinnPlasmonExcitationModel, G4DNARelativisticIonisationModel and
0441         G4DNAPlasmonExcitation.
0442       o Modified G4DNAELSEPAElasticModel for gold material.
0443       o G4DNAElectronHoleRecombination: dissociation channel of electron-hole
0444         recombination moved to G4EmDNAChemistry, _option1, _option2, _option3.
0445       o G4DNAWaterDissociationDisplacer: added the fragment displacement for
0446         new dissociation channel.
0447       o Fixed dependency on g4tools, now moved to externals module.
0448       o Updated PrintGeneratorInformation() method signature in G4DNABornAngle
0449         and G4DNARuddAngle.
0450     + High Energy:
0451       o G4eeToHadrons: updated integral type.
0452       o Code clenup: clean-up of interfaces; removed unused headers;
0453         improved initialisation.
0454       o G4hBremsstrahlungModel: added header.
0455       o G4hhIonisation: removed G4BohrFuluctuations.
0456     + Low Energy:
0457       o G4LivermorePolarizedComptonModel: added quantum entanglement of e+
0458         annihilation. If the photons have been "tagged" as "quantum-entangled",
0459         for example by G4eplusAnnihilation for annihilation into 2 photons, they
0460         are "analysed" if and only if both photons suffer Compton scattering.
0461         Theoretical predictions from Pryce and Ward, Nature N.4065 (1947) p.435,
0462         and Snyder et al, Physical Review 73 (1948) p.440. Experimental
0463         validation in "Photon quantum entanglement in the MeV regime and its
0464         application in PET imaging", D. Watts, J. Allison et al., Nature
0465         Communications (2021)12:2646, https://doi.org/10.1038/s41467-021-22907-5.
0466         Added data member 'fEntanglementModelIndex'.
0467         The implementation of entanglement is described in extensive comments
0468         in G4LivermorePolarizedComptonModel source.
0469       o Migrate the Spline treatment for all physics vectors.
0470       o General code cleanup: use G4 types; cleanup of headers and Penelope
0471         models.
0472       o Convert G4LPhysicsFreeVector into G4PhysicsFreeVector.
0473       o Removed obsolete unused classes G4BremsstrahlungCrossSectionHandler,
0474         G4BremsstrahlungParameters, G4eBremsstrahlungSpectrum, G4hSRIM2000p,
0475         G4PhotoElectricAngularGeneratorSimple, G4MicroElecInelastic_new,
0476         G4LivermorePolarizedPhotoElectricModel and
0477         G4LivermorePolarizedPhotoElectricGDModel.
0478       o G4MicroElecLOPhononModel: removed debug printout; rename member of
0479         class.
0480       o Improved management of array in G4PenelopeGammaConversionModel.
0481       o Replaced std::map with static arrays in the G4Penelope models for 
0482         performance improvements
0483       o Removed obsolete PrintInfo() methods and self defined process SubType.
0484       o G4IonParametrisedLossModel: use updated signature for ion ionisation.
0485       o Updated PrintGeneratorInformation() method signature for few angular
0486         generators.
0487     + Muons:
0488       o General code clean-up: use C++11 keywords, improved comments, format
0489         files.
0490       o G4EnergyLossForExtrapolator, G4ErrorEnergyLoss, G4TablesForExtrapolator:
0491         provide thread-safe initialisation of internal tables; guarantee
0492         initialisation only once; size of tables depend only on number of
0493         materials.
0494       o G4MuIonisation: removed obsolete G4BohrFluctuations header.
0495       o G4MuPairProduction, G4MuBremsstrahlung, G4MuBremsstrahlungModel:
0496         improved initialisation.
0497       o Updated PrintGeneratorInformation() method signature in G4ModifiedMephi.
0498     + Polarisation:
0499       o General code cleanup: name classes in logical manner; improved comments;
0500         added ProcessDescription; ordered #includes and removed unused; disabled
0501         copy and assignment operators with 'delete'; increased C++11 keyword
0502         usage, especially override, explicit; renamed (most) class variables to
0503         start with 'f'; make SCRN arrays the correct size; use constexpr for
0504         numbers; applied clang-format style; use G4ExceptionDescription; avoid
0505         implicit conversions between G4StokesVector and G4ThreeVector.
0506       o G4PolarizedIonisationBhabhaXS: removed incorrect G4Exception.
0507       o G4PolarizedAnnihilation, G4ePolarizedIonisation: improved initialisation
0508         of assymetry tables.
0509       o G4PolarizedAnnihilation, G4PolarizedCompton: updated use of the spline
0510         flag.
0511     + Standard:
0512       o G4eplusAnnihilation: introducing Quantum Entanglement. This is activated
0513         by UI command "/process/em/QuantumEntanglement". For e+e- -> gamma gamma,
0514         the gammas are "tagged" here and must be "analysed" in a Compton
0515         scattering process - see, for example, G4LivermorePolarizedComptonModel.
0516         Otherwise entanglement has no effect even if activated. Added data
0517         member "fEntanglementModelIndex". Instantiate clipboard only if Quantum
0518         Entanglement is requested.
0519       o G4PAIModelData, G4eplusTo2GammaOKVIModel: corrected initialisation of
0520         physics vectors.
0521       o G4LindhardSorensenData: updated definition of spline flag.
0522       o G4CoulombScattering, G4eBremsstrahlung, G4eplusAnnihilation: updated set
0523         of flags for spline and the integral approach.
0524       o G4BetheBlochModel: minor cleanup; more const variables.
0525       o Removed obsolete classes G4BohrFluctuations and
0526         G4HeatedKleinNishinaCompton.
0527       o G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel,
0528         G4ICRU73QOModel, G4AtimaIonIonisationModel: changed interface to ion
0529         ionisation corrections.
0530       o Code clean-up of ionisation, energy loss processes and models.
0531       o Clean-up of gamma processes.
0532    + Utils:
0533       o G4VEmProcess, G4VEnergyLossProcess, G4EmTableType, G4EmBiasingManager,
0534         G4LossTableManager: updated integral approach by introduction of a
0535         cross-section shape type and different actions depending on the type; 
0536         added cache for cross-section and range; removed unused methods; 
0537         attempt to reduce number of "if" operators at run time; integral and
0538         spline flags are set to each process individually and not via
0539         G4EmParameters class.
0540       o G4VMultipleScattering: fixed problem observed by CMS for specific
0541         physics list.
0542       o G4EmCorrections, G4VEmProcess: updated use of the spline flag.
0543       o G4EmCorrections, G4LossTableBuilder: substitute use of deprecated
0544         G4LPhysicsFreeVector by G4PhysicsFreeVector.
0545       o G4VEmProcess, G4VEnergyLossProcess, G4EmDataHandler: updated method
0546         RetrievePhysicsTable().
0547       o G4TableType: added extra enumerator for type of cross-section shape.
0548       o G4OpticalParameters, G4OpticalParametersMessenger: removed deprecated
0549         optical commands and parameters. Replaced CreateDir() with new
0550         G4UIdirectory().
0551       o G4VMultipleScattering: removed obsolete unused methods; reduced number
0552         of operations at run time, use 'isIon' flag for scaling of energy
0553         limits for all particles with mass >1 GeV.
0554       o G4VEmModel removed "virtual" keyword for ComputeDEDX() method.
0555       o General code cleanup; removed obsolete methods and members;
0556         reorganized class members.
0557       o G4VEmAngularDistribution: added virtual method
0558         PrintGeneratorInformation().
0559       o Fixed model per region definition for all base processes G4VEmProcess,
0560         G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
0561         for energy loss processes; clean-up of parameters classes.
0562       o G4VEmModel, G4VEnergyLossProcess, G4EmCalculator: optimised signature
0563         of the CorrectionsAlongStep() method; use more constant variables;
0564         minor code optimisation.
0565       o G4VEmProcess, G4VEnergyLossProcess: fixed computation of cross-section
0566         and range if base material approach is used.
0567       o G4LossTableBuilder: fixed debug printout.
0568       o G4VMscModel: improved printout.
0569       o Code clean-up, including G4VEnergyLossProcess, G4LossTableManager
0570         and messengers for EM parameters.
0571       o Removed obsolete G4EmProcessOptions class.
0572     + Xrays:
0573       o General code cleanup: removed commented out code; added
0574         ProcessDescription() and DumpInfo(); organized order of headers,
0575         removed and added as needed; use constexpr for numbers; replaced
0576         G4PhysicsOrderedFreeVector with G4PhysicsFreeVector.
0577       o G4Scintillation: removed deprecated optical commands.
0578 
0579   o Generic Processes:
0580     -----------------
0581     + Cuts:
0582       o G4PhysicsTableHelper: updated interface to Retrieve() method.
0583     + Management:
0584       o Introducing classes for implementation of quantum entanglement:
0585         G4EntanglementAuxInfo, G4VEntanglementClipBoard and
0586         G4eplusAnnihilationEntanglementClipBoard.
0587         Currently, entanglement is implemented only in G4eplusAnnihilation
0588         and G4LivermorePolarizedComptonModel.
0589     + Optical:
0590       o G4OpBoundaryProcess: fixed initialisation of some local variables.
0591         Addressing problem report #2364.
0592       o G4OpRayleigh, G4OpWLS, G4OpWLS2: use G4PhysicsFreeVector instead
0593         of deprecated G4PhysicsOrderedFreeVector.
0594     + Transportation:
0595       o Enable setting of smooth curved trajectories to particle-change in
0596         G4CoupledTransportation::AlongStepDoIt(), which was commented out by
0597         mistake. Based on discussion in Geant4 Forum thread #4271.
0598 
0599   o Hadronic Processes:
0600     ------------------
0601     + Removed deprecated 'rpg' model.
0602     + Merged 'models/management' module in 'management'.
0603     + Merged 'models/util' module in 'util'.
0604     + cross_sections
0605       o G4MuNeutrinoNucleusTotXsc: new arrays for XS_eq and XS_in, now XS_tot
0606         is a sum of XS_qe and XS_in with A, Z and A-Z factors.
0607       o G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS, 
0608         G4ParticleInelasticXS, GammaNuclearXS : in the method BuildPhysicsTable(),
0609         replaced loop over material-cut-couple with a direct loop over all
0610         elements; partially move initialisation of local variables to headers.
0611       o G4NeutronInelasticXS: in the method BuildPhysicsTable(), replaced
0612         loop over material-cut-couple with a direct loop over materials
0613         used in geometry.
0614       o G4MuNeutrinoNucleusTotXsc: access and calculation of
0615         fQEratio(Z,A) = XS_qe/XS_tot.
0616       o Removed following obsolete classes:
0617         G4IonsKoxCrossSection, G4IonsSihverCrossSection, G4IonsShenCrossSection,
0618         G4TripathiCrossSection, G4TripathiLightCrossSection,
0619         G4IonProtonCrossSection, G4GeneralSpaceNNCrossSection,
0620         G4ProtonInelasticCrossSection G4NeutronInelasticCrossSection,
0621         G4PiNuclearCrossSection, G4CrossSectionPairGG,
0622         G4FastPathHadronicCrossSection, G4HadronCaptureDataSet,
0623         G4HadronFissionDataSet, G4HadronElasticDataSet, G4HadronInelasticDataSet,
0624         G4HadronCrossSections, G4IonsShenCrossSection, G4TripathiCrossSection,
0625         G4TripathiLightCrossSection.
0626       o G4HadronXSDataTable, G4ComponentSAIDTotalXS: updated creation and
0627         handling of G4PhysicsVector.
0628       o G4UPiNuclearCrossSection, G4ComponentSAIDTotalXS: substituted use of
0629         deprecated G4LPhysicsFreeVector by G4PhysicsFreeVector.
0630       o G4UPiNuclearCrossSection: disabled Spline interpolation.
0631     + management
0632       o G4HadronicProcess: made public the method GetHadronicInteraction().
0633         This can be useful for users to access at run-time some information
0634         available from a hadronic final-state model.
0635       o G4HadronInelasticProcess: added a new method to return the particle
0636         definition (useful in practice to distinguish between baryons and
0637         antibaryons, or between hadrons and ions).
0638       o G4HadronInelasticProcess: removed old and unused header file
0639         corresponding to the Gheisha inelastic cross-section (that has been
0640         deleted).
0641       o Moved G4HadronInelasticProcess class to hadronic/mangement module.
0642       o Fixed TLS usage in G4HadronicProcessStore.
0643       o Fixed loops in G4HadronicProcessStore::Clean().
0644       o G4HadronicEPTestMessenger: removed deprecated commands.
0645       o Removed unused class G4VCrossSectionBase.
0646     + models/cascade
0647       o Fixed TLS usage in G4CascadeChannelTables and G4CascadeParameters.
0648     + models/coherent_elastic
0649       o G4ChargeExchangeProcess: replaced Gheisha elastic cross-section
0650         (that has been deleted) with G4ComponentGGHadronNucleusXsc.
0651       o G4LEHadronProtonElastic, G4ChargeExchangeProcess: removed unused
0652         headers.
0653     + models/fission
0654       o G4LFission: removed unused headers.
0655     + models/im_r_matrix
0656       o G4XnpElasticLowE, G4XNNElasticLowE, G4XnpTotalLowE: substituted use of
0657         deprecated G4PhysicsLnVector with G4PhysicsLogVector; no functional
0658         changes.
0659     + models/inclxx
0660       o Updated comment in G4INCLXXInterface header.
0661     + models/lepto_nuclear
0662       o G4NeutrinoNucleusModel: calculation of fQEratioA(Z,A,Enu) depending of
0663         QE ratios for nucleons. Added accessors for XS_qe/XS_tot(A), fQEratioA
0664         class member.
0665       o Bug fixed in G4NeutrinoNucleusModel, updated calls for QE ratio of
0666         muon/electron (anti-)neutrino.
0667     + models/particle_hp
0668       o G4ParticleHPElementData, G4ParticleHPBGGNucleonInelasticXS: removed
0669         old and unused header files corresponding to Gheisha cross-sections
0670         (that have been deleted). Code cleanup.
0671       o G4ParticleHPManager: removed deprecated environmental variables.
0672       o G4ParticleHPData, G4ParticleHPJENDLHEData: replaced use of deprecated
0673         G4LPhysicsFreeVector with G4PhysicsFreeVector.
0674       o Updated build scripts according to new dependencies.
0675         Clean-up of old directories no longer present.
0676     + models/qmd
0677       o G4QMDReaction: replaced G4IonsShenCrossSection (that has been deleted)
0678         with G4ComponentGGNuclNuclXsc. Replaced GetIsoCrossSection() with
0679         GetElementCrossSection().
0680     + models/radioactive_decay
0681       o G4RadioactiveDecayBase, G4RadioactiveDecayBaseMessenger: introduced
0682         a new parameter for analogue mode to kill very long radioactive decays
0683         at rest of nuclides happening later than this threshold parameter.
0684         Its default value (10^27 ns) corresponds to more than twice the age of
0685         the universe. The value of the threshold can be changed via a new UI
0686         command, e.g. to set it to 1000 years:
0687         "/process/had/rdm/thresholdForVeryLongDecayTime 3.1536e+10 second" .
0688         This kind of cut has been introduced in order to avoid to account
0689         energy depositions happening after many billions of years in ordinary
0690         materials used in calorimetry, in particular Tungsten and Lead - via
0691         their natural unstable, but very long lived, isotopes, such as
0692         W183, W180 and Pb204. Note that the cut is not on the average, mean
0693         lifetime, but on the actual sampled global decay time.
0694       o Use existing facility to find logical volume in store, rather than
0695         looping through in G4RadioactiveDecayBase::Select/DeselectAVolume().
0696       o G4RadioactiveDecayBaseMessenger, G4RadioactivationMessenger: removed
0697         deprecated commands.
0698       o Remove obsolete classes G4RadioactiveDecay and
0699         G4RadioactiveDecaymessenger.
0700       o Updated build scripts and header includes. 
0701     + models/theo_high_energy
0702       o G4TheoFSGenerator: added accessors for the corresponding modifier
0703         methods already existing. This can be useful for users to access
0704         at run-time some information available from a hadronic final-state
0705         model.
0706     + processes
0707       o Added G4HadronInelasticProcess class from hadronic/management module.
0708       o Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess, as it is
0709         applied only for neutron projectile.
0710       o Removed use of deleted header file G4HadronicDeprecate.
0711       o G4HadronCaptureProcess: removed old and unused header file
0712         corresponding to the Gheisha capture cross-section (that has been
0713         deleted).
0714       o G4HadronFissionProcess: replaced Gheisha fission cross-section
0715         (that has been deleted) with G4ZeroXS (which is a zero cross-section
0716         everywhere).
0717       o G4HadronElasticProcess, G4NeutrinoElectronProcess,
0718         G4ElNeutrinoNucleusProcess, G4MuNeutrinoNucleusProcess: removed
0719         old and unused header file corresponding to the Gheisha elastic
0720         cross-section (that has been deleted).
0721       o Removed the following deprecated inelastic processes:
0722         G4AlphaInelasticProcess, G4AntiAlphaInelasticProcess
0723         G4AntiDeuteronInelasticProcess, G4DeuteronInelasticProcess,
0724         G4AntiHe3InelasticProcess, G4He3InelasticProcess,
0725         G4AntiLambdaInelasticProcess, G4LambdaInelasticProcess,
0726         G4AntiNeutronInelasticProcess, G4NeutronInelasticProcess,
0727         G4AntiOmegaMinusInelasticProcess, G4OmegaMinusInelasticProcess,
0728         G4AntiProtonInelasticProcess, G4ProtonInelasticProcess,
0729         G4AntiSigmaMinusInelasticProcess, G4SigmaMinusInelasticProcess,
0730         G4AntiSigmaPlusInelasticProcess, G4SigmaPlusInelasticProcess,
0731         G4AntiTritonInelasticProcess, G4TritonInelasticProcess,
0732         G4AntiXiMinusInelasticProcess, G4XiMinusInelasticProcess, 
0733         G4AntiXiZeroInelasticProcess, G4XiZeroInelasticProcess,
0734         G4IonInelasticProcess, G4KaonMinusInelasticProcess,
0735         G4KaonPlusInelasticProcess, G4KaonZeroLInelasticProcess,
0736         G4KaonZeroSInelasticProcess, G4PionMinusInelasticProcess,
0737         G4PionPlusInelasticProcess, G4PhotoCaptureProcess,
0738         G4PhotoFissionProcess, G4PhotoNuclearProcess.
0739     + stopping
0740       o Removed obsolete classes: G4AntiNeutronAnnihilationAtRest,
0741         G4AntiSigmaPlusAbsorptionFritiof, G4SigmaMinusAbsorptionBertini,
0742         G4AntiProtonAbsorptionFritiof, G4KaonMinusAbsorptionBertini,
0743         G4PiMinusAbsorptionBertini.
0744     + util
0745       o Removed unused classes: G4LightMedia, G4IsoResult, G4HadronicDeprecate,
0746         G4GHEKinematicsVector, G4HadReentrentException, G4HadSignalHandler,
0747         DumpFrame.
0748 
0749   o Run
0750     ---
0751     + Optimised access to volumes and regions stores.
0752     + Minor C++11 review in use of iterators, initialisers, etc...
0753     + Removed obsolete ResetCuts() method in G4VUserPhysicsList.
0754     + Added new G4DNAStaticMoleculeReactionProcess in PhysicsListHelper
0755       for DNA processes.
0756     + Removed call to physicsList->TerminateWorker() in G4WorkerRunManager
0757       as this appears to cause errors at termination.
0758     + G4VPhysicsConstructor: fixed initialisation of hadronic parameters
0759       avoiding uncontrolled override of verbosityLevel.
0760     + General code cleanup and formatting.
0761 
0762   o Tasking
0763     -------
0764     + Updated to PTL v2.0.0 with shared_ptr usage. Included some minor API
0765       changes to direct async usage.
0766     + Fixes to TBB task-group usage.
0767     + Fix for G4FORCENUMBEROFTHREADS flag lookup.
0768     + G4RunManagerFactory: set default run manager type to be Tasking.
0769     + G4TaskRunManager: check for valid threadPool pointer in method
0770       RequestWorkersProcessCommandsStack() to fix occasional segmentation
0771       fault at exit.
0772 
0773   o Track & Tracking
0774     ----------------
0775     + Correction to G4Track::operator=() to copy also touchable-handles.
0776       This fixes a crash originated when running importance sampling in the
0777       G4EventManager when the track got assigned the origin touchable handler
0778       from its own touchable handle; the touchable handler was sometimes not
0779       set.
0780     + Adjusted printout format in DumpInfo() for G4VParticleChange
0781       and G4ParticleChange.
0782     + Introducing G4SteppingVerboseWithUnits, an alternative to
0783       G4SteppingVerbose with printout of proper units and extended features.
0784       Added explicit virtual keyword for virtual methods and destructor in
0785       G4SteppingVerbose.
0786     + Export protected static symbols in G4VSteppingVerbose for DLL builds
0787       on Windows.
0788     + G4SteppingVerbose, G4SteppingManager: added a switch to instantiate
0789       G4SteppingVerboseWithUnits.
0790     + Simplified way of defining a user-specific stepping verbose, that
0791       is now common to all sequential, MT and tasking modes.
0792     + Avoid unnecessary indirections when checking for regional stepping
0793       action by reusing the value of current volume in stepping manager.
0794     + Use existing facility to find logical volume in store, rather than
0795       looping through in G4AdjointCrossSurfChecker.
0796 
0797   o Visualization:
0798     -------------
0799     + Removed unused XXX module.
0800     + management:
0801       o Introducing "Special Mesh Rendering", with new commands: 
0802         /vis/viewer/set/specialMeshRendering
0803         /vis/viewer/set/specialMeshVolumes
0804         Only available with OpenGL drivers at present.
0805       o Implemented a default AddCompound(const G4Mesh&) method: just draws the
0806         "container" volume and prints a G4Exception with guidance.
0807       o Added new data members to view parameters.
0808       o Exploit C++17 to parse saved files in /vis/viewer/interpolate,
0809         to use <filesystem>.
0810       o Introducing /vis/scene/add/localAxes and /vis/touchable/localAxes
0811         commands.
0812       o Removed deprecated G4VisManager::SetUserAction().
0813         Use RegisterRunDurationUserVisAction or similar instead.
0814         These functions represent quite an advanced use of visualisation
0815         and are rarely used.
0816       o "/vis/set/extentForField", "/vis/scene/add/electricField" and
0817         magneticField: improved guidance to take note of change to
0818         G4VFieldModel, namely that the number of data points is now calculated
0819         on the basis of the extent, which can be set as above.
0820       o Interrupt macro (vis.mac) if graphics system invalid/unavailable.
0821         Issues "Batch is interrupted" and avoids long litany of further errors.
0822       o /vis/scene/add/volume (and /vis/drawVolume): exploit
0823         G4PhysicalVolumesSearchScene to streamline geometry tree searches.
0824         Avoid calculating extent of a temporary physical volume when not
0825         necessary.
0826         The above does introduce a change of behaviour for the case that a user
0827         names the volume(s) requested, e.g., "/vis/drawVolume Shape1". The user
0828         will not normally see any difference - but it does avoid extravagant
0829         computation in some circumstances.
0830       o G4VisCommandsSet, G4VisCommandsTouchable and G4VisCommandsViewer:
0831         added comment of explanation where using G4PhysicalVolumesSearchScene.
0832       o Use existing facility to find logical volume in store, rather than
0833         looping through in G4VisCommandSceneAddLogicalVolume::SetNewValue().
0834       o G4VisManager: fixed cout destination for UI manager during deletion.
0835       o G4VisExecutive: removed deprecated Wt driver.
0836     + modeling:
0837       o Introducing G4Mesh, a light class that encapsulates and validates a
0838         nested parameterisation, called a "mesh". If a valid mesh cannot be
0839         created out of a G4VPhysicalVolume, it will have a type "invalid".
0840         The overhead of an invalid attempt is expected to be small, all the
0841         same it should only be invoked if the user specifies mesh rendering.
0842       o G4ModelingParameters: added new data members and access functions.
0843       o G4PhysicalVolumeModel: added code for special mesh rendering, under
0844         control of user flag. If flag is set by the above commands, and if a
0845         volume is a "mesh" (a container for a nested parameterisation), invoke
0846         new method AddCompound(const G4Mesh&).
0847       o G4PhysicalVolumeModel: moved fFullPVPath.push_back earlier, addressing
0848         a bug in visualisation of touchables.
0849       o Improved G4VModel; make SetTransform() virtual.
0850       o G4ArrowModel, G4AxesModel and G4TextModel: implement SetTransform().
0851       o Take care to apply to original model. For example, if SetTransform() is
0852         called more than once it must apply to the original.
0853       o G4PhysicalVolumeModel: for the resultant of clipping, set the
0854         visualisation attributes of the original.
0855       o G4VFieldModel: Change concept of choice of data points: this model
0856         simply checked that a data point was within the extent.
0857         Now it uses the extent to determine the datapoint spacing.
0858         Note: if 'fExtentForField' is null, the used extent is that of the
0859         current scene; otherwise it uses that supplied by the user.
0860       o G4PhysicalVolumesSearchScene: allow user to limit the depth of descent
0861         during a geometry tree search.
0862       o G4PhysicalVolumeModel: if opacity (alpha) == 0 (completely transparent),
0863         treat same as pVisAttribs->IsVisible().
0864         G4PhysicalVolumeModel: simplified validation.
0865       o Added G4Exception in default implementation of
0866         G4PseudoScene::ProcessVolume().
0867     + externals/gl2ps:
0868       o allow use of non-APPLE OpenGL on APPLE.
0869         To use this, build with macro GL2PS_USE_GL_GL_H.
0870     + OpenGL:
0871       o Implemented WindowProc() function in G4OpenGLWin32Viewer for the Win32
0872         OpenGL driver (function that was commented out). It is now possible to
0873         change the Zoom and the orientation using the mouse (like in the Qt
0874         driver). Based on contribution in GitHub PR#20.
0875       o Implemented AddCompound(const G4Mesh&) method: turns nested
0876         parameterisations into polymarkers of dots - much improved speed.
0877       o Enable extended WIN32 window in G4OpenGLWin32Viewer.
0878         Based on contribution in GitHub PR#23.
0879       o G4OpenGLQtViewer::addNonPVSceneTreeElement(): special case for markers,
0880         use Info() if non-empty name appearing in Qt's scene tree. This allows
0881         the user to design markers, e.g., a list of points, and give them a name
0882         that relates to the providence of the points, e.g., a particular
0883         material or geometry component.
0884       o Removed deprecated Wt driver.
0885       o G4OpenGLStoredQtViewer: moved fViewId<0 check to top of constructor to
0886         pick up errors in base class construction.
0887       o Removed deprecated "/vis/ogl/set/" commands.
0888       o All commands connected with a time window. Use equivalent
0889         "/vis/viewer/set/timeWindow" commands.
0890       o "/vis/ogl/set/eventsDrawInterval <N>" is replaced by 
0891         "/vis/ogl/flushAt NthPrimitive <N>".
0892       o G4OpenGLWin32Viewer: fixed occasional crash with G4UIWin32 when
0893         creating viewer from UI command: avoid indirect call to DrawView()
0894         while still within CreateMainWindow().
0895       o Comment out makeCurrent() in G4OpenGLImmediate/StoredQtViewer
0896         to prevent red-button crash.
0897     + OpenInventor:
0898       o G4OpenInventorQtExaminerViewer: for tabbed viewer in UIQt, added a
0899         Detach button to move the viewer to its own dedicated and resizable
0900         window on the desktop. Added event handler for mouse wheel to fix the
0901         non-intuitive behavior. Mouse-wheel-forward now zooms/dollys in.
0902         Added viewer button to enable the "axis cross" (3d axes) feedback
0903         mechanism.
0904       o G4OpenInventorViewer: upgraded the group node sensor to process camera
0905         movements, thus eliminating the need for the camera sensor. The node
0906         sensor receives all camera notifications and is immune to changes in
0907         the camera type.
0908       o Force kernel visit if special mesh rendering parameters change.
0909       o Code cleanup of OpenInventorQt classes.
0910     + Qt3D
0911       o Improve overall protection of debug output with #ifdef G4QT3DDEBUG.
0912         Moved debug code to G4Qt3DUtils header.
0913       o Force kernel visit if special mesh rendering parameters change.
0914       o Include some trial code (commented out) for text output.
0915     + ToolsGS:
0916       o Introducing ToolsSG (TSG) drivers based on externals/g4tools.
0917       o Providing four new (mutually exclusive) vis drivers: TOOLSSG_X11_GLES,
0918         TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.
0919 
0920   o Data Sets:
0921     ---------
0922     + G4EMLOW-7.17:
0923       o Removed tabs in option4 cross-section files.
0924       o Added new cross sections for electron transportation in gold
0925         within Geant4-DNA.
0926       o Added directories Elastic/ Inelastic/ and Structure/ for microelec
0927         models.
0928       o Fixed problem in file sigmadiff_cumulated_ionisation_e_RBEBV_Z79.dat.
0929 
0930   o Examples:
0931     --------
0932     + Updated reference outputs, macros, READMEs and scripts.
0933     + Replaced deprecated G4VisAttributes::Invisible by
0934       G4VisAttributes::GetInvisible().
0935     + Bump required CMake version range to 3.12...3.20.
0936     + advanced/amsEcal
0937       o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
0938     + advanced/brachytherapy
0939       o Code cleanup: use C++11 keywords and patterns.
0940       o Removed BrachyMaterial class; materials implemented now using NIST
0941         material manager.
0942       o Removed SetCuts() from the local PhysicsList.
0943     + advanced/composite_calorimeter
0944       o Migrated to multi-threading, using G4RunManagerFactory.
0945       o Introduced the action initializer.
0946       o Split the definition of the sensitive part of the detector
0947         from the detector construction itself. A new method,
0948         sensitiveHandling(), has been introduced in the base class CCalG4Able.
0949       o Made the following three classes thread-local singletons: CCalSDList,
0950         CCalSensAssign and CCalSensitiveDetectors.
0951       o Multi-threaded use of the G4AnalysisManager in the run action with the
0952         merging of histograms and ntuple of all working threads at the end of
0953         the run.
0954     + advanced/gammaray_telescope
0955       o GammaRayTelHadronPhysics : replaced G4HadronCaptureProcess with
0956         G4NeutronCaptureProcess, and G4HadronFissionProcess with
0957         G4NeutronFissionProcess.
0958         Replaced stopping processes that have been deleted.
0959         Replaced old pion inelastic cross-sections (that have been deleted)
0960         with G4BGGPionInelasticXS.
0961       o GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced
0962         G4PhotoNuclearProcess (that has been deleted) with
0963         G4HadronInelasticProcess.
0964       o Removed dependency on G4EmProcessOptions.
0965       o Removed SetCuts() from the local PhysicsList.
0966     + advanced/gorad
0967       o Fixed potential shadowing compilation warnings in GRInitialization.
0968     + advanced/hadrontherapy
0969       o Modified HadrontherapyLet for file generation.
0970       o Removed dependency on G4EmProcessOptions.
0971       o Geometry modification in CarbonBeamLine.
0972       o Removed unncessary G4AutoDelete of StepProcessMax in physics list.
0973       o Minor changes in macro files.
0974     + advanced/HGCal_testbeam
0975       o SiliconPixelHit, SiPMHit: fixed problem in handling of NIEL energy
0976         deposition.
0977       o CMSHadronPhysicsFTFP_BERT: added class from CMS.
0978       o Removed obsolete class CMSEmStandardPhysicsHcal.
0979       o FTFPCMS_BERT_EMM: use correct combination of physics constructors.
0980       o Removed use of obsolete RanecuEngine. Updated CMS EM physics.
0981     + advanced/ICRP110_HumanPhantoms
0982       o Introduced ICRP110PhantomVisAction. Updated vis.mac which shows
0983         how to activate it.
0984     + advanced/iort_therapy
0985       o Removed dependency on G4EmProcessOptions.
0986       o Removed SetCuts() from the local PhysicsList.
0987       o Set cuts per region in ConstructProcess(). RegionStore is not available
0988         when accessed from the constructor of the Physics List.
0989     + advanced/microbeam
0990       o Added initialisation of 'fDose3DDose' and 'fMapVoxels' in the
0991         constructor of the RunAction class.
0992       o Use explicit constructors and "override" instead of "virtual" in
0993         derived classes. Use G4 types in DetectorConstruction.
0994       o In main() do not initialize run and number of threads, let 
0995         these be done in macro microbeam.mac.
0996       o DetectorConstruction: use CLHEP::twopi. Avoid having 'fField' pointer
0997         as class member, use G4AutoDelete registration instead.
0998       o CellParameterisation: initilize all data members.
0999     + advanced/microelectronics
1000       o Updated PhysicsList to new EM settings.
1001     + advanced/STCyclotron
1002       o STCyclotronSensitiveTarget: remove deprecated include.
1003       o Use new CLHEP units for minute, hour, day, year in
1004         STCyclotronPhysicsList.
1005     + advanced/underground_physics
1006       o In DMXParticleSource::ConfineSourceToVolume(), use existing
1007         facility to faster find physical volme in store, rather than looping
1008         through. Some code cleanup.
1009       o DMXPhysicsList: replaced G4HadronCaptureProcess with
1010         G4NeutronCaptureProcess. Replaced stopping processes that have been
1011         deleted. Removed header files of old and unused pion inelastic
1012         cross-sections (that have been deleted). Replaced particle-specific
1013         inelastic processes (that have been deleted) with
1014         G4HadronInelasticProcess.
1015       o Replaced deprecated optical commands & parameters with new ones.
1016     + advanced/xray_fluorescence
1017       o Removed dependency on G4EmProcessOptions.
1018       o Removed SetCuts() from the local PhysicsList.
1019     + basic/B1
1020     + basic/B2
1021     + basic/B3
1022       o Migrated to use G4SteppingVerboseWithUnits.
1023       o Use nullptr instead of 0.
1024       o Cleaned trailing whitespaces from all files.
1025     + basic/B4
1026       o Removed macros/visTutor. A movies tutorial is now in extended example
1027         visualization/movies. Remove visTutor menu in all gui.mac files.
1028       o Migrated to use G4SteppingVerboseWithUnits.
1029       o Use nullptr instead of 0.
1030       o Cleaned trailing whitespaces from all files.
1031     + basic/B5
1032       o Migrated to use G4SteppingVerboseWithUnits.
1033       o Use nullptr instead of 0.
1034       o Cleaned trailing whitespaces from all files.
1035     + extended/biasing/B03
1036       o B03PhysicsList: replaced G4HadronCaptureProcess with
1037         G4NeutronCaptureProcess, and G4HadronFissionProcess with
1038         G4NeutronFissionProcess. Replaced old ion cross-sections (that have
1039         been deleted) with better ones. Use G4HadronInelasticProcess for
1040         inelastic processes (the particle-specific inelastic processes have
1041         been deleted).
1042     + extended/electromagnetic/TestEm0
1043       o Updated PhysListEmStandard.
1044       o DetectorConstruction: print only used material.
1045     + extended/electromagnetic/TestEm1
1046       o Migrated main() to use G4RunManagerFactory and
1047         G4SteppingVerboseWithUnits.
1048       o Updated PhysListEmStandard.
1049       o DetectorConstruction: do not print materials table.
1050       o StepMax: code formatting.
1051       o Added macro stepMax.mac.
1052     + extended/electromagnetic/TestEm2
1053       o Migrated to use G4SteppingVerboseWithUnits.
1054       o Removed obsolete PhysList5DEmStandard. 5D model is a part of
1055         Opt4 and other physics configurations.
1056       o Updated PhysListEmStandard.
1057       o DetectorConstruction: do not print materials table.
1058       o StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger: revert,
1059         to make command '/testem/stepMax' working in interactive mode.
1060       o SteppingVerbose: set precision via data member; modified process name.
1061       o Use G4RunManagerFactory in main().
1062       o Added macro stepMax.mac.
1063     + extended/electromagnetic/TestEm3
1064       o Updated PhysListEmStandard.
1065       o StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger: revert,
1066         to make command '/testem/stepMax' working in interactive mode.
1067       o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1068       o Added macro stepMax.mac.
1069     + extended/electromagnetic/TestEm4
1070       o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1071     + extended/electromagnetic/TestEm5
1072       o Updated PhysListEmStandard.
1073       o Migrated to G4SteppingVerboseWithUnits.
1074       o TrackingAction: fixed bug for filling histos 6 and 7.
1075         Fixed bug for histo of vertex position.
1076       o StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger: revert,
1077         to make command '/testem/stepMax' working in interactive mode.
1078       o Use G4RunManagerFactory in main().
1079       o Removed obsolete PhysListEm5DPhysics and PhysListEm19DPhysics,
1080         as these models are now part of regular physics constructors.
1081       o Added macros stepMax.mac and subcut.mac.
1082     + extended/electromagnetic/TestEm6
1083       o Migrated to G4SteppingVerboseWithUnits.
1084     + extended/electromagnetic/TestEm7
1085       o Migrated to G4SteppingVerboseWithUnits.
1086       o Removed use of obsolete RanecuEngine. Updated PhysListEmPhysicsNR.
1087     + extended/electromagnetic/TestEm9
1088       o Replaced local Physics List by clone of the default EM standard;
1089         recover analysis of process calls for the case of gamma general
1090         process; improved macro files. Removed unused header.
1091     + extended/electromagnetic/TestEm11
1092       o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1093       o Updated PhysListEmStandard.
1094       o DetectorConstruction: print only used material.
1095       o RunAction: dump G4EmParameters.
1096     + extended/electromagnetic/TestEm12
1097     + extended/electromagnetic/TestEm13
1098     + extended/electromagnetic/TestEm14
1099       o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1100       o Updated PhysListEmStandard.
1101     + extended/electromagnetic/TestEm15
1102       o Migrated to G4SteppingVerboseWithUnits.
1103       o PhysicsList: removed PhysList5DStandard, as 5D model is now part of
1104         Opt4 EM physics in standard constructors.
1105     + extended/electromagnetic/TestEm16
1106       o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1107     + extended/electromagnetic/TestEm17
1108     + extended/electromagnetic/TestEm18
1109       o Migrated to G4SteppingVerboseWithUnits.
1110     + extended/eventgenerator/particleGun
1111       o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1112         Removed SteppingVerbose class.
1113     + extended/eventgenerator/pythia/py8decayer
1114       o New example demonstrating how to outfit Pythia8-based decay features 
1115         to those resonances in Geant4 where decay tables are not implemented
1116         by default. In addition, it shows how to replace existing
1117         Geant4 decay tables to such resonances as tau+/- or B+/- with 
1118         the Pythia8-based ones.
1119     + extended/eventgenerator/userPrimaryGenerator
1120       o Migrated to use G4SteppingVerboseWithUnits.
1121     + extended/exoticphysics/channeling
1122       o Removed local option4 physics configuration.
1123     + extended/geometry/transforms
1124       o Migrated to use G4SteppingVerboseWithUnits.
1125       o Added cleaning of the reflection factory.
1126     + extended/geometry/VecGeomNavigation
1127       o New example demonstrating integration of VecGeom navigation, based on
1128         the prototype package G4VecGeomNav, being integrated in the example at
1129         build time.
1130     + extended/hadronic/FissionFragment
1131       o Fixed CMake build script to define target properly.
1132     + extended/hadronic/Hadr01
1133       o PhysicsList: removed unused header file.
1134     + extended/hadronic/Hadr02
1135       o CRMCNeutronBuilder, HIJINGNeutronBuilder, UrQMDNeutronBuilder: replaced
1136         G4HadronCaptureProcess with G4NeutronCaptureProcess, and
1137         G4HadronFissionProcess with G4NeutronFissionProcess.
1138       o IonUrQMDPhysics: replaced old ion cross-sections (that have been
1139         deleted) with G4ComponentGGNuclNuclXsc.
1140       o Replaced particle-specific inelastic processes (that have been deleted)
1141         with G4HadronInelasticProcess.
1142     + extended/hadronic/Hadr03
1143       o PhysicsList: added GammaNuclearPhysicsLEND.
1144       o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1145         G4PhotoNuclearProcess (that has been deleted) with
1146         G4HadronInelasticProcess.
1147       o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1148         Removed SteppingVerbose class.
1149     + extended/hadronic/Hadr04
1150       o NeutronHPphysics: replaced G4HadronCaptureProcess with
1151         G4NeutronCaptureProcess, and G4HadronFissionProcess with
1152         G4NeutronFissionProcess. Replaced G4NeutronInelasticProcess (that has
1153         been deleted) with G4HadronInelasticProcess.
1154       o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1155         Removed SteppingVerbose class.
1156     + extended/hadronic/Hadr06
1157       o TrackingAction: count secondary particles with meanLife > 0.
1158         Print meanLife. Added TrackingMessenger with 2 commands
1159       o PhysicsList: added GammaNuclearPhysicsLEND.
1160         Use new CLHEP units for minute, hour, day, year and millielectronvolt.
1161       o Updated ElectromagneticPhysics.
1162       o Suppressed command "/process/list" in several macros.
1163       o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1164         G4PhotoNuclearProcess (that has been deleted) with
1165         G4HadronInelasticProcess.
1166       o DetectorConstruction: updated 'fWorldSize' for SetRadius().
1167       o Migrated main() to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1168       o Enable ParticleHP settings in main().
1169       o Stepping verbose initialisation.
1170     + extended/hadronic/Hadr07
1171       o TrackingAction: count secondary particles with meanLife > 0.
1172         Print meanLife.
1173       o PhysicsList: added GammaNuclearPhysicsLEND.
1174         Use new CLHEP units for minute, hour, day, year and millielectronvolt.
1175       o Updated ElectromagneticPhysics.
1176       o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1177         G4PhotoNuclearProcess (that has been deleted) with
1178         G4HadronInelasticProcess.
1179       o Migrated main() to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1180         Enable ParticleHP settings in main().
1181     + extended/hadronic/Hadr08
1182       o BiasingOperation: replaced Gheisha inelastic cross-section (that
1183         has been deleted) with better cross-sections.
1184         Replaced particle-specific inelastic processes (that have been deleted)
1185         with G4HadronInelasticProcess.
1186     + extended/hadronic/Hadr09
1187       o HadronicGenerator: migrated per-particle inelastic processes (that have
1188         been deleted) to G4HadronInelasticProcess.
1189     + extended/hadronic/Hadr10
1190       o New hadronic example aimed to exercise the decay of tau leptons,
1191         as well as charmed and bottom hadrons.
1192     + extended/hadronic/NeutronSource
1193       o TrackingAction: count secondary particles with meanLife > 0.
1194         Print meanLife.
1195       o PhysicsList: added GammaNuclearPhysicsLEND.
1196         Use new CLHEP units for minute, hour, day, year and millielectronvolt.
1197       o Updated ElectromagneticPhysics.
1198       o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1199         G4PhotoNuclearProcess (that has been deleted) with
1200         G4HadronInelasticProcess.
1201       o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1202         Removed SteppingVerbose class.
1203     + extended/medical/DICOM
1204       o In vis.mac, changed "/vis/ogl/set/eventsDrawInterval" to
1205         "/vis/ogl/flushAt NthPrimitive".
1206     + extended/medical/dna/AuNP
1207       o New example simulating the track-structure of electrons in microscopic
1208         gold volume. Also simulating that in liquid water medium surrounding
1209         the gold volume.
1210     + extended/medical/dna/chem2
1211       o In vis.mac, changed "/vis/ogl/set/eventsDrawInterval" to
1212         "/vis/ogl/flushAt NthPrimitive".
1213     + extended/medical/dna/chem3
1214       o In vis.mac, changed "/vis/ogl/set/" to "/vis/viewer/set/timeWindow/".
1215     + extended/medical/dna/dnadamage1
1216       o Fixed SSD file typos.
1217     + extended/medical/dna/neuron
1218       o In vis.mac, changed "/vis/ogl/set/" to "/vis/viewer/set/timeWindow/".
1219     + extended/medical/dna/microdosimetry
1220       o Updated PhysicsList to use updated SetEmModel() method.
1221         Removed thread unsafe SetCuts() method; use SetEmModel(..) for
1222         multiple scattering.
1223     + extended/medical/dna/splitting
1224       o Updated PhysicsList to recent EM settings.
1225     + extended/medical/dna/svalue
1226       o PhysicsList: removed unused header. Radioactive decay is defined via
1227         standard radioactive physics builder.
1228       o Do not allow change of geometry between runs, only materials may be
1229         changed.
1230       o Removed all warning in test run.
1231     + extended/medical/electronScattering
1232       o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1233     + extended/medical/electronScattering2
1234       o Removed warning. Cosmetic modifications in PhysicsList.
1235     + extended/medical/fanoCavity
1236     + extended/medical/fanoCavity2
1237       o Updated PhysicsList to recent EM settings.
1238       o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1239     + extended/optical/LXe
1240       o Get some refractive indices from new G4OpticalMaterialParameters file.
1241       o Excercise creating material property table element by element.
1242       o Replaced deprecated optical commands and parameters with new ones.
1243     + extended/optical/OpNovice
1244       o Excercise creating material property table element by element.
1245       o Replaced deprecated optical commands and parameters with new ones.
1246       o Fixed incorrect material property name.
1247       o Added option to define detector via a GDML file.
1248       o Added outer world volume to avoid surfaces including world volume.
1249         Addressing problem report #2373.
1250     + extended/optical/OpNovice2
1251       o Replaced deprecated optical commands and parameters with new ones.
1252     + extended/optical/wls
1253       o WLSMaterials: use correct material property names.
1254       o WLSPrimaryGeneratorAction: use G4PhysicsFreeVector instead of
1255         deprecated G4PhysicsOrderedFreeVector.
1256     + extended/parallel/ThreadsafeScorers
1257       o TSPhysicsList: removed obsolete header G4EmProcessOptions; removed
1258         method SetCuts() to avoid data race, use the one from the base class; 
1259         removed singleton pattern from this class as not needed.
1260     + extended/polarisation/Pol01
1261       o Cleanup of Physics List; use renamed polarized processes.
1262     + extended/radioactivedecay/Activation
1263       o TrackingAction: count secondary particles with meanLife > 0.
1264       o PhysicsList: added GammaNuclearPhysicsLEND.
1265         Use new CLHEP units for minute, hour, day, year and millielectronvolt.
1266       o Updated ElectromagneticPhysics.
1267       o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1268         G4PhotoNuclearProcess (that has been deleted) with
1269         G4HadronInelasticProcess.
1270       o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1271         Removed SteppingVerbose class.
1272     + extended/radioactivedecay/rdecay01
1273     + extended/radioactivedecay/rdecay02
1274       o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1275         Removed SteppingVerbose class.
1276       o Use new CLHEP units for minute, hour, day, year and millielectronvolt
1277         in PhysicsList.
1278     + extended/runAndEvent/RE05
1279     + extended/runAndEvent/RE06
1280       o Migration to the new SteppingVerbose.
1281     + extended/visualization/movies
1282       o New example illustrating how to make a movie with /vis/viewer/save
1283         and /vis/viewer/interpolate. It also includes the "visTutor" macros
1284         from the old "novice" example, N03, subsequently moved to "basic" B4.
1285         See README for further information.
1286 
1287  ----------------------------------------------------------------------------
1288