Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-22 09:39:52

0001 <HTML>
0002 <HEAD>
0003 <TITLE>Geant4 11.0 Release Notes</TITLE>
0004 </HEAD>
0005 <BODY BGCOLOR='F0F0F0'>
0006 
0007 <P> </P>
0008 <BR>
0009 <P> </P>
0010 
0011 <P ALIGN="Center">
0012 <FONT SIZE="+4" COLOR="#238E23">
0013 <B>Geant4 11.0 Release Notes</B>
0014 </FONT>
0015 
0016 <TABLE WIDTH="100%">
0017 <TR><TD ALIGN="Right">
0018 <FONT SIZE="-1" COLOR="#5C3317">
0019 <B><I>December 10<SUP>th</SUP>, 2021</I></B>
0020 </FONT>
0021 </TD></TR>
0022 </TABLE>
0023 
0024 <BR><BR>
0025 <HR ALIGN="Center" SIZE="7%">
0026 <P>
0027 The code and binary libraries for the supported systems are available
0028 through our <A TARGET="ext" HREF="http://cern.ch/geant4/support/download">Source
0029 Code Web page</A>.
0030 </P>
0031 <P>
0032 <I>We are grateful for the efforts of Geant4 users who have provided
0033    detailed feedback or comprehensive reports of issues.
0034    We thank in particular those who have contributed corrections,
0035    improvements or developments included in this release. </I>
0036 </P>
0037 <P>
0038 Please refer to the
0039 <A TARGET="ext" HREF="http://cern.ch/geant4/support/user_documentation">Geant4
0040 User Documentation</A> for further information about using Geant4.
0041 </P>
0042 
0043 <H2><I>Contents</I></H2>
0044 <OL>
0045 <LI><A HREF="#1.">Supported and Tested Platforms</A></LI>
0046 <LI><A HREF="#2.">Supported CLHEP and VecGeom versions</A></LI>
0047 <LI><A HREF="#3.">Items for migration of the user code</A></LI>
0048 <LI><A HREF="#4.">New Developments and Capabilities</A></LI>
0049 <LI><A HREF="#5.">Expected effects on physics and performance</A></LI>
0050 <LI><A HREF="#6.">Known Run-Time Problems and Limitations</A></LI>
0051 <LI><A HREF="#7.">Compilation Warnings</A></LI>
0052 <LI><A HREF="#8.">Geant4 Software License</A></LI>
0053 <LI><A HREF="#9.">Detailed list of changes and fixes</A></LI>
0054 <LI><A HREF="#10.">Appendix</A></LI>
0055 </OL>
0056 
0057 <P> </P>
0058 <A NAME="1."></a>
0059 <HR>
0060 
0061 <!-- ============================================== -->
0062 
0063 <H2>1. Supported and Tested Platforms</H2>
0064 
0065 Platforms:
0066 <UL>
0067 <LI>Linux, gcc-8.3.1.<BR>
0068     Tested on 64 bit architectures (Intel or AMD) with
0069     CERN CentOS Linux 8 (CC8) (based on CentOS Linux 8).</LI>
0070 <LI>macOS 12.01 Monterey with Apple LLVM/Clang-13.<BR>
0071     Tested on 64 bit architectures (Intel or Apple Silicon).</LI>
0072 <LI>Windows-10 with Visual C++ 14.29 (Visual Studio 2019).</LI>
0073 </UL>
0074 
0075 More verified and tested configurations (64 bits):
0076 <UL>
0077 <LI>Linux, gcc-9.3/10.2/11.2, clang-9/10/11</LI>
0078 <LI>Linux, Intel-icc 2021.4</LI>
0079 <LI>macOS 10.15 Catalina with Apple LLVM/Clang-12</LI>
0080 <LI>macOS 11.6 Big Sur with Apple LLVM/Clang-12</LI>
0081 </UL>
0082 
0083 <P> </P>
0084 <A NAME="2."></A>
0085 <HR>
0086 
0087 <!-- ============================================== -->
0088 
0089 <H2>2. Supported CLHEP and VecGeom versions</H2>
0090 
0091 This release of Geant4 requires and has been verified with
0092 <A TARGET="ext" HREF="http://cern.ch/clhep/">CLHEP</A>, release <B>2.4.5.1</B>.
0093 Use of a different CLHEP version may cause incorrect simulation results.<BR>
0094 NOTE: an internal module of the relevant CLHEP classes is provided and can be
0095 used as alternative to an external CLHEP library installation.<BR>
0096 A configuration option allows a Geant4 installation to use the
0097 <A HREF="https://gitlab.cern.ch/VecGeom/VecGeom/">VecGeom Library</A>
0098 primitives, to replace the original Geant4 solids. VecGeom version
0099 <B>1.1.18</B> is required when using such configuration.
0100 
0101 <P> </P>
0102 <A NAME="3."></A>
0103 <HR>
0104 
0105 <!-- ============================================== -->
0106 
0107 <H2>3. Items for migration of the user code</H2>
0108 
0109 Listed here is some relevant information on developments included in this
0110 release.
0111 Note that for all users a full re-installation of libraries (or a full
0112 re-compilation) and a re-compilation of user applications is required.
0113 
0114 <P> </P>
0115 <B>General</B>
0116 <P> </P>
0117 <UL>
0118 <LI>Simplified G4String interfaces and implementation with C++11/17.
0119     Removed obsolete/std::string synonym member functions and deprecated
0120     non-std::string member functions, replacing with new free functions in
0121     G4StrUtil namespace. Might require user code adaptation where G4String
0122     functions are explicitly used; for details see
0123     <A HREF="#string-migration-notes">Section 10</A> of this document.</LI>
0124 <LI>Major update the G4PhysicsVector and related classes; introduced new public
0125     access methods; removed obsolete unused methods; introduced possibility to
0126     use different Spline methods.</LI>
0127 <LI>Removed deprecated classes G4LPhysicsFreeVector and G4PhysicsLnVector;
0128     redirect G4PhysicsOrderedFreeVector to G4PhysicsFreeVector.</LI>
0129 <LI>New version of G4PhysicsModelCatalog, the catalog of physics models.
0130     Introduced a modelID (a unique integer for each physics model, with close
0131     values for similar/related physics models), besides an index (the position
0132     in a vector) and the name (string) of the model. The main difference with
0133     respect to the previous version is that the three identifiers of each
0134     physics model - modelID, index and name - must stay constant and the same
0135     for all applications, physics lists and future versions of Geant4.</LI>
0136 <LI>C++17 is the minimum ISO C++ Standard required to compile Geant4 and all
0137     applications using it.</LI>
0138 <LI>Multithreading support is now enabled in the build of Geant4 by default.</LI>
0139 <LI>CMake 3.16 is the minimum version required to build Geant4.</LI>
0140 </UL>
0141 
0142 <B>Analysis</B>
0143 <UL>
0144 <LI>Major revision in analysis classes. Migration to G4ThreadLocalSingleton
0145     in all specific analysis manager and reader classes. The singleton instances
0146     are now deleted by the Geant4 kernel; their explicit deletion in client code
0147     has to be removed.</LI>
0148 <LI>New G4AnalysisReader.hh header, defining G4AnalysisManager as
0149     G4GenericAnalysisManager; G4GenericAnalysisManager can handle all supported
0150     file formats, so file names should be provided with an extension (.csv,
0151     .hdf5, .root or .xml). To continue using file names without extensions,
0152     users can set the default file type using the new function
0153     SetDefaultFileType(...). Output specific headers have been removed.</LI>
0154 <LI>Also removed g4analysis.hh header with the G4Analysis::MasterInstance()
0155     factory method.</LI>
0156 <LI>Added new G4VAnalysisReader public function CloseFiles() to be called by
0157     user before the end of program and its implementation for all readers.</LI>
0158 </UL>
0159 
0160 <P> </P>
0161 <B>Geometry, Fields and Transportation</B>
0162 <P> </P>
0163 <UL>
0164 <LI>Removed deprecated accessors in G4Sphere and G4Tubs.</LI>
0165 <LI>G4[Partial]PhantomParameterisation: renamed Get/SetNoVoxel*() accessors
0166     to Get/SetNoVoxels*() for coherence. Might imply user code migration.</LI>
0167 </UL>
0168 
0169 <P> </P>
0170 <B>Electromagnetic and optical physics</B>
0171 <P> </P>
0172 <UL>
0173 <LI>G4EmProcessOptions class has been removed. Adaptation of custom user made
0174     physics-lists may be required.</LI>
0175 <LI>Removed deprecated material properties for G4Scintillation. Now
0176     the "enhanced" time constants of version 10.7 are the only way to specify
0177     scintillation properties.</LI>
0178 <LI>Added protection against typos in material property names. To create a
0179     user-defined material property (or material constant property), add the 
0180     <TT>createNewKey=true</TT> argument to <TT>Add(Const)Property()</TT>.</LI>
0181 <LI>Removed redundant optical UI commands.</LI>
0182 </UL>
0183 
0184 <P> </P>
0185 <B>Hadronic physics configuration</B>
0186 <P> </P>
0187 <UL>
0188 <LI>Constructors for inelastic processes have changed signature, as well
0189     as for elastic and inelastic cross-sections.<BR>
0190     This affects the internal configuration in physics-lists.
0191     See the details in <A HREF="#hadronic-migration-notes">Section 10</A>
0192     of this document, for the required adaptations in <I>custom</I>
0193     physics-lists.</LI>
0194 <LI>Deprecated environmental variables used in NeutronHP, ParticleHP and
0195     Radioactive Decay have been removed: they have been replaced by equivalent
0196     UI commands (already introduced in previous versions).</LI>
0197 </UL>
0198 
0199 <P> </P>
0200 <B>Visualization and Modeling</B>
0201 <P> </P>
0202 <UL>
0203 <LI>As of this release, the recommended and supported Open Inventor driver
0204     will be the Qt-based one (OIQt viewer option). The Xt/Xm drivers (OIX,
0205     OIXE) are still available but are deprecated and will be removed in the
0206     next release.</LI>
0207 <LI>Qt drivers require the Qt-5 platform. Qt-6 is not yet supported.</LI>
0208 <LI>The G4VModel interface has been simplified. Responsibility for transformation
0209     and extent has been delegated to individual models. For example, there is no
0210     longer a method G4VModel::GetTransformedExtent(), the concrete model is
0211     required to maintain the extent depending on the transformation (if any) and
0212     a simple GetExtent() returns the current extent.</LI>
0213 </UL>
0214 
0215 <P> </P>
0216 <B>Data Sets</B>
0217 <P> </P>
0218 <UL>
0219 <LI>This release introduces new data set versions.
0220     Please see the corresponding details in
0221     <A href="#data-notes">Section 9</A> of this document.
0222     <UL>
0223     <LI>New data set versions: <TT>G4EMLOW-8.0, G4PARTICLEXS-4.0</TT>.</LI>
0224     <LI>In order to use <TT>ParticleHP</TT> for charged particles
0225         (protons, deuterons, tritons, He3 and alphas), an optional data
0226         set <TT>G4TENDL-1.4</TT> is required, and can be optionally
0227         downloaded in addition.</LI>
0228     </UL></LI>
0229 </UL>
0230 
0231 <A NAME="4."></A>
0232 <HR>
0233 
0234 <!-- ============================================== -->
0235 
0236 <H2>4. New Developments and Capabilities </H2>
0237 
0238 <B>General</B>
0239 <UL>
0240 <LI>Tasking system, based on PTL (Parallel Tasking Library) v2.0.0, is set
0241     as default parallelism scheme for multi-threading. A dedicated run manager
0242     (G4TaskRunManager) and factory (G4RunManagerFactory) are provided,
0243     enabling use of tasks for the event loop.
0244     The tasking system is fully compatible with Intel TBB, which can be
0245     selected if GEANT4_USE_TBB=ON is specified when configuring CMake. The
0246     default behavior for tasking is to submit the tasks to an internal
0247     thread-pool and task-queue.</LI>
0248 <LI>New G4SteppingVerboseWithUnits class, an alternative to G4SteppingVerbose
0249     with printout of proper units. Simplified way of defining a user-specific
0250     stepping verbose, that is now common to all sequential, MT and tasking
0251     modes.</LI>
0252 <LI>Introducing G4VTrackingManager, an interface for custom tracking
0253     managers specialized for one or a small number of particle types.
0254     Custom tracking manager is used in G4VUserPhysicsList, if registered.
0255     G4EventManager hands over tracks to custom tracking manager, if registered
0256     for the particle.</LI>
0257 <LI>Added new Ranlux++ engine to the list of supported random engines.</LI>
0258 <LI>G4String provides a new <TT>G4StrUtil</TT> namespace with functions for
0259     simple string manipulation, including left/right stripping, case
0260     conversion, and searching.</LI>
0261 </UL>
0262 
0263 <B>Analysis</B>
0264 <UL>
0265 <LI>New public functions G4VAnalysisManager::Reset() and Clear() allowing
0266     resetting and deleting all allocated analysis objects and clearing 
0267     their collections.</LI>
0268 <LI>Added support for n-tuple columns of string vectors via new public
0269     functions in G4VAnalysisManager and G4VAnalysisReader</LI>
0270 <LI>Implemented support for file system directories with Csv output. The
0271     histogram and n-tuple files are saved in directories, if their names are
0272     set and if the directories exist in the file system.</LI>
0273 </UL>
0274 
0275 <B>Digitization, Hits &amp; Scoring</B>
0276 <UL>
0277 <LI>Extended cylindrical scoring mesh to tube and tube segment.</LI>
0278 </UL>
0279 
0280 <B>Geometry and Field</B>
0281 <UL>
0282 <LI>Added maps for faster search based on name in solids, regions and
0283     volumes stores.</LI>
0284 <LI>Enabled use of alternative G4VoxelNavigation class, allowing the possibility
0285     to use alternative navigation algorithms for voxelised/optimised geometries.</LI>
0286 <LI>Added new example demonstrating interface with VecGeom navigator (Beta).</LI>
0287 </UL>
0288 
0289 <B>Materials</B>
0290 <UL>
0291 <LI>Revised and updated G4Exceptions in G4Material, now providing more complete
0292     information and better diagnostics.</LI>
0293 <LI>Updated G4Material: use const pointers to G4Elements where needed.</LI>
0294 <LI>New class G4OpticalMaterialProperties, a store for optical material properties
0295     and allow use of predefined optical material properties.</LI>
0296 <LI>In G4MaterialPropertiesTable, the use of <TT>std::vector</TT> for material
0297     properties and material const properties, rather than <TT>std::map</TT>,
0298     eliminates the need to find the map entry.</LI>
0299 </UL>
0300 
0301 <B>Electromagnetic physics</B>
0302 <UL>
0303 <LI>General code cleanup in EM modules; removed obsolete models and processes,
0304     removed G4EmProcessOptions class.</LI>
0305 <LI>Updates to G4GammaGeneralProcess: exclude gamma-nuclear from the 2<SUP>nd</SUP>
0306     energy area.</LI>
0307 <LI>Fixed model per region definition for all base processes G4VEmProcess,
0308     G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
0309     for energy loss processes but left G4VSubCutProducer interface.</LI>
0310 <LI>Updated EM integral approach by introduction of a cross-section shape type
0311     including cross-section shape with 2 maxima.</LI>
0312 <LI>Reviewed EM part of G4PhysicsModelCatalog to adopt new numbering convention.
0313     Created new enum for low-energy electromagnetic process sub-types.</LI>
0314 <LI>Updated G4UrbanMscModel to not apply energy correction at small steps
0315     below 1% of a particle range.</LI>
0316 <LI>G4VEmFluctuationModel: changed interface; both cut value and max energy
0317     transfer are parameters of main methods.</LI>
0318 <LI>In G4UniversalFluctuation, substantially simplified sampling algorithm
0319     for faster computation.</LI>
0320 <LI>Updated Livermore models to use EPICS2017 data.</LI>
0321 <LI>Included new PIXE data libraries following ANSTO recommendations.</LI>
0322 <LI>New data structure for ICRU73 and ICRU90 ion stopping power data shared
0323     between threads and used in G4LinhardSorensenIonModel.</LI>
0324 <LI>Implement and use base material approach only if base materials are defined,
0325     this should bring a minor speedup of the code and little reduction of memory.</LI>
0326 <LI>Enable synchrotron radiation only for electrons, positrons, muons, protons,
0327     and anti-protons.</LI>
0328 <LI>Introducing quantum entanglement of e+ annihilation. Currently implemented
0329     only in G4eplusAnnihilation and G4LivermorePolarizedComptonModel.</LI>
0330 <LI>New class G4OpticalMaterialProperties, a store for optical material
0331     properties and allow use of predefined optical material properties.</LI>
0332 <LI>Added new IRT-syn model for DNA.</LI>
0333 </UL>
0334 
0335 <B>Hadronic physics</B>
0336 <UL>
0337 <LI>General code clean-up in hadronic processes and models; removed obsolete
0338     and deprecated classes; removed obsolete "rpg" model.</LI>
0339 <LI>Introduced a new threshold parameter in radioactive-decay for analogue mode
0340     to kill very long radioactive decays at rest of nuclides happening later
0341     than such threshold.</LI>
0342 <LI>Introduced six light hypernuclei and their corresponding antiparticles
0343     (for the time being, only electromagnetic interactions of these particles
0344     are available, but switched off by default).</LI>
0345 <LI>Extended the interface of hadronic models for projectile hypernuclei and
0346     anti-hypernuclei (but not yet hadronic physics for these particles).</LI>
0347 <LI>Added implementation of hypercluster emission in INCLXX.</LI>
0348 <LI>Extended interface of the Fritiof (FTF) string model to get the number of
0349     projectile/target spectator nucleons, number of nucleon-nucleon collisions
0350     and impact parameter (see example <TT>Hadr09</TT>).</LI>
0351 </UL>
0352 
0353 <B>Physics Lists</B>
0354 <UL>
0355 <LI>Updated physics lists to use a uniform approach for verbosity.</LI>
0356 <LI>Electromagnetic physics for light hypernuclei (switched off by default)
0357     can be enabled on top of any Physics Lists via C++ interface
0358     (<TT>G4HadronicParameters::Instance()->SetEnableHyperNuclei(true)</TT>).</LI>
0359 <LI>ANSTO data option for atomic de-excitation can be enabled on top of any
0360     physics lists using C++ interface or better via UI command.</LI>
0361 <LI>EPICS2017 parameterisations for Livermore gamma processes can be enabled.</LI>
0362 <LI>Positron anihilation to the tau pair can be enabled.</LI>
0363 <LI>LinhardSorensenIonModel is available with G4EmStandardPhysicsWVI
0364     constructor.</LI>
0365 </UL>
0366 
0367 <B>Visualization and Interfaces</B>
0368 <UL>
0369 <LI>New ToolsSG (TSG) visualisation package based on g4tools, providing four
0370     new (mutually exclusive) visualisation drivers: TOOLSSG_X11_GLES,
0371     TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.</LI>
0372 <LI>New VtkQt and VtkNative visualisation drivers.</LI>
0373 <LI>Introducing in-app plotting with visualization and related UI command.</LI>
0374 <LI>Introducing G4Mesh, a light class that encapsulates and validates
0375     visualisation of a nested parameterisation.</LI>
0376 <LI>Extended G4UIWin32 driver with new features.</LI>
0377 <LI>Revised all visualisation models, to have G4PhysicalVolumeModel taking
0378     care of the transformation of any primitives that it generates.</LI>
0379 <LI>Removed obsolete network visualisation options for VRML driver
0380     and FukuiRenderer driver.</LI>
0381 <LI>Removed obsolete GAG/Gain/MOMO and HepRep(WIRED) modules/driver.</LI>
0382 <LI>Removed deprecated functions in visualization.</LI>
0383 </UL>
0384 
0385 <B>Examples</B>
0386 <UL>
0387 <LI><B>CaTS</B> - New application implementing a flexible and extendable
0388     framework for the simulation of calorimeter and tracking detectors. 
0389     It also demonstrates how to use
0390     <A HREF="https://bitbucket.org/simoncblyth/opticks.git">Opticks</A>
0391     for the creation and propagation of optical photons.</LI>
0392 <LI><B>pythia/py8decayer</B> - New example demonstrating how to outfit
0393     Pythia8-based decay features to those resonances in Geant4 where decay
0394     tables are not implemented by default. In addition, it shows how to
0395     replace existing Geant4 decay tables to such resonances as <TT>tau+/-</TT>
0396     or <TT>B+/-</TT> with the Pythia8-based ones.</LI>
0397 <LI><B>geometry/VecGeomNavigation</B> - New example demonstrating integration
0398     of VecGeom navigation, based on the prototype package G4VecGeomNav, being
0399     integrated in the example at build time.</LI>
0400 <LI><B>hadronic/Hadr05</B> - New example demonstrating how to collect energy
0401      deposition in a sampling calorimeter and how to survey energy flow.</LI>
0402 <LI><B>hadronic/Hadr10</B> - New hadronic example aimed to exercise the decay
0403      of tau leptons, as well as charmed and bottom hadrons.</LI>
0404 <LI><B>parameterisations/Par04</B> - New example demonstrating how to use the
0405     Machine Learning (ML) inference to create energy deposits as a fast
0406     simulation model using ONNX runtime and LWTNN libraries.</LI>
0407 <LI><B>runAndEvent/RE07</B> - New example demonstrating how to register
0408      specialized tracking managers for a particle or a set of particles.</LI>
0409 </LI><LI><B>dna/AuNP</B> - New example simulating the track-structure of electrons
0410      in microscopic gold volume. Also simulating that in liquid water
0411      medium surrounding the gold volume.</LI>
0412 <LI><B>dna/scavenger</B> - New example showing how to activate the scavenging
0413      process in chemistry using the deterministic treatment of the IRT
0414      model.</LI>
0415 <LI><B>visualization/movies</B> - New example illustrating how to make a movie
0416      with <TT>/vis/viewer/save</TT> and <TT>/vis/viewer/interpolate</TT> UI
0417      commands.</LI>
0418 </UL>
0419 
0420 <A NAME="5."></A>
0421 <HR>
0422 
0423 <!-- ============================================== -->
0424 
0425 <H2>5. Expected effects on physics and computing performance</H2>
0426 
0427 <B>Geometry</B>
0428 <UL>
0429 <LI>Use G4Allocator to dynamically allocate nodes and proxies for the voxels
0430     optimisation structure. Should help reducing memory fragmentation.</LI>
0431 </UL>
0432 
0433 <B>Electromagnetic physics</B>
0434 <UL>
0435 <LI>Expected few % speed-up for EM simulations. Stable results for calorimeters
0436     compared with the previous versions 10.6 or 10.7.</LI>
0437 </UL>
0438 
0439 <B>Hadronic physics</B>
0440 <UL>
0441 <LI>Stable results with respect to version 10.7 are expected in general for
0442     all hadronic physics observables, in particular for hadronic showers
0443     in calorimeters.</LI></LI>
0444 </UL>
0445 
0446 <P> </P>
0447 <A NAME="6."></A>
0448 <HR>
0449 
0450 <!-- ============================================== -->
0451 
0452 <H2>6. Known Run-Time Problems and Limitations</H2>
0453 For a complete list of outstanding run-time problems and to submit any
0454 problem you may find while running this version of Geant4, please refer
0455 to the
0456 <A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem
0457 Reporting System</A>.
0458 
0459 <P> </P> 
0460 <A NAME="7."></A>
0461 <HR>
0462 
0463 <!-- ============================================== -->
0464 
0465 <H2>7. Compilation Warnings</H2>
0466 
0467 There may be a few compilation warnings on some platforms.
0468 We do not believe that any of these lead to incorrect run-time behaviour.
0469 
0470 <P> </P>
0471 <A NAME="8."></A>
0472 <HR>
0473 
0474 <!-- ============================================== -->
0475 
0476 <H2>8. Geant4 Software License</H2>
0477 
0478 A Software License applies to the Geant4 code.
0479 Users must accept this license in order to use it.<BR>
0480 The details and the list of copyright holders is available at
0481 <A href="http://cern.ch/geant4/license">http://cern.ch/geant4/license</A>
0482 and also in the text file <TT>LICENSE</TT> distributed with the source code.
0483 
0484 <P> </P>
0485 <A NAME="9."></A>
0486 <HR>
0487 
0488 <!-- ============================================== -->
0489 
0490 <H2>9. Detailed list of changes and fixes</H2>
0491 
0492 These are the main new features/fixes included in this release since the
0493 last patched public release (for more detailed lists of fixes/additions,
0494 please refer to the corresponding History files provided in most packages):
0495 
0496 <P> </P>
0497 
0498 <A NAME="conf-notes">
0499 <H3><I>Configuration</I></H3></A>
0500 <UL>
0501 <LI><U>CMake</U>
0502     <UL>
0503     <LI>Updated minimum required CMake version to 3.16, with 3.16 to 3.21
0504         as confirmed working range.</LI>
0505     <LI>Updated default build settings, GEANT4_BUILD_MULTITHREADED is now
0506         set ON by default.</LI>
0507     <LI>Updated default build settings, GEANT4_BUILD_BUILTIN_BACKTRACE is now
0508         set ON by default.</LI>
0509     <LI>Deprecated use of GEANT4_BUILD_CXXSTD in favour of CMAKE_CXX_STANDARD
0510         to choose C++ Standard to compile against.</LI>
0511     <LI>Requiring C++17 as minimum standard to compile Geant4.</LI>
0512     <LI>Added support for compilation against C++23 with CMake 3.20 and newer
0513         (note that Geant4 is not yet tested or supported using C++23).</LI>
0514     <LI>Removed obsolete -stdlib flag for AppleClang.</LI>
0515     <LI>Added preliminary support for sanitizer builds with advanced option
0516         GEANT4_BUILD_SANITIZER to allow selection of one of address, thread,
0517         or undefined sanitizer. The default is no sanitization.
0518         Adds appropriate flags to CMAKE_CXX_FLAGS.</LI>
0519     <LI>Removed settings of deprecated PHP_AS_HP environmental variable.</LI>
0520     <LI>Removed obsolete GEANT4_USE_SYSTEM_CLHEP_GRANULAR option.</LI>
0521     <LI>Updated CLHEP minimum required version to 2.4.5.1.</LI>
0522     <LI>Updated VecGeom minimum required version to 1.1.18 for optional
0523         build with VecGeom solids.</LI>
0524     <LI>Updated builtin PTL module to version v2.0.0.</LI>
0525     <LI>Added GEANT4_USE_PTL_LOCKS option to configure builtin PTL with mutex
0526         locking in task subqueues.</LI>
0527     <LI>Added GEANT4_USE_TOOLSSG option for enabling new ToolsSG visualisation
0528         driver and selecting the backend (X11, Motif, Qt, or Windows).</LI>
0529     <LI>Added GEANT4_USE_VTK advanced option for enabling new experimental
0530         VTK based visualisation driver.</LI>
0531     <LI>Removed all references to obsolete Wt visualisation driver and
0532         dependencies.</LI>
0533     <LI>Removed obsolete options for VRML and FukuiRenderer network/sockets
0534         visualisation drivers.</LI>
0535     <LI>Added FindPythia8.cmake script for use in examples.</LI>
0536     <LI>Removed obsolete FindAIDA.cmake module, no longer used in examples.</LI>
0537     <LI>Added geant4.bat, geant4-config.cmd prototypes for setting up
0538         environment variables and querying a Geant4 install on Windows.</LI>
0539     <LI>Added XercesC library directory to Linux LD_LIBRARY_PATH for GNUmake.</LI>
0540     <LI>Updated CPack source packaging, including standardisation of naming
0541         following open source conventions and use XZ compression instead of
0542         BZIP.</LI>
0543     <LI>Updated data-sets versions.</LI>
0544     </UL></LI>
0545 <LI><U>GNUMake</U>
0546     <UL>
0547     <LI>Moved default to C++17 Standard.</LI>
0548     <LI>Updated compiler/link flags for migration of g4tools to externals
0549         category.</LI>
0550     <LI>Added comctl32.lib to UI32LIBS for WIN32-VC configuration.</LI>
0551     <LI>Updated default Qt5 include paths for Linux targets.</LI>
0552     <LI>binmake.gmk: removed include path to "rpg" hadronic model, now retired.
0553         Removed include paths to <TT>hadronic/models/management</TT>
0554         and <TT>hadronic/models/util</TT> modules, now retired.</LI>
0555     <LI>Removed obsolete network visualisation options for VRML driver
0556         and FukuiRenderer driver.</LI>
0557     <LI>Removed obsolete GAG/Gain configuration.</LI>
0558     <LI>Removed no longer needed link to libXi in all configurations.</LI>
0559     <LI>Check for existence of lib64 directory for Xerces-C on Linux.</LI>
0560     <LI>Add 'c' flag to ar to suppress diagnostics going to stderr.</LI>
0561    </UL></LI>
0562 </UL>
0563 
0564 <A NAME="ana-notes">
0565 <H3><I>Analysis</I></H3></A>
0566 <UL>
0567 <LI>Migration to G4ThreadLocalSingleton in all specific analysis manager
0568     and reader classes. The singleton instances are now deleted by the Geant4
0569     kernel; their explicit deletion in client code has to be removed.</LI>
0570 <LI>Added public function G4VAnalysisManager::Clear() that deletes all allocated
0571     analysis objects and clears their collections. This function should be used
0572     as a replacement for deleting the analysis manager in the applications that
0573     allocate the analysis data in begin of run and deleted the analysis manager
0574     in end of run.</LI>
0575 <LI>Added public function G4VAnalysisManager::Reset(), needed when calling files
0576     are closed without reset by calling CloseFile(false) from the analysis
0577     manager, see <TT>basic/exampleB5</TT> with interactive plotting.</LI>
0578 <LI>Added support for n-tuple columns of string vectors via new public
0579     functions in G4VAnalysisManager and G4VAnalysisReader.
0580     Added support for Xml, Hdf5 output types: added helper code for Xml
0581     reader, no update needed for Hdf5.</LI>
0582 <LI>Implemented support for file system directories with Csv output
0583     as proposed in
0584     <A HREF="https://github.com/Geant4/geant4/pull/32">GitHub PR #32</A>.</LI>
0585 <LI>Fixed reading objects from files with directories (Root, Hdf5).</LI>
0586 <LI>Implemented missing WriteOnAscii() for h2,h3,p1,p2.</LI>
0587 <LI>Added new G4ToolsAnalysisManager::IsEmpty() function.
0588 <LI>Added new G4VAnalysisReader public function CloseFiles() to be called by
0589     user before the end of program and its implementation for all readers.</LI>
0590 <LI>Replaced the explicit Write[Hn|Pn] functions in the analysis managers
0591     by a common implementation in G4ToolsAnalysisManager::WriteImpl() and
0592     Merge() using the new Hn file manager classes introduced for the generic
0593     file manager. The same code is now used for writing histograms/profiles
0594     by specific analysis managers and the generic analysis manager.</LI>
0595 <LI>Replaced the explicit Read[Hn|Pn] functions in the analysis readers
0596     by a common implementation in G4ToolsAnalysisReader using the newly
0597     introduced Hn file manager classes for reading.</LI>
0598 <LI>Separated Hn/Pn object file handling from output specific analysis readers
0599     in Hn file manager classes for reading (G4XHnRFileManager).</LI>
0600 <LI>Separated ReadNtuple functions from the analysis readers in
0601     the RNtuple manager classes.</LI>
0602 <LI>Added G4ToolsAnalysisMessenger that implements "get" commands
0603     <TT>/analysis/hn|pn/get id</TT>.</LI>
0604 <LI>Reimplemented utility functions GetBaseName(), GetExtension() using
0605     <TT>filesystem</TT> library.</LI>
0606 <LI>Removed 'isMaster' argument from managers/reders constructors, and retrieve
0607     this info from G4Threading where needed.</LI>
0608 <LI>Simplified calls to G4Exceptions: added G4Analysis::Warn() and changed the
0609     calls to G4Exception in all analysis classes (except accumulables); reduced
0610     exception classification to: Analysis_F001 (Fatal exceptions) and
0611     Analysis_W001 (Warnings).</LI>
0612 <LI>Simplified verbosity messages, plus more simplifications in warning calls.</LI>
0613 <LI>Use fonts from tools in G4PlotManager.</LI>
0614 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
0615 <LI>Removed CMake -DTOOLS_USE_EXPAT definition, no longer needed.</LI>
0616 <LI>Removed <TT>default</TT> in switch for GetMergeFunction() to prevent
0617     accidental fall through on Windows.</LI>
0618 <LI>Code clean-up: review of static data members; changed <TT>static const</TT>
0619     to <TT>static constexpr</TT> where possible or <TT>inline static const</TT>
0620     otherwise (for G4String); declare static data members inline and moved
0621     their initialization in header file. Removed redundant includes and
0622     consistency fixes. Moved data members initialization in header files;
0623     added deleted default constructor where appropriate; added <TT>explicit</TT>
0624     keyword to one argument constructors where missing and removed from
0625     constructors with more than 1 parameters; use brace data members
0626     initialization everywhere. Replaced some constants with <TT>constexpr</TT>.
0627     Replaced G4Analysis::make_unique with <TT>std::make_unique</TT>.
0628     Using more shared pointers. Using <TT>[[maybe_unused]]</TT> where
0629     appropriate. Fixed Coverity issues.</LI>
0630 <LI>Applied clang-tidy performance fixes: use of <TT>const auto&</TT>,

