Back to home page

EIC code displayed by LXR

 
 

    


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

0001 <HTML>
0002 <HEAD>
0003 <TITLE>Geant4 10.7 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 10.7 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 4<SUP>th</SUP>, 2020</I></B>
0020 </FONT>
0021 </TD></TR>
0022 </TABLE>
0023 
0024 <BR><BR>
0025 <HR ALIGN="Center" SIZE="7%">
0026 <P>
0027 The code and binary libraries for the supported systems are available
0028 through our <A TARGET="ext" HREF="http://cern.ch/geant4/support/download">Source
0029 Code Web page</A>.
0030 </P>
0031 <P>
0032 <I>We are grateful for the efforts of Geant4 users who have provided
0033    detailed feedback or comprehensive reports of issues.
0034    We thank in particular those who have contributed corrections,
0035    improvements or developments included in this release. </I>
0036 </P>
0037 <P>
0038 Please refer to the
0039 <A TARGET="ext" HREF="http://cern.ch/geant4/support/user_documentation">Geant4
0040 User Documentation</A> for further information about using Geant4.
0041 </P>
0042 
0043 <H2><I>Contents</I></H2>
0044 <OL>
0045 <LI><A HREF="#1.">Supported and Tested Platforms</A></LI>
0046 <LI><A HREF="#2.">Supported CLHEP and VecGeom versions</A></LI>
0047 <LI><A HREF="#3.">Items for migration of the user code</A></LI>
0048 <LI><A HREF="#4.">New Developments and Capabilities</A></LI>
0049 <LI><A HREF="#5.">Expected effects on physics and performance</A></LI>
0050 <LI><A HREF="#6.">Known Run-Time Problems and Limitations</A></LI>
0051 <LI><A HREF="#7.">Compilation Warnings</A></LI>
0052 <LI><A HREF="#8.">Geant4 Software License</A></LI>
0053 <LI><A HREF="#9.">Detailed list of changes and fixes</A></LI>
0054 </OL>
0055 
0056 <P> </P>
0057 <A NAME="1."></a>
0058 <HR>
0059 
0060 <!-- ============================================== -->
0061 
0062 <H2>1. Supported and Tested Platforms</H2>
0063 
0064 Platforms:
0065 <UL>
0066 <LI>Linux, gcc-4.9.3.<BR>
0067     Tested on 64 bit architectures (Intel or AMD) with
0068     CERN CentOS Linux 7 (CC7) (based on CentOS Linux 7).</LI>
0069 <LI>MacOS 10.15 Catalina with Apple LLVM/Clang-12.0 (llvm/clang-10)</LI>
0070 <LI>Windows-10 with Visual C++ 14.28 (Visual Studio 2019)</LI>
0071 </UL>
0072 
0073 More verified and tested configurations (64 bits):
0074 <UL>
0075 <LI>Linux, gcc-5.4/6.3/7.4/8.2/9.3/10.2, clang-8/9/10</LI>
0076 <LI>Linux, Intel-icc 19.1</LI>
0077 <LI>MacOS 10.14 Mojave with Apple LLVM/Clang-10/11</LI>
0078 <LI>MacOS 11 Big Sur with Apple LLVM/Clang-12 (Intel chips only)</LI>
0079 </UL>
0080 
0081 <P> </P>
0082 <A NAME="2."></A>
0083 <HR>
0084 
0085 <!-- ============================================== -->
0086 
0087 <H2>2. Supported CLHEP and VecGeom version</H2>
0088 
0089 This release of Geant4 requires and has been verified with
0090 <A TARGET="ext" HREF="http://cern.ch/clhep/">CLHEP</A>, release <B>2.4.4.0</B>.
0091 Use of a different CLHEP version may cause incorrect simulation results.<BR>
0092 NOTE: an internal module of the relevant CLHEP classes is provided and can be
0093 used as alternative to an external CLHEP library installation.<BR>
0094 A configuration option allows a Geant4 installation to use the
0095 <A HREF="https://gitlab.cern.ch/VecGeom/VecGeom/">VecGeom Library</A>
0096 primitives, to replace the original Geant4 solids. VecGeom version
0097 <B>1.1.8</B> is required when using such configuration.
0098 
0099 <P> </P>
0100 <A NAME="3."></A>
0101 <HR>
0102 
0103 <!-- ============================================== -->
0104 
0105 <H2>3. Items for migration of the user code</H2>
0106 
0107 Listed here is some relevant information on developments included in this
0108 release.
0109 Note that for all users a full re-installation of libraries (or a full
0110 re-compilation) and a re-compilation of user applications is required.
0111 
0112 <P> </P>
0113 <B>General</B>
0114 <P> </P>
0115 <UL>
0116 <LI>Code using the G4MULTITHREADED preprocessor macro must include the
0117     <TT>G4Threading.hh</TT> header before using the macro.</LI>
0118 <LI>Minimum required version of CMake to build Geant4 is 3.8.
0119     Allow specification of C++20 for CMake 3.12 and above.</LI>
0120 </UL>
0121 
0122 <P> </P>
0123 <B>Geometry, Fields and Transportation</B>
0124 <P> </P>
0125 <UL>
0126 <LI>The default integration method for field propagation in a pure magnetic
0127     field is changed to use a templated stepper G4TDormandPrince45.
0128     A speedup is expected.    
0129     Instead a slowdown can occur if a large fraction of 'long' steps
0130     propagating in a vacuum or gas volume with a strong-enough magnetic field.
0131     To restore the previous method used in Geant4 10.6. set <TT>nullptr</TT>
0132     as third argument and the fourth argument <TT>stepperDriverId=4</TT> in
0133     the relevant constructor of G4ChordFinder.</LI>
0134 </UL>
0135 
0136 <P> </P>
0137 <B>Electromagnetic and optical physics</B>
0138 <P> </P>
0139 <UL>
0140 <LI>Moved optical physics parameters to new G4OpticalParameters class.</LI>
0141 <LI>Added new threshold for muon/hadron bremsstrahlung and e+e- pair production
0142     allowing to stop a track when energy transfer exceeds the defined threshold
0143     and makes a new vertex.</LI>
0144 <LI>Added two extra sets of StepFunction parameters for light ions and generic
0145     ions. Added corresponding UI commands allowing one to customise step
0146     limitation for ions separately from step limits for electrons or hadrons.</LI>
0147 </UL>
0148 
0149 <P> </P>
0150 <B>Hadronic physics</B>
0151 <P> </P>
0152 <UL>
0153 <LI>The UI commands for Radioactive Decay are named <TT>/process/had/rdm/...</TT>.
0154     The old commands <TT>/grdm/...</TT> are still valid, but deprecated,
0155     and will be removed in the next major release, Geant4 11.</LI>
0156 <LI>To enable building of ParticleHP as HP, use the new CMake option
0157     <TT>-GEANT4_BUILD_PHP_AS_HP=ON</TT> when building Geant4.
0158     The old environment variable <TT>PHP_AS_HP</TT> is still valid, but
0159     deprecated, and will be removed in the next major release.</LI>
0160 </UL>
0161 
0162 <P> </P>
0163 <B>Data Sets</B>
0164 <P> </P>
0165 <UL>
0166 <LI>This release introduces new data set versions.
0167     Please see the corresponding details in
0168     <A href="#data-notes">Section 9</A> of this document.
0169     <UL>
0170     <LI>New data set versions: <TT>G4EMLOW-7.13, G4RadioactiveDecay-5.6,
0171         G4PhotonEvaporation-5.7, G4ENSDFSTATE-2.3, G4PARTICLEXS-3.1,
0172         G4RealSurface-2.2</TT>.</LI>
0173     <LI>In order to use <TT>ParticleHP</TT> for charged particles
0174         (protons, deuterons, tritons, He3 and alphas), an optional data
0175         set <TT>G4TENDL-1.3.2</TT> is required, and can be optionally
0176         downloaded in addition.</LI>
0177     </UL></LI>
0178 </UL>
0179 
0180 <A NAME="4."></A>
0181 <HR>
0182 
0183 <!-- ============================================== -->
0184 
0185 <H2>4. New Developments and Capabilities </H2>
0186 
0187 <B>General</B>
0188 <UL>
0189 <LI>Introducing new optional (Beta) tasking system, based on PTL
0190     (Parallel Tasking Library), dedicated run manager (G4TaskRunManager) and
0191     factory (G4RunManagerFactory), enabling use of tasks for the event loop.
0192     The tasking system is fully compatible with Intel TBB, which can be
0193     selected if GEANT4_USE_TBB=ON is specified when configuring CMake. The
0194     default behavior for tasking is to submit the tasks to an internal
0195     thread-pool and task-queue.</LI>
0196 <LI>Introduced general facilities based on GFlash implementation to facilitate
0197     multiple hit (energy & position) creation from fast simulation models.</LI>

0198 <LI>Updated SI constants, based on May 2019 redefinition of SI units.</LI>

0199 <LI>Added G4Backtrace header for printing backtraces from raised signals.

0200     Can be enabled by setting GEANT4_BUILD_BUILTIN_BACKTRACE option at

0201     configuration.</LI>

0202 <LI>New profiling settings for TiMemory which allow per-{run,event,track,step}

0203     profiling when GEANT4_USE_TIMEMORY is enabled.</LI>

0204 <LI>Extended CMake build system to support G4Py activation through

0205     GEANT4_USE_PYTHON flag.</LI>

0206 <LI>Simplified CMake builds to enable future modularisation of Geant4

0207     libraries.</LI>

0208 </UL>

0209 

0210 <B>Analysis</B>

0211 <UL>

0212 <LI>Major upgrade of analysis module, including support for multiple files

