Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:16:07

0001 <HTML>
0002 <HEAD>
0003 <TITLE>Geant4 11.1 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.1 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 9<SUP>th</SUP>, 2022</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, VecGeom and PTL 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 13.0.1 Ventura with Apple LLVM/Clang-14.<BR>
0071     Tested on 64 bit architectures (Intel or Apple Silicon).</LI>
0072 <LI>Windows-10 with Visual C++ 14.33 (Visual Studio 2022).</LI>
0073 </UL>
0074 
0075 More verified and tested configurations (64 bits):
0076 <UL>
0077 <LI>Linux, gcc-9.3/10.3/11.3/12.2, clang-10/11/13/14</LI>
0078 <LI>Linux, Intel-icc 2021.7, Intel-icx 2022.2</LI>
0079 <LI>macOS 12.6 Monterey with Apple LLVM/clang-14</LI>
0080 <LI>macOS 11.7 Big Sur with Apple LLVM/Clang-12</LI>
0081 <LI>Windows/10 with Visual C++ 14.29 (Visual Studio 2019)</LI>
0082 </UL>
0083 
0084 <P> </P>
0085 <A NAME="2."></A>
0086 <HR>
0087 
0088 <!-- ============================================== -->
0089 
0090 <H2>2. Supported CLHEP, VecGeom and PTL versions</H2>
0091 
0092 This release of Geant4 has been verified with
0093 <A TARGET="ext" HREF="http://cern.ch/clhep/">CLHEP</A>, release <B>2.4.6.2</B>.
0094 Use of a different CLHEP version may cause incorrect simulation results.<BR>
0095 NOTE: an internal module of the relevant CLHEP classes is provided and can be
0096 used as alternative to an external CLHEP library installation.<BR>
0097 A configuration option allows a Geant4 installation to use the
0098 <A HREF="https://gitlab.cern.ch/VecGeom/VecGeom/">VecGeom Library</A>
0099 primitives, to replace the original Geant4 solids.<BR>
0100 VecGeom version <B>1.2.1</B> has been tested when using such configuration.<BR>
0101 PTL version <B>2.3.3</B> is required for external installation of the
0102 <A HREF="https://github.com/jrmadsen/PTL">PTL tasking library</A>.<BR>
0103 CMake <B>3.16</B> is the minimum version required to build Geant4.
0104 
0105 <P> </P>
0106 <A NAME="3."></A>
0107 <HR>
0108 
0109 <!-- ============================================== -->
0110 
0111 <H2>3. Items for migration of the user code</H2>
0112 
0113 Listed here is some relevant information on developments included in this
0114 release.
0115 Note that for all users a full re-installation of libraries (or a full
0116 re-compilation) and a re-compilation of user applications is required.
0117 
0118 <P> </P>
0119 <B>General</B>
0120 <P> </P>
0121 <UL>
0122 <LI>Using standard install location for CMake <TT>find_package</TT>
0123     configuration files under $CMAKE_INSTALL_PREFIX/lib/cmake/Geant4.<BR>
0124     Application builds using CMake will need to set <TT>Geant4_DIR</TT> to
0125     this new location, or use CMAKE_PREFIX_PATH, to find Geant4.</LI>
0126 <LI>Added required configuration to be able to generate DEB/RPM packages
0127     with CPack.</LI>
0128 <LI>Added new scheme to locate required datasets, making use of environment
0129     variables optional. See <A HREF="#10.">Appendix</A> for details
0130     on potential configuration and C++ changes required.</LI>
0131 <LI>Removed Geant4Py from toolkit build with distribution and support moved
0132     to <A HREF="https://github.com/koichi-murakami/g4python">upstream repository</A>.<BR>
0133      All support and feature requests should be directed to the related
0134     <A HREF="https://github.com/koichi-murakami/g4python/issues">GitHub Issue
0135     Tracker</A>.</LI>
0136 <LI>Retired <TT>tasking</TT> module and merged contents in <TT>global</TT> and
0137     <TT>run</TT> categories.</LI>
0138 </UL>
0139 
0140 <P> </P>
0141 <B>Geometry, Fields and Transportation</B>
0142 <P> </P>
0143 <UL>
0144 <LI>Client code that uses the methods SetLowLooperThresholds() and/or
0145     SetHighLooperThresholds() introduced in release 11.0 for G4Transportation
0146     and G4CoupledTransportation, may need revision as now G4CoupledTransportation
0147     inherits from G4Transportation.</LI>
0148 </UL>
0149 
0150 <P> </P>
0151 <B>Electromagnetic and optical physics</B>
0152 <P> </P>
0153 <UL>
0154 <LI>New dataset G4EMLOW-8.2 is required and should be used.</LI>
0155 </UL>
0156 
0157 <P> </P>
0158 <B>Visualization and Modeling</B>
0159 <P> </P>
0160 <UL>
0161 <LI>Qt drivers require the Qt-5 platform. Qt-6 is not yet supported.</LI>
0162 <LI>The GEANT4_USE_TOOLSSG CMake option for the ToolsSG visualisation driver
0163     has been removed, the driver now being automatically enabled.</LI>
0164 </UL>
0165 
0166 <P> </P>
0167 <B>Data Sets</B>
0168 <P> </P>
0169 <UL>
0170 <LI>This release introduces new data set versions.
0171     Please see the corresponding details in
0172     <A href="#data-notes">Section 9</A> of this document.
0173     <UL>
0174     <LI>New data set versions: <TT>G4EMLOW-8.2, G4NDL-4.7</TT>.
0175         Notice that the latter extends the number of materials for which
0176         thermal scattering data is available.</LI>
0177     <LI>In order to use <TT>ParticleHP</TT> for charged particles
0178         (protons, deuterons, tritons, He3 and alphas), an optional data
0179         set <TT>G4TENDL-1.4</TT> is required, and can be optionally
0180         downloaded in addition.</LI>
0181     </UL></LI>
0182 </UL>
0183 
0184 <A NAME="4."></A>
0185 <HR>
0186 
0187 <!-- ============================================== -->
0188 
0189 <H2>4. New Developments and Capabilities </H2>
0190 
0191 <B>General</B>
0192 <UL>
0193 <LI>Improved diagnostic for problems with primary track parameters or with
0194     secondary tracks in particle-change classes.</LI>
0195 <LI>Introduced methods in the G4Track class that provide information on eventual
0196     short-lived parent hadronic resonances.</LI>
0197 </UL>
0198 
0199 <B>Analysis</B>
0200 <UL>
0201 <LI>Implemented support for writing analysis objects (histograms, profiles,
0202     n-tuples) in a file multiple times.</LI>
0203 <LI>Added new UI commands for analysis file management:
0204     <TT>/analysis/openFile, write, closeFile</TT> and <TT>reset</TT>.
0205 <LI>Added new analysis manager List functions and associated commands:
0206     <TT>/analysis/list [onlyIfActive]</TT>, 
0207     <TT>/analysis/xy/list  [onlyIfActive]</TT> where
0208     <TT>xy = h1, h2, h3, p1, p2, ntuple</TT>.</LI>
0209 </UL>
0210 
0211 <B>Geometry & Field</B>

0212 <UL>

0213 <LI>Added ability to optionally check for overlaps in parallel geometries

0214     through the <TT>/geometry/run/test</TT> UI command.</LI>

0215 <LI>A new class G4TransportationParameters enables fine grain control of

0216     parameters for killing charged particles looping in a field.

0217     It is optional, but if created it applies to all stable charged particles.

0218     It must be instantiated in the master thread and all its parameters need

0219     to be assigned values.</LI>

0220 <LI>Improved computation of surface area and cubic volume in specific solids.</LI>

0221 <LI>Revised implementation of G4CoupledTransportation: now it inherits from

0222     G4Transportation and consolidates common variables and methods.</LI>

0223 <LI>Revised G4FieldManager to ensure that <TT>epsilon_min/_max</TT> parameters

0224     are between 'minimum and maximum accepted' accuracy values to ensure robust

0225     behaviour of the integration.</LI>

0226 <LI>Introduced a 2<SUP>nd</SUP> order symplectic integration method

0227     G4BorisDriver, targetting better control of energy conservation and

0228     conservation of phase space volume.</LI>

0229 </UL>

0230 

0231 <B>Materials</B>

0232 <UL>

0233 <LI>In the NIST material data-base, the material descriptions for G4_ADENINE,

0234     G4_GUANINE, G4_CYTOSINE, G4_THYMINE and G4_DEOXYRIBOSE have been updated

0235     and G4_PHOSPHORIC_ACID has been added.</LI>

0236 <LI>Fixed density effect data for 8 materials, the most significant fixes are

0237     for <TT>G4_Tm</TT>, less relevant for <TT>G4_Be</TT>, <TT>G4_Mg</TT>,

0238     <TT>G4_Fe</TT>, and <TT>G4_Y</TT>.</LI>

0239 </UL>

0240 

0241 <B>Electromagnetic physics</B>

0242 <UL>

0243 <LI>Possibility to choose the model of fluctuations, using either the default