0631     <TT>std::move</TT> where appropriate; revisited passing by
0632     <TT>std::shared_ptr</TT>. Use <TT>make_unique, nullptr, auto,
0633     emplace_back, using</TT>; use of <TT>default</TT> for disabled constructors
0634     and destructors and <TT>delete</TT> for private member functions not
0635     implemented.</LI>
0636 <LI>Removed deprecated g4csv.hh, g4hdf5.hh, g4root.hh, g4xml.hh headers.</LI>
0637 <LI>Reduced output specific type definitions in g4xyz_defs.hh to ntuple end
0638     rntuple types.</LI>
0639 <LI>Removed g4analysis.hh with the G4Analysis::MasterInstance() factory method.</LI>
0640 <LI>Removed the default value ("root") for the default file type in
0641     G4GenericAnalysisManager; the default must be set by user if using fileNames
0642     without extensions.</LI>
0643 <LI>Moved g4tools to externals category. Moved "fonts" directory and install
0644     logic to g4tools package in externals, as prime interface to Freetype.</LI>
0645 <LI>Fix in G4MPIToolsManager: do not call Receive() twice.</LI>
0646 <LI>Fixed compilation errors in G4CsvAnalysisReader and G4XmlAnalysisReader
0647     occurring with C++20 enabled.</LI>
0648 <LI>Fixed evaluation of result of deleting empty file in G4RootAnalysisManager,
0649     causing wrong warnings.</LI>
0650 <LI>Minor fixes: do not issue same log messages from generic analysis manager
0651     and generic file manager; do not call SetIsEmpty() twice in Hdf5.</LI>
0652 <LI>Fixed G4*RFileManager destructors.</LI>
0653 <LI>Implemented handling directories in Generic analysis manager.</LI>
0654 </UL>
0655 
0656 <A NAME="digits-notes">
0657 <H3><I>Digitization &amp; Hits</I></H3></A>
0658 <UL>
0659 <LI>Extending cylindrical scoring mesh to tube and tube segment.
0660     Fixed indexing of cylindrical scoring mesh commands;
0661     addressing problem report
0662     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2418">#2418</A>.</LI>
0663 <LI>Make sure probe commands are not unnecessarily broadcasted to the worker
0664     threads.</LI>
0665 <LI>Updated G4TScoreHistFiller according to changes in the analysis category;
0666     removed deletion of the analysis manager, now done by the Geant4 kernel.</LI>
0667 <LI>G4VScoringMesh: corrected warning messages when the size or number of
0668     bins have already been set but tried to change.</LI>
0669 <LI>Updated G4TScoreNtupleWriter according to changes in the analysis category;
0670     removed deletion of the analysis manager, now done by the Geant4 kernel.
0671     Added default type and its setter.</LI>
0672 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
0673     Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
0674 <LI>Code formatting.</LI>
0675 </UL>
0676 
0677 <A NAME="emstd-notes">
0678 <H3><I>Electromagnetic Processes</I></H3></A>
0679 <UL>
0680 <LI><B>Adjoint</B>:
0681     <UL>
0682     <LI>General code cleanup: applied clang-format style guidelines;
0683         applied C++11 codewords to method declarations (virtual, override,
0684         explicit); deleted unused variables and methods; started naming class
0685         member variables with <TT>f</TT>; use <TT>nullptr</TT> instead of
0686         <TT>0</TT>; removed unused headers; use constexpr for numbers.
0687         Use <TT>virtual</TT> and <TT>override</TT> methods consistently; member
0688         variables start with <TT>f</TT>; shorten long names; removed
0689         unused variables; make class variables local where appropriate; order
0690         declarations of class variables; define class variables; removed unused
0691         functions; marked copy/assignment operators as <TT>delete</TT>; added
0692         ProcessDescriptions; removed ChangeHistory from top of code;
0693         use <TT>CLHEP::twopi</TT> instead of hardcoded value; removed more unused
0694         headers.</LI>
0695     <LI>G4AdjointForcedInteractionForGamma: improved forced interaction for
0696         gamma reverse tracking in thick shielding.</LI>
0697     <LI>G4AdjointhIonisationModel: updated weight correction to limit
0698         dependence of proton dose results on cut in range.</LI>
0699     <LI>G4ContinuousGainOfEnergy: use updated signature for ion ionisation.</LI>
0700     <LI>G4AdjointCSManager: updated interfaces to G4PhysicsVector.</LI>
0701     <LI>Fixed coverity warnings in G4AdjointCSManager and G4VEMAdjointModel.</LI>
0702     <LI>Free resources in destructors.</LI>
0703     </UL></LI>
0704 <LI><B>DNA</B>:
0705     <UL>
0706     <LI>Added IRT-syn model.</LI>
0707     <LI>Added new models: G4DNADiracRMatrixExcitationModel,
0708         G4DNAQuinnPlasmonExcitationModel, G4DNARelativisticIonisationModel and
0709         G4DNAPlasmonExcitation.</LI>
0710     <LI>Added G4VDNAMolecularGeometry, a virtual class for DNA geometry.</LI>
0711     <LI>Added new mesoscopic model for DNA chemistry.</LI>
0712     <LI>Updates in G4DNAIRT, G4DNAIRTMoleculeEncounterStepper,
0713         G4ITModelProcessor, G4Scheduler and G4DNAMolecularReactionTable
0714         classes, and fixed sub-modules dependencies.</LI>
0715     <LI>Modified G4DNAELSEPAElasticModel for gold material.</LI>
0716     <LI>G4DNAElectronHoleRecombination: dissociation channel of electron-hole
0717         recombination moved to G4EmDNAChemistry, _option1, _option2, _option3.</LI>
0718     <LI>G4DNAWaterDissociationDisplacer: added the fragment displacement for
0719         new dissociation channel.</LI>
0720     <LI>Replaced hardwired process-sub-types with enum values introduced in the
0721         new class G4LowEnergyEmProcessSubType.</LI>
0722     <LI>Updated PrintGeneratorInformation() method signature in G4DNABornAngle
0723         and G4DNARuddAngle.</LI>
0724     <LI>G4DNABohrExcitationModel2, G4DNABohrIonisationModel2, G4VLEPSModel:
0725         updated interfaces to G4PhysicsVector.</LI>
0726     <LI>Fixed initialization error in G4DNAELSEPAElasticModel.</LI>
0727     <LI>Fixed compilation error in G4ITMultiNavigator when compiling with C++20
0728         enabled.</LI>
0729     <LI>Fixed dependency on g4tools, now moved to externals module.</LI>
0730     </UL></LI>
0731 <LI><B>High Energy</B>
0732     <UL>
0733     <LI>G4eeToHadrons: updated integral type.</LI>
0734     <LI>Code clenup: clean-up of interfaces; removed unused headers;
0735         improved initialisation.</LI>
0736     <LI>G4hBremsstrahlungModel: added header.</LI>
0737     <LI>G4hhIonisation: removed G4BohrFluctuations.</LI>
0738     <LI>G4AnnihiToMuPair: return DBL_MAX if below threshold energy; keep pointer
0739         to G4LossTableManager for correct de-registration in the MT mode; added
0740         option of tau+tau- pair production; optimized computation of
0741         cross-sections in compounds; added process sub-type via enumerator.</LI>
0742     <LI>G4mplIonisationModel, G4mplIonisationWithDeltaModel: updated according to
0743         change of G4VEmFluctuationModel signature.</LI>
0744     </UL></LI>
0745 <LI><B>Low Energy</B>
0746     <UL>
0747     <LI>Updated Livermore models to use EPICS2017 data.</LI>
0748     <LI>Included new PIXE data libraries following ANSTO recommendations.
0749         Added new classes to model the ANSTO ECPSSR cross-sections for protons
0750         and alpha particles. Added option to activate the ANSTO fluorescence
0751         radiation yield (<TT>Z < 93</TT>).</LI>
0752     <LI>G4LivermorePolarizedComptonModel: added quantum entanglement of e+
0753         annihilation. If the photons have been "tagged" as "quantum-entangled",
0754         for example by G4eplusAnnihilation for annihilation into 2 photons, they
0755         are "analysed" if and only if both photons suffer Compton scattering.
0756         Theoretical predictions from: Pryce and Ward, Nature N.4065 (1947) p.435,
0757         and Snyder et al, Physical Review 73 (1948) p.440. Experimental
0758         validation in: "Photon quantum entanglement in the MeV regime and its