0213     and multiple output types in the same run; defeined new methods and
0214     corresponding UI commands. The new functions are available through a new
0215     G4GenericAnalysisManager class, and are demonstrated in the basic B5
0216     example.</LI>
0217 <LI>Enabled handling of automatic min/max axes values in case of log scale
0218     in analysis tools.</LI>
0219 </UL>
0220 
0221 <B>Digitization, Hits &amp; Scoring</B>
0222 <UL>
0223 <LI>Added layered mass geometry option for the new "probe" scoring mesh.</LI>
0224 <LI>Introducing G4VPrimitivePlotter allowing the user to extend a primitive
0225     scorer; added G4VScoreHistFiller and G4TScoreHistFiller, allowing scorers
0226     to fill histograms defined through Geant4 Analysis tools.</LI>
0227 </UL>
0228 
0229 <B>Geometry and Field</B>
0230 <UL>
0231 <LI>Improved speed for detection of volume overlaps either through
0232     UI commands or at geometry construction.</LI>
0233 <LI>New templated field classes for equation and selected steppers
0234     to avoid virtual call for field and equation respectively.
0235     Non-virtual calls are expected to provide a direct speedup.
0236     In addition key methods are made inline to enable compilers to
0237     seek extra speedup by embedding them to avoid any function call.</LI>
0238 <LI>New class G4DriverReporter to print progress of field drivers.</LI>
0239 <LI>Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.</LI>
0240 <LI>Enabled use of whiteboard for logging/debugging in G4MultiLevelLocator,
0241     if "check-mode" in navigation is being activated through UI command.</LI>
0242 </UL>
0243 
0244 <B>Materials</B>
0245 <UL>
0246 <LI>Added two new public methods to add elements to a material:
0247     AddElementsByNumberOfAtoms(...) and AddElementByMassFraction(...).</LI>
0248 <LI>Added a new method ConstPropertyExists() to G4MaterialPropertiesTable.
0249     Added new methods to access/add properties with G4String and std::vector.</LI>
0250 <LI>Added new properties for scintillation allowing 3 time constants and a
0251     second wavelength shifter in the same material in G4MaterialPropertiesTable
0252     and G4MaterialPropertiesIndex.</LI>
0253 </UL>
0254 
0255 <B>Electromagnetic physics</B>
0256 <UL>
0257 <LI>Added two extra sets of StepFunction parameters for light ions and generic
0258     ions. Added corresponding UI commands allowing one to customise step
0259     limitation for ions separately from step limits for electrons or hadrons.</LI>
0260 <LI>Introducing thermal model of positronium decay to two gammas.
0261     In this model, the positronium acquires a mean kinetic energy on formation,
0262     which contributes to a small non-collinearity of the gammas, detectable and
0263     significant in PET.</LI>
0264 <LI>Added new EM model for polarized gamma elastic scattering.</LI>
0265 <LI>New class for handling the numerical Differential Cross-Sections(DCS) for
0266     Coulomb scattering of e-/e+, and added new model, implementing single
0267     Coulomb scattering for e-/e+.</LI>
0268 <LI>Added new classes and models for micro-dosimetry simulation.</LI>
0269 <LI>Added new threshold for muon/hadron bremsstrahlung and e+e- pair production
0270     allowing to stop a track when energy transfer exceeds the defined threshold
0271     and makes a new vertex.</LI>
0272 <LI>Added a model for gamma-ray elastic interactions, able to account for
0273     molecular interference effects, by using database or user-custom form
0274     factors.</LI>
0275 <LI>Implemented three time constants for G4Scintillation, and allow multiple
0276     time constants to work with scintillation by particle type.
0277     Added second wavelength shifting process within the same material.</LI>
0278 </UL>
0279 
0280 <B>Hadronic physics</B>
0281 <UL>
0282 <LI>For charm and bottom hadron-nuclear (elastic and inelastic)
0283     cross sections, the Glauber-Gribov approach has been extended to
0284     cover heavy hadrons.
0285     For final-state elastic nuclear scattering of charm and bottom
0286     hadron projectiles, a simple treatment is utilized.
0287     For final-state inelastic nuclear scattering of charm and bottom
0288     hadron projectiles, both Geant4 string models (FTF and QGS) have
0289     been extended to deal with charm and bottom quarks and diquarks
0290     carried by the heavy projectile hadron, as well as with the
0291     possibility of creating charm-anti_charm and bottom-anti_bottom
0292     pairs from the vacuum during the string fragmentation phase.
0293     Cascade models are currently not applicable for heavy hadrons and
0294     string models cannot handle them properly at very low energies:
0295     below 100 MeV a dummy model that returns as final state the
0296     initial state unchanged is utilized.
0297     The decays of secondary heavy hadrons - charm and bottom hadrons
0298     created by inelastic nuclear interactions of primary hadrons -
0299     cannot be pre-defined by Monte Carlo event generators, therefore
0300     a very simple approach is currently used: one single, fully hadronic
0301     decay is defined for each "long"-lived charm and bottom hadron,
0302     with a simple multi-body phase-space treatment of the decay
0303     kinematics. </LI>
0304 <LI>For the evaluation of systematic errors due to uncertainties in
0305     the Geant4 hadronic cross sections we recommend to scale up and
0306     down the cross sections, independently for elastic and inelastic
0307     interactions, and independently for different types of hadrons.
0308     Currently, this is possible for the following three categories of
0309     hadrons: nucleons (i.e. proton and neutron together), pions (i.e.
0310     pion+ and pion- together), all the rest of hadrons (i.e. kaons,
0311     hyperons, anti-baryons, light ions, light anti-ions, charm and
0312     bottom hadrons all together).
0313     New public methods of the singleton class G4HadronicParameters
0314     allow to enable the scaling of these cross sections (disabled by
0315     default), and to set the scaling factors (by default 1.0).
0316     Here are some rough, practical suggestions on the scaling of the
0317     cross sections: +/- 10% variation for nucleons and pions;
0318     +/- 15-20% variation for kaons; +/- 20-30% variation for other
0319     hadrons. Moreover, bigger variations might be considered at low
0320     energies to account for the challenge of describing the shapes
0321     of cross sections in the threshold and resonance region. </LI>
0322 <LI>New utility class to access hadronic processes, allowing to customise
0323     hadronic cross-sections per particle type.</LI>
0324 <LI>New UI messenger for hadronic physics, currently used for controlling
0325     verbosity level: the UI command <TT>/process/had/verbose 0</TT> allows
0326     to switch off the print-out at initialization of hadronic processes,
0327     models and cross-sections (similar to the existing command
0328     <TT>/process/em/verbose 0</TT> to switch off the print-out of
0329     electromagnetic physics information).</LI>
0330 <LI>New UI command to change the default upper energy limit
0331     (default: 100 TeV): <TT>/process/had/maxEnergy ...</TT></LI>
0332 <LI>New G4PARTICLEXS-3.1 dataset provides accurate fusion cross-sections
0333     based on data, more accurate inelastic cross-sections for neutrons,
0334     protons, light ions, and gamma for the full energy range.</LI>
0335 <LI>Replaced where possible the use of environmental variables in hadronic
0336     models with appropriate UI commands.</LI>
0337 <LI>A new low-energy gamma-nuclear final-state model,
0338     <TT>G4LowEGammaNuclearModel</TT>, based on precompound de-excitation
0339     and providing isomer production and gamma transitions, is used in
0340     <TT>G4EmExtraPhysics</TT>.</LI> 
0341 <LI>Improved treatment of antibaryon interactions in QGS.</LI>
0342 <LI>Added handling of lepto-nuclear interactions for anti_nu_e, nu_e,
0343     anti_mu_nu and mu_nu.</LI>
0344 <LI>A new coalescence model, useful in particular for Cosmic Ray applications,
0345     has been introduced. By considering the list of secondaries produced by a
0346     string model, it forms deuterons and antideuterons from, respectively,
0347     proton-neutron and antiproton-antineutron pairs with close momenta.
0348     By default, the coalescence model is disabled; it can be switched on
0349     via the UI command <TT>/process/had/enableCRCoalescence true</TT>.</LI>
0350 </UL>
0351 
0352 <B>Physics Lists</B>
0353 <UL>
0354 <LI>Enabled charm and bottom hadronic physics in nearly all physics lists,
0355     in particular those of interest for HEP.
0356     (The main exceptions are the following physics lists:
0357     <TT>QGSP_BIC, QGSP_BIC_HP, QGSP_BIC_AllHP</TT>.)
0358     The QGS-based physics lists use, as for other hadrons, QGSP for
0359     charm and bottom inelastic interactions above 12 GeV, whereas FTFP
0360     is used below 25 GeV. The other, FTF-based physics lists, use FTFP
0361     at all energies, with a simplified approach below 100 MeV.</LI>
0362 <LI>New physics-list builder classes have been introduced to allow
0363     alternative builders for anti_proton, anti_neutron, hyperons and
0364     anti-hyperons nuclear interactions at high energies with QGSP.</LI>
0365 <LI>QGS-based physics lists use now QGS for hyperons, anti-hyperons,
0366     anti_proton and anti_neutron projectiles at energies above 12 GeV.</LI>
0367 <LI>Physics lists that include <TT>G4EmExtraPhysics</TT> use the new
0368     low-energy gamma-nuclear model (<TT>G4LowEGammaNuclearModel</TT>)
0369     below 200 MeV (while Bertini cascade is used above 199 MeV up to 6 GeV,
0370     and QGSP above 3 GeV). The use of this model, its energy threshold and
0371     the alternative cross section <TT>G4GammaNuclearXS</TT> can be
0372     configured.</LI>
0373 <LI>Extended EM physics-list configurator interface allowing application of
0374     extra configuration on top of any available DNA constructor.</LI>
0375 <LI>Cleanup destruction of physics processes at the end of job.
0376     Reviewed ownership/deletion of physics models at the end of the run.</LI>
0377 </UL>
0378 
0379 <B>Visualization and Interfaces</B>
0380 <UL>
0381 <LI>Introduced new alpha-version of a Qt3D visualization driver, based
0382     on native Qt rendering.</LI>
0383 <LI>Added support for Open Inventor Qt visualisation driver to be built and
0384     used in applications. The OpenInventor module can be built with either
0385     the OIQt driver, or with the OIX/OIXE drivers, but not with both.
0386     Enabled use of OIQt viewer with Qt UI.</LI>
0387 </UL>
0388 
0389 <B>Examples</B>
0390 <UL>
0391 <LI>New extended example showing how to use Geant4 as a generator for
0392     simulating inelastic hadron-nuclear interactions.</LI>
0393 <LI>New extended example demonstrating how to create multiple energy deposits
0394     from the fast simulation model.</LI>
0395 <LI>New extended example implementing the typical setup of a Small Angle
0396     X-ray Scattering (SAXS) experiment. It is meant to illustrate the usage
0397     of molecular interference (MI) of Rayleigh (coherent) scattering of photons
0398     inside the matter.</LI>
0399 <LI>New extended medical example (dna/chem6) providing scoring of the
0400     radiochemical yield G as a function of time and LET.</LI>
0401 <LI>New advanced example showing how to efficiently simulate particle transport
0402     through aerosols containing billions of randomly-positioned droplets, using
0403     an ordinary workstation.</LI>
0404 <LI>New advanced example Gorad (Geant4 Open-sourced Radiation Analysis and
0405     Design), a turn-key application for radiation analysis and spacecraft
0406     design.</LI>
0407 <LI>New advanced example HGCal_testbeam based on a Geant4 standalone application
0408     for the CMS High Granularity Calorimeter (HGCal) studies, to demonstrate a
0409     test beam setup used in HEP experiments, and as a base for the validation
0410     studies and comparison with experimental data.</LI>
0411 <LI>New advanced example modelling the ICRP110 reference computational human
0412     phantoms and calculating the dose in individual voxels and entire
0413     organs. The human male phantom is created from a whole-body
0414     clinical CT image.</LI>
0415 </UL>
0416 
0417 <A NAME="5."></A>
0418 <HR>
0419 
0420 <!-- ============================================== -->
0421 
0422 <H2>5. Expected effects on physics and computing performance</H2>
0423 
0424 <B>General</B>
0425 <UL>
0426 <LI>Revision of G4PhysicsVector classes to use similar algorithm for bin
0427     selection and adding checks on vectors length.</LI>
0428 <LI>Code reorganisation and optimisations in G4Transportation has been
0429     measured to provide a persistent reduction of instruction-TLB misses,
0430     leading to some measurable CPU speedup.</LI>
0431 </UL>
0432 
0433 <B>Electromagnetic physics</B>
0434 <UL>
0435 <LI>Results are expected to be similar to release 10.6 for EM calorimeters.</LI>
0436 <LI>Expected some measurable CPU speedup.</LI>
0437 <LI>Expected improved angular distributions for e+e- pairs.</LI>
0438 </UL>
0439 
0440 <B>Hadronic physics</B>
0441 <UL>
0442 <LI>Hadronic showers remain similar to those of the latest patch release
0443     10.6.p03, with the only expected difference of a few percent narrower
0444     showers for FTF-based physics lists.
0445     Comparing the hadronic showers of the two physics lists FTFP_BERT and
0446     QGSP_BERT, the latter show sligthly higher response, larger energy
0447     fluctuations, and longer and narrower shapes with respect to the
0448     FTFP_BERT showers. </LI>
0449 <LI>Expected more accurate cross-sections for light ions including fusion
0450     reactions.</LI>
0451 <LI>Expected slightly faster computation of hadronic cross-sections.</LI>
0452 </UL>
0453 
0454 <P> </P>
0455 <A NAME="6."></A>
0456 <HR>
0457 
0458 <!-- ============================================== -->
0459 
0460 <H2>6. Known Run-Time Problems and Limitations</H2>
0461 For a complete list of outstanding run-time problems and to submit any
0462 problem you may find while running this version of Geant4, please refer
0463 to the
0464 <A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem
0465 Reporting System</A>.
0466 
0467 <P> </P>
0468 <A NAME="7."></A>
0469 <HR>
0470 
0471 <!-- ============================================== -->
0472 
0473 <H2>7. Compilation Warnings</H2>
0474 
0475 There may be a few compilation warnings on some platforms, particularly
0476 on Windows with Visual Studio, where warnings level has been raised when
0477 building examples.
0478 We do not believe that any of these lead to incorrect run-time behaviour.
0479 
0480 <P> </P>
0481 <A NAME="8."></A>
0482 <HR>
0483 
0484 <!-- ============================================== -->
0485 
0486 <H2>8. Geant4 Software License</H2>
0487 
0488 A Software License applies to the Geant4 code.
0489 Users must accept this license in order to use it. The details and the list of
0490 copyright holders is available at
0491 <A href="http://cern.ch/geant4/license">http://cern.ch/geant4/license</A>
0492 and also in the text file <TT>LICENSE</TT> distributed with the source code.
0493 
0494 <P> </P>
0495 <A NAME="9."></A>
0496 <HR>
0497 
0498 <!-- ============================================== -->
0499 
0500 <H2>9. Detailed list of changes and fixes</H2>
0501 
0502 These are the main new features/fixes included in this release since the
0503 last patched public release (for more detailed lists of fixes/additions,
0504 please refer to the corresponding History files provided in most packages):
0505 
0506 <P> </P>
0507 
0508 <A NAME="conf-notes">
0509 <H3><I>Configuration</I></H3></A>
0510 <UL>
0511 <LI><U>CMake</U>
0512     <UL>
0513     <LI>Added support for building PTL external module and introduced
0514         GEANT4_USE_TBB option, enabling use of TBB as possible alternative
0515         to builtin PTL tasking.</LI>
0516     <LI>Added support for Open Inventor Qt visualisation driver to be built and
0517         used in applications. The OpenInventor module can be built with either
0518         the OIQt driver, or with the OIX/OIXE drivers, but not with both.
0519         Added GEANT4_USE_XM to Open Inventor X11 driver code block to correct
0520         Xm and Xt link order. Improved consistency of using XQuartz vs System
0521         OpenGL on macOS. Removed obsolete FindInventor module.</LI>
0522     <LI>Introduced configuration support for Qt3D visualization driver.
0523         Qt3D driver optional based on find of required Qt5 modules.</LI>
0524     <LI>Applied patch to allow compilation on Windows using Clang.</LI>
0525     <LI>Removed requirement on presence of GLU library.
0526         No longer save GLU related variables in the package cache.</LI>
0527     <LI>Change shimmed imported target name to VecGeom::vecgeom to match
0528         upstream usage and reliably use target when available from VecGeom.
0529         Export VecCore_DIR to package cache when set so that Geant4 behaviour
0530         is consistent. Co-works with VecGeom-1.1.8.</LI>
0531     <LI>Updated functions to use G4expat{-static} as custom built targets.</LI>
0532     <LI>Added GEANT4_BUILD_BUILTIN_BACKTRACE option to enable automatic
0533         use of G4BackTrace signal handling in G4RunManager.</LI>
0534     <LI>Importing new "target" style API for declaring and composing libraries
0535         from modules of source code.</LI>
0536     <LI>Propagate value of CMAKE_DISABLE_FIND_PACKAGE_ROOT down to tests
0537         that optionally support Root to allow testing Geant4 with Root support
0538         disabled. This is necessary when testing Geant4 with a different C++
0539         standard than Root when it's installed. Avoid warnings from propagating

0540         the flag down to tests.</LI>

0541     <LI>New GEANT4_BUILD_PHP_AS_HP option to enable ParticleHP as HP in physics

0542         processes. Replaces PHP_AS_HP environment variable. Added PHP_AS_HP

0543         "feature" in Geant4Config.cmake/geant4-config to allow clients to

0544         check availability.</LI>

0545     <LI>Use STRINGS cache property for enum options and CMAKE_BUILD_TYPE to

0546         give easier interface in (G)UIs.</LI>

0547     <LI>Use "${FOO:-}" variable expansion and "-z" test to check for

0548         undefined variables in Bourne Shell scripts. Prevents errors when

0549         shell is in "set -u" mode. Addressing problem report

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

0551     <LI>Handle install of G4clhep{-static} independently of main modules

0552         due it being built outside the category system.</LI>

0553     <LI>Renamed remaining internal "Geant4..." modules to "G4" convention.

0554         Retain Geant4DefineModule and Geant4LibraryTargets until new

0555         modularization scheme is in place.</LI>

0556     <LI>Set CLHEP minimum required version to 2.4.4.0.</LI>

0557     <LI>Set VecGeom-1.1.8 as minimum required version for optional build

0558         with VecGeom.</LI>

0559     <LI>Added possibility to download and install optional TENDL data set.</LI>

0560     <LI>Updated data-sets versions.</LI>

0561     </UL></LI>

0562 <LI><U>GNUMake</U>

0563     <UL>

0564     <LI>Added setup for building and configuring new externals/ptl

0565         and tasking modules. External installation of PTL can be enabled

0566         by defining the installation through the environment variable

0567         PTL_BASE_DIR.</LI>

0568     <LI>Added -pthread to all builds in Linux targets.</LI>

0569     <LI>Corrected setup for use of Open Inventor (Coin).</LI>

0570     <LI>Added configuration for Qt3D visualization driver.</LI>

0571     <LI>Added missing settings in G4UI_BUILD.gmk script for OIQt and use

0572         of UI.</LI>

0573     <LI>Removed deprecated G4USE_STD11 flag settings.</LI>

0574     <LI>Removed dependency on GLU for all configurations, as no longer

0575         necessary.</LI>

0576    </UL></LI>

0577 </UL>

0578 

0579 <A NAME="ana-notes">

0580 <H3><I>Analysis</I></H3></A>

0581 <UL><LI><U>Analysis management & plotting</U>

0582     <UL>

0583     <LI>Major upgrade including the support for multiple files and multiple

0584         output types.</LI>

0585     <LI>New G4GenericAnalysisManager, G4GenericFileManager factory classes.</LI>

0586     <LI>New G4VAnalysisManager functions to set file-names and corresponding

0587         UI commands. While it is possible to mix output types for histogram

0588         and profiles objects, only one output type is supported for ntuples.</LI>

0589     <LI>Redesigned management classes to separate object file handling from

0590         output specific analysis managers.</LI>

0591     <LI>Updated G4PlotManager for use of new fonts.</LI>

0592     <LI>Changes to allow overriding Root classes in g4mpi/analysis.</LI>

0593     <LI>Removed redundant variable in G4RootNtupleFileManager::Reset().</LI>

0594     <LI>Fixed the memory leak reported by Valgrind in deleting files.</LI>

0595     <LI>Fixed text typos in printout. Problem report

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

0597         and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>

0598     </UL></LI>

0599     <LI><U>Ntuples</U>

0600     <UL>

0601     <LI>Implemented writing ntuples in multiple files of the same output type.

0602         New G4VAnalysisManager function SetNtupleFileName(..) and UI commands:

0603         "/analysis/ntuple/setFileName id fileName" and

0604         "/analysis/ntuple/setFileNameToAll fileName"</LI>

0605     <LI>Fix to add a null-pointer check to ntupleDescription->fNtuple in

0606         G4RootPNtupleManager::Merge().</LI>

0607     </UL></LI>

0608     <LI><U>g4tools</U>

0609     <UL>

0610       <LI>Updated the g4tools version to g4tools-5.2.1.

0611       <UL>

0612         <LI>Corrections to handle automatic min/max axes values in case of log

0613             scale. See History_tools in analysis module for all details.</LI>

0614         <LI>Modifications in tools/hdf5 to use H5free_memory() instead free()

0615             at some places (needed for HDF5/1.12.0).</LI>

0616         <LI>Modifications in graphics to be in sync with the code in

0617             inlib/exlib around Apple/Metal (no impact on offscreen plotting).</LI>

0618         <LI>See History_tools for the complete list of modifications.</LI>

0619       </UL></LI>

0620     </UL></LI>

0621     <LI>Updated granular dependencies in preparation for modularization.</LI>

0622     <LI>Removed uneeded links to externals in factory.</LI>

0623 </UL>

0624 

0625 <A NAME="digits-notes">

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

0627 <UL>

0628 <LI>Introducing G4VPrimitivePlotter allowing the user to extend a primitive

0629     scorer. Use G4VPrimitivePlotter to allow scorers to directly fill

0630     histograms. Added "/score/fill1D" command.</LI>

0631 <LI>Introducing G4VScoreHistFiller and G4TScoreHistFiller, allowing scorers

0632     to fill histograms defined through Geant4 Analysis tools.</LI>

0633 <LI>Introducing a new scorer, G4PSVolumeFlux.</LI>

0634 <LI>Added two ComputeSolid() method to G4VPrimitiveScorer, to consolidate

0635     code.</LI>

0636 <LI>Added Mutex lock to G4ScoringProbe::SetMaterial() to avoid race condition.</LI>

0637 <LI>Fixed cases of comparison between int and size_t in templated classes

0638     and some cleanup.</LI>

0639 <LI>Fixed text typos in printout. Problem report

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

0641     and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>

0642 </UL>

0643 

0644 <A NAME="emstd-notes">

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

0646 <UL>

0647 <LI><B>DNA</B>:

0648     <UL>

0649     <LI>Added classes for IRT; added features in management classes for IRT

0650         (G4ITReaction, G4ITModelProcessor ...).</LI>

0651     <LI>Added features in G4DNAMolecularReactionTable for GFDE.</LI>

0652     <LI>Added molecules (Oxygen, O2, O3, HO2) from: Plante et al.(2017).</LI>

0653     <LI>G4DNAMolecularMaterial: avoid deleting instance of the singleton;

0654         removed commented lines.

0655         Fixed thread contention on mutable data in G4DNAMolecularMaterial.

0656         Some code cleanup.</LI>

0657     <LI>G4MoleculeDefinition: copy constructor and assignment operator are not

0658         allowed (as for G4ParticleDefinition). Now deleted.</LI>

0659     <LI>Revised displacement of OH radicals of B1A1 dissociation based on

0660         momentum conservation in G4DNAWaterDissociationDisplacer.</LI>

0661     </UL></LI>

0662 <LI><B>High Energy</B>

0663     <UL>

0664     <LI>G4hPairProductionModel: inherit ComputeDMicroscopicCrossSection()

0665         from G4MuPairProductionModel to avoid code duplication.</LI>

0666     <LI>G4hPairProductionModel, G4hBremsstrahlungModel, G4hPairProduction, 

0667         G4hBremsstrahlung: added definition of the energy threshold for

0668         creation of a vertex when energy transfer is above the threshold.</LI>

0669     </UL></LI>

0670 <LI><B>Low Energy</B>

0671     <UL>

0672     <LI>Added new model for polarized gamma elastic scattering, provided by

0673         the JAEA group. Updated existing process (G4JAEAElasticScattering) and

0674         model (G4JAEAElasticScatteringModel) in order to comply with the new

0675         data format. Changed initialisation of JAEA models.</LI>

0676     <LI>Added new classes for micro-dosimetry simulation.</LI>

0677     <LI>Added new class G4MicroElecSurface, a new boundary process for e-.</LI>

0678     <LI>Removed obsolete G4MuElec* classes.</LI>

0679     <LI>G4LivermorePhotoElectricModel: allow "Water" as a name of water

0680         material for low-energy photo-effect.</LI>

0681     <LI>Added G4LivermoreGammaConversion5DModel class. Reading EPICS2017 data.</LI>

0682     <LI>Change in G4LivermoreGammaConversion to now derive from

0683         G4PairProductionRelModel. Added missing method InitialiseForElement().</LI>

0684     <LI>Added G4PenelopeRayleighModelMI model and ancillary class G4MIData.</LI>

0685     <LI>Replaced std::log with G4Log in Penelope and Livermore models.</LI>

0686     <LI>Use GetZasInt() in Penelope models, when applicable.</LI>

0687     <LI>Fixed compilation warnings on clang-10.</LI>

0688     </UL></LI>

0689 <LI><B>Muons</B>

0690     <UL>