0244     G4UrbanFluctuation, or the alternative G4UniversalFluctuation (more accurate

0245     for thin targets), or G4LossFluctuationDummy (no fluctuations); new UI command
0246     defines model of fluctuations for the full setup; inside user physics lists
0247     it is possible to configure different fluctuation models per G4Region.</LI>
0248 <LI>In G4UrbanMscModel, moving the safety computation before the algoritm of
0249     step limitation in order to save few instructions; should not affect results.
0250     Also, removed the computation and use of rangecut for step limitation,
0251     providing some CPU speedup.</LI>
0252 <LI>New G4TransportationWithMsc specialised tranportation process combined with
0253     multiple-scattering, enabled by default with G4EmStandardPhysics_option1.
0254     May be enabled for any EM physics via the new UI command. Added also 
0255     possibility to enable internal stepping.</LI>
0256 <LI>New model and process for muon pair production by muon.</LI>
0257 <LI>Use G4LinhardSorensenIonModel for GenericIon in physics-lists for
0258     G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
0259     G4EmPenelopePhysics and G4EmLivermorePhysics.</LI>
0260 <LI>Set EPICS2017 cross sections to be the default for Livermore gamma
0261     processes.</LI>
0262 <LI>G4EmFluoDirectory: added new enumerator and introduced directory for
0263     the fluorescence data as a parameter, allowing to use alternative
0264     sets of atomic levels.</LI>
0265 <LI>In optical physics, addded ability to calculate reflection/refraction from
0266     thin film coating.</LI>
0267 <LI>New utility class G4EmDNABuilder, providing instantiation of standard
0268     and DNA processes/models in physics lists. Made G4EmDNAPhysics the base
0269     class for DNA physics constructors. Optimised IRT-syn DNA model.</LI>
0270 <LI>Added parameters in DNA including the chemical molecules and reaction
0271     list involved in the radiolysis.</LI>
0272 <LI>In G4DNA, incorporated model based on RPWBA to transport protons at
0273     <TT>100-300 MeV</TT>. Updated data structure to improve performance of the
0274     mesoscopic model. Also added nitrogen models from PTra code.</LI>
0275 </UL>
0276 
0277 <B>Hadronic physics</B>
0278 <UL>
0279 <LI>New integral method for hadronic processes (to take into account the change
0280     of hadronic cross-sections along a step for charged hadrons due to the
0281     decrease of hadron's kinetic energy by ionization loss.</LI>

0282 <LI>Extended cross-sections for the computation of light anti-nuclei on hydrogen.

0283     Extended nuclear cross-sections also for light hypernuclei and anti-hypernuclei

0284     projectiles.</LI>

0285 <LI>In coherent elastic hadronic model, added extensions for the simulation of

0286     a light anti-hypernucleus projectile elastic scattering on a target nucleus.</LI>

0287 <LI>Extended nuclear elastic and inelastic physics to support light hypernuclei

0288     and anti-hypernuclei projectiles.

0289     Implemented extension of the FTF model to deal with the annihilation of 

0290     light anti-hypernuclei, for all energies; general improvement  of the 

0291     algorithm used to sample kinematical variables.

0292     In coherent elastic hadronic model, added extension for the simulation of

0293     light hypernuclei and anti-hypernuclei projectile elastic scattering on

0294     target nuclei.</LI>

0295 <LI>In hadronic de_excitation, added limitation (A < 30) on decay of unphysical

0296     fragment, allowing for removal of light unphysical states and providing

0297     improved isotope production for the spallation fragments.</LI>

0298 <LI>Improved FTF fragmentation to better describe the production of strange

0299     mesons and baryons in proton-proton interactions, as measured by the

0300     NA61/SHINE Collaboration.

0301     Also improved description of leading particle spectra in meson-nucleon

0302     interactions.</LI>

0303 <LI>Revised the mixing probability between vector mesons (<TT>rho0</TT> and

0304     <TT>omega</TT>), as well as the probabilities for the ratios between

0305     pseudo-scalar and vector meson production for both FTF and QGS string

0306     fragmentations, to improve the description of NA61/SHINE experimental

0307     data.</LI>

0308 <LI>New singleton class G4FTFTunings to allow to specify alternative sets

0309     of FTF parameters, called "tunes"; added also specific UI messenger.

0310     Currently, the feature is mostly meant for use in internal tests,

0311     further study and development; in the future, such tunes may be offered

0312     to users for specific studies.</LI>

0313 <LI>Added option to G4HadronicParameters to control the diffraction 

0314     dissociation for nucleon projectile on target nucleus with baryon number

0315     greater than 10: by default, both projectile and target diffraction are

0316     switched off (but they are both active in the case of target nucleus with

0317     baryon number below or equal to 10; if instead the flag is set to "true",

0318     then both projectile and target diffraction are activated regardless of

0319     the target nucleus).</LI>

0320 <LI>Introduced de-excitation of fragments with lambda inside; extended upper

0321     limit of atomic de-excitation from <TT>Z=100</TT> to <TT>Z=104</TT>.</LI>

0322 <LI>Implemented new process for tau-neutrino hadronic inelastic physics.</LI>

0323 </UL>

0324 

0325 <B>Processes - General</B>

0326 <UL>

0327 <LI>Added flush() method to the fast simulation models, allowing to process the

0328     input buffer of the fast simulation model before the end of an event;

0329     triggered inside the event loop of G4EventManager, when the stack is empty.</LI>

0330 <LI>Added a new utility method to access a process via sub-type.</LI>

0331 <LI>Added extra virtual methods to G4VProcess base class, GetCreatorProcess()

0332     and MinPrimaryEnergy() needed for treating new combined processes.</LI>

0333 <LI>Added new virtual method G4VDiscreteProcess::GetCrossSection()

0334     required in the implementation of integral approach.</LI>

0335 </UL>

0336 

0337 <B>Physics Lists</B>

0338 <UL>

0339 <LI>New G4NeutronGeneralProcess combined process; enabled in QBBC physics-list.</LI>

0340 <LI>In G4EmStandardPhysics_option3, use options providing more accurate 

0341     simulation without loss of CPU performance; significantly improving

0342     fanoCavity results.</LI>

0343 <LI>In G4EmStandardPhysics_option4, for low-energy electron ionisation

0344     the Penelope model is used instead of the Livermore model.</LI>

0345 <LI>For FTFP_BERT and FTFP_INCLXX physics lists, it is possible to enable the

0346     transport of light hypernuclei and anti-hypernuclei, switched off by

0347     default. When enabled, the following interactions are included:

0348     a simplified treatment of weak decay; ionization and multiple scattering

0349     for the charged particles; nuclear elastic scattering; nuclear inelastic

0350     scattering, handled by either the FTF string model or by the INCL

0351     intranuclear cascade model, with a very simplified treatment of nuclear

0352     de-excitation.</LI>

0353 <LI>In G4RadioactiveDecayPhysics time limit for radioactive decay is now

0354     coherent with the limit used in the nuclear de-excitation. The default

0355     limit of <TT>1 ns</TT> may be changed via UI command.</LI>

0356 <LI>All DNA physics lists are now combined with standard EM models. The

0357     default upper energy limit of <TT>300 MeV</TT> may be increased or

0358     decreased. DNA physics may now work with radioactive decay.</LI>

0359 </UL>

0360 

0361 <B>Visualization and Interfaces</B>

0362 <UL>

0363 <LI>ToolsSG drivers for X11, Xt and Qt (short name TSG): now fully functional

0364     and supporting histogram plotting.</LI>

0365 <LI>Fast rendering of complex meshes (special mesh rendering) for most drivers

0366     (see advanced examples ICRP110 and 145).</LI>

0367 <LI>"Twinkling" of volumes when centring (<TT>/vis/viewer/centreOn</TT>, etc.).</LI>

0368 <LI>Cutaway (<TT>/vis/viewer/addCutawayPlane</TT>) now available for all

0369     visualization drivers.</LI>

0370 </UL>

0371 

0372 <B>Examples</B>

0373 <UL>

0374 <LI>New set of extended examples, implementing different setups showing how

0375     to score particle fluences.</LI>

0376 <LI>New example <TT>analysis/AnaEx03</TT>, showing usage of new analysis

0377     commands for file management, writing histograms and n-tuples in a file

0378     multiple times</LI>

0379 <LI>In <TT>medical/dna</TT>, new example <TT>jetcounter</TT>, simulation of

0380     a typical experiment with the Jet Counter nanodosemeter; new example

0381     <TT>moleculardna</TT>, simulation of physics, physico-chemistry and

0382     chemistry processes in DNA geometries.</LI>

0383 <LI>The example <TT>field/field01</TT> now demonstrates how to use the new

0384     G4TransporationParameters class, and shows a full set of ways to control

0385     the parameters for killing looping stable charged particles.</LI>

0386 <LI>eFLASH_radiotherapy: new application simulating the beamline and energy

0387     spectra based on the Triode Electron Gun Equipped ElectronFlash Manufactured

0388     by Sordina Iort Technologies S.p.A. available at the Centro Pisano Flash

0389     Radiotherapy (CPFR) in Pisa.</LI>

0390 <LI>New advanced example implementing a ICRP145 human phantom.</LI>

0391 </UL>

0392 

0393 <A NAME="5."></A>

0394 <HR>

0395 

0396 <!-- ============================================== -->

0397 

0398 <H2>5. Expected effects on physics and computing performance</H2>

0399 

0400 <B>Geometry & Field</B>

0401 <UL>

0402 <LI> A potential CPU time increase could be experienced due to the new maximum

0403      value for relative accuracy of integration of charged particle tracks in 

0404      field (<TT>epsilon_max</TT>). This can be due to extra steps for low

0405      energy electrons or muons moving in (near) vaccuum.

0406      Potential remedies: either use (the more efficient) templated equation

0407      of motion, stepper and driver, or investigate using an alternative driver

0408      which treats long steps (those with a large angle arc of the helix) using

0409      a separate helical method. To obtain it, use the four argument

0410      G4ChordFinder constructor, with a 4<SUP>th</SUP> argument

0411      <TT>stepperId=4</TT>.</LI>

0412 </UL>

0413 

0414 <B>Electromagnetic physics</B>

0415 <UL>

0416 <LI>A new process of muon pair production by muons is available and can be

0417     enabled via UI command or C++ interface through the G4EmExtraPhysics

0418     constructor.</LI>

0419 <LI>G4GammaGeneralProcess is used for gamma physics by default. It brings few

0420     percent speedup depending on geometry setup and type of simulation.</LI>

0421 <LI>Implemented usage of PhotoeffectBelowKShell flag, allowing to enable/disable

0422     photo-electron production below K-shell of an atom; by default this is

0423     enabled.</LI>

0424 </UL>

0425 

0426 <B>Hadronic physics</B>

0427 <UL>

0428 <LI>FTFP_BERT pion showers have slightly (~0.5%) higher energy response and

0429     (~2%) narrower lateral shapes with respect to release 11.0.3. QGSP_BERT

0430     pion showers have slightly (~0.5%) lower energy response and (~2%) wider

0431     lateral shapes. Comparing QGSP_BERT pion showers with those of FTFP_BERT,

0432     they become closer to each other with respect previous versions, with

0433     the QGSP_BERT pion showers still having slightly higher energy response,

0434     significantly wider energy resolution, and longer and narrower shower

0435     shapes with respect to those of FTFP_BERT.</LI>

0436 </UL>

0437 

0438 <P> </P>

0439 <A NAME="6."></A>

0440 <HR>

0441 

0442 <!-- ============================================== -->

0443 

0444 <H2>6. Known Run-Time Problems and Limitations</H2>

0445 For a complete list of outstanding run-time problems and to submit any

0446 problem you may find while running this version of Geant4, please refer

0447 to the

0448 <A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem

0449 Reporting System</A>.

0450 

0451 <P> </P> 

0452 <A NAME="7."></A>

0453 <HR>

0454 

0455 <!-- ============================================== -->

0456 

0457 <H2>7. Compilation Warnings</H2>

0458 

0459 There may be a few compilation warnings on some platforms.

0460 We do not believe that any of these lead to incorrect run-time behaviour.

0461 

0462 <P> </P>

0463 <A NAME="8."></A>

0464 <HR>

0465 

0466 <!-- ============================================== -->

0467 

0468 <H2>8. Geant4 Software License</H2>

0469 

0470 A Software License applies to the Geant4 code.

0471 Users must accept this license in order to use it.<BR>

0472 The details and the list of copyright holders is available at

0473 <A href="http://cern.ch/geant4/license">http://cern.ch/geant4/license</A>

0474 and also in the text file <TT>LICENSE</TT> distributed with the source code.

0475 

0476 <P> </P>

0477 <A NAME="9."></A>

0478 <HR>

0479 

0480 <!-- ============================================== -->

0481 

0482 <H2>9. Detailed list of changes and fixes</H2>

0483 

0484 These are the main new features/fixes included in this release since the

0485 last patched public release (for more detailed lists of fixes/additions,

0486 please refer to the corresponding History files provided in most packages):

0487 

0488 <P> </P>

0489 

0490 <A NAME="conf-notes">

0491 <H3><I>Configuration</I></H3></A>

0492 <UL>

0493 <LI><U>CMake</U>

0494     <UL>

0495     <LI>Added support for Intel-icpx/icx compiler and updated compilation flags

0496         for all Intel compilers.</LI>

0497     <LI>Enable ToolsSG and backends based on use of external libraries (Qt, X11,

0498         Xm, Win32). Backends made non-mutally exclusive; removed 

0499         GEANT4_USE_TOOLSSG public CMake option and flag, since ToolsSG is now

0500         built by default.</LI>

0501     <LI>Fixed bug in Qt3D viasualisation driver activation, based on report

0502         in Users Forum.</LI>

0503     <LI>Avoid setting LD_LIBRARY_PATH configuration on MacOS; adding paths to

0504         DLL into PATH on Windows.</LI>

0505     <LI>Corrected logic error in checking whether module is already composed.</LI>

0506     <LI>Deprecated tags `geant4_define_module`, `geant4_global_library_target`;

0507         decouples the source code organisation and the module/library

0508         composition commands; implementation reduced to emitting a CMake

0509         warning message on what to replace with.</LI>

0510     <LI>Updated CMake build scripts in all modules, by replacing

0511         <TT>geant4_global_library_target</TT> with direct file inclusion and

0512         call to <TT>geant4_add_category</TT> to define library build from source

0513         modules.</LI>

0514     <LI>Reorganised DLL import/export flags for single-module categories.</LI>

0515     <LI>Set default value of GEANT4_BUILD_BUILTIN_BACKTRACE to OFF.</LI>

0516     <LI>Do not use CMAKE_VERBOSE_MAKEFILE when building tests.</LI>

0517     <LI>Rationalized declaration and use of internal builds of required

0518         externals CLHEP, zlib, expat, PTL and tools libraries.</LI>

0519     <LI>Support declaration and composition of header-only modules and

0520         libraries.</LI>

0521     <LI>New geant4_module_check.py script to provide convenient interface for

0522         developers and testing to check module/library cycles and dependency

0523         inconsistencies. Filter out visualization driver modules from consistency

0524         check for visualization/management module. Filter out C++ filesystem

0525         library from checks.</LI>

0526     <LI>Adding geant4_module_sources command to enable appending of

0527         headers/sources to a module after creation.</LI>

0528     <LI>Providing GEANT4_BUILD_ENABLE_ASSERTIONS option to enable assert() in

0529         all release build modes (Release, RelWithDebInfo, MinSizeRel).</LI>

0530     <LI>Forward `CMAKE_<LANG>_FLAGS[_<MODE>]` flags to `geant4_add_test` so that

0531         a consistent set is used through the project.</LI>

0532     <LI>Promote INTERFACE module properties to PUBLIC when merging them into a

0533         non-INTERFACE final target.</LI>

0534     <LI>Removed retired <TT>tasking</TT> module and library from configuration

0535         files.</LI>

0536     <LI>Removed deprecated functions in G4DeveloperAPI and fixed typo that

0537         prevented installation of headers.</LI>

0538     <LI>Removed obsolete and now longer built G4gl2ps target.</LI>

0539     <LI>Allow library composition to be overriden in developer builds.</LI>

0540     <LI>Do not use <TT>readlink -f</TT> to support pre-Monterey macOS systems.</LI>

0541     <LI>Adding -Og to GNU/Clang default debug flags.</LI>

0542     <LI>Copy .clang-tidy file to build directory to assist run-clang-tidy

0543         reporting.</LI>

0544     <LI>In G4ConfigurePkgConfigHelpers.cmake, geant4-config.in for geant4-config

0545         generation: adding new flag <TT>--features</TT> (add vtk and qt3d features);

0546         allow use of md5sun if openssl missing; canonicalise prefix path.

0547     <LI>Added options --sh and --csh to geant4-config script.</LI>

0548     <LI>In G4ConfigureGNUMakeHelpers.cmake for geant4.[c]sh, geant4.bat

0549         generation: allow full path source in zsh, sh; unset local variables at

0550         the end; introducing GEANT4_DATA_DIR, with all data-set paths relative

0551         to this.</LI>

0552     <LI>Added commands for working with categories analagous to module commands.</LI>

0553     <LI>Added required configuration to be able to generate DEB/RPM packages

0554         with CPack.</LI>

0555     <LI>Use more standard install location for CMake files.</LI>

0556     <LI>Remove version from default installation directories.</LI>

0557     <LI>Rationalised interlinked PTL/TBB build options.</LI>

0558     <LI>G4ConfigureGNUMakeHelpers.cmake (geant4.[c]sh, geant4.bat generation):

0559         use the environment variable GEANT4_DATA_DIR as top data directory; the

0560         environment variables for individual dataset commented in scripts.</LI>

0561     <LI>Added source validation exception for G4FindDataDir generated header.</LI>

0562     <LI>Added <TT>-diag-disable=10441</TT> CXX option to Intel compilers, to

0563         disable icc compiler deprecation message.</LI>

0564     <LI>Removed Geant4Py from toolkit build, pointing users to upstream repository

0565         when setting GEANT4_USE_PYTHON in CMake configuration.</LI>

0566     <LI>Keep file timestamps from unpacked data libraries in CMake 3.24 and

0567         newer.</LI>

0568     <LI>Fix issue in Qt3D activation as reported on the Users Forum.</LI>

0569     <LI>Set CLHEP minimum version to 2.4.6.0 and VecGeom 1.2.0.</LI>

0570     <LI>New data sets G4EMLOW-8.2 and G4NDL-4.7 with new ThermalScattering data.</LI>

0571     <LI>Updated tag-IDs for 11.1.</LI>

0572     </UL></LI>

0573 <LI><U>GNUMake</U>

0574     <UL>

0575     <LI>Added Linux-icx.gmk configuration for Intel OneAPI DPC++ compiler.</LI>

0576         Updated compilation flags for Intel icc/icx compilers.</LI>

0577     <LI>Enable <TT>-pthread</TT> only for MT builds in other configurations.</LI>

0578     <LI>Retired <TT>tasking</TT> category and library from build.</LI>

0579     <LI>Removed obsolete G4gl2ps module and library from build.</LI>

0580     <LI>Added <TT>--gcc-toolchain</TT> option for CXX and CC in Linux-clang.</LI>

0581     <LI>Added <TT>-diag-disable=10441</TT> option to Linux-icc, to disable

0582         Intel/icc compiler deprecation message.</LI>

0583     <LI>Silence ld warnings in Darwin setups.</LI>

0584     <LI>G4VIS_BUILD.gmk, G4VIS_USE.gmk: handle vis/ToolsSG by default.</LI>

0585     <LI>Replaced use of deprecated sprintf() with snprintf() in liblist.c tool.

0586         Fixed gcc compilation warnings.</LI>

0587    </UL></LI>

0588 </UL>

0589 

0590 <A NAME="ana-notes">

0591 <H3><I>Analysis</I></H3></A>

0592 <UL>

0593 <LI>Implemented support for writing analysis objects (histograms, profiles,

0594     n-tuples) in a file multiple times: with Root output type, the object

0595     cycle number is attributed automatically; with other output types that

0596     do not support object cycles, the object name is appended with

0597     <TT>_vN</TT>, where <TT>N</TT> is the number of the write cycle, when

0598     the object is written more than once; no extension is added when the

0599     object is written for the first time (cycle 0).</LI>

0600 <LI>Added new UI commands for analysis file management, supporting also multiple

0601     write with/without calling write and/or reset in between two runs:

0602     <TT>/analysis/openFile, write, closeFile</TT> and <TT>reset</TT>

0603     <TT>/analysis/setDefaultFileType</TT>.</LI>

0604 <LI>Implemented new analysis manager List functions and associated commands:

0605     <TT>/analysis/list [onlyIfActive]</TT>,

0606     <TT>/analysis/xy/list  [onlyIfActive]</TT> where

0607     <TT>xy = h1, h2, h3, p1, p2, ntuple</TT>.</LI>

0608 <LI>Added UI commands for visualization: <TT>/analysis/hn|pn/getVector</TT>.</LI>

0609 <LI><U>Internal changes</U>:

0610     <UL>

0611     <LI>Replaced G4TNtupleDescription, G4RootPNtupleDescription structures with

0612         classes more suitable for adding members for handling n-tuple cycles.</LI>

0613     <LI>Changed namespace for g4tools code from <TT>tools</TT> to <TT>toolx</TT>

0614         for externals.</LI>

0615     <LI>Added G4RootRFile type = a tuple for the Root read file including its

0616         directories, analogue to G4RootRFile for Root output, used now in the

0617         G4RootRfileManager::fRFiles map instead of tools::rroot::file.

0618         This allows deleting file directories in the class destructor, and

0619         should fix a reported Coverity defect.</LI>

0620     <LI>Refactored analysis manager methods for file handling from the output

0621         specific managers in the common implementation in G4ToolsAnalysisManger. 

0622         Besides code simplification, this guaranties identical behaviour with

0623         generic analysis manager.</LI>

0624     <LI>Introduced a common implementation for histogram/profiles manager.<BR>

0625         New classes:

0626         <UL>

0627         <LI>G4VTBaseHnManager<DIM> - replaces G4VHn|PnManager.</LI>

0628         <LI>G4THnToolsManager<DIM,HT> - replaces G4H*|P*Manager classes.</LI>

0629         <LI>G4THnMessenger - replaces G4H*|P*Messenger class.</LI>

0630         <LI>G4HnDimension - helper type to manipulate ndim, xmin, xmake

0631             parameters.</LI>

0632         </UL>

0633         Updated classes:

0634         <UL>

0635         <LI>G4THnManager: added a vector of pairs of histogram and information

0636             as a data member to simplify the access when both objects are used.</LI>

0637         <LI>Updated HnInformation structures functions to use compacted

0638             parameters.</LI>

0639         <LI>Updated functions in G4AnalysisUtilities.</LI>

0640         <LI>In all messenger classes, replaced the usage of the analysis

0641             messenger helper with private helper functions.</LI>

0642         <LI>G4Plot* classes moved from <TT>management</TT> in <TT>hntools</TT>.</LI>

0643         </UL>

0644         Removed classes:

0645         <UL>

0646         <LI>G4VH1Manager, etc. for H2, H3, P1, P2.</LI>

0647         <LI>G4H1Manager, etc. for H2, H3, P1, P2.</LI>

0648         <LI>G4H1Messenger, etc. for H2, H3, P1, P2.</LI>

0649         <LI>G4ToolsAnalysisMassenger, G4FileMessenger.</LI>

0650         <LI>G4BaseHistoUtilities.</LI>

0651         </UL></LI>

0652     <LI>Use geant4_category_modules in CMake script to optionally add G4hdf5

0653         module to category.</LI>

0654     </UL></LI>

0655 <LI><U>Fixes</U>:

0656     <UL>

0657     <LI>Fix in applying units in <TT>create</TT> and <TT>set</TT> UI

0658         commands.</LI>

0659     <LI>Fixes in deleting files: do not delete (not empty) main n-tuple files

0660         with generic analysis manager, delete empty n-tuple csv and xml files

0661         created on the main thread.

0662         Fix in deleting files (root): do not delete the final (merged) file

0663         when only n-tuples are present.</LI>

0664     <LI>Added a protection against nullptr in

0665         G4VAnalysisManager::GetNofNtuples(). Addressing problem report

0666         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2518">#2518</A>.</LI>

0667     <LI>Applied clang-tidy fixes.</LI>

0668     <LI>Fixed compilation warnings on gcc-12.</LI>

0669     <LI>Fixed compilation warnings for implicit type conversions on

0670         macOS/XCode 14.1.</LI>

0671     <LI>Fixed reported Coverity defects.</LI>

0672     </UL></LI>

0673 </UL>

0674 

0675 <A NAME="digits-notes">

0676 <H3><I>Digitization &amp; Hits</I></H3></A>

0677 <UL>

0678 <LI>Added support for ntuple merging in G4TScoreNtupleWriter; it can be

0679     activated with G4TScoreNtupleWriter::SetNtupleMerging().</LI>

0680 <LI>Canonicalise implementations of custom new() and delete() operators that

0681     use G4Allocator. Removed un-needed/duplicated checks on static allocator

0682     creation in member functions.</LI>

0683 <LI>Applying standard clang-tidy plus range-based for and Boolean

0684     simplification fixes in scoring classes. General code tidy and modernization:

0685     use consistent, grouped ordering of public-protected-private members; do not

0686     override virtual members when no difference to base class implementation; use

0687     delegating constructors to remove duplicated code; use C++ Boolean

0688     true/false keywords.</LI>

0689 <LI>G4VScoringMesh: fixed reported Coverity defects for use of <TT>auto&</TT>.

0690     Some minor code cleanup.</LI>

0691 <LI>Removed large commented-out blocks of dead codein <TT>utils</TT> module.</LI>

0692 <LI>Fixed compilation warnings for implicit type conversions on

0693     macOS/XCode 14.1.</LI>

0694 </UL>

0695 

0696 <A NAME="emstd-notes">

0697 <H3><I>Electromagnetic Processes</I></H3></A>

0698 <UL>

0699 <LI>Fixed compilation warnings for implicit type conversions on

0700     macOS/XCode 14.1.</LI>

0701 <LI>Resolved internal sub-modules dependency inconsistencies.</LI>

0702 <LI><B>Adjoint</B>:

0703     <UL>

0704     <LI>G4AdjointComptonModel, G4AdjointCSManager: use updated interface

0705         to cross-section from G4VEmProcess.</LI>

0706     <LI>G4AdjointBremsstrahlungModel: use updated interface to G4EmModelManager.</LI>

0707     <LI>Fixed defects reported by Coverity in G4AdjointCSManager, to use

0708         <TT>auto&</TT>.</LI>

0709     </UL></LI>

0710 <LI><B>DNA</B>:

0711     <UL>

0712     <LI>Added G4DNAPolyNucleotideReactionProcess and G4VDNAHitModel classes for

0713         DNA damage applications.</LI>

0714     <LI>Added nitrogen models from PTra code.</LI>

0715     <LI>Prefer pointer to <TT>const G4Material</TT> where possible.

0716         Removed useless <TT>const_cast</TT> of G4VSensitiveDetector.</LI>

0717     <LI>Optimised IRT-syn model, use reaction radius and reaction type from the

0718         reaction table.</LI>

0719     <LI>Fixed issue in IRT model: if the first IRTSampling won't give any reactions,
0720         stop the simulation; no StepProcessor set.
0721         Minor correction of IRT-syn model (chemistry): contact reactions should not
0722         happen after <TT>1 ps</TT>.</LI>
0723     <LI>Deleted G4VReactionType, G4DNAReactionTypeManager, G4DNAIRT_geometries,
0724         G4DNATotallyDiffusionControlled and G4DNAPartiallyDiffusionControlled.</LI>
0725     <LI>G4ITTransportation: Make PrepareState() more function-like, expect
0726         semicolon.</LI>
0727     <LI>G4DNAPolyNucleotideReactionProcess: some code restructuring.</LI>
0728     <LI>Added condition of water material for the OUTSIDE_OF_MOTHER_VOLUME
0729         warning in G4DNAMolecularDissociation::DecayIt().</LI>
0730     <LI>Added protection in G4DNACPA100IonisationModel for cumulative
0731         cross-section interpolation.</LI>
0732     <LI>Added protection for HighEnergyLimit/LowEnergyLimit in
0733         G4DNARPWBAIonisationModel and G4DNARPWBAExcitationModel.</LI>
0734     <LI>Added flag <TT>OctreeFinder</TT> in IRT_syn's Initialize() method.</LI>

0735     <LI>Added parameters including the chemical molecules and reaction list

0736         involved in the radiolysis.</LI>

0737     <LI>Modified the macro in G4Molecule and G4ITType for linker problems on

0738         Windows.</LI>

0739     <LI>Save local instances for recurrent access to particle definition in 

0740         G4DNAMillerGreenExcitationModel, G4DNARuddIonisationExtendedModel and

0741         G4DNARuddIonisationModel.</LI>

0742     <LI>Revised code to use G4Pow and G4Log consistently.</LI>

0743     <LI>In G4DNARuddIonisationExtendedModel, do not include ions that are not

0744         defined in G4DNAGenericIonsManager; corrected DNA ion definitions.<BR>

0745         Fixed common work between DNA physics and radioactive decay module;

0746         modification of the model scaling. Relation to the carbon ion is used

0747         for any ion, which has no data; low-energy limit is used now more

0748         correctly; all ions are stopped but not killed, as they may have

0749         radioactive decay at rest.</LI>

0750     <LI>Fix in G4KDTree algorithm. Addressing problem report

0751         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2235">#2235</A>.

0752         Minor code cleanup.</LI>

0753     <LI>Added G4VUserBrownianAction class, used in G4DNABrownianTransportation

0754         and in G4DNAMolecularDissociation.</LI>

0755     <LI>Use <TT>int64_t</TT> for molecules width integer types.</LI>

0756     <LI>Added <TT>fResetScavenger</TT> data member in G4SchedulerMessenger.</LI>

0757     <LI>Incorporation of model based on RPWBA to transport protons

0758         at <TT>100-300 MeV</TT>.</LI>

0759     <LI>Added G4DNARPWBAExcitationModel and G4DNARPWBAIonisationModel.</LI>

0760     <LI>Updated data structure to improve performance of the mesoscopic model.</LI>

0761     <LI>Change scavenging filter of the IRT beyond <TT>1 us</TT>.</LI>

0762     <LI>Incorporation of models based on RPWBA (G4DNARPWBAExcitationModel and

0763         G4DNARPWBAIonisationModel) to transport protons at <TT>100-300 MeV</TT>.</LI>

0764     <LI>Updated data structure to improve performance of the mesoscopic

0765         model.</LI>

0766     <LI>Use <TT>thread-local</TT> flag in G4VMoleculeCounter.</LI>

0767     <LI>Replaced <TT>std::getenv()</TT> calls for data variables with

0768         G4FindDataDir() in data readers.

0769     <LI>G4DNAUeharaScreenedRutherfordElasticModel: code cleanup; introduced 

0770         low and high energy limit for the model; removed misleading

0771         G4Exception.</LI>

0772     <LI>G4DNAExcitation, G4DNAVibExcitation, G4DNARotExcitation: class cleanup

0773         according to the recent G4VEmProcess base class; model headers are moved

0774         to source; introduced C++11 features.</LI>

0775     <LI>Defining G4CT_MAX_COUNT for changing "compile time counter" depth to fix

0776         build errors on NVHPC compiler.</LI>

0777     <LI>Added missing headers inclusions for self-consistency.</LI>

0778     <LI>Fixed compilation warnings on Intel/icx compiler for variables set

0779         but not used in G4ITNavigator2.</LI>

0780     <LI>Fixed Coverity reported defects.</LI>

0781     </UL></LI>

0782 <LI><B>High Energy</B>

0783     <UL>

0784     <LI>G4hPairProduction, G4hPairProductionModel: removed not needed methods.</LI>

0785     </UL></LI>

0786 <LI><B>Low Energy</B>

0787     <UL>

0788     <LI>G4LivermoreGammaConversionModel, G4LivermorePhotoElectricModel and

0789         G4LivermoreGammaConversion5DModel: set Spline interpolation for EPDL97.</LI>

0790     <LI>G4Rayleigh scattering moved boundary between low and high energy

0791         table from <TT>100 keV</TT> to <TT>150 keV</TT> to be coherent with G4GammaGeneralProcess.</LI>

0792     <LI>G4UAtomicDeexcitation, G4AtomicTransitionManager, G4ShellData, G4AugerData: 

0793         added de-excitation for heavy elements <TT>Z=101-104</TT>; removed

0794         commented lines; improved comments; improved code format;

0795         use pre-increment.</LI>

0796     <LI>G4AtomicTransitionManager: read fluorescence data using new interface

0797         G4EmParameters::FluoDirectory().</LI>

0798     <LI>G4PhotoEffectAngularGeneratorPolarized: include factor of 1/8 for L-shell

0799         differential cross-section. Addressing problem report

0800         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2293">#2293</A>.</LI>

0801     <LI>G4LivermoreComptonModel: minor clean-up.</LI>

0802     <LI>Fixed use of potential uninitialised pointer in

0803         G4AtomicDeexcitation::GenerateParticles(..).</LI>

0804     <LI>Replaced <TT>getenv()</TT> calls for data variables with G4FindDataDir()

0805         in data readers.</LI>

0806     <LI>Fixed exception printout in Livermore models.</LI>

0807     <LI>Fixed compilation warnings on Intel/icx compiler for variables set

0808         but not used in G4BoldyshevTripletModel::SampleSecondaries() and in

0809         G4Generator2BN::SampleDirection().</LI>

0810     <LI>Fixed Coverity warnings.</LI>

0811     <LI>Removed Latin-1 characters from description in banners.</LI>

0812     </UL></LI>

0813 <LI><B>Muons</B>

0814     <UL>

0815     <LI>G4MuonToMuonPairProductionModel, G4MuonToMuonPairProduction: new 

0816         model and process for muon pair production by muon.</LI>

0817     <LI>G4MuIonisation: added selection of the model for energy loss

0818         fluctuations. Use G4MuBetheBloch model above <TT>0.2 MeV</TT>.</LI>

0819     <LI>G4MuBremsstrahlungModel: moved low energy limit from <TT>1 GeV</TT>

0820         to <TT>100 MeV</TT>.</LI>

0821     <LI>G4MuPairProductionModel: moved low energy limit from <TT>1 GeV</TT>

0822         to <TT>850 MeV</TT>.</LI>

0823         Some code cleanup: formatting, removed extra space lines.</LI>

0824     <LI>G4MuPairProductionModel, G4MuPairProduction: reorganised methods;

0825         use G4lrint.</LI>

0826     </UL></LI>

0827 <LI><B>Standard</B>

0828     <UL>

0829     <LI>G4UrbanMscModel: moving safety computation before step limitation

0830         algorithms in order to save few instructions; should not affect results.

0831         Optimised some code. Added two extra class members. Improved code comments.

0832         Extended cache data with 5 variables for positrons;

0833         removed unused headers; minor saving of instructions.<BR>

0834         Removed computation and use of rangecut for step limitation: this change

0835         affects only EM option3 physics, making results closer to option4 and

0836         providing some CPU speedup.</LI>

0837     <LI>Fixed stopping power parameterisation below lowest energy point; apply

0838         unit factor to material vector and not to data inside each element vector.

0839         Implemented data tables for materials and not material-cut-couples;

0840         provided non-zero dEdx for ions with <TT>Z > 80</TT>.

0841         Included debug printouts protected by verbosity.</LI>

0842     <LI>G4eIonisation, G4hIonisation, G4ionIonisation: added selection of the

0843         model for energy loss fluctuations.</LI>

0844     <LI>G4hIonisation, G4ionIonisation: updated initialisation to be coherent with

0845         possible creation of combined DNA/standard physics-list: do not modify low

0846         energy limit for a model; define high energy limit considering high energy

0847         limit set in the physics-list and the mass of the particle.</LI>

0848     <LI>G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel: use the

0849         same computation of effective charge and energy at a step inside method

0850         CorrectionAlongStep(..); improved range of ions in the default EM physics

0851         configuration.</LI>

0852     <LI>G4AtimaEnergyLossModel, G4BetheBlochModel, G4BraggIonModel,

0853         G4LindhardSorensenIonModel: do not set effective charge to the model of

0854         energy loss fluctuation inside CorrectionAlongStep(..) method, it is

0855         done by G4VEnergyLossProcess. Addressing problem report

0856         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2495">#2495</A>.</LI>

0857     <LI>G4LindhardSorensenIonModel: fixed CorrectionAlongStep() computations

0858         at low energy.</LI>

0859     <LI>G4PairProductionRelModel, G4eBremsstrahlungRelModel,

0860         G4PairProductionRelModel and G4eBremsstrahlungRelModel: added inclusion

0861         of headers of G4Exp, G4Pow to to make translation unit self-consistent.</LI>

0862     <LI>In G4WentzelVIRelModel, G4WentzelOKandVIxSection,

0863         G4LindhardSorensenIonModel and G4ICRU49NuclearStoppingModel, use

0864         G4AutoLock.</LI>

0865     <LI>G4PEEffectFluoModel: implemented usage of <TT>PhotoeffectBelowKShell</TT>

0866         flag, allowing to enable/disable photo-electron production below K-shell

0867         of an atom; by default this is enabled, so it affects the results; if 

0868         disabled, some CPU improvement may be expected.</LI>

0869     <LI>G4BetheHeitler5DModel: do not instantiate G4MuonPlus, G4MuonMinus inside

0870         the model to allow usage of this class in physics lists without muons.</LI>

0871     <LI>G4eBremsstrahlung, G4hIonisation: improved initialisation.</LI>

0872     <LI>G4eBremsstrahlungRelModel, G4eBremParametrizedModel: code cosmetics.</LI>

0873     <LI>Run clang-tidy, use <TT>nullptr</TT>, default and auto keywords; removed

0874         unneeded <TT>nullptr</TT> checks when deleting.</LI>

0875     <LI>Replaced <TT>getenv()</TT> calls for data variables with G4FindDataDir()

0876         in data readers.</LI>

0877     <LI>Requires data-set G4EMLOW-8.2.</LI>

0878     </UL></LI>

0879 <LI><B>Utils</B>

0880     <UL>

0881     <LI>New G4TransportationWithMsc specialised transportation process; added

0882         related flag to G4EmParameters.</LI>

0883     <LI>G4EmConfigurator implemented model per region for

0884         G4TransportationWithMsc. Updated interfaces.</LI>

0885     <LI>G4EmTableType: added third peak energy in the data structure needed for

0886         Bremsstrahlung.</LI>

0887     <LI>G4VEnergyLossProcess: fill data structure for Bremsstrahlung type of

0888         cross-section only in the master thread; do not repeat it in each thread;

0889         removed ineffective cache from run time computation of cross-section.</LI>

0890     <LI>G4EmParameters, G4EmParametersMessenger: added extra Boolean flag for

0891         sampling of photoeffect below K-shell, which was introduced in ATLAS.</LI>

0892     <LI>G4EmParametersMessenger: improved instantiation order of UI directories;

0893         directories are created only in the master thread.

0894         Restored forgotten UI command to set number of bins per decade.</LI>

0895     <LI>G4EmModelManager: updated interface to Initialise() method;

0896         removed obsolete method Update().</LI>

0897     <LI>G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering: use updated

0898         method of G4EmModelManager.</LI>

0899     <LI>G4EmParametersMessenger: restored UI command

0900         <TT>/process/em/integral</TT>.</LI>

0901     <LI>G4VEmProcess: updated methods to access cross-section at run time;

0902         implemented new virtual method GetCrossSection(); removed unused

0903         methods.</LI>

0904     <LI>G4EmProcessSubType: added extra types for muon pair production by muons

0905         and dark particles Bremsstrahlung.</LI>

0906     <LI>G4EmCalculator: use updated method from G4VEmProcess.<BR>

0907         Updated computation of ion dEdx. Addressing problem report

0908         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2495">#2495</A>.<BR>

0909         Added extra flag <TT>applySmoothing</TT> to enable/disable smoothing

0910         algorithms to connect low-energy and high energy models; code clean-up.

0911         Fixed variable shadowing.</LI>

0912     <LI>G4LossTableManager: fixed selection of energy loss process used by

0913         G4EmCalculator.</LI>

0914     <LI>G4EmUtility: a new utility class.</LI>

0915     <LI>G4VMultipleScattering: updated arguments for AddEmModel(..),

0916         SetEmModel(..), and EmModel(..) methods from G4VEmModel* to

0917         G4VMscModel*. Removed two virtual calls.</LI>

0918     <LI>G4VMscModel: added Boolean flag <TT>useSpline</TT> and setter to

0919         allow choosing Spline for transport cross-section.</LI>

0920     <LI>G4LowEnergyEmProcessSubType: added sub-type ID (66) for DNAScavenger

0921         process.</LI>

0922     <LI>G4EmTableUtil: new utility to perform common computations at

0923         initialisation.</LI>

0924     <LI>G4VEmModel, G4EmCalculator, G4EmConfigurator: use G4EmUtility.</LI>

0925     <LI>G4VEmModel, G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering

0926         and G4LossTableManager: use new utiity methods; updated sampling of

0927         random elements in compounds and random isotopes; code cleanup.</LI>

0928     <LI>G4EmLowEParameters: change default photon database to EPICS2017.</LI>

0929     <LI>G4VEmProcess, G4VEnergyLossProcess: for integral method, use master

0930         thread cross-section type and pointers directly; simplifying

0931         initialisation.</LI>

0932     <LI>G4EmParameters: update flag to tri-state for enabling it.

0933         Added extra parameter: type of fluctuation model.</LI>

0934     <LI>G4EmFluoDirectory: added new enumerator.</LI>

0935     <LI>G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger:

0936         introduced directory for the fluorescence data as a parameter, added 

0937         new UI command, improved information printout.</LI>

0938     <LI>G4EmFluoDirectory: added new enumerator.</LI>

0939     <LI>G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger:

0940         introduced directory for the fluorescence data as a parameter;

0941         added new UI command; improved information printout.</LI>

0942     <LI>G4EmParametersMessenger: added extra UI command to define fluctuations

0943         model.</LI>

0944     <LI>G4VEnergyLossProcess: moved out common computations to G4EmTableUtil;

0945         use G4EmDataHandler and removed unused headers/methods. Fixed trivial

0946         Coverity warnings. For ions, compute effective charge pre-step and

0947         set this value to the model of energy loss fluctuations.</LI>

0948     <LI>G4VEnergyLossProcess, G4EmDataHandler: improved StorePhysicsTable(..)

0949         method and debug printouts.</LI>

0950     <LI>Code cleanup with clang-tidy: use default constructors; <TT>nullptr</TT>,

0951         <TT>auto</TT> and <TT>using</TT> keywords.</LI>

0952     </UL>

0953 <LI><B>Xrays</B>

0954     <UL>

0955     <LI>G4VXTRenergyLoss: fixed bug in the angle range for fMaxThetaTR.</LI>

0956     <LI>Code cleanup with clang-tidy: use default constructors; <TT>nullptr</TT>

0957         and <TT>auto</TT> keywords.</LI>

0958     </UL></LI>

0959 </UL>

0960 

0961 <A NAME="errprop-notes">

0962 <H3><I>Error Propagation</I></H3></A>

0963 <UL>

0964 <LI>Fixed compilation warnings for implicit type conversions on

0965     macOS/XCode 14.1.</LI>

0966 </UL>

0967 

0968 <A NAME="event-notes">

0969 <H3><I>Event</I></H3></A>

0970 <UL>

0971 <LI>Added call to G4GlobalFastSimulationManager::Flush() method in the event

0972     loop.</LI>

0973 <LI>Canonicalise implementations of custom new() and delete() operators that

0974     use G4Allocator.</LI>

0975 <LI>Fixed compilation warnings for implicit type conversions on

0976     macOS/XCode 14.1.</LI>

0977 </UL>

0978 

0979 <A NAME="externals-notes">

0980 <H3><I>Externals</I></H3></A>

0981 <UL>

0982 <LI>Rationalising externals builds to decouple them from the core

0983     module/category definitions.</LI>

0984 <LI><U>CLHEP</U>:

0985     <UL>

0986     <LI>Updated to CLHEP version 2.4.6.2.</LI>

0987     <LI>Resolved gcc-12 warnings in Evaluator source.</LI>

0988     <LI>Fixed inconsistencies in Evaluator internal set of units.</LI>

0989     <LI>Add <TT>cstdint</TT> header where <TT>uint32_t</TT> and

0990         <TT>uint64_t</TT> are used.</LI>

0991     <LI>Applied patch for building on MinGW.

0992         Based on <A HREF="https://github.com/Geant4/geant4/pull/51">GitHub PR#51</A>.</LI>

0993     </UL></LI>

0994 <LI><U>Expat</U>:

0995     <UL>

0996     <LI>Updated source and build scripts to expat-2.4.9 sources from upstream.</LI>

0997     </UL></LI>

0998 <LI><U>G4tools</U>:

0999     <UL>

1000     <LI>Updated to version 6.1.0</LI>

1001     <LI>Fixed compilation warnings on Intel compiler and Coverity defects.

1002     <LI>Use thread-safe version of gl2ps-1.4.2.

1003         In gl2psPrintPostScriptPixmap(): pass greyscale, nbit in arguments

1004         to avoid a dead code issue; in gl2psPDFgroupListInit(), fixed issue

1005         for uninitialized pointer read; removed commented out code.</LI>

1006     <LI>sg/text: corrections in update_sg() due to copy-paste error.</LI>

1007     <LI>Moved g4tools code externals from <TT>tools</TT> to <TT>toolx</TT>

1008         module. Concerns code related to Qt, Windows, X11, Xt, OpenGL, hdf5,

1009         expat, mpi, zlib.</LI>

1010     <LI>In toolx/X11/base_session, check in show_window() that the window is

1011         not already mapped.</LI>

1012     <LI>Fixed compilation warnings on Intel compilers.</LI>

1013     <LI>Applied patch for building on MinGW.

1014         Based on <A HREF="https://github.com/Geant4/geant4/pull/51">GitHub PR#51</A>.</LI>

1015     </UL></LI>

1016 <LI><U>PTL</U>:

1017     <UL>

1018     <LI>Updated PTL to version v2.3.3.</LI>

1019     <LI>New/improved support for initialization and finalization routines

1020         in ThreadPool.</LI>

1021     <LI>Threading: fix in GetNumberOfPhysicalCpus(), to never return zero.</LI>

1022     <LI>Fixed verbose message to cerr to be protected within verbosity level.</LI>

1023     <LI>Fixes for C++20 compilation warnings and updates to build scripts.</LI>

1024     <LI>Removed outdated TiMemory implementation.</LI>

1025     <LI>Make copy explicit in range loop.</LI>

1026     <LI>General code cleanup/tidy.</LI>

1027     <LI>Minor fixes for macOS/Clang and use as a subproject.</LI>

1028     <LI>Updated CMake install directory for PTL to match recent changes

1029         in default install directories in Geant4.</LI>

1030     <LI>Use any existing value of PTL_SANITIZER_TYPE to set the cache value

1031         to prevent override.</LI>

1032     <LI>Fixed compilation warnings for implicit type conversions on

1033         macOS/XCode 14.1.</LI>

1034     <LI>Coverity fixes.</LI>

1035     </UL></LI>

1036 <LI><U>ZLIB</U>:

1037     <UL>

1038     <LI>Updated source to zlib-1.2.12 sources from upstream, retaining prior

1039         Geant4 patches.</LI>

1040     <LI>Suppressed deprecated-non-prototype warnings for compilers that check

1041         this.</LI>

1042     <LI>Applied patch for Zlib, to address Valgrind warnings.

1043         Based on

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

1045     </UL></LI>

1046 </UL>

1047 

1048 <A NAME="g3tog4-notes">

1049 <H3><I>G3toG4</I></H3></A>

1050 <UL>

1051 <LI>Replaced sprintf with std::to_string to address macOS 13 deprecation

1052     warnings.</LI>

1053 <LI>Fixed compilation warnings on Intel/icc compiler for deprecated conversion

1054     of string literal to char* in G3EleTable.</LI>

1055 <LI>Fixed compilation warning on Intel/icx compiler for variable set

1056     but not used in clparse source code.</LI>

1057 <LI>Fixed compilation warnings for implicit type conversions on

1058     macOS/XCode 14.1.</LI>

1059 </UL>

1060 

1061 <A NAME="gen-notes">

1062 <H3><I>General Processes</I></H3></A>

1063 <UL>

1064 <LI>Fixed compilation warnings for implicit type conversions on

1065     macOS/XCode 14.1.</LI>

1066 <LI><B>Biasing</B>

1067     <UL>

1068     <LI>Fixed defects reported by Coverity in G4BOptnLeadingParticle, to use

1069         <TT>auto&</TT>.</LI>

1070     <LI>Fixed compilation warning on Intel/icx compiler for variable set but not

1071         used in G4GeometrySampler.</LI>

1072     </UL></LI>

1073 <LI><B>Cuts</B>

1074     <UL>

1075     <LI>G4ProductionCuts: removed unnecessary thread-local variables; code clean-up

1076         and simplified.</LI>

1077     </UL></LI>

1078 <LI><B>Management</B>

1079     <UL>

1080     <LI>G4VDiscreteProcess: added virtual method GetCrossSection()

1081         needed for integral approach both in hadronics and EM modules.

1082         Added virtual method MinPrimaryEnergy(..).</LI>

1083     <LI>G4VRestDiscreteProcess, G4VRestProcess, G4VRestContinuesDiscreteProcess:

1084         added protection against arithmetic operations with DBL_MAX.

1085         Addressing problem report

1086         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2452">#2452</A>.</LI>

1087     <LI>G4VProcess: introduced new virtual method GetCreatorProcess().</LI>

1088     <LI>Fixed compilation warnings on Intel/icx compiler for variable set

1089         but not used in G4ProcessTableMessenger.</LI>

1090     </UL></LI>

1091 <LI><B>Optical</B>

1092     <UL>

1093     <LI>G4OpBoundaryProcess: calculating reflection/refraction from thin film

1094         coating.<BR>

1095         Issuing warning when step size is slightly larger than geometry

1096         tolerance, in which case boundary scattering may be incorrect.

1097         Addressing problem report

1098         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2510">#2510</A>.</LI>

1099     <LI>Code cleanup with clang-tidy: use default constructors; auto keyword;

1100         remove <TT>void</TT> function argument; don't check for <TT>nullptr</TT>
1101         before delete; use operator==() for string comparisons.
1102         Prefer pointer to <TT>const G4Material</TT> where possible.</LI>
1103     </UL></LI>
1104 <LI><B>Parameterisation</B>
1105     <UL>
1106     <LI>Added flush() method to the fast simulation model. This method allows to
1107         process the input buffer of the fast simulation model before the end of an
1108         event. It is used when particles are grouped together before the
1109         processing. The 'flush' is triggered inside the event loop of
1110         G4EventManager, when the stack is empty. The fast simulation model may
1111         add secondaries to the stack, which will then be processed by Geant4.</LI>
1112     <LI>G4FastStep: code clean-up; delete copy constructor and operator=().</LI>
1113     <LI>G4FastSimHitMaker: making it compatible to command-based scorer.</LI>
1114     </UL></LI>
1115 <LI><B>Solid State</B>
1116     <UL>
1117     <LI>In G4LatticeReader, replaced <TT>getenv()</TT> calls for data variables
1118         with G4FindDataDir()</LI>
1119     </UL></LI>
1120 <LI><B>Transportation</B>
1121     <UL>
1122     <LI>Revised implementation of G4CoupledTransportation: now inheriting from
1123         G4Transportation and removed duplicated variables and methods; use new
1124         constant <TT>kMassNavigatorId</TT> from G4TransportationManager.</LI>
1125     <LI>New class G4TransportationParameters to hold looper parameters & others.

1126         This class has to be created in master to hold the values of all looper 

1127         parameters for G4Transportation and derived classes.</LI>

1128     <LI>G4CoupledTransportation: set flags from G4Transportation: replaced

1129         <TT>fFirstStepInAnyVolume</TT> with <TT>fFirstStepInVolume</TT>; replaced
1130         <TT>fAnyGeometryLimitedStep</TT> with <TT>fGeometryLimitedStep</TT>;
1131         removed wrong check in case of zero steps.</LI>
1132     <LI>G4Transportation: removed problem check in case of zero steps; set step
1133         status on volume boundary. Removed non-working check for any field.</LI>
1134     <LI>Moved G4UserSpecialCuts to <TT>physics_lists/constructors/limiters</TT>
1135         module.
1136     <LI>Removed useless <TT>const_cast</TT> of G4VSensitiveDetector.</LI>
1137     <LI>Fixed compilation warnings on Intel/icx compiler for variables set
1138         but not used.</LI>
1139     </UL></LI>
1140 </UL>
1141 
1142 <A NAME="geo-notes">
1143 <H3><I>Geometry</I></H3></A>
1144 <UL>
1145 <LI>Fixed compilation warnings on Intel-icx compiler for variables set
1146     but not used.</LI>
1147 <LI>Fixed compilation warnings for implicit type conversions on
1148     macOS/XCode 14.1.</LI>
1149 <LI><B>Magnetic Field</B>
1150     <UL>
1151     <LI>Revised G4FieldManager to ensure that epsilon_min/_max parameters are
1152         less than a 'maximum accepted' accuracy (now=0.02) to ensure robust
1153         behaviour of the integration. Improved their set methods, adding warnings
1154         with corrective behaviour, and a fatal exception in case of values
1155         outside the accepted range. To cope with needs of legacy applications
1156         or existing needs for performance, the value of the 'ceiling' maximum
1157         accepted accuracy can be modified using the new static method 
1158         G4FieldManager::SetMaxAcceptedEpsilon(maxAccept, softFail)
1159         but must remain under or equal to a final ceiling currently of
1160         <TT>fMaxFinalEpsilon=0.02</TT>.</LI>
1161     <LI>Introduced G4BorisScheme and G4BorisDriver, that implement the Boris
1162         integration scheme for motion in an electromagnetic field. It is 
1163         a 2<SUP>nd</SUP> order symplectic integration method, created as part
1164         of GSoC 2022.</LI>
1165     </UL></LI>
1166 <LI><B>Management</B>
1167     <UL>
1168     <LI>Get rid of heap allocations in G4BoundingEnvelope.</LI>
1169     <LI>G4ReflectedSolid: added GetCubicVolume(), GetSurfaceArea().</LI>
1170     <LI>Added headers for directly used classes from
1171         <TT>global/HEPGeometry</TT>.</LI>
1172     </UL></LI>
1173 <LI><B>Navigation</B>
1174     <UL>
1175     <LI>The <TT>/geometry/run/test</TT> UI command can now check for overlaps in
1176         parallel worlds if <TT>/geometry/run/check_parallel</TT> is set to
1177         <TT>true</TT>.</LI>
1178     <LI>Improved diagnostic message in G4MultiLevelLocator, now printing the
1179         stored information on trial integration steps in one error case.
1180         Refresh candidate intersection point when needed.</LI>
1181     <LI>G4Navigator: minor code improvements in ComputeSafety(), ComputeStep(),
1182         and LocateGlobalPointAndSetup().</LI>
1183     <LI>Added constant <TT>kMassNavigatorId</TT> in G4TransportationManager and
1184         make use of it in G4SafetyHelper.</LI>
1185     </UL></LI>
1186 <LI><B>Solids (Boolean)</B>
1187     <UL>
1188     <LI>G4DisplacedSolid: added GetCubicVolume(), GetSurfaceArea().</LI>
1189     <LI>G4SubtractionSolid: fixed problem of non-zero volume for null resulting
1190         objects in GetCubicVolume().</LI>
1191     </UL></LI>
1192 <LI><B>Solids (CSG)</B>
1193     <UL>
1194     <LI>G4Cons: define private enums within unnamed namespace, to overcome
1195         C++ ODR (One Definition Rule) violation.</LI>
1196     </UL></LI>
1197 <LI><B>Solids (Specific)</B>
1198     <UL>
1199     <LI>G4GenericTrap: implemented calculation of volume using analytical
1200         expression in GetCubicVolume(); in GetSurfaceArea(), improved
1201         calculation of the area of lateral faces; removed private function
1202         GetFaceCubicVolume(); private functions GetFaceSurfaceArea(),
1203         GetTwistedFaceSurfaceArea() replaced with private function
1204         GetLateralFaceArea().</LI>
1205     <LI>G4Ellipsoid: in LateralSurfaceArea(), enhanced calculation of the
1206         lateral surface area.</LI>
1207     <LI>G4VTwistedFaceted, G4TwistedBox, G4TwistedTrd: optimised calculation
1208         of volume and surface area.</LI>
1209     <LI>G4VTwistedFaceted: fCubicVolume, fSurfaceArea made protected;
1210         GetCubicVolume() and GetSurfaceArea() no longer inlined and moved to
1211         source.</LI>
1212     <LI>G4TwistedTubs: implemented GetSurfaceArea() based on analytical
1213         expressions; added private functions GetLateralArea(),
1214         GetPhiCutArea().</LI>
1215     <LI>G4Hype: use analytical expression in GetCubicVolume() and
1216         GetSurfaceArea().</LI>
1217     <LI>G4VTwistedFaceted: use numerical evaluation of a single integral to
1218         calculate lateral face surface area.</LI>
1219     <LI>G4ExtrudedSolid, G4UExtrudedSolid: added default values for parameters
1220         in the constructor with two z-sections. Added default constructor to
1221         ZSection.</LI>
1222     </UL></LI>
1223 </UL>
1224 
1225 <A NAME="glob-notes">
1226 <H3><I>Global</I></H3></A>
1227 <UL>
1228 <LI>Define G4lrint as <TT>std::lrint</TT>; removed unused G4lint and G4rint.</LI>
1229 <LI>Imported from <TT>tasking</TT> module all core interfaces that only depend on
1230     PTL.</LI>
1231 <LI>Corrected G4ErrorPropagatorData destructor.</LI>
1232 <LI>Additional clang-tidy fixes for header-only code.</LI>
1233 <LI>Moved implementation details of G4Exception to source file.
1234     Removed obsolete re-declaration of G4Exception in G4Timer.</LI>
1235 <LI>G4FindDataDir: correction for windows runtime, G4MULTITHREADED flag.
1236     Use the environment variable GEANT4_DATA_DIR as top data dir.</LI>
1237 <LI>Applied patch for building on MinGW.
1238     Based on <A HREF="https://github.com/Geant4/geant4/pull/51">GitHub PR#51</A>.</LI>
1239 <LI>Fixed compilation warning on Intel-icx compiler for variable set but not
1240     used in G4AnalyticalPolSolver::QuarticRoots().</LI>
1241 <LI>Make dataset environment variables optional in CMake builds.</LI>
1242 <LI>Removed obsolete CMakeLists.txt script in <TT>management</TT> module.
1243     Declare <TT>HEPGeometry</TT> dependencies as INTERFACE as the module is
1244     header-only. Removed dependency on TBB which is not a direct dependency
1245     of the global category.</LI>
1246 <LI>Fixed compilation warnings for implicit type conversions on
1247     macOS/XCode 14.1.</LI>
1248 <LI>Updated date of release for 11.1.</LI>
1249 </UL>
1250 
1251 <A NAME="greps-notes">
1252 <H3><I>Graphical Representations</I></H3></A>
1253 <UL>
1254 <LI>HepPolyhedron, G4Polyhedron: added new constructors taking vertices and
1255     faces; added derived classes HepPolyhedronTetMesh, G4PolyhedronTetMesh;
1256     added SetVertex(), SetFacet() functions and made SetReferences() and
1257     InvertFacets() public methods. Implemented JoinCoplanarFacets() function,
1258     move constructor and move assignment operator.</LI>
1259 <LI>Implemented faster version of HepPolyhedronTetMesh.</LI>
1260 <LI>Revised HepPolyhedronEllipsoid, fixed visibility of edges in case of cut
1261     ellipsoid.</LI>
1262 <LI>G4Visible: added "user" data member <TT>fInfo</TT> from G4VMarker, with
1263     access and operator<<() functions, intended to offer the user/developer
1264     a way of communicating information.</LI>
1265 <LI>G4VVisManager: added new virtual function DrawGeometry(), drawing a geometry
1266     tree starting at the specified physical volume; this base class implementation
1267     is empty, i.e., the derived class implementation is not forced.</LI>
1268 <LI>Fixed compilation warning on Intel/icx compiler for variable set
1269     but not used in HepPolyhedron::FindNodeNormal().
1270     Fixed minor Coverity defect in operator<<().</LI>
1271 <LI>G4VisExtent: in Transform(), use <TT>const auto&</TT> to avoid copying.</LI>

1272 <LI>G4VisAttributes: fixed formatting in operator<<().</LI>

1273 <LI>Fixed compilation warnings for implicit type conversions on

1274     macOS/XCode 14.1.</LI>

1275 <LI>Applied clang-tidy fixes to the code.</LI>

1276 </UL>

1277 

1278 <A NAME="had-notes">

1279 <H3><I>Hadronic Processes</I></H3></A>

1280 <UL>

1281 <LI>Replaced <TT>getenv()</TT> calls for data variables with G4FindDataDir() in data

1282     readers.</LI>

1283 <LI>Fixed compilation warnings for implicit type conversions on

1284     macOS/XCode 14.1.</LI>

1285 <LI>Updated dependencies in CMake script to address warnings from

1286     consistency check.</LI>

1287 <LI><B>Cross Sections</B>

1288     <UL>

1289     <LI>G4CrossSectionDataStore, G4NeutronElasticXS, G4NeutronInelasticXS:

1290         added interfaces needed for G4NeutronGeneralProcess.

1291         Implemented new interfaces in G4NeutronCaptureXS.</LI>

1292     <LI>G4TauNeutrinoNucleusTotXsc: new cross-section for tau-neutrinos, based on

1293         energy scaled cross-section of muon-neutrinos..</LI>

1294     <LI>G4NeutronElasticXS, G4NeutronInelasticXS, G4NeutronCaptureXS: code cleanup;
1295         use G4AutoLock.</LI>
1296     <LI>G4ParticleInelasticXS: code cleanup; use G4AutoLock.
1297         Fixed cross-section calculation. Addressing problem report
1298         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2498">#2498</A>.</LI>
1299     <LI>G4VCrossSectionDataSet: added extra interfaces with G4ParticleDefinition
1300         and kinetic energy.</LI>
1301     <LI>G4ComponentAntiNuclNuclearXS: fix and extension in methods
1302         GetTotalElementCrossSection() and GetInelasticElementCrossSection();
1303         a bug was causing undefined values for, respectively, the total and
1304         inelastic cross-sections of anti-proton interactions with light target
1305         nuclei (d, H3, He3 and He4); extended to simulation of a light
1306         anti-hypernucleus projectile scattering on a target nucleus.
1307         Fixed Coverity warning, added checks against nullptr pointers.</LI>
1308     <LI>G4ComponentGGNuclNuclXsc, G4ComponentGGHadronNuclXsc: extension to
1309         light hyper-nuclei on hydrogen.</LI>
1310     <LI>G4CrossSectionDataStore, G4VCrossSectionDataSet: removed unused methods.</LI>
1311     </UL></LI>
1312 <LI><B>Management</B>
1313     <UL>
1314     <LI>G4HadronicProcess: implemented integral method.
1315         Make access to target nucleus public needed for neutron general process.</LI>
1316     <LI>G4HadXSTypes, G4HadXSHelper: new helper classes.</LI>
1317     <LI>G4HadronicProcessType: added <TT>fNeutronGeneral</TT>.</LI>
1318     <LI>G4HadronicProcessStore: extended Dump() method for hyper-triton and 
1319         anti_hyper-triton.</LI>
1320     </UL></LI>
1321 <LI><B>Processes</B>
1322     <UL>
1323     <LI>G4NeutronGeneralProcess: new combined process; make it work with QBBC
1324         physics-list.</LI>
1325     <LI>G4TauNeutrinoNucleusProcess: new process for tau-neutrino hadronic
1326         inelastic physics.</LI>
1327     <LI>G4HadronElasticProcess: extended debug printout.</LI>
1328     <LI>G4NeutronCaptureProcess: avoid double instantiation of the cross-section.</LI>
1329     <LI>Prefer pointer to <TT>const G4Material</TT> where possible.</LI>
1330     </UL></LI>
1331 <LI><B>Utilities</B>
1332     <UL>
1333     <LI>G4Fragment: added <TT>IsLongLived</TT> flag and Get/Set methods needed
1334         for the de-excitation module; clean-up inline methods.
1335         Fixed computation of binding energy for hypernuclei; added
1336         a new private method to recompute ground state mass, excitation energy
1337         and to check consistency of input; left inlined only simple methods;
1338         added new methods SetZAandMomentum(..) and RecomputeGroundStateMass();
1339         improved comments and warning messages.</LI>
1340     <LI>G4Nucleus: corrected method GetN_asInt() for the case of hypernuclei.</LI>
1341     <LI>G4HadronicParameters: added flags for switching on/off the integral 
1342         approach for hadron elastic and, independently, inelastic processes; 
1343         by default, it is enabled for inelastic. 
1344         Added flag to enable general neutron process.
1345         Moved G4Threading header to source.</LI>
1346     <LI>Added option to G4HadronicParameters to control the diffraction 
1347         dissociation for nucleon projectile on target nucleus with baryon
1348         number greater than 10: by default, both projectile and target
1349         diffraction are switched off (but they are both active in the case
1350         of target nucleus with baryon number below or equal to 10; if instead
1351         the flag is set to <TT>true</TT>, then both projectile and target
1352         diffraction are activated regardless of the target nucleus).</LI>
1353     <LI>G4KineticTrack, G4HadSecondary, G4ReactionProduct, G4DecayKineticTracks,
1354         G4DecayStrongResonances: propagate the information on parent resonance.</LI>
1355     <LI>G4HadDataHandler: new data class.</LI>
1356     <LI>G4NuclearPolarization: fixed Coverity warning.</LI>
1357     </UL></LI>
1358 <LI><B>Abla</B>
1359     <UL>
1360     <LI>Fixed compilation warnings on Intel/icx compiler for variables set
1361         but not used in G4AblaDataDefs header.</LI>
1362     </UL></LI>
1363 <LI><B>Bertini Cascade</B>
1364     <UL>
1365     <LI>G4NumIntTwoBodyAngDst: corrected incomplete initialization of a vector.
1366         Addressing problem report
1367         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2515">#2515</A>.</LI>
1368     <LI>G4TwoBodyAngularDist: corrected the charge exchange reaction of pion+ on
1369         neutron producing in the final state pion0 and proton.
1370         Addressing problem report
1371         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2516">#2516</A>.</LI>
1372     <LI>Fixed wrong comparison between two arrays in findCrossSection(..) for
1373         G4CascadePPChannel, G4CascadeNPChanneland G4CascadeNNChannel.</LI>
1374     <LI>Fixed compilation warning on gcc-12.</LI>
1375     </UL></LI>
1376 <LI><B>Binary Cascade</B>
1377     <UL>
1378     <LI>G4GeneratorPrecompoundInterface, G4BinaryCascade: propagate the
1379         information on parent resonance (in the ApplyYourself() method, from
1380         G4ReactionProduct to G4HadSecondary; in other methods, from
1381         G4KineticTrack to G4ReactionProduct).</LI>
1382     <LI>G4GeneratorPrecompoundInterface: in PropagateNuclNucl() method, in the
1383         case of anti-nucleus projectile, convert also lambdas into anti-lambdas
1384         after the de-excitation (which assumes a projectile nucleus).</LI>
1385     <LI>Fixed compilation warnings on Intel/icx compiler for variables set
1386         but not used in G4BinaryCascade.</LI>
1387     </UL></LI>
1388 <LI><B>De-excitation</B>
1389     <UL>
1390     <LI>G4Evaporation, G4UnstableFragmentBreakUp: completed fix about production 
1391         of unphysical fragments; improved debug printout. Addressing problem report
1392         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2355">#2355</A>.</LI>
1393     <LI>G4EvaporationChannel, G4Evaporation: added limitation (<TT>A < 30</TT>)
1394         on decay of unphysical fragments, allowing for removal of light unphysical
1395         states and providing improved isotope production for the spallation
1396         fragments.</LI>
1397     <LI>G4EvaporationChannel, G4EvaporationProbability, G4VEmissionProbability,
1398         G4VCoulombBarrier, G4CoulombBarrier: use new method from G4Fragment.</LI>
1399     <LI>G4VEvaporationChannel, G4EvaporationChannel, G4VEmissionProbability
1400         and G4EvaporationProbability: improved inverse cross-section
1401         parameterisation at threshold.</LI>
1402     <LI>G4PhotonEvaporation: fixed situation when excited fragments are created
1403         with excitation energy not corresponding to level energies from
1404         G4LEVELGAMMADATA. Addressing problem report
1405         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2434">#2434</A>.
1406         Also fixing event non-reproducibility for the case when radioactive
1407         decay is enabled on top of any physics list.
1408         Simplified handling of floating levels. For floating levels check if
1409         levels with the same energy can be used for sampling transitions;
1410         improved use of mutex; code clean-up.</LI>
1411     <LI>G4EvaporationProbability: reduced usage of cache.</LI>
1412     <LI>G4ExcitationHandler: use IsLongLived() flag from G4Fragment to decide
1413         if the de-excitation of the fragment should be stopped.<BR>
1414         Introduced de-excitation of fragments with lambda inside. Added
1415         protections that prevents potential crashes and large energy
1416         non-conservations in  case of hypernuclei and anti-hypernuclei
1417         projectiles. Added extra sanity check for negative value of lambda
1418         inside a fragment.
1419         Note: there are still a few warnings of rejected candidate final-states
1420         with off-shell masses and few GeV energy non-conservations (implying a
1421         resampling of the final-state) in the case of light hypernuclei and
1422         anti-hypernuclei projectiles, that need further investigation.</LI>
1423     <LI>G4AtomicTransition: extended upper limit of atomic de-excitation 
1424         from <TT>Z=100</TT> to <TT>Z=104</TT>.</LI>
1425     <LI>G4FermiCoulombBarrier: new class for Coulomb barrier according to
1426         prescription. Updated G4FermiDecayProbability and G4FermiFragment
1427         accordingly.</LI>
1428     <LI>G4VEmissionProbability: limit number of bins for numerical integration
1429         to 50.</LI>
1430     <LI>G4VEmissionProbability: updated sampling of the emitted fragment energy
1431         needed. Addressing problem report
1432         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2443">#2443</A>.
1433         Fixed sampling of the tail of distributions; added numerical protections.
1434         Stronger limit on accuracy of integrated probability; improved debug
1435         printout.</LI>
1436     <LI>G4CoulombBarrier: tuned parameters.</LI>
1437     <LI>G4LevelManger, G4NuclLevel: removed verbose printouts; code clean-up.</LI>
1438     <LI>G4NuclearLevelData: use G4AutoLock.</LI>
1439     <LI>Use G4BestUnit in G4DeexPrecoParameters::StreamInfo().</LI>
1440     <LI>G4StatMFChannel: fixes in the solver of the equation of motion of the
1441         multi-fragmentation model.<</LI>
1442     <LI>Code cleanup.</LI>
1443     </UL></LI>
1444 <LI><B>Elastic scattering</B>
1445     <UL>
1446     <LI>G4AntiNuclElastic: extension of the SampleInvariantT() method for the
1447         simulation of a light anti-hypernucleus projectile elastic scattering
1448         on a target nucleus.
1449         Note: most of the considered light anti-hypernuclei projectiles have 
1450         baryon number equal to -4 : it is assumed that their properties are similar
1451         to anti-He4, therefore their elastic scattering is set-up as for anti-He4
1452         elastic nuclear scattering. These properties can be improved in the future
1453         if theoretical estimations will be available.</LI>
1454     </UL></LI>
1455 <LI><B>Electromagnetic Dissociation</B>
1456     <UL>
1457     <LI>G4EMDissociation: updated according to G4Fragment modifications.</LI>
1458     </UL></LI>
1459 <LI><B>Fission</B>
1460     <UL>
1461     <LI>G4FissLib, G4LFission: use consistent thresholds for relative (10% instead
1462         of 5%) and absolute (350 GeV instead of 250 GeV) energy non-conservation
1463         check.</LI>
1464     </UL></LI>
1465 <LI><B>INCLXX</B>
1466     <UL>
1467     <LI>G4INCLXXInterface: introduced a protection against unphysical nuclear
1468         remnants (i.e. unbound systems) and, if this is the case, resample the
1469         collision.</LI>
1470     <LI>G4INCLParticle, G4INCLEventInfo, G4INCLNucleus, G4INCLDeltaDecayChannel,
1471         G4INCLXXInterface: set and propagate the information on parent resonance.</LI>
1472     <LI>G4INCLPiNElasticChannel: erase the information on parent resonance in
1473         the case of charge exchange.</LI>
1474     <LI>G4INCLPiNToDeltaChannel, G4INCLPiNToOmegaChannel, G4INCLPiNToEtaChannel,
1475         G4INCLPiNToMultiPionsChannel, G4INCLNpiToLKpiChannel,
1476         G4INCLNpiToLK2piChannel, G4INCLNpiToNKKbChannel, G4INCLNpiToSK2piChannel,  
1477         G4INCLNpiToSKpiChannel, G4INCLNpiToSKChannel, G4INCLNpiToLKChannel,
1478         G4INCLNpiToMissingStrangenessChannel: erase the information on parent
1479         resonance in inelastic channels (where the nucleon and pion initial-state
1480         objects are re-used for the final state).</LI>
1481     <LI>Fixed compilation warnings on Intel/icx compiler for variables set
1482         but not used.</LI>
1483     </UL></LI>
1484 <LI><B>Lend</B>
1485     <UL>
1486     <LI>Fixed potential use of pointer after free in nf_utilities/nfu_realloc(..)
1487         function.</LI>
1488     <LI>Applied patch for building on MinGW.
1489         Based on <A HREF="https://github.com/Geant4/geant4/pull/51">GitHub PR#51</A>.</LI>
1490     <LI>Replaced use of sprintf() with snprintf(), to fix deprecation compilation
1491         warnings on macOS-13 SDK.</LI>
1492     </UL></LI>
1493 <LI><B>Lepto-nuclear</B>
1494     <UL>
1495     <LI>G4(A)NuTauMucleusNc(Cc)Models: new final-state models for tau and
1496         anti-tau neutral and charged current neutrino-nucleus interactions.</LI>
1497     <LI>G4ElectroVDNuclearModel: added protections against null pointers to gamma
1498         cross-section and material, responsible for rare crashes.</LI>
1499     </UL></LI>
1500 <LI><B>Particle High Precision</B>
1501     <UL>
1502     <LI>Removed environment variables G4PHPTEST, G4PHPTEST2 and NeutronHPCapture,
1503         associated getenv() calls and associated debug code, as no longer used and
1504         found to slow down the code significantly.
1505         Addressing problem report
1506         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2501">#2501</A>.</LI>
1507     <LI>G4ParticleHPContAngularPar: added protection against zero probability
1508         for both discrete and continuous emission.</LI>
1509     <LI>G4ParticleHPThermalScatteringNames: updated to use new ThermalScattering
1510         data in G4NDL-4.7.</LI>
1511     <LI>Fixed compilation warnings on Intel/icx compiler for variable set
1512         but not used in G4ParticleHPInelasticCompFS and G4ParticleHPFFFissionFS.</LI>
1513     <LI>Use <TT>auto</TT> for iterators in
1514         G4ParticleHPFFFissionFS::GetAFissionFragment().</LI>
1515     <LI>Fixed Coverity reports.</LI>
1516     </UL></LI>
1517 <LI><B>Parton-String</B>
1518     <UL>
1519     <LI>G4FTFModel: implemented extension of the model to deal with the
1520         annihilation of light anti-hypernuclei.
1521         In methods AdjustNucleonsAlgorithm_beforeSampling() and
1522         ComputeNucleusProperties(), check if the residual is a single nucleon
1523         (or lambda) or a pair of nucleons (or lambdas); also use the absolute
1524         value of the nuclear residual charge to take into account the case of
1525         anti-nuclei projectiles.</LI>
1526     <LI>G4FTFAnnihilation: reorganization of Create2QuarkAntiQuarkStrings() and
1527         Create3QuarkAntiQuarkStrings() methods, in order to better handle
1528         unphysical configurations that need to be rejected.
1529         The algorithm has been also optimised by changing the order of the
1530         sampling: light-cone variables are sampled first, then transverse momenta.
1531         The positions of quark and anti-quark in strings have been corrected: this
1532         is expected to improve the kinematical properties of the produced
1533         hadrons.</LI>
1534     <LI>G4FTFTunings: new singleton class to allow the possibility to specify
1535         alternative sets of FTF parameters, called "tunes".
1536         Moved into this class some special, internal classes, useful for tuning
1537         of parameters, that were originally in G4FTFParameters.</LI>
1538     <LI>G4FTFTuningsMessenger: new messenger class for G4FTFTunings.</LI>
1539     <LI>Allow control of diffraction for baryon number greater than 10 in
1540         G4FPFParameters. The option comes from G4HadronicParameters and the
1541         default behaviour remains the same (i.e. off).
1542         Use of the new G4FTFTunings class; instead of having one, single set of
1543         parameters, it has now an array of set of parameters, with each element
1544         corresponding to one specific "tune".
1545         Clean-up of the class by moving to G4FTFTunings some code.</LI>
1546     <LI>G4HadronBuilder: added a new argument in constructor, and a new data
1547         member to the class. This is needed to set a special mixing of
1548         pseudo-scalar and vector mesons for s-sbar mesons. Introduced to
1549         describe phi-meson production in proton-proton interactions measured
1550         by NA61/SHINE.</LI>
1551     <LI>G4VLongitudinalStringDecay: tuned the probability of pseudo-scalar meson
1552         production, to describe K*0 meson production in proton-proton
1553         interactions according to NA61/SHINE data. Introduced also a new
1554         parameter (probability of pseudo-scalar meson production in s-sbar
1555         mesons) to increase the phi-meson yield in proton-proton interactions.
1556         Fixed a bug in mixing eta_prime and phi mesons in the quark systems
1557         d-dbar, u-ubar and s-sbar.
1558         Brought back the value (0.5) of the mixing between (rho0 and omega)
1559         vector mesons as it was originally before version 10.0. This should
1560         describe better NA61/SHINE experimental data. The change has some effect
1561         on the hadronic showers, giving that the various vector mesons have
1562         different decay rates into neutral pions.</LI>
1563     <LI>G4VPartonStringModel: added debugging information on the number of
1564         lambdas for residual projectile hypernuclei.</LI>
1565     <LI>G4HadronBuilder, G4VLongitudinalStringDecay, G4LundStringFragmentation,
1566         G4QGSMFragmentation, G4ExcitedStringDecay: in order to describe the
1567         NA61/SHINE data on K*0 and phi mesons production in proton-proton
1568         interactions, different probabilities were introduced for the ratios
1569         between pseudo-scalar and vector meson production. These ratios are the
1570         following: for ordinary mesons from u- and d- quarks, the ratio is 0.5/0.5;
1571         for strange mesons the ratio is 0.4/0.6; for mesons with hidden strangeness
1572         (as for phi), the ratio is 0.3/0.7.
1573         This approach is similar to the one adopted in Pythia8.
1574         It is also assumed that the probabilities for hidden strangeness (0.3/0.7)
1575         apply for mesons with hidden charm and beauty.</LI>
1576     <LI>G4LundStringFragmentation: introduced few changes for a special
1577         treatment of the last string decay in the case of <TT>ss-q</TT> or
1578         <TT>ss-qq, ss-sbar sbar</TT> last string decay. This improves the
1579         yield of <TT>anti-Xi</TT> hyperons in proton-proton interactions
1580         according to the NA61/SHINE data.<BR>
1581         Moreover, some parameters have been tuned to better describe the
1582         NA61/SHINE data on various particles produced in proton-proton
1583         interactions.</LI>
1584     <LI>G4DiffractiveExcitation: improved ExciteParticipants_doChargeExchange()
1585         method: for a projectile meson in the case of quark exchange, a more
1586         correct ratio between pseudo-scalar and vector mesons is included; the
1587         pion after the exchange can transform into <TT>pi0, eta, eta', rho0</TT>

1588         and omega mesons. This allows to improve the description of leading

1589         particle spectra in meson-nucleon interactions.</LI>

1590     <LI>G4DiffractiveSplitableHadron: fixed rare warnings about large energy

1591         non-conservations (which are rejected and require resampling) seen

1592         with FTF when dealing with charm and bottom hadron inelastic nuclear

1593         interactions.</LI>

1594     <LI>Fixed compilation warning on Intel/icx compiler for variables set

1595         but not used in G4QGSMSplitableHadron and G4QGSParticipants.</LI>

1596     </UL></LI>

1597 <LI><B>Pre-equilibrium</B>

1598     <UL>

1599     <LI>G4PreCompoundModel: in the case of hypernuclei do not perform pre-compound

1600         emission but only equilibrium emission.</LI>

1601     </UL></LI>

1602 <LI><B>QMD</B>

1603     <UL>

1604     <LI>Fixed compilation warning on Intel/icx compiler for variable set

1605         but not used in G4QMDMeanField.</LI>

1606     </UL></LI>

1607 <LI><B>Radioactive Decay</B>

1608     <UL>

1609     <LI>G4ECDecay: added protection against negative neutrino energy.

1610         Addressing problem report

1611         <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2509">#2509</A>.<BR>

1612         Removed negative neutrino energy warning but keep protection

1613         against negative values. Negative values are due to negative Q values

1614         from ENSDF for only four nuclides.</LI>

1615     <LI>G4ECDecay, G4ITDecay: extended upper limit of atomic de-excitation 

1616         from <TT>Z=100</TT> to <TT>Z=104</TT>.</LI>

1617     <LI>G4RadioactiveDecay: removed SetICM() method, as deprecated for some time

1618         and no longer used. ICM now set exclusively in G4PhotonEvaporation.

1619         Added printout of the flag of atomic relaxation.</LI>

1620     <LI>G4RadioactiveDecayMessenger: removed icmCmd corresponding to SetICM()

1621         above.</LI>

1622     <LI>Cosmetic changes in G4RadioactiveDecay::StreamInfo().</LI>

1623     </UL></LI>

1624 <LI><B>Theo_High_Energy</B>

1625     <UL>

1626     <LI>G4TheoFSGenerator: propagate the information on parent resonance (in

1627         the ApplyYourself() method, from G4ReactionProduct to G4HadSecondary).<BR>

1628         Simplified treatment for low-energy inelastic nuclear reactions of

1629         light hypernuclei (needed because Bertini and Binary intra-nuclear 

1630         cascade models are not applicable for these projectiles).

1631         Note that for light anti-hypernuclei, FTF works fine down to zero 

1632         kinetic energy.</LI>

1633     </UL></LI>

1634 </UL>

1635 

1636 <A NAME="interc-notes">

1637 <H3><I>Intercoms</I></H3></A>

1638 <UL>

1639 <LI>Applied set of clang-tidy modernize, readability and performance fixes.</LI>

1640 <LI>Always expand path argument to ExecuteMacroFile() using FindMacroPath().

1641     Based on <A HREF="https://github.com/Geant4/geant4/pull/40">GitHub PR#40</A>.

1642 <LI>Fixed compilation warnings for implicit type conversions on

1643     macOS/XCode 14.1.</LI>

1644 </UL>

1645 

1646 <A NAME="interf-notes">

1647 <H3><I>Interfaces</I></H3></A>

1648 <UL>

1649 <LI>G4InteractorMessenger: prevent propagation of <TT>/gui/*</TT> commands

1650     to workers.</LI>

1651 <LI>Applied patch for building on MinGW.

1652     Based on <A HREF="https://github.com/Geant4/geant4/pull/51">GitHub PR#51</A>.</LI>

1653 <LI>Fixed compilation warning on Intel compiler for shadowing data.</LI>

1654 <LI>Use geant4_module_sources to add optional sources in CMake script.

1655     Added required G4VIS_USE_VTK_QT flag here instead of <TT>Vtk</TT>

1656     visualization module. Added dependency on Qt5 Widgets to <TT>common</TT>

1657     sub-module CMake script.</LI>

1658 <LI>Fixed compilation warnings on Intel/icc for deprecated conversion of string

1659     literal to char* in G4UIXm.</LI>

1660 <LI>Fixed compilation warnings for implicit type conversions on

1661     macOS/XCode 14.1.</LI>

1662 </UL>

1663 

1664 <A NAME="materials-notes">

1665 <H3><I>Materials</I></H3></A>

1666 <UL>

1667 <LI>G4Material: added an extra check on number of atoms in method

1668     AddElementByNumberOfAtoms(..). Addressing problem report

1669     <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2514">#2514</A>.</LI>

1670 <LI>G4MaterialPropertyVector, G4OpticalMaterialProperties: organise material

1671     property vectors in increasing order of energy. Modified from

1672     <A href="https://github.com/Geant4/geant4/pull/42">GitHub PR#42</A>.</LI>

1673 <LI>G4MaterialPropertiesIndex, G4MaterialPropertiesTable, G4SurfaceProperty:

1674     added parameters to specify optical photon transport through thin film

1675     coating.</LI>

1676 <LI>G4AtomicShell: added extra data for <TT>Z=101-104</TT>.</LI>

1677 <LI>G4AtomicShell, G4AtomicShell_XDB_EADL: changed format of internal tables

1678     allowing to see differences in a clearer way.</LI>

1679 <LI>Corrected G4UCNMicroRoughnessHelper destructor.</LI>

1680 <LI>G4NistMaterialBuilder: fixed bio-medical material descriptions for

1681     G4_ADENINE, G4_GUANINE, G4_CYTOSINE, G4_THYMINE, G4_DEOXYRIBOSE, and

1682     added G4_PHOSPHORIC_ACID.</LI>

1683 <LI>Applied set of clang-tidy modernize, readability and performance fixes.</LI>

1684 <LI>G4NistManager, G4NistMaterialBuilder, G4NistElementBuilder: use G4AutoLock

1685     for code simplification.</LI>

1686 <LI>Replaced <TT>getenv()</TT> calls for data variables with G4FindDataDir() in

1687     G4IonStoppingData, G4MicroElecMaterialStructure and G4OpticalSurface.</LI>

1688 <LI>G4CrystalExtension: fixed Coverity warning and minor clean-up.</LI>

1689 <LI>Fixed compilation warnings for implicit type conversions on

1690     macOS/XCode 14.1.</LI>

1691 </UL>

1692 

1693 <A NAME="parameterisations-notes">

1694 <H3><I>Parameterisations</I></H3></A>

1695 <UL>

1696 <LI>GFLASH:

1697     <UL>

1698     <LI>Fixed compilation warning on Intel/icx compiler for variable set

1699         but not used in GFlashShowerModel::ElectronDoIt().</LI>

1700     <LI>Fixed compilation warnings for implicit type conversions on

1701         macOS/XCode 14.1.</LI>

1702     </UL></LI>

1703 </UL>

1704 

1705 <A NAME="part-notes">

1706 <H3><I>Particles</I></H3></A>

1707 <UL>

1708 <LI>Changed halflife threshold for nuclide creation to be consistent with 

1709     lifetimes in nuclear de-excitation code. In G4NuclideTable, changed

1710     <TT>threshold_of_halflife</TT> from <TT>1000 ns</TT> to <TT>1 ns</TT>.</LI>

1711 <LI>In G4NuclieTable, replaced <TT>getenv()</TT> calls for data variables with

1712     G4FindDataDir().</LI>

1713 <LI>G4NuclideTableMessenger: added command

1714     <TT>/particle/manage/nuclide/min_meanlife</TT> corresponding to 

1715     G4NuclideTable::SetMeanLifeThreshold().

1716     Default minimum mean life is <TT>1.0 ns</TT>.

1717     In <TT>/particle/nuclideTable/min_halflife</TT> changed default minimum

1718     half-life to <TT>0.693 ns</TT>.</LI>

1719 <LI>Changed half-life threshold for nuclide creation to be consistent with 

1720     lifetimes in nuclear de-excitation code; in G4NuclideTable constructor,

1721     change <TT>threshold_of_halflife</TT> from <TT>1000 ns</TT> to

1722     <TT>1 ns</TT>.</LI>

1723 <LI>Use nuclide mean-life instead of half-life in G4NuclideTable in order

1724     to be consistent with ENSDFSTATE data, which uses mean-life. Provided

1725     two new methods, SetMeanLifeThreshold() and GetMeanLifeThreshold() so

1726     that the life-times can be accessed as either half-life or mean-life.</LI>

1727 <LI>G4Triton, G4AntiTriton: corrected the lifetime value for triton and

1728     anti_triton: the half-life (12.32 years) was incorrectly used instead of

1729     the mean lifetime (17.774 years) for triton, whereas the anti_triton was

1730     incorrectly treated as stable.</LI>

1731 <LI>Removed obsolete and unused G4DynamicParticleFastVector type alias.</LI>

1732 <LI>G4HyperNucleiProperties: optimization improvement and minor clean-up.</LI>

1733 <LI>Replaced <TT>reinterpret_cast</TT> with <TT>static_cast</TT> where

1734     possible.</LI>

1735 <LI>Fixed compilation warnings for implicit type conversions on

1736     macOS/XCode 14.1.</LI>

1737 <LI>Fixed compilation warning on Intel/icx compiler for variable set

1738     but never used in G4MuonRadiativeDecayChannelWithSpin.</LI>

1739 <LI>Minor code formatting.</LI>

1740 </UL>

1741 

1742 <A NAME="pers-notes">

1743 <H3><I>Persistency</I></H3></A>

1744 <UL>

1745 <LI>Fixed compilation warnings for implicit type conversions on

1746     macOS/XCode 14.1.</LI>

1747 <LI>mctruth: added headers for directly used classes from

1748     <TT>global/HEPGeometry</TT>.</LI>

1749 </UL>

1750 

1751 <A NAME="lst-notes">

1752 <H3><I>Physics lists</I></H3></A>

1753 <UL>

1754 <LI>Updated public/private dependencies for consistency in CMake script

1755     and added missing dependency</LI>

1756 <LI>Fixed compilation warnings for implicit type conversions on

1757     macOS/XCode 14.1.</LI>

1758 <LI><B>Constructors</B>:

1759     <UL>

1760     <LI>Replaced <TT>getenv()</TT> calls for data variables with G4FindDataDir()

1761         in data readers.</LI>

1762     <LI><U>decay</U>

1763         <UL>

1764         <LI>G4DecayPhysics: added instantiation of singletons for physics.</LI>

1765         <LI>Added calls to G4EmBuilder and G4PhysListUtil in order to prevent from

1766             warnings on decays of light hypernuclei, in the case of simplified 

1767             custom Physics Lists.</LI>

1768         </UL></LI>

1769     <LI><U>electromagnetic</U>:

1770         <UL>

1771         <LI>G4EmModelActivator: fixed mechanism to define PAI model per region.</LI>

1772         <LI>In G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,

1773             G4EmPenelopePhysics, G4EmStandardPhysicsSS, and G4EmLivermorePhysics

1774             use G4LinhardSorensenIonModel for GenericIon.</LI>

1775         <LI>Adding possibility to enable new G4TransportationWithMsc for

1776             multiple-scattering. Enabled by default in G4EmStandardPhysics_option1.</LI>

1777         <LI>G4EmBuilder: enable internal stepping in G4TransportationWithMsc

1778             if requested.<BR>

1779             Added G4Lamda, G4AntiLambda and G4PionZero to the minimal EM

1780             particle list to avoid warnings issued due to new hypernuclei.

1781             Added e- and mu- neutrino and anti-neutrino.<BR>

1782             Added minimal list of EM standard particles to all DNA

1783             physics variants, to allow enabling of radioactive decay; provides

1784             correct printout of EM processes and models. Addressing problem report

1785             <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2412">#2412</A>.</LI>

1786         <LI>G4EmBuilder, G4EmDNAPhysics: instantiate singletons for physics.</LI>

1787         <LI>G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4:

1788             adopt identical configuration for msc, muon, hadron, and ion physics.</LI>

1789         <LI>G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4,

1790             G4EmStandardPhysics: selection of the model for energy loss

1791             fluctuation is included in ionisation processes according to the type

1792             defined in G4EmParameters.</LI>

1793         <LI>G4EmStandardPhysics, G4EmStandardPhysics_option3,

1794             G4EmStandardPhysics_option4: use G4GammaGeneralProcess by default.</LI>

1795         <LI>G4GammaGeneralProcess: implemented new method GetCreatorProcess().

1796             Apply Spline interpolation for tables at low energy (<TT><150 keV</TT>)

1797             and at high energy (<TT>> 100 MeV</TT>).</LI>

1798         <LI>G4EmStandardPhysics_option4: use Penelope ionisation model for e- 

1799             below <TT>100 keV</TT>.</LI>

1800         <LI>G4EmBuilder: use check on process sub-type, do not substitute

1801             G4CoupledTransportation with G4TransportationWithMsc.</LI>

1802         <LI>G4EmDNABuilder: new utility class, which provides instantiation of 

1803             standard and DNA processes/models; this reduces code duplication for

1804             DNA physics, energy intervals for DNA models are defined in one place.

1805             Added option2,3,4,6,8 configurations.

1806             Added extra utility methods to find or to build electron processes.

1807             Introduced constant upper limit of <TT>1 MeV</TT> for DNA models;

1808             introduced constant upper limit of <TT>2 MeV</TT> for standard

1809             low-energy ionisation; use the same upper limit for DNA excitation

1810             and ionisation.

1811             Enabling combination of DNA and standard physics processes.</LI>

1812         <LI>Increased upper limit of DNA proton/ion physics from <TT>100 MeV</TT>

1813             to <TT>300 MeV</TT> in all DNA constructors.</LI>

1814         <LI>Made G4EmDNAPhysics the base class for DNA physics constructors.

1815             Added interface to G4EmDNABuilder.</LI>

1816         <LI>G4EmDNABuilder, G4EmDNAPhysicsActivator: make consistent the

1817             configuration of DNA physics on top of standard physics.</LI>

1818         <LI>Simplified code in G4EmDNAPhysics_option1, G4EmDNAPhysics_stationary,

1819             G4EmDNAPhysics_option5 and G4EmDNAPhysics_stationary_option4.</LI>

1820         <LI>G4EmDNAPhysics_option6, G4EmDNAPhysics_option8: use "fast" option.</LI>

1821         <LI>G4EmDNAPhysics_option7, G4EmDNAPhysics_stationary_option6,

1822             G4EmDNAPhysics_option3, G4EmDNAPhysics_stationary_option2: simplified

1823             code.</LI>

1824         <LI>Added G4DNABrownianTransportation, SBS and IRT_syn models in

1825             G4EmDNAChemistry_option3.</LI>

1826         <LI>Added used headers in chemistry builders.</LI>

1827         </UL></LI>

1828     <LI><U>gamma_lepto_nuclear</U>:

1829         <UL>

1830         <LI>G4EmExtraPhysics, G4EmMessenger: added muon to muon pair process;

1831             use C++11 keywords; suppressed broadcasting of UI commands; moved

1832             initialisation class members to the headers.</LI>

1833         <LI>G4EmExtraPhysics: introduced tau-neutrino nucleus processes.</LI>

1834         </UL></LI>

1835     <LI><U>hadron_elastic</U>:

1836         <UL>

1837         <LI>G4HadronElasticPhysics: use G4HadProcesses utility to build neutron 

1838             elastic, which allows to use an option of neutron general process.<BR>

1839             Extended nuclear elastic for light hypernuclei and anti-hypernuclei

1840             projectiles.</LI>

1841         </UL></LI>

1842     <LI><U>hadron_inelastic</U>:

1843         <UL>

1844         <LI>G4HadronPhysicsFTFP_BERT, G4HadronPhysicsINCLXX: extension to inelastic

1845             nuclear interactions of light hypernuclei (with either FTFP only or 

1846             FTFP+INCLXX) and anti-hypernuclei (with only FTFP for all energies).

1847             Notice that the QGSP string model cannot currently handle nuclear 

1848             projectiles of any kind.</LI>

1849         <LI>G4HadronInelasticQBBC: use G4HadProcesses utility to build neutron 

1850             elastic, which allows to use an option of neutron general process.</LI>

1851         </UL></LI>

1852     <LI><U>limiters</U>:

1853         <UL>

1854         <LI>G4SpecialCuts: added setting of process type <TT>fGeneral</TT> and

1855             sub type.</LI>

1856         <LI>G4MinEkineCuts: removed setting of process type <TT>fUserDefined</TT>.</LI>

1857         <LI>G4NeutronTrackingCut: use enumerator for neutron general process instead

1858             of hard-coded number. Added check if G4NeutronGeneralProcess is defined to

1859             avoid double instantiation of the same cut.</LI>

1860         <LI>Moved G4UserSpecialCuts class from <TT>transportation</TT> module.</LI>

1861         <LI>Fixed defects reported by Coverity in G4GenericBiasingPhysics, to use

1862             <TT>auto&</TT>.</LI>

1863         </UL></LI>

1864     </UL></LI>

1865 <LI><B>Util</B>:

1866     <UL>

1867     <LI>G4PhysListUtil: added new utility method to access a process via

1868         sub-type, simplified methods to access hadron processes.

1869         Use <TT>dynamic_cast</TT> instead of <TT>static_cast</TT>.

1870         In the method InitialiseParameters(), call the singleton

1871         G4FTFTunings::Instance() to allow the setting of a FTF tune via UI commands

1872         at <TT>PreInit</TT> state. Extended InitialiseParameters() method.</LI>

1873     <LI>G4PhysListUtil, G4HadProcesses: added extra methods needed for neutron

1874         general process initialisation. Use enumerator for neutron general process

1875         instead of hard-coded number in G4PhysListUtil.</LI>

1876     <LI>Added internal dependencies on <TT>hadronic/deexcitation/photon_evaporation</TT>,

1877         <TT>run</TT> and <TT>processes/management</TT> modules.</LI>

1878     </UL></LI>

1879 </UL>

1880 

1881 <A NAME="readout-notes">

1882 <H3><I>Readout</I></H3></A>

1883 <UL>

1884 <LI>Fixed compilation warnings for implicit type conversions on

1885     macOS/XCode 14.1.</LI>

1886 </UL>

1887 

1888 <A NAME="run-notes">

1889 <H3><I>Run</I></H3></A>

1890 <UL>

1891 <LI>Imported implementations of task-based interfaces/implementations from

1892     the <TT>tasking</TT> module. See <TT>History.tasking</TT> file for History

1893     of tasking code.</LI>

1894 <LI>Added new G4DNAScavenger in PhysicsListHelper for DNA processes.</LI>

1895 <LI>Fixed compilation warnings for implicit type conversions on

1896     macOS/XCode 14.1.</LI>

1897 </UL>

1898 

1899 <A NAME="tasking-notes">

1900 <H3><I>Tasking</I></H3></A>

1901 <UL>

1902 <LI>Retired module. Contents merged in <TT>global</TT> and <TT>run</TT>

1903     categories.</LI>

1904 </UL>

1905 

1906 <A NAME="track-notes">

1907 <H3><I>Track &amp; Tracking</I></H3></A>

1908 <UL>

1909 <LI>General clean-up of all ParticleChange classes: delete copy constructors

1910     and operator=(); removed unused methods; removed tracking cut to 1 eV

1911     implemented in G4ParticleChangeForLoss; make more effective handling of

1912     secondary tracks; substitute G4ParticleChangeForRadDecay with

1913     G4ParticleChangeForDecay; make all derived classes/methods final;

1914     removed commented code and corrected comments; removed duplicated code.

1915     Improved diagnostic for problems with primary track parameters or with

1916     secondary tracks; ensuring kinetic energy to be positive after a step;

1917     improved comments.</LI>

1918 <LI>G4SteppingManager: removed G4Exception with JustWarning severity for the case

1919     of no active at rest processes existing. Addressing problem report

1920     <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2493">#2493</A>.</LI>

1921 <LI>In G4ParticleChangeForTransport, simplified UpdateStepForAlongStep(),

1922     assuming that transportation is always the first process.

1923     Apply proposed step length; further simplified UpdateStepForAlongStep()

1924     method, assuming that transportation is always the first process.</LI>

1925 <LI>G4ParticleChangeForMSC: substituted virtual initialisation by inline

1926     method. Fixed crash in <TT>/tracking/verbose 6</TT>.</LI>

1927 <LI>Only set step status of <TT>fGeomBoundary</TT> when on volume boundary.</LI>

1928 <LI>In G4SteppingManager, refactor and simplify processing of secondaries;

1929     use new virtual method GetCreatorProcess() when processing secondaries.

1930     Corrected <TT>ProcessDefinedStep</TT> for AtRest case.

1931     Removed check on cuts and removed dependence of tracking from EM physics;

1932     real implementation of ApplyCut() is done within EM physics classes.

1933     Merged G4SteppingManager translation units.</LI>

1934 <LI>G4Track: added methods to get/set information on (short-lived) parent

1935     resonance.</LI>

1936 <LI>Fixed compilation warnings for implicit type conversions on

1937     macOS/XCode 14.1.</LI>

1938 </UL>

1939 

1940 <A NAME="vis-notes">

1941 <H3><I>Visualization</I></H3></A>

1942 <UL>

1943 <LI><B>General</B>

1944     <UL>

1945     <LI>Removed obsolete <TT>gl2ps</TT> subcategory and <TT>externals</TT>

1946         module.</LI>

1947     <LI>Fixed compilation warnings for implicit type conversions on

1948         macOS/XCode 14.1.</LI>

1949     <LI>Introduced G4warn (temporarly the same as G4cout) as new output stream

1950         for visualization code, and used in place of G4cerr.</LI>

1951     <LI>Updated build scripts and internal dependencies.</LI>

1952     </UL></LI>

1953 <LI><B>Management</B>

1954     <UL>

1955     <LI>Implemented Twinkling, i.e, the rhythmic variation of brightness of

1956         given touchables: in G4VVisCommand added Twinkle() method; exploit

1957         twinkling in UI commands in G4VisCommandsTouchable and

1958         G4VisCommandsViewer.</LI>

1959     <LI>Implemented generic cutaway. Prior to this, cutaways were implemented

1960         only in OpenGL by using OpenGL's clipping plane feature. This still
1961         pertains for OpenGL since it is very fast, but here cutaways are
1962         implemented using Boolean operations in a reasonably robust and
1963         reliable way. Based on the initial motivation and implementation on
1964         the management side from
1965         <A HREF="https://github.com/Geant4/geant4/pull/53">GitHub PR#53</A>.</LI>
1966     <LI>Re-worked and rationalised special mesh rendering utilities.
1967         The idea is that these are "standard" functions that are optional.
1968         They are optimised for OpenGL but they also work fine for ToolsSG and
1969         Qt3D. An attempt to draw a mesh with any other driver will result in a
1970         warning and only the container will be drawn. Other drivers will have to
1971         implement their own AddCompound(...G4Mesh...) function or choose to use
1972         the standard functions or some thereof.</LI>
1973     <LI>Take advantage of recent developments in HepPolyhedron for rendering:
1974         conversion of tetrahedra to enclosing polyhedron removing inner surfaces;
1975         conversion of boxes to enclosing polyhedron removing inner surfaces.
1976         Also take advantage of developments in G4PhysicalVolumeModel:
1977         when a mesh has been found, an artificial node is created and added
1978         to the PVPath whose physical volume points to the parameterisation.</LI>
1979     <LI>G4VisCommandsViewer: <TT>/vis/viewer/centreOn</TT> and
1980         <TT>centreAndZoomInOn</TT>:
1981         only fly and twinkle if 'KernelVisitElapsedTimeSeconds < 0.1'.
1982         Introducing <TT>/vis/viewer/resetCameraParameters</TT> UI command, resetting
1983         *only* the camera parameters (view direction, etc.).</LI>
1984     <LI>G4VSceneHandler: added utility function Draw3DRectMeshAsDots(..); for a
1985         rectangular 3-D mesh, draw as coloured dots, one dot randomly placed in
1986         each visible cell. Tidy Draw3DRectMeshAsDots().
1987         Allow for multiple meshes in a single screen; relevant for special mesh
1988         rendering.
1989         Implemented GetPointInBox() and GetPointInTet() to sample a random point
1990         inside a box and a tetrahedron.
1991         Exploit move operator when creating polyhedra for Special Mesh Rendering.
1992         Numerous improvements to comments and messaging.</LI>
1993     <LI>Introducing drawing of parameterised tetrahedral mesh.
1994         G4VSceneHandler::DrawTetMeshAsDots(): default tet mesh drawing.</LI>
1995     <LI>Ensure X-geometry string is copied correctly to a new viewer.</LI>
1996     <LI>G4VisCommandsCompound: improved command guidance of <TT>/vis/open</TT>.</LI>
1997     <LI>G4VisCommandsViewer: improved command guidance of
1998         <TT>/vis/viewer/create</TT>.</LI>
1999     <LI>G4VisParameters: added new accessors IsWindowLocationHintX/YNegative().</LI>
2000     <LI>G4VisCommandsTouchable: augment <TT>/vis/touchable/draw</TT>, added Boolean
2001         argument: if true, draw the extent (bounding box); Default false.
2002         In <TT>/vis/touchable/dump</TT>, fix missing dump of vis attributes.</LI>
2003     <LI>G4VViewer: added data member and access method for
2004         <TT>KernelVisitElapsedTimeSeconds</TT>. This is measured in
2005         ProcessView().</LI>
2006     <LI>In G4VisExecutive, introducing 'FALLBACK' drivers for TSGQt and VTKQt.
2007         A FALLBACK vis driver is selected if the user chooses a UI session that
2008         is not compatible with the requested driver. For example, if the user
2009         has built Geant4 with Qt, the TSGQt driver will be available and be
2010         the "default" driver, so <TT>/vis/open TSG</TT> will attempt to open
2011         TSGQt. But if the user has chosen a dumb terminal session, the vis
2012         manager selects TSGX11, for example, instead. Added TOOLSSG_OFFSCREEN.</LI>
2013     <LI>Improved messaging for the case that a driver is not found in the
2014         candidate list.</LI>
2015     <LI>Changed G4cout to G4warn in those cases where 'verbosity >= warnings'.</LI>
2016     <LI>Introduced compound command: <TT>/vis/plot <h1|h2> <id></TT>.
2017         This is the first part of a programme to facilitate the drawing of
2018         plots (if any have been registered with the analysis manager) at the
2019         end of a run. At the moment only the ToolsSG vis driver can offer this,
2020         so the vis manager issues appropriate messages. 
2021         Later, we hope to introduce something like <TT>/vis/reviewPlots</TT>,
2022         which will allow the user to view all available plots in sequence.</LI>
2023     <LI>G4VisManager: added access method: IsEnabled(). Register the new
2024         commands. In EndOfEvent(), protect view checking with mutex lock
2025         in MT mode, and deal better with the case of scene requesting no kept
2026         events (greatly speeds plotting).
2027         Only print list of available histograms if more than one per category.
2028         GeometryHasChanged() is a method that is called by the run
2029         manager. Sometimes the user chooses to delete the existing geometry
2030         tree and ask the run manager to construct a new detector geometry.
2031         Previously existing vis models of the geometry become invalid and the
2032         vis manager had to pick up the new geometry.
2033         The vis manager removes invalid models from the vis scenes and now adds
2034         the new version of the world back in. Other types of models, trajectory
2035         drawing, for example, if specified in the original scene, are kept in
2036         the new version of the scene.<BR>
2037         Implemented G4VisManager::DrawGeometry(), drawing a geometry tree starting
2038         at the specified physical volume.</LI>
2039     <LI>G4VisCommandsSceneAdd: new command <TT>/vis/scene/add/plotter</TT>,
2040         to add G4PlotterModel to end-of-run list.
2041         Adapted <TT>/vis/scene/add/volume</TT> UI command to new
2042         G4PhysicalVolumesSearchScene.</LI>
2043     <LI>G4Scene: redefined IsEmpty().</LI>
2044     <LI>G4VisCommandsViewerSet: improved messaging for
2045         <TT>/vis/viewer/set/lineWidth</TT>; this simply prints a message saying
2046         how *actually* to change line width.</LI>
2047     <LI>Introducing <TT>/vis/viewer/set/specialMeshRenderingOption <dots|surfaces></TT>
2048         UI command; "dots" draw one dot per mesh point; "surfaces" group mesh
2049         points by colour and material and compute the outer surface or envelope,
2050         removing internal shared faces. So far, only the "dots" option is
2051         implemented for some drivers.</LI>
2052     <LI>Introducing <TT>/vis/viewer/set/lineWidth</TT> UI command, a do-nothing command
2053         that tells how to change line width.</LI>
2054     <LI>Implemented </TT>/vis/reviewPlots</TT> UI command.</LI>
2055     <LI>G4VisCommandsSceneAdd: changed the default width of axes added to the
2056         scene with automatic length and width determination.</LI>
2057     <LI>G4VisCommandsCompound, G4VisCommandsSceneAdd, G4VisCommandsTouchable,
2058         G4VisCommandsViewer: fixed control of verbosity.</LI>
2059     </UL></LI>
2060 <LI><B>Modeling</B>
2061     <UL>
2062     <LI>G4Mesh: augmented available data for 3D rectangular mesh.
2063         Programmed for parameterised tetrahedron mesh.
2064         Simplified algorithm: now finding 1-deep rectangular meshes such as
2065         G4PhantomParameterisation.
2066         A simple parameterisation may only be one level; nested
2067         parameterisations may be 2- or 3-level.</LI>
2068     <LI>G4PhysicalVolumeModel: added <TT>LocalExtent</TT> and <TT>GlobalExtent</TT>
2069         to method GetAttDefs().
2070         Added modifiers; for AddCompound(mesh), provide an artificial node as
2071         an (optional) hook for anything that might be generated.
2072         Implemented generic cutaway: in G4PhysicalVolumeModel::DescribeSolid(),
2073         simplified clipping, sectioning and cutaway code.</LI>
2074     <LI>Migrated G4PhysicalVolumesSearchScene and G4TouchablePropertiesScene
2075         to use <TT>fTouchableFullPVPath</TT>.</LI>
2076     <LI>Retired G4BoundingSphereScene and G4PhysicalVolumeSearchScene.
2077         G4BoundingSphereScene accumulated bounding spheres and often
2078         overestimated the extent of the scene; it is now superseded by
2079         G4BoundingExtentScene. G4BoundingExtentScene deals directly with
2080         extents, which makes it neater and more tightly estimates the overall
2081         extent of the scene.</LI>
2082     <LI>G4PhysicalVolumeSearchScene is superseded by
2083         G4PhysicalVolumesSearchScene. G4PhysicalVolumesSearchScene finds all
2084         occurrences of a physical volume and returns a "findings vector".
2085         Removed last ambiguous and misleading argument in the constructor.</LI>
2086     <LI>G4PseudoScene: added AddCompound(const G4Mesh&) method; if special mesh
2087         rendering is set, this catches mesh candidates (certain types of
2088         parameterisations) and avoids descending into the parameterisations.</LI>
2089     <LI>G4PhysicalVolumeModel: added SetSpecialMeshRendering(true) to avoid
2090         traversing (certain types of) parameterisations (see above).
2091         Eliminated <TT>goto</TT> statements.</LI>
2092     <LI>Allow arrow proportions to be greater than 1/100. Produces more visible
2093         arrows for field visualisation and also obeys the input parameters more
2094         closely.</LI>
2095     </UL></LI>
2096 <LI><B>FukuiRenderer</B>
2097     <UL>
2098     <LI>Replaced use of sprintf() with snprintf(), to fix deprecation compilation
2099         warnings on macOS-13 SDK.</LI>
2100     </UL></LI>
2101 <LI><B>gMocren</B>
2102     <UL>
2103     <LI>G4GMocrenFileSceneHandler: removed redundant header inclusion.</LI>
2104     </UL></LI>
2105 <LI><B>OpenGL</B>
2106     <UL>
2107     <LI>G4OpenGLSceneHandler: in AddCompound(..), use base class utility
2108         G4VSceneHandler::Draw3DRectMeshAsDots(..); for parameterised tetrahedron
2109         mesh, call default G4VSceneHandler::DrawTetMeshAsDots(); added missing
2110         return statement for unimplemented cases; code tidy.</LI>
2111     <LI>G4OpenGLStoredViewer, G4OpenGLStoredQtViewer: added check on special
2112         mesh rendering option in CompareForKernelVisit().</LI>
2113     <LI>Updated comment about requesting a kernel visit when cutaway mode
2114         changes (noted but not relevant because OGL does its own cutaways).</LI>
2115     <LI>Minor tidy: speed cutaway check in G4OpenGLViewer::SetView().</LI>
2116     <LI>Retired display list re-use and display list limit.</LI>
2117     <LI>Added G4gl2ps, a class frontend to <TT>tools/gl2ps</TT> intended to
2118         be used by OpenGL and OpenInventor; does not depend directly of OpenGL.</LI>
2119     <LI>Have G4OpenGLViewer use the thread safe <TT>tools/gl2ps</TT>.</LI>
2120     <LI>Use StandardSpecialMeshRendering(mesh).</LI>
2121     <LI>Fixed compiler warnings in the use of G4OpenGLQtViewer::toggleProjection.</LI>
2122     <LI>Replaced use of sprintf() with snprintf(), to fix deprecation compilation
2123         warnings on macOS-13 SDK.</LI>
2124     <LI>Fixed compilation warnings on Intel/icc compiler for deprecated conversion
2125         of string literal to char* in G4OpenGLXmConvenienceRoutines and
2126         G4OpenGLXmViewer.</LI>
2127     </UL></LI>
2128 <LI><B>OpenInventor</B>
2129     <UL>
2130     <LI>Implemented special mesh rendering.</LI>
2131     <LI>Request kernel visit when cutaway mode changes in G4OpenInventorViewer.</LI>
2132     <LI>G4OpenInventorQtExaminerViewer: for macOS only, disabled the mouse wheel
2133         event handler to fix the trackpad zoom direction issue.</LI>
2134     <LI>G4OpenInventorViewer: removed misleading obsolete comment regarding
2135         kernel visit in the case of a change in vis attribute modifiers.</LI>
2136         Added check on special mesh rendering option in CompareForKernelVisit().</LI>
2137     <LI>G4OpenInventorQtExaminerViewer: fixed compilation warning on Intel
2138         compiler for shadowing data.</LI>
2139     <LI>Have G4OpenGLOpenInventorViewer and SoGL2PSAction using the thread safe
2140         tools/gl2ps.</LI>
2141     <LI>Replaced use of sprintf() and vsprintf() with snprintf() and vsnprintf()
2142         respectively, to fix deprecation compilation warnings on macOS-13 SDK.</LI>
2143     <LI>Fixed compilation warnings on Intel/icc compiler for deprecated conversion
2144         of string literal to char* in G4OpenInventorQtExaminerViewer.</LI>
2145     <LI>Fixed compilation warning on gcc-12.</LI>
2146     </UL></LI>
2147 <LI><B>Qt3D</B>
2148     <UL>
2149     <LI>G4Qt3DViewer: re-implemented wheelEvent() for perspective projection;
2150         now taking into account the extent of the scene.
2151         Added check on special mesh rendering option in CompareForKernelVisit().</LI>
2152     <LI>G4Qt3DSceneHandler:in AddCompound(..), use base class utility
2153         G4VSceneHandler::Draw3DRectMeshAsDots(..).</LI>
2154     <LI>Request kernel visit when cutaway mode changes in G4Qt3DViewer.</LI>
2155     <LI>G4Qt3DSceneHandler::AddCompound(): for parameterised tetrahedron mesh,
2156         call default G4VSceneHandler::DrawTetMeshAsDots().</LI>
2157     <LI>G4Qt3DSceneHandler: updated AddPrimitive(..) to current usage.
2158         Commented out line elimination in AddPrimitive(..), as too expensive for
2159         a large polyhedron; allow the graphics-reps utilities to optimise this.
2160         Use StandardSpecialMeshRendering(mesh).</LI>
2161     <LI>Fixed compilation warnings about shadowing.</LI>
2162     </UL></LI>
2163 <LI><B>ToolsSG</B>
2164     <UL>
2165     <LI>New offscreen sub-driver.</LI>
2166     <LI>G4ToolsSGViewer: handle ambient lightning; handling zb_png and zb_jpeg
2167         formats; corrected fSGViewer->set_clear_color().</LI>
2168     <LI>Request kernel visit when cutaway mode changes in G4ToolsSGViewer.</LI>
2169     <LI>G4ToolsSGViewer: reimplement wheel_rotate() for perspective projection;
2170         now taking into account the extent of the scene.
2171         Currently, the ToolsSG viewer cannot draw trajectories in MT mode, so
2172         in function SwitchToMasterThread() we draw any events that have been
2173         kept by the vis manager. It fixes an issue where plots were being drawn
2174         twice.</LI>
2175     <LI>Reactivate G4ToolsSGQtGLES::IsUISessionCompatible(), paves way for
2176         permitted instantiation of multiple TSG drivers.</LI>
2177     <LI>Access G4VVisCommand::G4VisManager pointer through static function
2178         GetVisManager() to prevent DLL issues on Windows.</LI>
2179     <LI>G4ToolsSGSceneHandler: in AddPrimitive(), define dots as a single pixel;
2180         Use GetMarkerSize() for circles and squares.
2181         In AddCompound(): for parameterised tetrahedron mesh, call default
2182         G4VSceneHandler::DrawTetMeshAsDots().
2183         Adding warning message if plot cannot be found.
2184         In SetPlotterHistograms(), suppressed <TT>/control/verbose</TT>
2185         messages for <TT>/analysis/*/get*</TT> commands.
2186         In AddPrimitive(..), comment out common line elimination, as too
2187         expensive for a large polyhedron; allow the graphics-reps utilities to
2188         optimise this. Use StandardSpecialMeshRendering(mesh).</LI>
2189     <LI>Changed namespace for g4tools code from "tools" to "toolx" for externals.</LI>
2190     </UL></LI>
2191 <LI><B>Vtk</B>
2192     <UL>
2193     <LI>Moved setting of G4VIS_USE_VTK_QT flag to <TT>interfaces</TT> module.</LI>
2194     <LI>Replaced reinterpret_cast with static_cast where possible.</LI>
2195     </UL></LI>
2196 </UL>
2197 
2198 <A NAME="env-notes">
2199 <H3><I>Environments</I></H3></A>
2200 <UL>
2201 <LI>Removed g4py and zmq builtin environments.
2202     The source and support for these have moved to GitHub under:
2203     <UL>
2204     <LI><A HREF="https://github.com/koichi-murakami/g4python">Geant4Py</A></LI>
2205     <LI><A HREF="https://github.com/koichi-murakami/zmq-geant4">ZMQ</A></LI>
2206     </UL></LI>
2207 </UL>
2208 
2209 <A NAME="data-notes">
2210 <H3><I>Data sets</I></H3></A>
2211 <UL>
2212 <LI>New low-energy data set version, <B>G4EMLOW-8.2</B>:
2213     <UL>
2214     <LI>New files for Nitrogen cross-sections for dna models.</LI>
2215     <LI>New files for fluorescence and Auger electron transitions for
2216         heavy elements <TT>Z=101-104</TT>.</LI>
2217     <LI>Added DNA files for the RPWBA models.</LI>
2218     </UL></LI>
2219 <LI>New neutron data files for low energy neutron transport with
2220     thermal cross-sections <B>G4NDL-4.7</B>:
2221     <UL>
2222     <LI>Updated <TT>ThermalScattering</TT> component, obtained from thermal
2223         scattering data from JEFF-3.3, and adding the ENDF/BVIII-0 materials
2224         not in JEFF-3.3, coupled to JEFF-3.3 nuclear cross-sections.</LI>
2225     </UL></LI>
2226 </UL></LI>
2227 
2228 <A NAME="ex-notes">
2229 <H3><I>Examples</I></H3></A>
2230 <UL>
2231 <LI>Updated reference outputs, macros, READMEs and scripts.</LI>
2232 <LI>Fixes for Doxygen documentation and coding guidelines.</LI>
2233 <LI>Fixed compilation warnings on Intel-icx compiler for set but unused
2234     variables.</LI>
2235 <LI><B><U>advanced</U></B>
2236     <UL>
2237     <LI>Updated to use default MixMax random generator.</LI>
2238     <LI><B>air_shower</B>
2239         <UL>
2240         <LI>Define all material properties in order of increasing energy.</LI>
2241         </UL></LI>
2242     <LI><B>amsEcal</B>
2243         <UL>
2244         <LI>Prefer pointer to <TT>const G4Material</TT> where possible.</LI>
2245         </UL></LI>
2246     <LI><B>brachytherapy</B>
2247         <UL>
2248         <LI>Migration to C++11/14/17 features.</LI>
2249         </UL></LI>
2250     <LI><B>CaTS</B>
2251         <UL>
2252         <LI>Fixed compilation warnings on latest gcc compilers.</LI>
2253         </UL></LI>
2254      <LI><B>ChargeExchangeMC</B>
2255         <UL>
2256         <LI>CexmcHadronicProcess: disabled integral method, as not applicable to
2257             this example.</LI>
2258         </UL></LI>
2259     <LI><B>eFLASH_radiotherapy</B>
2260         <UL>
2261         <LI>New application simulating the beamline and energy spectra based on the
2262             Triode Electron Gun Equipped ElectronFlash Manufactured by Sordina Iort
2263             Technologies S.p.A. available at the Centro Pisano Flash Radiotherapy (CPFR)
2264             at Pisa. The linac is able to provide low-energy electron flash beams and
2265             is currently the first machine installed in Italy capable of reaching
2266             FLASH dose-rate (MGy/s) and extremely high dose per pulse DPP).</LI>
2267         </UL></LI>
2268     <LI><B>eRosita</B>
2269         <UL>
2270         <LI>Migrated to use C++17 Standard. General code refactoring.</LI>
2271         <LI>Removed obsolete physics classes.</LI>
2272         <LI>Updated physics-list with Livermore and Penelope models.</LI>
2273         <LI>Replaced <TT>getenv()</TT> calls for data variables with
2274             G4FindDataDir().</LI>
2275         </UL></LI>
2276     <LI><B>gammaray_telescope</B>
2277         <UL>
2278         <LI>Migrated to use C++17 Standard. General code refactoring.</LI>
2279         </UL></LI>
2280     <LI><B>hadrontherapy</B>
2281         <UL>
2282         <LI>Prefer pointer to <TT>const G4Material</TT> where possible.</LI>
2283         </UL></LI>
2284     <LI><B>human_phantom</B>
2285         <UL>
2286         <LI>Fixed GDML description of the phantom.</LI>
2287         <LI>Code review.</LI>
2288         </UL></LI>
2289     <LI><B>ICRP110_HumanPhantoms</B>
2290         <UL>
2291         <LI>Use special mesh rendering.</LI>
2292         <LI>Corrected error in reading the first voxels (in x=0, y=0).</LI>
2293         <LI>Migration to C++11/14/17 features.</LI>
2294         </UL></LI>
2295     <LI><B>ICRP145_HumanPhantoms</B>
2296         <UL>
2297         <LI>New example implementing a ICRP145 human phantom, based on
2298             related <A HREF="https://www.icrp.org/publication.asp?id=ICRP%20Publication%20145">ICRP publication</A>.</LI>
2299         </UL></LI>
2300     <LI><B>iort_therapy</B>
2301         <UL>
2302         <LI>Simplified calls to SetProductionCut().</LI>
2303         </UL></LI>
2304     <LI><B>medical_linac</B>
2305         <UL>
2306         <LI>Replaced sprintf() use with std::to_string(); sprintf() deprecated
2307             on macOS-13, leading to compilation warnings.</LI>
2308         </UL></LI>
2309     <LI><B>microbeam</B>
2310         <UL>
2311         <LI>Moved back to original switching field value.</LI>
2312         </UL></LI>
2313     <LI><B>radioprotection</B>
2314         <UL>
2315         <LI>Added diamondTelescope detector. Messengers modified accordingly.</LI>
2316         <LI>Added python scripts to analyze the spectra files and calculate
2317             microdosimetric Quantities.</LI>
2318         </UL></LI>
2319     <LI><B>STCyclotron</B>
2320         <UL>
2321         <LI>Removed no-op lines; simplified calls to SetProductionCut().</LI>
2322         </UL></LI>
2323     </UL></LI>
2324 <LI><B><U>basic</U></B>
2325     <UL>
2326     <LI>Applied clang-tidy checks.</LI>
2327     <LI><B>B1</B>
2328         <UL>
2329         <LI>In vis.mac, commented TSG_OFFSCREEN usage example.</LI>
2330         </UL></LI>
2331     <LI><B>B3</B>
2332         <UL>
2333         <LI>Set new analysis file name for the second run in run2.mac to avoid
2334             overwriting the output from the first run.</LI>
2335         <LI>Activated merging of n-tuples with score n-tuple writer.</LI>
2336         <LI>Added commented setting in run2.mac.</LI>
2337         </UL></LI>
2338     <LI><B>B4</B>
2339         <UL>
2340         <LI>Activated merging of n-tuples with score n-tuple writer in B4d.</LI>
2341         </UL></LI>
2342     </UL></LI>
2343 <LI><B><U>extended</U></B>
2344     <UL>
2345     <LI><B>analysis</B>
2346         <UL>
2347         <LI>Use G4Accummulables for RunAction summary data in AnaEx01 and AnaEx02
2348             to get them merged in MT mode.</LI>
2349         <LI>Reordered runs in test macro (run the test run first to get meaningful
2350             output at the end).</LI>
2351         <LI>Updated AnaEx01 and AnaEx02 classes in shared with modifications applied
2352             in AnaEx03.</LI>
2353         <LI><B>AnaEx03</B>
2354             <UL>
2355             <LI>New example demonstrating usage of analysis commands for file
2356                 management, in particular writing histograms and n-tuples in a
2357                 file multiple times.</LI>
2358             </UL></LI>
2359         </UL></LI>
2360     <LI><B>biasing</B>
2361         <UL>
2362         <LI>Removed redundant code (forward declarations, includes) from GB*
2363             examples.</LI>
2364         </UL></LI>
2365     <LI><B>common</B>
2366         <UL>
2367         <LI>Applied new coding guidelines and added tests.</LI>
2368         </UL></LI>
2369     <LI><B>electromagnetic</B>
2370         <UL>
2371         <LI><B>TestEm1</B>
2372             <UL>
2373             <LI>In PhysicsList::AddRadioactiveDecay(), enable atomic de-excitation.
2374                 Addressing problem report
2375                 <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2494">#2494</A>.</LI>
2376             <LI>Added three new macros to play with StepFunction(): pRange,
2377                 alphaRange, ionRange.</LI>
2378             <LI>PhysicsList::AddRadioactiveDecay(): updated lifeTime threshold.</LI>
2379             <LI>Updated photoelec.mac macro.</LI>
2380             </UL></LI>
2381         <LI><B>TestEm3</B>
2382             <UL>
2383             <LI>Prefer pointer to <TT>const G4Material</TT> where possible.</LI>
2384             </UL></LI>
2385         <LI><B>TestEm5</B>
2386             <UL>
2387             <LI>Allow changing the gun position via UI command.</LI>
2388             <LI>Added summary on gamma processes.</LI>
2389             </UL></LI>
2390         <LI><B>TestEm7</B>
2391             <UL>
2392             <LI>Make local EM physics the same as EM physics option3 with
2393                 G4IonParameterizedModel.</LI>
2394             </UL></LI>
2395         <LI><B>TestEm9</B>
2396             <UL>
2397             <LI>Updated all user actions: more correct count of creator processes;
2398                 use C++11 keywords; removed not needed headers; moved ScoreNewTrack(..)
2399                 from Tracking to Stepping action class.</LI>
2400             <LI>Removed verbose data member in PhysListEmStandard, use the
2401                 <TT>verboseLevel</TT> defined in the base class for this purpose.</LI>
2402             </UL></LI>
2403         <LI><B>TestEm11</B>
2404             <UL>
2405             <LI>PhysicsList::AddRadioactiveDecay(): updated lifeTime threshold.</LI>
2406             </UL></LI>
2407         <LI><B>TestEm15</B>
2408             <UL>
2409             <LI>Added description of UI commands to control G4BetheHeitler5DModel.</LI>
2410             </UL></LI>
2411         <LI><B>TestEm16</B>
2412             <UL>
2413             <LI>Minor cleanup in vis.mac and run01.mac to make MT output more
2414                 readable.</LI>
2415             </UL></LI>
2416         <LI><B>TestEm17</B>
2417             <UL>
2418             <LI>Added new process of muon pair production by muons; extended analysis
2419                 and added new histograms.</LI>
2420             </UL></LI>
2421         </UL></LI>
2422     <LI><B>errorpropagation</B>
2423         <UL>
2424         <LI>New examples category and moved existing example (now renamed
2425             <TT>errProp</TT>) therein.</LI>
2426         </UL></LI>
2427     <LI><B>eventgenerator</B>
2428         <UL>
2429         <LI><B>particleGun</B>
2430             <UL>
2431             <LI>Updated reference in PrimaryGeneratorAction2.</LI>
2432             </UL></LI>
2433         <LI><B>pythia/decayer6</B>
2434             <UL>
2435             <LI>P6DExtDecayerPhysics: make sure the external decayer is set to
2436                 G4Decay process only once to avoid potential misleading.</LI>
2437             </UL></LI>
2438         <LI><B>pythia/py8decayer</B>
2439             <UL>
2440             <LI>Added ActionInitialization class.</LI>
2441             <LI>Updated pythia8_decayer to use ActionInitialization.
2442                 Code cleanup to avoid potential misleading.</LI>
2443             </UL></LI>
2444         </UL></LI>
2445     <LI><B>exoticphysics</B>
2446         <UL>
2447         <LI><B>channeling</B>
2448             <UL>
2449             <LI>Use single-scattering EM physics instead of Opt4 and disabled Coulomb
2450                 scattering.</LI>
2451             </UL></LI>
2452         <LI><B>monopole</B>
2453             <UL>
2454             <LI>G4MonopoleTransportation: set step status on volume boundary.</LI>
2455             <LI>Removed useless 'const_cast' of G4VSensitiveDetector.</LI>
2456             </UL></LI>
2457         <LI><B>ucn</B>
2458             <UL>
2459             <LI>Corrected value of epsMax, to 0.001 in DetectorConstruction.
2460                 Also fixed epsMin to be dimensionless.</LI>
2461             </UL></LI>
2462         </UL></LI>
2463     <LI><B>field</B>
2464         <UL>
2465         <LI><B>field01</B>
2466             <UL>
2467             <LI>Added Boris integration method as an option.</LI>
2468             <LI>In main(), demonstrating how to use G4TransporationParameters to set
2469                 looper values for transportation.</LI>
2470             <LI>F01FieldSetup: show how to control Epsilon Min/Max.</LI>
2471             </UL></LI>
2472         <LI><B>field04</B>
2473             <UL>
2474             <LI>Replaced sprintf() use with std::to_string(); sprintf() deprecated
2475                 on macOS-13, leading to compilation warnings.</LI>
2476             <LI>Corrected value of epsMax, to 0.001 n DetectorConstruction.
2477                 Also fixed epsMin to be dimensionless.</LI>
2478             <LI>Fixed compilation warning on gcc-12.</LI>
2479             </UL></LI>
2480         <LI><B>field05</B>
2481             <UL>
2482             <LI>Corrected value of epsMax, to 0.001 n DetectorConstruction.
2483                 Also fixed epsMin to be dimensionless.</LI>
2484             </UL></LI>
2485         </UL></LI>
2486     <LI><B>g3tog4</B>
2487         <UL>
2488         <LI>Updated common directory.</LI>
2489         </UL></LI>
2490     <LI><B>hadronic</B>
2491         <UL>
2492         <LI><B>FissionFragment</B>
2493             <UL>
2494             <LI>Replaced sprintf() use with std::to_string(); sprintf() deprecated
2495                 on macOS-13, leading to compilation warnings.</LI>
2496             </UL></LI>
2497         <LI><B>Hadr01</B>
2498             <UL>
2499             <LI>Added UI commands to enable charmed and bottom hadrons physics and
2500                 hypernuclei (and anti-hypernuclei) physics; 
2501                 added macro files to demonstrate this.</LI>
2502             </UL></LI>
2503         <LI><B>Hadr03</B>
2504             <UL>
2505             <LI>PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
2506                 Use G4NuclideTable::SetMeanLifeThreshold(1ns);
2507                 use QBBC as the default configuration.
2508             <LI>In Run, added protection for the case when G4NeutronGeneralProcess
2509                 is used; in that case it is not currently possible to access
2510                 cross-section via G4HadronicProcessStore. Addressing problem report
2511                 <A href="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2517">#2517</A>.</LI>
2512             <LI>Use default MixMax engine in main().</LI>
2513             </UL></LI>
2514         <LI><B>Hadr05</B>
2515             <UL>
2516             <LI>Prefer pointer to 'const G4Material' where possible.</LI>
2517             <LI>PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).</LI>
2518             </UL></LI>
2519         <LI><B>Hadr06</B>
2520             <UL>
2521             <LI>PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).</LI>
2522             </UL></LI>
2523         <LI><B>Hadr07</B>
2524             <UL>
2525             <LI>TrackingAction: print ions with zero meanLife.</LI>
2526             <LI>PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).</LI>
2527             </UL></LI>
2528         <LI><B>Hadr08</B>
2529             <UL>
2530             <LI>BiasingOperation: use Bertini cascade instead of pre-compound model,
2531                 as not applicable for pion interactions. The Bertini cascade is
2532                 applied from 0 to <TT>41 MeV</TT>, INCLXX from <TT>40 MeV</TT> to
2533                 <TT>12 GeV</TT>.</LI>
2534             <LI>Moved run initialisation to macro files.</LI>
2535             </UL></LI>
2536         <LI><B>Hadr09</B>
2537             <UL>
2538             <LI>Extended to exercise hypernuclei and anti-hypernuclei inelastic nuclear
2539                 interactions.</LI>
2540             </UL></LI>
2541         <LI><B>NeutronSource</B>
2542             <UL>
2543             <LI>PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).</LI>
2544             </UL></LI>
2545         <LI><B>ParticleFluence</B>
2546             <UL>
2547             <LI>New set of examples implementing different setups showing how to score
2548                 particle fluences (Sphere, Concentric Spheres, Layer, Calo).</LI>
2549             </UL></LI>
2550         </UL></LI>
2551     <LI><B>medical/DICOM</B>
2552         <UL>
2553         <LI>Introduced special mesh rendering of DICOM image.</LI>
2554         <LI>Replace sprintf with direct G4String use to remove deprecation warnings
2555             on macOS-13.</LI>
2556         </UL></LI>
2557     <LI><B>medical/dna</B>
2558         <UL>
2559         <LI><B>chem4</B>:
2560             <UL>
2561             <LI>Added macro commands to control chemical molecules and reactions.</LI>
2562             <LI>Minor correction for reaction type in macro file <TT>beam.in</TT>.</LI>
2563             <LI>Use <TT>thread-local</TT> flag in G4VMoleculeCounter.</LI>
2564             </UL></LI>
2565         <LI><B>chem5</B>:
2566             <UL>
2567             <LI>Use <TT>thread-local</TT> flag in G4VMoleculeCounter.</LI>
2568             </UL></LI>
2569         <LI><B>chem6</B>:
2570             <UL>
2571             <LI>Adding condition for only one event, to avoid potential FPE crash.</LI>
2572             <LI>Added PhysicsListMessenger.</LI>
2573             <LI>Added short chemical reaction list.</LI>
2574             <LI>Use <TT>thread-local</TT> flag in G4VMoleculeCounter.</LI>
2575             <LI>Added missing headers inclusion for self-consistency.</LI>
2576             <LI>Fixed analysis macros to allow running on Window.</LI>
2577             </UL></LI>
2578         <LI><B>dnaphysics</B>:
2579             <UL>
2580             <LI>In main(), enable visualisation only in interactive mode;
2581                 use G4RunManagerFactory.</LI>
2582             <LI>Added UI command to add different standard EM, DNA physics, and 
2583                 radioactive decay models.</LI>
2584             <LI>PhysicsList: added RadioactiveDecayPhysics.
2585                 Added possibility to change DNA physics via UI commands.</LI>
2586             </UL></LI>
2587         <LI><B>icsd</B>:
2588             <UL>
2589             <LI>PhysicsList: make use of nitrogen material.</LI>
2590             <LI>Geometry: propose two geometries, nanodosimeter (N2) and dna (THF).</LI>
2591             </UL></LI>
2592         <LI><B>jetcounter</B>:
2593             <UL>
2594             <LI>New example providing a setup for simulation of a typical experiment
2595                 with the Jet Counter nanodosimeter. Allows the calculation of the
2596                 ionisation cluster size distribution (ICSD) (the number of ionisations
2597                 per projectile) in a real sized cylindrical interaction volume (IV) of
2598                 the Jet Counter device.</LI>
2599             </UL></LI>
2600         <LI><B>microyz</B>:
2601             <UL>
2602             <LI>Added UI commands for TrackerSD radius selection.</LI>
2603             <LI>Added missing headers inclusion for self-consistency.</LI>
2604             </UL></LI>
2605         <LI><B>moleculardna</B>:
2606             <UL>
2607             <LI>New example showing how to simulate physics, physico-chemistry and
2608                 chemistry processes in DNA geometries, for simulating DNA damage.</LI>
2609             </UL></LI>
2610         <LI><B>scavenger</B>:
2611             <UL>
2612             <LI>Fixed analysis macros to allow running on Window.</LI>
2613             <LI>EmDNAChemistry: added forgotten header.</LI>
2614             <LI>Use <TT>thread-local</TT> flag in G4VMoleculeCounter.</LI>
2615             </UL></LI>
2616         <LI><B>spower</B>:
2617             <UL>
2618             <LI>In main(), enable visualisation only in interactive mode;
2619                 use G4RunManagerFactory.</LI>
2620             </UL></LI>
2621         </UL></LI>
2622     <LI><B>optical</B>
2623         <UL>
2624         <LI><B>LXe</B>
2625             <UL>
2626             <LI>Modified LXeSteppingAction: removed thread-local variable;
2627                 use PDG code instead of particle name; added more checks on
2628                 pointers; extended printout before fatal exception.</LI>
2629             </UL></LI>
2630         <LI><B>OpNovice2</B>
2631             <UL>
2632             <LI>Added new macro complexRindex.mac, using dielectric-metal surface with
2633                 the surface having a complex index of refraction.</LI>
2634             <LI>Added new histograms to record separately Fresnel reflection, TIR,
2635                 absorption, etc.</LI>
2636             <LI>Use new histos to plot spike reflection/absorption vs angle on surface
2637                 (useful for complex refractive index).</LI>
2638             <LI>PrimaryGeneratorMessenger: fixed command /opnovice2/gun/randomDirection.
2639                 Based on
2640                 <A HREF="https://github.com/Geant4/geant4/pull/33">GitHub PR#33</A>.</LI>
2641             <LI>Added local SteppingVerbose to print velocity with
2642                 <TT>/tracking/verbose 1</TT>.</LI>
2643             <LI>New macro coated.mac, and book-keeping code, to show
2644                 reflection/refraction from thin film coating.</LI>
2645             <LI>SteppingAction: check that group velocity is correct.
2646                 Don't include Absorbed or Detected photons in plots for forward-going