0759         application in PET imaging", D. Watts, J. Allison et al., Nature
0760         Communications (2021)12:2646.
0761         The implementation of entanglement is described in extensive comments
0762         in G4LivermorePolarizedComptonModel source.</LI>
0763     <LI>Migrated Spline treatment for all physics vectors.</LI>
0764     <LI>G4LivermorePolarizedRayleighModel: read data from $G4LEDATA/livermore
0765         directory. Code clean-up.</LI>
0766     <LI>Removed unused classes G4LivermoreGammaConversionModelRC and
0767         G4LivermoreComptonModifiedModel.</LI>
0768     <LI>Convert G4LPhysicsFreeVector into G4PhysicsFreeVector.</LI>
0769     <LI>Removed obsolete unused classes G4BremsstrahlungCrossSectionHandler,
0770         G4BremsstrahlungParameters, G4eBremsstrahlungSpectrum, G4hSRIM2000p,
0771         G4PhotoElectricAngularGeneratorSimple, G4MicroElecInelastic_new,
0772         G4LivermorePolarizedPhotoElectricModel and
0773         G4LivermorePolarizedPhotoElectricGDModel.</LI>
0774     <LI>G4MicroElecLOPhononModel: removed debug printout; rename member of
0775         class.</LI>
0776     <LI>G4MicroElecSurface: replaced hardwired process-sub-type 25 with (already
0777         existing) <TT>fSurfaceReflection</TT>.</LI>
0778     <LI>G4MicroElecElastic, G4MicroElecLOPhononScattering, G4MicroElecInelastic:
0779         replaced hardwired process-sub-types 51 and 53 with new enum values
0780         <TT>fLowEnergyElastic</TT> and <TT>fLowEnergyIonisation</TT>.</LI>
0781     <LI>Improved management of array in G4PenelopeGammaConversionModel.</LI>
0782     <LI>Replaced std::map with static arrays in the G4Penelope models for 
0783         performance improvements.</LI>
0784     <LI>Removed obsolete PrintInfo() methods and self defined process SubType.</LI>
0785     <LI>G4IonParametrisedLossModel: use updated signature for ion ionisation.</LI>
0786     <LI>Updated PrintGeneratorInformation() method signature for few angular
0787         generators.</LI>
0788     <LI>G4PenelopeBremsstrahlungAngular, G4PenelopeBremsstrahlungFS,
0789         G4PenelopeCrossSection, G4JAEAElasticScatteringModel,
0790         G4JAEAPolarizedElasticScatteringModel: use optimal methods of
0791         G4PhysicsVector.</LI>
0792     <LI>G4LivermorePolarizedComptonModel: migrated to the new version of
0793         G4PhysicsModelCatalog.</LI>
0794     <LI>G4AugerData: removed dead code.</LI>
0795     <LI>G4VCrossSectionHandler, G4eIonisationParameters: use const pointers to
0796         G4Element.</LI>
0797     <LI>General code cleanup: use G4 types; cleanup of headers and Penelope
0798         models.</LI>
0799     </UL></LI>
0800 <LI><B>Muons</B>
0801     <UL>
0802     <LI>General code clean-up: use C++11 keywords, improved comments, format
0803         files.</LI>
0804     <LI>G4EnergyLossForExtrapolator, G4ErrorEnergyLoss, G4TablesForExtrapolator:
0805         provide thread-safe initialisation of internal tables; guarantee
0806         initialisation only once; size of tables depend only on number of
0807         materials.</LI>
0808     <LI>G4MuIonisation: removed obsolete G4BohrFluctuations header.</LI>
0809     <LI>G4MuPairProduction, G4ePairProduction, G4MuBremsstrahlung: disabled
0810         Spline interpolation by default.</LI>
0811     <LI>G4MuPairProduction, G4MuBremsstrahlung, G4MuBremsstrahlungModel:
0812         improved initialisation.</LI>
0813     <LI>Updated PrintGeneratorInformation() method signature in G4ModifiedMephi.</LI>
0814     </UL></LI>
0815 <LI><B>Pii</B>
0816     <UL>
0817     <LI>Use const pointer to G4Element according to recent changes in materials.</LI>
0818     </UL></LI>
0819 <LI><B>Polarisation</B>
0820     <UL>
0821     <LI>General code cleanup: name classes in logical manner; improved comments;
0822         added ProcessDescription; ordered #includes and removed unused; disabled
0823         copy and assignment operators with <TT>delete</TT>; increased C++11 keyword
0824         usage, especially <TT>override</TT>, <TT>explicit</TT>; renamed (most)
0825         class variables to start with <TT>f</TT>; make SCRN arrays the correct size;
0826         use <TT>constexpr</TT> for numbers; applied clang-format style; use
0827         G4ExceptionDescription; avoid implicit conversions between G4StokesVector
0828         and G4ThreeVector.</LI>
0829     <LI>G4PolarizedIonisationBhabhaXS: removed incorrect G4Exception.</LI>
0830     <LI>G4PolarizedAnnihilation, G4ePolarizedIonisation: improved initialisation
0831         of assymetry tables.</LI>
0832     <LI>G4PolarizedAnnihilation, G4PolarizedCompton: updated use of the Spline
0833         flag.</LI>
0834     </UL>
0835 <LI><B>Standard</B>
0836     <UL>
0837     <LI>G4eplusAnnihilation: introducing Quantum Entanglement. This is activated
0838         by UI command <TT>/process/em/QuantumEntanglement</TT>. For e+e- -> gamma
0839         gamma, the gammas are "tagged" here and must be "analysed" in a Compton
0840         scattering process - see, for example, G4LivermorePolarizedComptonModel.
0841         Otherwise entanglement has no effect even if activated.
0842         Instantiate clipboard only if Quantum Entanglement is requested.</LI>
0843     <LI>G4PAIModelData, G4eplusTo2GammaOKVIModel: corrected initialisation of
0844         physics vectors.</LI>
0845     <LI>G4LindhardSorensenData: updated definition of Spline flag.</LI>
0846     <LI>G4CoulombScattering, G4eBremsstrahlung, G4eplusAnnihilation: updated set
0847         of flags for Spline and the integral approach.</LI>
0848     <LI>Removed obsolete classes G4BohrFluctuations and
0849         G4HeatedKleinNishinaCompton.</LI>
0850     <LI>G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel,
0851         G4ICRU73QOModel, G4AtimaIonIonisationModel: changed interface to ion
0852         ionisation corrections.</LI>
0853     <LI>G4BraggModel, G4BraggIonModel: set lowest energy to <TT>0.25 keV</TT>;
0854         added protection to limit cut value by the lowest energy.</LI>
0855     <LI>G4BraggIonModel, G4BetheBlochModel, G4ionIonisation clean-up. Improved
0856         implementation of corrections to ion stopping powers: do not apply
0857         corrections at the last step of an ion; do not apply corrections to
0858         alpha.Addressing problem report
0859         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2440">#2440</A>.</LI>
0860     <LI>G4PairProductionRelModel: reduced upper limit of parameterisation
0861         cross-section from 80 to 30 <TT>GeV</TT>.</LI>
0862     <LI>G4LindhardSorensenIonModel: use G4BraggIonModel, G4BetheBlochModel and
0863         G4IonICRU73Data, do not apply corrections at the last step of an ion.</LI>
0864     <LI>G4IonICRU73Data: new data structure for ion ionisation data.</LI>
0865     <LI>G4LinhardSorensenIonModel, G4ICRU73QOModel: added protection to limit cut
0866         value by the lowest energy.</LI>
0867     <LI>G4eplusAnnihilation: migrated to the new version of G4PhysicsModelCatalog.</LI>
0868     <LI>G4PAIModelData: use optimal methods to access G4PhysicsVector.</LI>
0869     <LI>G4UniversalFluctuation, G4IonFluctuations, G4AtimaFluctuations, G4PAIModel,
0870         G4PAIPhotModel: updated according to new G4VEmFluctuationModel signature.
0871         Minor optimisation and code clean-up in G4UniversalFluctuation.</LI>
0872     <LI>G4UrbanMscModel: do not apply energy correction at small steps below 1% of
0873         a particle range. Use random arrays instead of flat() method to speedup the
0874         code; use more const variables.</LI>
0875     <LI>G4UniversalFluctuation: substantially simplified sampling algorithm,
0876         smaller number of parameters, faster computations; results are in
0877         statistical agreement with the previous version of the code.</LI>
0878     <LI>G4PEEffectFluoModel: optimised cross-section computation with reciprocals
0879         and Horners scheme.</LI>
0880     <LI>G4BraggIonModel: fixed computation of dedx for alpha if
0881         ICRU90 data are used. Improved method signatures and code cleanup.</LI>
0882     <LI>G4hIonisation, G4ionIonisation: He3 dedx derived from alpha dedx;
0883         pi, K, proton, pbar, GenericIon have their own dedx and other tables;
0884         other hadrons derived from K, protons, pbar; ions derived from GenericIon.</LI>
0885     <LI>G4ionIonisation: use G4WaterStopping with Spline enabled.
0886         Minor code clean-up.</LI>
0887     <LI>G4ASTARStopping: improved method signatures.</LI>
0888     <LI>G4BetheBlochModel, G4ESTARStopping, G4AtimaEnergyLossModel,
0889         G4LindhardSorensenIonModel: fixed Coverity warnings by initialising all
0890         variables in class constructors.</LI>
0891     <LI>Removed obsolete G4alphaIonisation class.</LI>
0892     <LI>Code clean-up of ionisation, energy loss processes and models.</LI>
0893     <LI>Clean-up of gamma processes.</LI>
0894     <LI>Requires data-set G4EMLOW-8.0.</LI>
0895     </UL></LI>
0896 <LI><B>Utils</B>
0897     <UL>
0898     <LI>G4VEmProcess, G4VEnergyLossProcess, G4EmTableType, G4EmBiasingManager,
0899         G4LossTableManager: updated integral approach by introduction of a
0900         cross-section shape type and different actions depending on the type; 
0901         added cache for cross-section and range; removed unused methods; 
0902         attempt to reduce number of <TT>if</TT> operators at run time; integral
0903         and Spline flags are set to each process individually and not via
0904         G4EmParameters class.</LI>
0905     <LI>G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering, 
0906         G4LossTableBuilder, G4VEmModel, G4VMscModel, G4LossTableManager:
0907         implement and use base material approach only if base materials are defined,
0908         this should bring a minor speedup of the code and little reduction of memory;
0909         fixed problems for the case when materials are changed between runs.</LI>
0910     <LI>G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation, G4LossTableBuilder:
0911         implemented updated numbering scheme for secondary particle production;
0912         deprecated duplicate printout of processes and models; moved list of EM
0913         parameters printout before printout on processes; improved code format.</LI>
0914     <LI>G4VMultipleScattering: fixed problem observed by CMS for specific
0915         physics list.</LI>
0916     <LI>G4EmCorrections, G4VEmProcess: updated use of the Spline flag.</LI>
0917     <LI>G4EmCorrections: do not use Spline in various internal vectors, as
0918         correction values are small and smooth. Cleanup of ion correction
0919         computations.</LI>
0920     <LI>G4EmCorrections, G4LossTableBuilder: substitute use of deprecated
0921         G4LPhysicsFreeVector by G4PhysicsFreeVector.</LI>
0922     <LI>G4VEmProcess, G4VEnergyLossProcess, G4EmDataHandler: updated method
0923         RetrievePhysicsTable().</LI>
0924     <LI>G4TableType: added extra enumerator for type of cross-section shape.</LI>
0925     <LI>G4EmProcessSubType: added new type for annihilation to tau pair.</LI>
0926     <LI>G4LowEnergyEmProcessSubType: added new enum values, corresponding
0927         to numerical values used in G4PhysicsListHelper.</LI>
0928     <LI>G4LowEnergyEmProcessSubType: created new enum for low-energy
0929         electromagnetic process sub-types.</LI>
0930     <LI>G4EmElementSelector: change computation for upper energy limit, fixing
0931         occasional crashes in some applications.</LI>
0932     <LI>G4EmParameters: added ANSTO options for the atomic de-excitation; removed
0933         obsolete AugerCascade() method.</LI>
0934     <LI>G4EmParameters, G4EmParametersMessenger: removed obsolete methods; added
0935         protection agains duplicate printout.</LI>
0936     <LI>G4EmLowEParameters, G4EmLowEParametersMessenger: added ANSTO flag and UI
0937         commands.</LI>
0938     <LI>G4OpticalParameters: removed deprecated function declarations.</LI>
0939     <LI>G4OpticalParameters, G4OpticalParametersMessenger: removed deprecated
0940         optical commands and parameters. Replaced CreateDir() with new
0941         G4UIdirectory(). Apply clang-format style guidelines.</LI>
0942     <LI>G4VMultipleScattering: removed obsolete unused methods; reduced number
0943         of operations at run time, use <TT>isIon</TT> flag for scaling of energy
0944         limits for all particles with mass <TT>>1 GeV</TT>.</LI>
0945     <LI>G4VEmModel removed "virtual" keyword for ComputeDEDX() method.</LI>
0946     <LI>G4EmCalculator: fixed computation of dedx for He3 and alpha.
0947         In G4VEnergyLossProcess, exclude ion corrections only from d, t, alpha.
0948         Addressing problem report
0949         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2440">#2440</A>.</LI>
0950     <LI>G4ionEffectiveCharge: return back limit on effective charge from
0951         0.5 to 1 as used in previous releases.</LI>
0952     <LI>G4VEmAngularDistribution: added virtual method
0953         PrintGeneratorInformation().</LI>
0954     <LI>Fixed model per region definition for all base processes G4VEmProcess,
0955         G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
0956         for energy loss processes; clean-up of parameters classes.</LI>
0957     <LI>G4VEmModel, G4VEnergyLossProcess, G4EmCalculator: optimised signature
0958         of the CorrectionsAlongStep() method; use more constant variables;
0959         minor code optimisation.</LI>
0960     <LI>G4VEmProcess, G4VEnergyLossProcess: fixed computation of cross-section
0961         and range if base material approach is used.</LI>
0962     <LI>G4VEmFluctuationModel: changed interface; both cut value and max energy
0963         transfer are parameters of main methods.
0964         Addressing problem report
0965         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2390">#2390</A>.</LI>
0966     <LI>G4VEnergyLossProcess, G4EmModelManager: adopted above interface change.</LI>
0967     <LI>G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation: migrated
0968         to the new version of G4PhysicsModelCatalog.</LI>
0969     <LI>G4LossTableBuilder: base material flag may be disabled.
0970         Use updated interface to G4PhysicsVector.</LI>
0971     <LI>G4EmElementSelector: change computation for corner cases.</LI>
0972     <LI>G4EmParametersMessenger: correct default value for 'GeomFactor'.</LI>
0973     <LI>Changed ANSTO parameters in  UI interface commands.</LI>
0974     <LI>Removed obsolete G4EmProcessOptions class.</LI>
0975     <LI>G4LossTableBuilder: fixed debug printout.</LI>
0976     <LI>G4VMscModel: improved printout.</LI>
0977     <LI>G4VEnergyLossProcess: code cleanup for ions.</LI>
0978     <LI>General code cleanup; removed obsolete methods and members;
0979         reorganized class members.</LI>
0980     </UL>
0981 <LI><B>Xrays</B>
0982     <UL>
0983     <LI>General code cleanup: removed commented out code; added
0984         ProcessDescription() and DumpInfo(); organized order of headers,
0985         removed and added as needed; use <TT>constexpr</TT> for numbers; replaced
0986         G4PhysicsOrderedFreeVector with G4PhysicsFreeVector.</LI>
0987     <LI>G4Cerenkov, G4Scintillation, G4SynchrotronRadiation, G4ForwardXrayTR,
0988         G4SynchrotronRadiationInMat, G4VXTRenergyLoss: set the creator model ID
0989         for the secondaries, using the new version of G4PhysicsModelCatalog.</LI>
0990     <LI>G4Cerenkov, G4Scintillation: update G4OpticalParameters when process
0991         parameters updated directly. Addresses problem report
0992         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2425">#2425</A>.</LI>
0993     <LI>G4Cerenkov: do not use obsolete methods to access G4PhysicsVector data.</LI>
0994     <LI>G4Scintillation: removed deprecated optical commands.</LI>
0995     </UL></LI>
0996 </UL>
0997 
0998 <A NAME="errprop-notes">
0999 <H3><I>Error Propagation</I></H3></A>
1000 <UL>
1001 <LI>Code formatting.</LI>
1002 </UL>
1003 
1004 <A NAME="event-notes">
1005 <H3><I>Event</I></H3></A>
1006 <UL>
1007 <LI>G4EventManager: hand over track to custom tracking manager, if registered
1008     for the particle; moved StackTracks() to be public.</LI>
1009 <LI>Use existing facility to find physical volume in store, rather than
1010     looping through in G4SPSPosDistribution::ConfineSourceToVolume().</LI>
1011 <LI>Use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector
1012     in G4AdjointPrimaryGenerator, G4SPSAngDistribution, G4SPSEneDistribution,
1013     and G4SPSRandomGenerator.</LI>
1014 <LI>G4SPSEneDistribution: use more efficient access to G4PhysicsVector.</LI>
1015 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1016     Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1017 </UL>
1018 
1019 <A NAME="externals-notes">
1020 <H3><I>Externals</I></H3></A>
1021 <UL>
1022 <LI><U>CLHEP</U>:
1023     <UL>
1024     <LI>Updated to CLHEP version 2.4.5.1.</LI>
1025     <LI>Added units: <TT>minute</TT>, <TT>hour</TT>, <TT>day</TT>, <TT>year</TT>
1026         and <TT>millielectronvolt</TT>.
1027         Added constants: <TT>Bohr_magneton</TT> and <TT>nuclear_magneton</TT>.</LI>
1028     <LI>Added new random engine RANLUX++ and related helper classes.
1029         RANLUX++ is an extension of RANLUX and uses the equivalent LCG to
1030         offer a much higher luxury level at better performance. It inherits
1031         the excellent statistical properties and passes the full BigCrush.</LI>
1032     <LI>Fixed seeding in Ranlux64Engine.</LI>
1033     <LI>Fixed trivial compilation warnings on gcc-11 in Random headers.</LI>
1034     </UL></LI>
1035 <LI><U>G4tools</U>:
1036     <UL>
1037     <LI>Moved from analysis module and updated to version 5.6.0:
1038         <UL>
1039         <LI>Added "Windowing" code needed for G4/vis/tools_sg.</LI>
1040         <LI>Added code to write/read a column of vectors of strings for n-tuple.</LI>
1041         <LI>Handling of embedded fonts.</LI>
1042         <LI>Fixed compilation warnings on gcc-11.</LI>
1043         <LI>See History_tools for the complete list of modifications.</LI>
1044         </UL></LI>
1045     </UL></LI>
1046 <LI><U>PTL</U>:
1047     <UL>
1048     <LI>Updated PTL to version v2.0.0.</LI>
1049     <LI>Replaced raw pointers to tasks with
1050         shared_ptrs for memory management improvements.</LI>
1051     <LI>Removed PTL custom task allocator classes.</LI>
1052     <LI>Fixed warnings about TBB task scheduler init.</LI>
1053     <LI>Fixed compilation warnings when C++20 Standard enabled.</LI>
1054     <LI>Improved thread safety.</LI>
1055     <LI>Fixed some memory issues.</LI>
1056     <LI>Fix to TaskRunManager::Terminate() + <TT>nullptr</TT> to m_thread_pool
1057         responsible for segmentation-fault when ui/vis initialised, but not
1058         run manager.</LI>
1059     <LI>Make PTL cmake options available in configuration, including:
1060         PTL_USE_SANITIZER and PTL_USE_LOCKS, but hidden from clients building
1061         Geant4; relevant Geant4 options forwarded to PTL: TBB, sanitizer, locks.</LI>
1062     <LI>Use CMAKE_CXX_STANDARD in place of GEANT4_BUILD_CXXSTD in CMake
1063         configuration. Also, updated minimum CMake version requirements.</LI>
1064     </UL></LI>
1065 <LI><U>ZLIB</U>:
1066     <UL>
1067     <LI>Removed formatting options from build.</LI>
1068     </UL></LI>
1069 </UL>
1070 
1071 <A NAME="g3tog4-notes">
1072 <H3><I>G3toG4</I></H3></A>
1073 <UL>
1074 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1075     Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1076 <LI>Fixed compilation error in G3EleTable when C++20 is enabled.</LI>
1077 </UL>
1078 
1079 <A NAME="gen-notes">
1080 <H3><I>General Processes</I></H3></A>
1081 <UL>
1082 <LI><B>Biasing</B>
1083     <UL>
1084     <LI>G4BOptrForceCollision: migrated to the new version of
1085         G4PhysicsModelCatalog.</LI>
1086     </UL></LI>
1087 <LI><B>Cuts</B>
1088     <UL>
1089     <LI>G4VRangeToEnergyConverter, G4RToEConvForPositron, G4RToEConvForElectron,
1090         G4RToEConvForGamma, G4RToEConvForProton: simplified the design; do not use
1091         G4PhysicsTable and G4PhysicsVector but convert range cut to production
1092         threshold directly; expected memory reduction for big detectors and some
1093         speed-up of initialisation.</LI>
1094     <LI>G4PhysicsTableHelper: updated interface to Retrieve() method.
1095         Fixed minor Coverity report. Fixed Coverity warning due to index type;
1096         removed G4ThreadLocal variable; substituted old cerr with G4Exception
1097         (old printouts are kept); removed inclusion of unused headers.</LI>
1098     <LI>G4MCCIndexConversionTable: changed inline functions, only one return is
1099         left instead of two.</LI>
1100     </UL></LI>
1101 <LI><B>Management</B>
1102     <UL>
1103     <LI>Introducing classes for implementation of quantum entanglement:
1104         G4EntanglementAuxInfo, G4VEntanglementClipBoard and
1105         G4eplusAnnihilationEntanglementClipBoard.
1106         Currently, entanglement is implemented only in G4eplusAnnihilation
1107         and G4LivermorePolarizedComptonModel.</LI>
1108     <LI>New class G4NoProcess, representing an empty process not assigned to any
1109         particle, and used only in G4SteppingManager::InvokeAtRestDoItProcs()
1110         for stable ions at rest, in order to avoid that radioactive decay appears
1111         as process defining their last step. Note that the method IsApplicable(),
1112         retunrs false, as this process should not be set to any particle.</LI>
1113     </UL></LI>
1114 <LI><B>Optical</B>
1115     <UL>
1116     <LI>G4OpBoundaryProcess: fixed initialisation of some local variables.
1117         Addressing problem report
1118         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2364">#2364</A>.</LI>
1119     <LI>G4OpBoundaryProcess: renamed internal variables; make comparison to
1120         <TT>nullptr</TT> explicit; removed unneeded intermediate variable;
1121         refactored Davis LUT calculation. On StepTooSmall, propose velocity
1122         corresponding to material of post-step point. Addresses problem report
1123         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2438">#2438</A>.</LI>
1124     <LI>In all process classes, update G4OpticalParameters when process parameters
1125         updated directly. Addresses problem report
1126         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2425">#2425</A>.</LI>
1127     <LI>G4OpRayleigh, G4OpWLS, G4OpWLS2: use G4PhysicsFreeVector instead
1128         of deprecated G4PhysicsOrderedFreeVector.</LI>
1129     </UL></LI>
1130 <LI><B>Solid state</B>
1131     <UL>
1132     <LI>G4Channeling, G4ChannelingOptrChangeCrossSection: migrated to the
1133         new version of G4PhysicsModelCatalog.</LI>
1134     </UL></LI>
1135 <LI><B>Transportation</B>
1136     <UL>
1137     <LI>Enable setting of smooth curved trajectories to particle-change in
1138         G4CoupledTransportation::AlongStepDoIt(), which was commented out by
1139         mistake. Based on discussion in Geant4 Forum thread #4271.</LI>
1140     </UL></LI>
1141 </UL>
1142 
1143 <A NAME="geo-notes">
1144 <H3><I>Geometry</I></H3></A>
1145 <UL>
1146 <LI><B>Biasing</B>
1147     <UL>
1148     <LI>Added missing include of G4Threading header for G4Mutex for
1149         self-consistency in G4ImportanceAlgorithm header.</LI>
1150     </UL></LI>
1151 <LI><B>Management</B>
1152     <UL>
1153     <LI>Added map for faster search based on name in G4SolidStore,
1154         G4RegionStore, G4logicalVolumeStore and G4PhysicalVolumeStore.
1155         Pointers to elements are stored in the map as buckets, grouping
1156         elements with same name.</LI>
1157     <LI>Use G4Allocator to dynamically allocate nodes and proxies for the voxels
1158         optimisation structure. Should help reducing memory fragmentation.</LI>
1159     <LI>G4UAdapter: added operator<<() to fix clash between similar methods
1160         for G4VSolid and VecGeom UnplacedVolume.</LI>
1161     <LI>Make operator<<() for G4VSolid a free function.</LI>
1162     <LI>Basic clang-tidy review of code.</LI>
1163     </UL></LI>
1164 <LI><B>Navigation</B>
1165     <UL>
1166     <LI>G4Navigator: enabled use of alternative G4VoxelNavigation class.
1167         Adds call to virtual method in ComputeStep(), LocateGlobalPointAndSetup()
1168         for voxelised volumes. Controlled by ALTERNATIVE_VOXEL_NAV flag, turned
1169         on by default.
1170         Deleted experimental obsolete method RecheckDistanceToCurrentBoundary(),
1171         also removed in G4SafetyHelper and G4PathFinder.
1172         Cleaned up ComputeSafety().</LI>
1173     <LI>G4VoxelNavigation: simplify code of <TT>check</TT> mode tests to avoid 2nd
1174         code path. Added comments about method arguments.</LI>
1175     <LI>G4NavigationLogger: soften check of step vs distance (using tolerance).</LI>
1176     <LI>G4[Partial]PhantomParameterisation: renamed Get/SetNoVoxel*() accessors
1177         to Get/SetNoVoxels*() for coherence. Migrated code in G4RegularNavigation
1178         accordingly. NOTE: might imply user code migration.</LI>
1179     </UL></LI>
1180 <LI><B>Solids (Boolean)</B>
1181     <UL>
1182     <LI>In G4UnionSolid and G4SubtractionSolid, revised GetCubicVolume() method
1183         to use cubic volume of constituent volume(s) and an intersection solid,
1184         for more accurate measurement.</LI>
1185     </UL></LI>
1186 <LI><B>Solids (CSG)</B>
1187     <UL>
1188     <LI>G4Trap, G4Para and wrappers: added accessors to retrieve/calculate
1189         original values for alpha, theta, phi.</LI>
1190     <LI>Revision of G4UTrap wrapper: list of accessors and modifiers made
1191         consistent with G4Trap; implemented check of parameters similar to
1192         G4Trap.</LI>
1193     <LI>Corrected typo in G4UPara::GetXHalfLength(). Addressing problem report
1194         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2446">#2446</A>.</LI>
1195     <LI>Removed deprecated accessors in G4Sphere and G4Tubs.</LI>
1196     </UL></LI>
1197 <LI><B>Solids (Specific)</B>
1198     <UL>
1199     <LI>Simplified implementation of CreatePolyhedron() in G4Polyhedra,
1200         G4Polycone, G4GenericPolycone and related wrappers.
1201     <LI>In G4TesselatedSolid, implemented GetFacetIndex(p) and CheckStructure().
1202         Optimised code in SetExtremeFacets(): shuffle of vertices and checking
1203         of six extreme vertices.
1204     <LI>In G4Tet, added <TT>degeneracyFlag</TT> to the list of parameters in
1205         SetVertices(). Addressing problem report
1206         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2427">#2427</A>.
1207     <LI>G4Tet: improved calculation of bounding box. Added SetBoundingLimits()</LI>
1208     <LI>Added missing accessor in G4UTet. Added CheckDegeneracy(), SetVertices()
1209         and SetBoundingLimits()</LI>
1210     <LI>G4TwistedTubs: more accurate calculation of the bounding box in
1211         BoundingLimits() and GetExtent(), fixing measured performance
1212         penalty. Addressing problem report
1213         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2450">#2450</A>.</LI>
1214     <LI>G4TwistedTubs, G4VTwistedFaceted: fixed GetCubicVolume().</LI>
1215     </UL></LI>
1216 <LI><B>Volumes</B>
1217     <UL>
1218     <LI>G4PVPlacement::CheckOverlaps(): more precise estimation of overlap size,
1219         improved check for encapsulation of volume by another volume.</LI>
1220     <LI>G4ReflectionFactory: added Clean() method for clearing the internal
1221         maps on user request and removed problematic Reset() function.</LI>
1222     </UL></LI>
1223 </UL>
1224 
1225 <A NAME="glob-notes">
1226 <H3><I>Global</I></H3></A>
1227 <UL>
1228 <LI>Removed deprecated classes G4LPhysicsFreeVector and G4PhysicsLnVector.
1229     Redirect G4PhysicsOrderedFreeVector to G4PhysicsFreeVector.</LI>
1230 <LI>G4PhysicsVector, G4PhysicsFreeVector, G4PhysicsLogVector,
1231     G4PhysicsLinearVector: major update: introduced new public access methods;
1232     removed obsolete unused methods; introduced possibility to use different
1233     Spline methods; do not fill second derivative vector if Spline not enabled;
1234     improved control on input data; reduced number of calls to min/max; attempt
1235     to optimise run time code G4PhysicsTable, improved use of the vector type.</LI>
1236 <LI>G4PhysicsVector, G4PhysicsTable, G4PhysicsFreeVector: removed obsolete
1237     methods SetSpline(); T_G4PhysicsFreeVector type set to be default;
1238     improved comments and printouts.</LI>
1239 <LI>G4PhysicsVector: optimisation in G4PhysicsVector::Interpolation().
1240     Fix in G4PhysicsVector::GetMinEnergy(). Minor code formatting.</LI>
1241 <LI>G4PhysicsVectorType: added enumeration of Spline type; use namespace.</LI>
1242 <LI>G4PhysicsFreeVector, G4PhysicsLogVector, G4PhysicsLinearFreeVector:
1243     in each constructor added extra Boolean parameter for enabling Spline;
1244     needed for later removal of the SetSpline() method, required for
1245     re-organisation of the code using templates.</LI>
1246 <LI>G4PhysicsFreeVector: added to all constructors control on continuous
1247     increase energy in the energy vector. Added accessor to allow user query
1248     for use or not of Spline interpolation.</LI>
1249 <LI>G4PhysicsModelCatalog: new version of the catalog of physics models.
1250     Introduced a modelID (a unique integer for each physics model, with close
1251     values for similar/related physics models), besides an index (the position
1252     in a vector) and the name (string) of the model. The main difference with
1253     respect to the previous version is that the three identifiers of each
1254     physics model - modelID, index and name - must stay constant and the same
1255     for all applications, physics lists and future versions of Geant4.</LI>
1256 <LI>Simplified G4String interfaces and implementation with C++11/17.
1257     Removed obsolete/<TT>std::string</TT> synonym member functions from G4String:
1258     hash()/stlhash(), data(), replace(), index(), isNull(), first()/last(),
1259     append()/prepend() and call operators.
1260     Deprecated non-<TT>std::string</TT> member functions, replacing with new free
1261     functions in G4StrUtil namespace.</LI>
1262 <LI>G4ConvergenceTester: fixed potential thread contention likely
1263     responsible for crashes in ThreadSafe-Scorers example, observed in
1264     system testing. Some code cleanup.</LI>
1265 <LI>Updated G4SIUnits and G4PhysicalConstants to include new symbols
1266     (<TT>minute, hour, day, year</TT> and <TT>millielectronvolt</TT>)
1267     and new constants (<TT>Bohr_magneton</TT> and <TT>nuclear_magneton</TT>),
1268     based on CLHEP-2.4.4.2.</LI>
1269 <LI>G4UnitsTable: added unit definitions for Velocity and Momentum.</LI>
1270 <LI>G4BestUnit: print <TT>eV</TT> instead of <TT>meV</TT> for zero energy.</LI>
1271 <LI>G4BackTrace: move from deprecated sigignore() to signal().</LI>
1272 <LI>New G4Filesystem header to support transparent use of C++ filesystem
1273     whether it is in <TT>std::</TT> or <TT>std::experimental</TT> namespaces.</LI>
1274 <LI>G4ThreadLocalSingleton: added way to explicitly call Clear() for all
1275     TLS singletons.</LI>
1276 <LI>Reworked G4Backtrace to use fewer dynamic memory allocations when
1277     printing backtrace in order to avoid overflowing the signal stack.</LI>
1278 <LI>Modernised CMake script.</LI>
1279 <LI>Updated date of release for 11.0.</LI>
1280 </UL>
1281 
1282 <A NAME="greps-notes">
1283 <H3><I>Graphical Representations</I></H3></A>
1284 <UL>
1285 <LI>Added G4Plotter class, a kind of "high level" primitive to capture plots
1286     (tools::histo:h1d, h2d for the moment) and the style of a plotter.
1287     Style description is done by handling named lists of (parameter,value).
1288     It is sufficently generic to be usable by various implementations of a
1289     plotter. It is assumed that a plotter manages a grid of "regions" to
1290     visualize various histograms in a same representation/view/viewport.
1291     Updated G4VGraphicsScene accordingly.</LI>
1292 <LI>Reviewed HepPolyhedronPgon, HepPolyhedronPcon classes given by rz-contour.</LI>
1293 <LI>HepPolyhedron: added TriangulatePolygon() and RotateContourAroundZ().
1294     Fixed calculation of number of faces in a polyhedron object in method
1295     RotateContourAroundZ(). In some cases, 'Nfaces' was computed incorrectly,
1296     resulting in more memory being allocated than required; this did not
1297     create problems for rendering, but used to generate warning messages
1298     in some cases.</LI>
1299 <LI>BooleanProcessor: redundant std::move(polyhedron) replaced with
1300     HepPolyhedron(polyhedron), it fixes complation warnings with C++20.</LI>
1301 <LI>Removed deprecated G4VisAttributes::Invisible.</LI>
1302 <LI>Added G4Colour::operator<(), useful for making a set or map based on
1303     G4colour as a key.</LI>
1304 <LI>G4VGraphicsScene: introduced new pure virtual function
1305     AddCompound(const G4Mesh&).</LI>