0691     <LI>G4MuPairProductionModel: optimised ComputeDMiscroscopicCrossSection()

0692         to speedup initialization.</LI>

0693     <LI>G4ModifiedMephi: new angular generator for muon/hadron Bremsstrahlung.</LI>

0694     <LI>G4MuPairProductionModel, G4MuBremmstrahlungModel,

0695         G4MuPairProduction, G4MuBremmstrahlung: updated sampling of

0696         final state using G4ModifiedMephi; implemented check on energy transfer

0697         and if beyond the threshold, kill primary particle and create a new

0698         vertex.</LI>

0699     </UL></LI>

0700 <LI><B>Standard</B>

0701     <UL>

0702     <LI>G4eDPWAElasticDCS: new class that handles the numerical Differential

0703         Cross-Sections(DCS) for Coulomb scattering of e-/e+, computed by Dirac

0704         Partial Wave Analysis(DPWA) using ELSEPA.</LI>

0705     <LI>G4eDPWACoulombScatteringModel: new class that implements single Coulomb

0706         scattering model for e-/e+ based on the numerical DCS provided by the

0707         above G4eDPWAElasticDCS class.</LI>

0708     <LI>G4eplusAnnihilation: fixed problem seen in the rare case, when initial

0709         energy is null; introducing thermal model of positronium decay to two gammas.

0710         In this model, the positronium acquires a mean kinetic energy on

0711         formation, which contributes to a small non-collinearity of the

0712         gammas, detectable and significant in PET. To activate this model:

0713           material->GetIonisation()->SetMeanEnergyPerIonPair(meanKE).

0714         A mean kinetic energy of 5 eV produces a projected acollinearity

0715         of about 0.5 degrees FWHM, as reported in:

0716         K.Shibuya et al., IFMBE Proceedings Vol. 14/3 1667 (2007).</LI>

0717     <LI>G4UniversalFluctuation: changed 'nmaxCont' from 16 to 8 for speedup.

0718         Set value for 'a0' to 42 after optimisations. Minor C++ improvements.</LI>

0719     <LI>G4UrbanMscModel: tuned 'tlimitmin' computation for e- (for e+ kept

0720         unchanged) and changed parameterisation of 'stepmin'; added two private

0721         inline methods to reduce code duplication.

0722         Removed cache and introduced data struct precomputed at initialisation,

0723         added e- range cut to the data structure.

0724         Changed parameterisation of backscattering parameter <TT>doverra</TT>;

0725         Changed computation of 'tlimit' in the step limitation algorithm

0726         UseDistanceToBoundary(); affecting only Opt3 EM physics.</LI>

0727     <LI>G4BetheHeitler5DModel: change "final" keyword by "override" for virtual

0728         methods.</LI>

0729     <LI>G4LindhardSorensenData: fixed few numbers in the data table.</LI>

0730     <LI>G4eeToTwoGammaModel: code cleanup; added static flag, which identifies

0731         if electron motion is taken into account for sampling of acollinearity, 

0732         when annihilation happens at rest; ensuring that by default no extra

0733         computation is performed; also removed extra printout at initialisation

0734         and extra data structure.</LI>

0735     <LI>G4ICRU49NuclearStoppingModel, G4WentzelOKandVIxSection,

0736         G4WentzelVIRelModel, G4SeltzerBergerModel, G4LindhardSorensenIonModel:

0737         improved usage of locks; defined deletion of copy constructor and

0738         assignment operator. Improved usage of locks. Defined standard deletion

0739         of copy consructor and assignment operator.</LI>

0740     <LI>G4SauterGavrilaAngularDistribution, G4DeltaAngle: code clean-up.</LI>

0741     <LI>Fixed compilation warnings on clang-10.</LI>

0742     <LI>Requires data-set G4EMLOW-7.13.</LI>

0743     </UL></LI>

0744 <LI><B>Utils</B>

0745     <UL>

0746     <LI>G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger: added

0747         a new parameter - name of the sub-directory with data for Livermore

0748         models with variants: "livermore" (default), "epics_2017".

0749         Comes with G4EMLOW-7.10 data set and higher.</LI>

0750     <LI>G4EmParameters, G4EmParametersMessenger, G4VMultipleScattering:

0751         removed displacement-beyond-safety option, as may lead to crashes in

0752         some circomstances, and wrong results in others.</LI>

0753     <LI>G4EmParameters, G4EmParametersMessenger, G4EmExtraParametersMessenger,

0754         G4VEnergyLossProcess: added two extra sets of StepFunction parameters

0755         for light ions and generic ions. Added extra UI commands. Modified

0756         interfaces accordingly. Removed old comments.</LI>

0757     <LI>G4EmParameters, G4EmExtraParameters: added new flag defining type of

0758         single scattering model.</LI>

0759     <LI>G4EmParameters, G4EmParametersMessenger: added new flag threshold for

0760         muon/hadron bremsstrahlung allowing to stop a track when high energy

0761         bremsstrahlung is emitted.</LI>

0762     <LI>G4OpticalParameters, G4OpticalParametersMessenger: added new files to 

0763         control optical parameters, as for G4EmParameters.</LI>

0764     <LI>G4EmLowEParametersMessenger: extended number of DNA PhysicsList

0765         options.</LI>

0766     <LI>G4EmModelManager, G4VMscModel, G4VEmModel, G4VMultipleScattering: at

0767         initialisation print extra line for all multiple-scattering models

0768         instead of the common printout, needed when different models are

0769         applied for regions. Minor code clean-up.

0770         Addressing problem report

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

0772     <LI>G4VEmProcess: removed old unused methods; DefinedMaterial() method is

0773         now protected (needed for AtRest processes). Fixed setting of current

0774         particle. Addressing problem report

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

0776         affecting ion DNA physics.</LI>

0777     <LI>G4LossTableManager: made ResetParameters() method public.

0778         Make clean interface for electron and positron general process.</LI>

0779     <LI>G4VAtomicDeexcitation: optimized arrays initialisation.</LI>

0780     <LI>G4VEmAngularDistribution: added flag of polarisation and corrected

0781         order of initialisation.</LI>

0782     <LI>G4VEmModel: define flag of polarisation for an angular generator.</LI>

0783     <LI>G4EmProcessSubType: added fSurfaceReflection.</LI>

0784     <LI>Fixed text typos in printout. Problem report

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

0786         and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>

0787     </UL>

0788 <LI><B>Xrays</B>

0789     <UL>

0790     <LI>Implemented three time constants for G4Scintillation, and allow

0791         multiple time constants to work with scintillation by particle type.

0792         The existing material property names have FAST and SLOW in them, like

0793         FASTTIMECONSTANT. This doesn't generalize well. Also YIELDRATIO as a
0794         single value doesn't generalize to three time constants. Proposal is

0795         to create new names SCINTILLATIONTIMECONSTANT1/2/3 and the same for

0796         other parameters. The existing names are kept for backwards

0797         compatibility, with the idea to remove them in the next major release.

0798         There is a flag in G4Scintillation, with messenger command in the

0799         OpticalPhysics list, to use the new method:

0800           /process/optical/scintillation/setEnhancedTimeConstants true.

0801         Results are unchanged if using same values.

0802         Allow specifying SCINTILLATIONYIELD only (not requiring

0803         SCINTILLATIONYIELD1) when only one scintillation channel is present.

0804         Same for particle specific yields.

0805         Set verbosity levels correctly.</LI>

0806     <LI>G4Cerenkov, G4Scintillation: use new G4OpticalParameters to control

0807         simulation parameters. Removed BuildThePhysicsTable().

0808         Applied code formatting.</LI>

0809     <LI>G4Cerenkov: make GetAverageNumberOfPhotons() method public.</LI>

0810     <LI>G4VXTRenergyLoss: fixed destructor.</LI>

0811     <LI>Code formatting.</LI>

0812     </UL></LI>

0813 </UL>

0814 

0815 <A NAME="errprop-notes">

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

0817 <UL>

0818 <LI>Fixed Coverity defects warnings in G4ErrorPropagator for unreachable code.

0819     Implemented move assignment operators in G4ErrorSymMatrix, G4ErrorSymMatrix,

0820     G4ErrorFreeTrajParam, G4ErrorTrajState and G4ErrorSurfaceTrajParam.</LI>

0821 <LI>Fix to CMake script to support new CMake system.</LI>

0822 </UL>

0823 

0824 <A NAME="event-notes">

0825 <H3><I>Event</I></H3></A>

0826 <UL>

0827 <LI>Introducing a new General Particle Source energy distribution option,

0828     that generates flat energy distribution with track weights that

0829     represent energy spectrum provided by /gps/hist/point commands.

0830     This option can enhance, for example, higher energy tracks that are

0831     rare but contribute to the scores.</LI>

0832 <LI>Corrected logic in G4VPrimaryGenerator::CheckVertexInsideWorld() method.</LI>

0833 <LI>G4GeneralParticleSourceMessenger: command structure clean-up.</LI>

0834 <LI>Some code cleanup, formatting and C++11 revision.</LI>

0835 <LI>Fixed CMake scripts to ensure G4_USESMARTSTACK pre-processor symbol

0836     is properly propagated.</LI>

0837 <LI>Added support for event profiler with TiMemory.</LI>

0838 <LI>Removed obsolete and unused headers.</LI>

0839 <LI>Fixed Coverity defect in G4GeneralParticleSourceMessenger.</LI>

0840 <LI>Fixed text typos in printout. Problem report

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

0842 </UL>

0843 

0844 <A NAME="externals-notes">

0845 <H3><I>Externals</I></H3></A>

0846 <UL>

0847 <LI><U>CLHEP</U>:

0848     <UL>

0849     <LI>Updated to CLHEP version 2.4.4.0.</LI>

0850     <LI>Updated values in SystemOfUnits.h and PhysicalConstants.h for:

0851         e_SI (electron charge), h_Planck (Planck constant), Avogadro

0852         (Avogadro constant), k_Boltzmann (Boltzmann constant), based on

0853         May 2019 redefinition of SI units, References -

0854         [<A href="https://en.wikipedia.org/wiki/2019_redefinition_of_the_SI_base_units">wikipedia.org</A>],

0855         [<A HREF="https://www.britannica.com/science/electron-charge">britannica.com</A>].</LI>

0856     <LI>Use 32-bit internal seeds types coherently in MixMaxRng.

0857         Addressing CLHEP JIRA ticket #156.</LI>

0858     <LI>Removed obsolete #pragma interface/implementation in Vector classes.</LI>

0859     <LI>Get rid of switch statement in operator()/operator[] of Hep3Vector

0860         Replaced dx/dy/dz with operator[] in Hep3Vector.

0861         Replaced private dx/dy/dz with public x()/y()/z() in Hep3Vector.</LI>

0862     <LI>Added missing includes in Vector and Random classes for translation

0863         unit encapsulation.</LI>

0864     </UL></LI>

0865 <LI><U>Expat</U>:

0866     <UL>

0867     <LI>Migrated build of G4expat to locally defined targets, allowing

0868         cleaner specification of usage requirements.</LI>

0869     </UL></LI>

0870 <LI><U>PTL</U>:

0871     <UL>

0872     <LI>New module for PTL (Parallel Tasking Library), implementing a

0873         lightweight C++11 multi-threading tasking system featuring thread-pool,

0874         task-groups, and lock-free task queue.</LI>

0875     </UL></LI>

0876 <LI><U>ZLIB</U>:

0877     <UL>

0878     <LI>Added needed include directories to CMake script when using new

0879         CMake system. Cleanup.</LI>

0880     </UL></LI>

0881 </UL>

0882 

0883 <A NAME="g3tog4-notes">

0884 <H3><I>G3toG4</I></H3></A>

0885 <UL>

0886 <LI>Cleanup CMake build, removing obsolete granular library options and

0887     explicit include_directories.</LI>

0888 </UL>

0889 

0890 <A NAME="gen-notes">

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

0892 <UL>

0893 <LI><B>Biasing</B>

0894     <UL>

0895     <LI>G4ImportanceProcess: added process type as fParallel.</LI>

0896     <LI>Fixed Coverity defect warnings for data initialisation.</LI>

0897     </UL></LI>

0898 <LI><B>Cuts</B>

0899     <UL>

0900     <LI>Revision for use of c++11 constructs. Code cleanup and formatting.</LI>

0901     </UL></LI>

0902 <LI><B>Management</B>

0903     <UL>

0904     <LI>G4ProcessManagerMessenger: use cache pointer of selected particle

0905         in the G4ParticleTable class.</LI>

0906     <LI>G4ProcessTable: enabled deletion of all processes except

0907         G4Transportation at the end of run.</LI>

0908     <LI>Fixed Coverity warning for uninitialised data in G4VProcess.</LI>

0909     <LI>C++11 revision and code cleanup/formatting.</LI>

0910     </UL></LI>

0911 <LI><B>Optical</B>

0912     <UL>

0913     <LI>Added second wavelength shifting process, G4OpWLS2, within the same

0914         material.</LI>

0915     <LI>Use new ConstPropertyExists(int) method rather than passing strings.</LI>

0916     <LI>G4OpRayleigh, G4OpAbsorption, G4OpMieHG, G4OpWLS, G4OpWLS2: moved to

0917         new G4OpticalParameters class to control simulation parameters.</LI>

0918     <LI>G4OpRayleigh: avoid double deletion of property vectors.</LI>

0919     <LI>G4OpBoundaryProcess: increase geometry tolerance to kCarTolerance.</LI>

0920     <LI>Fixed reading of Davis LUT data out of bounds.

0921         Addressing problem report

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

0923     <LI>Code cleanup/formatting and improved readability.</LI>

0924     </UL></LI>

0925 <LI><B>Parameterisation</B>

0926     <UL>

0927     <LI>Introduced general facilities based on GFlash implementation to

0928         facilitate multiple hit (energy & position) creation from fast

0929         simulation models.</LI>

0930     <LI>G4FastSimulationHelper: merged ActivateFastSimulation() calls for mass

0931         and parallel geometry cases.</LI>

0932     <LI>G4FastSimulationManager, G4VFastSimulationModel: removed redefinition

0933         of G4Envelope type.</LI>

0934     <LI>Added sanity check for root logical volumes in regions for

0935         G4GlobalFastSimulationManager. UI command /param/showSetup works also

0936         if no parallel world is present.</LI>

0937     <LI>Fixed minor Coverity defect for uninitialised data in G4FastStep.</LI>

0938     </UL></LI>

0939 <LI><B>Scoring</B>

0940     <UL>

0941     <LI>G4ParallelWorldProcess, G4ParallelWorldScoringProcess: use new PDG

0942         code for optical photon, "-22".</LI>

0943     <LI>G4ParallelWorldProcess: make some private methods and data members

0944         protected so that this class can be extendable.</LI>

0945     </UL></LI>

0946 <LI><B>Transportation</B>

0947     <UL>

0948     <LI>Substantial reorganisation of G4Transportation::AlongStepGPIL() to use

0949         values already in cache, to reduce the number of branches, and to use

0950         extra local variables for track properties to avoid indirections.

0951         Resulting in a persistent reduction of instruction-TLB misses.</LI>

0952     </UL></LI>

0953 </UL>

0954 

0955 <A NAME="geo-notes">

0956 <H3><I>Geometry</I></H3></A>

0957 <UL>

0958 <LI><B>Magnetic field</B>

0959     <UL>

0960     <LI>New class G4DriverReporter to print progress of drivers.</LI>

0961     <LI>New templated classes to avoid virtual calls for field, equation,

0962         steppers (from Google Summer of Code 2014 project): equation of motion

0963         is now templated on the field type; steppers are templated on the type

0964         of equation and the number of integration variables.

0965         These classes can be combined also with the templated drivers to avoid

0966         virtual calls in all the levels up to the chord finder's call to
0967         the integration driver. </LI>
0968     <LI>The default integration method for field propagation in a pure magnetic
0969         field is changed. The constructor of G4ChordFinder by default uses the
0970         new templated stepper G4TDormandPrince45 in place of
0971         G4DormandPrince745.</LI>
0972     <LI>The types of templated steppers currently available include
0973         the efficient, embedded Runge-Kutta intermediate order steppers:
0974         <UL>
0975           <LI>G4TDormandPrince45: based on G4DormandPrince745, embedded
0976               5<SUP>th</SUP> order; the default.</LI>
0977           <LI>G4TCashKarpRKF45: based on G4CashKarpRKF45, 5<SUP>th</SUP> order;
0978               first embedded RK.</LI>
0979         </UL>
0980         These are the most advanced templated steppers.
0981         G4TDormandPrince45 provides an endpoint derivative (FSAL) and can be
0982         used with interpolation.</LI>
0983     <LI>The second type of templated steppers are non-embedded of 4<SUP>th</SUP>
0984         and 3<SUP>rd</SUP> order: 
0985         <UL>
0986         <LI>G4TClassicalRK4: based on G4ClassicalRK4, 4<SUP>th</SUP> order;
0987             robust and the old default;</LI>
0988         <LI>G4TSimpleHeum: based on G4SimpleHeum, 3<SUP>rd</SUP> order; a
0989             lower order alternative;</LI>
0990         </UL>
0991         which break up a step into half steps to estimate error, meaning
0992         they need several additional field evaluation calls than embedded
0993         steppers of the same order. 
0994         The reliability of their error estimation has different properties; so
0995         it may be more robust in some cases. 
0996         Primarily for comparison and cross-checking of results.</LI>
0997     <LI>The final available type of low order templated steppers are very low
0998         order:
0999         <UL>
1000         <LI>G4TSimpleRunge: based on G4SimpleRunge, 2<SUP>nd</SUP> order;</LI>
1001         <LI>G4TExplicitEuler: based on G4ExplicitEuler, 1<SUP>st</SUP> order,
1002             lowest order (the simplest checks only).</LI>
1003         </UL>
1004         only for tests or specialised uses.</LI>
1005     <LI>Additional intermediate and higher-order steppers are not yet
1006         available in templated form.</LI>
1007     <LI>Adapted templated G4TDormandPrince45 for use with G4InterpolationDriver.
1008         For a stepper to be used with this, it must implement the method
1009         GetSpecificEquation().
1010         Templated steppers must provide a return type which is the exact
1011         equation type of the template.</LI>
1012     <LI>Experimental versions of fields with inline methods (G4TUniformMagField
1013         and G4TQuadrupoleMagField) demonstrate how the field evaluation
1014         GetFieldValue() can also be inlined. Meant for use if the evaluation is
1015         simple -- and to be avoided if it is complex when inlining it could
1016         increase the code size significantly. </LI>
1017     <LI>Configured G4ChordFinder to use templated G4TDormandPrince45 as the
1018         default stepper for magnetic fields (when one is not chosen explicitly
1019         by the application). Speed improvement is observed in benchmarks.
1020         Note: currently it uses the simpler G4InterpolationDriver
1021         in place of a customised G4BFieldIntegrationDriver which
1022         multiplexed an interpolation driver for short steps  with a
1023         helix-based driver for long steps.
1024         Applications with many <TT>large-angle</TT> steps in magnetic field may
1025         perform more reliably and faster by restoring the use of the customised
1026         driver - e.g. by using the G4ChordFinder constructor with <TT>nullptr</TT>
1027         as third argument and fourth argument <TT>stepperDriverId=4</TT>.</LI>
1028     <LI>G4VIntegrationDriver and dependent driver classes: added new virtual
1029         method StreamInfo(), and used it to implement their operator<<().</LI>
1030     <LI>G4MagInt_Driver: fixed max iterations & clarified that its method

