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 & 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 & 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>