1306 <LI>G4VisAttributes: improved message in SetForceNumberOfCloudPoints().</LI>

1307 <LI>Revised visualisation models according to <TT>visualization/modeling</TT>

1308     module. Adapted code according to visualisation models revision.</LI>

1309 <LI>Removed G4Scale; <TT>/vis/scene/add/scale</TT> is reimplemented with
1310     G4CallBackModel.</LI>
1311 <LI>Add G4VMarker::operator==().</LI>
1312 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1313 <LI>Modernised CMake script.</LI>
1314 </UL>
1315 
1316 <A NAME="had-notes">
1317 <H3><I>Hadronic Processes</I></H3></A>
1318 <UL>
1319 <LI>Removed deprecated 'rpg' model.</LI>
1320 <LI>Merged 'models/management' module in 'management'.</LI>
1321 <LI>Merged 'models/util' module in 'util'.</LI>
1322 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1323     Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1324 <LI><B>Cross Sections</B>
1325     <UL>
1326     <LI>G4MuNeutrinoNucleusTotXsc: new arrays for XS_eq and XS_in, now XS_tot
1327         is a sum of XS_qe and XS_in with A, Z and A-Z factors.</LI>
1328     <LI>G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS, 
1329         G4ParticleInelasticXS, GammaNuclearXS : in the method BuildPhysicsTable(),
1330         replaced loop over material-cut-couple with a direct loop over all
1331         elements; partially move initialisation of local variables to headers.</LI>
1332     <LI>G4MuNeutrinoNucleusTotXsc: access and calculation of
1333         fQEratio(Z,A) = XS_qe/XS_tot.</LI>
1334     <LI>Removed the following obsolete classes:
1335         G4IonsKoxCrossSection, G4IonsSihverCrossSection,
1336         G4TripathiCrossSection, G4TripathiLightCrossSection,
1337         G4IonProtonCrossSection, G4GeneralSpaceNNCrossSection,
1338         G4ProtonInelasticCrossSection G4NeutronInelasticCrossSection,
1339         G4PiNuclearCrossSection, G4CrossSectionPairGG,
1340         G4FastPathHadronicCrossSection, G4HadronCaptureDataSet,
1341         G4HadronFissionDataSet, G4HadronElasticDataSet, G4HadronInelasticDataSet,
1342         G4HadronCrossSections, G4TripathiCrossSection, G4TripathiLightCrossSection.</LI>
1343     <LI>G4HadronXSDataTable, G4ComponentSAIDTotalXS: updated creation and
1344         handling of G4PhysicsVector.</LI>
1345     <LI>G4UPiNuclearCrossSection, G4ComponentSAIDTotalXS: substituted use of
1346         deprecated G4LPhysicsFreeVector by G4PhysicsFreeVector.</LI>
1347     <LI>G4UPiNuclearCrossSection: disabled Spline interpolation.</LI>
1348     <LI>G4IsotopeList: extended list of isotopes to cover all data for 
1349         neutrons, protons, and gamma.</LI>
1350     <LI>G4GammaNuclearXS: new version of the code, based on IAEA/PD-2019.
1351         Improved isotope cross-section.
1352         Co-working with new data set G4PARTICLEXS-4.0.</LI>
1353     <LI>G4IsotopeList: extended from Zmax=92 to Zmax=94; do not use zero 
1354         values for 'amin' and 'amax' for all Z; this is needed for
1355         migration to the new dataset G4PARTICLEXS4.0.</LI>
1356     <LI>G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS,
1357         G4ParticleInelasticXS, GammaNuclearXS: instead of check (amin[Z]==0)
1358         use the check (amin[Z]==amax[Z]).</LI>
1359     <LI>G4ElNuclearSFcs: e-A cross-section according to structure function
1360         approach by corrections of CHIPS cross-sections.</LI>
1361     <LI>G4CrossSectionDataSetRegistry: improved debug printout and not use 
1362         CrossSectionFactory for XS.</LI>
1363     <LI>Clean-up access to data.</LI>
1364     <LI>Code cleanup.</LI>
1365     </UL></LI>
1366 <LI><B>Management</B>
1367     <UL>
1368     <LI>G4HadronicProcess: made public the method GetHadronicInteraction().
1369         This can be useful for users to access at run-time some information
1370         available from a hadronic final-state model.
1371         Removed unused private member variable; updated the
1372         call to G4Track for setting the model creator ID.</LI>
1373     <LI>G4HadronInelasticProcess: added a new method to return the particle
1374         definition (useful in practice to distinguish between baryons and
1375         antibaryons, or between hadrons and ions).
1376         Removed old and unused header file corresponding to the Gheisha
1377         inelastic cross-section (that has been deleted).</LI>
1378     <LI>G4HadronicProcessType: added a new enum value (fEMDissociation = 310)
1379         for EM dissociation process.</LI>
1380     <LI>G4HadronicProcessStore: fixed TLS usage. Fixed loops in Clean().
1381         Fixed memory leak at exit.</LI>
1382     <LI>G4HadronicEPTestMessenger: removed deprecated commands.</LI>
1383     <LI>Removed unused class G4VCrossSectionBase.</LI>
1384     </UL></LI>
1385 <LI><B>Processes</B>
1386     <UL>
1387     <LI>Added G4HadronInelasticProcess class from hadronic/management module.</LI>
1388     <LI>Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess, as it is
1389         applied only for neutron projectile.</LI>
1390     <LI>Removed use of deleted header file G4HadronicDeprecate.</LI>
1391     <LI>G4HadronCaptureProcess: removed old and unused header file
1392         corresponding to the Gheisha capture cross-section (that has been
1393         deleted).</LI>
1394     <LI>G4HadronFissionProcess: replaced Gheisha fission cross-section
1395         (that has been deleted) with G4ZeroXS (which is a zero cross-section
1396         everywhere).</LI>
1397     <LI>Set creator model ID for the secondaries, using the new version of
1398         G4PhysicsModelCatalog.</LI>
1399     <LI>G4HadronElasticProcess, G4NeutrinoElectronProcess,
1400         G4ElNeutrinoNucleusProcess, G4MuNeutrinoNucleusProcess: removed
1401         old and unused header file corresponding to the Gheisha elastic
1402         cross-section (that has been deleted).</LI>
1403     <LI>Removed the following deprecated inelastic processes:
1404         G4AlphaInelasticProcess, G4AntiAlphaInelasticProcess
1405         G4AntiDeuteronInelasticProcess, G4DeuteronInelasticProcess,
1406         G4AntiHe3InelasticProcess, G4He3InelasticProcess,
1407         G4AntiLambdaInelasticProcess, G4LambdaInelasticProcess,
1408         G4AntiNeutronInelasticProcess, G4NeutronInelasticProcess,
1409         G4AntiOmegaMinusInelasticProcess, G4OmegaMinusInelasticProcess,
1410         G4AntiProtonInelasticProcess, G4ProtonInelasticProcess,
1411         G4AntiSigmaMinusInelasticProcess, G4SigmaMinusInelasticProcess,
1412         G4AntiSigmaPlusInelasticProcess, G4SigmaPlusInelasticProcess,
1413         G4AntiTritonInelasticProcess, G4TritonInelasticProcess,
1414         G4AntiXiMinusInelasticProcess, G4XiMinusInelasticProcess, 
1415         G4AntiXiZeroInelasticProcess, G4XiZeroInelasticProcess,
1416         G4IonInelasticProcess, G4KaonMinusInelasticProcess,
1417         G4KaonPlusInelasticProcess, G4KaonZeroLInelasticProcess,
1418         G4KaonZeroSInelasticProcess, G4PionMinusInelasticProcess,
1419         G4PionPlusInelasticProcess, G4PhotoCaptureProcess,
1420         G4PhotoFissionProcess, G4PhotoNuclearProcess.</LI>
1421     </UL></LI>
1422 <LI><B>Stopping</B>
1423     <UL>
1424     <LI>G4MuonicAtomDecay, G4HadronStoppingProcess: migrated to the new version
1425         of G4PhysicsModelCatalog.</LI>
1426     <LI>G4ElementSelector, G4HadronStoppingProcess: use const pointer to
1427         G4Element.</LI>
1428     <LI>Removed obsolete classes: G4AntiNeutronAnnihilationAtRest,
1429         G4AntiSigmaPlusAbsorptionFritiof, G4SigmaMinusAbsorptionBertini,
1430         G4AntiProtonAbsorptionFritiof, G4KaonMinusAbsorptionBertini,
1431         G4PiMinusAbsorptionBertini.</LI>
1432     </UL></LI>
1433 <LI><B>Utilities</B>
1434     <UL>
1435     <LI>G4Fragment, G4KineticTrack, G4HadSecondary, G4ReactionProduct: introduced
1436         consistent naming of the Set/Get methods for the creator model ID.</LI>
1437     <LI>G4DecayKineticTracks, G4KineticTrack, G4DecayStrongResonances: 
1438         propagate correctly the information regarding the creator model ID.</LI>
1439     <LI>G4Nucleus: rewritten method GetBiasedThermalNucleus() according to the
1440         sampling of the Velocity of the Target nucleus (SVT) algorithm.
1441         Use const pointer to G4Element</LI>
1442     <LI>G4Nucleon, G4Nucleus, G4V3DNucleus, G4Fancy3DNucleus, G4Fragment:
1443         extended for hypernuclei and anti-hypernuclei.</LI>
1444     <LI>Removed unused classes: G4LightMedia, G4IsoResult, G4HadronicDeprecate,
1445         G4GHEKinematicsVector, G4HadReentrentException, G4HadSignalHandler,
1446         DumpFrame.</LI>
1447     <LI>G4HadronicParameters: added hyper-nuclei flag.</LI>
1448     </UL></LI>
1449 <LI><B>Abla</B>
1450     <UL>
1451     <LI>G4AblaInterface: set the model creator ID using the new version
1452         of G4PhysicsModelCatalog.</LI>
1453     <LI>G4Abla: updated for hypernuclei. Delete array variables with array
1454         delete, as suggested by Coverity.</LI>
1455     </UL></LI>
1456 <LI><B>Abrasion</B>
1457     <UL>
1458     <LI>G4WilsonAbrasionModel: migrated to the new version of
1459         G4PhysicsModelCatalog.</LI>
1460     </UL></LI>
1461 <LI><B>Bertini Cascade</B>
1462     <UL>
1463     <LI>Fixed TLS usage in G4CascadeChannelTables and G4CascadeParameters.</LI>
1464     <LI>G4CascadeInterface: set the creator model ID for the secondaries
1465         produced by Bertini model using the new version of G4PhysicsModelCatalog.</LI>
1466     </UL></LI>
1467 <LI><B>Binary Cascade</B>
1468     <UL>
1469     <LI>G4BinaryCascade, G4BinaryLightIonReaction: migrated to the new version of
1470         G4PhysicsModelCatalog.</LI>
1471     <LI>G4GeneratorPrecompoundInterface: extended the method PropagateNuclNucl()
1472         to deal with projectile hypernuclei and anti-hypernuclei. Propagated the
1473         creator model ID information.</LI>
1474     </UL></LI>
1475 <LI><B>De-excitation</B>
1476     <UL>
1477     <LI>G4DeexPrecoParameters, G4ExcitationHandler: migrated to the new version
1478         of G4PhysicsModelCatalog.</LI>
1479     <LI>Set creator model ID for secondaries, using the new version of
1480         G4PhysicsModelCatalog.</LI>
1481     <LI>G4DeexPrecoParameters: fixed propagation of verbosity level between
1482         components of the de-excitation module.</LI>
1483     <LI>Removed obsolete and not used model G4ParaFissionModel, this
1484         fixes also circular dependences inside the de-excitation module.</LI>
1485     <LI>G4PhotonEvaporation: fixed Coverity defect warning.</LI>
1486     </UL></LI>
1487 <LI><B>Elastic scattering</B>
1488     <UL>
1489     <LI>G4ChargeExchangeProcess: replaced Gheisha elastic cross-section
1490         (that has been deleted) with G4ComponentGGHadronNucleusXsc.</LI>
1491     <LI>G4LEHadronProtonElastic, G4ChargeExchangeProcess: removed unused
1492         headers.</LI>
1493     <LI>Set the creator model ID for the secondaries created, using the new
1494         version of G4PhysicsModelCatalog.</LI>
1495     <LI>G4QuasiElRatios: initialize the logarithmic table 'lastLRatio',
1496         as suggested by Coverity.</LI>
1497     </UL></LI>
1498 <LI><B>Electromagnetic Dissociation</B>
1499     <UL>
1500     <LI>G4EMDissociation: set the creator model ID for secondaries created
1501         by projectile and target diffraction, using the new version of
1502         G4PhysicsModelCatalog.</LI>
1503     </UL></LI>
1504 <LI><B>Fission</B>
1505     <UL>
1506     <LI>G4LFission, G4FissionLibrary : set creator model ID for the secondaries,
1507         using the new version of G4PhysicsModelCatalog.</LI>
1508     <LI>G4LFission: removed unused headers.</LI>
1509     </UL></LI>
1510 <LI><B>Gamma-nuclear</B>
1511     <UL>
1512     <LI>G4LENDorBERTModel: set creator model ID for the secondaries, using
1513         the new version of G4PhysicsModelCatalog.</LI>
1514     </UL></LI>
1515 <LI><B>im_r_matrix</B>
1516     <UL>
1517     <LI>G4XnpElasticLowE, G4XNNElasticLowE, G4XnpTotalLowE: substituted use of
1518         deprecated G4PhysicsLnVector with G4PhysicsLogVector; no functional
1519         changes.</LI>
1520     </UL></LI>
1521 <LI><B>INCLXX</B>
1522     <UL>
1523     <LI>Added implementation of hypercluster emission.</LI>
1524     <LI>G4INCLXXInterface: extended to projectile hypernuclei.</LI>
1525     <LI>G4INCLNuclearPotentialIsospin: improved nuclear potential for Lambda
1526         particles.</LI>
1527     <LI>G4INCLXXInterface: set creator model ID for secondaries, using the
1528         new version of G4PhysicsModelCatalog.</LI>
1529     </UL></LI>
1530 <LI><B>Lend</B>
1531     <UL>
1532     <LI>Set creator model ID for secondaries, using the new version of
1533         G4PhysicsModelCatalog.</LI>
1534     </UL></LI>
1535 <LI><B>Lepto-nuclear</B>
1536     <UL>
1537     <LI>G4NeutrinoNucleusModel: calculation of fQEratioA(Z,A,Enu) depending of
1538         QE ratios for nucleons. Added accessors for XS_qe/XS_tot(A), fQEratioA
1539         class member.</LI>
1540     <LI>Bug fixed in G4NeutrinoNucleusModel, updated calls for QE ratio of
1541         muon/electron (anti-)neutrino.</LI>
1542     <LI>Set creator model ID for secondaries, using the new version of
1543         G4PhysicsModelCatalog.</LI>
1544     </UL></LI>
1545 <LI><B>Particle High Precision</B>
1546     <UL>
1547     <LI>G4ParticleHPElementData, G4ParticleHPBGGNucleonInelasticXS: removed
1548         old and unused header files corresponding to Gheisha cross-sections
1549         (that have been deleted). Code cleanup.</LI>
1550     <LI>G4ParticleHPManager: removed deprecated environmental variables.</LI>
1551     <LI>G4ParticleHPData, G4ParticleHPJENDLHEData: replaced use of deprecated
1552         G4LPhysicsFreeVector with G4PhysicsFreeVector.</LI>
1553     <LI>G4ParticleHPThermalScattering, G4ParticleHPElastic: corrected the
1554         original treatment of the temperature interpolation when computing the
1555         neutron final state, with the temperature interpolation performed
1556         stochastically now.</LI>
1557     <LI>G4ParticleHPThermalScatteringNames: extended the list of materials
1558         which can have thermal data libraries.</LI>
1559     <LI>Set creator model ID for secondaries, using the new version of
1560         G4PhysicsModelCatalog.</LI>
1561     <LI>Updated build scripts according to new dependencies.
1562         Clean-up of old directories no longer present.</LI>
1563     </UL></LI>
1564 <LI><B>Parton-String</B>
1565     <UL>
1566     <LI>Interface extension in G4FTFModel and G4FTFParticipants to provide the
1567         following information: number of projectile spectator nucleons, number
1568         of target spectator nucleons, number of nucleon-nucleon collisions and
1569         impact parameter. In the latter case, there is also the possibility,
1570         switched off by default, to set the range from which to sample the
1571         square of the impact parameter.</LI>
1572     <LI>Extended G4FTFModel for projectile hypernuclei and anti-hypernuclei.</LI>
1573     <LI>G4VParticipants, G4VPartonStringModel: extended for projectile
1574         hypernuclei and anti-hypernuclei.</LI>
1575     <LI>G4FTFParameters, G4QGSParticipants: improved initialization in
1576         constructors, as suggested by Coverity.</LI>
1577     </UL></LI>
1578 <LI><B>Pre-equilibrium</B>
1579     <UL>
1580     <LI>G4PreCompoundModel, G4LowEGammaNuclearModel: migrated to the new version
1581         of G4PhysicsModelCatalog.</LI>
1582     <LI>G4PreCompoundEmission, G4LowEIonFragmentation: set creator model ID
1583         for secondaries, using the new version of G4PhysicsModelCatalog.</LI>
1584     <LI>G4LowEIonFragmentation: fixed minor memory leak at exit.</LI>
1585     <LI>G4PreCompoundModel: removed obsolete methods; improved code format;
1586         fixed minor memory leak at exit.</LI>
1587     <LI>G4PreCompound* classes: improved formats and added C++11 keywords.</LI>
1588     <LI>G4LowEIonFragmentation: fixed Coverity defect warning for memory leak
1589         and code cleanup.</LI>
1590     </UL></LI>
1591 <LI><B>QMD</B>
1592     <UL>
1593     <LI>G4QMDReaction: replaced G4IonsShenCrossSection (that has been deleted)
1594         with G4ComponentGGNuclNuclXsc. Replaced GetIsoCrossSection() with
1595         GetElementCrossSection(). Migrated to the new version of
1596         G4PhysicsModelCatalog.</LI>
1597     <LI>G4QMDNucleus::CalEnergyAndAngularMomentumInCM(): fix to move constant 'hbc' 
1598         outside of sqrt() in angular momentum calculation.</LI>
1599     </UL></LI>
1600 <LI><B>Radioactive Decay</B>
1601     <UL>
1602     <LI>G4RadioactiveDecay, G4RadioactiveDecayMessenger: introduced
1603         a new parameter for analogue mode to kill very long radioactive decays
1604         at rest of nuclides happening later than this threshold parameter.
1605         Its default value (10^27 ns) corresponds to more than twice the age of
1606         the universe. The value of the threshold can be changed via a new UI
1607         command, e.g. to set it to 1000 years:
1608         <TT>/process/had/rdm/thresholdForVeryLongDecayTime 3.1536e+10 second</TT>.
1609         This kind of cut has been introduced in order to avoid to account
1610         energy depositions happening after many billions of years in ordinary
1611         materials used in calorimetry, in particular Tungsten and Lead - via
1612         their natural unstable, but very long lived, isotopes, such as
1613         W183, W180 and Pb204. Note that the cut is not on the average, mean
1614         lifetime, but on the actual sampled global decay time.</LI>
1615     <LI>G4RadioactiveDecay: updated printout of parameters according to recent
1616         modifications in atomic de-excitation module.</LI>
1617     <LI>Use existing facility to find logical volume in store, rather than
1618         looping through in G4RadioactiveDecayBase::Select/DeselectAVolume().</LI>
1619     <LI>Migrated to the new approach of creator model ID, using the new version
1620         of G4PhysicsModelCatalog.</LI>
1621     <LI>Improved branching ratio consistency in radioactive decays, by replacing
1622         hardwired radioactive-decay-mode numbers with corresponding enum values.
1623         Based on
1624         <A HREF="https://github.com/Geant4/geant4/pull/26">Github PR #26</A>.</LI>
1625     <LI>Use proper enum interface for G4String::strip().</LI>
1626     <LI>Removed obsolete classes G4RadioactiveDecayBase and 
1627         G4RadioactiveDecayBaseMessenger.</LI>
1628     <LI>Removed deprecated UI commands in messengers.</LI>
1629     <LI>Updated build scripts and header includes.</LI>
1630     </UL></LI>
1631 <LI><B>Theo_High_Energy</B>
1632     <UL>
1633     <LI>G4TheoFSGenerator: added accessors for the corresponding modifier
1634         methods already existing. This can be useful for users to access
1635         at run-time some information available from a hadronic final-state
1636         model.</LI>
1637     <LI>Set creator model ID for the secondaries, using the new version of
1638         G4PhysicsModelCatalog.</LI>
1639     </UL></LI>
1640 </UL>
1641 
1642 <A NAME="interc-notes">
1643 <H3><I>Intercoms</I></H3></A>
1644 <UL>
1645 <LI>G4UImanager: set <TT>LastCommandOutputTreated=false</TT> only for master
1646     thread. Avoids inadvertent "highlighting" in G4UIQt on worker threads.
1647     Added access methods to individual UI command.</LI>
1648 <LI>G4UIparameter: in CandidateCheck(), when candidate not found, print list
1649     of candidates.</LI>
1650 <LI>G4UIcommand: added command-type identifier.
1651     Added option to sort command/directory names in alphabetic order.</LI>
1652 <LI>G4UIcommandTree, G4UIdirectory, G4GenericMessenger: improved output HTML
1653     file layout.
1654 <LI>Fixed leak in G4ProfilerMessenger.</LI>
1655 <LI>G4GenericMessenger: added G4ThreeVector type without unit to function
1656     DeclareProperty(). Removed unnecessary duplication of G4UIdirectory objects.</LI>
1657 <LI>G4UIcontrolMessenger: protected some control commands not to be broadcasted
1658     to worker threads.</LI>
1659 <LI>Use <TT>std::string</TT> member functions from G4String in place of
1660     synonyms. Use new <TT>std::string</TT> compliant G4String interfaces.
1661     Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1662 <LI>Modernised CMake script.</LI>
1663 </UL>
1664 
1665 <A NAME="interf-notes">
1666 <H3><I>Interfaces</I></H3></A>
1667 <UL>
1668 <LI>Modified G4UIExecutive::SelectSessionByFile() to ensure that in Windows
1669     the Win32 OpenGL driver is selected as the second choice by default.
1670     Based on <A HREF="https://github.com/Geant4/geant4/pull/20">GitHub PR #20</A>.</LI>
1671 <LI>Extended G4UIWin32 driver with new features, based on contribution
1672     proposed in <A HREF="https://github.com/Geant4/geant4/pull/23">GitHub PR #23</A>.</LI>
1673 <LI>Added verbose setting in G4UIExecutive. Addressing problem report
1674     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2402">#2402</A>.</LI>
1675 <LI>Fixed HTML links in Qt UI Start page.</LI>
1676 <LI>G4UIQt: deal properly with creation and deletion of viewer properties.
1677     Added "exit" icon and extension selection.
1678     Fixed "Viewer Properties" window opened at Startup; "viewer" window must
1679     be constructed with setVisible(false).</LI>
1680 <LI>G4InteractorMessenger: allow use of exit icon by user.</LI>
1681 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1682     Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1683 <LI>Use proper enum interface for G4String::strip() and don't discard its