1031         ComputeNewStepSize() does not (yet) respect maximum reduction factor

1032         (0.1); this is to enable comparisons with new G4IntegrationDriver<>
1033         implementation.</LI>
1034     <LI>G4OldMagIntDriver maintains all old behaviour of G4MagInt_Driver.</LI>
1035     <LI>In G4MultiLevelLocator, added ability to record in a 'whiteboard',
1036         the start/end steps of integration intervals, to allow one to diagnose
1037         issues like negative or zero steps occurrences. Includes new classes
1038         G4LocatorChangeLogger and G4LocatorChangeRecord.</LI>
1039     <LI>G4PropagationInField: improved ClearPropagatorState() method.</LI>
1040     <LI>Implemented move constructor and operator for G4FieldTrack.</LI>
1041     </UL></LI>
1042 <LI><B>Management</B>
1043     <UL>
1044     <LI>Added deleted declarations for copy constructor and assignment operators
1045         on store singletons. Based on
1046         <A HREF="https://github.com/Geant4/geant4/pull/12">GitHub PR#12</A> report.</LI>
1047     <LI>Reduced size of G4LogicalVolume objects by reordering class members.</LI>
1048     <LI>Fix in the calculation of normal in G4UAdapter::DistanceToOut().</LI>
1049     <LI>Adopt new convention for location of headers in VecGeom for wrappers.</LI>
1050     </UL></LI>
1051 <LI><B>Navigation</B>
1052     <UL>
1053     <LI>Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.
1054         Enable use of whiteboard for logging/debugging in G4MultiLevelLocator,
1055         if "check-mode" in navigation is being activated through UI command.</LI>
1056     <LI>Reordered data members in G4Navigator, to reduce object size.</LI>
1057     <LI>G4ReplicaNavigation: relaxed condition for step correction in
1058         ComputeStep(), to reduce cases of zero steps in combined rho/phi
1059         replications.</LI>
1060     <LI>Fixed Coverity defects in G4RegularNavigation for uninitialised data.</LI>
1061     <LI>Added G4GeomTestVolume::TestOverlapInTree(), alternative method for
1062         testing overlaps on a tree of volumes, avoiding to check hierarchies
1063         from copies of the same volume in the tree. Considerably speeding up
1064         recursive overlaps check through UI commands.</LI>
1065     </UL></LI>
1066 <LI><B>Solids (CSG)</B>
1067     <UL>
1068     <LI>G4Box: migration to use G4QuickRand in GetPointOnSurface().</LI>
1069     <LI>G4CutTubs: implemented specific GetCubicVolume() and GetSurfaceArea();
1070         revised implementation in GetPointOnSurface(), now faster and uniform;
1071         reimplemented IsCrossingCutPlanes(), to now reports a problem only in
1072         case cut planes are crossing inside the lateral surface; removed
1073         obsolete internal method GetMaxMinZ().</LI>
1074     <LI>G4Trd: added two pre-calculated values for fast calculation of lateral
1075         areas; revised implementation in GetPointOnSurface().</LI>
1076     <LI>G4Trap: fixed calculation of normal for points on edge in
1077         SurfaceNormal(). Improved code for Inside().
1078         Added array with precalculated face areas; added
1079         SetCachedValues() method and revised implementation in
1080         GetPointOnSurface().</LI>
1081     <LI>G4Tubs: revised implementation in GetPointOnSurface().</LI>
1082     <LI>G4Sphere: optimised implementation of InitializeThetaTrigonometry(),
1083         replacing call to std::tan() with pre-calculated quantities.
1084         Addressing problem report
1085         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2289">#2289</A>.</LI>
1086     <LI>G4CSGSolid: explicit implementation of G4RandomRadiusInRing(rmin,rmax)
1087         based on G4QuickRand.</LI>
1088     <LI>Adopt new convention for location of headers in VecGeom for all
1089         wrappers.</LI>
1090     </UL></LI>
1091 <LI><B>Solids (Specific)</B>
1092     <UL>
1093     <LI>G4Polycone, G4GenericPolycone, G4Polyhedra: implemented specific
1094         GetSurfaceArea(), GetCubicVolume(); no longer relying on MC method.</LI>
1095     <LI>G4Polycone: Revised GetPointOnSurface(); added protected auxiliary
1096         method SetSurfaceElements(); removed GetPointOnCone(), GetPointOnTubs(),
1097         GetPointOnCut() and GetPointOnRing().</LI>
1098     <LI>G4GenericPolycone: revised GetPointOnSurface(); added protected
1099         auxiliary method SetSurfaceElements().</LI>
1100     <LI>G4Polyhedra: revised GetPointOnSurface(); added protected auxiliary
1101         method SetSurfaceElements(); removed GetPointOnPlane() and
1102         GetPointOnTriangle().</LI>
1103     <LI>Added GetTwistedFaceSurfaceArea() in G4GenericTrap and fixed
1104         calculation of surface area in unit tests.</LI>
1105     <LI>Adopt new convention for location of headers in VecGeom for all
1106         wrappers.</LI>
1107     </UL></LI>
1108 <LI><B>Volumes</B>
1109     <UL>
1110     <LI>Use std::map instead of std::vector to define
1111         G4LogicalBorderSurfaceTable, to speedup search of surfaces in large
1112         tables. Addressing
1113         <A HREF="https://github.com/Geant4/geant4/pull/6">GitHub PR#6</A>.</LI>
1114     <LI>G4PVPlacement: in CheckOverlaps(), added keeping of bounding box from
1115         previous solid and complementary comparison of bounding spheres.</LI>
1116     </UL></LI>
1117 </UL>
1118 
1119 <A NAME="glob-notes">
1120 <H3><I>Global</I></H3></A>
1121 <UL>
1122 <LI>G4Physics2DVector: extended number of characters in the table dump from 5
1123     to 8; use similar algorithm for bin selection as in 1D vector;
1124     if any dimension is less than 2 throw a G4Exception.</LI>
1125 <LI>G4PhysicsVector: use same code for interpolation for all types of
1126     PhysicsVector; removed obsolete unused methods; maximally use const
1127     variables; preserve precision of printout.</LI>
1128 <LI>G4PhysicsLinearVector: added checks on vector length: if it is less
1129     than 2 throw a G4Exception.</LI>
1130 <LI>G4PhysicsLogVector: added checks on vector length: if it is less
1131     than 3 throw a G4Exception.</LI>
1132 <LI>G4PhysicsLinearVector, G4PhysicsLogVector: fixed scale of energy; this
1133     problem does not affect results in general, it fixes data table scale
1134     and may change dEdx and cross-sections numerically on small level.
1135     More accurate checks in class constructors. Fixed Coverity warnings.</LI>
1136 <LI>Added new constructor for G4PhysicsOrderedFreeVector.</LI>
1137 <LI>Added G4Backtrace header for printing backtraces from raised signals.
1138     A more generic implementation of G4FPEDetection that can catch FPE issues
1139     but, by default, does not interfere with it. The default backtraced signals
1140     are: SIGQUIT, SIGILL, SIGABRT, SIGKILL, SIGBUS, SIGSEGV.
1141     The default signals can be overridden within user-code before and after the
1142     creation of the run-manager (See "Usage" section in G4Backtrace description).
1143     The default signals can be overridden via environment variable G4BACKTRACE.
1144     Can be enabled by setting GEANT4_BUILD_BUILTIN_BACKTRACE option at
1145     configuration.</LI>
1146 <LI>Added new G4Profiler header; implemented new profiling routines for
1147     TiMemory which allow per-{run,event,track,step} configuration w.r.t. when
1148     to profile, what to collect in the profiler, and how to label the entries.
1149     Also, includes user-profiling config and macros. Use of TIMEMORY_AUTO_TIMER
1150     is now deprecated.</LI>
1151 <LI>Removed condition restricting to <TT>__x86_64__</TT> architectures for
1152     macOS configuration in <TT>tls.hh</TT>.</LI>
1153 <LI>C++11 revision in 'management' and 'HEPNumerics' modules; general
1154     code cleanup/formatting.</LI>
1155 <LI>Updated e_SI value for electron charge in G4SIunits.h, based
1156     on May 2019 redefinition of SI units.</LI>
1157 <LI>Removed use of deprecated G4USE_STD11 flag.</LI>
1158 <LI>Fix to CMake script to support new CMake system.</LI>
1159 <LI>Updated date of release for 10.7.</LI>
1160 </UL>
1161 
1162 <A NAME="greps-notes">
1163 <H3><I>Graphical Representations</I></H3></A>
1164 <UL>
1165 <LI>HepPolyhedron, G4Polyhedron: added HepPolyhedronTet.</LI>
1166 <LI>G4VisAttributes: clarify that if number of cloud points (for cloud style
1167     drawing) is <= 0, this is to be interpreted as under control of the
1168     viewer, i.e., to be decided by the viewer. Otherwise this number is to be
1169     drawn. Zero is the default value, which may be changed by invoking the
1170     method SetForceNumberOfCloudPoints(); also possible to force cloud
1171     drawing with SetForceCloud().</LI>
1172 <LI>Fixed graphical representation for G4Hype shape.
1173     Addressing problem report
1174     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2295">#2295</A>.</LI>
1175 <LI>Fixed minor Coverity defect in BooleanProcessor::assembleFace().</LI>
1176 <LI>Improved deprecation message for G4AttDefs::operator<<().</LI>
1177 </UL>
1178 
1179 <A NAME="had-notes">
1180 <H3><I>Hadronic Processes</I></H3></A>
1181 <UL>
1182 <LI>Fixed text typos in printout. Problem report
1183     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
1184     and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
1185 <LI><B>Cross sections</B>
1186     <UL>
1187     <LI>G4ElNeutrinoNucleusTotXsc: new class for (nu_e,anti_nu_e)-nucleus
1188         cross-sections.</LI>
1189     <LI>G4PhotoNuclearCrossSection: corrected threshold for
1190         gamma + p -> pi0 + p, extended for use on 3H and 3He targets.</LI>
1191     <LI>G4HadronNucleonXsc: general clean-up of the code; use PDG number
1192         instead of particle pointer; removed instantiation of most of hadrons;
1193         optimisation of parameters.
1194     <LI>G4IonProtonCrossSection: added cross-sections for light ions.</LI>
1195     <LI>G4ParticleInelasticXS, G4NeutronCaptureXS, G4NeutronElasticXS,
1196         G4NeutronInelasticXS: updates in support for G4PARTICLEXS-3.x data 
1197         structure - for capture and elastic applied low-energy parameterisation
1198         starting from second energy point of the data set (better agreement
1199         with HP cross-sections); exclude special treatments for Hydrogen and
1200         Helium isotopes, because data for fission reactions are available in
1201         the new data set; extended list of isotopes.
1202         Fixed fusion cross-sections.
1203         Moved run-time method GetPhysicsVector() to be inlined; added G4VERBOSE
1204         compilation flag and general clean-up of classes (reuse existing high
1205         energy Glauber-Gribov cross-section instances).</LI>
1206     <LI>G4EMDissociationCrossSection: fixes to avoid numerical crashes for ions
1207         at low energies (now setting to zero the cross-section for ion kinetic
1208         energies below 2 MeV) and to avoid to create unphysical clusters of
1209         neutrons (now forbidding to remove one proton from any hydrogen ions).
1210         Addressing problem report
1211         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2254">#2254</A>.</LI>
1212     <LI>Added new cross-section class G4GammaNuclearXS.</LI>
1213     <LI>In G4ParticleInelasticXS, added gamma cross-section.</LI>
1214     <LI>Removed unused class G4ProjectileFragmentCrossSection.</LI>
1215     <LI>Fixed compilation warnings on clang-10.</LI>
1216     </UL></LI>
1217 <LI><B>Management</B>
1218     <UL>
1219     <LI>G4HadronicProcess: fixed Coverity defect warning in EP check method for
1220         the case when primary particle remains in the interaction.
1221         Fixed warnings when environmental variables G4Hadronic_*Level are used.
1222         Removed unused flag.</LI>
1223     <LI>G4HadronicProcessStore: in the method Dump(), check the internal
1224         verbosity level as well as the newly introduced global hadronic
1225         verbosity level, returning immediately (without printing anything) if
1226         one of these is 0. Extended default initialisation printout to sigma-,
1227         D-, B-. Removed check for G4HadronicException where it cannot be;
1228         limit printout on kaon0 in final state.
1229         Extended default initialisation printout to anti_lambda.
1230         Use verbosity level from the G4HadronicParameters class, added
1231         printout of cross-section factor.</LI>
1232     <LI>G4HadronicEPTestMessenger, G4HadronicProcess: recommended for users
1233         the new UI commands <TT>/process/had/heptst/*Level</TT>, while the
1234         old ones <TT>/heptst/*Level*</TT> are deprecated, but still valid,
1235         and will be removed in the next major release, Geant4 11; kept the
1236         environmental variables <TT>G4Hadronic_*Level</TT> for system testing,
1237         but not recommended for users.</LI>
1238     <LI>Removed use of deprecated G4USE_STD11 flag.</LI>
1239     <LI>G4HadLeadBias: replaced 'G4int' with 'size_t' to fix warnings
1240         on Windows.</LI>
1241 <LI><U>Models Management</U>:
1242     <UL>
1243     <LI>G4HadronicInteractionRegistry: delete HP and PHP at the end of run.</LI>
1244     <LI>G4HadronicInteraction: provide default implementation for all virtual
1245         methods.</LI>
1246     <LI>G4VHighEnergyGenerator, G4VIntraNuclearTransportModel,
1247         G4VPreCompoundModel: cleaned up: removed old commented lines,
1248         code format, C++11 keywords.</LI>
1249     </UL></LI>
1250     </UL></LI>
1251 <LI><B>Processes</B>
1252     <UL>
1253     <LI>G4MuNeutrinoNucleusProcess, G4ElNeutrinoNucleusProcess: extended to
1254         nu_mu, anti_nu_mu, nu_e and anti_nu_e.</LI>
1255     <LI>Removed the inelastic processes for heavy hadron - nucleus interactions,
1256         no longer necessary because similar inelastic processes are created by
1257         G4HadronicBuilder.</LI>
1258     </UL></LI>
1259 <LI><B>Stopping</B>
1260     <UL>
1261     <LI>G4HadronicAbsorptionFritiof,
1262         G4HadronicAbsorptionFritiofWithWithBinaryCascade: simplified
1263     instantiation of the FTF model, and avoid to destruct its components.</LI>
1264     <LI>G4MuonicAtomDecay: fixed Coverity defect warning.</LI>
1265     </UL></LI>
1266 <LI><B>Utilities</B>
1267     <UL>
1268     <LI>G4HadronicParameters: added modifiers for Cascade-FTF transition.
1269         Created the new messenger.
1270         Added Get/Set methods for cross-section scaling factors separately
1271         for nucleons, pions, other hadrons, and leptons.
1272         Here is an example on how to use them:
1273         <UL>
1274         <LI>First enable the scaling of cross section (by default disabled):
1275         <TT>G4HadronicParameters::Instance()->SetApplyFactorXS( true ); </TT></LI>
1276         <LI>Scaling up the nucleon inelastic cross sections by 10% :
1277         <TT>G4HadronicParameters::Instance()->SetXSFactorNucleonInelastic( 1.10 );</TT></LI>
1278         <LI>Scaling down the pion elastic cross sections by 12% : 
1279         <TT>G4HadronicParameters::Instance()->SetXSFactorPionElastic( 0.88 );</TT></LI>
1280         <LI>Scaling up all the other hadrons inelastic cross sections by 20% :
1281         <TT>G4HadronicParameters::Instance()->SetXSFactorHadronInelastic( 1.20 );</TT></LI>
1282     </UL>
1283         Added high energy limit for low-energy physics.
1284         Disabled charm and bottom hadrons by default.</LI>
1285     <LI>G4HadronicParametersMessenger: created new messenger class for
1286         G4HadronicParameters. Added the global verbosity level for hadronics:
1287         with the UI command <TT>/process/had/verbose 0</TT> the print-out
1288         of hadronic physics is completely switched off. </LI>
1289     <LI>G4HadronicParameters, G4HadronicParametersMessenger: added parameter
1290         for the upper energy limit (default 100 TeV); for instance, to set
1291         it to 1 PeV, <TT>/process/had/maxEnergy 1000.0 TeV</TT>.
1292         Added Boolean switch that allows to apply the Cosmic Ray (CR)
1293         coalescence algorithm to the secondaries produced by a string model
1294         (which can be useful in particular for Cosmic Ray applications); by
1295         default it is disabled, and to switch it on:
1296         <TT>/process/had/enableCRCoalescence true</TT></LI>
1297     <LI>G4HadFinalState: fixed warning on Windows for implicit conversions
1298         from 'size_t' to 'G4int'.</LI>
1299     <LI>Completely disable G4HadSignalHandler.</LI>
1300 <LI><U>Models Utilities</U>:
1301     <UL>
1302     <LI>G4Fragment: introduced an optional parameter to switch off some
1303         warnings. By default, nothing is changed (i.e. the warnings are
1304         printed out as usual); only for electromagnetic dissociation, the
1305         parameter is set to switch off otherwise too frequent warning messages.
1306         Addressing problem report
1307         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2254">#2254</A>.</LI>
1308     <LI>G4KineticTrack: added initialization of an array as suggested by
1309         Coverity. Used consistently pre-increment and pre-decrement instead
1310         of post-increment and post-decrement, respectively.</LI>
1311     <LI>Fixed compilation warnings on clang-10.</LI>
1312     </UL></LI>
1313     </UL></LI>
1314 <LI><B>Abla</B>
1315     <UL>
1316     <LI>Fixed reported Coverity defects.</LI>
1317     </UL></LI>
1318 <LI><B>Bertini Cascade</B>
1319     <UL>
1320     <LI>Fixed non-conservation warnings coming from G4HadronicProcess due to
1321         sub-threshold reactions in Bertini. Sub-threshold reactions are now
1322         treated as having a "non-interaction" final state, that is, the initial
1323         particles are simply copied to the final state.</LI>
1324     <LI>Fixed compilation warnings on clang-10.</LI>
1325     </UL></LI>
1326 <LI><B>Binary Cascade</B>
1327     <UL>
1328     <LI>G4BinaryCascade: fixed memory leak at exit.</LI>
1329     </UL></LI>
1330 <LI><B>De-excitation</B>
1331     <UL>
1332     <LI>G4PhotonEvaporation, G4DeexPrecoParameters, G4DeexParametersMessenger:
1333         added extra flag 'IsomerProduction'; if enabled, photon evaporation
1334         samples the time of gamma transition; added C++ interface and UI command
1335         allowing to set this flag; radioactive decay constructor should enable
1336         this parameter. Addressing problem report
1337         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2226">#2226</A>.</LI>
1338     <LI>G4DeexPrecoParameters: in method Dump(), check the global verbosity
1339         level of hadronics (if zero, do not print anything).
1340         Verbose level is defined by G4HadronicParameters class or by the local
1341         verbose level.</LI>
1342     <LI>G4DeexParametersMessenger: removed obsolete UI command.</LI>
1343     <LI>G4NuclearLevelData: use 'Zmax' for initialisation before the run.
1344         Reduced usage of mutex locks; read all level data at beginning of
1345         the run.</LI>
1346     <LI>G4ExcitationHandler: verbose level is defined by G4HadronicParameters
1347         class or by the hardcoded local verbose level defined only for
1348         debugging. Use 'Zmax+1' instead of 'Zmax' for nuclear level
1349         initialisation.</LI>
1350     <LI>Fixed compilation warnings on clang-10.</LI>
1351     </UL></LI>
1352 <LI><B>Elastic scattering</B>
1353     <UL>
1354     <LI>G4HadronElastic: added numerical protection against precision loss.
1355         Addressing problem report
1356         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2253">#2253</A>.</LI>
1357     <LI>G4QuasiElRatios: extended to charmed and bottom hadrons.
1358         The simplified treatment adopted is the following: to treat all heavy
1359         mesons having constituent charm or bottom quark as a meson with strange
1360         quark, like K-, and all heavy mesons having constituent anti-charm or
1361         anti-bottom anti-quark as a meson with anti-strange quark, like K+;
1362         for baryons, all heavy baryons are treated as Lambda and all heavy
1363         anti-baryons are treated as anti-proton/anti-neutron.
1364         Fixed memory leak at exit.</LI>
1365     </UL></LI>
1366 <LI><B>Electromagnetic Dissociation</B>
1367     <UL>
1368     <LI>G4EMDissociation: fix Lorentz kinematics, responsible for causing
1369         energy-momentum violations. Switched off too frequent warning messages
1370         by G4Fragment. Addressing problem report
1371         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2254">#2254</A>.</LI>
1372     </UL></LI>
1373 <LI><B>INCLXX</B>
1374     <UL>
1375     <LI>G4INCLXXInterfaceStore: in method EmitBigWarning(), check the global
1376         verbosity level of hadronics (if zero, do not print anything).</LI>
1377     <LI>Fixed compilation warnings on clang-10.</LI>
1378     </UL></LI>
1379 <LI><B>Lepto-nuclear</B>
1380     <UL>
1381     <LI>G4NuMuNucleusCcModel, G4NeutrinoNucleusModel: new access methods
1382         and minor fixes in in nu-mu nucleus model.</LI>
1383     <LI>Added classes G4ANuElNucleusCcModel and G4ANuElNucleusNcModel
1384         for anti_nu_e. Initialization from G4PARTICLEXS (neutrino/anti_nu_e).</LI>
1385     <LI>Added classes G4NuElNucleusCcModel and G4NuElNucleusNcModel
1386         for nu_e. Initialization from G4PARTICLEXS (neutrino/nu_e).</LI>
1387     <LI>Added classes G4ANuMuNucleusCcModel and G4ANuMuNucleusNcModel
1388         for anti_mu_nu. Initialization from G4PARTICLEXS (neutrino/anti_nu_mu).</LI>
1389     <LI>G4NuMuNucleusCcModel, G4NuMuNucleusNcModel, G4NeutrinoNucleusModel:
1390         rearrangement of initialisation methods and arrays.
1391         Fixes in CoherentPion() method, cleanup of Cc and Nc.</LI>
1392     <LI>G4NeutrinoNucleusModel: added K+, K- in final state.</LI>
1393     <LI>Fixed Coverity warnings for defects.</LI>
1394     </UL></LI>
1395 <LI><B>Particle High Precision</B>
1396     <UL>
1397     <LI>Allow printout only if the global hadronic verbosity level is not
1398         zero.</LI>
1399     <LI>G4ParticleHPHash, G4ParticleHPCaptureFS: fixes for implicit conversion
1400         between 'size_t' and 'G4int', to avoid warnings on Windows.</LI>
1401     <LI>G4FissionProductYieldDist: fixed thread competition in method
1402         G4GetFission(), by placing an auto lock.
1403         Addressing problem report
1404         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2234">#2234</A>.</LI>
1405     <LI>Fix in constructor of G4ParticleHPChannel so that two fission fragment
1406         models can be active at the same time, if Wendt model is active;
1407         turn off standard fragment production model.
1408         Addressing problem report
1409         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2233">#2233</A>.</LI>
1410     <LI>Use <TT>GEANT4_BUILD_PHP_AS_HP</TT> CMake option to enable
1411         <TT>PHP_AS_HP</TT>, retiring the use of <TT>PHP_AS_HP</TT> environment
1412         variable (i.e. still valid, but deprecated, to be removed at the next
1413         major release, Geant4 11).</LI>
1414     <LI>G4ParticleHPMessenger: added new UI macro command
1415         <TT>use_Wendt_fission_model</TT> related to the use of the Wendt
1416         fission model; make sure that no more than one fission fragment model
1417     is active.</LI>
1418     <LI>G4ParticleHPManager: added a new variable related to the use of the
1419         Wendt fission model; throw a <TT>JustWarning</TT> exception when the
1420         environmental variables are used (to remind that they are still valid
1421         but deprecated, and will be removed in future version; added new method
1422         DumpSetting() can be called somewhere to printout once the values of
1423         its parameters.
1424         For completeness, here is the complete list of ParticleHP UI commands:
1425         <UL>
1426         <LI>Force use of the Photon Evaporation model, instead of the
1427             neutron capture final state (default: false)
1428             <TT>/process/had/particle_hp/use_photo_evaporation true</TT></LI>
1429         <LI>Use only exact isotope data files, instead of allowing nearby
1430         isotope files to be used, if the exact file is not available,
1431         the cross section will be set to zero (default: false):
1432             <TT>/process/had/particle_hp/skip_missing_isotopes true</TT></LI>
1433         <LI>Switch off the Doppler broadening due to the thermal motion of the
1434             target nucleus, with a significant CPU performance advantage
1435             (default: false):
1436             <TT>/process/had/particle_hp/neglect_Doppler_broadening true</TT></LI>
1437         <LI>Disable the adjustment of final state for getting better
1438         conservation (default: false):
1439             <TT>/process/had/particle_hp/do_not_adjust_final_state true</TT></LI>
1440         <LI>Enable the generation of fission fragments (default: false):
1441             <TT>/process/had/particle_hp/produce_fission_fragment true</TT></LI>
1442         <LI>Enable Wendt fission model (default: false):
1443             <TT>/process/had/particle_hp/use_Wendt_fission_model true</TT></LI>
1444         <LI>Enable the use of NRESP71 model for neutron on Carbon reaction
1445             (default: false):
1446             <TT>/process/had/particle_hp/use_NRESP71_model true</TT></LI>
1447         <LI>Set verbose level of the ParticleHP package (default: 1):
1448             <TT>/process/had/particle_hp/verbose ...</TT></LI></LI>
1449     </UL>
1450     <LI>G4ParticleHPInelastic, G4ParticleHPManager: enabled printout of the
1451         physics parameters (only once and with a format similar to
1452         Precompound/de-excitation and RadioativeDecay).</LI>
1453     <LI>G4ParticleHPChannel: moved environmental variable related to the use
1454         of the Wendt fission model from this class to G4ParticleHPManager.</LI>
1455     <LI>G4ParticleHPContAngularPar, G4ParticleHPInelasticBaseFS,
1456         G4ParticleHPEnAngCorrelation, G4ParticleHPFinalState: replaced use of
1457         the environmental variable <TT>G4PHP_DO_NOT_ADJUST_FINAL_STATE</TT>
1458         with the equivalent in G4ParticleHPManager, GetDoNotAdjustFinalState().</LI>
1459     </UL></LI>
1460 <LI><B>Parton-String</B>
1461     <UL>
1462     <LI>Improved treatment of antibaryon interactions in QGS.
1463         In G4QGSMFragmentation, corrected the treatment of low-mass
1464         diquark-antidiquark strings. In addition to this, introduced the Mt
1465         distribution of produced hadrons.
1466         In G4VLongitudinalStringDecay, introduced in SetMinimalStringMass()
1467         a check that the strings are of allowed type: quark-antiquark,
1468         diquark-antidiquark, quark-diquark and antiquark-antidiquark.
1469         Introduced also for diquark-antidiquark strings a special algorithm
1470         (already present for the other types of allowed strings) for treating
1471         low-mass strings with masses below known hadrons.</LI>
1472     <LI>Improved agreement of FTF simulations with NA49 experimental data (on
1473         Pt-Xf correlations for various particles produced in pp interactions at
1474         158 GeV/c).</LI>
1475     <LI>In G4QuarkExchange, the reggeon exchanges are now treated as
1476         annihilation and creation of quark-antiquark pairs (to reflect in
1477         inelastic processes the non-vacuum reggeon exchanges present in
1478         antiparticle-particle elastic scattering amplitudes).</LI>
1479     <LI>G4VLongitudinalStringDecay, G4LundStringFragmentation,
1480         G4ExcitedStringDecay: inherit from G4HadronicInteraction; destruction
1481         of these models at the end of run is now done by the hadron model
1482         store; removed implementations of private operators.</LI>
1483     <LI>G4VLongitudinalStringDecay: in the method SetMinMasses(), set the
1484         constituent masses of charm and bottom quarks; introduced also a new
1485         pre-processor option for debugging heavy hadrons, switched off by
1486         default; made the logic clearer for Coverity. Code cleanup. Improved
1487         comments.</LI>
1488     <LI>G4VStringFragmentation: use inheritance from G4HadronicInteraction;
1489         removed implementations of private operators.</LI>
1490     <LI>G4SPBaryonTable: changed return type of the method 'length()' from
1491         'double' to 'size_t', to fix warnings on Windows.</LI>
1492     <LI>G4FTFModel: attempt to fix a crash rarely observed in pion+proton
1493         reaction: added tolerance of 1.e-10 for numerical computation;
1494         cleaned-up sampling of Pt for residual nucleons (limit argument for
1495         G4Exp to 200 instead of 1e+9). Extended debug printout; use
1496         pre-increment instead of post-increment in loops; removed commented
1497         lines and unused variables.</LI>
1498     <LI>G4FTFModel, G4FTFParticipants: clean-up: removed unused methods,
1499         delete operators, use of C++11 keywords.</LI>
1500     <LI>G4VParticipants, G4VPartonStringModel, G4VStringFragmentation,
1501         G4StringModel: clean-up; removed unused methods, delete operators,
1502         use of C++11 keywords.</LI>
1503     <LI>G4VPartonStringModel: introduced a new pre-processor option for
1504         debugging heavy hadrons, switched off by default.</LI>
1505     <LI>G4QGSModel: clean-up; removed unused methods, delete operators, use of
1506         C++11 keywords, moved inline implementation to source.</LI>
1507     <LI>G4QGSParticipants: added protection for G4Exp, fixing outstanding
1508         precision loss in gamma+proton interactions.</LI>
1509     <LI>G4DiffractiveExcitation: extended to handle heavy (charm and bottom)
1510         hadrons; introduced also a new pre-processor option for debugging
1511         heavy hadrons, switched off by default. Added protection against
1512         inexisting excited hyperon states (Sigma* and Xi*).
1513         Implemented new splitting of excited hadrons into quark-antiquark or
1514         quark-diquark in the method CreateStrings().
1515         Additional code improvements.</LI>
1516     <LI>G4FTFAnnihilation: removed useless check against inexisting excited
1517         hyperon states. Added initialization of 2-dimensional arrays as
1518         suggested by Coverity. Used consistently pre-increment instead of
1519         post-increment.</LI>
1520     <LI>G4FTFParameters: extended FTF configuration interface to include
1521         parameters of quark exchange with and without excitation, for
1522         baryon and pion projectiles.</LI>
1523     <LI>G4LundStringFragmentation, G4QGSMFragmentation: if the flag for heavy
1524         (charmed and bottom) hadrons is enabled, then non-zero probabilities
1525         for c-cbar and b-bbar creation from the vacuum are set, allowing
1526         charmed and bottom hadrons to be created during the string fragmentation
1527         of ordinary (i.e. not heavy) projectile hadron nuclear reactions.</LI>
1528     <LI>G4LundStringFragmentation: extension to charm and bottom quarks of the
1529         methods Quark_AntiQuark_lastSplitting() and Quark_Diquark_lastSplitting();
1530         added protections in the method FragmentString() to avoid rare crashes
1531         seen with heavy hadrons. Introduced a new parameter (as a class data
1532         member), a kind of "temperature" for sampling the Pt of produced
1533         hadrons; this parameter has been tuned for different fragmentation
1534         processes. The string direction (one of string's properties, whose

1535         value can be either +1 for projectile-like strings or -1 for target-like

1536         strings) is now treated correctly and used to invert the results of the

1537         string fragmentation (in the string rest frame) when the string

1538         direction is -1.</LI>

1539     <LI>G4HadronBuilder: fixed condition in the method Barion() to take into

1540         account the extension to charm and bottom quarks; moreover, for both

1541         Meson() and Barion() methods, we have to force by hand that the heavy

1542         hadron produced by the string fragmentation is one of the few available

1543         in Geant4 (in particular, all heavy hadron resonances are transformed

1544         into close heavy hadron ground states). Introduced also a new

1545         pre-processor option for debugging heavy hadrons, switched off by

1546         default.</LI>

1547     <LI>G4ExcitedStringDecay: added protection in the FragmentStrings() method

1548         to avoid rare crashes seen with heavy hadrons.</LI>

1549     <LI>G4BaryonSplitter, G4SPBaryon: extension to charmed and bottom

1550         baryons and anti-baryons.</LI>

1551     <LI>G4SingleDiffractiveExcitation, G4QGSDiffractiveExcitation,

1552         G4QuarkExchange: in ExciteParticipants() method of these classes,

1553         extension to charmed and bottom hadrons by assuming a minimum

1554         projectile diffractive mass equal to the PDG mass plus 250 MeV;

1555         in G4QuarkExchange, assumed also 50% for the probability of projectile

1556         diffraction.</LI>

1557     <LI>G4Reggeons: in the constructor, replaced Omega_cc (PDG code #4432)

1558         with Omega_c (PDG code #4332); added comments.</LI>

1559     <LI>G4FragmentingString: erased some inconsistencies.</LI>

1560     </UL></LI>

1561 <LI><B>QMD</B>

1562     <UL>

1563     <LI>G4QMDReaction: added code in ApplyYourself() to get the cross section

1564         when the projectile is a pion.

1565         Replaced data member G4PiNuclearCrossSection with G4BGGPionElasticXS

1566         and G4BGGPionInelasticXS.

1567         In G4QMDGroundStateNucleus constructor, move the check for proton or

1568         neutron projectile earlier in the code so that the baryon number can

1569         be conserved.

1570         Addressing problem report

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

1572     </UL></LI>

1573 <LI><B>Radioactive Decay</B>

1574     <UL>

1575     <LI>G4RadioactiveDecayBase, G4RadioactiveDecay: in BuildPhysicsTable(),

1576         check the global hadronic verbosity level before printing out

1577         information.</LI>

1578     <LI>G4RadioactiveDecayBaseMessenger, G4RadioactiveDecaymessenger,

1579         G4RadioactivationMessenger: deprecated old UI commands <TT>/grdm/...</TT>

1580         and introduced new corresponding ones, <TT>/process/had/rdm/...</TT>.</LI>

1581     </UL></LI>

1582 <LI><B>RPG</B>

1583     <UL>

1584     <LI>Fixed Coverity warnings for unused variables.</LI>

1585     </UL></LI>

1586 <LI><B>Theo_High_Energy</B>

1587     <UL>

1588     <LI>G4CRCoalescence: new class for applying coalescence to the secondaries

1589         produced by string model to form deuterons and antideuterons from,

1590         respectively, proton-neutron and antiproton-antineutron pairs with

1591         close momenta; useful in particular for Cosmic Ray applications.</LI>

1592     <LI>G4TheoFSGenerator: introduced temporarily dummy treatment of heavy

1593         (charm and bottom) projectile hadrons at low energies (below 100 MeV).

1594         Cascade models are currently not applicable for heavy hadrons and

1595         string models cannot handle them properly at very low energies, so we

1596         return as final state the initial state unchanged.

1597         Note that, for most applications, this is a safe simplification, giving

1598         that the nearly all slowly moving charm and bottom hadrons decay before

1599         any hadronic interaction can occur.

1600         In method ApplyYourself(), apply G4CRCoalescence to the candidate

1601         secondaries produced by the string model, if the corresponding switch

1602         is enabled (by default it is disabled).</LI>

1603     <LI>G4QuasiElasticChannel: use inheritance from G4HadronicInteraction.

1604         In G4TheoFSGenerator, do not destruct G4QuasiElasticChannel.</LI>

1605     <LI>G4QuasiElasticChannel, G4TheoFSGenerator: clean-up; use of C++11

1606         keywords and loops, removed unused methods, formatting.</LI>

1607     </UL></LI>

1608 </UL>

1609 

1610 <A NAME="interc-notes">

1611 <H3><I>Intercoms</I></H3></A>

1612 <UL>

1613 <LI>Added new parameter type 'L' for long int type; added parameter range

1614     check for long int and introducing G4UIcmdWithALongInt command type.</LI>

1615 <LI>Added G4ProfilerMessenger class.</LI>

1616 <LI>Revision for c++11 constructs, code cleanup and formatting.</LI>

1617 <LI>Fixed Coverity defect for uninitialised data in G4UImanager.</LI>

1618 <LI>Removed unnecessary use of deprecated G4USE_STD11 flag in G4AnyMethod.</LI>

1619 </UL>

1620 

1621 <A NAME="interf-notes">

1622 <H3><I>Interfaces</I></H3></A>

1623 <UL>

1624 <LI>G4UIQt: replaced use of setTextColor() with adoption of rich text html

1625     tags (improving visibility in macOS Dark Mode).

1626     Send G4cout/G4cerr also to std::cout/cerr if in master thread,

1627     as workaround to the problem of loss of output in the case of a crash or

1628     G4Exception.</LI>

1629 <LI>Fixed deprecation warnings being triggered when using Qt-5.15.</LI>

1630 <LI>Make such that GEANT4_USE_INVENTOR for SoXt activates use of Xm, so there's
1631     no need to check for use of Inventor in setting up Xt, only GEANT4_USE_XM.</LI>
1632 <LI>Use CMake AUTOMOC to automatically generate and compile Moc sources
1633     and fixed CMake script to support new CMake system.</LI>
1634 <LI>Fixed text typos in printout. Problem report
1635     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>.
1636 </UL>
1637 
1638 <A NAME="materials-notes">
1639 <H3><I>Materials</I></H3></A>
1640 <UL>
1641 <LI>G4Material: added two new public methods to add elements to a material
1642     with new signature.</LI>
1643 <LI>G4MaterialPropertiesTable: added ConstPropertyExists() method.
1644     Added new methods to access/add properties with G4String and
1645     std::vector.</LI>
1646 <LI>G4MaterialPropertiesTable, G4MaterialPropertiesIndex: added new
1647     properties for scintillation allowing 3 time constants and a second
1648     wavelength shifter in the same material.</LI>
1649 <LI>G4OpticalSurface: handle REALSURFACE optical data files zlib-compressed.
1650     Requires new data-set G4RealSurface-2.2.</LI>
1651 <LI>G4SurfaceProperty, G4OpticalSurface: some c++11 revision and code
1652     formatting; added method to select file to read; replaced long if/else
1653     construct with switch/case.</LI>
1654 <LI>Added G4MicroElecMaterialStructure, G4MicroElecSiStructure classes for
1655     micro-dosimetry simulation.</LI>
1656 <LI>G4OpticalSurface: added protection against access to optical LUT out of
1657     array bounds. Addressing problem report
1658     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2287">#2287</A>.</LI>
1659 <LI>G4Element, G4NistManager, G4NistMaterialBuilder: fixed spelling in
1660     printouts.</LI>
1661 <LI>Fixed text typos in printout. Problem report
1662     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>.
1663 </UL>
1664 
1665 <A NAME="parameterisations-notes">
1666 <H3><I>Parameterisations</I></H3></A>
1667 <UL>
1668 <LI>GFLASH:
1669     <UL>
1670     <LI>Substituting Gamma calculation with corresponding STL functions, as
1671         suggested in
1672         <A HREF="https://github.com/Geant4/geant4/pull/3">GitHub PR#3</A>.
1673         Makes LnGamma calculation 1.4 times faster,
1674         and Gamma 1.9 times faster.</LI>
1675     <LI>GFlashSamplingShowerParameterisation: added X0eff calculation.</LI>
1676     <LI>Delete local tuning data in GFlashXXXShowerParameterisation class
1677         destructors.</LI>
1678     </UL></LI>
1679 </UL>
1680 
1681 <A NAME="part-notes">
1682 <H3><I>Particles</I></H3></A>
1683 <UL>
1684 <LI>G4ParticleTable: create/destruct only one instance of G4IonTable and
1685     associated messenger; define assignment operator and copy constructor
1686     as deleted; added cache with pointer to selected particle and get/set
1687     methods.</LI>
1688 <LI>G4ShortLivedConstructor: improved constitutent masses of heavy diquarks.</LI>
1689 <LI>G4DynamicParticle: added GetBeta() method.</LI>
1690 <LI>G4OpticalPhoton: define PDG code as "-22".</LI>
1691 <LI>G4NuclideTable: added destruction of messenger.</LI>
1692 <LI>Added move operators to G4DynamicParticle.
1693     Code revision for c++11 and cleanup in 'management' module.</LI>
1694 </UL>
1695 
1696 <A NAME="pers-notes">
1697 <H3><I>Persistency</I></H3></A>
1698 <UL>
1699 <LI>Minor c++11 review. Code cleanup and formatting.</LI>
1700 <LI>ASCII:
1701     <UL>
1702     <LI>Fixed Coverity defects warnings.</LI>
1703     </UL></LI>
1704 <LI>GDML:
1705     <UL>
1706     <LI>Fixed reading and writing of const properties of materials.
1707         Matrices of size 1x1 are now used both for writing out and reading in
1708         of const material. This fixes the inconsistency (using constants by the
1709         writer) found in the code. Const material properties with the same name
1710         (in different materials) are now written out with the properties table
1711         address appended.</LI>
1712     <LI>Added new method SetOutputFileOverwrite(G4bool) to the G4GDMLParser, 
1713         allowing to set the flag to enable overwriting of the output GDML file.
1714         Addressing problem report
1715         <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2288">#2288</A>.
1716     </UL></LI>
1717 </UL>
1718 
1719 <A NAME="lst-notes">
1720 <H3><I>Physics lists</I></H3></A>
1721 <UL>
1722 <LI><B>Builders</B>:
1723     <UL>
1724     <LI>Revised all classes to remove unnecessary members, not destruct models
1725         and cross-sections and use updated instantiation of string models.
1726         This should help to achieve full deletion of hadronic physics objects
1727         at the end of run.</LI>
1728     <LI>G4QGSPAntiBarionBuilder: created new class to handle anti_proton and
1729         anti_neutron at high energies with QGSP. For the light anti-ions
1730         (anti_deuteron, anti_triton, anti_He3, and anti_alpha), currently QGSP
1731         cannot handle them, therefore FTFP is used.</LI>
1732     <LI>G4VHyperonBuilder, G4HyperonBuilder, G4HyperonQGSPBuilder: new classes
1733         to allow alternative builders for hyperons (and anti-hyperons).
1734         The class G4HyperonQGSPBuilder uses QGSP model to handle hyperons (and
1735         anti-hyperons) at high energies.</LI>
1736     <LI>G4HyperonFTFPBuilder: now it derives from G4VHyperonBuilder (physics
1737         behind remains unchanged, i.e. it is still based on BERT and FTFP
1738         models).</LI>
1739     <LI>G4HadronicBuilder: new utility class to build kaons, hyperons, and
1740         charm and bottom hadrons.</LI>
1741     <LI>Added second wavelength shifter optical process to the
1742         OrderingParameterTable.</LI>
1743     </UL></LI>
1744 <LI><B>Constructors</B>:
1745     <UL>
1746     <LI><U>decay</U>
1747         <UL>
1748         <LI>G4RadioactiveDecayPhysics: enabled flag for isomer production,
1749             required after fix to problem report
1750             <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2226">#2226</A>.
1751             Updated initialisation to be coherent with recent updates in
1752             initialisation of atomic de-excitation. Added EM parameters
1753             definition in ConstructProcess(...); if atomic de-excitation
1754             is not defined add it in each thread but not change EM parameters
1755             in a thread; should address several problems observed in tests.</LI>
1756         <LI>G4DecayPhysics, G4RadioactiveDecayPhysics, G4SpinDecayPhysics,
1757             G4UnknownDecayPhysics: general cleanup. Removed thread local
1758             pointers, avoid deleting objects; use C++11 keywords; use standard
1759             signatures for constructors; define builder type for the main
1760             constructor G4DecayPhysics (bDecay, for others bUnknown).</LI>
1761         </UL></LI>
1762     <LI><U>electromagnetic</U>:
1763         <UL>
1764         <LI>G4GammaGeneralProcess: fixed problem of a concrete process
1765             assigning a step to post step point. Improved printouts and made
1766             some methods protected.</LI>
1767         <LI>G4OpticalPhysics, G4OpticalPhysicsMessenger: added settings for
1768             G4Scintillation to use 3 time constants. Added second wavelength
1769             shifter optical process to constructors.</LI>
1770         <LI>G4EmBuilder: new utility class to allow reducing code duplication
1771             for standard and low-energy EM physics constructors. Includes flag
1772             for allowing choice of multiple-scattering model.</LI>
1773         <LI>G4OpticalPhysics, G4OpticalPhysicsMessenger, G4OpticalProcessIndex: 
1774             moved optical physics parameters to new G4OpticalParameters class.
1775             Removed G4OpticalPhysicsMessenger class and replaced by
1776             G4OpticalParametersMessenger. Removed G4OpticalProcessIndex class,
1777             with code now in G4OpticalParameters.</LI>
1778         <LI>G4EmStandardPhysics_option1: switch to use new G4EmBuilder utility;
1779             fixed StepFunction definition.</LI>
1780         <LI>G4EmStandardPhysics_option3: switch to use new G4EmBuilder utility;
1781             use ICRU90 stopping power data for water and air.</LI>
1782         <LI>G4EmStandardPhysics_option4: use ICRU90 data.</LI>
1783         <LI>G4EmStandardPhysicsSS: use the new G4eDPWACoulombScatteringModel
1784             for e-/e+ below 100 [MeV] (for testing this new model).</LI>
1785         <LI>Removed duplicate code by using G4EmBuilder in several constructors,
1786             fixed definition of StepFunction, use the same flag as hadronic
1787             physics to enable EM interaction of b- and c- mesons and baryons.</LI>
1788         <LI>G4EmModelActivator: use same options for physics per region as used
1789             in EM constructors recently updated.</LI>
1790         <LI>G4LivermorePolarizedPhysics: use inheritance from
1791             G4LivermorePhysics.</LI>
1792         <LI>G4EmModelActivator: updated multiple-scattering and PAI
1793             configurations to address problem reports
1794             <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2052">#2052</A>
1795             and <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2106">#2106</A>.</LI>
1796         <LI>G4EmDNAModelActivator: extended to extra available DNA options
1797             (DNA_Opt2, DNA_Opt4, DNA_Opt4a, DNA_Opt6, DNA_Opt6a, DNA_Opt7).</LI>
1798         <LI>Optimisation in initialisation of G4EmDNAChemistry_option3.</LI>
1799         <LI>Use C++11 features in several constructors.</LI>
1800         </UL></LI>
1801     <LI><U>gamma_lepto_nuclear</U>:
1802         <UL>
1803         <LI>G4EmExtraPhysics, G4EmMessenger: added low-energy limit, set method,
1804             and UI command defining low-energy gamma-nuclear model, which is
1805             using de-excitation module and providing isomer production and
1806             gamma transitions. Added a flag to enable G4GammaNuclearXS
1807             cross-section and possibility to use general process for electron
1808             and positron; fixed several UI commands.</LI>
1809         <LI>G4EmExtraPhysics: extension to anti_nu_mu, nu_e and anti_nu_e
1810             processes-models.</LI>
1811         </UL></LI>
1812     <LI><U>hadron_elastic</U>:
1813         <UL>
1814         <LI>G4HadronElasticPhysics: use coherently with inelastic physics
1815             builder the new utilities G4HadParticles and G4HadronicBuilder.
1816             Instantiate anti-hyperons. Added optional cross-section scaling
1817         factors for systematics studies. Use G4HadProcesses and
1818         G4PhysListUtil.</LI>
1819         <LI>G4HadronHElasticPhysics: added elastic scattering for charm and
1820             bottom hadrons (needed for FTFP_BERT_TRV).</LI>
1821         <LI>G4ThermalNeutrons: use G4PhysListUtils to access neutron elastic
1822             process.</LI>
1823         </UL></LI>
1824     <LI><U>hadron_inelastic</U>:
1825         <UL>
1826         <LI>Use the new builder class G4QGSPAntiBarionBuilder to handle
1827             anti_proton and anti_neutron at high energies with QGSP.
1828             For the light anti-ions - anti_deuteron, anti_triton, anti_He3 and
1829             anti_alpha - currently QGSP cannot handle them, therefore FTFP is
1830             used.</LI>
1831         <LI>In all the inelastic physics constructors which are using the
1832             builder G4HyperonFTFPBuilder, introduced the new builder
1833             G4HyperonBuilder; moreover, the new builder G4HyperonQGSPBuilder
1834             is used now in all QGS-based inelastic physics constructor for
1835             hyperons (and anti-hyperons) at high energies, while keeping using
1836             G4HyperonFTFPBuilder at lower energies.</LI>
1837         <LI>G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BERT,
1838             G4HadronInelasticQBBC: added charm and bottom hadrons.
1839         Enabled charm and bottom hadronic physics - now available in nearly
1840         all physics lists, in particular those of interest for HEP; the main
1841             exception is QGSP_BIC and its derived physics lists, which are
1842             typically used for low-energy applications.</LI>
1843         <LI>G4HadronPhysicsQGSP_BIC_HP, G4HadronPhysicsQGSP_BIC_AllHP:
1844             refactoring consistently with all others.
1845             For G4HadronPhysicsQGSP_BIC_HP, the physics remains unchanged;
1846             for G4HadronPhysicsQGSP_BIC_AllHP, the physics remains unchanged
1847             except for the transition region between Binary and ProtonHP which
1848             is now 190-200 MeV (instead than 199-200), as for light ions.</LI>
1849         <LI>G4HadronInelasticQBBC: utilities G4HadParticle and
1850         G4HadronicBuilder. Fixed neutron and anti-baryon configurations.
1851             Added optional cross-section scaling factors for systematics
1852         studies. Applied the Binary cascade to pions below 1.5 GeV.</LI>
1853         <LI>G4HadronInelasticQGSP_BIC, G4HadronInelasticQGSP_BIC_HP, 
1854             G4HadronInelasticQGSP_BIC_AllHP: added optional cross-section
1855             scaling factors for systematics studies; added charm and bottom
1856         hadron physics.
1857         <LI>G4HadronInelasticQGSP_BERT, G4HadronInelasticQGSP_BERT_HP, 
1858             G4HadronInelasticQGSP_FTFP_BERT: added optional cross-section
1859             scaling factors for systematics studies; added charm and bottom
1860         hadron physics; implemented DumpBanner() method; added more c++11
1861         keywords.</LI>
1862         <LI>G4HadronInelasticFTFP_BERT, G4HadronInelasticFTFP_BERT_HP, 
1863             G4HadronInelasticFTFP_BERT_ATL, G4HadronInelasticFTFP_BERT_TRV:
1864             added optional cross-section scaling factors for systematics
1865         studies; added charm and bottom hadron physics; c++11 code
1866         revision; removed unused headers.</LI>
1867         <LI>G4HadronInelasticQGSP_BERT and G4HadronInelasticQGSP_BIC: replaced
1868             BuildAntiLightIonsQGSP_FTFP() with BuildAntiLightIonsFTFP();
1869             currently QGSP cannot be applied to any ion or anti-ion.
1870             Allow modification of parameters at 'PreInit' state.</LI>
1871         <LI>G4HadronInelasticQGSP_FTFP_BERT: enabled charm and bottom hadron
1872             physics.</LI>
1873         <LI>G4HadronPhysicsINCLXX: use inheritance from the base class
1874             G4HadronPhysicsFTFP_BERT; removed duplicated code; code clean-up.
1875             List of models and applicability intervals are the same;
1876             implemented charm and bottom hadron physics and cross-section
1877         scaling factors.</LI>
1878         <LI>In G4HadronPhysicsNuBeam, G4HadronPhysicsShielding,
1879             G4HadronPhysicsShieldingLEND, G4HadronPhysicsFTF_BIC,
1880             G4HadronPhysicsQGS_BIC and G4HadronPhysicsFTFQGSP_BERT:
1881             use inheritence from the base class G4HadronPhysicsFTFP_BERT and
1882             removed duplicated code; ensure list of models and applicability
1883             intervals are the same; implemented charm and bottom hadron physics
1884         and cross-section scaling factors.</LI>
1885         <LI>G4VHadronPhysics: removed unused and obsolete methods and
1886             thread_local methods.</LI>
1887         <LI>Improved comments and info printout in other physics classes.</LI>
1888         <LI>Updated README.</LI>
1889         </UL></LI>
1890     <LI><U>ions</U>:
1891         <UL>
1892         <LI>Cleanup of constructors: fixed names; made all constructor
1893             signatures universal, removed thread local members, added
1894             c++11 keywords.</LI>
1895         <LI>Updated README.</LI>
1896         </UL></LI>
1897     <LI><U>stopping</U>:
1898         <UL>
1899         <LI>Cleanup of constructors: fixed names; made all constructor
1900             signatures universal, removed thread local members, added
1901             c++11 keywords.</LI>
1902         </UL></LI>
1903     </UL></LI>
1904 <LI><B>Lists</B>:
1905     <UL>
1906     <LI>LBE: added G4ShortLivedConstructor, to prevent issues, e.g. when rho0
1907         is produced by the decay of eta_prime.</LI>
1908     </UL></LI>
1909 <LI><B>Util</B>:
1910     <UL>
1911     <LI>G4HadParticles: new utility providing several lists of PDG codes for
1912         kaons, hyperons, charm and bottom hadrons in order to be used for
1913         construction of hadronic physics. Updated list of heavy EM particles.
1914         Subdivided in different methods hyperons and anti-hyperons.
1915         Separated light anti-particles to the extra vector and added extra
1916         access method.</LI>
1917     <LI>G4HadProcesses: new utility class providing access to hadronic
1918         processes and the possibility to add a cross-section per particle type
1919         and per hadronic process; by using this class it is possible to
1920         customise hadronic cross-sections.</LI>
1921     <LI>G4PhysListUtil: added method to access elastic cross-section.
1922         Added utility method InitialiseParameters(). 
1923         Updated dependencies on internal modules.</LI>
1924     </UL></LI>
1925 </UL>
1926 
1927 <A NAME="run-notes">
1928 <H3><I>Run</I></H3></A>
1929 <UL>
1930 <LI>G4RunManager, G4WorkerRunManager: added layered mass geometry option
1931     for the new "probe" scoring mesh.</LI>
1932 <LI>G4RunManager: do not call G4ParticleTable for Messenger deletion.
1933     Added dummy virtual methods Get/SetNumberOfThreads() to allow for
1934     dispatching in MT/Tasking classes inheritance.</LI>
1935 <LI>Modified G4MTRunManager to enable inheritance for new G4TaskRunManager.
1936     Added banner similar to G4TaskRunManager at method CreateAndStartWorkers();
1937     moved master scoring-manager, master worlds, 'fMasterRM' from private to
1938     protected sections.</LI>
1939 <LI>G4MTRunManager, G4RunManager: fixes for windows, to avoid inline static
1940     methods and use export flag G4RUN_DLL for static data.</LI>
1941 <LI>Added activation of G4Backtrace to G4RunManagerKernel.</LI>
1942 <LI>Run-managers are now friends of G4RunManagerFactory.</LI>
1943 <LI>Added second wavelength shifter process to G4PhysicsListHelper.</LI>
1944 <LI>G4VPhysicsConstructor: added harmless call to G4HadronicParameters in
1945     constructors, setting a default parameter; needed to create the instance
1946     of the G4HadronicParameters singleton before run initialization.</LI>
1947 <LI>G4VModularPhysicsList: fixed typos in printouts.</LI>
1948 <LI>Added G4Profiler support for TiMemory; removed TIMEMORY_AUTO_TIMER.</LI>
1949 <LI>Fixed text typos in printout. Problem report
1950     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
1951     and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
1952 <LI>General code formatting.</LI>
1953 </UL>
1954 
1955 <A NAME="tasking-notes">
1956 <H3><I>Tasking</I></H3></A>
1957 <UL>
1958 <LI>New module implementing a new Geant4 run manager, G4TaskRunManager,
1959     enabling use of the PTL tasking system for the event loop. The tasking
1960     system is fully compatible with Intel TBB, which can be selected if
1961     GEANT4_USE_TBB=ON is specified when configuring CMake. The default
1962     behavior for tasking, however, is to submit the tasks to an internal
1963     thread-pool and task-queue.</LI>
1964 </UL>
1965 
1966 <A NAME="track-notes">
1967 <H3><I>Track &amp; Tracking</I></H3></A>
1968 <UL>
1969 <LI>G4Track: use new G4OpticalPhoton PDG code; removed static thread local 
1970     variables; slightly simplified velocity computation; fixed Coverity
1971     warnings connected with unnecessary checks for valid pointers to G4Step
1972     and G4DynamicParticle; removed commented code.
1973     Avoid using velocity table, use GetBeta() method from G4DynamicParticle
1974     instead; expected minor speedup.</LI>
1975 <LI>Minor c++11 revision; code cleanup and formatting.</LI>
1976 <LI>Fixed minor Coverity defects in G4Step and G4SteppingManager.</LI>
1977 </UL>
1978 
1979 <A NAME="vis-notes">
1980 <H3><I>Visualization</I></H3></A>
1981 <LI>Use CMake AUTOMOC to automatically generate and compile Moc sources
1982     and fixed CMake script to support new CMake system.</LI>
1983 <LI>Fixed text typos in printout. Problem report
1984     <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
1985     and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
1986 <UL>
1987 <LI><B>Management</B>
1988     <UL>
1989     <LI>Fixed case where models with no extent do not contribute to scene's

1990         extent.</LI>

1991     <LI>Trap infinite loop when looking for a fallback graphics system when

1992         issuing "/vis/sceneHandler/create".</LI>

1993     <LI>G4VisExecutive: added support for OIQt driver, via "OIQt" or "OI"

1994         keywords, provided the G4OpenInventor library has been built with

1995         the OIQt driver included.</LI>

1996     <LI>Added new command "/vis/geometry/set/forceCloud".</LI>

1997     <LI>G4VVisCommand: added CheckView for future utility.</LI>

1998     <LI>G4VisCommandsScene: improved output layout for "/vis/scene/showExtents".

1999         Removed superfluous/unnecessary SetView() in

2000         G4VisCommandSceneNotifyHandlers.</LI>

2001     <LI>G4VisManager: protected algorithm in NotifyHandlers() with

2002         'IsValidView'.</LI>

2003     <LI>Removed obsolete G4VIS_USE_STD11 and references to obsolete G4VIS_USE.</LI>

2004     <LI>Bug fix: rebuild graphics databases after "/vis/filtering/*/mode".</LI>

