File indexing completed on 2025-01-18 09:16:07
0001 <HTML>
0002 <HEAD>
0003 <TITLE>Geant4 10.5 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.5 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 7<SUP>th</SUP>, 2018</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 version</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.8.5.<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>MacOSX 10.14 Mojave with llvm/clang-6.0.1 (Apple LLVM/Clang-10.0.0)</LI>
0070 <LI>Windows-10 with Visual C++ 14.11 (Visual Studio 2017)</LI>
0071 </UL>
0072
0073 More verified and tested configurations (64 bits):
0074 <UL>
0075 <LI>Linux, gcc-4.9.3/5.4.0/6.3.0/7.3.0/8.2.0, clang-3.9/5.0</LI>
0076 <LI>Linux, Intel-icc 19.0</LI>
0077 <LI>MacOSX 10.11, 12, 13 with clang-3.8/4.0/5.0</LI>
0078 <LI>Windows-10 with Visual C++ 14.0 (Visual Studio 2015)</LI>
0079 </UL>
0080
0081 <P> </P>
0082 <A NAME="2."></A>
0083 <HR>
0084
0085
0086
0087 <H2>2. Supported CLHEP 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.1.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.
0094
0095
0096 <P> </P>
0097 <A NAME="3."></A>
0098 <HR>
0099
0100
0101
0102 <H2>3. Items for migration of the user code</H2>
0103
0104 Listed here is some relevant information on developments included in this
0105 release.
0106 Note that for all users a full re-installation of libraries (or a full
0107 re-compilation) and a re-compilation of user applications is required.
0108
0109 <P> </P>
0110 <B>General</B>
0111 <P> </P>
0112 <UL>
0113 <LI>Minimum required version of CMake to build Geant4 is 3.3.</LI>
0114 <LI>Due to the migration from POSIX threading to C++11 threading, enabling
0115 multi-threading on Windows for use with either static or dynamic
0116 libraries, the following migration is required:
0117 <UL>
0118 <LI>Any usage of <TT>G4THREADCREATE</TT> should pass a reference to an
0119 allocated <TT>G4Thread</TT> pointer.</LI>
0120 <UL>
0121 <LI><TT>G4THREADCREATE</TT> (previously a macro) is
0122 now a variadic template function that accepts an unlimited
0123 number of arguments to the function launched on the thread.</LI>
0124 <LI><TT>G4Thread t; G4THREADCREATE(&t, myfunction, myarg);</TT>
0125 is no longer valid</LI>
0126 <LI><TT>G4Thread* t = new G4Thread();
0127 G4THREADCREATE(t, myfunction, myarg);</TT> is required</LI>
0128 </UL>
0129 <LI><TT>G4MUTEX_INITIALIZER</TT>, <TT>G4MUTEXINIT</TT>, and
0130 <TT>G4MUTEXDESTROY</TT> are now empty macros and their usage is
0131 unnecessary and thus deprecated.</LI>
0132 </UL></LI>
0133 </UL>
0134
0135 <P> </P>
0136 <B>Geometry</B>
0137 <P> </P>
0138 <UL>
0139 <LI>The behaviour of G4Transportation and G4CoupledTransportation
0140 concerning the treatment of looping particles has been reviewed:
0141 <UL>
0142 <LI>From this release on, only stable particles are killed if they
0143 'loop', i.e. take more than the maximum (default 1000) integration
0144 steps in one physics step; unstable particles are now propagated
0145 indefinitely.</LI>
0146 <LI>Warning exceptions with full details of the particle, location and
0147 volume are now generated for stable looping particles which are killed
0148 (as before, this only happens if their energy exceeds a threshold
0149 'warning' energy).
0150 In previous releases a short message with only energy and location
0151 was generated, and only for installations which did not use
0152 G4_NO_VERBOSE. Typically these warnings occur predominantly in vacuum
0153 or other low density media.</LI>
0154 </UL></LI>
0155 <LI>As before the killing of loopers and potential warnings are controlled by
0156 two energy thresholds and a step number parameter. Default settings imply:
0157 <UL>
0158 <LI><TT>100 MeV</TT> (warning energy): below this, tracks are killed
0159 silently.</LI>
0160 <LI><TT>250 MeV</TT> (important energy): above this, tracks are given
0161 multiple chances (10 physics steps).</LI>
0162 </UL>
0163 These settings are fully under user control. The new methods in
0164 G4PhysicsListHelper allow the user to select a set of low (or the above
0165 high) values of the 'looper' energy thresholds.
0166 Existing methods of G4[Coupled]Transportation can be used for fine-grained
0167 control of the parameter values.
0168 Additional information regarding how to reduce the incidence of looping
0169 particles is provided in an expanded section on Transportation in the
0170 Users Guide for Applications Developers.</LI>
0171 <LI>G4MagneticField has been corrected to no longer inherit from
0172 G4ElectroMagneticField; this anomaly used to allow a user to provide a
0173 'full' EM field (mixed electric and magnetic), but obtain the force only
0174 from the B-field when using the equation created in the G4ChordFinder
0175 constructor. With this correction it is no longer possible to use the
0176 equation of motion for a pure magnetic field for the case of a mixed
0177 electromagnetic field. Instead the full chain of classes for equation
0178 of full EM field, steppers and driver must be used for the case of the
0179 'full' EM field.</LI>
0180 </UL>
0181
0182 <P> </P>
0183 <B>Electromagnetic and optical physics</B>
0184 <P> </P>
0185 <UL>
0186 <LI>The new data set G4EMLOW-7.7 should be used.</LI>
0187 </UL>
0188
0189 <P> </P>
0190 <B>Hadronic physics</B>
0191 <P> </P>
0192 <UL>
0193 <LI>The new data sets <TT>G4PhotonEvaporation-5.3</TT>, <TT>G4INCL-1.0</TT>,
0194 <TT>G4RadioactiveDecay-5.3</TT>, <TT>G4SAIDDATA-2.0</TT> and
0195 <TT>G4PARTICLEXS-1.1</TT> should be used.</LI>
0196 <LI>Requiring new <TT>G4INCL-1.0</TT> data set and corresponnding G4INCLDATA path
0197 environment variable when using INCLXX physics.</LI>
0198 <LI>The old G4NEUTRONXS data set is now replaced by <TT>G4PARTICLEXS-1.1</TT>,
0199 and the corresponding G4PARTICLEXSDATA environment variable should be
0200 now used.</LI>
0201 </UL>
0202
0203 <P> </P>
0204 <B>Analysis</B>
0205 <P> </P>
0206 <UL>
0207 <LI>The default mode for Root n-tuple merging (in multi-threaded runs) is
0208 changed to row-wise in order to preserve an "event point of view" (the
0209 n-tuple rows) after merging. The output files written with this mode use a
0210 different data schema (organisations of TBranches and TLeaves) than
0211 before and so require adapting the macros for reading back the data.</LI>
0212 </UL>
0213
0214 <P> </P>
0215 <B>Data Sets</B>
0216 <P> </P>
0217 This release introduces new data set versions.
0218 Please see the corresponding details in
0219 <A href="#data-notes">Section 9</A> of this document.
0220 <UL>
0221 <LI>New data set versions: <TT>G4EMLOW-7.7, G4RadioactiveDecay-5.3,
0222 G4PhotonEvaporation-5.3, G4INCL-1.0, G4SAIDDATA-2.0,
0223 G4PARTICLEXS-1.1</TT>.</LI>
0224 <LI>In order to use <TT>ParticleHP</TT> for charged particles
0225 (protons, deuterons, tritons, He3 and alphas), an optional data
0226 set <TT>G4TENDL-1.3.2</TT> is required, and should be downloaded in
0227 addition from the
0228 <A HREF="http://cern.ch/geant4/support/download">Geant4 web site</A>.</LI>
0229 </UL>
0230
0231 <A NAME="4."></A>
0232 <HR>
0233
0234
0235
0236 <H2>4. New Developments and Capabilities </H2>
0237
0238 <B>General</B>
0239 <UL>
0240 <LI>Replaced POSIX threading with C++11 threading, enabling multi-threading
0241 on Windows for use with either static or dynamic libraries.</LI>
0242 <UL>
0243 <LI><TT>G4THREADCREATE</TT> is now a variadic template function
0244 (unlimited arguments) instead of a macro</LI>
0245 <LI><TT>G4THREADCREATE</TT> can be used outside of MT. In sequential
0246 mode, <TT>G4THREADCREATE</TT> will execute the function on the
0247 calling thread.
0248 </UL>
0249 <LI><TT>G4Mutex</TT> is now a typedef to <TT>std::mutex</TT>,
0250 even in sequential mode.
0251 <LI>Added <TT>G4RecursiveMutex</TT> typedef to
0252 <TT>std::recursive_mutex</TT>.</LI>
0253 <LI>Provided generic template functions <TT>G4TypeMutex<T>()</TT> and
0254 <TT>G4TypeRecursiveMutex<T>()</TT> to create and access static
0255 instances of mutexes without the need for declarations.</LI>
0256 <UL>
0257 <LI>When combined with <TT>G4AutoLock</TT>, this enables easy creation of
0258 class-specific locks, e.g.
0259 <TT>G4AutoLock lock(G4TypeMutex<decltype(this)>());</TT></LI>
0260 </UL>
0261 <LI><TT>G4AutoLock</TT> now inherits from <TT>std::unique_lock</TT>, even in
0262 sequential mode.</LI>
0263 <UL>
0264 <LI>In sequential mode, <TT>G4AutoLock</TT> does not lock upon construction,
0265 i.e. <TT>std::defer_lock</TT></LI>
0266 <LI>Added overloads to accept reference to mutex, in addition to previous
0267 form of a pointer to a mutex.</LI>
0268 </UL>
0269 </UL>
0270
0271 <B>Analysis</B>
0272 <UL>
0273 <LI>Switched the default Root ntuple merge mode to row-wise in analysis
0274 tools and added new <TT>G4RootAnalysisManager::SetNtupleRowWise(G4bool)</TT>
0275 function which can be used to override the defaults. </LI>
0276 <LI>Added "Boolean reset" argument in <TT>G4AnalysisManager::CloseFile()</TT>
0277 function, allowing to close a file without resetting data.</LI>
0278 </UL>
0279
0280 <B>Digitization & Hits</B>
0281 <UL>
0282 <LI>Added new class G4StatAnalysis, a lightweight statistics class that
0283 calculates the mean, FOM, relative error, standard deviation, variance
0284 and other quantities. Compatible with usage in G4THitsMap and (new)
0285 G4THitsVector -- replacing <TT>G4THitsMap<G4double></TT> with
0286 <TT>G4THitsMap<G4StatAnalysis></TT> and can provide a quick
0287 implementation of accumulating statistics for scoring.</LI>
0288 <LI>Added new class G4THitsVector, a generic hits container compatible with
0289 G4THitsMap, that enables the underlying storage container to utilize a
0290 sequential container instead of a map (saving memory); additionally, it
0291 allows the underlying container to store data as non-pointer types
0292 (saving more memory).</LI>
0293 <UL>
0294 <LI>These containers are intended to be used at the G4Run level to
0295 accumulate data over the course of the run and it is not recommended
0296 for use at the event level -- a G4THitsMap is ideal at the event level
0297 due to the general sparsity of hits per index but at the run level,
0298 G4THitsVector becomes ideal with respect to memory usage as
0299 approximately 40% of the total available indices accumulate non-zero
0300 hits.</LI>
0301 <LI>See <I>DICOM2</I> and <I>ThreadsafeScorers</I> for usage examples,
0302 including demonstrations of G4THitsVector + non-pointer data storage
0303 and the new style of generic iteration over the hits container classes
0304 that is valid for both G4THitsMap and G4THitsVector (the previous form
0305 of iteration over G4THitsMap is still valid, and will remain valid,
0306 for G4THitsMap types).</LI>
0307 </UL>
0308 <LI>Introduced a new interface class, G4VScoreNtupleWriter, which allows
0309 automated storing of scorers hits with Geant4 analysis tools. Concrete
0310 implementations (G4ScoreNtupleWriter with associated messenger) are
0311 demonstrated in new provided extended/analysis examples.</LI>
0312 </UL>
0313
0314 <B>Geometry</B>
0315 <UL>
0316 <LI>A configuration option allows an installation to use the
0317 <A HREF="https://gitlab.cern.ch/VecGeom/VecGeom/">VecGeom Unified Solids
0318 Library</A> primitives, to replace the original Geant4 solids, as in the
0319 previous release. The path to an external installation of the VecGeom
0320 library (VecGeom version <TT>v01.01.00</TT>) should be specified.
0321 See the associated instructions file for configuration and installation.</LI>
0322 <LI>Enabled VecGeom wrappers for G4ExtrudedSolid, G4TessellatedSolid, G4Hype
0323 and G4Tet.</LI>
0324 <LI>Reimplemented <TT>EstimateSurfaceArea()</TT> for approximate calculation
0325 of the surface area of a solid with new algorithm providing more
0326 accurate estimation without performance penalty.</LI>
0327 <LI>Introduced Bulirsch-Stoer method of integration, an alternative to
0328 Runge-Kutta based on the mid-point method.</LI>
0329 <LI>New G4InterpolationDriver field driver class using Runge-Kutta method
0330 with interpolation property to integrate EoM with error control.</LI>
0331 <LI>Updated field steppers to make use of cached field vales.</LI>
0332 <LI>Improved reporting of looping particle, adding info on density,
0333 fraction (%) of proposed step that was completed and momentum.</LI>
0334 </UL>
0335
0336 <B>Electromagnetic physics</B>
0337 <UL>
0338 <LI>Use new parameter <TT>MscEnergyLimit()</TT> (default is <TT>100 MeV</TT>)
0339 in EM physics constructors, allowing to customise transition from
0340 low-energy multiple scattering to high energy combination of multiple
0341 and single scattering.</LI>
0342 <LI>Alg96 lateral displacement algorithm used in G4UrbanMscModel in all
0343 EM physics.</LI>
0344 <LI>Default angular generator for bremsstrahlung is G4ModifiedTsai.</LI>
0345 <LI>Revisions of G4BetheHeitlerModel and G4PairProductionRelModel with
0346 improved screening function approximation, improved LPM function
0347 approximation, angular generation and efficiency of sampling
0348 of the final state.</LI>
0349 <LI>New gamma conversion model G4BetheHeitler5DModel.</LI>
0350 <LI>Added optional possibility to use ICRU90 data.</LI>
0351 <LI>New optional ion ionisation models G4LindhardSorensenIonModel,
0352 G4AtimaEnergyLossModel, G4AtimaFluctuations.</LI>
0353 <LI>Added new classes for the simulation of elastic scattering of gammas.</LI>
0354 </UL>
0355
0356 <B>Hadronic physics</B>
0357 <UL>
0358 <LI>For both Fritiof (FTF) and Quark-Gluon-String (QGS) string models,
0359 we have released the latest versions, which have been developed since
0360 the release 10.2 but have not been included in the two previous releases,
0361 10.3 and 10.4, to keep stable the simulation of hadronic showers
0362 (note that snapshots of these developments have been made available
0363 in previous beta releases: 10.3.beta, 10.4.beta and 10.5.beta).</LI>
0364 <LI>New tuning of the FTF model parameters, for both string formation
0365 and string fragmentation. Introduced smearing of delta-isobar mass and
0366 improved di-quark fragmentation into baryons in Lund string fragmentation.
0367 First implementation of rotating strings in FTF, at the level of string
0368 fragmentation, with introduction of Mt distribution of hadrons.
0369 Improved process probability parameterizations for Pi-Nucleon interactions;
0370 corrected calculation of nuclear residual excitation energy.</LI>
0371 <LI>Major revision of the QGS final-state model: implemented Reggeon cascading
0372 and "Fermi motion"; new algorithm for the determination of the kinematical
0373 properties of partons; improved formation of the residual nucleus.
0374 Improved cross-sections of K-meson - nucleon interactions in QGS: Pomeron
0375 and two non-vacuum exchanges are taken into account.
0376 Gamma-nucleon cross sections are also improved by tuning of parameters.
0377 Improved string fragmentation (G4QGSMFragmentation): new algorithm for
0378 last string decay a-la Lund is implemented; refined the algorithm to stop
0379 the fragmentation.
0380 Tuning the parameters related to both string formation and string
0381 fragmentation to improve the description of thin-target data.</LI>
0382 <LI>For both string models (FTF and QGS): first implementation of alpha
0383 cluster structure of carbon nuclei (affecting only hadron-Carbon
0384 interactions), according to P.Bozek et al., Phys.Rev.C90, 064902 (2014).</LI>
0385 <LI>For Bertini Cascade, extended strange pair production channels, and
0386 improved pion-quasideuteron reactions.</LI>
0387 <LI>Extended upper limit of applicability (from 1 to <TT>100 TeV</TT>) for the
0388 diffuse-elastic processes.</LI>
0389 <LI>New class for diffuse-elastic process, where the underlying physics model
0390 code has been revised and significantly improved in performance.</LI>
0391 <LI>Introduced switch in cross-sections to allow transuranic elements.</LI>
0392 <LI>Coherent use of the same parameterisation of level density and pairing
0393 correction between all models in hadronic de-excitation.</LI>
0394 </UL>
0395
0396 <B>Physics Lists</B>
0397 <UL>
0398 <LI>In all hadronic builders fixed use of data for neutron capture in HP
0399 physics-lists.</LI>
0400 <LI>Major revision of all ion builders.</LI>
0401 <LI>New tuning of parameters for several EM constructors.</LI>
0402 <LI>The physics lists QGSP_BIC_HP and QGSP_BIC_AllHP use EM Opt4
0403 (instead of EM Opt0 as before).</LI>
0404 <LI>For FTF/QGS/INCLXX physics-lists builders, use Barashenkov-Glauber-Gribov
0405 inelastic cross-section for pions, avoiding to use Gheisha cross-sections
0406 for pion inelastic on Hydrogen target.</LI>
0407 </UL>
0408
0409 <B>Run</B>
0410 <UL>
0411 <LI>Added track/step/volume information in G4ExceptionHandler when an
0412 exception happens while event is being processed.</LI>
0413 </UL>
0414
0415 <B>Visualization and Interfaces</B>
0416 <UL>
0417 <LI>Implemented simple algorithm in visualization to allow colouring of
0418 detector elements based on materials density.</LI>
0419 <LI>RayTracer now visualizes layered-mass-geometry volumes defined in
0420 parallel worlds.</LI>
0421 <LI>G4UIcommand: additional implementation for adding
0422 a mechanism of carrying back error message from the messenger
0423 if a command is rejected due to the target class or the messenger.</LI>
0424 </UL>
0425
0426 <B>Examples</B>
0427 <UL>
0428 <LI><I>B3aScoreWrgiter</I> and <I>B4dScoreWriter</I>: new examples (in
0429 extended/analysis) demonstrating saving of scorers hits in form of
0430 n-tuples in a Root file using Geant4 analysis tools. </LI>
0431 <LI><I>DICOM2</I>: new example (in extended/medical) demonstrating how
0432 to specialise and extend functionalities from DICOM example.</LI>
0433 <LI><I>chem5</I>: new example (in extended/medical/dna), variation of
0434 chem4, showing how to activate chemistry code and score the
0435 radiochemical yield G, using preliminary <TT>G4EmDNAPhysics_option8</TT>
0436 and <TT>G4EmDNAChemistry_option1</TT> constructors.</LI>
0437 <LI><I>splitting</I>: new example (in extended/medical/dna) demonstrating
0438 acceleration of Geant4-DNA physics simulations by particle splitting.</LI>
0439 <LI><I>OpNovice2</I>: new example (in extended/optical) for investigation
0440 of optical properties and parameters. Details of optical photon boundary
0441 interactions on a surface are recorded, as well as the details of
0442 optical photon generation and transport.</LI>
0443 <LI><I>exMPI04</I>: new example in extended/parallel/MPI demonstrating
0444 merging n-tuples via MPI. The <I>G4mpi </I> classes were adapted to
0445 allow to define (an) extra worker(s) for collecting data
0446 from processing workers (needed for merging n-tuples).</LI>
0447 <LI><I>field01</I>: Added code to demonstrate use of G4PhysicsListHelper's
0448 <TT>Use[Low|High]LooperThresholds()</TT> methods and code to demonstrate
0449 fine grained control of G4[Coupled]Transportation parameters for (killing)
0450 looping tracks (tracks which take too many iterations to finish integration;
0451 typically due to electrons in vacuum, but also can affect other charged
0452 particles).</LI>
0453 </UL>
0454
0455 <A NAME="5."></A>
0456 <HR>
0457
0458 <!-- ============================================== -->
0459
0460 <H2>5. Expected effects on physics and computing performance</H2>
0461
0462 <B>Electromagnetic physics</B>
0463 <UL>
0464 <LI>Extended G4SeltzerBergerModel model with optional sampling tables for
0465 faster run time sampling of the emitted photon energy. Measuring 40-60%
0466 model speedup.</LI>
0467 </UL>
0468
0469 <B>Hadronic physics</B>
0470 <UL>
0471 <LI>Both hadronic string models (FTF and QGS) describe generally better the
0472 thin-target data with respect to the previous versions.
0473 Moreover, the QGS model becomes competitive with the FTF model, for
0474 most thin-target observables for projectile kinetic energies above
0475 about 20 GeV.</LI>
0476 <LI>For the simulation of hadronic showers, both hadronic string models
0477 give higher energy response with respect to the previous versions,
0478 and consistently higher when compared with test-beam and collider data.
0479 We believe at least part of this is due to an underestimate with the Birks
0480 quenching factor which must be applied to the simulation in order to
0481 compare to measured data. The Birks coefficient is a phenomenological
0482 function of energy loss and not of energy deposit. It therefore neglects
0483 the effect of discrete delta ray production performed in Geant4.
0484 We therefore suggest re-fitting from data the Birks coefficient to the
0485 h/e ratio: energy response of a hadron (charged pion or proton) at a
0486 given energy with respect to the energy response of an electron of the
0487 same energy.</LI>
0488 </UL>
0489
0490 <P> </P>
0491 <A NAME="6."></A>
0492 <HR>
0493
0494 <!-- ============================================== -->
0495
0496 <H2>6. Known Run-Time Problems and Limitations</H2>
0497 For a complete list of outstanding run-time problems and to submit any
0498 problem you may find while running this version of Geant4, please refer
0499 to the
0500 <A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem
0501 Reporting System</A>.
0502
0503 <P> </P>
0504 <A NAME="7."></A>
0505 <HR>
0506
0507 <!-- ============================================== -->
0508
0509 <H2>7. Compilation Warnings</H2>
0510
0511 There may be a few compilation warnings on some platforms.
0512 We do not believe that any of these lead to incorrect run-time behaviour.
0513
0514 <P> </P>
0515 <A NAME="8."></A>
0516 <HR>
0517
0518 <!-- ============================================== -->
0519
0520 <H2>8. Geant4 Software License</H2>
0521
0522 A Software License applies to the Geant4 code.
0523 Users must accept this license in order to use it. The details and the list of
0524 copyright holders is available at
0525 <A href="http://cern.ch/geant4/license">http://cern.ch/geant4/license</A>
0526 and also in the text file <TT>LICENSE</TT> distributed with the source code.
0527
0528 <P> </P>
0529 <A NAME="9."></A>
0530 <HR>
0531
0532 <!-- ============================================== -->
0533
0534 <H2>9. Detailed list of changes and fixes</H2>
0535
0536 These are the main new features/fixes included in this release since the
0537 last patched public release (for more detailed lists of fixes/additions,
0538 please refer to the corresponding History files provided in most packages):
0539
0540 <P> </P>
0541
0542 <A NAME="conf-notes">
0543 <H3><I>Configuration</I></H3></A>
0544 <UL>
0545 <LI><U>CMake</U>
0546 <UL>
0547 <LI>Added c++17 to C++ standards against which Geant4 can be compiled.
0548 Requires a minimum CMake version of 3.8 to enable.</LI>
0549 <LI>Added "auto" dummy Thread Local Storage model; when "auto" is used,
0550 no explicit compiler flag is being set to select the TLS model;
0551 selection is left to compiler default.</LI>
0552 <LI>Added configuration for optional profiling package TiMemory.</LI>
0553 <LI>Skip validation checking for external zlib sources.</LI>
0554 <LI>Added TESSELLATEDSOLID flag to enable optional wrapping of
0555 G4TessellatedSolid with VecGeom implementation.</LI>
0556 <LI>Added configuration support for MT on Windows; removed restrictions
0557 and warnings on enabling MT on Windows.</LI>
0558 <LI>Support use of WINDOWS_EXPORT_ALL_SYMBOLS for DLL builds with
0559 cmake >=3.4 retaining old capability for CMake 3.3.</LI>
0560 <LI>Updated FindInventor.cmake to properly setup SoQt if existing.</LI>
0561 <LI>Geant4InterfaceOptions.cmake: added check for existance of SoQt package.</LI>
0562 <LI>Geant4MakeRules_cxx.cmake: added -DGL_SILENCE_DEPRECATION to
0563 CMAKE_CXX_FLAGS_INIT for clang to silence GL deprecation compilation
0564 warnings on MacOS 10.14 Mojave.</LI>
0565 <LI>Corrected URLs for data installation to use https; added -L flag to
0566 curl to follow redirects when accessing a dataset URL.</LI>
0567 <LI>Removed entry for G4NEUTRONXS data set, no longer necessary.</LI>
0568 <LI>Updated data-sets versions.</LI>
0569 </UL></LI>
0570 <LI><U>GNUMake</U>
0571 <UL>
0572 <LI>In geomconf.gmk, added G4GEOM_USE_UTESSELLATEDSOLID flag to enable
0573 VecGeom wrapper for G4TessellatedSolid.</LI>
0574 <LI>Fixed setting of G4RUNPATHOPTION in Darwin/Linux-clang/g++ and
0575 binmake.cmk. Addressing problem report
0576 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2086">#2086</A>.</LI>
0577 <LI>Cleanup settings for GL in Darwin-clang.gmk and Darwin-g++.gmk.
0578 Added -DGL_SILENCE_DEPRECATION to CPPFLAGS to silence GL deprecation
0579 compilation warnings on MacOS 10.14 Mojave.</LI>
0580 </UL></LI>
0581 </UL>
0582
0583 <A NAME="ana-notes">
0584 <H3><I>Analysis</I></H3></A>
0585 <UL><LI><U>Ntuples</U>
0586 <UL>
0587 <LI>Switched the default Root n-tuple merge mode to row-wise.</LI>
0588 <LI>Added function <TT>SetNtupleRowWise(G4bool)</TT> to G4RootAnalysisManager, allowing
0589 to choose row-wise/column-wise mode also in sequential mode.</LI>
0590 <LI>Updated <TT>G4TNtupleManager::FinishTNtuple()</TT> to support creating n-tuples
0591 both before and after <TT>OpenFile()</TT>.</LI>
0592 <LI>Added friend class declarations to allow an implementation of MPI
0593 n-tuple merging.</LI>
0594 <LI>Allow overriding of selected functions in G4RootAnalysisManager,
0595 G4RootNtupleManager and G4TNtupleManager, needed MPI ntuple merging.</LI>
0596 </UL></LI>
0597 <LI><U>Output files</U>
0598 <UL>
0599 <LI>Added "Boolean reset" argument in <TT>G4AnalysisManager::CloseFile()</TT>
0600 function, allowing to close a file without resetting data.</LI>
0601 </UL></LI>
0602 <LI><U>Fixes</U>
0603 <UL>
0604 <LI>Fixed compilation warnings on gcc-8.1.0.</LI>
0605 <LI>Fixed a deadlock issue with G4RootPNtupleManager where the mutex
0606 was locked before being passed to Root.</LI>
0607 <LI>Modified management of plotting: G4PlotManager is now instantiated
0608 with G4AnalysisManager what makes possible to remove static
0609 G4PlotParameters. Addressing problem report
0610 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2083">#2083</A>.</LI>
0611 <LI>Use the same mutex for add_row and end_fill. This should fix
0612 occasional failures of tests in MT mode.</LI>
0613 </UL></LI>
0614 <LI><U>g4tools</U>
0615 <UL>
0616 <LI>Updated the g4tools version to g4tools-4.2.3.
0617 See History_tools for the complete list of modifications.</LI>
0618 </UL></LI>
0619 </UL>
0620
0621 <A NAME="digits-notes">
0622 <H3><I>Digitization & Hits</I></H3></A>
0623 <UL>
0624 <LI>Introduced a new interface class, G4VScoreNtupleWriter which allows
0625 implementing in the user code automated storing of hits collections of
0626 G4THitsMap (used by primitive scorers) with Geant4 analysis tools;
0627 concrete implementations (G4ScoreNtupleWriter with associated messenger)
0628 are demonstrated in new provided extended/analysis examples.</LI>
0629 <LI>Updated G4THitsMap: generic <TT>GetContainer(), size(), GetIndex(...),
0630 GetObject(...), begin(), end(), cbegin()</TT> and <TT>cend()</TT>.</LI>
0631 <LI>Added G4THitsVector class, a generic container compatible with G4THitsMap
0632 such that vectors can be used to score over the course of a run (saving
0633 memory); it allows the underlying container to store data as non-pointer
0634 types.</LI>
0635 <LI>Updated use of thread-local static variables to function returning
0636 a thread-local static reference. New model for allowing support of
0637 multi-threading on Windows DLLs.</LI>
0638 </UL>
0639
0640 <A NAME="emstd-notes">
0641 <H3><I>Electromagnetic Processes</I></H3></A>
0642 <UL>
0643 <LI>Requires data-set G4EMLOW-7.7.</LI>
0644 <LI><B>DNA</B>:
0645 <UL>
0646 <LI>Updated G4DNAOneStepThermalizationModel and other classes for
0647 chemistry.</LI>
0648 <LI>Updated use of thread-local static variables to function returning
0649 a thread-local static reference. New model for allowing support of
0650 multi-threading on Windows DLLs.</LI>
0651 <LI>Included upper energy limit of models.</LI>
0652 <LI>Updated Si mass in G4DNAGenericIonsManager.</LI>
0653 <LI>Added protection in Auger emission.</LI>
0654 <LI>Fixed header guards in G4ITFinder and G4AllITFinder.
0655 Addressing problem report
0656 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2084">#2084</A>.</LI>
0657 </UL></LI>
0658 <LI><B>High Energy</B>
0659 <UL>
0660 <LI>G4AnnihiToMuPair: added Coulomb correction to cross-section at
0661 threshold.</LI>
0662 <LI>Minor code cleanup in G4eeToHadronsMultiModel, G4eeToHadronsModel and
0663 G4mplIonisationWithDeltaModel.</LI>
0664 <LI>G4eeToHadrons, G4eeToHadronsMultiModel, G4hBremsstrahlung,
0665 G4hPairProduction, G4hhIonisation, G4mplIonisation: automatic
0666 documentation format now rST.</LI>
0667 </UL></LI>
0668 <LI><B>Low Energy</B>
0669 <UL>
0670 <LI>Added new classes for elastic scattering of gammas by M.Omer
0671 and R.Hajima.</LI>
0672 <LI>Updated JAEA elastic model classes.</LI>
0673 <LI>G4LivermoreBremsstrahlungModel: no functional changes. Some base class
0674 member names have been changed and these modifications propagated down
0675 to the derived class.</LI>
0676 <LI>Fixed problem G4PenelopeIonisationModel responsible for rare energy
0677 non-conservation and run-time warning.</LI>
0678 <LI>Fix in G4PenelopeComptonModel and G4PenelopePhotoElectricModel for rare
0679 energy non-conservation.</LI>
0680 <LI>Fix for differential cross-section of photo-electrons in
0681 G4LivermorePolarizedPhotoElectricModel. Addressing problem report
0682 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2089">#2089</A>.</LI>
0683 <LI>G4RayleighScattering: changed automatic documentation format to rST.</LI>
0684 </UL></LI>
0685 <LI><B>Muons</B>
0686 <UL>
0687 <LI>G4MuMultipleScattering, G4MuPairProduction, G4MuIonisation,
0688 G4ePairProduction, G4MuBremsstrahlungModel, G4MuBremsstrahlung,
0689 G4MuBetheBlochModel: use default destructor.</LI>
0690 <LI>Added minor protection in G4MuPairProductionModel.</LI>
0691 <LI>G4ePairProduction: fixed model name.</LI>
0692 <LI>G4EnergyLossForExtrapolator: fixed MT initialisation and destruction.</LI>
0693 <LI>G4MuMultipleScattering, G4MuPairProduction, G4eePairProduction,
0694 G4MuBremsstrahlung, G4MuIonisation: automatic documentation format
0695 now rST.</LI>
0696 </UL></LI>
0697 <LI><B>Polarisation</B>
0698 <UL>
0699 <LI>G4PolarizedAnnihilationModel: implemented sampling of final state
0700 at-rest.</LI>
0701 <LI>Code cleanup; removed unused headers and methods.</LI>
0702 </UL></LI>
0703 <LI><B>Standard</B>
0704 <UL>
0705 <LI>G4GoudsmitSaundersonMscModel: implemented interface method for
0706 macroscopic first transport cross-section computation per volume
0707 (used only for testing).</LI>
0708 <LI>G4GSMottCorrection, G4GSPWACorrections: fixed initialization of first
0709 moment correction factor.</LI>
0710 <LI>G4GoudsmitSaundersonTable: fixed gcc-8.1.0 compilation warnings.</LI>
0711 <LI>G4WentzelOKandVIxSection: fixed form-factor for proton.
0712 Added Mott corrections to e+-.</LI>
0713 <LI>G4WentzelOKandVIxSection: fixed destructor.</LI>
0714 <LI>G4ScreeningMottCrossSection: added extra method for more CPU effective
0715 computation of the Mott correction.</LI>
0716 <LI>G4UrbanMscModel: correction in order to get better backscattering for
0717 low energy.</LI>
0718 <LI>G4eSingleCoulombScatteringModel: fixed calculation of scattering angle.
0719 Addressing problem report
0720 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2090">#2090</A>.</LI>
0721 <LI>G4ScreeningMottCrossSection: use G4MottData and improved time consuming
0722 computations. Removed obsolete G4MottCoefficients class, replaced by
0723 static data class G4MottData.</LI>
0724 <LI>G4ScreeningMottCrossSection, G4eSingleCoulombScatteringModel: added
0725 extra protections on argument of std::acos avoiding crash due to
0726 precision lost; code cleanup.</LI>
0727 <LI>G4BetheBlochModel: use form-factor for projectile ion as in formulation
0728 of NIM A 488 (2002) 282.</LI>
0729 <LI>G4ionIonisation: apply correction to energy loss only to BetheBloch
0730 ionisation model.</LI>
0731 <LI>G4BraggModel, G4BraggIonModel, G4BetheBlochModel: added optional
0732 possibility to use ICRU90 data.</LI>
0733 <LI>G4PSTARStopping: minor code cleanup.</LI>
0734 <LI>G4LindhardSorensenIonModel, G4LindhardSorensenData: new ion ionisation
0735 model for moderate and high energies.</LI>
0736 <LI>G4AtimaEnergyLossModel, G4AtimaFluctuations: new ion ionisation model.</LI>
0737 <LI>G4BetheHeitler5DModel: new 5D model.</LI>
0738 <LI>G4BetheHeitlerModel, G4PairProductionRelModel: new versions with
0739 improved screening function approximation, improved LPM function
0740 approximation, efficiency, documentation and cleanup.
0741 Corrected call to selecting target atom in final state sampling.</LI>
0742 <LI>G4PairProductionRelModel, G4BetheHeitlerModel: use G4ModifiedTsai
0743 angular generator for the final state sampling.</LI>
0744 <LI>G4PairProductionRelModel: fixed computation of cross-section in the
0745 new version of the high energy model.</LI>
0746 <LI>G4DipBustGenerator, G4ModifiedTsai: implemented new interface for
0747 sampling of directions of e+e- pair.</LI>
0748 <LI>G4eplusAnnihilation: moved sampling of final state from AtRestDoIt()
0749 method to <TT>SamplingSecondaries()</TT>.</LI>
0750 <LI>Code cleanup in G4eeToTwoGammaModel, G4BetheHeitlerModel and
0751 G4NISTStoppingData.</LI>
0752 <LI>G4eplusAnnihilation: set weights for directional splitting.</LI>
0753 <LI>G4eplusTo2GammaOKVIModel, G4eplusTo3GammaOKVIModel: make consistent
0754 definition of cross-section for 2-gamma and 3-gamma models; use cuts
0755 for gamma in sampling of 3-gamma final state.</LI>
0756 <LI>Added new models, G4eplusTo2GammaOKVIModel and G4eplusTo3GammaOKVIModel.</LI>
0757 <LI>G4eBremsstrahlungRelModel, G4PairProductionRelModel, G4PAIySection,
0758 G4PAIxSection, G4ICRU73QOModel: moved inline method which use static
0759 constants to source. Improved code formatting.</LI>
0760 <LI>G4SeltzerBergerModel: extended model with optional sampling tables for
0761 fast run time sampling of the emitted photon energy from the
0762 Seltzer-Berger scaled DCS, instead of using the rejection.
0763 The sampling tables are hadled by the new G4SBBremTable class.
0764 Measuring 40-60% model speedup with some additional memory consumption.</LI>
0765 <LI>G4eBremsstrahlungRelModel: improved LPM function approximation; code cleanup
0766 and optimization.</LI>
0767 <LI>G4SeltzerBergerModel, G4eBremsstrahlungRelModel: use by default
0768 G4ModifiedTsai generator instead of G4DipBustGenerator.</LI>
0769 <LI>G4DipBustGenerator: optimisation, speedup; using G4Pow::A13.</LI>
0770 <LI>G4GammaConversion, G4eBremsstrahlung, G4hIonisation: use upper energy
0771 limit for low-energy model from physics-list instead of hard-coded
0772 values.</LI>
0773 <LI>G4CoulombScattering, G4eBremsstrahlung, G4[e,h]MultipleScattering,
0774 G4eplusAnnihilation, G4[e,h,ion,alpha]Ionisation, G4ComptonScattering,
0775 G4NuclearStopping, G4PhotoElectricEffect: changed auto-generated
0776 documentation format to rST.</LI>
0777 </UL></LI>
0778 <LI><B>Utils</B>
0779 <UL>
0780 <LI>G4EmCorrections, G4VEmModel, G4ionEffectiveCharge, G4VAtomDeexcitation:
0781 avoid use of static class members in inline methods; moved long methods
0782 to source; added thread safe definition of model index for atomic
0783 de-excitation.</LI>
0784 <LI>G4EmCalculator: fixed <TT>GetCrossSectionPerVolume()</TT> method in case of
0785 multiple scattering process; the proper value of the first transport
0786 cross-section is retrieved now.</LI>
0787 <LI>G4EmCalculator: fixed computation dEdx for ions.</LI>
0788 <LI>G4EmParameters, G4EmParametersMessenger: added 5D gamma conversion
0789 model parameters; added <TT>MscEnergyLimit()</TT> and corresponding UI command;
0790 addressing problem report
0791 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2045">#2045</A>;
0792 added extra DNA UI directory and command; improved dump of EM
0793 parameters.</LI>
0794 <LI>G4EmParameters: added extra protection to avoid simulteneous definition
0795 of options which should not be enabled together.</LI>
0796 <LI>G4EmParameters, G4EmParameterMessenger, G4LossTableManager:
0797 minor update of interfaces; added extra parameters.</LI>
0798 <LI>G4EmParameters, G4EmParametersMessenger: added extra parameter and
0799 UI command to enable usage of ICRU90 data; fixed DNA parameters;
0800 added checks of EM physics type.</LI>
0801 <LI>G4EmParameters: fixed typo in printout.</LI>
0802 <LI>G4VEmAngularDistribution: added <TT>SamplePairDirections()</TT> method for
0803 sampling of e+e- pair production.</LI>
0804 <LI>Added new enumerator G4DNAModelSubType.</LI>
0805 <LI>G4LossTableManager: moved inline run time method to source.</LI>
0806 <LI>Minor code cleanup in G4VMscModel and G4VEmModel.</LI>
0807 <LI>G4EmDataHandler: added public interfaces.</LI>
0808 <LI>G4VEmProcess: code cleanup in <TT>StorePhysicsTable(..)</TT> methods;
0809 introduced 'isTheMaster' flag.</LI>
0810 <LI>G4EmElementSelector: code optimisation.</LI>
0811 <LI>G4EmModelManager, G4VEmModel, G4VEmProcess, G4VEnergyLossProcess,
0812 G4VMultipleScattering: auto-generated documentation now in rST format.</LI>
0813 <LI>G4EmBiasingManager, G4EmParameters, G4EmParametersMessenger,
0814 G4VEnergyLossProcess, G4VEmProcess: enable directional splitting
0815 and moved logic to G4EmBiasingManager.</LI>
0816 <LI>Fixed Coverity defects.</LI>
0817 </UL>
0818 <LI><B>Xrays</B>
0819 <UL>
0820 <LI>Updated use of thread-local static variables to function returning
0821 a thread-local static reference. New model for allowing support of
0822 multi-threading on Windows DLLs.</LI>
0823 <LI>G4Cerenkov. added protection against infinite loops due to very small
0824 steps. Addressing problem report
0825 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1992">#1992</A>.</LI>
0826 <LI>G4Cerenkov, G4Scintillation: correctly reset number of photons to
0827 zero each step. Addressing problem report
0828 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2056">#2056</A>.</LI>
0829 </UL></LI>
0830 </UL>
0831
0832 <A NAME="event-notes">
0833 <H3><I>Event</I></H3></A>
0834 <UL>
0835 <LI>Code cleanup in G4StackManager to remove branches for muonic atom
0836 settings.</LI>
0837 <LI>Updated use of thread-local static variables to function returning
0838 a thread-local static reference. New model for allowing support of
0839 multi-threading on Windows DLLs.</LI>
0840 </UL>
0841
0842 <A NAME="externals-notes">
0843 <H3><I>Externals</I></H3></A>
0844 <UL>
0845 <LI><U>CLHEP</U>:
0846 <UL>
0847 <LI>Updated to CLHEP version 2.4.1.0.</LI>
0848 <LI>Enabled thread-local storage and atomics on Windows and clang,
0849 as now all supported by c++11.</LI>
0850 <LI>Ranlux64Engine: fixed compilation warning on Windows for shift count
0851 negative or too big.</LI>
0852 <LI>Fixed compilation warnings from gcc-8.1.0 when using
0853 -Woverloaded-virtual compilation option.</LI>
0854 </UL></LI>
0855 <LI><U>Zlib</U>:
0856 <UL>
0857 <LI>Updated to Zlib version 1.2.11</LI>
0858 <LI>Use original files format and adopt C Compiler for installation.
0859 Addressing compilation warnings on gcc-8.1.0.</LI>
0860 </UL></LI>
0861 </UL>
0862
0863 <A NAME="gen-notes">
0864 <H3><I>General Processes</I></H3></A>
0865 <UL>
0866 <LI><B>Biasing</B>
0867 <UL>
0868 <LI>Updated use of thread-local static variables to function returning
0869 a thread-local static reference. New model for allowing support of
0870 multi-threading on Windows DLLs.</LI>
0871 </UL></LI>
0872 <LI><B>Cuts</B>
0873 <UL>
0874 <LI>Code cleanup; use of nullptr and c++11.</LI>
0875 </UL></LI>
0876 <LI><B>Management</B>
0877 <UL>
0878 <LI>Code cleanup; use of nullptr and c++11.</LI>
0879 </UL></LI>
0880 <LI><B>Optical</B>
0881 <UL>
0882 <LI>G4OpMieHG: changed <TT>GetProperty()</TT> to use enum indeces instead of
0883 strings.</LI>
0884 </UL></LI>
0885 <LI><B>Scoring</B>
0886 <UL>
0887 <LI>Updated use of thread-local static variables to function returning
0888 a thread-local static reference. New model for allowing support of
0889 multi-threading on Windows DLLs.</LI>
0890 <LI>G4ParallelWorldProcess: fixed track velocity of optical photons for
0891 the first step in a layered mass geometry.</LI>
0892 </UL></LI>
0893 <LI><B>Transportation</B>
0894 <UL>
0895 <LI>G4Transportation and G4CoupledTransportation: adjusted killing of
0896 looping particles, to apply only to stable particles. Unstable
0897 particles will be propagated indefinitely. At object destruction,
0898 added printing of the maximum energy and sum of energies of particles
0899 "saved". Added method <TT>SetHighLooperThresholds()</TT> to restore
0900 old default parameters for killing looping particles (warning energy
0901 to 100 MeV - tracks below this are killed silently; important energy
0902 to 250 MeV - above this, tracks are given multiple chances). Default
0903 constructors now use these high values.
0904 New auxiliary methods <TT>PushThresholdsToLogger()</TT> and
0905 <TT>ReportMissingLogger()</TT>.
0906 New method <TT>SetLowLooperThresholds()</TT> for low-E applications.
0907 New method <TT>ReportLooperThresholds()</TT> to print out the values.
0908 Added extra simple statistics at destruction: stats on non-electrons
0909 loopers killed (sum E, number, max E & its PDG); stats for non-electron
0910 loopers killed (total energy, maximum energy and PDG of the type of
0911 that track). Statistics are now printed by a new method and are
0912 printed also in non-verbose mode.
0913 Addressing problem report
0914 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2063">#2063</A>.</LI>
0915 <LI>New class G4TransportationLogger to consolidate reports from the
0916 Transportation processes.</LI>
0917 <LI>Use G4Exception for warnings, instead of streaming to <TT>cout/cerr</TT>.
0918 <LI>Fixed Coverity defects.</LI>
0919 </UL></LI>
0920 </UL>
0921
0922 <A NAME="geo-notes">
0923 <H3><I>Geometry</I></H3></A>
0924 <UL>
0925 <LI><B>Magnetic field</B>
0926 <UL>
0927 <LI>Correction in G4MagneticField to no longer inherit from
0928 G4ElectroMagneticField; this allowed a user to provide a full EM field,
0929 but obtain the force only from the B-field when using the equation
0930 created in the G4ChordFinder constructor.
0931 It is no longer possible to use the equation of motion for a pure
0932 magnetic field for the case of a mixed electromagnetic field. Instead
0933 the full chain of classes for equation of full EM field, steppers and
0934 driver must be used for the case of the 'full' EM field.</LI>
0935 <LI>Introduced Bulirsch-Stoer method of integration, an alternative to
0936 Runge-Kutta based on the mid-point method. A separate driver derived
0937 from G4VIntegrationDriver was needed, using specialisation of
0938 G4IntegrationDriver template class.</LI>
0939 <LI>Change in <TT>G4FieldManager::CreateChordFinder()</TT> to cope better
0940 with case where field argument is null.</LI>
0941 <LI>Fix for missing interface method in G4VIntegrationDriver; added method
0942 <TT>RenewStepperAndAdjust()</TT> which used to exist in G4MagInt_Driver. This
0943 method must be defined in those derived driver classes which accept
0944 a Runge Kutta stepper.</LI>
0945 <LI>Defined default implementation of the method in G4IntegrationDriver
0946 and G4FSALIntegrationDriver, and implementations in the templated
0947 classes G4IntegrationDriver and G4FSALIntegrationDriver.</LI>
0948 <LI>Removed static data from G4FSALIntegrationDriver, G4IntegrationDriver
0949 and G4MagIntegratorDriver and moved to base class as normal data
0950 members. Fix was required for allowing proper symbol exporting on
0951 Windows DLLs.</LI>
0952 <LI>Use G4Exception warnings instead of streaming to cerr.</LI>
0953 <LI>Added override final for virtual methods in G4UniformMagField.</LI>
0954 <LI>Corrections in calculation of chord distance in G4DormandPrince745
0955 (use 4th order interpolation from Shampine 1986 for mid-point).</LI>
0956 <LI>Revised G4FieldUtils: moved <TT>copy()</TT> method from steppers,
0957 added two new setters for simple & variadic methods.</LI>
0958 <LI>Fixes to copy input time in ModifiedMidpoint, CashKarp, G4RK547FEq1/2/3
0959 Bogacki-Shampine 4/5 and 2/3, Dormand Prince 4/5, 5/6 and 7/8 and
0960 Tsitouras steppers.</LI>
0961 <LI>Fix for unitialised pointer in G4FSALIntegrationDriver constructor.
0962 Revision of data member variable names.</LI>
0963 <LI>G4NystromRK4 now uses G4CachedMagneticField for caching values and
0964 creates it if not provided. Any other stepper will work with that cached
0965 field too. </LI>
0966 <LI>Removed <TT>G4MagIntegratorStepper::ComputeRightHandSide()</TT>
0967 virtual method, previously introduced for use with G4NystromRK4
0968 (calling non-virtual <TT>RightHandSide()</TT> instead).</LI>
0969 <LI>New experimental class G4BFieldIntegrationDriver for pure magnetic
0970 field.
0971 In <TT>QuickAdvance()</TT> it uses helix stepper when rotation angle
0972 is larger than <TT>pi/3</TT>.</LI>
0973 <LI>New experimental class G4InterpolationDriver; using Runge-Kutta method
0974 with interpolation property to integrate EoM with error control.</LI>
0975 </UL></LI>
0976 <LI><B>Management</B>
0977 <UL>
0978 <LI>G4AffineTransform: added explicit copy constructor, assignment and
0979 destructor; <TT>InverseProduct()</TT> has been optimised, now it does
0980 36 multiplications instead of 45; optimised also for the case of pure
0981 translation; added methods for inverse transformation:
0982 <TT>InverseTransformPoint(), InverseTransformAxis(),
0983 InverseNetRotation()</TT> and <TT>InverseNetTranslation()</TT>.
0984 Minor optimisation to multiplication of matrix by vector, to make use
0985 of temporaries in accessing vector components.</LI>
0986 <LI>G4GeomSplitter: replaced use or <TT>realloc()/free()</TT> and
0987 <TT>memcpy()</TT> with normal allocation/deallocation through
0988 G4Allocator. Also addressing compilation warnings on gcc-8.1.0.</LI>
0989 <LI>G4VSolid: reimplemented <TT>EstimateSurfaceArea()</TT> for approximate
0990 calculation of the surface area of a solid, by estimating volume of a
0991 thin shell surrounding the surface using Monte-Carlo method; algorithm
0992 providing more accurate estimation without performance penalty.</LI>
0993 </UL></LI>
0994 <LI><B>Navigation</B>
0995 <UL>
0996 <LI><TT>G4Navigator::ComputeLocalAxis()</TT>: removed unnecessary check
0997 for <TT>IsRotated()</TT>.</LI>
0998 <LI>Replaced use of <TT>Inverse()</TT> from G4AffineTransform with new
0999 dedicated methods, to avoid creation of temporaries in
1000 G4RegularNavigation, G4Navigator and G4ReplicaNavigation.</LI>
1001 <LI>G4PropagatorInField: fix for case of finishing integration in last
1002 iteration (so a looping particle will not be signalled incorrectly in
1003 that case). Improved reporting of looping particle, adding info on
1004 density and fraction (%) of proposed step that was completed, and
1005 momentum.</LI>
1006 <LI>Use G4Exception instead of streaming to cerr in various classes.</LI>
1007 <LI>Fixed Coverity defect in diagnostic report in G4MultiLevelLocator.</LI>
1008 <LI>In <TT>G4PropagatorInField::ComputeStep()</TT>, notify G4ChordFinder
1009 at the beginning of each call.</LI>
1010 </UL></LI>
1011 <LI><B>Solids (Boolean)</B>
1012 <UL>
1013 <LI>G4MultiUnion: added protection for normal initialisation in
1014 <TT>DistanceToOutVoxels()</TT>. Minor optimisation in
1015 <TT>DistanceToOut(p,v,..)</TT>.</LI>
1016 <LI>Minor optimisations to G4SubtractionSolid and G4IntersectionSolid
1017 for use of early returns.</LI>
1018 </UL></LI>
1019 <LI><B>Solids (CSG)</B>
1020 <UL>
1021 <LI>G4Cons: fix in <TT>GetPointOnSurface()</TT> when sampling on inner and
1022 outer conical surfaces.</LI>
1023 <LI>G4Orb: improved check if point is too far in <TT>DistanceToIn(p,v)</TT>.</LI>
1024 <LI>G4Torus: added check if point is too far in <TT>DistanceToIn(p,v)</TT>.
1025 Addressing problem report
1026 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2100">#2100</A>.</LI>
1027 <LI>Make G4UCons wrapper inheriting from vecgeom::GenericUnplacedCone,
1028 following the latest changes in VecGeom.</LI>
1029 <LI>Make G4UTrd wrapper inheriting from vecgeom::GenericUnplacedTrd,
1030 following the latest changes in VecGeom.</LI>
1031 <LI>G4UTorus: removed leftover use of UVector3 and replaced with U3Vector.</LI>
1032 </UL></LI>
1033 <LI><B>Solids (Specific)</B>
1034 <UL>
1035 <LI>Enabled VecGeom wrappers for G4ExtrudedSolid, G4TessellatedSolid
1036 G4Tet and G4Hype.</LI>
1037 <LI>Make G4UPolycone wrapper inheriting from vecgeom::GenericUnplacedPolycone,
1038 following the latest changes in VecGeom.</LI>
1039 <LI>Minor cleanup in <TT>G4TessellatedSolid::CreatePolyhedron()</TT>, no
1040 functional changes.</LI>
1041 <LI>Updated use of thread-local static variables to function returning
1042 a thread-local static reference. New model for allowing support of
1043 multi-threading on Windows DLLs.</LI>
1044 <LI>Removed G4SolidsWorkspacePool class. Adapted G4SolidsWorkspace to
1045 use templated class G4TWorkspacePool.</LI>
1046 </UL></LI>
1047 <LI><B>Volumes</B>
1048 <UL>
1049 <LI>Replaced use of <TT>Inverse()</TT> from G4AffineTransform with new
1050 dedicated methods, to avoid creation of temporaries in G4TouchableHistory,
1051 G4PVPlacement and G4PVParameterised.</LI>
1052 <LI>Updated use of thread-local static variables to function returning
1053 a thread-local static reference. New model for allowing support of
1054 multi-threading on Windows DLLs.</LI>
1055 <LI>G4PVPlacement: added copy number to G4Exception printing in
1056 <TT>CheckOverlaps()</TT>.</LI>
1057 <LI>Removed G4GeometryWorkspacePool class. Adapted G4GeometryWorkspace to
1058 use templated class G4TWorkspacePool.</LI>
1059 <LI>Added G4AssemblyStore singleton class for assembly structures bookeeping,
1060 to address the specific use-case of allowing identification of assembly
1061 envelopes.</LI>
1062 </UL></LI>
1063 </UL>
1064
1065 <A NAME="glob-notes">
1066 <H3><I>Global</I></H3></A>
1067 <UL>
1068 <LI><U>Threading</U>
1069 <UL>
1070 <LI>Removed obsolete MT wrappers for random numbers, no longer necessary.
1071 Simplified definition of G4Random types in Randomize.hh accordingly.</LI>
1072 <LI>Full support for thread-local storage on clang (also MacOS clang) now
1073 enabled; updated tls.hh definitions accordingly; removed use of the
1074 G4USE_STD11 flag, now always enabled by default.</LI>
1075 <LI>Use <TT>thread_local</TT> keyword on Windows, instead of
1076 <TT>__declspec(thread)</TT> in tls.hh. Avoid exporting symbols for
1077 Windows DLLs in multi-threaded builds.
1078 Removed no longer necessary windefs.hh header.</LI>
1079 <LI>G4Threading: replaced POSIX threading with C++11 threading
1080 (<TT>std::condition_variable, std::mutex, std::recursive_mutex,
1081 std::thread</TT>).
1082 Many of the former macros are now dummy macros (e.g. G4MUTEXINIT,
1083 G4MUTEX_INITIALIZER, etc.). Updated pin affinity.
1084 Replaced <TT>typedef</TT> statements with C++11 <TT>using</TT>
1085 correspondents.</LI>
1086 <LI>G4AutoLock is now a thin wrapper around <TT>std::unique_lock</TT> providing
1087 previous functionality + more features (e.g. <TT>try_lock, try_lock_until</TT>,
1088 etc.). Overloaded G4AutoLock member functions in sequential mode to not
1089 execute locking/unlocking.</LI>
1090 <LI>Added G4RecursiveAutoLock for recursive mutexes.</LI>
1091 <LI>Extended G4TemplateAutoLock to take advantage of the features
1092 <TT>std::unique_lock</TT> offers.</LI>
1093 <LI>G4MTBarrier: removed WIN32 specifics, updated G4CONDITIONWAIT to use
1094 G4AutoLock (<TT>std::unique_lock</TT>) instead of G4Mutex, removed
1095 G4MUTEX_INITIALIZER from constructor.</LI>
1096 <LI>Added G4TypeMutex<T> and G4TypeRecursiveMutex<T> function
1097 to threading for safely obtaining a static mutex that is unique to the
1098 template type <TT>T</TT>.</LI>
1099 <LI>Replaced static G4Mutex in G4Cache with calls to G4TypeMutex
1100 function calls to safely initialize mutexes on Windows.</LI>
1101 <LI>Updated G4cout_p and G4cerr_p to point to <TT>std::cout</TT> and
1102 <TT>std::cerr</TT> before and after library load.
1103 G4cout before G4RunManager creation has been seen to fail on Windows.</LI>
1104 <LI>Improvement to G4AutoLock in non-MT mode + bug fix (void <TT>try_lock()</TT>
1105 -> <TT>bool try_lock()</TT>) plus error handling within G4AutoLock
1106 if static mutex is attempted to be used at application cleanup
1107 (previously handled in G4Cache). Using atomics in G4Cache.</LI>
1108 <LI>G4Cache, G4CacheDetails: minor code cleanup and formatting.</LI>
1109 <LI>Define G4ThisThread, G4Promise, G4Future, and G4SharedFuture in
1110 G4Threading the promises and futures are not currently used but will be
1111 used in future.</LI>
1112 <LI>G4TypeMutex and G4RecursiveTypeMutex now accept an index.</LI>
1113 <LI>G4DummyThread typedef <TT>std::thread::id</TT> as id instead of
1114 id_type.</LI>
1115 <LI>Updated use of thread-local static variables to function returning
1116 a thread-local static reference. New model for allowing support of
1117 multi-threading on Windows DLLs.</LI>
1118 </UL></LI>
1119 <LI>Increased accuracy of <TT>G4Pow::A13()</TT> in the most critical [1/4,4]
1120 interval.</LI>
1121 <LI>Extracted G4Exception banner front/end strings for use in Qt parsing.</LI>
1122 <LI>G4PhysicsVector, G4Physics2DVector: fixed possible out-of-bound access
1123 in <TT>FindBin()</TT> method. Addressing problem report
1124 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2087">#2087</A>.</LI>
1125 <LI>Reset singleton pointer in G4StateManager destructor;
1126 addressing problem report
1127 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2094">#2094</A>.
1128 Minor code cleanup.</LI>
1129 <LI>Migrated G4Timer real (wall) time to use <TT>std::chrono::high_precision_clock</TT>
1130 from C++11. Fixed CPU number printout in <TT>operator<<()</TT>.
1131 Use G4 types. Code formatting.</LI>
1132 <LI>Expanded DEFINED_PPC and DEFINED_INTEL in G4FPEDetection.</LI>
1133 <LI>Added G4TiMemory header which defines an dummy initializer and empty
1134 macros when the profiling package TiMemory is disabled, while it includes
1135 the TiMemory headers and defines an initializer when built with TiMemory
1136 support enabled. Removed obsolete definition in G4Timer and G4SliceTimer,
1137 causing conflicts with TiMemory. Updated CMake scripts.</LI>
1138 <LI>Minor code cleanup in G4UniformRandPool.</LI>
1139 <LI>Added new classe G4StatAnalysis, a lightweight statistics class that
1140 calculates the mean, FOM, relative error, standard deviation, variance,
1141 coefficient of variation, efficiency, r2eff, r2int (corr-coeff-of-interp/
1142 coeff-of-determ).</LI>
1143 <LI>Added new utility class G4EnvironmentUtils, including convenient
1144 environment converters.</LI>
1145 <LI>Added variadic template function to templates.hh to consume unused
1146 parameters and variables.</LI>
1147 <LI>G4OrderedTable and G4DataVector: fixed store/retrieve of binary
1148 data format.</LI>
1149 <LI>G4AllocatorPool: moved copy-ctr and <TT>operator=()</TT> to public section.</LI>
1150 <LI>Fixes to G4ConvergenceTester to ensure there are no divide-by-zeros
1151 when calculating the stat history.
1152 Added <TT>operator += (G4double)</TT>.Fixed printout typos.</LI>
1153 <LI>Updated date of release for 10.5.</LI>
1154 </UL>
1155
1156 <A NAME="greps-notes">
1157 <H3><I>Graphical Representations</I></H3></A>
1158 <UL>
1159 <LI>Replaced DBL_MAX by <TT>G4VisAttributes::veryLargeTime = 1.e100*ns</TT>,
1160 (i.e. about 1.e75 billion years), to avoid for consistency DBL_MAX
1161 which is dimensionless.
1162 Disabled deprecated static data member G4VisAttributes::Invisible for
1163 Windows systems.</LI>
1164 <LI>Added <TT>GetNullExtent()</TT> function and <TT>operator==()</TT> to
1165 G4VisExtent.</LI>
1166 <LI>Added G4GREPS_ALLOC_EXPORT flag for DLL symbols export and apply it to
1167 data in G4VisAttributes.</LI>
1168 </UL>
1169
1170 <A NAME="had-notes">
1171 <H3><I>Hadronic Processes</I></H3></A>
1172 <UL>
1173 <LI><B>Cross sections</B>
1174 <UL>
1175 <LI>G4NeutrinoElectronTotXsc: new class for total (i.e. neutral current
1176 plus charged current) cross-section for neutrino-electron
1177 interactions.</LI>
1178 <LI>Introduced switch to allow transuranic elements.</LI>
1179 <LI>G4PiNuclearCrossSection: for transuranic elements, scale the
1180 cross-sections from those of Uranium (using the ratio of atomic
1181 weights), instead of using directly the latter.</LI>
1182 <LI>G4NeutronElasticXS, G4NeutronInelasticXS, G4NeutronCaptureXS:
1183 adopting new data structure from data set, incompatible with
1184 previous.</LI>
1185 <LI>G4ParticleInelasticXS: new inelastic cross sections for neutrons,
1186 protons and light ions based on G4PARTICLEXS-1.1.</LI>
1187 <LI>G4HadronXSDataTable: new class for cross-section handling.</LI>
1188 <LI>G4CrossSectionDataStore: added new method ComputeCrossSection(); reduced
1189 number of type conversions, number of computation of cross-sections and
1190 code branches; use const pointers to G4Material, G4Element and
1191 G4Isotope; fixed selection of isotope, for energy below <TT>20 MeV</TT>
1192 use isotope cross-sections, above <TT>20 MeV</TT> - isotope abundaces.</LI>
1193 <LI>G4VCrossSectionDataSet: added new flag 'isForAllAtomsAndEnergies' and
1194 get/set methods allowing to reduce the list of cross-sections per
1195 particle.</LI>
1196 <LI>Commented out debug printouts in G4ProjectileFragmentCrossSection
1197 header.</LI>
1198 <LI>Replaced file-scoped mutexes in G4CrossSectionFactoryRegistry to use
1199 G4TypeMutexwhich addresses a static mutex initialization bug on
1200 Windows.</LI>
1201 <LI>G4NeutronElasticXS, G4PhotoNuclearCrossSection,
1202 G4ElectroNuclearCrossSection: removed Gheisha cross-section from
1203 data store; use these classes as default.
1204 Corrected list of isotope cross-section.</LI>
1205 <LI>G4NeutronElasticXS: instantiate components in BuildPhysicsTable.</LI>
1206 <LI>G4HadronNucleonXsc: improved computation of kaon cross-sections,
1207 kaon-short and kaon-long cross-sections are computed as half sum of
1208 K- and K+. Implemented PDG-2017 parameterisation of total cross-sections.
1209 Use G4Pow, G4Exp, G4Log substituting <TT>std::pow()</TT>; added
1210 interfaces with G4ParticleDefinition and kinetic energy.</LI>
1211 <LI>G4CrossSectionElastic, G4CrossSectionInelastic: use new class
1212 G4HadronicParameters for definition of max energy.</LI>
1213 <LI>G4ComponentGGHadronNucleusXsc: general review and speed up without
1214 functional changes; added method <TT>ComputeCrossSections()</TT>;
1215 added cache values.</LI>
1216 <LI>G4VCrossSectionDataSet, G4BGGPionElasticXS, G4BGGPionInelasticXS:
1217 replaced explicit high-energy limit of hadronic physics with
1218 the one from G4HadronicParameters.</LI>
1219 <LI>G4CrossSectionElastic, G4CrossSectionDataSetRegistry,
1220 G4CrossSectionInelastic: added safe deletion of
1221 G4VComponentCrossSection at end of run.</LI>
1222 <LI>G4CrossSectionDataSetRegistry, G4VComponentCrossSection: added
1223 registration/de-registration of component cross-sections.</LI>
1224 <LI>G4ComponentGGHadronNucleusXsc: minor code cleanup.</LI>
1225 <LI>G4HadronCrossSections: use G4ThreadLocalSingleton pattern.</LI>
1226 <LI>G4HadronElasticDataSet, G4HadronInelasticDataSet: added cache;
1227 optimized <TT>IsElementApplicable()</TT> method.</LI>
1228 <LI>G4CrossSectionElastic, G4CrossSectionInelastic: set <TT>Zmin=1</TT>
1229 instead of 0.</LI>
1230 <LI>G4HadronCrossSections: added a protection (with a <TT>JustWarning</TT>
1231 exception) in the case of direct calls of cross-sections for particles
1232 not handled by Gheisha (e.g. gamma, He3, light anti-ions).</LI>
1233 <LI>G4ComponentGGNuclNuclXsc: fixed bug for light ion cross-sections.</LI>
1234 <LI>G4VComponentCrossSection, G4CrossSectionInelastic, G4CrossSectionElastic,
1235 G4ComponentSAIDTotalXS, G4ComponentGGNuclNuclXsc,
1236 G4ComponentGGHadronNucleusXsc: use stream in the <TT>Description()</TT>
1237 method instead of standard output.</LI>
1238 <LI>G4ComponentBarNucleonNucleusXsc: simplified and cleaned up, use
1239 G4BarashenkovData.</LI>
1240 <LI>G4BGGPionInelasticXS: use N. Starkov parameterisation for
1241 pion-nucleon.</LI>
1242 <LI>G4NucleonNuclearCrossSection: use G4ComponentBarNucleonNucleusXsc.</LI>
1243 <LI>G4UPiNuclearCrossSection, G4PiNuclearCrossSection: code cleanup.</LI>
1244 <LI>G4ComponentGGNuclNuclXsc, G4ComponentGGHadronNucleusXsc: completed
1245 cleanup; removed code duplication, all parameterisations are used from
1246 G4HadronNucleonXsc class only; do not create temporary G4DynamicParticle
1247 objects; implemented computations only inside <TT>ComputeCrossSections()</TT>
1248 methods.</LI>
1249 <LI>G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4BGGPionElasticXS,
1250 G4ComponentSAIDTotalXS, G4CrossSectionPairGG, G4NeutronElasticXS,
1251 G4NeutronInelasticXS, G4ParticleInelasticXS: improved destruction.</LI>
1252 <LI>G4VComponentCrossSection, G4CrossSectionDataSetRegistry,
1253 G4CrossSectionElastic, G4CrossSectionInelastic: fixed deletion of
1254 cross-sections and components in MT mode.</LI>
1255 <LI>G4ComponentGGNuclNuclXsc: fixed Coulomb barrier computation.</LI>
1256 <LI>G4HadronNucleonXsc: introduced parameterisation for kaons.
1257 Restored PDG 2005 parameterisation.
1258 Added cross-sections for strange hyperons.</LI>
1259 <LI>G4ComponentGGHadronNucleusXsc: added cross-sections for strange
1260 hyperons.</LI>
1261 <LI>G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4BGGPionElasticXS,
1262 G4BGGPionInelasticXS: use only Barashenkov cross-section,
1263 Glauber-Gribov cross-section for target Z>1 and G4HadronNucleonXscNS
1264 for target Z=1. G4BGGPionElasticXS: limit cross-section below
1265 <TT>20 MeV</TT>.</LI>
1266 <LI>G4PhotoNuclearCrossSection: added two new methods, <TT>IsIsoApplicable()</TT>
1267 and <TT>GetIsoCrossSection()</TT> to allow photo-nuclear reactions on deuterium.
1268 Addressing problem report
1269 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2092">#2092</A>.</LI>
1270 <LI>G4ComponentGGNuclNuclXsc: fixed nuclear radius parameterisation.</LI>
1271 <LI>G4ComponentGGHadronNucleusXsc: choose NS (i.e. by N. Starkov)
1272 parameterisation for kaon scattering off Hydrogen.</LI>
1273 <LI>G4BGGPionElasticXS, G4BGGPionInelasticXS, G4BGGNucleonInelasticXS: use
1274 SAID cross-section at low energy. Use NS (i.e. by N. Starkov)
1275 parameterisation for cross-sections on Hydrogen. G4BGGNucleonElasticXS:
1276 limit elastic cross-section off proton at low energy.</LI>
1277 <LI>G4ComponentSAIDTotalXS - make class thread safe </LI>
1278 <LI>G4HadronNucleonXsc: use PDG2016 parameterisation for protons.
1279 Smooth kaon cross-section. Kaon cross-section with the same
1280 parameterisation as in G4 10.4.
1281 Added extra method for kaons fully based on NS (i.e. by N. Starkov)
1282 parameterisation.</LI>
1283 <LI>G4NucleonNuclearCrossSection: fixed typo in inelastic cross-section.</LI>
1284 <LI>G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS
1285 G4ParticleInelasticXS: replaced environment variable G4NEUTRONXSDATA
1286 with G4PARTICLEXSDATA; use full list of isotopic cross-sections
1287 available in G4PARTICLEXS.</LI>
1288 <LI>G4CrossSectionFactoryRegistry: fixed printout typo.</LI>
1289 </UL></LI>
1290 <LI><B>Management</B>
1291 <UL>
1292 <LI>G4HadronicProcess: fixed compilation warnings on gcc-8.1.0 regarding
1293 catching polymorphic type by value, instead of by reference.
1294 Use const pointers and "nullptr" for G4Material and G4Element; use
1295 <TT>ComputeCrossSection()</TT> method; removed creation of new
1296 materials at run-time inside GetElementCrossSection(), all materials
1297 should be created in the user code.
1298 Use correct return type when calling <TT>CheckResult()</TT> from
1299 <TT>PostStepDoIt()</TT>:
1300 fixes case when the value of pointer 'result' does not get properly
1301 reset to NULL in case a non-conservation is detected, thus "bad"
1302 interaction does not get re-sampled.</LI>
1303 <LI>Code cleanup in G4HadronicProcess, G4VLeadingParticleBiasing and
1304 G4HadLeadBias. G4HadronicProcess, G4HadronInelasticProcess: added
1305 keyword <TT>override</TT>; cleanup of cross-section scale factor
1306 and weights; G4HadronicProcessStore: use <TT>nullptr</TT> and added
1307 flag <TT>buildXSTable</TT> with get/set methods.</LI>
1308 <LI>Added function <TT>GetHadronicModel(modelName)</TT> in
1309 G4HadronicProcess, which returns a pointer to G4HadronicInteraction.</LI>
1310 <LI>Removed obsolete class G4HadronicInteractionWrapper.</LI>
1311 <LI>G4HadronicProcess: added check if secondary particle is on the mass
1312 shell; if its mass differ from the PDG mass by more than <TT>1.5 MeV</TT>
1313 then the mass is forced to the mass shell, keeping total energy
1314 conserved but not 3-momentum.</LI>
1315 </UL></LI>
1316 <LI><B>Processes</B>
1317 <UL>
1318 <LI>G4HadronElasticProcess, G4NeutrinoElectronProcess: fixed compilation
1319 warnings on gcc 8.1.0, regarding catching polymorphic type by value,
1320 instead of by reference.
1321 Use const pointers and "nullptr" for G4Material and G4Element.</LI>
1322 <LI>G4NeutrinoElectronProcess: added cross-section biasing.
1323 Modified constructor.</LI>
1324 <LI>G4HadronCaptureProcess: revised description; added C++11 keywords.</LI>
1325 </UL></LI>
1326 <LI><B>Stopping</B>
1327 <UL>
1328 <LI>G4HadronStoppingProcess, G4MuonicAtomDecay: fixed compilation warnings
1329 on gcc 8.1.0, regarding catching polymorphic type by value, instead of
1330 by reference.</LI>
1331 <LI>G4HadronicAbsorptionFritiof: replaced the explicit high-energy limit
1332 of hadronic physics with the one from G4HadronicParameters.</LI>
1333 <LI>G4MuonMinusBoundDecay: changed the calculation used in
1334 <TT>GetMuonDecayRate()</TT>, based on problem report
1335 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2049">#2049</A>.
1336 Added another GetMuonDecayRate() function using A, muon and nucleus
1337 masses in addition to Z to accomodate the more accurate formula.</LI>
1338 <LI>G4MuonMinusBoundDecay: fixed Coverity defect in <TT>GetMuonDecayRate()</TT>;
1339 removed forbidden creation of G4Element in any model class.</LI>
1340 </UL></LI>
1341 <LI><B>Utilities</B>
1342 <UL>
1343 <LI>Updated use of thread-local static variables to function returning
1344 a thread-local static reference. New model for allowing support of
1345 multi-threading on Windows DLLs.</LI>
1346 <LI>Added new singleton class G4HadronicParameters, keeping global
1347 hadronic parameters. For the time being, it has only the high-energy
1348 limit of hadronic physics (instead of spreading this value in many
1349 different files, as done up to now). The default value is set to
1350 <TT>100 TeV</TT>.</LI>
1351 <LI><U>Models Utilities</U>:
1352 <UL>
1353 <LI>First implementation of alpha cluster structure of carbon nuclei in
1354 G4Fancy3DNucleus, according to P.Bozek et al., Phys.Rev.C90, 064902
1355 (2014). Fixed issue of event reproducibility; added loop checks and general
1356 cleanup. In case of difficulties in the method <TT>ChooseFermiMomenta()</TT>,
1357 emit a <TT>JustWarning</TT> exception instead of writing to <TT>cerr</TT>.</LI>
1358 <LI>Minor improvement to code in G4Nucleon and cleanup.</LI>
1359 <LI>Updated use of thread-local static variables to function returning
1360 a thread-local static reference. New model for allowing support of
1361 multi-threading on Windows DLLs.</LI>
1362 </UL></LI>
1363 </UL></LI>
1364 <LI><B>Abla</B>
1365 <UL>
1366 <LI>Extended model to hypernuclei.</LI>
1367 <LI>Updated ABLA interfaces.</LI>
1368 <LI>Updated some parameters and code cleanup.</LI>
1369 <LI>Fixed some Coverity defects.</LI>
1370 </UL></LI>
1371 <LI><B>Bertini Cascade</B>
1372 <UL>
1373 <LI>Added strange pair production channels to list of 6, 7, 8 and 9-body
1374 final states in classes G4CascadeT31piNChannel and
1375 G4CascadeT33piNChannel. Modified template values accordingly.</LI>
1376 <LI>G4CascadeT11pizNChannel: extended strange pair production channels to
1377 6,7,8 and 9 body final states.</LI>
1378 <LI>Fixes in G4ElementaryParticleCollider methods <TT>generateSCMpionAbsorption()</TT>
1379 and <TT>generateSCMmuonAbsorption()</TT>, as they did not produce correct nucleon
1380 pairs when pion or muon was absorbed. Added quantum number conservation
1381 test to method <TT>collide()</TT>.</LI>
1382 <LI>Fixed implementation of nuclear_rad_2par configurable key in
1383 G4CascadeParamMessenger.</LI>
1384 <LI>G4GDecay3: fixed problem reported by CMS due to wrong kinematics in the
1385 final state by removing loop check; adding protection for low value of
1386 mother mass.</LI>
1387 <LI>G4NucleiModel: replace Kossov parameterization of gammaQDxsec with new
1388 values coming from smooth line through deuteron photo-disintegration
1389 data which include 2004 JLab data up to 3 GeV.
1390 Fix in <TT>boundaryTransition()</TT> to prevent glancing incidence at
1391 shell boundaries from reflecting too many times.</LI>
1392 <LI>G4CascadeT11pizNChannel, G4CascadeT31piNChannel, G4CascadeT33piNChannel:
1393 re-ordered particle types in final state arrays so that pion is first
1394 and nucleon is second. Two body final state methods assume this.</LI>
1395 <LI>G4CascadeKminusNChannel, G4CascadeKminusPChannel, G4CascadeKplusNChannel,
1396 G4CascadeKplusPChannel, G4CascadeKzeroBarNChannel,
1397 G4CascadeKzeroBarPChannel, G4CascadeKzeroNChannel, G4CascadeKzeroPChannel:
1398 same as above but re-ordered only for two- and three-body final states.</LI>
1399 <LI>G4CascadeT1GamNChannel: re-ordered final state particle types so that
1400 mesons are first in two- and three-body cases.</LI>
1401 <LI>G4CascadeParamMessenger: added description to /process/had/ directory.
1402 Addressing problem report
1403 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2020">#2020</A>.</LI>
1404 <LI>Fix in <TT>G4PreCompoundDeexcitation::deExcite()</TT> to not use const
1405 reference as input since G4PreCompound can change the fragment and
1406 upset the energy balance. In <TT>G4CollisionOutput::getTotalCharge()</TT>,
1407 subtract electron charges in case of internal conversion in
1408 G4PreCompound.
1409 In <TT>G4CascadeCheckBalance::collide()</TT>, convert fragment momentum
1410 given in <TT>MeV</TT> to <TT>GeV</TT> (Bertini units) and remove
1411 electrom masses from energy balance when internal conversion occurs.
1412 Addesses problem report
1413 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2096">#2096</A>
1414 for energy non-conservation.</LI>
1415 </UL></LI>
1416 <LI><B>De-excitation</B>
1417 <UL>
1418 <LI>G4ChatterjeeCrossSection, G4KalbachCrossSection: moved implementation
1419 to source.</LI>
1420 <LI>G4VEmissionProbability, G4EvaporationProbability: fixed integration
1421 of probabilities for neutron emission for OPT=1,2.</LI>
1422 <LI>G4NeutronRadCapture: replaced the explicit high-energy limit of
1423 hadronic physics with the one from G4HadronicParameters.</LI>
1424 <LI>G4FermiPhaseSpaceDecay: moved long method from inline to source;
1425 added a protection for low mass of initial state.</LI>
1426 <LI>G4LevelReader: attempt to adress problem reports
1427 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1986">#1986</A>
1428 and
1429 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2076">#2076</A>
1430 by changing hadling of internal conversion data.</LI>
1431 <LI>G4LevelReader: changed fatal exception by warning for problematic
1432 level index.</LI>
1433 <LI>G4LevelReader: changed <TT>fAlphaMax</TT> from 1.e+6 to 1.e+15 for correct
1434 IC probability of some isotopes.</LI>
1435 <LI>G4DeexPrecoParameters: fixed checks on parameter values.</LI>
1436 <LI>G4DeexPrecoParameters: set default deexcitation "evaporation+GEM".</LI>
1437 <LI>G4DeexPrecoParameters: set default level density parameter to 0.075.</LI>
1438 <LI>G4DeexPrecoParameters: added extra parameter for the FBU model.</LI>
1439 <LI>G4FermiFragmentsPoolVI: extended number of FBU fragments from
1440 399 to 991 and corresponding number of reaction channels.</LI>
1441 <LI>G4EvaporationProbability, G4CompetitiveFission, G4VEmissionProbability,
1442 G4PhotonEvaporation: coherent use of the same parameterisation of level
1443 density and pairing correction between all models.</LI>
1444 <LI>G4CompetitiveFission, G4FissionLevelDensityParameter,
1445 G4FissionLevelDensityParameterINCLXX, G4FissionProbability:
1446 tuned fission parameters.</LI>
1447 <LI>G4EvaporationProbability: added option 4 for de-excitation.</LI>
1448 <LI>G4LevelManager: added shell correction data and its accessor.</LI>
1449 <LI>G4LevelManager, G4NuclearLevelData, G4LevelReader: added intialisation
1450 of level density and pairing correction per isotope, added possibility
1451 to choose between two parameterisations of level density.</LI>
1452 <LI>G4FissionLevelDensityParameter, G4FissionLevelDensityParameterINCLXX,
1453 G4EvaporationLevelDensityParameter, G4CoulombBarrier, G4PairingCorrection:
1454 clean up according G4NuclearLevelData.</LI>
1455 <LI>G4UnstableFragmentBreakUp: fixed Coverity defect.</LI>
1456 <LI>G4ExcitationHandler: added protection to verbosity printouts in
1457 <TT>SetDeexChannelsType()</TT> and <TT>Initialise()</TT> methods.</LI>
1458 <LI>G4PhotonEvaporation: improved debug printout.</LI>
1459 <LI>Fixed few printout typos.</LI>
1460 <LI>Fixed Coverity defects.</LI>
1461 </UL></LI>
1462 <LI><B>Elastic scattering</B>
1463 <UL>
1464 <LI>Update to G4hhElastic to take into account recent TOTEM data for
1465 proton-proton at <TT>13 TeV</TT>.</LI>
1466 <LI>Added new class G4DiffuseElasticV2. The underlying physics model is
1467 the same as in G4DiffuseElastic, however, the code has been revised,
1468 cleanup and significantly improved in a number of places.
1469 The performance has been improved by a factor of ~2 with respect
1470 to the original implementation. The approximation of small angles
1471 has been dropped (replaced by exact calculation) as it was not
1472 bringing any visible benefits.</LI>
1473 <LI>Set to <TT>100 TeV</TT> (instead of <TT>1 TeV</TT>) the upper limit
1474 of applicability for the model G4DiffuseElastic and G4DiffuseElasticV2
1475 (the number of equally-sized logarithmic energy bins has been increased
1476 from 200 to 250 to keep the same bin size, 0.04).
1477 The model has been validated with experimental data up to <TT>300 GeV</TT>,
1478 but it should not give meaningless results well above this energy.
1479 The number of bins has been further increased from 250 to 300 in order
1480 to have no larger bins up to <TT>10 PeV</TT>.</LI>
1481 <LI>Replaced the explicit high-energy limit of hadronic physics with the
1482 one from G4HadronicParameters.</LI>
1483 <LI>G4AntiNuclElastic: use cross-section component from
1484 G4CrossSectionDataSetRegistry and properly delete it at the end
1485 of run.</LI>
1486 <LI>G4NuclNuclDiffuseElastic: replaced the high-energy limit of
1487 applicability of the model from <TT>1 TeV</TT> to the value specified
1488 in G4HadronicParameters.</LI>
1489 <LI>G4AntiNuclElastic: do not delete component at the end of run.</LI>
1490 <LI>G4HadronElastic: fixed numberical instability when final kinetic
1491 energy of projectile is nearly zero.</LI>
1492 </UL></LI>
1493 <LI><B>INCLXX</B>
1494 <UL>
1495 <LI>Updated to INCL++ v6.28.</LI>
1496 <LI>Improved strangeness and few nucleon removal (HFB).</LI>
1497 <LI>Fixed mass of a light hypernucleus (Z=1,A=2). Fixed various bugs.</LI>
1498 <LI>Checked porting with C++17 enabled.</LI>
1499 <LI>Requiring new G4INCL-1.0 data set and corresponnding G4INCLDATA path
1500 environment variable.</LI>
1501 <LI>Use G4RandGauss for Gaussian random distribution, to reduce cases of
1502 event non-reproducibility.</LI>
1503 <LI>Changed Adapter::operator()() in G4INCLRandom to make direct use of
1504 <TT>G4RandFlat::shootInt(n)</TT>. Fixes FPE errors occurring in MT mode
1505 optimised.</LI>
1506 <LI>Fixed few printout typos.</LI>
1507 </UL></LI>
1508 <LI><B>Lend</B>
1509 <UL>
1510 <LI>MCGIDI_misc: fixed printout typo.</LI>
1511 </UL></LI>
1512 <LI><B>Lepto-nuclear</B>
1513 <UL>
1514 <LI>G4NeutrinoElectronCcModel: added extra interfaces.
1515 Also fixed Coverity defect.</LI>
1516 <LI>G4NeutrinoElectronCcModel: replaced the explicit high-energy limit
1517 of hadronic physics with the one from G4HadronicParameters.</LI>
1518 </UL></LI>
1519 <LI><B>Particle High Precision</B>
1520 <UL>
1521 <LI>G4ENDFTapeRead, G4FissionProductYieldDist: fixed compilation warnings
1522 on gcc 8.1.0, regarding catching polymorphic type by value, instead of
1523 by reference.</LI>
1524 <LI>G4ParticleHPElementData: removed unnecessary inheritance from
1525 G4HadronicCrossSection.</LI>
1526 <LI>Fixed incorrect sampling of isotropic distribution.
1527 Addressing problem report
1528 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1745">#1745</A>.</LI>
1529 <LI>Fixed gamma level mismatch in G4ParticleHPInelasticCompFS.
1530 Not a complete fix because gamma data comes from ENSDF and does not
1531 necessarily match excitations in ENDF. Addressing problem report
1532 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1789">#1789</A>.</LI>
1533 <LI>Fixed memory leaks in <TT>G4ParticleHPContEnergyAngular::Sample()</TT> and
1534 <TT>G4ParticleHPContAngularPar::cacheInit()</TT>. Addressing problem report
1535 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2026">#2026</A>.</LI>
1536 <LI><TT>G4ParticleHPCaptureFS::ApplyYourself()</TT>: Lorentz boost of neutron into
1537 target frame was backwards; reversed it. Also replaced <TT>SetDefinition()</TT>
1538 with <TT>SetDefinitionAndUpdateE()</TT>. Addresses problem report
1539 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1919">#1919</A>.</LI>
1540 <LI>Fixed definition of singletons for G4ParticleHPManager and
1541 G4ParticleHPThreadLocalManager and some code cleanup.
1542 Made G4ParticleHPThreadLocalManager a G4ThreadlLocalSingleton to avoid
1543 memory leaks generated each time a thread creates the instance.</LI>
1544 <LI>Fixed bug for double allocation of G4ParticleHPReactionWhiteBoard in
1545 <TT>G4ParticleHPThreadLocalManager::OpenReactionWhiteBoard()</TT>.</LI>
1546 <LI><TT>G4ParticleHPElasticFS::ApplyYourself()</TT>: use correct reference frames for
1547 calculation of projectile and target momenta. Correction made for cases
1548 when <TT>cos(Theta)</TT> is given in lab frame and in center of momentum frame.
1549 Partial fix of momentum non-conservation for problem report
1550 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1918">#1918</A>.</LI>
1551 <LI>Fixed potential leaks in G4ParticleHPPhotonDist, G4ParticleHPContAngularPar
1552 and G4ParticleHPFinalState for use of pointers cached in G4Cache.</LI>
1553 <LI>Minor code cleanup and formatting.</LI>
1554 </UL></LI>
1555 <LI><B>Parton-String</B>
1556 <UL>
1557 <LI>In the string fragmentation part of the FTF model, first implementation
1558 of rotating strings with introduction of Mt distribution of hadrons.
1559 Parameters are tuned using NA49 experimental data on pp-interactions.
1560 Good results are obtained for Pi+-, K+-.
1561 For P and Pbar <Pt> - xF correlations need still improvement.</LI>
1562 <LI>Major revision of QGS model; implemented Reggeon cascading and
1563 associated "Fermi motion". Implemented new algorithm of parton
1564 kinematical properties determination and calculation of residual
1565 nucleus properties. Adjusted G4GammaParticipants to the revised
1566 model.
1567 Cut non-vacuum reggeons are interpreted as a creation of a single
1568 string, or as a single string creation and one "stable" hadron.
1569 Such processes are described by RRR diagram of Reggeon phenomenology.</LI>
1570 <LI>Improved energy-momentum conservation in the QGS model, especially
1571 in the case of diffraction interactions.</LI>
1572 <LI>Major improvement of QGS model: Pomeron parameters are set up according to
1573 A.Kaidalov and M.Poghosyan (2009-2010). Non-vacuum reggeons: f and
1574 omega, are included in the calculations using parameters by A.Kaidalov
1575 and M.Poghosyan (2009-2010).</LI>
1576 <LI>New class G4Reggeons for calculations of cross-sections in QGS model.</LI>
1577 <LI>Introduced new class G4QuarkExchange for implementation of quark
1578 exchange process in QGS model.</LI>
1579 <LI>G4QGSParticipants: implementation of quark-exchange simulation in
1580 the QGS model. Fix for nucleon state counter. Minor fix to avoid
1581 FPE observed only in optimized mode.</LI>
1582 <LI>G4VPartonStringModel: throw exception for the case when string
1583 fragmentation does not produce hadrons (for both FTF and QGS models).</LI>
1584 <LI>In the QGS model, cleaned and improved G4SingleDiffractiveExcitation and
1585 G4QGSDiffractiveExcitation. Correction in G4SingleDiffractiveExcitation
1586 to treat h + N and Gamma + N diffraction.</LI>
1587 <LI>In the QGS model, changed G4MesonSplitter probabilities UUbar DDbar
1588 from (0.5, 0.5) to (0.8, 0.2) for gamma projectile.</LI>
1589 <LI>G4QGSMSplitableHadron: fixed bug in the case of gamma projectile with
1590 P_minus = 0 for the QGS model.</LI>
1591 <LI>G4ExcitedStringDecay: bug-fix in <TT>FragmentStrings()</TT> method (access
1592 to the first element of an empty vector: this is for both FTF and QGS
1593 string fragmentation). Increased the number of max attempts to
1594 fragment strings from 10 to 100. </LI>
1595 <LI>New tuning of FTF model parameters.</LI>
1596 <LI>Introduced various Pt^2 for diffractive and non-diffractive
1597 interactions in the FTF model, for NA49 and NA61/SHINE experimental data.</LI>
1598 <LI>Fine tuning in G4DiffractiveExcitation for the FTF model, to describe
1599 NA49 experimental data, especially, <Pt> on Xf.</LI>
1600 <LI>Fix to address the baryon puzzle of NA49 data for the FTF model;
1601 <Pt> of baryons 1/2 at a string fragmentation setting up at <TT>435 MeV/c</TT>,
1602 and Pt for baryons 3/2 production at <TT>900 MeV/c</TT>.</LI>
1603 <LI>Fine tuning of G4LundStringFragmentation (for the string fragmentation
1604 of the FTF model). Pt of mesons created at quark fragmentation is
1605 decreased. Pt of baryons created at quark and di-quark is increased.
1606 Corrected fragmentation functions of <TT>qq->B(1/2)</TT> and <TT>B(3/2)</TT>.
1607 Re-organized and cleaned up code; the variant is tuned using NA49
1608 experimental data on <TT>pp->p/pi/K +X</TT>.</LI>
1609 <LI>Introduced smearing of delta-isobar mass in the FTF model;
1610 delta-isobars are now treated as a kinetic track; improved
1611 parameterisation of the quark exchange process with excitation.
1612 NA61/SHINE exp. data on Pi+, Pi-, K+, K- and protons in PP interactions
1613 at 20, 31, 40, 80 and 158 <TT>GeV/c</TT> are now described. Now
1614 reproducing the ratio of <Strane Q>/<Normal Q> in PP
1615 interactions. Not describing kink in AA interactions.</LI>
1616 <LI>Improved di-quark fragmentation into baryons in Lund string
1617 fragmentation (used in the FTF model). Improved description of NA49 and
1618 NA61/SHINE experimental data on <TT>p+p->p+X</TT>. Improvements in
1619 the method SetMinimalStringMass(), relevant for Pbar P annihilation.</LI>
1620 <LI>In the FTF model, improved process probability parameterizations for
1621 Pi - Nucleon interactions. Good results are obtained for HARP data
1622 (<TT>p/Pi+/Pi- + A</TT> at <TT>3, 5, 8, 12 GeV/c</TT>) and for Pi N
1623 inclusive reactions.</LI>
1624 <LI>Corrected calculation of nuclear residual excitation energy in the FTF model.
1625 Fine tuning of the FTF model parameters.</LI>
1626 <LI>For the FTF model, set to false the switches for the A-dependence
1627 in nuclear destruction for baryon projectile in G4FTFParameters.
1628 Uncommented checks for these switches in the code. No changes in the
1629 random number sequence.</LI>
1630 <LI>Improved versions and tuning of Lund and QGS fragmentations
1631 (used, respectively, by FTF and QGS string models).</LI>
1632 <LI>G4LundStringFragmentation: bug fixes related to rotating strings
1633 in the FTF model.</LI>
1634 <LI>G4VLongitudinalStringDecay: removed useless caching in the method
1635 FragmentationMass() which was causing rare irreproducibilities in
1636 gamma-nuclear reactions (i.e. involving QGS).</LI>
1637 <LI>Improved QGS model and fixed issue of event reproducibility in
1638 gammma-nuclear.</LI>
1639 <LI>Fixed leak in <TT>G4QGSParticipants::GetList()</TT> for targets not deleted
1640 after interaction.</LI>
1641 <LI>G4QGSParticipants: introduced protection in the QGS model against
1642 negative squared mass in the method <TT>PutOnMassShell()</TT>, which was causing
1643 some rare crashes. If a negative squared mass occurs, a <TT>JustWarning</TT>
1644 exception is thrown and the squared mass is set to 0, before calling
1645 the square root (which is now computed only once).</LI>
1646 <LI>Moved G4PomeronCrossSection class to 'qgsm' module.</LI>
1647 <LI>G4FTFAnnihilation: fix to get flat <TT>cos(theta)</TT> and <TT>phi</TT>
1648 distributions for antiproton annihilation at rest in the FTF model.
1649 Added also a protection for the evaluation of the rapidity.</LI>
1650 <LI>G4FTFModel, G4DiffractiveExcitation, G4FTFAnnihilation: code
1651 improvements of the FTF model. No changes in physics output, but with
1652 possible differences in the random sequence, due to numerical effects
1653 caused by re-ordering of operations.</LI>
1654 <LI>G4LundStringFragmentation: tuning of strange - anti-strange probability
1655 production, for the FTF model, as a function of energy to describe
1656 NA61/SHINE <TT>31 GeV/c p-C</TT> data on <TT>K+ / K-</TT> production.
1657 Decreased also the Lambda0 production for NA61/SHINE <TT>158 GeV/c</TT>
1658 and <TT>31 GeV/c p-C</TT>: for the former good agreement,
1659 while for the latter the simulation underestimates the data.</LI>
1660 <LI>G4QGSMFragmentation: implemented new algorithm for the last string decay
1661 a-la Lund. Improved the algorithm to stop the fragmentation of QGS strings.
1662 Tuning of parameters with NA49 and NA61/SHINE data was performed.</LI>
1663 <LI>G4Reggeons: improved cross-sections of K-meson - nucleon interactions
1664 in the QGS model. Taken into account Pomeron and 2 non-vacuum exchanges.
1665 Initial parameters for kaons are taken from Kaidalov's paper (1976).
1666 Improved gamma-nucleon cross-sections by tuning of parameters.</LI>
1667 <LI>Fix in <TT>G4FTFModel::GetStrings()</TT> to return a vector with
1668 size zero in wrong conditions for FTF.</LI>
1669 <LI>G4VPartonStringModel: in cases of wrong conditions for the QGS model,
1670 the initial particle/nucleus is returned, according to a similar fix in
1671 FTF model.</LI>
1672 <LI>Fixed handling of wrong conditions for the QGS model when it is unable
1673 to generate strings.</LI>
1674 <LI>Fixed few printout typos and minor code cleanup.</LI>
1675 <LI>Fixed Coverity defects.</LI>
1676 </UL></LI>
1677 <LI><B>Pre-equilibrium</B>
1678 <UL>
1679 <LI>G4PreCompoundEmission, G4PreCompoundFragment, G4PreCompoundNucleon:
1680 fixed computations for OPT=1,2.</LI>
1681 <LI>G4PreCompoundModel: fixed initialisation.</LI>
1682 <LI>G4PreCompoundFragmentVector: moved inlined methods to source.</LI>
1683 <LI>G4VPreCompoundFragment, G4HETCChargedFragment, G4HETCFragment,
1684 G4HETCNeutron, G4PreCompoundFragment, G4PreCompoundIon,
1685 G4PreCompoundNucleon, G4PreCompoundModel, G4PreCompoundEmission,
1686 G4PreCompoundTransitions, G4GNASHTransitions: updated usage of level
1687 density parameterisation according to de-excitation model.</LI>
1688 </UL></LI>
1689 <LI><B>Quasi-Elastic</B>
1690 <UL>
1691 <LI>G4QuasiElRatios: removed unnecessary protection against heavy
1692 elements.</LI>
1693 </UL></LI>
1694 <LI><B>Radioactive Decay</B>
1695 <UL>
1696 <LI>G4ECCapture, G4RadioactiveDecay, G4RadioactiveDecayMode: added electron
1697 capture channel from the N Shell.</LI>
1698 <LI>G4ECCapture: added tables of PL2/PL1 PM2/PM1 and PN2/PN1 based on bound
1699 electrons radial wave amplitudes, taken from Bambynek et al., Rev. Mod.
1700 Phys., vol. 49, 1977.
1701 Compute partial probabilities of subshells PL1,PL2,PM1,PM2,PN1,PN2 from
1702 the tables PL2/PL1, PM2/PM1, and PN2/PN1. Valid for allowed transitions.</LI>
1703 <LI>G4RadioactiveDecay: enable printout of parameters within G4VERBOSE in
1704 <TT>BuildPhysicsTable()</TT>.</LI>
1705 </UL></LI>
1706 <LI><B>RPG</B>
1707 <UL>
1708 <LI>G4RPGAntiKZeroInelastic, G4RPGInelastic: fixed compilation warnings on
1709 gcc-8.1.0, regarding catching polymorphic type by value, instead of by
1710 reference.</LI>
1711 </UL></LI>
1712 </UL>
1713
1714 <A NAME="interc-notes">
1715 <H3><I>Intercoms</I></H3></A>
1716 <UL>
1717 <LI>Updated use of thread-local static variables to function returning
1718 a thread-local static reference. New model for allowing support of
1719 multi-threading on Windows DLLs.</LI>
1720 <LI>Fixed compilation warnings for not used return parameters.</LI>
1721 <LI>G4UIcommand: added comparison of two variables. Addressing problem report
1722 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2068">#2068</A>.</LI>
1723 </UL>
1724
1725 <A NAME="interf-notes">
1726 <H3><I>Interfaces</I></H3></A>
1727 <UL>
1728 <LI>Fixed parse error for empty lines.</LI>
1729 <LI>G4Xt: fixed compilation warnings for casts on gcc-8.1.0.</LI>
1730 <LI>Fixed compilation warnings for not used return parameters.</LI>
1731 <LI>Changed <TT>G4VInteractorManager::SecondaryLoop()</TT> to virtual
1732 to cope with OpenInventor Qt visualization driver.</LI>
1733 </UL>
1734
1735 <A NAME="materials-notes">
1736 <H3><I>Materials</I></H3></A>
1737 <UL>
1738 <LI>New class G4AtomicShells_XDB_EADL using experimental binding energy data
1739 from X-ray Data Book (XDB) where available and theoretical values otherwise.
1740 Removed old class G4AtomicShells_EADL.</LI>
1741 <LI>New class G4ICRU90StoppingData for ICRU90 data. Added method in G4NistManager
1742 to access G4ICRU90StoppingData; removed check forcing instantiation only in
1743 the master thread.</LI>
1744 <LI>G4ICRU90StoppingData, G4NistManager: fixed destruction of ICRU90 data.
1745 Fixed initialisation in G4ICRU90StoppingData.</LI>
1746 </UL>
1747
1748 <A NAME="part-notes">
1749 <H3><I>Particles</I></H3></A>
1750 <UL>
1751 <LI>Removed obsolete <TT>MaxNumberOfProducts</TT> enumerator in G4DecayProducts.</LI>
1752 <LI>Removed G4MUTEX_INITIALIZER from constructor in G4VDecayChannel.</LI>
1753 <LI>Updated use of thread-local static variables to function returning
1754 a thread-local static reference. New model for allowing support of
1755 multi-threading on Windows DLLs.</LI>
1756 <LI>Fixed case of energy non-conservation in muon decay, due to wrong
1757 calculation of 2-neutrino system in CM frame for muon decay channel
1758 with spin. Addressing problem report
1759 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2072">#2072</A>.</LI>
1760 <LI>Fixed proton momentum and direction in G4NeutronBetaDecay.
1761 Addressing problem report
1762 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2088">#2088</A>.</LI>
1763 <LI>Changed UI command directory for G4NuclideTable
1764 and removed obsolete class G4NucleiPropertiesTableAME03.</LI>
1765 <LI>Fix in muon decay channel with spin, for calculation of beta of
1766 a 2 neutrino system in CM frame. Addressing problem report
1767 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2072">#2072</A>.</LI>
1768 <LI>Code cleanup.</LI>
1769 </UL>
1770
1771 <A NAME="pers-notes">
1772 <H3><I>Persistency</I></H3></A>
1773 <UL>
1774 <LI>GDML:
1775 <UL>
1776 <LI>Clear auxiliary map information in <TT>G4GDMLReadStructure::Clear()</TT>.
1777 Addressing problem report
1778 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2064">#2064</A>.</LI>
1779 <LI>Added stripping of invalid characters for names generation in writer
1780 classes to prevent invalid NCName strings in exported GDML files.
1781 Adopt properly stripped generated strings for exporting names of
1782 optical surfaces.</LI>
1783 </UL></LI>
1784 </UL>
1785
1786 <A NAME="lst-notes">
1787 <H3><I>Physics lists</I></H3></A>
1788 <UL>
1789 <LI><B>Builders</B>:
1790 <UL>
1791 <LI>Replaced explicit high-energy limit of hadronic physics with the one
1792 from the new class G4HadronicParameters.</LI>
1793 <LI>OrderingParameterTable: added gamma and e- processes.</LI>
1794 <LI>G4FTFBinaryPiKBuilder, G4HyperonFTFPBuilder: improved deletion.</LI>
1795 <LI>In G4QGSBinaryPionBuilder, G4QGSBinaryPiKBuilder, G4QGSPPiKBuilder,
1796 G4FTFPPionBuilder, G4BertiniPiKBuilder, G4FTFPPiKBuilder,
1797 G4BertiniPionBuilder, G4FTFBinaryPiKBuilder, G4BinaryPiKBuilder,
1798 G4INCLXXPionBuilder, G4FTFBinaryPionBuilder, G4BinaryPionBuilder,
1799 G4QGSPPionBuilder, use Barashenkov-Glauber-Gribov inelastic
1800 cross-section for pions. This allows to avoid to use Gheisha
1801 cross-sections for pion inelastic on Hydrogen target.</LI>
1802 </UL></LI>
1803 <LI><B>Constructors</B>:
1804 <UL>
1805 <LI><U>decay</U>
1806 <UL>
1807 <LI>G4RadioactiveDecayPhysics: fixed initialisation ordering of
1808 messages to EM physics.</LI>
1809 </UL></LI>
1810 <LI><U>electromagnetic</U>:
1811 <UL>
1812 <LI>G4EmStandardPhysics, G4EmStandardPhysics_option1/2/4, G4EmLowEPPhysics,
1813 G4EmPenelopePhysics, G4EmLivermorePhysics, G4EmStandardPhysicsGS,
1814 G4EmLivermorePolarizedPhysics: use new parameter <TT>MscEnergyLimit()</TT>
1815 (default is <TT>100 MeV</TT>) allowing to customise transition from
1816 low-energy multiple scattering to high energy combination of
1817 multiple and single scattering.</LI>
1818 <LI>G4EmStandardPhysics_option1/2: use Livermore photo-effect model.</LI>
1819 <LI>G4EmStandardPhysics_option4, G4EmLivermorePhysics,
1820 G4EmPenelopePhysics: set upper energy limit to <TT>100 TeV</TT>.</LI>
1821 <LI>G4EmLowEPPhysics: use new 5D gamma conversion model below <TT>80 GeV</TT>,
1822 use new Lindhard-Sorensen ion ionisation model above <TT>20 MeV/u</TT>.</LI>
1823 <LI>Added new class G4GammaSuperProcess, for coherent handling of EM
1824 processes on gamma particles.
1825 G4EmStandardPhysics_option1: enable gamma super process.
1826 G4EmStandardPhysics: added possibility to use gamma super process.</LI>
1827 <LI>G4EmLowEPPhysics: added Bremsstrahlung and pair-production for ions.</LI>
1828 <LI>G4EmStandardPhysics_option4, G4EmLivermorePhysics, G4EmPenelopePhysics,
1829 G4EmPolarizedLivermorePhysics: use same Goudsmit-Saunderson multiple
1830 scattering model configuration and same configurations for hadrons
1831 and ions.</LI>
1832 <LI>G4EmLowEPPhysics: use same configurations for hadrons.</LI>
1833 <LI>Renamed G4GammaSuperProcess to G4GammaGeneralProcess.</LI>
1834 <LI>G4GammaGeneralProcess, G4EmStandardPhysics, G4EmStandardPhysics_option1,
1835 G4EmStandardPhysics_option4: updated usage of gamma general process.</LI>
1836 <LI>Added new constructors G4EmDNAPhysics_option8 and
1837 G4EmDNAChemistry_option1.</LI>
1838 <LI>G4EmStandardPhysics_option1: disabled general gamma process.</LI>
1839 <LI>G4EmLivermorePhysics, G4EmPenelopePhysics: set stepping function
1840 parameters for muons and hadrons to (<TT>0.2,50*um</TT>).</LI>
1841 <LI>G4EmStandardPhysics_option3: set stepping function parameters for muons
1842 and hadrons to (<TT>0.2,50*um</TT>) and enable Mott corrections.</LI>
1843 <LI>G4EmStandardPhysics_option4: set stepping function parameters for
1844 muons and hadrons to (<TT>0.1,20*um</TT>).</LI>
1845 <LI>Use the most recent version of lateral displacement for the Urban
1846 model.</LI>
1847 <LI>G4EmParticles: extended list of particle (Bc+-, OmegaB, XiB,
1848 SigmaB).</LI>
1849 <LI>G4OpticalPhysicsMessenger, G4OpticalPhysics: fixed documentation.
1850 Addressing problem report
1851 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2020">#2020</A>.</LI>
1852 <LI>G4EmStandardPhysics_option4, G4EmStandardPhysics_option3: cleaned up
1853 definition of nuclear stopping process.</LI>
1854 <LI>G4EmStandardPhysics_option2: use the same models and parameters
1855 as in LHCb EM physics constructor.</LI>
1856 <LI>G4EmStandardPhysicsWVI: use Opt3 parameters; use new ATENA ion
1857 stopping model.</LI>
1858 <LI>G4EmLowEPPhysics: use Opt3 parameters; use Lindhard-Sorensen ion
1859 stopping model; use ICRU90 stopping for protons and alpha.</LI>
1860 <LI>G4EmStandardPhysics_option3: use Alg96 lateral displacement sampling.
1861 Addresses issue reported in EM processes HyperNews Forum #1516.</LI>
1862 <LI>G4EmLivermorePhysics: return back 5D gamma conversion model.</LI>
1863 <LI>G4EmDNAPhysics_option7: fix for electron models combination.</LI>
1864 <LI>G4EmDNAChemistry, G4EmDNAChemistry_option1: fixed typo in headers.</LI>
1865 </UL></LI>
1866 <LI><U>factory</U>:
1867 <UL>
1868 <LI>Moved G4_REFERENCE_PHYSCONSTR_FACTORY macro calls out of
1869 G4PhysicsConstructorRegistry., where they cause an implicit circular
1870 dependency when building granular libraries; moved into inline source
1871 where they can be included as necessary in a higher level compilation
1872 unit. REFERENCE macro calls can be made unique.</LI>
1873 <LI>Allow override of exclusion of G4RegisterPhysicsConstructors
1874 definitions when using WIN32 by setting USING_STATIC_LIBS.</LI>
1875 <LI>Code cleanup.</LI>
1876 </UL></LI>
1877 <LI><U>gamma_lepto_nuclear</U>:
1878 <UL>
1879 <LI>G4EmExtraPhysics, G4EmMessenger: added extra UI commands and
1880 modifiers to define flags for neutrinos and for neutrino-electron
1881 interactions.</LI>
1882 <LI>Removed G4MUTEX_INITIALIZER from constructor in G4EmExtraPhysics.</LI>
1883 <LI>G4BertiniElectroNuclearBuilder: replaced explicit high-energy limit
1884 of hadronic physics with the one from G4HadronicParameters.</LI>
1885 <LI>G4EmExtraPhysics, G4BertiniElectroNuclearBuilder: added enabling of
1886 G4GammaGeneralProcess.</LI>
1887 <LI>G4EmExtraPhysics, G4EmMessenger: added possibility of cross-section biasing
1888 for neutrino-nuclear process.</LI>
1889 </UL></LI>
1890 <LI><U>hadron_elastic</U>:
1891 <UL>
1892 <LI>G4HadronElasticPhysicsXS: fixed use of data for neutron capture
1893 in HP lists. Addressing problem report
1894 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2057">#2057</A>.</LI>
1895 <LI>G4HadronElasticPhysics: added service methods <TT>GetElasticProcess()</TT>,
1896 <TT>GetElasticModel()</TT> and <TT>AddXSection()</TT>.
1897 Code cleanup: use C++11 keywords; removed unnecessary statics.</LI>
1898 <LI>G4HadronElasticPhysicsHP, G4HadronElasticPhysicsPHP, G4HadronElasticPhysicsXS,
1899 G4HadronElasticPhysicsLEND: use inheritance from G4HadronElasticPhysics;
1900 removed most of static members; use of C++11 keywords.</LI>
1901 <LI>G4HadronDElasticPhysics, G4HadronHElasticPhysics: use of C++11 keywords.</LI>
1902 <LI>G4ChargeExchangePhysics, G4IonElasticPhysics, G4ThermalNeutrons:
1903 removed static members; use of C++11 keywords.</LI>
1904 <LI>G4HadronHElasticPhysics: for hyperon elastic cross-sections,
1905 replaced Chips cross-sections with Glauber-Gribov ones.</LI>
1906 <LI>G4HadronElasticPhysics, G4HadronElasticPhysicsXS: use G4BGGNucleonElasticXS
1907 cross-section for protons.</LI>
1908 <LI>Updated README.</LI>
1909 </UL></LI>
1910 <LI><U>hadron_inelastic</U>:
1911 <UL>
1912 <LI>G4HadronInelasticQBBC: use G4ParticleInelasticXS both for neutrons
1913 and protons.</LI>
1914 <LI>Replaced explicit high-energy limit of hadronic physics with the
1915 one from G4HadronicParameters.</LI>
1916 <LI>In all hadronic builders fixed use of data for neutron capture in HP
1917 lists; fixed configuration of capture and fission models and
1918 cross-sections. Addressing problem report
1919 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2057">#2057</A>.</LI>
1920 <LI>G4HadronInelasticQBBC, G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BIC:
1921 clean-up model and cross-section configurations for neutrons.</LI>
1922 <LI>Fixed possible double deletion of builders objects at the end of a
1923 run.</LI>
1924 <LI>G4HadronPhysicsQGSP_BIC_AllHP: rewritten physics constructor for
1925 QGSP_BIC_AllHP, consistently with QGSP_BIC_HP (this fixes the
1926 problem of two fully overlapping neutron-capture models).</LI>
1927 <LI>G4HadronPhysicsQGSP_BIC, G4HadronPhysicsQGSP_BIC_HP,
1928 G4HadronPhysicsQGSP_BIC_AllHP: fixed C++11 keyword.</LI>
1929 <LI>G4HadronInelasticQBBC, G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGS_BIC,
1930 G4HadronPhysicsQGSP_BIC_AllHP: do not fill internal structure for
1931 cross-sections.</LI>
1932 <LI>G4VHadronPhysics: added extra method.</LI>
1933 <LI>G4HadronInelasticQBBC: removed more statics variables.</LI>
1934 <LI>G4HadronPhysicsFTFP_BERT_TRV: for hyperon inelastic cross-sections,
1935 replaced Chips cross-sections with Glauber-Gribov ones.</LI>
1936 <LI>G4HadronPhysicsFTFQGSP_BERT: use BGG pion cross-section consistently
1937 with all other physics lists.</LI>
1938 <LI>G4HadronInelasticQBBC: use BGG proton inelastic; fixed neutron
1939 cross-section.</LI>
1940 <LI>G4HadronPhysicsShielding, G4HadronPhysicsShieldingLEND: rewritten
1941 to cure memory leaks.</LI>
1942 </UL></LI>
1943 <LI><U>ions</U>:
1944 <UL>
1945 <LI>Major revision of all ion builders: reduced number of thread-local
1946 variables; simplified class constructors; for QMD, INCLXX, XS enabled
1947 combined list of de-excitation channels; use max energy from
1948 G4HadronicParameters and do not instantiate FTFP model if this
1949 energy is below max energy of the cascade; G4IonBinaryCascadePhysics
1950 is now identical to G4IonPhysics.</LI>
1951 <LI>G4IonPhysics, G4IonBinaryCascadePhysics, G4IonPhysicsPHP: replaced
1952 explicit high-energy limit of hadronic physics with the one from
1953 G4HadronicParameters.</LI>
1954 <LI>G4IonPhysicsXS: new constructor in which ParticleXS cross-sections
1955 are used for light ions.</LI>
1956 <LI>G4IonPhysics: clean-up, removed unnecessary statics.</LI>
1957 </UL></LI>
1958 </UL></LI>
1959 <LI><B>Lists</B>:
1960 <UL>
1961 <LI>Use new G4RegisterPhysicsConstructors inline definitions to ensure that
1962 for static builds G4PhysicsConstructorRegistry is populated.</LI>
1963 <LI>No longer register ShieldingLEND as a wrapper, but use explicit one.</LI>
1964 <LI>LBE: replaced the explicit high-energy limit of hadronic physics
1965 with the one from G4HadronicParameters.</LI>
1966 <LI>QGSP_BIC_HP and QGSP_BIC_AllHP use EM Opt4 (instead of EM Opt0 as before).</LI>
1967 <LI>QBBC: use G4IonPhysicsXS.</LI>
1968 <LI>PhysListFactory: added extra EM option "EM0", enabling default Opt0
1969 EM physics configuration.</LI>
1970 <LI>Shielding, ShieldingLEND, QGSP_BIC, QGSP_BIC_HP, QGSP_BIC_AllHP: moved
1971 implementation to source, removed templates.</LI>
1972 <LI>Added "EM0" option to g4alt::G4PhysListFactory (via G4PhysListRegistry).</LI>
1973 <LI>PhysListFactory: added extra EM options <TT>WVI</TT> and <TT>_EM</TT>.</LI>
1974 <LI>Shielding: replaced use of env variable G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS
1975 with a call to <TT>G4ParticleHPManager::SetProduceFissionFragments()</TT>.
1976 Resolving Valgrind memory run-time errors.</LI>
1977 </UL></LI>
1978 <LI><B>Util</B>:
1979 <UL>
1980 <LI>G4PhysListUtil: added methods <TT>GetCaptureProcess()</TT> and
1981 <TT>GetFissionProcess()</TT>.</LI>
1982 <LI>G4DataQuestionaire: substituted G4NEUTRONXSDATA with G4PARTICLEXSDATA.</LI>
1983 </UL></LI>
1984 </UL>
1985
1986 <A NAME="run-notes">
1987 <H3><I>Run</I></H3></A>
1988 <UL>
1989 <LI><U>Threading</U>
1990 <UL>
1991 <LI>Replaced pthread-style <TT><void*(void*)></TT> function
1992 signatures with <TT><void(G4WorkerThread*)></TT> as it is now
1993 unnecessary.</LI>
1994 <LI>Removed WIN32 conditional for G4THREADCREATE in
1995 G4UserWorkerThreadInitialization, no longer needed.</LI>
1996 <LI>Changed G4Thread to G4NativeThread when setting pin affinity in
1997 G4WorkerThread.</LI>
1998 <LI>Updated use of thread-local static variables to function returning
1999 a thread-local static reference. New model for allowing support of
2000 multi-threading on Windows DLLs.</LI>
2001 </UL></LI>
2002 <LI>Added TiMemory auto-timer macros to some key functions in G4RunManager,
2003 G4RunManagerKernel, G4MTRunManager, and G4MTRunManagerKernel.</LI>
2004 <LI>Added TiMemory libraries and includes to CMake script for optional use.
2005 <LI>G4WorkerThread: use G4GeometryWorkspace and G4SolidsWorkspace the same
2006 way as the other workspaces, through the templated worskspace pool class.</LI>
2007 <LI>G4PhysicsListHelper: added two new EM physics process types.</LI>
2008 <LI>Minor update to G4Run constructor to invoke G4StatAnalysis::ResetCpuClock();
2009 this enables the calculation of the FOM for G4StatAnalysis without requiring
2010 each instance to hold it's own timer.</LI>
2011 <LI>Added calls to new G4VScoreNtupleWriter, if activated.
2012 The concrete utility class can implement automated storing of hits
2013 collections of G4THitsMap type (used by primitive scorers) with Geant4
2014 analysis tools.</LI>
2015 <LI>Added clearing of G4AssemblyStore in G4RunManager::ReinitializeGeometry().
2016 <LI>G4PhysicsListHelper: added new methods to set low/high 'looper'
2017 thresholds in Transportation classes.
2018 <LI>G4RunMessenger, G4WorkerRunManager: fixed printout typos.</LI>
2019 </UL>
2020
2021 <A NAME="track-notes">
2022 <H3><I>Track & Tracking</I></H3></A>
2023 <UL>
2024 <LI>G4SteppingManager: remove unnecessary checks of process manager for
2025 generic ion and muonic atom.</LI>
2026 <LI>Updated use of thread-local static variables to function returning
2027 a thread-local static reference. New model for allowing support of
2028 multi-threading on Windows DLLs.</LI>
2029 <LI>Fixed potential memory leaks in assignment operator and copy constructor
2030 for G4Step and G4Track.</LI>
2031 <LI>G4VSteppingVerbose: reset singleton pointer in destructor.
2032 Addressing problem report
2033 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2095">#2095</A>.</LI>
2034 <LI>Added protection for potential null pointer dereferencing in G4Track.
2035 Addressing problem report
2036 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2097">#2097</A>.</LI>
2037 <LI>Some code cleanup.</LI>
2038 </UL>
2039
2040 <A NAME="vis-notes">
2041 <H3><I>Visualization</I></H3></A>
2042 <LI>Fixed compilation warnings on gcc-8.1.0.</LI>
2043 <UL>
2044 <LI><B>Management</B>
2045 <UL>
2046 <LI>Implemented UI command <TT>/vis/viewer/set/colourByDensity</TT>: simple
2047 algorithm to allow colouring of detector elements based on materials
2048 density.</LI>
2049 <LI>Introduced UI command <TT>/vis/drawLogicalVolume</TT>, synonymous with
2050 <TT>/vis/specify</TT>. Both commands create a new scene and invoke
2051 <TT>/vis/scene/add/logicalVolume</TT>. Includes overlap checking.</LI>
2052 <LI>Moved time window parameters from G4OpenGLStoredViewer to
2053 G4ViewParameters. Now one can interpolate time window parameters (using
2054 <TT>/vis/viewer/interpolate</TT>) and make a movie of particles moving
2055 through time. To do this, see guidance on <TT>/vis/viewer/set/timeWindow/</TT>
2056 commands.</LI>
2057 <LI>G4ViewParameters: fix for <TT>/vis/viewer/save</TT>.
2058 Completed <TT>PrintDifferences(), operator<<()</TT> and
2059 <TT>operator!=()</TT> for time window parameters.
2060 Provide proper Get and Set functions for time parameters.</LI>
2061 <LI>Moved time window commands to <TT>/vis/viewer/set/timeWindow/</TT>.
2062 Deprecated the equivalent <TT>/vis/ogl/set/</TT> commands.
2063 Copied <TT>/vis/ogl/set</TT> time window commands to
2064 <TT>/vis/viewer/set</TT>.</LI>
2065 <LI>G4VSceneHandler: reduced repetitive error messages.</LI>
2066 <LI>Improved some UI commands.</LI>
2067 <LI><TT>/vis/viewer/colourByDensity</TT>, changed defaults: algorithm 1
2068 is default; <TT>gm/cm3</TT> is the default unit; subsequent parameters
2069 are not omitable.</LI>
2070 <LI>Removed G4VViewer::G4Spline.</LI>
2071 <LI><TT>/vis/viewer/set/timeWindow/displayLightFront</TT>: changed defaults.</LI>
2072 <LI><TT>/vis/viewer/colourByDensity</TT>: changed defaults.</LI>
2073 <LI>Small bug fix in <TT>G4ViewParameters operator<<()</TT>.</LI>
2074 <LI><TT>/vis/drawVolume</TT> and <TT>/vis/scene/add/volume</TT> now draw
2075 all occurrences of a physical volume.</LI>
2076 <LI>Fixed bug for multiple worlds in <TT>/vis/touchable/dump</TT>.</LI>
2077 <LI>Reinstated G4VViewer::G4Spline.</LI>
2078 <LI><TT>/vis/scene/add/volume</TT> (and, consequently, <TT>/vis/drawVolume</TT>):
2079 improved guidance; describe the use of a regular expression.
2080 If physical-volume-name is "world" (the default), the top of the
2081 main geometry tree (material world) is added. If "worlds", the
2082 top of all worlds - material world and parallel worlds, if any - are
2083 added. Otherwise a search of all worlds is made.
2084 In the last case (a search of all worlds) all physical volume names are
2085 matched against the first argument of this command.</LI>
2086 <LI>G4VisManager: moved creation of top level commands to end so that
2087 they may pick up guidance and parameters from invoked commands.</LI>
2088 <LI><TT>/vis/drawVolume</TT> and <TT>/vis/draw/logicalVolume</TT>: pick up
2089 guidance and parameters from <TT>/vis/scene/add/...</TT>.</LI>
2090 <LI><TT>/vis/scene/add/trajectories</TT>: avoid adding new model if one
2091 exists. If no trajectories model exists in the scene create a new one...
2092 else it already exists and there is no need to add a new one
2093 because G4TrajectoriesModel simply describes trajectories in the
2094 trajectories store whatever the type.</LI>
2095 <LI>Added <TT>/vis/touchable/findPath</TT> UI command.</LI>
2096 <LI>Improved several other facilities for accessing touchables.</LI>
2097 <LI>Simplify scene checking and fixed minor bug.</LI>
2098 <LI>In <TT>/vis/scene/add/logicalVolume</TT>, enable overlap checking
2099 text-only output and drawing.</LI>
2100 <LI>Minor bug fixes in <TT>/vis/scene/add/userAction</TT> and
2101 <TT>/vis/drawLogicalVolume</TT>.</LI>
2102 </UL></LI>
2103 <LI><B>Modeling:</B>
2104 <UL>
2105 <LI>Implemented UI command <TT>/vis/viewer/set/colourByDensity</TT>.</LI>
2106 <LI>G4LogicalVolumeModel: added overlap checking.
2107 Fixed Coverity warning for unnecessary check on pointer.</LI>
2108 <LI>Extensive revision of handling of touchables.</LI>
2109 <LI>Added regex search. Match the string with the required match. The latter
2110 can be of the form "/regexp/", where regexp is a regular expression
2111 or a plain string, in which case there must be an exact match.</LI>
2112 <LI>Improved description of G4TrajectoriesModel.</LI>
2113 <LI>Initialise line width.</LI>
2114 <LI>G4LogicalVolumeModel: enable overlap checking text-only output and
2115 drawing.</LI>
2116 </UL></LI>
2117 <LI><B>OpenGL</B>
2118 <UL>
2119 <LI>Implemented <TT>G4OpenGLStoredViewer::AddPrimitiveForASingleFrame()</TT>.</LI>
2120 <LI>Updated G4CONDITIONWAIT(...) to new C++11 requirements.</LI>
2121 <LI>G4OpenGLQtViewer: replaced explicit usage of G4Mutex locking/unlocking
2122 with G4AutoLock pointers initialized with <TT>std::defer_lock</TT> as this
2123 enables one to avoid any deadlock or non-locked condition_variable
2124 waits by using <TT>G4AutoLock::owns_mutex()</TT>.</LI>
2125 <LI>Small bug fixes, including light front.</LI>
2126 <LI>Disable GL_LIGHTING for 3D markers.</LI>
2127 <LI>G4LogicalVolumeModel: added overlap checking (printing only for now).
2128 Avoid multiple printing of overlaps. Print only first time for a given
2129 instantiation of G4LogicalVolume.</LI>
2130 <LI>Added G4TouchableGlobalTransformScene: returning a pointer to the global
2131 transform of a touchable.</LI>
2132 <LI>Added G4TouchableUtils: implementing <TT>FindGlobalTransform()</TT>.</LI>
2133 <LI>Added <TT>setLineWidth()</TT> for trajectory models.</LI>
2134 <LI>Open header files to users. In all header files, changed guards
2135 (similarly for OPENGLX, XM, QT, WT and WIN32), so that a user may
2136 include the OpenGL headers and use the OpenGL library. This will be
2137 useful if a user (or a developer) wishes to write a new vis driver
2138 based on the existing OpenGL code.</LI>
2139 </UL></LI>
2140 <LI><B>OpenInventor</B>
2141 <UL>
2142 <LI>Implemented kernel visit for "colour by density".</LI>
2143 <LI>Enable InventorQt driver.</LI>
2144 <LI>Fixes to CMake build script; make OIQT driver installation optional.</LI>
2145 </UL></LI>
2146 <LI><B>Raytracer</B>
2147 <UL>
2148 <LI>Use HyperStep of G4ParallelWorldProcess to draw volumes defined in a
2149 parallel world.</LI>
2150 <LI>Updated use of thread-local static variables to function returning
2151 a thread-local static reference. New model for allowing support of
2152 multi-threading on Windows DLLs.</LI>
2153 <LI>Conform to revision of handling touchables.</LI>
2154 <LI>G4RTMessenger: fixed printout typos.</LI>
2155 </UL></LI>
2156 </UL>
2157
2158 <A NAME="env-notes">
2159 <H3><I>Environments</I></H3></A>
2160 <UL>
2161 <LI>G4Py:
2162 <UL>
2163 <LI>Updated interfaces for release 10.5.</LI>
2164 <LI>Fixed setting of CMAKE_INSTALL_PREFIX; addresses problem report
2165 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1924">#1924</A>.</LI>
2166 </UL></LI>
2167 </UL>
2168
2169 <A NAME="data-notes">
2170 <H3><I>Data sets</I></H3></A>
2171 <UL>
2172 <LI>New low-energy data set version, <B>G4EMLOW-7.7</B>:
2173 <UL>
2174 <LI>Updated microelec elastic cross-section files.</LI>
2175 <LI>Added new JAEA elastic model data files.</LI>
2176 <LI>Added new sampling table data for the Seltzer-Berger Bremsstrahlung
2177 model under brem_SB/SBTables.</LI>
2178 <LI>Added a new directory fluor_XDB_EADL with most recent data on binding
2179 energies including rare high Z elements.</LI>
2180 </UL></LI>
2181 <LI>New data files for proton and neutron density profiles <B>G4INCL-1.0</B>:
2182 <UL>
2183 <LI>New data set based on Hartree-Fock-Bogoliubov calculations for radius
2184 and diffuseness parameter for the proton and neutron density profiles.
2185 The data are used for the INCL++ model, as described in the following
2186 publications:<BR>
2187 - K.Bennaceur and J.Dobaczewski, Comput. Phys. Commun. 168, 96 (2005).<BR>
2188 - J.L.Rodriguez-Sanchez, J.-C.David, D.Mancusi, A.Boudard, J.Cugnon
2189 and S.Leray, Phys. Rev. C 96, 054602 (2017).</LI>
2190 </UL></LI>
2191 <LI>New data set version <B>G4PhotonEvaporation-5.3</B> for nuclear de-excitation
2192 data:
2193 <UL>
2194 <LI>Set IC coefficient = 1e20 for E0 gamma/IC transition of 809.907 keV
2195 in U234 (z92.a234). Correction needed for Pa234m decay simulation.
2196 Addressing problem report
2197 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2076">#2076</A>.</LI>
2198 <LI>Corrected typo in Te125 (z100.a247).</LI>
2199 </UL></LI>
2200 <LI>New data set version for radioactive-decay processes, <B>G4RadioactiveDecay-5.3</B>:
2201 <UL>
2202 <LI>Added capture from N shell for I-125, z53.a125. Data taken from DDEP.</LI>
2203 <LI>Added alpha decay line in z88.a223 (Ra223). Data taken from DDEP.</LI>
2204 <LI>Updated alpha decay in z86.a219 (Rn219). Data taken from DDEP.</LI>
2205 <LI>Correction of energy level in z85.a215 (At215).</LI>
2206 <LI>Slight update for alpha decay in z84.a215 (Po215).</LI>
2207 <LI>Added firstForbidden tag in beta decay channel of z83.a211 (Bi211).
2208 Data taken from DDEP.</LI>
2209 <LI>Added firstForbidden tags in beta decay channels of z81.a207 (Tl207).
2210 Data taken frpm DDEP.</LI>
2211 <LI>Update data for z37.a82 (Rb82). Data taken from DDEP.</LI>
2212 </UL></LI>
2213 <LI>New data files for evaluated cross-sections <B>G4PARTICLEXS-1.1</B>:
2214 <UL>
2215 <LI>New data set replacing G4NEUTRONXS; produced from G4NDL-4.5 for
2216 neutrons, G4TENDL-1.3.2 for p, d, t, He3, He4 and LEND1.3 for gamma.</LI>
2217 </UL></LI>
2218 <LI>New data set version for evaluated cross-sections from SAID database,
2219 <B>G4SAIDDATA-2.0</B>:
2220 <UL>
2221 <LI>Updated data for p,n,pi,k inelastic and elastic.</LI>
2222 <LI>Updated data for piN-->2piN and gamma induced reactions.</LI>
2223 </UL></LI>
2224 </UL></LI>
2225
2226 <A NAME="ex-notes">
2227 <H3><I>Examples</I></H3></A>
2228 <UL>
2229 <LI>Updated reference outputs, macros and scripts.</LI>
2230 <LI>Fixes for Doxygen documentation and coding guidelines.</LI>
2231 <LI>Updated reference outputs, macros, READMEs and scripts.
2232 <LI>Updated vis/UI setup. Removed no longer needed G4VIS/UI_USE.
2233 <LI>Added inclusion of G4Types.hh in files for self-consistency.
2234 <LI>Fixed compilation warning on gcc-8.1.0.
2235 <LI><B><U>advanced</U></B>
2236 <UL>
2237 <LI><B>air_shower</B>
2238 <UL>
2239 <LI>Drop detector configuration through preprocessor directives. Use
2240 detector messenger instead.
2241 Reorganised and simplified code in UltraDetectorConstruction.
2242 Geometry can now be changed in the same interactive session.
2243 Allow to remove reflecting surface.</LI>
2244 <LI>Reorganised macros. Added new macros.</LI>
2245 <LI>No default PrimaryGeneratorAction in UserActionInitialization.</LI>
2246 </UL></LI>
2247 <LI><B>brachytherapy</B>
2248 <UL>
2249 <LI>Included new brachy source (I-125 Oncura 6711).</LI>
2250 <LI>Added directory test_macro and included more analysis files.</LI>
2251 </UL></LI>
2252 <LI><B>ChargeExchangeMC</B>
2253 <UL>
2254 <LI>CexmcException: fixed typo in printout.</LI>
2255 </UL></LI>
2256 <LI><B>composite_calorimeter</B>
2257 <UL>
2258 <LI>General clean-up of the example including user actions and SD
2259 classes.</LI>
2260 </UL></LI>
2261 <LI><B>doiPET</B>
2262 <UL>
2263 <LI>New example simulating depth-of-interaction enabled positron
2264 emission tomography (PET) scanner.</LI>
2265 </UL></LI>
2266 <LI><B>gammaray_telescope</B>
2267 <UL>
2268 <LI>Fixed issues reported by Valgrind. Addressing problem report
2269 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=1981">#1981</A>.</LI>
2270 <LI>GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced explicit
2271 high-energy limit of hadronic physics with the one from
2272 G4HadronicParameters.</LI>
2273 </UL></LI>
2274 <LI><B>hadrontherapy</B>
2275 <UL>
2276 <LI>Added function DefineMaterial() in DetectorConstruction to define
2277 materials not contained in the NIST database.</LI>
2278 <LI>Added the Phase Space; PrimaryGenerator and DetectorSD modified
2279 accordingly.</LI>
2280 <LI>Added HadrontherapyRBE class for RBE calculation.</LI>
2281 <LI>Removed analysis for LET and dose.</LI>
2282 <LI>In HadrontherapyDetectorSD, added histograms for the energy
2283 deposited and kinetic energy in the phantom slices.</LI>
2284 <LI>TrentoProtonPassiveBeamLine changed in TIFPAProtonPassiveBeamLine.</LI>
2285 <LI>LET class completely renewed with new calculation approaches.</LI>
2286 <LI>Updated user interface initialisation in main().</LI>
2287 <LI>Code cleanup.</LI>
2288 </UL></LI>
2289 <LI><B>iort_therapy</B>
2290 <UL>
2291 <LI>Removed readout geometry together with Hit class. Including
2292 scoring mesh.</LI>
2293 <LI>Fixed bug in the way to delete the geometry of the disk.</LI>
2294 <LI>Removed analysis class.</LI>
2295 <LI>Removed G4Decay and IORTMatrix as no longer needed.</LI>
2296 <LI>Removed Protontherapy.</LI>
2297 <LI>IORTDetectorConstruction: fixed initialisation setting of inner
2298 radius for "DiscoIORT0" and "DiscoIORT1" components.
2299 Fixed typos in printout.</LI>
2300 </UL></LI>
2301 <LI><B>lAr_calorimeter</B>
2302 <UL>
2303 <LI>FCALTBEventAction: fixed typo in printout.</LI>
2304 </UL></LI>
2305 <LI><B>medical_linac</B>
2306 <UL>
2307 <LI>Simplified PhysicsList; fixing problems on Windows.</LI>
2308 <LI>Do not explicitly delete singletons, added extra initialisation.</LI>
2309 <LI>Do not trigger /run/beamOn during detector construction in
2310 ML2AcceleratorConstructionMessenger and ML2PhantomConstructionMessenger.</LI>
2311 <LI>Fixed typos in macros. Set Nloop=10 if the exp data are not provided.</LI>
2312 </UL></LI>
2313 <LI><B>microbeam</B>
2314 <UL>
2315 <LI>DetectorConstruction: removed user limits per volume; added
2316 protection from double initialisation.</LI>
2317 <LI>Use default random engine in <TT>main()</TT>.</LI>
2318 <LI>PhysicsListMessenger: set default step limit to 1 mm.</LI>
2319 <LI>StepMax: use thread safe class from EM extended examples.</LI>
2320 <LI>PhysicsList, PhysicsListMessenger: use StepMax.</LI>
2321 </UL></LI>
2322 <LI><B>nanobeam</B>
2323 <UL>
2324 <LI>Relaxed EM field settings.</LI>
2325 <LI>Simplified UI session and updated default.mac macro.</LI>
2326 </UL></LI>
2327 <LI><B>purging_magnet</B>
2328 <UL>
2329 <LI>Removed useless buffer singleton PurgMagAnalysisManager and
2330 call directly G4AnalysisManager tools.</LI>
2331 <LI>Clean-up in the SteppingAction.</LI>
2332 </UL></LI>
2333 <LI><B>underground_physics</B>
2334 <UL>
2335 <LI>DMXPhysicsList: replaced explicit high-energy limit of hadronic
2336 physics with the one from G4HadronicParameters.</LI>
2337 </UL></LI>
2338 <LI><B>xray_fluorescence</B>
2339 <UL>
2340 <LI>XrayFluoMercuryDetectorMessenger: fixed typo in printout.</LI>
2341 </UL></LI>
2342 </UL></LI>
2343 <LI><B><U>basic</U></B>
2344 <UL>
2345 <LI><B>B2</B>
2346 <UL>
2347 <LI>Modified default input macro exampleB2.in to reduce the output.</LI>
2348 </UL></LI>
2349 <LI><B>B3</B>
2350 <UL>
2351 <LI>Replaced explicit printing of Run ID with /run/printProgress.</LI>
2352 <LI>Added StatAnalysis to example B3b to demonstrate statistical
2353 computations.</LI>
2354 </UL></LI>
2355 <LI><B>B4</B>
2356 <UL>
2357 <LI>Replaced deprecated <TT>/vis/ogl/set/</TT> with
2358 <TT>/vis/viewer/set/timeWindow</TT> command in visualization
2359 macros.</LI>
2360 <LI>Fix to CMake configuration script.</LI>
2361 </UL></LI>
2362 </UL></LI>
2363 <LI><B><U>extended</U></B>
2364 <UL>
2365 <LI><B>analysis</B>
2366 <UL>
2367 <LI>Macro & commands review: removed obsolete /N03 top command
2368 directory; added protection against warnings issued from
2369 <TT>ReinitializeGeometry()</TT> if called in PreInit phase;
2370 added test for all commands defined in this example.</LI>
2371 <LI>Added missing include in DetectorConstruction source.</LI>
2372 <LI>New examples B3aScoreWriter and B4dScoreWriter based on basic
2373 example B3a and B4d respectively, demonstrating saving of scorers
2374 hits in form of n-tuples in a Root file using Geant4 analysis
2375 tools.</LI>
2376 </UL></LI>
2377 <LI><B>biasing</B>
2378 <UL>
2379 <LI><B>B03</B>
2380 <UL>
2381 <LI>B03PhysicsList: replaced explicit high-energy limit of
2382 hadronic physics with the one from G4HadronicParameters.</LI>
2383 </UL></LI>
2384 <LI><B>GB03</B>
2385 <UL>
2386 <LI>Fixed bug in GB03BOptnSplitOrKillOnBoundary in the
2387 computation of the killing probability.</LI>
2388 </UL></LI>
2389 </UL></LI>
2390 <LI><B>electromagnetic</B>
2391 <UL>
2392 <LI><B>TestEm2</B>
2393 <UL>
2394 <LI>DetectorConstruction: improved method names, do not allow to
2395 clear geometry between runs.</LI>
2396 <LI>StepMax: use thread safe instantiation, messenger merged with
2397 PhysicsListMessenger.</LI>
2398 <LI>Use MixMax default random number generator.</LI>
2399 <LI>PhysicsList: make Opt0 default, removed local instantiation of
2400 G4Decay.</LI>
2401 <LI>PhysListEm5DStandard: experimental PhysList with the new 5D
2402 gamma conversion model.</LI>
2403 <LI>Corrected input macros to optimise output.</LI>
2404 <LI>Run: added protection for division by zero.</LI>
2405 </UL></LI>
2406 <LI><B>TestEm3</B>
2407 <UL>
2408 <LI>DetectorConstruction: improved method names, do not allow to
2409 clear geometry between runs.</LI>
2410 <LI>StepMax: use thread safe instantiation, messenger merged with
2411 PhysicsListMessenger.</LI>
2412 <LI>Use MixMax default random number generator.</LI>
2413 <LI>Removed radioactive.mac input macro.</LI>
2414 <LI>PhysicsList: make Opt0 default, removed local instantiation
2415 of G4Decay.</LI>
2416 <LI>Corrected input macros to optimise output.</LI>
2417 </UL></LI>
2418 <LI><B>TestEm5</B>
2419 <UL>
2420 <LI>PhysListEm5DStandard: experimental PhysList with the new
2421 5D gamma conversion model.</LI>
2422 <LI>Added test of new ion ionisation model, which is included in
2423 the new physics constructor PhysListEm19DStandard;
2424 added atima.mac macro file to compare results with known data.</LI>
2425 <LI>StepMax: use thread safe instantiation, messenger merged with
2426 PhysicsListMessenger.</LI>
2427 <LI>Use MixMax default random number generator.</LI>
2428 <LI>Removed obsloete class PhysListEmStandardSSM.</LI>
2429 <LI>PhysicsList: make Opt4 default, removed local instantiation
2430 of G4Decay.</LI>
2431 <LI>Corrected input macros to optimise output.</LI>
2432 </UL></LI>
2433 <LI><B>TestEm7</B>
2434 <UL>
2435 <LI>SteppingAction: added edep at end of step for photo-electric.</LI>
2436 </UL></LI>
2437 <LI><B>TestEm8</B>
2438 <UL>
2439 <LI>Fix for thread safety in PrimaryGeneratorAction.</LI>
2440 <LI>Disabled tracking cuts in input macro TestEm8.in.</LI>
2441 <LI>Corrected input macros to optimise output.</LI>
2442 </UL></LI>
2443 <LI><B>TestEm11</B>
2444 <UL>
2445 <LI>SteppingAction: added edep at end of step for photo-electric.</LI>
2446 </UL></LI>
2447 <LI><B>TestEm12</B>
2448 <UL>
2449 <LI>Updated dna.mac input macro.</LI>
2450 </UL></LI>
2451 <LI><B>TestEm14</B>
2452 <UL>
2453 <LI>Extended with gamma -> e+ e- 5D conversion code.</LI>
2454 <LI>PhysicsList: added G4EmStandardPhysicsWVI, GS, SS.</LI>
2455 <LI>Use G4RotationMatrix to convert to gamma reference system.</LI>
2456 <LI>Use default random number generator.</LI>
2457 </UL></LI>
2458 <LI><B>TestEm15</B>
2459 <UL>
2460 <LI>SteppingAction: no conversion case protection, use directly
2461 <TT>G4ThreeVector::orthogonal()</TT> for coordinate axis
2462 definition.</LI>
2463 <LI>DetectorConstruction: use G4NistManager to allow predefined
2464 materials.</LI>
2465 <LI>Minor cosmetics in DetectorConstruction and SteppingAction
2466 classes.</LI>
2467 </UL></LI>
2468 <LI><B>TestEm18</B>
2469 <UL>
2470 <LI>Updated PhysListEmStandard, livermore, penelope.</LI>
2471 </UL></LI>
2472 </UL></LI>
2473 <LI><B>error_propagation</B>
2474 <UL>
2475 <LI>Use implicit destructor in ExErrorMagneticField.</LI>
2476 </UL></LI>
2477 <LI><B>exoticphysics</B>
2478 <UL>
2479 <LI><B>monopole</B>
2480 <UL>
2481 <LI>Changed G4MonopoleEquation to use G4MagneticField instead of
2482 not use G4ElectroMagneticField, as equations of motion do not
2483 use electric field.</LI>
2484 <LI>G4MonopolePhysics: fixed static analyzer warning.</LI>
2485 <LI>G4MonopoleTransportation: removed several static variables;
2486 fixed code layout.</LI>
2487 <LI>Define the field setup data in the DetectorConstruction class
2488 to be thread-local using G4Cache utility.</LI>
2489 <LI>Macro review and code clean-up.</LI>
2490 <LI>Updated <TT>main()</TT> to make possible passing the monopole
2491 setup in both batch and interactive mode.
2492 Removed run initialization and added init_vis.mac macro for
2493 interactive session.</LI>
2494 <LI>Added warning in G4MonopolePhysics when setting monopole
2495 parameters fails.</LI>
2496 <LI>Explicitly define physics lists (FTFP_BERT default).</LI>
2497 <LI>Added the default value of magnetic field to <TT>0.2 tesla</TT>
2498 and also setting of this value in monopole.in and init_vis.mac.</LI>
2499 <LI>Fixed updating geometry parameters after initialization
2500 by calling G4RunManager::ReinitializeGeometry() instead of
2501 GeometryHasBeenModified().</LI>
2502 <LI>Added printing production cuts table in
2503 RunAction::EndOfRunAction.</LI>
2504 </UL></LI>
2505 <LI><B>phonon</B>
2506 <UL>
2507 <LI>Update references for caustic and timing.</LI>
2508 </UL></LI>
2509 </UL></LI>
2510 <LI><B>field</B>
2511 <UL>
2512 <LI>Macro review and code clean-up: removed EventAction, RunAction,
2513 RunActionMessenger used only for storing random numbers, already
2514 available in kernel; added test for commands
2515 defined in the example at the end of the main input macro;
2516 improved visualization of geometry; added <TT>beamOn 10</TT> button
2517 in gui.mac; updated README files.</LI>
2518 <LI><B>BLineTracer</B>
2519 <UL>
2520 <LI>Fixed compilation error for missing header inclusion.</LI>
2521 </UL></LI>
2522 <LI><B>field01</B></LI>
2523 <UL>
2524 <LI>Added code in <TT>main()</TT> to demonstrate use of
2525 G4PhysicsListHelper's <TT>UseLowLooperThresholds()</TT> and
2526 <TT>UseHighLooperThresholds()</TT> methods.</LI>
2527 <LI>Added F01RunAction class to demonstrate fine grained control
2528 of G4[Coupled]Transportation's parameters for (killing) looping
2529 tracks (tracks which take too many iterations to finish
2530 integration; typically due to electrons in vacuum, but also
2531 can affect other charged particles).</LI>
2532 <LI>Enable use of FSAL stepper and driver (to use it uncomment
2533 line in <TT>main()</TT>).</LI>
2534 <LI>Added command <TT>/field/setField Bx By Bz unit</TT>.</LI>
2535 </UL></LI>
2536 <LI><B>field02</B></LI>
2537 <UL>
2538 <LI>Added command <TT>/field/setField Bx By Bz unit</TT>.</LI>
2539 </UL></LI>
2540 <LI><B>field03</B>
2541 <UL>
2542 <LI>Added commands <TT>/field/setField Bx By Bz unit</TT> and
2543 <TT>/field/setLocalField Bx By Bz unit</TT>.</LI>
2544 </UL></LI>
2545 <LI><B>field05</B></LI>
2546 <LI><B>field06</B>
2547 <UL>
2548 <LI>Macro review and code clean-up;
2549 added <TT>beamOn 10</TT> button in gui.mac.</LI>
2550 </UL></LI>
2551 </UL></LI>
2552 <LI><B>geometry/transforms</B>
2553 <UL>
2554 <LI><TT>DetectorConstruction::PlaceWithAxialRotations()</TT>: use
2555 <TT>rotate(angle, axis)</TT>.</LI>
2556 </UL></LI>
2557 <LI><B>hadronic</B>
2558 <UL>
2559 <LI>envHadronic: added env variables for particleHP.</LI>
2560 <LI><B>Hadr00</B>
2561 <UL>
2562 <LI>DetectorConstruction: cleanup geometry.</LI>
2563 </UL></LI>
2564 <LI><B>Hadr01</B>
2565 <UL>
2566 <LI>Cleaned up geometry definition.</LI>
2567 <LI>DetectorConstruction: minor improvement of printout.</LI>
2568 <LI>Added test macros.</LI>
2569 </UL></LI>
2570 <LI><B>Hadr02</B>
2571 <UL>
2572 <LI>Introduced CRMC (Cosmic Ray Monte Carlo) interface and created
2573 a physics list which uses this interface for very high energy
2574 hadronic interactions, while using FTFP_BERT for the rest.</LI>
2575 <LI>Replaced explicit high-energy limit of hadronic physics with
2576 the one from G4HadronicParameters.</LI>
2577 </UL></LI>
2578 <LI><B>Hadr03</B>
2579 <UL>
2580 <LI>PhysicsList: added G4HadronElasticPhysicsXS.</LI>
2581 </UL></LI>
2582 <LI><B>Hadr06</B>
2583 <UL>
2584 <LI>PhysicsList: use G4IonPhysicsXS.</LI>
2585 </UL></LI>
2586 <LI><B>Hadr07</B>
2587 <UL>
2588 <LI>PhysicsList: use G4IonPhysicsXS.</LI>
2589 <LI>SteppingAction: added edep at end of step for photo-electric.</LI>
2590 </UL></LI>
2591 <LI><B>NeutronSource</B>
2592 <UL>
2593 <LI>PhysicsList: activated use of GetHadronicModel() in
2594 <TT>ConstructProcess()</TT>.</LI>
2595 <LI>PhysicsList: use G4IonElasticPhysics and G4IonPhysicsXS.</LI>
2596 </UL></LI>
2597 </UL></LI>
2598 <LI><B>medical/DICOM</B>
2599 <UL>
2600 <LI>Enabled CMake package configuration. Added DICOM_USE_DCMTK and
2601 DICOM_USE_HEAD options backwards compatible with environment
2602 variables. Updated CMake scripts to handle DICOM_USE_HEAD setup
2603 and installation.</LI>
2604 <LI>DicomHandler implements GetDicomData{Path,File} which provides
2605 a fallback path to data libraries directory for DICOM2 and handles
2606 DICOM_USE_HEAD situation.
2607 Skipping 2 bytes in implicit VR (problem report
2608 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2101">#2101</A>).
2609 Corrected reading for 'fPixelSpacingY' (problem report
2610 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2102">#2102</A>).</LI>
2611 <LI>Phantom parameterization classes take an argument specifying color
2612 file.</LI>
2613 <LI>DicomEventAction doesn't print every event; removed
2614 <TT>DicomRun::RecordEvent()</TT> incrementing numberOfEvent (done
2615 by <TT>G4Run::RecordEvent()</TT>).</LI>
2616 <LI>Cleaned up output; now just a summary is provided and per-voxel
2617 is output to file only.</LI>
2618 <LI>Moved Data.dat to Data.dat.old and CMake copies correct
2619 Data.dat.{old,new} to Data.dat in binary directory based on
2620 DICOM_USE_DCMTK setting.</LI>
2621 <LI>Use canonical definition for DICOMRunAction; removed wrong
2622 singleton specification.</LI>
2623 <LI>DicomPartialDetectorConstruction: fixed shadowing of base class
2624 data for 'fMateIDs'. Fixed type conversion.</LI>
2625 <LI>Updated DICOMUtilities.cmake to handle Windows builds; using
2626 modern CMake DICOM::target library alias.</LI>
2627 </UL></LI>
2628 <LI><B>medical/DICOM2</B>
2629 <UL>
2630 <LI>New example demonstrating how to specialise and extend
2631 functionalities from DICOM example.</LI>
2632 </UL></LI>
2633 <LI><B>medical/dna</B>
2634 <UL>
2635 <LI>Removed use of obsolete RanecuEngine.</LI>
2636 <LI>chem5:
2637 <UL>
2638 <LI>New example, variation of chem4, showing how to activate
2639 chemistry code and score the radiochemical yield G.</LI>
2640 </UL></LI>
2641 <LI>dnaphysics:</LI>
2642 <LI>icsd:
2643 <UL>
2644 <LI>Activated ntuple merging.</LI>
2645 <LI>Updated plot.C for reading ntuples merged with row-wise
2646 mode (now default).</LI>
2647 </UL></LI>
2648 <LI>mfp:
2649 <UL>
2650 <LI>Rewritten physics list and macro mfp.in to avoid factory
2651 usage.</LI>
2652 </UL></LI>
2653 <LI>microyz:
2654 <UL>
2655 <LI>Activated ntuple merging.</LI>
2656 <LI>Updated plotting function.</LI>
2657 <LI>Updated plot.C for reading ntuples merged with row-wise
2658 mode (now default).
2659 </UL></LI>
2660 <LI>neuron:
2661 <UL>
2662 <LI>Fixed PhysicsList to allow running on Windows.</LI>
2663 </UL></LI>
2664 <LI>pdb4dna:
2665 <UL>
2666 <LI>Fixed analysis code.</LI>
2667 </UL></LI>
2668 <LI>slowing:
2669 <UL>
2670 <LI>Updated input script and code cleanup.</LI>
2671 </UL></LI>
2672 <LI>spower:
2673 <UL>
2674 <LI>Rewritten physics list and macro spower.in to avoid factory
2675 usage.</LI>
2676 </UL></LI>
2677 </UL></LI>
2678 <LI><B>medical/fanoCavity</B>
2679 <UL>
2680 <LI>ActionInitialization: added printout of Run::EndOfRun().</LI>
2681 <LI>PhysListEmStandard_GS, PhysListEmStandard_SS, PhysListEmStandard,
2682 PhysListEmStandard_WVI, PhysListEmStandard_option3: use the same
2683 EM parameters as in physics_lists module.</LI>
2684 <LI>Added PhysListEmStandard_option4.</LI>
2685 <LI>Updated physics lists according to settings in main module.</LI>
2686 </UL></LI>
2687 <LI><B>medical/fanoCavity2</B>
2688 <UL>
2689 <LI>Updated physics lists according to settings in main module.</LI>
2690 </UL></LI>
2691 <LI><B>optical/LXe</B>
2692 <UL>
2693 <LI>LXeDetectorConstruction: moved DefineMaterials() to constructor.</LI>
2694 <LI>Replaced local physics configuration with FTFP_BERT +
2695 G4OpticalPhysics/</LI>
2696 <LI>Deleted LXeEMPhysics, LXeGeneralPhysics, LXeMuonPhysics and
2697 LXePhysicsList.</LI>
2698 <LI>Removed class LXeSteppingVerbose.</LI>
2699 <LI>In input macros, removed <TT>/LXe/detector/update</TT> and added
2700 <TT>/run/initialize</TT>. General cleanup.</LI>
2701 <LI>Addressing problem report
2702 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2042">#2042</A>.</LI>
2703 <LI>Replaced local physics with FTFP_BERT + G4OpticalPhysics; deleted
2704 custom lists LXeEMPhysics, LXeGeneralPhysics, LXeMuonPhysics and
2705 LXePhysicsList; use G4EmStandard_option4 EM physics.</LI>
2706 <LI>Added LXeRun to record and print results at the end.</LI>
2707 <LI>Removed LXeSteppingVerbose and cleanup of macros.</LI>
2708 <LI>Removed LXeUserEventInformation, use LXeEventAction instead;
2709 removed LXeRecorderBase, replaced with LXeHistoManager.</LI>
2710 <LI>Removed unneeded direction named random.</LI>
2711 <LI>Fixed MT issue: random directory should not be set via EventAction,
2712 this functionality is moved to DetectorConstruction.</LI>
2713 <LI>LXeDetectorConstruction: removed definition of random number
2714 directory from the code, user may define this via UI command.</LI>
2715 </UL></LI>
2716 <LI><B>optical/OpNovice</B>
2717 <UL>
2718 <LI>Macro review: added test for <TT>/OpNovice/phys/cerenkovMaxPhotons</TT>
2719 command at the end of OpNovice.in macro; updated README files.</LI>
2720 </UL></LI>
2721 <LI><B>optical/OpNovice2</B>
2722 <UL>
2723 <LI>New example OpNovice2 for investigation of optical properties and
2724 parameters. Details of optical photon boundary interactions on a
2725 surface are recorded, as well as the details of optical photon
2726 generation and transport.</LI>
2727 </UL></LI>
2728 <LI><B>parallel</B>
2729 <UL>
2730 <LI><B>MPI</B>
2731 <UL>
2732 <LI>New example exMPI04 demonstrating merging n-tuples via MPI.</LI>
2733 <LI>Adapted g4mpi to allow to define an extra worker for collecting data
2734 from processing workers (needed for merging n-tuples).</LI>
2735 <LI>Added classes for n-tuple merging.
2736 <LI>In exMPI03: fixed warning from analysis when opening the second
2737 output file (dose-merged) within the same run.</LI>
2738 </UL></LI>
2739 <LI><B>TBB</B>
2740 <UL>
2741 <LI>Updated to work with migration from POSIX threads to C++11
2742 threads.</LI>
2743 </UL></LI>
2744 <LI><B>ThreadsafeScorers</B>
2745 <UL>
2746 <LI>TSPhysicsLists no longer declares G4VPhysicsConstructors in
2747 header.</LI>
2748 <LI>Added TiMemory timing to TSPrimaryGeneratorAction and G4Run.</LI>
2749 <LI>Added TiMemory ASCII output and serialization to <TT>main()</TT>.</LI>
2750 <LI>Fixed shadowing warnings.</LI>
2751 <LI>Removed G4MUTEX_INITIALIZER from constructors of G4TAtomicHits.</LI>
2752 <LI>Added scorers with G4StatAnalysis and G4ConvergenceTester.</LI>
2753 <LI>Improved scheme for using TiMemory to time how long the scoring
2754 takes w.r.t. storage container and PS.</LI>
2755 <LI>Included plot generation in main.</LI>
2756 </UL></LI>
2757 </UL></LI>
2758 <LI><B>persistency</B>
2759 <UL>
2760 <LI><B>gdml/G02</B></LI>
2761 <LI><B>gdml/G03</B>
2762 <UL>
2763 <LI>RunAction: removed visualisation command.</LI>
2764 </UL></LI>
2765 <LI><B>P02</B>
2766 <UL>
2767 <LI>Updated selection.xml file with new members of
2768 G4MaterialPropertiesTable.</LI>
2769 <LI>Fixed crash on reading due to duplication of materials in
2770 .root file. Addressing problem report
2771 <A HREF="http://bugzilla-geant4.kek.jp/show_bug.cgi?id=2065">#2065</A>.</LI>
2772 </UL></LI>
2773 </UL></LI>
2774 <LI><B>physicslist</B>
2775 <UL>
2776 <LI><B>shared</B>
2777 <UL>
2778 <LI>Copy script works whether include/src directories exist or not.</LI>
2779 </UL></LI>
2780 </UL></LI>
2781 <LI><B>radioactivedecay</B>
2782 <UL>
2783 <LI><B>Activation</B>
2784 <UL>
2785 <LI>envHadronic: added env variables for particleHP.</LI>
2786 <LI>PhysicsList: use G4IonElasticPhysics and G4IonPhysicsXS.</LI>
2787 </UL></LI>
2788 <LI><B>rdecay01</B>
2789 <UL>
2790 <LI>Add timeWindowBiased.mac input macro and data.</LI>
2791 </UL></LI>
2792 <LI><B>rdecay02</B>
2793 <UL>
2794 <LI>PhysicsList: in constructor, set nuclide table half-life
2795 threshold to <TT>0.1 ps</TT> and level tolerance to
2796 <TT>1.0 eV</TT>, to not miss short-lived nuclides.</LI>
2797 <LI>HistoManager, TrackingAction: added two histograms to look
2798 at <TT>0-0.1 MeV</TT>, and <TT>0-1 MeV</TT> ranges in particle
2799 emission spectra.</LI>
2800 <LI>Input macros: updated to latest UserEvapData_z83.a210,
2801 UserRadData_z82.a210, UserEvapData_z102.a252 database formats.
2802 Removed energy unit (<TT>keV</TT>) from call to <TT>/gun/ion</TT> in
2803 u238b.mac, po201m.mac and UserEvapDataBiTest.mac.</LI>
2804 </UL></LI>
2805 </UL></LI>
2806 </UL>
2807 </UL>
2808
2809 <HR>
2810
2811 </BODY>
2812 </HTML>