2647                 particles.</LI>

2648             </UL></LI>

2649         <LI><B>wls</B>

2650             <UL>

2651             <LI>Fixed compilation warning on gcc-12.</LI>

2652             </UL></LI>

2653         </UL></LI>

2654     <LI><B>parallel</B>

2655         <UL>

2656         <LI><B>MPI</B>

2657            <UL>

2658            <LI>Removed use of obsolete G4DeveloperAPI functions from CMake script.</LI>

2659            <LI>Changed namespace for g4tools code from <TT>tools::mpi</TT> to

2660                <TT>toolx::mpi</TT>.</LI>

2661            <LI>Updated analysis classes for changes in analysis module.</LI>

2662            <LI>Fixed exMPI04 example failing in sequential mode when MPI n-tuple

2663                merging is activated.</LI>

2664            </UL></LI>

2665         </UL></LI>

2666     <LI><B>parameterisations</B>

2667         <UL>

2668         <LI><B>Par04</B>

2669            <UL>

2670            <LI>Added python training scripts.</LI>

2671            <LI>Added model conversion to ONNX and LWTNN to the training script.</LI>

2672            <LI>Added updated version of the training code (PEP 8 style guide,

2673                formatting with YAPF, annotation with types, code upgrade to TF2.9,

2674                logic for GPU usage management).</LI>