2005     <LI>Improved printing of available systems and models.</LI>

2006     <LI>Improved logic in G4VisManager for automatic event keeping.</LI>

2007     <LI>In MT mode, now keeping one (random) event when end-of-event action

2008         is "refresh" and keeping events (up to a user-adjustable maximum

2009         number). These may be in addition to events kept by a user in his/her

2010         user actions.</LI>

2011     <LI>Improved messaging.</LI>

2012     <LI>Use command->CommandFailed(); remove internal 'fErrorCode'.</LI>

2013     <LI>Implemented G4RunManagerFactory::GetMasterRunManager().</LI>

2014     </UL></LI>

2015 <LI><B>Modeling:</B>

2016     <UL>

2017     <LI>Rationalised defaults for PVPaths; make sure all nodes are marked as

2018         "not drawn" unless actually chosen for drawing.</LI>

2019     <LI>Suppress warnings while filter not fully established.</LI>

2020     <LI>Pick up default vis attributes.</LI>

2021     <LI>Implemented G4RunManagerFactory::GetMasterRunManager().</LI>

2022     <LI>Improved printing. Minor code tidy.</LI>

2023     </UL></LI>

2024 <LI><B>FukuiRenderer</B>

2025     <UL>

2026     <LI>G4DAWNFILEViewer: fixed Unbuntu 20 compiler warning about ignoring