1684     return value.</LI>

1685 <LI>Added context for VtkQt visualisation driver.</LI>

1686 <LI>Retired G4UI/G4INTY_... preprocessor symbols in toolkit build,

1687     only required by obsolete GNUmake system.</LI>

1688 <LI>Removed obsolete Wt code from source and use in G4UIexecutive.</LI>

1689 <LI>Removed no longer supported GAG/Gain UI classes and settings.</LI>

1690 <LI>Fixed compilation warnings when C++20 Standard enabled.</LI>

1691 </UL>

1692 

1693 <A NAME="materials-notes">

1694 <H3><I>Materials</I></H3></A>

1695 <UL>

1696 <LI>G4Material: revised and updated G4Exceptions, now providing complete

1697     information and more precise diagnostics.</LI>

1698 <LI>G4MaterialPropertiesTable: removed deprecated optical material properties.

1699     Recalculate GROUPVEL if RINDEX is modified.

1700     Addressing problem report

1701     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2313">#2313</A>.

1702 <LI>In G4MaterialPropertiesTable, added new AddProperty() method to allow use of

1703     predefined optical material properties.

1704     Added <TT>spline</TT> argument to method, which creates

1705     G4MaterialPropertyVector.

1706     Use <TT>std::vector</TT> for material properties and material const properties,

1707     rather than <TT>std::map</TT>. Use Boolean flag with material const property to

1708     indicate whether it is defined; renaming of variables: first letter lower case,

1709     class variables start with <TT>f</TT>; removed iterators to material property

1710     vectors (use C++11 iteration). Fix AddConstProperty() with new key; fix

1711     RemoveConstProperty; make exception codes unique.

1712     Return nullptr when GetProperty() called for non-existent property; fixed

1713     error in GetMatConstPropNames(). Return const refs to vectors for

1714     material[const]props and names. Renamed Get[Const]PropertyMap() to

1715     Get[Const]Properties(). Fixed error with ConstPropertyExists().

1716     Throw FatalException if asked for index of non-existent property (addressing

1717     Coverity defect).</LI>

1718 <LI>G4ExtDEDXTable, G4IonStoppingData: corrected initialisation of spline

1719     flag.</LI>

1720 <LI>G4NistMaterialBuilder: removed unused argument <TT>isotopes</TT> from all

1721     methods where NIST materials are built.</LI>

1722 <LI>G4NistManager: adopt modifications in method signatures of 

1723     G4NistMaterialBuilder but keep own method signatures unchanged.</LI>

1724 <LI>New class G4OpticalMaterialProperties, a store for optical material

1725     properties.</LI>

1726 <LI>G4MaterialPropertiesTable: added 'createNewKey' to AddProperty();

1727     merged .icc into .cc; removed deprecated methods; applied clang-format.</LI>

1728 <LI>G4MaterialPropertyVector: use G4PhysicsFreeVector instead of

1729     obsolete G4PhysicsOrderedFreeVector.</LI>

1730 <LI>G4IonStoppingData, G4ICRU90StoppingData, G4ExtDEDXTable,

1731     G4VIonDEDXTable: substituted G4LPhysicsFreeVector by G4PhysicsFreeVector.

1732 <LI>G4Material, G4Element, G4Isotope, G4IonisParamElm,

1733     G4IonisParamMat, G4NistMaterialBuilder, G4NistMessenger,

1734     G4SandiaTable: minor clean-up.</LI>

1735 <LI>G4ElementVector: use const pointer to G4Element. Define operator<<();

1736     take const references to avoid needless copy construction.</LI>

1737 <LI>G4ElementData: reduced length of internal arrays from 108 to 99, max number

1738     99 is used by G4LivermorePhotoElectricModel, hadronic models use 93.

1739     Use G4int in method signature instead of size_t; improved initialisation.

1740     Provide more safe destruction at the end of run.</LI>

1741 <LI>G4Material: fixed Coverity report on non-initialized arrays;

1742     use const pointers to G4Elements where needed; added warnings if there is

1743     a mixture of definition of elements by number of atoms and mass fraction;

1744     reduced code duplication and reduced number of new/delete for the case when

1745     materials are added to a material.</LI>

1746 <LI>G4ExtendedMaterial: removed useless dependence on G4PhysicsModelCatalog,

1747     and improved comment.</LI>

1748 <LI>G4DensityEffectData: minor clean-up.</LI>

1749 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.</LI>

1750 <LI>Modernised CMake script.</LI>

1751 </UL>

1752 

1753 <A NAME="parameterisations-notes">

1754 <H3><I>Parameterisations</I></H3></A>

1755 <UL>

1756 <LI>GFLASH:

1757     <UL>

1758     <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>

1759     </UL></LI>

1760 </UL>

1761 

1762 <A NAME="part-notes">

1763 <H3><I>Particles</I></H3></A>

1764 <UL>

1765 <LI>Introduced six light hypernuclei and their corresponding antiparticles:

1766     G4HyperTriton, G4AntiHyperTriton, G4HyperAlpha, G4AntiHyperAlpha, G4HyperH4,

1767     G4AntiHyperH4, G4DoubleHyperH4, G4AntiDoubleHyperH4, G4HyperHe5,

1768     G4AntiHyperHe5, G4DoubleHyperDoubleNeutron, G4AntiDoubleHyperDoubleNeutron.

1769     The following simplifying assumptions have been made:

1770     (a) No hyper-deuteron, no hyper-He3; (b) the masses of these hyperons have

1771     been computed using the existing method

1772     G4HyperNucleiProperties::GetNuclearMass(); (c) the lifetimes are all assumed

1773     to be the same as the Lambda's lifetime; (d) the decays are obtained from the
1774     two decays of the (anti-)Lambda (with the same branching ratios as for a free
1775     Lambda), assuming, whenever possible, that 50% of the emitted (anti-)nucleon
1776     will be captured by the (anti-)nucleus where the decay of the (anti-)Lambda
1777     occurs. In the case of double-hyperon, only one of the two Lambdas
1778     is assumed to decay.</LI>
1779 <LI>G4IonConstructor: added hyper-nuclei.</LI>
1780 <LI>Added a few methods in G4ParticleDefinition, useful for dealing with
1781     hypernuclei and anti-hypernuclei.</LI>
1782 <LI>Extended the max number of decay secondaries, from 4 to 5, in the classes
1783     G4VDecayChannel and G4PhaseSpaceDecayChannel, needed for a decay channel of
1784     G4DoubleHyperDoubleNeutron.</LI>
1785 <LI>Store custom tracking manager per particle definition.</LI>
1786 <LI>Fixed retrieval of selected particle in G4ParticlePropertyMessenger,
1787     which was failing.</LI>
1788 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1789     Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1790 <LI>G4ParticleTable: fixed case for potential null pointer dereferencing in
1791     FindParticle(). Based on
1792     <A HREF="https://github.com/Geant4/geant4/pull/30">GitHub PR #30</A>.</LI>
1793 <LI>Fixed compilation error in G4IonTable occurring if C++20 enabled.</LI>
1794 <LI>Fixed shadowing compilation warning in G4Triton.</LI>
1795 </UL>
1796 
1797 <A NAME="pers-notes">
1798 <H3><I>Persistency</I></H3></A>
1799 <UL>
1800 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1801 <LI>ASCII:
1802     <UL>
1803     <LI>Added support for G4MultiUnion and G4ScaledSolid. Based on
1804         <A HREF="https://github.com/Geant4/geant4/pull/28">GitHub PR #28</A>.</LI>
1805     <LI>G4tgbVolume: corrected missing conversion degree-radian for Polycone.</LI>
1806     <LI>G4tgbMaterialSimple,G4tgrMaterial: changed STP_Temperature to
1807         NTP_Temperature to be consistent with NIST materials.</LI>
1808     <LI>G4tgbGeometryDumper: fixed access to G4Elements according to changes
1809         done in materials.</LI>
1810     </UL></LI>
1811 <LI>GDML:
1812     <UL>
1813     <LI>G4GDMLParser: scan for all possible logical volumes with same name in
1814         ImportRegions() and set them as root logical volumes.
1815         Issue notification warning in case more than one logical volume with
1816         same name is found, to be set a root logical volume for a region.</LI>
1817     <LI>G4GDMLRead: added missing update to internal maps for solids and volumes
1818         stores, after stripping of names execution. Addressing problem report
1819         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2403">#2403</A>.</LI>
1820     <LI>G4GDMLWriteMaterials, G4GDMLWriteSolids: G4MaterialProperties table now
1821         returns references to vectors, rather than maps that had to be allocated
1822         on the heap. Adjust code to iterate over the vectors.</LI>
1823     <LI>G4GDMLWriteMaterials: use G4PhysicsFreeVector instead of deprecated
1824         G4PhysicsOrderedFreeVector.</LI>
1825     <LI>G4GDMLReadMaterials, G4GDMLReadSolids: added parameter
1826         <TT>createNewKey=true</TT> to call to
1827         G4Material[Const]PropertiesTable::AddProperty().</LI>
1828     </UL></LI>
1829 </UL>
1830 
1831 <A NAME="lst-notes">
1832 <H3><I>Physics lists</I></H3></A>
1833 <UL>
1834 <LI>Removed dependencies on <TT>hadronic/model/util</TT> and
1835     <TT>hadronic/model/management</TT> modules now retired.</LI>
1836 <LI><B>Builders</B>:
1837     <UL>
1838     <LI>Replaced G4HadronCaptureProcess with G4NeutronCaptureProcess
1839         and G4HadronFissionProcess with G4NeutronFissionProcess in builders.</LI>
1840     <LI>Replaced particle-specific hadronic inelastic processes (that have
1841         been deleted) with G4HadronInelasticProcess.</LI>
1842     <LI>G4PrecoNeutronBuilder, G4PrecoProtonBuilder, G4INCLXXNeutronBuilder,
1843         G4QGSBinaryKaonBuilder: replaced obsoleted cross-sections
1844         (that have been deleted) with better ones.</LI>
1845     <LI>G4BinaryDeuteronBuilder, G4BinaryTritonBuilder, G4BinaryHe3Builder,
1846         G4BinaryAlphaBuilder: removed unused header files.</LI>
1847     <LI>G4QGSPNeutronBuilder: use G4NeutronInelasticXS cross-section.</LI>
1848     <LI>G4HadronicBuilder: properly initialise the vector mode, as suggested
1849         by Coverity.</LI>
1850     </UL></LI>
1851 <LI><B>Constructors</B>:
1852     <UL>
1853     <LI><U>decay</U>
1854         <UL>
1855         <LI>G4RadioactiveDecayPhysics: use SetAuger() method instead of the
1856             obsolete SetAugerCascade().</LI>
1857         </UL></LI>
1858     <LI><U>electromagnetic</U>:
1859         <UL>
1860         <LI>Updated all standard EM physics lists:
1861             removed local member <TT>verbose</TT>
1862             and use uniform approach for verbosity via G4EmParameters; instantiate
1863             NIEL process only if parameter MaxNIELEnergy is above zero; include
1864             gamma linear polarization model to Opt0, Opt3, Opt4, SS, and
1865             Livermore physics constructors if the parameter EnablePolarisation
1866             is "true"; G4EmLivermorePolarizedPhysics fully inheriting from
1867             G4EmLivermorePhysics.</LI>
1868         <LI>G4GammaGeneralProcess: updated interface in the Retrieve() method.
1869             Use base material approach.</LI>
1870         <LI>G4EmDNAPhysics: updated configuration of standard physics for gamma
1871             and positrons according to Opt3; updated particle list by addition
1872             of G4Alpha; simplified ConstructProcess() method using
1873             G4PhysicsListHelper.</LI>
1874         <LI>Updated G4EmLowEPPhysics physics model configuration
1875             See https://arxiv.org/abs/2102.02721 for details.</LI>
1876         <LI>G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd energy area,
1877             because cross-section is zero; in the 4th energy interval include in
1878             the vector value of 1 - p instead of p, where p is the cumulative
1879             probability of a sub-process. Make some methods/fields visible for
1880             derived classes.</LI>
1881         <LI>G4EmStandardPhysicsWVI: making this experimantal configuration
1882             compatible for CPU performance with Opt3 (it was similar to SS).
1883             Use similar options as in Opt3, for ions use
1884             G4LinhardSorensenIonModel.</LI>
1885         <LI>G4EmModelActivator: updated according to the current Opt3 and Opt4
1886             configurations.</LI>
1887         <LI>G4EmDNAChemistry, _option1, _option2, _option3
1888             added dissociation channel for electron-hole recombination.</LI>
1889         <LI>G4EmDNAChemistry_option3: changed pre-chemical model.</LI>
1890         <LI>DNA PhysicsLists: use SeEmModel() with correct signature.</LI>
1891         <LI>G4OpticalPhysicsList: removed deprecated optical commands.</LI>
1892         <LI>G4EmLivermorePolarizedPhysics: removed unused header.</LI>
1893         <LI>G4EmLivermorePhysics: use G4LivermorePolarizedComptonModel if
1894             polarisation is enabled.</LI>
1895         <LI>Removed obsolete G4EmLEPTSPhysics, and code cleanup in G4EmDNAPhysics
1896             and G4EmDNAPhysics_stationary.</LI>
1897         <LI>G4EmLivermorePhysics, G4EmPenelopePhysics_option1,
1898             G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
1899             G4EmLowEPhysics, G4EmStandardPhysicsSS: instantiate G4ePairProduction
1900             process after ionisation and bremsstrahlung; does not change physics
1901             but helps to have clearer debug printouts.</LI>
1902         <LI>G4EmBuilder: use more optimal order of instantiation of processes;
1903             not affecting any result but useful for debugging.
1904             Added hyper-nuclei EM physics; in all DNA physics-lists,
1905             use SetAuger() instead of SetAugerCascade().</LI>
1906         <LI>G4OpticalPhysics: applied clang-format style guidelines.</LI>
1907         </UL></LI>
1908     <LI><U>gamma_lepto_nuclear</U>:
1909         <UL>
1910         <LI>G4EmExtraPhysics, G4BertiniElectroNuclearBuilder,
1911             G4LENDBertiniGammaElectroNuclearBuilder: replaced G4PhotoNuclearProcess
1912             (now deleted) with G4HadronInelasticProcess.</LI>
1913         <LI>G4EmExtraPhysics: added option for positron annihilation to tau
1914             pair.</LI>
1915         <LI>Enable updated G4GammaNuclearXS by default in G4EmExtraPhysics for
1916             more detailed tests.</LI>
1917         </UL></LI>
1918     <LI><U>hadron_elastic</U>:
1919         <UL>
1920         <LI>G4HadronDElasticPhysics, G4HadronHElasticPhysics: use inheritance
1921             from G4HadronElasticPhysics; use G4HadProcesses, G4PhysListUtil and
1922             G4HadParticles; implement cross-section factor.</LI>
1923         <LI>G4HadronHElasticPhysics: fixed problem of fully overlapping energy
1924             transition between G4HadronElastic and G4ChipsElasticModel, using
1925             now G4ChipsElasticModel only for Hydrogen element above
1926             <TT>10 MeV</TT>.</LI>
1927         <LI>G4ChargeExchangePhysics: set explicitly the elastic cross-sections
1928             according to the hadron type, given that the universal Gheisha
1929             elastic cross-section has been now deleted.</LI>
1930         <LI>In all constructors, use verbosity level from G4HadronicParameters.</LI>
1931         </UL></LI>
1932     <LI><U>hadron_inelastic</U>:
1933         <UL>
1934         <LI>In all constructors: printouts are controlled by verbosity level of
1935             G4HadronicParameters class; 'verboseLevel' member in base class is 
1936             not used; G4HadronicParameters singleton is initialized in all class
1937             constructors; if the verbosity level is defined in class constructor,
1938             it is propagated to G4HadronicParameters (user may change this level
1939             using UI command before physics is initialized); check versus nullptr
1940             is added in several places.</LI>
1941         <LI>Removed unused header files, and replaced when needed
1942             G4HadronCaptureProcess with G4NeutronCaptureProcess.</LI>
1943         </UL></LI>
1944     </UL></LI>
1945 <LI><B>Lists</B>:
1946     <UL>
1947     <LI>Replaced particle-specific hadronic inelastic processes
1948         (that have been deleted) with G4HadronInelasticProcess in LBE.
1949         Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess.</LI>
1950     <LI>In all physics-lists, protected banners by verbosity level.</LI>
1951     <LI>G4PhysListFactory: added verbosity level to constructor and propagated
1952         to constructed lists.</LI>
1953     <LI>Mirror changes to G4PhysListFactory constructor signature (taking a
1954         default verbosity argument) in the G4PhysListFactoryAlt constructor.</LI>
1955     <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1956     </UL></LI>
1957 <LI><B>Util</B>:
1958     <UL>
1959     <LI>G4HadParticles: added hyper-nuclei.</LI>
1960     </UL></LI>
1961 </UL>
1962 
1963 <A NAME="readout-notes">
1964 <H3><I>Readout</I></H3></A>
1965 <UL>
1966 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.</LI>
1967 </UL>
1968 
1969 <A NAME="run-notes">
1970 <H3><I>Run</I></H3></A>
1971 <UL>
1972 <LI>Optimised access to volumes and regions stores.</LI>
1973 <LI>Minor C++11 review in use of iterators, initialisers, etc...</LI>
1974 <LI>Removed obsolete ResetCuts() method in G4VUserPhysicsList.</LI>
1975 <LI>Added new Ranlux++ engine to the list of supported random engines in
1976     G4UserWorkerThreadInitialization. Requires CLHEP-2.4.5.1.</LI>
1977 <LI>Added new G4DNAStaticMoleculeReactionProcess in PhysicsListHelper
1978     for DNA processes.</LI>
1979 <LI>Removed call to physicsList->TerminateWorker() in G4WorkerRunManager
1980     as this appears to cause errors at termination.</LI>
1981 <LI>G4VUserPhysicsList: invoke new static initialization of G4PhysicsModelCatalog
1982     in Construct(). Use custom tracking manager if registered.</LI>
1983 <LI>G4PhysicsListHelper: replaced hardwired numerical process types and
1984     sub-types with corresponding enum values.</LI>
1985 <LI>G4VPhysicsConstructor: fixed initialisation of hadronic parameters
1986     avoiding uncontrolled override of verbosityLevel.</LI>
1987 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1988     Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1989 <LI>General code cleanup and formatting.</LI>
1990 </UL>
1991 
1992 <A NAME="tasking-notes">
1993 <H3><I>Tasking</I></H3></A>
1994 <UL>
1995 <LI>Updated to PTL v2.0.0 with shared_ptr usage. Included some minor API
1996     changes to direct async usage.</LI>
1997 <LI>Fixes to TBB task-group usage.</LI>
1998 <LI>Fix for G4FORCENUMBEROFTHREADS flag lookup.</LI>
1999 <LI>G4RunManagerFactory: set default run manager type to be Tasking.</LI>
2000 <LI>Added new Ranlux++ engine to the list of supported random engines in
2001     G4UserTaskThreadInitialization. Requires CLHEP-2.4.5.1.</LI>
2002 <LI>G4TaskRunManager: check for valid threadPool pointer in method
2003     RequestWorkersProcessCommandsStack() to fix occasional segmentation
2004     fault at exit.</LI>
2005 </UL>
2006 
2007 <A NAME="track-notes">
2008 <H3><I>Track &amp; Tracking</I></H3></A>
2009 <UL>
2010 <LI>Introducing G4VTrackingManager, an interface for custom tracking
2011     managers specialized for one or a small number of particle types.</LI>
2012 <LI>G4SteppingManager: added a pointer to a G4NoProcess instance, and used it
2013     in InvokeAtRestDoItProcs() to flag a stable ion at rest. This avoids the
2014     otherwise confusing information that radioactive decay is the process
2015     defining the last step of a stable ion at rest.</LI>
2016 <LI>Correction to G4Track::operator=() to copy also touchable-handles.
2017     This fixes a crash originated when running importance sampling in the
2018     G4EventManager when the track got assigned the origin touchable handler
2019     from its own touchable handle; the touchable handler was sometimes not
2020     set.</LI>
2021 <LI>G4Track: migrated to the new version of G4PhysicsModelCatalog.
2022     Get material property using index rather than string.</LI>
2023 <LI>G4Step: avoid accessing G4Track data via long pointer chains.</LI>
2024 <LI>Adjusted printout format in DumpInfo() for G4VParticleChange
2025     and G4ParticleChange.</LI>
2026 <LI>Introducing G4SteppingVerboseWithUnits, an alternative to
2027     G4SteppingVerbose with printout of proper units and extended features.
2028     Added explicit virtual keyword for virtual methods and destructor in
2029     G4SteppingVerbose.</LI>
2030 <LI>G4SteppingVerbose: fixed bug that wrongly put the <TT>Forced</TT> label
2031     in the print-out information of non-forced processes, and vice-versa,
2032     omitting it for real forced processes. Issue which was causing confusing
2033     and misleading print-out.</LI>
2034 <LI>G4ParticleChangeForMSC, G4ParticleChangeForTransport: disable <TT>debugFlag</TT>
2035     which was left enabled by mistake.</LI>
2036 <LI>G4RichTrajectory: migrated to the new version of G4PhysicsModelCatalog.</LI>
2037 <LI>Export protected static symbols in G4VSteppingVerbose for DLL builds
2038     on Windows.</LI>
2039 <LI>G4SteppingVerbose, G4SteppingManager: added a switch to instantiate
2040     G4SteppingVerboseWithUnits.</LI>
2041 <LI>Simplified way of defining a user-specific stepping verbose, that
2042     is now common to all sequential, MT and tasking modes.</LI>
2043 <LI>Avoid unnecessary indirections when checking for regional stepping
2044     action by reusing the value of current volume in stepping manager.</LI>
2045 <LI>Use existing facility to find logical volume in store, rather than
2046     looping through in G4AdjointCrossSurfChecker.</LI>
2047 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
2048 </UL>
2049 
2050 <A NAME="vis-notes">
2051 <H3><I>Visualization</I></H3></A>
2052 <UL>
2053 <LI><B>General</B>
2054     <UL>
2055     <LI>Revised vis models. See notes for "modeling" above for more details.
2056         Consequent changes: AddPrimitive(const G4Scale&) has been removed from