2675            <LI>Added support of LibTorch for inference.</LI>

2676            <LI>Fixed warnings and lwtnn macro.</LI>

2677            <LI>Changed visualization scripts for fast simulation.</LI>

2678            <LI>Added new control histograms.</LI>

2679            <LI>Changed extension of macros from .in to .mac.</LI>

2680            </UL></LI>

2681         </UL></LI>

2682     <LI><B>radioactivedecay</B>

2683         <UL>

2684         <LI><B>Activation</B>

2685             <UL>

2686             <LI>PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).</LI>

2687             </UL></LI>

2688         <LI><B>rdecay01</B>

2689             <UL>

2690             <LI>PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).

2691                 In constructor, adjust meanLifeTime and halfLifeTime.

2692                 Added SetInternalConversionFlag() function.<BR>

2693                 Moved setup of options to the class constructor; use minimal

2694                 list of particles defined in G4EmBuilder; added extended comments

2695                 to the code; updated headers according to C++11.

2696                 Adjusted meanLifeTime and halfLifeTime.</LI>

2697             <LI>Use default MixMax engine in main().</LI>

2698             <LI>Fixed compilation warning on gcc-12.</LI>

2699             </UL></LI>

2700         </UL></LI>

2701     <LI><B>runAndEvent</B>

2702         <UL>