2027         system function return value.</LI>

2028     <LI>G4FukuiRendererViewer: fixed compilation warning for overlapping

2029         comparisons always evaluating to true.</LI>

2030     </UL></LI>

2031 <LI><B>OpenGL</B>

2032     <UL>

2033     <LI>Improved guidance and tidy "/vis/ogl/" commands.</LI>

2034     <LI>Removed no longer required dependence on GLU.</LI>

2035     <LI>Removed support for Qt4.</LI>

2036     <LI>Fixed bug in "/vis/ogl/export" when dot '.' is included in name.</LI>

2037     <LI>CompareForKernelVisit(), force kernel visit if global parameters

2038         change. Avoid unnecessary redraw at start.</LI>

2039     <LI>Implemented G4RunManagerFactory::GetMasterRunManager().</LI>

2040     </UL></LI>

2041 <LI><B>OpenInventor</B>

2042     <UL>

2043     <LI>Added Open Inventor Qt visualisation driver. The Open Inventor module

2044         can be built with either the OIQt driver, or with the OIX/OIXE drivers,

2045         but not with both. Enabled use of OIQt viewer with Qt UI.</LI>

2046     <LI>Enable configuration for OIQt driver, as orthogonal to OIX and OIXE.</LI>

2047     <LI>CompareForKernelVisit(), force kernel visit if global parameters