2057         all scene handlers.</LI>

2058     <LI>Introduced a Vtk driver.</LI>

2059     <LI>Introduced ToolsSG drivers.</LI>

2060     <LI>Introduced in-app plotting; available only with ToolsSG drivers at
2061         present.</LI>
2062     <LI>Introduced "special mesh rendering" for G4VNestedParameterisation for
2063         fast rendering of meshes typically used for medical phantoms.</LI>
2064     <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
2065     <LI>Retired G4VIS_*, G4UI/G4INTY_* preprocessor symbols in toolkit build,
2066         only required by obsolete GNUmake system.</LI>
2067     <LI>Removed unused XXX module.</LI>
2068     </UL></LI>
2069 <LI><B>Management</B>
2070     <UL>
2071     <LI>Added UI commands for "Special Mesh Rendering": 
2072         <TT>/vis/viewer/set/specialMeshRendering</TT> and
2073         <TT>/vis/viewer/set/specialMeshVolumes</TT>
2074         Only available with OpenGL drivers at present.</LI>
2075     <LI>Implemented a default AddCompound(const G4Mesh&) method: just draws the

2076         "container" volume and prints a G4Exception with guidance.</LI>

2077     <LI>Added AddPrimitive(const G4Plotter&) and <TT>/vis/plotter/</TT> UI

2078         command.</LI>