2703         <LI><B>RE02</B>

2704            <UL>

2705            <LI>Replaced sprintf() with std::ostringstream to fix deprecation

2706                warnings on macOS-13.</LI>

2707            </UL></LI>

2708         <LI><B>RE07</B>

2709            <UL>

2710            <LI>Renamed static class member <TT>fMasterTrackingManager</TT>.</LI>

2711            <LI>Applied clang-format to code.</LI>

2712            </UL></LI>

2713         </UL></LI>

2714     </UL>

2715 </UL>

2716 

2717 <P> </P>

2718 <A NAME="10."></a>

2719 <HR>

2720 

2721 <!-- ============================================== -->

2722 

2723 <H2>10. Appendix</H2>

2724 

2725 <A NAME="migration-notes">

2726 <H3>A1 - Location of Geant4's datasets<I></I></H3></A>
2727 <P> </P>
2728 Use of environment variables to locate Geant4's datasets at application

2729 runtime is now optional, the following fallback-based search is being used

2730 for backward compatibility with existing setups:

2731 <UL>

2732 <LI>If an environment variable for an individual dataset, e.g.

2733     G4ENSDFSTATEDATA, is set, then this is used as the location of that

2734     dataset and no further search for that dataset is performed.

2735     The toolkit code raises a <TT>G4Exception</TT> if the dataset is not