2048         change. Avoid unnecessary redraw at start.</LI>

2049     </UL></LI>

2050 <LI><B>Qt3D</B>

2051     <UL>

2052     <LI>New driver based on Qt3D for native Qt rendering.</LI>

2053     </UL></LI>

2054 <LI><B>Raytracer</B>

2055     <UL>

2056     <LI>Suppressed printing during RayTracer run.</LI>

2057     <LI>Implemented G4RunManagerFactory::GetMasterRunManager().</LI>

2058     </UL></LI>

2059 <LI><B>VRML</B>

2060     <UL>

2061     <LI>G4VRML1/2FileSceneHandler: fixed Unbuntu 20 compiler warning about

2062         ignoring system function return value.</LI>

2063     </UL></LI>

2064 <LI><B>XXX</B>

2065     <UL>

2066     <LI>CompareForKernelVisit(), force kernel visit if global parameters

2067         change. Avoid unnecessary redraw at start.</LI>

2068     </UL></LI>

2069 <LI><B>Externals</B>

2070     <UL>

2071     <LI>Fixed Coverity defect warning.</LI>

2072     </UL></LI>

2073 </UL>

2074 

2075 <A NAME="env-notes">

2076 <H3><I>Environments</I></H3></A>

2077 <UL>

2078 <LI>G4Py:

2079     <UL>

2080     <LI>Removed obsolete boost.python indexing suite (which was only required

2081         on very old Boost versions <= 1.33). Replace use in client modules by

2082         direct inclusion of the needed Boost header.</LI>

2083     <LI>Modified use of Boost 1.73 binding and placeholder functionality,

2084         resulting in Boost.Python spamming pragma messages about deprecation

2085         of this.

2086         Added BOOST_BIND_GLOBAL_PLACEHOLDERS as a private compile definition

2087         to geant4py targets to suppress these.</LI>

2088     <LI>Made CMAKE_INSTALL_PYTHONDIR a user-configurable cache variable.

2089         RPATH issue is addressed by use of CMAKE_SKIP_INSTALL_RPATH variable

2090         by client. Addressing problem report

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

2092     <LI>Updated signatures to support const addresses as return values in

2093         G4UIcommand.</LI>

2094     <LI>Added binding to G4PhysListFactory and a simple test.

2095         Addressing

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

2097     </UL></LI>

2098 </UL>

2099 

2100 <A NAME="data-notes">

2101 <H3><I>Data sets</I></H3></A>

2102 <UL>

2103 <LI>New low-energy data set version, <B>G4EMLOW-7.13</B>:

2104     <UL>

2105     <LI>Added new cross-section files for protons (HT).</LI>

2106     <LI>Added EPICS2017 data for gamma conversion (ZL).</LI>

2107     <LI>Added new JAEA elastic polarized gamma scattering data files

2108         in compressed format.</LI>

2109     <LI>Added a new numerical DCS set for e-/e+ elastic scattering

2110         obtained by numerical Dirac Partial Wave Analysis (DPWA).

2111         More information can be found in the 'dpwa/Readme.txt' file.</LI>

2112     <LI>Added new Molecular Interference form factors (penelope/rayleigh/MIFF),

2113         to be used by G4PenelopeRayleighMI model.</LI>

2114     </UL></LI>

2115 <LI>New data files for nuclides properties <B>G4ENSDFSTATE-2.3</B>:

2116     <UL>

2117     <LI>Corrected GD158 data to be compliant with new PhotonEvaporation

2118         database.</LI>

2119     </UL></LI>

2120 <LI>New data files for evaluated cross-sections <B>G4PARTICLEXS-3.1</B>:

2121     <UL>

2122     <LI>Regenerated n, p, d, t, He3, He4, gamma data based on G4NDL4.6 and

2123         LEND; provided smooth cross-section shape and fixed fusion

2124         cross-sections.</LI>

2125     </UL></LI>

2126 <LI>New data set version <B>G4PhotonEvaporation-5.7</B> for nuclear de-excitation

2127     data:

2128     <UL>

2129     <LI>Updated file z66.a161 (Dy161) for the decay of Tb161.</LI>

2130     <LI>New file for z64.a158 (Gd158).</LI>

2131     <LI>Updated and corrected file z64.156 (Gd156).</LI>

2132     </UL></LI>

2133 <LI>New data set version for radioactive-decay processes,

2134     <B>G4RadioactiveDecay-5.6</B>:

2135     <UL>

2136     <LI>Updated file z82.a211 (Pb211) according to DDEP plus adding of

2137         firstForbidden tag.</LI>

2138     <LI>Slight update of z83.a211 (Bi211) and z84.a211 (Po211) according to DDEP.</LI>

2139     <LI>Correction of file z2.a8; addressing problem report

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

2141     <LI>Update of file z63.a158 (EU158 beta- decay to Gd158).</LI>

2142     <LI>Removed empty lines in files z3.a8, z7.a16, z10.a18.</LI>

2143     </UL></LI>

2144 <LI>New data set version for measured optical surface reflectance,

2145     <B>G4RealSurface-2.2</B>:

2146     <UL>

2147     <LI>Compressed data with zlib.</LI>

2148     </UL></LI>

2149 </UL></LI>

2150 

2151 <A NAME="ex-notes">

2152 <H3><I>Examples</I></H3></A>

2153 <UL>

2154 <LI>Updated reference outputs, macros, READMEs and scripts.</LI>

2155 <LI>Fixes for Doxygen documentation and coding guidelines.</LI>

2156 <LI>Migrated most examples to use G4RunManagerFactory, therefore allowing

2157     for enabling optional tasking in MT builds.

2158 <LI><B><U>advanced</U></B>

2159     <UL>

2160     <LI><B>air_shower</B>

2161         <UL>

2162         <LI>Output results histograms to file. Added macro file to plot

2163             histograms.</LI>

2164         <LI>Create material properties using std::vectors.</LI>

2165         <LI>Added missing include statement in UltraDetectorConstruction.</LI>

2166         </UL></LI>

2167     <LI><B>brachytherapy</B>

2168         <UL>

2169         <LI>Analysis now fully compliant with g4tools; removed dependency

2170             on Root. General cleanup of the code. Implemented RunAction.</LI>

2171         </UL></LI>

2172     <LI><B>fastAerosol</B>

2173         <UL>

2174         <LI>New example showing use of FastAerosol geometry classes, allowing

2175             to efficiently and accurately simulate particle transport through

2176             aerosols containing billions of randomly-positioned droplets, using

2177             an ordinary workstation. See: MacFadden, N., Knaian, A.,

2178             "Efficient Modeling of Particle Transport through Aerosols in

2179             Geant4", manuscript in preparation, 2020.</LI>

2180         </UL></LI>

2181     <LI><B>gammaray_telescope</B>

2182         <UL>

2183         <LI>GammaRayTelHadronPhysics, GammaRayTelIonPhysics: fixed

2184             compilation problems due to incorrect FTFP instantiation.</LI>

2185         <LI>Added option to use G4EmStandard_Option4 with BetheHeitler5D model

2186             by using macro file physics_polarized_new.mac to select the EM

2187             physics processes and models.</LI>

2188         <LI>Added new macro gammaray_polarized.in.</LI>

2189         </UL></LI>

2190     <LI><B>gorad</B>

2191         <UL>

2192         <LI>New example Gorad (Geant4 Open-sourced Radiation Analysis and

2193             Design), a turn-key application for radiation analysis and

2194             spacecraft design.</LI>

2195         </UL></LI>

2196     <LI><B>hadrontherapy</B>

2197         <UL>

2198         <LI>Added BEST beamline.</LI>

2199         <LI>Fixed occasional segmentation faults in MT mode with max number

2200             of threads.</LI>

2201         <LI>Fixes in using analysis: added test for open file before calling

2202             write & close; uncommented delete of analysis manager in

2203             RunAction.</LI>

2204         <LI>Added protections against FPEs in RBE module.</LI>

2205         <LI>Fixed compilation warnings on Windows related type conversions.</LI>

2206         <LI>Deleted many obsolete macro files.</LI>