2079     <LI>Draw(const G4Scale&) has been removed from G4VisManager;
2080         <TT>/vis/scene/add/scale</TT> reimplemented with G4CallBackModel; all
2081         commands using G4CallBackModel follow interface change.</LI>
2082     <LI>Added new data members to view parameters.</LI>
2083     <LI>Exploit C++17 to parse saved files in <TT>/vis/viewer/interpolate</TT>.</LI>
2084     <LI>Introducing <TT>/vis/scene/add/localAxes</TT> and
2085         <TT>/vis/touchable/localAxes</TT> UI commands.</LI>
2086     <LI>G4Scene: removed misleading warning message. Allow multiple models
2087         for the same name, but different parameters, to be added without warning.</LI>
2088     <LI>G4VSceneHandler: use C++17 <TT>[[fallthrough]]</TT> instead in switch
2089         statement. Added code for drawing the extents of models in a scene for
2090         debugging.</LI>
2091     <LI>Removed deprecated G4VisManager::SetUserAction().
2092         Use RegisterRunDurationUserVisAction or similar instead.
2093         These functions represent quite an advanced use of visualisation
2094         and are rarely used.</LI>
2095     <LI>Sort <TT>/vis/*</TT> UI commands in alphabetical order.</LI>
2096     <LI><TT>/vis/set/extentForField</TT>, <TT>/vis/scene/add/electricField</TT> and
2097         <TT>magneticField</TT>: improved guidance to take note of change to
2098         G4VFieldModel, namely that the number of data points is now calculated
2099         on the basis of the extent, which can be set as above.</LI>
2100     <LI>Interrupt macro (<TT>vis.mac</TT>) if graphics system invalid/unavailable.
2101         Issues "Batch is interrupted" and avoids long litany of further errors.</LI>
2102     <LI>G4VViewer: trap request to set touchable of a physical volume no longer
2103         in the physical volume store and issue message.</LI>
2104     <LI><TT>/vis/scene/add/volume</TT> (and <TT>/vis/drawVolume</TT>): exploit
2105         G4PhysicalVolumesSearchScene to streamline geometry tree searches.
2106         Avoid calculating extent of a temporary physical volume when not
2107         necessary.
2108         The above does introduce a change of behaviour for the case that a user
2109         names the volume(s) requested, e.g., <TT>/vis/drawVolume Shape1</TT>.
2110         The user will not normally see any difference - but it does avoid
2111         extravagant computation in some circumstances.</LI>
2112     <LI>G4VVisCommand, G4VisCommandsSceneHandler and G4VisCommandsViewer: preserve
2113         view parameters of any existing viewer and use them in the creation of a
2114         new viewer. So, if the user requests a new viewer of the same or a new
2115         graphics system, the upcoming view will inherit the view parameters of
2116         the previously existing viewer. The idea is that it makes the response a
2117         UI command <TT>/vis/viewer/open</TT> (or <TT>/vis/viewer/create</TT>) more
2118         natural. The first <TT>/vis/open</TT> is not affected.</LI>
2119     <LI>In G4VisCommansCompound, with <TT>/vis/drawTree</TT>, invoke
2120         <TT>/vis/viewer/reset</TT> to ensure culling is off, so that all
2121         volumes are printed.</LI>
2122     <LI>G4VisCommandsCompound, G4VisCommandOpen, G4VisCommandSceneHandlerCreate:
2123         improved reporting of unrecognised graphics system.</LI>
2124     <LI>G4VisCommandsTouchable: modified according to changes in 
2125         G4PhysicalVolumeModel.</LI>
2126     <LI>G4VisCommandsSet, G4VisCommandsTouchable and G4VisCommandsViewer:
2127         added comment of explanation where using G4PhysicalVolumesSearchScene.</LI>
2128     <LI>Use existing facility to find logical volume in store, rather than
2129         looping through in G4VisCommandSceneAddLogicalVolume::SetNewValue().</LI>
2130     <LI>G4VisCommands: replaced <TT>/vis/ogl/printEPS</TT> with
2131         <TT>/vis/ogl/export</TT> in guidance.</LI>
2132     <LI>G4VisCommandsScene: implemented <TT>/vis/scene/removeModel</TT>.</LI>
2133     <LI>G4ViewParameters: added Special Mesh Rendering parameters to
2134         <TT>/vis/viewer/save</TT>.</LI>
2135     <LI>G4VVisCommandGeometrySet: recalculate extent of any physical volume model
2136         in run duration lists after any <TT>/vis/geometry</TT> command (the scene's

2137         extent might have been changed by the command).</LI>

2138     <LI>Introducing GetColour(const G4Visible&).</LI>

2139     <LI>Protect pointers in G4VisManager::GeometryHasChanged().</LI>

2140     <LI>Fixed Windows static issue in G4VVisCommand.</LI>

2141     <LI>G4VisManager: fixed cout destination for UI manager during deletion.</LI>

2142     <LI>G4VisExecutive: removed obsolete VRML1 and network VRML2 drivers

2143         Removed obsolete network FukuiRenderer driver.

2144         Removed deprecated Wt driver.</LI>

2145     <LI>G4ViewParameters: fixed Coverity warning.</LI>

2146     <LI>Improved warning messages.</LI>

2147     </UL></LI>

2148 <LI><B>Modeling:</B>

2149     <UL>

2150     <LI>Revised vis models: over time, models have sprouted some inconsistencies.

2151         This is an attempt to rationalise them. The most significant model, used

2152         in all applications to draw the detector, is G4PhysicaVolumeModel. To

2153         handle all the options, G4PhysicalVolumeModel takes care of the

2154         transformation of any primitives that it generates. It ignores the

2155         transformation available in the base class, G4VModel. This revision

2156         brings all models in line with this policy.

2157         At the same time, we remove G4Scale and G4ScaleModel. G4Scale is an

2158         anomaly. It is not a "primitive" (obviously), but somehow, from the long

2159         distant past, it was implemented as though it was. These classes have been

2160         removed and <TT>/vis/scene/add/scale</TT> reimplemented with

2161         G4CallBackModel.</LI>

2162     <LI>Introducing new primitive G4Plotter.</LI>

2163     <LI>G4PhysicalVolumeModel: make CalculateExtent() a public function.

2164         Fixed bug in calculation of extent. In Validate(), avoid crash if

2165         volume no longer in physical volume store; improved warning message.</LI>

2166     <LI>Introducing G4Mesh, a light class that encapsulates and validates a

2167         nested parameterisation, called a "mesh". If a valid mesh cannot be

2168         created out of a G4VPhysicalVolume, it will have a type "invalid".

2169         The overhead of an invalid attempt is expected to be small, all the

2170         same it should only be invoked if the user specifies mesh rendering.</LI>

2171     <LI>G4ModelingParameters: added new data members and access functions.</LI>

2172     <LI>G4PhysicalVolumeModel: added code for special mesh rendering, under

2173         control of user flag. If flag is set by the above commands, and if a

2174         volume is a "mesh" (a container for a nested parameterisation), invoke

2175         new method AddCompound(const G4Mesh&).</LI>

2176     <LI>G4PhysicalVolumeModel: moved fFullPVPath.push_back earlier, addressing

2177         a bug in visualisation of touchables.</LI>

2178     <LI>Improved G4VModel; make SetTransform() virtual.</LI>

2179     <LI>G4ArrowModel, G4AxesModel and G4TextModel: implement SetTransform().</LI>

2180     <LI>Take care to apply to original model. For example, if SetTransform() is

2181         called more than once it must apply to the original.</LI>

2182     <LI>G4PhysicalVolumeModel: for the resultant of clipping, set the

2183         visualisation attributes of the original.</LI>

2184     <LI>G4VFieldModel: Change concept of choice of data points: this model

2185         simply checked that a data point was within the extent.

2186         Now it uses the extent to determine the datapoint spacing.

2187         Note: if <TT>fExtentForField</TT> is null, the used extent is that of the

2188         current scene; otherwise it uses that supplied by the user.</LI>

2189     <LI>G4PhysicalVolumesSearchScene: allow user to limit the depth of descent

2190         during a geometry tree search.</LI>

2191     <LI>G4PhysicalVolumeModel: if opacity (alpha) == 0 (completely transparent),

2192         treat same as pVisAttribs->IsVisible().

2193         G4PhysicalVolumeModel: simplified validation.</LI>

2194     <LI>As a result of Coverity warnings, improved G4PhysicalVolumeModel: clean up

2195         in case of found G4Mesh; hold current transform as object, not as a

2196         pointer.</LI>

2197     <LI>G4TouchablePropertiesScene: modified according to changes in 

2198         G4PhysicalVolumeModel.</LI>

2199     <LI>Added G4Exception in default implementation of

2200         G4PseudoScene::ProcessVolume().</LI>

2201     </UL></LI>

2202 <LI><B>FukuiRenderer</B>

2203     <UL>

2204     <LI>Removed obsolete network FukuiRenderer driver.</LI>

2205     </UL></LI>

2206 <LI><B>gMocren</B>

2207     <UL>

2208     <LI>Use updated renamed method GetNoVoxels() in G4PhantomParameterisation

2209         instead of GetNoVoxel(), now removed.</LI>

2210     </UL></LI>

2211 <LI><B>HepRep</B>

2212     <UL>

2213     <LI>Fixed compilation error in G4HepRepSceneHandler when C++20 is enabled.</LI>

2214     <LI>Removed obsolete HepRep(WIRED) driver and associated files.</LI>

2215     </UL></LI>

2216 <LI><B>OpenGL</B>

2217     <UL>

2218     <LI>G4OpenGLImmediateQtViewer and G4OpenGLStoredQtViewer: set jpg as default

2219         export format for Qt viewers, for use with <TT>/vis/ogl/export</TT>; jpg

2220         is only available for Qt viewers, pdf is the default for other OpenGL

2221         viewers.</LI>

2222     <LI>Make better use of G4VSceneHandler::AddPrimitive().</LI>

2223     <LI>Fix in G4OpenGLViewer for C++20 warnings.</LI>

2224     <LI>Fixed text alignment issue with a fudge factor in

2225         G4OpenGLQtViewer::DrawText().</LI>

2226     <LI>Fix in G4OpenGLViewer for C++20 warnings.</LI>

2227     <LI>Specialise fudge factor for __APPLE__. It seems only Mac has this

2228         problem. Maybe it's to do with the retina display. Maybe Qt keeps
2229         it's own pixel size.</LI>

2230     <LI>G4OpenGLViewerMessenger: removed <TT>/vis/ogl/printEPS</TT> command, now

2231         covered by the more versatile <TT>/vis/ogl/export</TT>. Rationalised image

2232         exporting.</LI>

2233     <LI>G4OpenGLSceneHandler: use C++17 <TT>[[fallthrough]]</TT> in switch

2234         statements.</LI>

2235     <LI>G4OpenGLViewer: subsume the code in printEPS into exportImage.</LI>

2236     <LI>G4OpenGLXmViewer::print_callback: call exportImage instead of printEPS.</LI>

2237     <LI>G4OpenGLStoredSceneHandler, G4OpenGLViewerMessenger: increase the default

2238         display list limit to 10 million. The default OpenGL display list limit

2239         was 50,000, an archaic value from the days when memory was much more

2240         limited than is typical today. The number can be changed with

2241         <TT>/vis/ogl/displayListLimit</TT>, either to increase it further or

2242         lower it, subject to a lower limit of 10000.</LI>

2243     <LI>In FinishView() and ShowView() of X/Xm viewers, comment out glXWaitGL().

2244         Wait for effects of all previous OpenGL commands to be propagated

2245         before progressing.</LI>

2246     <LI>G4OpenGLSceneHandler: disable backface culling.</LI>

2247     <LI>G4OpenGLStoredViewer and G4OpenGLStoredQtViewer: suppress kernel visit

2248         (no longer needed) for cutaway drawing.

2249         Note 1: Section and Cutaway can reveal back-facing faces. If backface

2250         culling is implemented, the image can look strange because the back-facing

2251         faces are not there. As described above, we have disabled (commented out)

2252         backface culling. It seems not to affect performance.

2253         Note 2: In G4OpenGLStored(Qt)Viewer::CompareForKernelVisit() we decide if a

2254         "kernel visit" (which involves a reconstruction of the graphical database

2255         from the kernel) is required on a change of view parameters. Simple

2256         rotating and zooming does not require a kernel visit, but more sophisticated

2257         parameters may. In G4OpenGLSceneHandler we implement cutaways using

2258         OpenGL cut planes, so now we have disabled backface culling, we do NOT need

2259         to visit the kernel. This is the change that makes a huge speed up when

2260         a user requests cutaways.</LI>

2261     <LI>G4OpenGLQtViewer: use 'modelShortName' instead of 'modelDescription'.</LI>

2262     <LI>Fixed compilation error in G4OpenGLXmConvenienceRoutines when C++20 is

2263         enabled.</LI>

2264     <LI>Implemented WindowProc() function in G4OpenGLWin32Viewer for the Win32

2265         OpenGL driver (function that was commented out). It is now possible to

2266         change the Zoom and the orientation using the mouse (like in the Qt

2267         driver). Based on contribution in

2268         <A HREF="https://github.com/Geant4/geant4/pull/20">GitHub PR #20</A>.</LI>

2269     <LI>Implemented AddCompound(const G4Mesh&) method: turns nested

2270         parameterisations into polymarkers of dots - much improved speed.</LI>

2271     <LI>Enable extended WIN32 window in G4OpenGLWin32Viewer.

2272         Based on contribution in

2273         <A HREF="https://github.com/Geant4/geant4/pull/23">GitHub PR #23</A>.</LI>

2274     <LI>G4OpenGLQtViewer::addNonPVSceneTreeElement(): special case for markers,

2275         use Info() if non-empty name appearing in Qt's scene tree. This allows
2276         the user to design markers, e.g., a list of points, and give them a name
2277         that relates to the providence of the points, e.g., a particular
2278         material or geometry component.</LI>
2279     <LI>Removed deprecated Wt driver.</LI>
2280     <LI>G4OpenGLStoredQtViewer: moved <TT>fViewId<0</TT> check to top of
2281         constructor to pick up errors in base class construction.</LI>
2282     <LI>Removed deprecated <TT>/vis/ogl/set/</TT> commands.</LI>
2283     <LI>All commands connected with a time window. Use equivalent
2284         <TT>/vis/viewer/set/timeWindow</TT> commands.</LI>
2285     <LI><TT>/vis/ogl/set/eventsDrawInterval [N]</TT> is replaced by 
2286         <TT>/vis/ogl/flushAt NthPrimitive [N]</TT>.</LI>
2287     <LI>Fix in G4OpenGLStoredXmViewer destructor.</LI>
2288     <LI>G4OpenGLWin32Viewer: fixed occasional crash with G4UIWin32 when
2289         creating viewer from UI command: avoid indirect call to DrawView()
2290         while still within CreateMainWindow().</LI>
2291     <LI>Comment out makeCurrent() in G4OpenGLImmediate/StoredQtViewer
2292         to prevent red-button crash.</LI>
2293     </UL></LI>
2294 <LI><B>OpenInventor</B>
2295     <UL>
2296     <LI>G4OpenInventorQtExaminerViewer: for tabbed viewer in UIQt, added a
2297         Detach button to move the viewer to its own dedicated and resizable
2298         window on the desktop. Added event handler for mouse wheel to fix the
2299         non-intuitive behavior. Mouse-wheel-forward now zooms/dollys in.
2300         Added viewer button to enable the "axis cross" (3d axes) feedback
2301         mechanism.</LI>
2302     <LI>G4OpenInventorViewer: upgraded the group node sensor to process camera
2303         movements, thus eliminating the need for the camera sensor. The node
2304         sensor receives all camera notifications and is immune to changes in
2305         the camera type.</LI>
2306     <LI>Force kernel visit if special mesh rendering parameters change.</LI>
2307     <LI>Code cleanup of OpenInventorQt classes.</LI>
2308     </UL></LI>
2309 <LI><B>Qt3D</B>
2310     <UL>
2311     <LI>Improve overall protection of debug output with debug flags.
2312         Moved debug code to G4Qt3DUtils header.</LI>
2313     <LI>Force kernel visit if special mesh rendering parameters change.</LI>
2314     <LI>Include some trial code (commented out) for text output.</LI>
2315     <LI>Fixed problem of drawing from the vis sub-thread.
2316         Added G4Qt3DViewer::MovingToVisSubThread() and MovingToMasterThread().</LI>
2317     <LI>G4Qt3DSceneHandler: raise G4Exception if no available node.
2318         Introduced AddCompound(const G4Mesh&) method.</LI>

2319     <LI>G4Qt3DViewer: protect against illegal call to show(); it may only be
2320         called from the master thread.</LI>
2321     <LI>Revert to black background.</LI>
2322     </UL></LI>
2323 <LI><B>Raytracer</B>
2324     <UL>
2325     <LI>Make RayTracerX viewers "auto refresh". This means the ray tracer will
2326         start tracing immediately on opening (<TT>/vis/open RayTracerX</TT>) and
2327         on any change of view parameters. Only affecting RayTracerX; plain
2328         RayTracer is not affected. It is possible to switch this feature off
2329         with <TT>/vis/viewer/set/auto-refresh false</TT>.</LI>
2330     <LI>Removed instantiation of G4The(MT)RayTracer from G4RayTracer.
2331         G4RayTracer is/should be a "pure factory". Its job is to instantiate
2332         a scene handler or viewer on request. G4The(MT)RayTracer should/need
2333         only be instantiated when the viewer is instantiated.</LI>
2334     <LI>Make better use of G4VSceneHandler::AddPrimitive().</LI>
2335     </UL></LI>
2336 <LI><B>ToolsSG</B>
2337     <UL>
2338     <LI>Introducing ToolsSG (TSG) drivers based on externals/g4tools.
2339         Supports in-app plotting.</LI>
2340     <LI>Providing four new (mutually exclusive) vis drivers: TOOLSSG_X11_GLES,
2341         TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.</LI>
2342     </UL></LI>
2343 <LI><B>Tree</B>
2344     <UL>
2345     <LI>Updated according to changes in G4PhysicalVolumeModel.</LI>
2346     <LI>Make better use of G4VSceneHandler::AddPrimitive().</LI>
2347     </UL></LI>
2348 <LI><B>VRML</B>
2349     <UL>
2350     <LI>Removed obsolete VRML1 and network VRML2 drivers.</LI>
2351     <LI>VRML*FILE drivers: introduced environment variables G4VRMLFILE_HEADER
2352         and G4VRMLFILE_FILE_NAME to allow the user to change the defaults. Also
2353        improve messaging to inform the user of this possibility.</LI>
2354     </UL></LI>
2355 <LI><B>Vtk</B>
2356     <UL>
2357     <LI>New VtkQt and VtkNative visualisation drivers.</LI>
2358     </UL></LI>
2359 <LI><B>Externals</B>
2360     <UL>
2361     <LI>Migrated gl2ps to version 1.4.2.
2362         Allow use of non-APPLE OpenGL on APPLE.
2363         To use this, build with macro GL2PS_USE_GL_GL_H.</LI>
2364     <LI>Fixed issues with GL when building X11 and Qt.
2365         GL libs should be included only once.</LI>
2366     </UL></LI>
2367 </UL>
2368 
2369 <A NAME="env-notes">
2370 <H3><I>Environments</I></H3></A>
2371 <UL>
2372 <LI>G4Py:
2373     <UL>
2374     <LI>Use exact version of Python for boost.python module. Based on
2375         <A HREF="https://github.com/Geant4/geant4/pull/31">GitHub PR #31</A>.</LI>
2376     <LI>Export binding for G4ElementVector, according to updates to G4ElementTable.</LI>
2377     <LI>Removed obsolete VRML1 driver settings.</LI>
2378     <LI>Removed setup for obsolete HepRep(WIRED) driver.</LI>
2379     <LI>In TestEm0, use default EM physics in place of obsolete
2380         G4EmProcessOptions.</LI>
2381     </UL></LI>
2382 <LI>zmq:
2383     <UL>
2384     <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
2385     </UL></LI>
2386 <LI>Removed obsolete MOMO module.</LI>
2387 </UL>
2388 
2389 <A NAME="data-notes">
2390 <H3><I>Data sets</I></H3></A>
2391 <UL>
2392 <LI>New low-energy data set version, <B>G4EMLOW-8.0</B>:
2393     <UL>
2394     <LI>Removed tabs in option4 cross-section files.</LI>
2395     <LI>Added new cross sections for electron transportation in gold
2396         within Geant4-DNA.</LI>
2397     <LI>Added directories <TT>Elastic</TT>, <TT>Inelastic</TT> and
2398         <TT>Structure</TT> for microelec models.</LI>
2399     <LI>Fixed problem in file sigmadiff_cumulated_ionisation_e_RBEBV_Z79.dat.</LI>
2400     <LI>Added ANSTO atomic de-excitation data.</LI>
2401     <LI>Added updated epics2017 data.</LI>
2402     <LI>Removed some unused data.</LI>
2403     </UL></LI>
2404 <LI>New data files for evaluated cross-sections <B>G4PARTICLEXS-4.0</B>:
2405     <UL>
2406     <LI>Extended data for all isotopes for neutron, proton and light ion
2407         cross-sections. New dataset for gamma incident based on IAEA/PD-2019
2408         both for elements and isotopes.</LI>
2409     </UL></LI>
2410 <LI>New optional data set version for incident protons,
2411     <B>G4TENDL-1.4</B>:
2412     <UL>
2413     <LI>New version based mainly on TENDL-2019 (previous one was from TENDL-2014).
2414     <LI>Isotopes not coming from TENDL-2019:
2415         <UL>
2416         <LI>Files in ENDF/B-VIII.0 (check the complete list in the README files of
2417             each subdirectory: Proton, Deuteron ...).</LI>
2418         <LI>The 5 isotopes in the JENDL/DEU-2020 data library, for incident
2419             deuterons on Li-6, Li-7, Be-9, C-12 and C-13.</LI>
2420         <LI>p+C-13, which is based on TENDL-2014, because ENDF/B-VII.1 proton file
2421             (adopted by TENDL-2019) only provides radiative capture final state.</LI>
2422         </UL></LI>
2423     <LI>File corresponding to p+Be9, coming from ENDF/B-VIII.0 has been modified
2424         to avoid case of G4Exception in Geant4.</LI>
2425     <LI>Update README files in Proton, Deuteron, Triton, He3 and Alpha
2426         directories.</LI>
2427     </UL></LI>
2428 </UL></LI>
2429 
2430 <A NAME="ex-notes">
2431 <H3><I>Examples</I></H3></A>
2432 <UL>
2433 <LI>Updated reference outputs, macros, READMEs and scripts.</LI>
2434 <LI>Fixes for Doxygen documentation and coding guidelines.</LI>
2435 <LI>Replaced deprecated G4VisAttributes::Invisible by
2436     G4VisAttributes::GetInvisible().</LI>
2437 <LI>Migration to new G4AnalysisManager.hh header and define the
2438     default output file type for analysis.</LI>
2439 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
2440     Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
2441 <LI>Bump required CMake version range to <TT>3.16...3.21</TT>.</LI>
2442 <LI><B><U>advanced</U></B>
2443     <UL>
2444     <LI><B>air_shower</B>
2445         <UL>
2446         <LI>Removed UltraAnalysisManager class, using default commands.</LI>
2447         <LI>Updated code to use C++11 features.</LI>
2448         </UL></LI>
2449     <LI><B>amsEcal</B>
2450         <UL>
2451         <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2452         </UL></LI>
2453     <LI><B>brachytherapy</B>
2454         <UL>
2455         <LI>Code cleanup: use C++11 keywords and patterns.</LI>
2456         <LI>Removed BrachyMaterial class; materials implemented now using NIST
2457             material manager.</LI>
2458         <LI>Removed SetCuts() from the local PhysicsList.</LI>
2459         </UL></LI>
2460     <LI><B>CaTS</B>
2461         <UL>
2462         <LI>New application implementing a flexible and extendable framework for
2463             the simulation of calorimeter and tracking detectors. 
2464             It also demonstrates how to use
2465             <A HREF="https://bitbucket.org/simoncblyth/opticks.git">Opticks</A>
2466             for the creation and propagation of optical photons.</LI>
2467         </UL></LI>
2468     <LI><B>composite_calorimeter</B>
2469         <UL>
2470         <LI>Migrated to multi-threading, using G4RunManagerFactory.</LI>
2471         <LI>Introduced the action initializer.</LI>
2472         <LI>Split the definition of the sensitive part of the detector
2473             from the detector construction itself. A new method,
2474             sensitiveHandling(), has been introduced in the base class CCalG4Able.</LI>
2475         <LI>Made the following three classes thread-local singletons: CCalSDList,
2476             CCalSensAssign and CCalSensitiveDetectors.</LI>
2477         <LI>Multi-threaded use of the G4AnalysisManager in the run action with the
2478             merging of histograms and ntuple of all working threads at the end of
2479             the run.</LI>
2480         </UL></LI>
2481     <LI><B>doiPET</B>
2482         <UL>
2483         <LI>Migrated to use G4RunManagerFactory.</LI>
2484         <LI>Analysis now done with G4Analysis.</LI>
2485         <LI>Link to reference data and analysis scripts provided to let users
2486             compare simulation results to reference data.</LI>
2487         <LI>Added some controls to prepare DOI-look-up table.</LI>
2488             If DOI look-up table is provided as a file, then it will use it. 
2489             If look-up table is not provided, the program will prepare the look-up
2490             table based on the information provided by the user (no. of crystals,
2491             etc).</LI>
2492         <LI>In performing Anger Logic calculation, the interaction position is
2493             mapped to the center of the crystal before 2D position error is added
2494             to model photomultiplier tube (PMT) error.</LI>
2495         <LI>A C++ analysis program is provided to calculate the sensitivity of the
2496             scanner for a line source.</LI>
2497         <LI>Fixed compilation warnings for unused private variables in
2498             doiPETDetectorConstruction and doiPETEventAction. Removed tabs.</LI>
2499         <LI>Removed unused header.</LI>
2500         </UL></LI>
2501     <LI><B>eRosita</B>
2502         <UL>
2503         <LI>Migration of code to multithreading.</LI>
2504         </UL></LI>
2505     <LI><B>gammaknife</B>
2506         <UL>
2507         <LI>Delete runManager at the end of the run.</LI>
2508         </UL></LI>
2509     <LI><B>gammaray_telescope</B>
2510         <UL>
2511         <LI>Fixed interactive mode.</LI>
2512         <LI>GammaRayTelHadronPhysics: replaced G4HadronCaptureProcess with
2513             G4NeutronCaptureProcess, and G4HadronFissionProcess with
2514             G4NeutronFissionProcess.
2515             Replaced stopping processes that have been deleted.
2516             Replaced old pion inelastic cross-sections (that have been deleted)
2517             with G4BGGPionInelasticXS.</LI>
2518         <LI>GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced
2519             G4PhotoNuclearProcess (that has been deleted) with
2520             G4HadronInelasticProcess.</LI>
2521         <LI>Minor change in the GammaRayTelRunAction::OpenFile() method to allow
2522             filenames longer than the hardcoded 25 character limit.</LI>
2523         <LI>Removed dependency on G4EmProcessOptions.</LI>
2524         <LI>Removed SetCuts() from the local PhysicsList.</LI>
2525         <LI>Removed obsolete input macros and use EM option-4 in physics_opt4.mac.</LI>
2526         <LI>Removed obsolete classes.</LI>
2527         </UL></LI>
2528     <LI><B>gorad</B>
2529         <UL>
2530         <LI>Protect explicit inclusion of G4UIQt header.</LI>
2531         <LI>Fixed potential shadowing compilation warnings in GRInitialization.</LI>
2532         </UL></LI>
2533     <LI><B>hadrontherapy</B>
2534         <UL>
2535         <LI>Modified HadrontherapyLet for file generation.</LI>
2536         <LI>Removed dependency on G4EmProcessOptions.</LI>
2537         <LI>Geometry modification in CarbonBeamLine.</LI>
2538         <LI>Removed unncessary G4AutoDelete of StepProcessMax in physics list.</LI>
2539         <LI>Minor changes in macro files.</LI>
2540         </UL></LI>
2541     <LI><B>HGCal_testbeam</B>
2542         <UL>
2543         <LI>SiliconPixelHit, SiPMHit: fixed problem in handling of NIEL energy
2544             deposition.</LI>
2545         <LI>CMSHadronPhysicsFTFP_BERT: added class from CMS.</LI>
2546         <LI>Removed obsolete class CMSEmStandardPhysicsHcal.</LI>
2547         <LI>FTFPCMS_BERT_EMM: use correct combination of physics constructors.</LI>
2548         <LI>Removed use of obsolete RanecuEngine. Updated CMS EM physics.</LI>
2549         <LI>Fixed compilation warning for unused private member in
2550             PrimaryGeneratorAction.</LI>
2551         </UL></LI>
2552     <LI><B>ICRP110_HumanPhantoms</B>
2553         <UL>
2554         <LI>Introduced ICRP110PhantomVisAction. Updated vis.mac which shows
2555             how to activate it.</LI>
2556         <LI>Revised implementation of bone material.</LI>
2557         <LI>Fix in UserScorerWriter to avoid potential division by zero.</LI>
2558         <LI>Updated OrganMasses.dat; the Dose is now calculated averaged over the
2559             entire mass of the organ, and not only in the voxels of the organ where
2560             there is edep recorded.</LI>
2561         <LI>Use <TT>/vis/viewer/set/specialMeshRendering</TT>. Draw the full
2562             phantom. In ColourMap.dat, all materials (except air) are now opaque.</LI>
2563         <LI>General code cleanup.</LI>
2564         </UL></LI>
2565     <LI><B>iort_therapy</B>
2566         <UL>
2567         <LI>Removed dependency on G4EmProcessOptions.</LI>
2568         <LI>Removed SetCuts() from the local PhysicsList.</LI>
2569         <LI>Set cuts per region in ConstructProcess(). RegionStore is not available
2570             when accessed from the constructor of the Physics List.</LI>
2571         </UL></LI>
2572     <LI><B>lAr_calorimenter</B>
2573         <UL>
2574         <LI>Migrated to use G4RunManagerFactory.</LI>
2575         </UL></LI>
2576     <LI><B>microbeam</B>
2577         <UL>
2578         <LI>Added initialisation of data in the
2579             constructor of the RunAction class.</LI>
2580         <LI>Use explicit constructors and <TT>override</TT> instead of
2581             <TT>virtual</TT> in derived classes. Use G4 types in
2582             DetectorConstruction.</LI>
2583         <LI>In main() do not initialize run and number of threads, let 
2584             these be done in macro microbeam.mac.</LI>
2585         <LI>DetectorConstruction: use <TT>CLHEP::twopi</TT>. Avoid having
2586             <TT>fField</TT> pointer as class member, use G4AutoDelete
2587             registration instead.</LI>
2588         <LI>CellParameterisation: initilize all data members.</LI>
2589         </UL></LI>
2590     <LI><B>microelectronics</B>
2591         <UL>
2592         <LI>Updated PhysicsList to new EM settings.</LI>
2593         <LI>Updated analysis script plot.C.</LI>
2594         </UL></LI>
2595     <LI><B>purging_magnet</B>
2596         <UL>
2597         <LI>Migrated to use G4RunManagerFactory.</LI>
2598         <LI>Updated physics list to use Modular physics list, with
2599             G4EmStandardPhysics_option4.</LI>
2600         </UL></LI>
2601     <LI><B>radioprotection</B>
2602         <UL>
2603         <LI>Added the Bridge silicon microdosimeter and a macro to perform
2604             microdosimetric calculations. Analysis macros run with Root6.</LI>
2605         </UL></LI>
2606     <LI><B>STCyclotron</B>
2607         <UL>
2608         <LI>STCyclotronSensitiveTarget: remove deprecated include.</LI>
2609         <LI>Use new CLHEP units for <TT>minute, hour, day, year</TT> in
2610             STCyclotronPhysicsList.</LI>
2611         </UL></LI>
2612     <LI><B>underground_physics</B>
2613         <UL>
2614         <LI>In DMXParticleSource::ConfineSourceToVolume(), use existing
2615             facility to faster find physical volme in store, rather than looping
2616             through. Some code cleanup.</LI>
2617         <LI>DMXPhysicsList: replaced G4HadronCaptureProcess with
2618             G4NeutronCaptureProcess. Replaced stopping processes that have been
2619             deleted. Removed header files of old and unused pion inelastic
2620             cross-sections (that have been deleted). Replaced particle-specific
2621             inelastic processes (that have been deleted) with
2622             G4HadronInelasticProcess.</LI>
2623         <LI>Replaced deprecated optical commands & parameters with new ones.</LI>

2624         </UL></LI>

2625     <LI><B>xray_fluorescence</B>

2626         <UL>

2627         <LI>Migrated to use G4RunManagerFactory.</LI>

2628         <LI>Removed dependency on G4EmProcessOptions.</LI>

2629         <LI>Removed SetCuts() from the local PhysicsList.</LI>

2630         <LI>Updated for changes in the analysis category.</LI>

2631         </UL></LI>

2632     </UL></LI>

2633 <LI><B><U>basic</U></B>

2634     <UL>

2635     <LI>Migrated to use G4SteppingVerboseWithUnits.</LI>

2636     <LI>Use <TT>nullptr</TT> instead of <TT>0</TT>.</LI>

2637     <LI>Cleaned trailing whitespaces from all files.</LI>

2638     <LI>Introduced namespace instead of a class names prefix.</LI>

2639     <LI>Declare overriding functions <TT>override</TT> (and removed

2640         <TT>virtual</TT> keyword).</LI>

2641     <LI><B>B4</B>

2642         <UL>

2643         <LI>Removed macros/visTutor. A movies tutorial is now in extended example

2644             visualization/movies. Remove visTutor menu in all gui.mac files.</LI>

2645         </UL></LI>

2646     <LI><B>B5</B>

2647         <UL>

2648         <LI>Added input script plotter.mac to use new plotter commands.</LI>

2649         <LI>Added analysisManager->Reset() in begin of run, as resetting

2650             was disabled for plotting in end of run.</LI>

2651         </UL></LI>

2652     </UL></LI>

2653 <LI><B><U>extended</U></B>

2654     <UL>

2655     <LI><B>analysis</B>

2656         <UL>

2657         <LI>Removed AnaEx03 with the AIDA implementation.</LI>

2658         <LI><B>AnaEx01</B>

2659             <UL>

2660             <LI>Define analysis manager configuration and create histograms

2661                 only once.</LI>

2662             <LI>Always close analysis files in EndOfRunAction.</LI>

2663             </UL></LI>

2664         </UL></LI>

2665     <LI><B>biasing</B>

2666         <UL>

2667         <LI><B>B03</B>

2668             <UL>

2669             <LI>B03PhysicsList: replaced G4HadronCaptureProcess with

2670                 G4NeutronCaptureProcess, and G4HadronFissionProcess with

2671                 G4NeutronFissionProcess. Replaced old ion cross-sections (that have

2672                 been deleted) with better ones. Use G4HadronInelasticProcess for

2673                 inelastic processes (the particle-specific inelastic processes have

2674                 been deleted).</LI>

2675             </UL></LI>

2676         </UL></LI>

2677     <LI><B>electromagnetic</B>

2678         <UL>

2679         <LI><B>TestEm0</B>

2680             <UL>

2681             <LI>Updated PhysListEmStandard.</LI>

2682             <LI>DetectorConstruction: print only used material.</LI>

2683             <LI>RunAction: improved output format.</LI>

2684             </UL></LI>

2685         <LI><B>TestEm1</B>

2686             <UL>

2687             <LI>Migrated main() to use G4RunManagerFactory and

2688                 G4SteppingVerboseWithUnits.</LI>

2689             <LI>Updated PhysListEmStandard.</LI>

2690             <LI>DetectorConstruction: do not print materials table.</LI>

2691             <LI>StepMax: code formatting.</LI>

2692             <LI>Added macro stepMax.mac.</LI>

2693             </UL></LI>

2694         <LI><B>TestEm2</B>

2695             <UL>

2696             <LI>Migrated to use G4SteppingVerboseWithUnits.</LI>

2697             <LI>Removed obsolete PhysList5DEmStandard. 5D model is a part of

2698                 Opt4 and other physics configurations.</LI>

2699             <LI>Updated PhysListEmStandard.</LI>

2700             <LI>DetectorConstruction: do not print materials table.</LI>

2701             <LI>StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger:

2702                 revert, to make command <TT>/testem/stepMax</TT> working in

2703                 interactive mode.</LI>

2704             <LI>SteppingVerbose: set precision via data member; modified process
2705                 name.</LI>
2706             <LI>Use G4RunManagerFactory in main().</LI>
2707             <LI>Added macro stepMax.mac.</LI>
2708             </UL></LI>
2709         <LI><B>TestEm3</B>
2710             <UL>
2711             <LI>Updated PhysListEmStandard.</LI>
2712             <LI>StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger:
2713                 revert, to make command <TT>/testem/stepMax</TT> working in
2714                 interactive mode.</LI>
2715             <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2716             <LI>Added macro stepMax.mac.</LI>
2717             </UL></LI>
2718         <LI><B>TestEm4</B>
2719             <UL>
2720             <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2721             </UL></LI>
2722         <LI><B>TestEm5</B>
2723             <UL>
2724             <LI>Updated PhysListEmStandard.</LI>
2725             <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2726             <LI>TrackingAction: fixed bug for filling histos 6 and 7.
2727                 Fixed bug for histo of vertex position.</LI>
2728             <LI>StackingAction: migrated to the new version of
2729                 G4PhysicsModelCatalog.</LI>
2730             <LI>StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger:
2731                 revert, to make command <TT>/testem/stepMax</TT> working in
2732                 interactive mode.</LI>
2733             <LI>Use G4RunManagerFactory in main().</LI>
2734             <LI>Fixed inconsistency of target/world size defined by a user
2735                 Addressing problem report
2736                 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2379">#2379</A>.</LI>
2737             <LI>DetectorConstruction: if any geometry size is changed then
2738                 recompute all geometry parameters.</LI>
2739             <LI>PrimaryGeneratorAction: reinitialise beam position for each
2740                 new run.</LI>
2741             <LI>Included new macro pixe_ANSTO.mac to show how to activate
2742                 the ANSTO PIXE data libraries. Use ANSTO radiation yields
2743                 instead of EADL.</LI>
2744             <LI>StackingAction: use new modelID scheme.</LI>
2745             <LI>Removed obsolete PhysListEm5DPhysics and PhysListEm19DPhysics,
2746                 as these models are now part of regular physics constructors.</LI>
2747             <LI>Added macros stepMax.mac and subcut.mac.</LI>
2748             </UL></LI>
2749         <LI><B>TestEm6</B>
2750             <UL>
2751             <LI>Migrated to use G4RunManagerFactory.</LI>
2752             <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2753             </UL></LI>
2754         <LI><B>TestEm7</B>
2755             <UL>
2756             <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2757             <LI>Removed use of obsolete RanecuEngine.
2758                 Updated PhysListEmPhysicsNR.</LI>
2759             <LI>Migrated to use G4RunManagerFactory in main().</LI>
2760             <LI>Improved macro files for ion ionisation.</LI>
2761             <LI>Fix to build with C++20 Standard enabled.</LI>
2762             <LI>c2_function.hh: fixed compilation warning.</LI>
2763             </UL></LI>
2764         <LI><B>TestEm8</B>
2765             <UL>
2766             <LI>Added printout of random numbers.</LI>
2767             </UL></LI>
2768         <LI><B>TestEm9</B>
2769             <UL>
2770             <LI>Replaced local Physics List by clone of the default EM standard;
2771                 recover analysis of process calls for the case of gamma general
2772                 process; improved macro files. Removed unused header.</LI>
2773             </UL></LI>
2774         <LI><B>TestEm11</B>
2775             <UL>
2776             <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2777             <LI>Updated PhysListEmStandard.</LI>
2778             <LI>DetectorConstruction: print only used material.</LI>
2779             <LI>RunAction: dump G4EmParameters.</LI>
2780             </UL></LI>
2781         <LI><B>TestEm12, 13, 14</B>
2782             <UL>
2783             <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2784             <LI>Updated PhysListEmStandard.</LI>
2785             </UL></LI>
2786         <LI><B>TestEm15</B>
2787             <UL>
2788             <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2789             <LI>PhysicsList: removed PhysList5DStandard, as 5D model is now part of
2790                 Opt4 EM physics in standard constructors.</LI>
2791             </UL></LI>
2792         <LI><B>TestEm16</B>
2793             <UL>
2794             <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2795             </UL></LI>
2796         <LI><B>TestEm17, 18</B>
2797             <UL>
2798             <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2799             </UL></LI>
2800         </UL></LI>
2801     <LI><B>eventgenerator</B>
2802         <UL>
2803         <LI><B>exgps</B>
2804             <UL>
2805             <LI>Tidy up CTests definition file and build configuration.</LI>
2806             </UL></LI>
2807         <LI><B>particleGun</B>
2808             <UL>
2809             <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
2810                 Removed SteppingVerbose class.</LI>
2811             </UL></LI>
2812         <LI><B>pythia/py8decayer</B>
2813             <UL>
2814             <LI>New example demonstrating how to outfit Pythia8-based decay features 
2815                 to those resonances in Geant4 where decay tables are not implemented
2816                 by default. In addition, it shows how to replace existing
2817                 Geant4 decay tables to such resonances as tau+/- or B+/- with 
2818                 the Pythia8-based ones.</LI>
2819             </UL></LI>
2820         <LI><B>userPrimaryGenerator</B>
2821             <UL>
2822             <LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
2823             </UL></LI>
2824         </UL></LI>
2825     <LI><B>exoticphysics</B>
2826         <UL>
2827         <LI><B>channeling</B>
2828             <UL>
2829             <LI>Removed local option4 physics configuration.</LI>
2830             </UL></LI>
2831         <LI><B>phonon</B>
2832             <UL>
2833             <LI>Download CrystalMap files and fixed build issues.</LI>
2834             </UL></LI>
2835         <LI><B>saxs</B>
2836             <UL>
2837             <LI>Fixed using G4Analysis: add call to CloseFile().</LI>
2838             <LI>Cleanup of PhysicsList.</LI>
2839             </UL></LI>
2840         </UL></LI>
2841     <LI><B>geometry</B>
2842         <UL>
2843         <LI><B>transforms</B>
2844             <UL>
2845             <LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
2846             <LI>Added cleaning of the reflection factory.</LI>
2847             </UL></LI>
2848         <LI><B>VecGeomNavigation</B>
2849             <UL>
2850             <LI>New example demonstrating integration of VecGeom navigation, based
2851                 on the prototype package G4VecGeomNav, being integrated in the
2852                 example at build time.</LI>
2853             </UL></LI>
2854         </UL></LI>
2855     <LI><B>hadronic</B>
2856         <UL>
2857         <LI><B>FissionFragment</B>
2858             <UL>
2859             <LI>Fixed CMake build script to define target properly.</LI>
2860             </UL></LI>
2861         <LI><B>Hadr01</B>
2862             <UL>
2863             <LI>PhysicsList: removed unused header file.</LI>
2864             </UL></LI>
2865         <LI><B>Hadr02</B>
2866             <UL>
2867             <LI>CRMCNeutronBuilder, HIJINGNeutronBuilder, UrQMDNeutronBuilder:
2868                 replaced G4HadronCaptureProcess with G4NeutronCaptureProcess, and
2869                 G4HadronFissionProcess with G4NeutronFissionProcess.</LI>
2870             <LI>IonUrQMDPhysics: replaced old ion cross-sections (that have been
2871                 deleted) with G4ComponentGGNuclNuclXsc.</LI>
2872             <LI>Replaced particle-specific inelastic processes (that have been
2873                 deleted) with G4HadronInelasticProcess.</LI>
2874             </UL></LI>
2875         <LI><B>Hadr03</B>
2876             <UL>
2877             <LI>PhysicsList: added GammaNuclearPhysicsLEND.</LI>
2878             <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
2879                 G4PhotoNuclearProcess (that has been deleted) with
2880                 G4HadronInelasticProcess.</LI>
2881             <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
2882                 Removed SteppingVerbose class.</LI>
2883             </UL></LI>
2884         <LI><B>Hadr04</B>
2885             <UL>
2886             <LI>NeutronHPphysics: replaced G4HadronCaptureProcess with
2887                 G4NeutronCaptureProcess, and G4HadronFissionProcess with
2888                 G4NeutronFissionProcess. Replaced G4NeutronInelasticProcess (that
2889                 has been deleted) with G4HadronInelasticProcess.
2890                 Use G4GenericMessenger instead of NeutronHPMessenger.</LI>
2891             <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
2892                 Removed SteppingVerbose class.</LI>
2893             <LI>Added protection in RunAction::CountProcesses().</LI>
2894             </UL></LI>
2895         <LI><B>Hadr05</B>
2896             <UL>
2897             <LI>New example demonstrating how to collect energy deposition in a
2898                 sampling calorimeter and how to survey energy flow.</LI>
2899             </UL></LI>
2900         <LI><B>Hadr06</B>
2901             <UL>
2902             <LI>TrackingAction: count secondary particles with meanLife > 0.
2903                 Print meanLife. Added TrackingMessenger with 2 commands.</LI>
2904             <LI>PhysicsList: added GammaNuclearPhysicsLEND.
2905                 Use new CLHEP units for <TT>minute, hour, day, year</TT> and
2906                 <TT>millielectronvolt</TT>.</LI>
2907             <LI>Updated ElectromagneticPhysics.</LI>
2908             <LI>Suppressed command <TT>/process/list</TT> in several macros.</LI>
2909             <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
2910                 G4PhotoNuclearProcess (that has been deleted) with
2911                 G4HadronInelasticProcess.</LI>
2912             <LI>DetectorConstruction: updated <TT>fWorldSize</TT> for
2913                 SetRadius().</LI>
2914             <LI>Migrated main() to G4RunManagerFactory and
2915                 G4SteppingVerboseWithUnits.</LI>
2916             <LI>Enable ParticleHP settings in main().</LI>
2917             <LI>Stepping verbose initialisation.</LI>
2918             </UL></LI>
2919         <LI><B>Hadr07</B>
2920             <UL>
2921             <LI>TrackingAction: count secondary particles with meanLife > 0.
2922                 Print meanLife.</LI>
2923             <LI>PhysicsList: added GammaNuclearPhysicsLEND.
2924                 Use new CLHEP units for <TT>minute, hour, day, year</TT> and
2925                 <TT>millielectronvolt</TT>.</LI>
2926             <LI>Updated ElectromagneticPhysics.</LI>
2927             <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
2928                 G4PhotoNuclearProcess (that has been deleted) with
2929                 G4HadronInelasticProcess.</LI>
2930             <LI>Migrated main() to G4RunManagerFactory and
2931                 G4SteppingVerboseWithUnits.
2932                 Enable ParticleHP settings in main().</LI>
2933             <LI>HadronElasticPhysicsHP: use G4GenericMessenger.</LI>
2934             <LI>RadioactiveDecayPhysics: do not change 'ThresholdOfHalfLife'.</LI>
2935             </UL></LI>
2936         <LI><B>Hadr08</B>
2937             <UL>
2938             <LI>BiasingOperation: replaced Gheisha inelastic cross-section (that
2939                 has been deleted) with better cross-sections.
2940                 Replaced particle-specific inelastic processes (that have been
2941                 deleted) with G4HadronInelasticProcess.</LI>
2942             </UL></LI>
2943         <LI><B>Hadr09</B>
2944             <UL>
2945             <LI>HadronicGenerator: migrated per-particle inelastic processes
2946                 (that have been deleted) to G4HadronInelasticProcess.
2947                 Extended interface and functionality; used new methods
2948                 available in the FTF model.</LI>
2949             </UL></LI>
2950         <LI><B>Hadr10</B>
2951             <UL>
2952             <LI>New hadronic example aimed to exercise the decay of tau leptons,
2953                 as well as charmed and bottom hadrons.</LI>
2954             </UL></LI>
2955         <LI><B>NeutronSource</B>
2956             <UL>
2957             <LI>TrackingAction: count secondary particles with meanLife > 0.
2958                 Print meanLife.</LI>
2959             <LI>PhysicsList: added GammaNuclearPhysicsLEND.
2960                 Use new CLHEP units for <TT>minute, hour, day, year</TT> and
2961                 <TT>millielectronvolt</TT>.</LI>
2962             <LI>Updated ElectromagneticPhysics.</LI>
2963             <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
2964                 G4PhotoNuclearProcess (that has been deleted) with
2965                 G4HadronInelasticProcess.</LI>
2966             <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
2967                 Removed SteppingVerbose class.</LI>
2968             <LI>RadioactiveDecayPhysics: new constructor, include G4Radioactivation
2969                 process, inactivate atomic de-excitation.</LI>
2970             <LI>Added protection in RunAction::CountProcesses().</LI>
2971             <LI>TrackingAction, RunAction: added a comment for excited states.</LI>
2972             <LI>HadronElasticPhysicsHP: use G4GenericMessenger.</LI>
2973             <LI>RadioactiveDecayPhysics: do not change 'ThresholdOfHalfLife'.</LI>
2974             </UL></LI>
2975         </UL></LI>
2976     <LI><B>medical/DICOM</B>
2977         <UL>
2978         <LI>Use updated renamed method GetNoVoxels() in G4PhantomParameterisation
2979             instead of GetNoVoxel(), now removed.</LI>
2980         <LI>In vis.mac, changed <TT>/vis/ogl/set/eventsDrawInterval</TT> to
2981             <TT>/vis/ogl/flushAt NthPrimitive</TT>.</LI>
2982         </UL></LI>
2983     <LI><B>medical/dna</B>
2984         <UL>
2985         <LI><B>AuNP</B>:
2986             <UL>
2987             <LI>New example simulating the track-structure of electrons in
2988                 microscopic gold volume. Also simulating that in liquid water
2989                 medium surrounding the gold volume.</LI>
2990             </UL></LI>
2991         <LI><B>chem2</B>:
2992             <UL>
2993             <LI>In vis.mac, changed <TT>/vis/ogl/set/eventsDrawInterval</TT> to
2994                 <TT>/vis/ogl/flushAt NthPrimitive</TT>.</LI>
2995             </UL></LI>
2996         <LI><B>chem3</B>:
2997             <UL>
2998             <LI>In vis.mac, changed <TT>/vis/ogl/set/</TT> to
2999                 <TT>/vis/viewer/set/timeWindow/</TT>.</LI>
3000             <LI>Replaced '/vis/ogl/printEPS' with <TT>/vis/ogl/export</TT>
3001                 in relevant macros.</LI>
3002             </UL></LI>
3003         <LI><B>chem6</B>:
3004             <UL>
3005             <LI>Deleted limit time step.</LI>
3006             <LI>Reduced number of incident particles.</LI>
3007             </UL></LI>
3008         <LI><B>dnadamage1</B>:
3009             <UL>
3010             <LI>Fixes in analysis macros.</LI>
3011             <LI>Fixed SSD file typos.</LI>
3012             </UL></LI>
3013         <LI><B>neuron</B>:
3014             <UL>
3015             <LI>In vis.mac, changed <TT>/vis/ogl/set/</TT> to
3016                 <TT>/vis/viewer/set/timeWindow/</TT>.</LI>
3017             </UL></LI>
3018         <LI><B>microdosimetry</B>:
3019             <UL>
3020             <LI>Updated PhysicsList to use updated SetEmModel() method.
3021                 Removed thread unsafe SetCuts() method; use SetEmModel(..) for
3022                 multiple scattering.</LI>
3023             </UL></LI>
3024         <LI><B>scavenger</B>:
3025             <UL>
3026             <LI>New example showing how to activate the scavenging process
3027                 in chemistry using the deterministic treatment of the IRT
3028                 model.</LI>
3029             </UL></LI>
3030         <LI><B>splitting</B>:
3031             <UL>
3032             <LI>Updated PhysicsList to recent EM settings.</LI>
3033             </UL></LI>
3034         <LI><B>svalue</B>:
3035             <UL>
3036             <LI>PhysicsList: removed unused header. Radioactive decay is defined via
3037                 standard radioactive physics builder.</LI>
3038             <LI>Do not allow change of geometry between runs, only materials may be
3039                 changed.</LI>
3040             <LI>Removed all warning in test run.</LI>
3041             </UL></LI>
3042         </UL></LI>
3043     <LI><B>medical/electroscattering</B>
3044         <UL>
3045         <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
3046         <LI>Removed obsolete random number generator.</LI>
3047         <LI>PhysicsList: use physics constructors from physics_list library;
3048             added G4EmStandardPhysics_option4; removed local EM physics
3049             constructors.</LI>
3050         </UL></LI>
3051     <LI><B>medical/electroscattering2</B>
3052         <UL>
3053         <LI>Removed warning. Cosmetic modifications in PhysicsList.</LI>
3054         </UL></LI>
3055     <LI><B>medical/fanoCavity, 2</B>
3056         <UL>
3057         <LI>Updated PhysicsList to recent EM settings.</LI>
3058         <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
3059         </UL></LI>
3060     <LI><B>optical</B>
3061         <UL>
3062         <LI><B>LXe</B>
3063             <UL>
3064             <LI>Get some refractive indices from new G4OpticalMaterialParameters
3065                 file.</LI>
3066             <LI>Excercise creating material property table element by element.</LI>
3067             <LI>Replaced deprecated optical commands and parameters with new
3068                 ones.</LI>
3069             </UL></LI>
3070         <LI><B>OpNovice</B>
3071             <UL>
3072             <LI>Excercise creating material property table element by element.</LI>
3073             <LI>Replaced deprecated optical commands and parameters with new ones.</LI>
3074             <LI>Fixed incorrect material property name.</LI>
3075             <LI>Added option to define detector via a GDML file.</LI>
3076             <LI>Added outer world volume to avoid surfaces including world volume.</LI>
3077                 Addressing problem report
3078                 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2373">#2373</A>.</LI>
3079             <LI>DetectorConstruction: use modified interface to
3080                 G4MaterialPropertiesTable with Spline flag.</LI>
3081             <LI>Code cleanup; renamed class variables to start with <TT>f</TT>.</LI>
3082             <LI>OpNoviceDetectorConstruction: added tests of user-defined material
3083                 properties; add one material property using C-style arrays (as a
3084                 test).</LI>
3085             </UL></LI>
3086         <LI><B>OpNovice2</B>
3087             <UL>
3088             <LI>DetectorConstruction: use modified interface to
3089                 G4MaterialPropertiesTable with Spline flag.</LI>
3090             <LI>Replaced deprecated optical commands and parameters with new ones.</LI>
3091             </UL></LI>
3092         <LI><B>wls</B>
3093             <UL>
3094             <LI>WLSMaterials: use correct material property names.</LI>
3095             <LI>WLSPrimaryGeneratorAction: use G4PhysicsFreeVector instead of
3096                 deprecated G4PhysicsOrderedFreeVector.</LI>
3097             <LI>Added visualisation attributes.</LI>
3098             <LI>Fixed bug preventing cladding being built.</LI>
3099             <LI>Fixed counting of detector hits.</LI>
3100             <LI>Added histograms.</LI>
3101             <LI>Use G4OpBoundaryProcess::invokeSD() rather than
3102                 ProcessHits_boundary() call in SteppingAction.</LI>
3103             <LI>Remove StringToRotation; removed Sr90.mac; added electron.mac.</LI>
3104             </UL></LI>
3105         </UL></LI>
3106     <LI><B>parallel</B>
3107         <UL>
3108         <LI><B>MPI</B>
3109            <UL>
3110            <LI>Updated analysis classes for recent changes in analysis.</LI>
3111            <LI>More updates in g4mpi for changes in G4String.</LI>
3112            </UL></LI>
3113         <LI><B>ThreadsafeScorers</B>
3114            <UL>
3115            <LI>TSPhysicsList: removed obsolete header G4EmProcessOptions; removed
3116                method SetCuts() to avoid data race, use the one from the base class; 
3117                removed singleton pattern from this class as not needed.</LI>
3118            </UL></LI>
3119         </UL></LI>
3120     <LI><B>parameterisations</B>
3121         <UL>
3122         <LI><B>gflash</B>
3123            <UL>
3124            <LI>clang-tidy and clang-format on code.</LI>
3125            <LI>test.mac run twice with and without gflash.</LI>
3126            </UL></LI>
3127         <LI><B>Par04</B>
3128            <UL>
3129            <LI>New example demonstrating how to use the Machine Learning (ML)
3130                inference to create energy deposits as a fast simulation model
3131                using ONNX runtime and LWTNN libraries.</LI>
3132            </UL></LI>
3133         </UL></LI>
3134     <LI><B>polarisation</B>
3135         <UL>
3136         <LI><B>Pol01</B>
3137            <UL>
3138            <LI>Cleanup of Physics List; use renamed polarized processes.</LI>
3139            </UL></LI>
3140         </UL></LI>
3141     <LI><B>radioactivedecay</B>
3142         <UL>
3143         <LI><B>Activation</B>
3144             <UL>
3145             <LI>TrackingAction: count secondary particles with meanLife > 0.
3146                 Take weight into account.</LI>
3147             <LI>PhysicsList: added GammaNuclearPhysicsLEND.
3148                 Use new CLHEP units for <TT>minute, hour, day, year</TT> and
3149                 <TT>millielectronvolt</TT>.</LI>
3150             <LI>Updated ElectromagneticPhysics.</LI>
3151             <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
3152                 G4PhotoNuclearProcess (that has been deleted) with
3153                 G4HadronInelasticProcess.</LI>
3154             <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
3155                 Removed SteppingVerbose class.</LI>
3156             <LI>ElectromagneticPhysics: updated EM parameters.</LI>
3157             <LI>RadioactiveDecayPhysics: new constructor, include G4Radioactivation
3158                 process, inactivate atomic de-excitation.</LI>
3159             <LI>Added protection in RunAction::CountProcesses().</LI>
3160             <LI>TrackingAction, RunAction: added a comment for excited states.</LI>
3161             <LI>HadronElasticPhysicsHP: use G4GenericMessenger.</LI>
3162             <LI>RadioactiveDecayPhysics: do not change 'ThresholdOfHalfLife'.</LI>
3163             </UL></LI>
3164         <LI><B>rdecay01, 02</B>
3165             <UL>
3166             <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
3167                 Removed SteppingVerbose class.</LI>
3168             <LI>Use new CLHEP units for <TT>minute, hour, day, year</TT> and
3169                 <TT>millielectronvolt</TT> in PhysicsList.</LI>
3170             <LI>Added protection in RunAction::CountProcesses().</LI>
3171             </UL></LI>
3172         </UL></LI>
3173     <LI><B>runAndEvent</B>
3174         <UL>
3175         <LI><B>RE05, 06</B>
3176            <UL>
3177            <LI>Migration to the new SteppingVerbose.</LI>
3178            </UL></LI>
3179         <LI><B>RE07</B>
3180            <UL>
3181            <LI>New example demonstrating how to register specialized tracking
3182                managers for a particle or a set of particles.</LI>
3183            </UL></LI>
3184         </UL></LI>
3185     <LI><B>visualization</B>
3186         <UL>
3187         <LI><B>movies</B>
3188            <UL>
3189            <LI>New example illustrating how to make a movie with
3190                <TT>/vis/viewer/save</TT> and <TT>/vis/viewer/interpolate</TT>.
3191                It also includes the "visTutor" macros
3192                previously included in example "basic" B4.
3193                See README for further information.</LI>
3194            </UL></LI>
3195         </UL></LI>
3196     </UL>
3197 </UL>
3198 
3199 <P> </P>
3200 <A NAME="10."></a>
3201 <HR>
3202 
3203 <!-- ============================================== -->
3204 
3205 <H2>10. Appendix</H2>
3206 
3207 <A NAME="string-migration-notes">
3208 <H3>A1 - <I>Changes required for advanced use of G4String</I></H3></A>
3209 <UL>
3210 <LI>G4String now has identical constructors to <TT>std::string</TT>.
3211     Replace use of the single <TT>char</TT> argument constructor
3212     (explicitly or implicitly):
3213     <PRE>
3214     // G4String x('a');
3215     G4String x(1, 'a');
3216     </PRE></LI>
3217 <LI>G4String no longer provides call operators for element or substring
3218     access. The subscript operator or <TT>substr</TT> member functions
3219     should be used instead:
3220     <PRE>
3221     // char x = aG4String(42);  
3222     char x = aG4String[42];
3223 
3224     // G4String s = aG4String(3,14);
3225     G4String s = aG4String.substr(3, 14);
3226     </PRE></LI>
3227 <LI>Replace use of <TT>G4String::index</TT> with <TT>G4String::find</TT>
3228     (interface as <TT>std::string::find</TT>):
3229     <PRE>
3230     // auto i = aG4String.index("arg");
3231     auto i = aG4String.find("arg");
3232     </PRE></LI>
3233 <LI>Replace use of <TT>G4String::isNull</TT> with <TT>G4String::empty</TT>
3234     (interface as <TT>std::string::empty</TT>):
3235     <PRE>
3236     // bool c = aG4String.isNull();
3237     bool c = aG4String.empty();
3238     </PRE></LI>
3239 <LI>Replace use of <TT>G4String::first</TT> with <TT>G4String::find</TT>,
3240     <TT>G4String::last</TT> with <TT>G4String::rfind</TT>
3241     (as <TT>`std::string::find</TT>, <TT>std::string::rfind</TT> interfaces):
3242     <PRE>
3243     // auto f = aG4String.first('x');
3244     auto f = aG4String.find('x');
3245 
3246     // auto l = aG4String.last('y');
3247     auto l = aG4String.rfind('y');
3248     </PRE></LI>
3249 <LI>Replace use of <TT>G4String::prepend</TT> with <TT>G4String::insert</TT>
3250     (as <TT>std::string::insert</TT> interface):
3251     <PRE>
3252     // aG4String.prepend("foo");
3253     aG4String.insert(0, "foo"); 
3254     </PRE></LI>
3255 <LI>G4String still allows implicit conversion to <TT>const char*></TT> but this
3256     behaviour should be regarded as deprecated. User code should prefer to use
3257     explicit conversion via the <TT>c_str</TT> member function when passing to
3258     functions expecting <TT>const char*</TT>, or to take string arguments
3259     by <TT>G4String</TT> or <TT>std::string_view</TT> as appropriate.</LI>
3260 <P></P>
3261 <LI>The following members functions are retained but marked as deprecated,
3262     and with the recommended member or free function replacements in the
3263     <TT>G4StrUtil</TT> namespace:
3264     <PRE>
3265     // G4int i = aG4String.compareTo(anotherString);
3266     G4int i = aG4String.compare(...); // replacement: std::string::compare
3267 
3268     // G4int i = aG4String.compareTo(anotherString, G4String::ignoreCase);
3269     G4int i = G4StrUtil::icompare(aG4String, anotherString);
3270 
3271     // aG4String.readLine(anIStream);
3272     std::getline(anIStream, aG4String);
3273 
3274     // aG4String.remove(42);
3275     aG4String.erase(42); // interface as std::string::erase
3276 
3277     // aG4String.contains("char or string");
3278     G4StrUtil::contains(aG4String, "char or string"); // interface as C++23 std::string::contains
3279 
3280     //G4String c = aG4String.strip(...);
3281     G4String c = G4StrUtil::rstrip_copy(aG4String); // see also G4StrUtil::{rstrip,lstrip,lstrip_copy,strip,strip_copy}
3282 
3283     // aG4String.toLower(); 
3284     G4StrUtil::to_lower(aG4String); // see also G4StrUtil::to_lower_copy
3285 
3286     // aG4String.toUpper();
3287     G4StrUtil::to_upper(aG4String); // see also G4StrUtil::to_upper_copy
3288     </PRE></LI>
3289 </UL>
3290 
3291 <A NAME="hadronic-migration-notes">
3292 <H3>A2 - <I>Hadronic changes required by <U>user-made</U> physics lists</I></H3></A>
3293 <UL>
3294 <LI><U>For hadronic processes</U>
3295     <UL>
3296     <LI>Replace G4XxxInelasticProcess with:
3297         <PRE>
3298         G4HadronInelasticProcess* xxxInelasticProcess = new G4HadronInelasticProcess( "xxxInelastic", G4Xxx::Definition() );
3299         </PRE>
3300         where <TT>xxx</TT> can be either:
3301         <PRE>
3302         "PionPlus", "PionMinus", "KaonPlus", "KaonMinus",
3303         "KaonZeroS", "KaonZeroL", "Proton", "AntiProton",
3304         "Neutron", "AntiNeutron", "Deuteron", "Triton", "Alpha"
3305         </PRE>
3306         for example:
3307         <PRE>
3308         G4KaonZeroLInelasticProcess* theInelasticProcess = new G4KaonZeroLInelasticProcess( "inelastic" );
3309         </PRE>
3310         has been replaced by:
3311         <PRE>
3312         G4HadronInelasticProcess* theInelasticProcess = new G4HadronInelasticProcess( "inelastic", G4KaonZeroLong::Definition() );
3313         </PRE></LI>
3314     <LI>For photon inelastic processes, use:
3315         <PRE>
3316         G4HadronInelasticProcess* photonNuclear = new G4HadronInelasticProcess( "photonNuclear", G4Gamma::Definition() );<BR>
3317         photonNuclear->AddDataSet( new G4PhotoNuclearCrossSection );
3318 
3319         G4HadronicProcess* photonCapture = new G4HadronicProcess( "photonNuclear", fCapture );
3320         G4HadronicProcess* photonFission = new G4HadronicProcess( "photonFission", fFission );
3321         </PRE></LI>
3322     </UL></LI>
3323 <LI><U>For hadronic cross-sections</U>
3324     <UL>
3325     <LI>For INELASTIC, the following cross-sections should be used:
3326         <PRE>
3327         G4VCrossSectionDataSet* protonInelasticXS = new G4BGGNucleonInelasticXS( G4Proton::Definition() );
3328 
3329         G4VCrossSectionDataSet* neutronInelasticXS = new G4NeutronInelasticXS;
3330         // a valid alternative could be:
3331         // G4VCrossSectionDataSet* neutronInelasticXS = new G4BGGNucleonInelasticXS( G4Neutron::Definition() );
3332 
3333         G4VCrossSectionDataSet* pionPlusInelasticXS = new G4BGGPionInelasticXS( G4PionPlus::Definition() );
3334         G4VCrossSectionDataSet* pionMinusInelasticXS = new G4BGGPionInelasticXS( G4PionMinus::Definition() );
3335 
3336         // For kaons, hyperons and anti-hyperons
3337         G4VCrossSectionDataSet* ggHadInelasticXS = new G4CrossSectionInelastic( new G4ComponentGGHadronNucleusXsc );
3338 
3339         // For deuteron, triton, He3, alpha and generic ions
3340         G4VCrossSectionDataSet* ionInelasticXS = new G4CrossSectionInelastic( new G4ComponentGGNuclNuclXsc );
3341 
3342         // For anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3 and anti_alpha
3343         G4VCrossSectionDataSet* antibaryonInelasticXS = new G4CrossSectionInelastic( new G4ComponentAntiNuclNuclearXS );
3344         </PRE></LI>
3345     <LI>For ELASTIC:
3346         <PRE>
3347         G4VCrossSectionDataSet* protonElasticXS = new G4BGGNucleonElasticXS( G4Proton::Definition() );
3348 
3349         G4VCrossSectionDataSet* neutronElasticXS = new G4NeutronElasticXS;
3350         // a valid alternative could be:
3351         // G4VCrossSectionDataSet* neutronElasticXS = new G4BGGNucleonElasticXS( G4Neutron::Definition() );
3352 
3353         G4VCrossSectionDataSet* pionPlusElasticXS = new G4BGGPionElasticXS( G4PionPlus::Definition() );
3354         G4VCrossSectionDataSet* pionMinusElasticXS = new G4BGGPionElasticXS( G4PionMinus::Definition() );
3355 
3356         // For kaons, hyperons and anti-hyperons
3357         G4VCrossSectionDataSet* ggHadElasticXS = new G4CrossSectionElastic( new G4ComponentGGHadronNucleusXsc );
3358 
3359         // For deuteron, triton, He3, alpha and generic ions
3360         G4VCrossSectionDataSet* ggIonElasticXS = new G4CrossSectionElastic( new G4ComponentGGNuclNuclXsc );
3361 
3362         // For anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3 and anti_alpha
3363         G4VCrossSectionDataSet* antibaryonElasticXS = new G4CrossSectionElastic( new G4ComponentAntiNuclNuclearXS );
3364         </PRE></LI>
3365     <LI>For (neutron) CAPTURE:
3366         <PRE>
3367         G4VCrossSectionDataSet* neutronCaptureXS = new G4NeutronCaptureXS;
3368         </PRE></LI>
3369     <LI>For FISSION, use HP. Elsewhere:
3370         <PRE>
3371         G4VCrossSectionDataSet* neutronFissionXS = new G4ZeroXS;
3372         G4VCrossSectionDataSet* photoFissionXS = new G4ZeroXS;
3373         </PRE></LI>
3374     </UL></LI>
3375 <LI><U>For stopping (at rest inelastic processes)</U>
3376     <UL>
3377     <LI>For pi-, replace G4PiMinusAbsorptionBertini with:
3378         <PRE>
3379         G4HadronStoppingProcess* piMinusAbsorption = new G4HadronicAbsorptionBertini( G4PionMinus::Definition() );
3380         </PRE></LI>
3381     <LI>For K-, replace G4KaonMinusAbsorptionBertini with:
3382         <PRE>
3383         G4HadronStoppingProcess* kMinusAbsorption = new G4HadronicAbsorptionBertini( G4KaonMinus::Definition() ); 
3384         </PRE></LI>
3385     <LI>For anti_proton, replace G4AntiProtonAbsorptionFritiof with:
3386         <PRE>
3387         G4HadronStoppingProcess* antiProtonAbsorption = new G4HadronicAbsorptionFritiof( G4AntiProton::Definition() );
3388         </PRE>
3389         No replacement for G4AntiNeutronAnnihilationAtRest, just remove it.</LI>
3390     <LI>For Sigma-, replace G4SigmaMinusAbsorptionBertini with:
3391         <PRE>
3392         G4HadronStoppingProcess* sigmaMinusAbsorption = new G4HadronicAbsorptionBertini( G4SigmaMinus::Definition() ); 
3393         </PRE></LI>
3394     <LI>For anti-Sigma+, replace G4AntiSigmaPlusAbsorptionFritiof with:
3395         <PRE>
3396         G4HadronStoppingProcess* antiSigmaPlusAbsorption = new G4HadronicAbsorptionFritiof( G4AntiSigmaPlus::Definition() );
3397         </PRE></LI>
3398     </UL></LI>
3399 </UL>
3400 
3401 <HR>
3402 
3403 </BODY>
3404 </HTML>