2736     present.</LI>

2737 <LI>If the GEANT4_DATA_DIR environment variable is set, then this is taken

2738     as a directory under which all datasets are located, and no further

2739     search is performed. The toolkit code raises a <TT>G4Exception</TT> if

2740     the requested dataset is not present in this directory.</LI>

2741 <LI>If none of the above environment variables are set then datasets are

2742     searched for under the following ordered sequence of paths:

2743     <OL>

2744     <LI>The (absolute) path set at configuration time by the

2745         GEANT4_INSTALL_DATADIR CMake variable;

2746     <LI>Subdirectories <TT>share/Geant4/data</TT>, <TT>share/geant4/data</TT>,

2747         <TT>share/data</TT>, and <TT>data</TT> of the Geant4's install
2748         location as set at configuration time by the CMAKE_INSTALL_PREFIX
2749         CMake variable (<TT>C:\\Program Files</TT> (Windows only);
2750         <TT>C:\\Geant4</TT> (Windows only); <TT>/usr/local</TT>,
2751         <TT>/usr</TT>).
2752     </OL>
2753     The toolkit code raises a <TT>G4Exception</TT> if the requested dataset
2754     is not found in any of these locations.</LI>
2755 <LI>User code that directly accesses the datasets should migrate from use
2756     of raw <TT>std::getenv()</TT> calls to the builtin <TT>G4FindDataDir</TT>
2757     free function, e.g.
2758     <PRE>
2759     #include "G4EnvironmentUtils.hh"
2760 
2761     // const char* p = std::getenv("G4ENSDFSTATEDATA");
2762     const char* p = G4FindDataDir("G4ENSDFSTATEDATA");
2763     </PRE>
2764     which implements the above search sequence and does not rely on the
2765     per-dataset environment variables being set; <TT>nullptr</TT> is
2766     returned if the dataset is not located, it being up to the callee to
2767     decide what to do in this situation.</LI>
2768 </UL>
2769 
2770 <HR>
2771 
2772 </BODY>
2773 </HTML>