2207         <LI>Code cleaup; removed Root script folder and other cosmetics.</LI>

2208         </UL></LI>

2209     <LI><B>HGCal_testbeam</B>

2210         <UL>

2211         <LI>New example based on the Geant4 standalone application developed

2212             by Thorben Quast for the CMS High Granularity Calorimeter (HGCal)

2213             studies. The example demonstrates a test beam setup used in HEP

2214             experiments, and as a base for the validation studies and

2215             comparison with experiment data. Details on the High Granularity

2216             Calorimeter (HGCal) can be found in the

2217             <A HREF="https://cds.cern.ch/record/2293646/files/CMS-TDR-019.pdf">Technical Design Report</A>..</LI>

2218         </UL></LI>

2219     <LI><B>ICRP110_HumanPhantoms</B>

2220         <UL>

2221         <LI>New example modelling the ICRP110 reference computational human

2222             phantoms and calculating the dose in individual voxels and entire

2223             organs. The human male phantom is created from a whole-body

2224             clinical CT image.</LI>

2225         </UL></LI>

2226     <LI><B>iort_therapy</B>

2227         <UL>

2228         <LI>Fixed CMake script, removing direct dependency on Root.</LI>

2229         </UL></LI>

2230     <LI><B>radioprotection</B>

2231         <UL>

2232         <LI>Added new parameter to DetectorConstruction constructor; added

2233             instance of DetectorManager in main().</LI>

2234         <LI>DetectorConstruction: defined private methods to construct a

2235             specific type of detector ("Silicon", "Diamond", and "MicroDiamond");

2236             added detectorType private string to store the name of the one in

2237             use; rewrote Construct() so that it calls the specific method of

2238             the selected detector type; moved the previous diamond detector

2239             geometry to ConstructDiamondDetector() and added new possible

2240             geometries (silicon and microdiamond).</LI>

2241         <LI>DetectorMessenger: created file in order to switch detector type.</LI>

2242         <LI>New macro geometry.mac, to select a specific detector at runtime

2243             (by default, all options are commented out).

2244             Added a line in vis.mac to execute geometry.mac before launching

2245             the GUI (at which point it wouldn't be possible to change the
2246             geometry anymore). Added a line in run.mac to execute geometry.mac.</LI>
2247         </UL></LI>
2248     <LI><B>underground_physics</B>
2249         <UL>
2250         <LI>Migrated UI commands from "/grdm/..." to "/process/had/rdm/..."
2251             in input macros.</LI>
2252         <LI>Removed unnecessary command in neutron.mac and ambe_spectrum.mac
2253             macros.</LI>
2254         <LI>Build material property tables using std::vectors.</LI>
2255         </UL></LI>
2256     </UL></LI>
2257 <LI><B><U>basic</U></B>
2258     <UL>
2259     <LI><B>B4</B>
2260         <UL>
2261         <LI>Updated B4Analysis header with commented lines for using new
2262             generic analysis manager.</LI>
2263         <LI>Added commented command "ignoreThreadsExcept 0" setting in
2264             run2.mac.</LI>
2265         </UL></LI>
2266     <LI><B>B5</B>
2267         <UL>
2268         <LI>Replaced use of G4Analysis::ManagerInstance() with new generic
2269             analysis manager. Storing ntuple in a separate file.</LI>
2270         </UL></LI>
2271     </UL></LI>
2272 <LI><B><U>extended</U></B>
2273     <UL>
2274     <LI><B>electromagnetic</B>
2275         <UL>
2276         <LI><B>TestEm1</B>
2277             <UL>
2278             <LI>PhysicsList: use G4RadioactiveDecayBase instead of deprecated
2279                 G4RadioactiveDecay. Minor code cleanup.</LI>
2280             <LI>Migrated UI command from "/grdm/nucleusLimits" to
2281                 "/process/had/rdm/nucleusLimits" in radioactive.mac macro.</LI>
2282             <LI>Reviewed macros and added macro description in README.</LI>
2283             </UL></LI>
2284         <LI><B>TestEm2</B>
2285             <UL>
2286             <LI>Macro & commands review: removed implementation of command

2287                 "/testem/histo/setFileName" and replaced its usage with

2288                 "/analysis/setFileName"; fixed file name in egs4.mac;
2289                 extended TestEm2.in with a command: "/testem/run/verbose 1".</LI>
2290             </UL></LI>
2291         <LI><B>TestEm3</B>
2292             <UL>
2293             <LI>Macro & commands review: added macro descriptions in README;
2294                 added geom.mac with commands not used in TestEm3.in; fixed not
2295                 working macros: ionC12.mac, lockwood.mac, storeTables.mac;
2296                 removed obsolete macro retrieveTables.mac.</LI>
2297             </UL></LI>
2298         <LI><B>TestEm4</B>
2299             <UL>
2300             <LI>Do not call vis.mac automatically in interactive mode.</LI>
2301             </UL></LI>
2302         <LI><B>TestEm5</B>
2303             <UL>
2304             <LI>TrackingAction: corrected weight for solid angle histograms
2305                 Updated berger.mac, berger/berger.C, hanson.mac and
2306                 hanson/hanson.C. Added hanson/19um-wwols.ascii and 9um too.
2307                 Based on proposal by Weronika Wolszczak (TU Delft Univ.).</LI>
2308             <LI>Macro & commands review: added macro descriptions in README;
2309                 added geom.mac for testing remaining commands.
2310                 Removed obsolete fluo.mac macro.</LI>
2311             <LI>StackingAction: log histograms, revert to previous version.</LI> 
2312             </UL></LI>
2313         <LI><B>TestEm7</B>
2314             <UL>
2315             <LI>Do not call vis.mac automatically in interactive mode.</LI>
2316             </UL></LI>
2317         <LI><B>TestEm11</B>
2318             <UL>
2319             <LI>PhysicsList: use G4RadioactiveDecayBase instead of deprecated
2320                 G4RadioactiveDecay. Minor code cleanup.</LI>
2321             <LI>Added macros description.</LI>
2322             </UL></LI>
2323         <LI><B>TestEm12</B>
2324             <UL>
2325             <LI>Added macros description.</LI>
2326             </UL></LI>
2327         <LI><B>TestEm14</B>
2328             <UL>
2329             <LI>Added atomicDeexcitation.mac macro.</LI>
2330             <LI>Added macros description.</LI>
2331             </UL></LI>
2332         <LI><B>TestEm18</B>
2333             <UL>
2334             <LI>Cleanup of macros.</LI>
2335             </UL></LI>
2336         </UL></LI>
2337     <LI><B>exoticphysics</B>
2338         <UL>
2339         <LI><B>saxs</B>
2340             <UL>
2341             <LI>New example implementing the typical setup of a Small Angle
2342                 X-ray Scattering (SAXS) experiment. It is meant to illustrate
2343                 the usage of molecular interference (MI) of Rayleigh (coherent)
2344                 scattering of photons inside the matter, which is implemented
2345                 in the G4PenelopeRayleighModelMI model.</LI>
2346             </UL></LI>
2347         </UL></LI>
2348     <LI><B>hadronic</B>
2349         <UL>
2350         <LI><B>FissionFragment</B>
2351             <UL>
2352             <LI>Replaced deprecated HP environmental variables with
2353                 corresponding UI commands.</LI>
2354             </UL></LI>
2355         <LI><B>Hadr00</B>
2356             <UL>
2357             <LI>HistoManagerMessenger: fixed destructor.</LI>
2358             </UL></LI>
2359         <LI><B>Hadr01</B>
2360             <UL>
2361             <LI>PhysicsList: make it coherent with current reference physics
2362                 lists.</LI>
2363             <LI>RunAction: improved printouts.</LI>
2364             <LI>Switched from Al to W in hadr01.in macro.</LI>
2365             </UL></LI>
2366         <LI><B>Hadr02</B>
2367             <UL>
2368             <LI>HadronPhysicsCRMC_FTFP_BERT, HadronPhysicsHIJING,
2369                 HadronPhysicsUrQMD: introduced the new class G4HyperonBuilder
2370                 which is now needed when using G4HyperonFTFPBuilder.</LI>
2371             </UL></LI>
2372         <LI><B>Hadr03</B>
2373             <UL>
2374             <LI>PhysicsList: added G4HadronPhysicsQGSP_BIC, Shielding,
2375                 RadioactiveDecay.</LI>
2376             <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2377             <LI>Added GammaNuclearPhysicsLEND.</LI>
2378             <LI>HistoManager, SteppingAction: added plot of e-.</LI>
2379             <LI>Modified gamma.mac script; added Au196.mac.</LI>
2380             <LI>Removed deprecated HP environmental variables and replaced
2381                 them with corresponding C++ calls in the main(), and UI
2382                 commands in the macros.</LI>
2383             <LI>Added fusion.mac macro.</LI>
2384             <LI>Added macros description.</LI>
2385             </UL></LI>
2386         <LI><B>Hadr04</B>
2387             <UL>
2388             <LI>Removed deprecated HP environmental variables and replaced
2389                 them with corresponding C++ calls in the main().</LI>
2390             <LI>Added macros description.</LI>
2391             </UL></LI>
2392         <LI><B>Hadr06</B>
2393             <UL>
2394             <LI>HistoManager, TrackingAction: plot particle energy at
2395                 creation.</LI>
2396             <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2397             <LI>TrackingAction: added commented code for singleFission.</LI>
2398             <LI>Removed deprecated HP environmental variables and replaced
2399                 them with corresponding C++ calls in the main(), and UI
2400                 commands in the macros.</LI>
2401             <LI>Added singleFission.mac macro.</LI>
2402             </UL></LI>
2403         <LI><B>Hadr07</B>
2404             <UL>
2405             <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2406             <LI>Removed deprecated HP environmental variables and replaced
2407                 them with corresponding C++ calls in the main().</LI>
2408             <LI>Added macros description.</LI>
2409             </UL></LI>
2410         <LI><B>Hadr09</B>
2411             <UL>
2412             <LI>New example showing how to use Geant4 as a generator for
2413                 simulating inelastic hadron-nuclear interactions.</LI>
2414             </UL></LI>
2415         <LI><B>NeutronSource</B>
2416             <UL>
2417             <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2418             <LI>Removed deprecated HP environmental variables and replaced
2419                 them with corresponding C++ calls in the main().</LI>
2420             <LI>Added macros description.</LI>
2421             </UL></LI>
2422         </UL></LI>
2423     <LI><B>medical/DICOM</B>
2424         <UL>
2425         <LI>Distinguish output names of archive lib from DLL and application
2426             to fix Windows linking errors for static libraries.</LI>
2427         </UL></LI>
2428     <LI><B>medical/DICOM2</B>
2429         <UL>
2430         <LI>Fixed compiler warning on Windows.</LI>
2431         </UL></LI>
2432     <LI><B>medical/dna</B>
2433         <UL>
2434         <LI><B>chem4</B>:
2435             <UL>
2436             <LI>Fixed setup for Root in CMake script.</LI>
2437             </UL></LI>
2438         <LI><B>chem6</B>:
2439             <UL>
2440             <LI>New example providing scoring of the radiochemical yield G
2441                 defined as (Number of species X) / (100 eV of deposited energy),
2442                 as a function of time and LET. The details are described in the
2443                 following paper: J. Appl. Phys. 125 (2019) 104301.</LI>
2444             </UL></LI>
2445         </UL></LI>
2446     <LI><B>optical</B>
2447         <UL>
2448         <LI><B>LXe</B>
2449             <UL>
2450             <LI>Set optical parameters in G4OpticalParameters class.</LI>
2451             <LI>Use new scintillation material property names.</LI>
2452             <LI>Use std::vector to specify material property names.</LI>
2453             <LI>Fixed valgrind errors: added 'delete's and fix initialization
2454                 of hits counters.</LI>
2455             <LI>Renamed LXe.in macro to LXe.mac; store random seed in LXe.mac
2456                 and set optical verbosity to 1.</LI>
2457             <LI>Applied clang-format style and updated macros.</LI>
2458             <LI>Renamed ProcessHits_constStep() to ProcessHits_boundary().</LI>
2459             <LI>Removed unused #includes and empty methods.</LI>
2460             </UL></LI>
2461         <LI><B>OpNovice</B>
2462             <UL>
2463             <LI>Added material properties using new interface with
2464                 std::vectors.</LI>
2465             <LI>Print out process statistics at end of run.
2466                 Added EventAction and Run classes for this.</LI>
2467             <LI>Updated macros, especially to run more particles.
2468                 Updated gui.mac.</LI>
2469             <LI>Remove use of G4Timer.</LI>
2470             <LI>Use default random number generator.</LI>
2471             <LI>Applied clang-format style.</LI>
2472             </UL></LI>
2473         <LI><B>OpNovice2</B>
2474             <UL>
2475             <LI>Use new scintillation time constant parameter.</LI>
2476             <LI>Added code to generate statistics for wavelength shifting.</LI>
2477             <LI>Added material properties using new interface with
2478                 std::vectors.</LI>
2479             <LI>Calculate reflection/transmission probabilities vs. angle;
2480                 new macro fresnel.mac.</LI>
2481             <LI>Histos: added axis labels, id's; refer to them by id in some

2482                 places.</LI>

2483             <LI>Added wls.mac to test WLS and new process WLS2.</LI>

2484             <LI>Removed string comparisons and redundant calls in

2485                 SteppingAction.</LI>

2486             <LI>Removed redundant G4AnalysisManager::Instance() calls.</LI>

2487             <LI>New macro boundary.mac, exercising all 4 boundary models.</LI>

2488             <LI>Removed glisur.mac and unified.mac macros.</LI>

2489             <LI>Renamed OpNovice2.in macro to OpNovice2.mac.</LI>

2490             <LI>Print histogram statistics at end of run.</LI>

2491             <LI>Removed use of G4Timer; don't set number of threads in main().</LI>
2492             <LI>Updated macro verbosity, ignore threads except 0.</LI>
2493             <LI>Applied clang-format style.</LI>
2494             </UL></LI>
2495         <LI><B>wls</B>
2496             <UL>
2497             <LI>Added material properties using new interface with
2498                 std::vectors.</LI>
2499             <LI>Large cleaning including clang-format style guidelines.</LI>
2500             <LI>Added counters to record run and event statistics.
2501                 Update macros.</LI>
2502             <LI>Added remaining material properties using new interface with
2503                 std::vectors.</LI>
2504             </UL></LI>
2505         </UL></LI>
2506     <LI><B>parallel</B>
2507         <UL>
2508         <LI><B>MPI</B>
2509            <UL>
2510            <LI>Updated analysis classes for the design changes in analysis
2511                module.</LI>
2512            </UL></LI>
2513         <LI><B>TBB</B>
2514            <UL>
2515            <LI>Updated to use new tasking system which is fully compatible
2516                with TBB.</LI>
2517            </UL></LI>
2518         <LI><B>ThreadsafeScorers</B>
2519            <UL>
2520            <LI>Updated to use new tasking system; forcing use of
2521                G4TaskRunManager.
2522            <LI>Added example of user code leveraging tasking in TSRunAction;
2523                it leverages tasks on the master thread at the end of the run
2524                to generate some strings of output via a nested hierarchy of
2525                tasks and uses the features of the G4TaskGroup to combine the
2526                strings in the order that they were submitted to the task-group
2527                (thus producing the same output result as the serial version).</LI>
2528            <LI>Replaced TIMEMORY_AUTO_TIMER usage with G4USER_SCOPED_PROFILE
2529                usage.</LI>
2530            </UL></LI>
2531         <LI><B>TopC</B>
2532            <UL>
2533            <LI>Fixed README.html. Addressing problem report
2534                <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2284">#2284</A>.</LI>
2535            </UL></LI>
2536         </UL></LI>
2537     <LI><B>parameterisations</B>
2538         <UL>
2539         <LI><B>Par03</B>
2540            <UL>
2541            <LI>New example demonstrating how to use G4FastSimHitMaker helper
2542                class to create multiple energy deposits from the fast
2543                simulation model.</LI>
2544            </UL></LI>
2545         </UL></LI>
2546     <LI><B>persistency</B>
2547         <UL>
2548         <LI><B>gdml/G01</B>
2549            <UL>
2550            <LI>Use [] brackets in loop.gdml sample to show how to index names
2551                and dimensions in loops.</LI>
2552            <LI>Added a line (commented out) indicating how to overwrite output
2553                files.</LI>
2554            </UL></LI>
2555         <LI><B>P01</B>
2556            <UL>
2557            <LI>Fixed CMake script for search or Root macros.</LI>
2558            </UL></LI>
2559         </UL></LI>
2560     <LI><B>radioactivedecay</B>
2561         <UL>
2562         <LI><B>Activation</B>
2563             <UL>
2564             <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2565             <LI>In Run, corrected a protection on maximum number of
2566                 histograms.</LI>
2567             <LI>Removed deprecated HP environmental variables and replaced
2568                 them with corresponding C++ calls in the main().</LI>
2569             <LI>Added macros description.</LI>
2570             </UL></LI>
2571         <LI><B>rdecay01</B>
2572             <UL>
2573             <LI>Migrated UI commands from "/grdm/..." to "/process/had/rdm/..."
2574                 in input macros.</LI>
2575             <LI>Added atomicDeexcitation.mac macro.</LI>
2576             <LI>PhysicsList: added SetDeexcitationIgnoreCut(ARMflag).</LI>
2577             <LI>Added macros description.</LI>
2578             </UL></LI>
2579         <LI><B>rdecay02</B>
2580             <UL>
2581             <LI>Migrated UI commands from "/grdm/..." to "/process/had/rdm/..."
2582                 in input macros.</LI>
2583             </UL></LI>
2584         </UL></LI>
2585     </UL>
2586 </UL>
2587 
2588 <HR>
2589 
2590 </BODY>
2591 </HTML>