File indexing completed on 2025-01-18 09:16:07
0001 <HTML>
0002 <HEAD>
0003 <TITLE>Geant4 10.7 Release Notes</TITLE>
0004 </HEAD>
0005 <BODY BGCOLOR='F0F0F0'>
0006
0007 <P> </P>
0008 <BR>
0009 <P> </P>
0010
0011 <P ALIGN="Center">
0012 <FONT SIZE="+4" COLOR="#238E23">
0013 <B>Geant4 10.7 Release Notes</B>
0014 </FONT>
0015
0016 <TABLE WIDTH="100%">
0017 <TR><TD ALIGN="Right">
0018 <FONT SIZE="-1" COLOR="#5C3317">
0019 <B><I>December 4<SUP>th</SUP>, 2020</I></B>
0020 </FONT>
0021 </TD></TR>
0022 </TABLE>
0023
0024 <BR><BR>
0025 <HR ALIGN="Center" SIZE="7%">
0026 <P>
0027 The code and binary libraries for the supported systems are available
0028 through our <A TARGET="ext" HREF="http://cern.ch/geant4/support/download">Source
0029 Code Web page</A>.
0030 </P>
0031 <P>
0032 <I>We are grateful for the efforts of Geant4 users who have provided
0033 detailed feedback or comprehensive reports of issues.
0034 We thank in particular those who have contributed corrections,
0035 improvements or developments included in this release. </I>
0036 </P>
0037 <P>
0038 Please refer to the
0039 <A TARGET="ext" HREF="http://cern.ch/geant4/support/user_documentation">Geant4
0040 User Documentation</A> for further information about using Geant4.
0041 </P>
0042
0043 <H2><I>Contents</I></H2>
0044 <OL>
0045 <LI><A HREF="#1.">Supported and Tested Platforms</A></LI>
0046 <LI><A HREF="#2.">Supported CLHEP and VecGeom versions</A></LI>
0047 <LI><A HREF="#3.">Items for migration of the user code</A></LI>
0048 <LI><A HREF="#4.">New Developments and Capabilities</A></LI>
0049 <LI><A HREF="#5.">Expected effects on physics and performance</A></LI>
0050 <LI><A HREF="#6.">Known Run-Time Problems and Limitations</A></LI>
0051 <LI><A HREF="#7.">Compilation Warnings</A></LI>
0052 <LI><A HREF="#8.">Geant4 Software License</A></LI>
0053 <LI><A HREF="#9.">Detailed list of changes and fixes</A></LI>
0054 </OL>
0055
0056 <P> </P>
0057 <A NAME="1."></a>
0058 <HR>
0059
0060
0061
0062 <H2>1. Supported and Tested Platforms</H2>
0063
0064 Platforms:
0065 <UL>
0066 <LI>Linux, gcc-4.9.3.<BR>
0067 Tested on 64 bit architectures (Intel or AMD) with
0068 CERN CentOS Linux 7 (CC7) (based on CentOS Linux 7).</LI>
0069 <LI>MacOS 10.15 Catalina with Apple LLVM/Clang-12.0 (llvm/clang-10)</LI>
0070 <LI>Windows-10 with Visual C++ 14.28 (Visual Studio 2019)</LI>
0071 </UL>
0072
0073 More verified and tested configurations (64 bits):
0074 <UL>
0075 <LI>Linux, gcc-5.4/6.3/7.4/8.2/9.3/10.2, clang-8/9/10</LI>
0076 <LI>Linux, Intel-icc 19.1</LI>
0077 <LI>MacOS 10.14 Mojave with Apple LLVM/Clang-10/11</LI>
0078 <LI>MacOS 11 Big Sur with Apple LLVM/Clang-12 (Intel chips only)</LI>
0079 </UL>
0080
0081 <P> </P>
0082 <A NAME="2."></A>
0083 <HR>
0084
0085
0086
0087 <H2>2. Supported CLHEP and VecGeom version</H2>
0088
0089 This release of Geant4 requires and has been verified with
0090 <A TARGET="ext" HREF="http://cern.ch/clhep/">CLHEP</A>, release <B>2.4.4.0</B>.
0091 Use of a different CLHEP version may cause incorrect simulation results.<BR>
0092 NOTE: an internal module of the relevant CLHEP classes is provided and can be
0093 used as alternative to an external CLHEP library installation.<BR>
0094 A configuration option allows a Geant4 installation to use the
0095 <A HREF="https://gitlab.cern.ch/VecGeom/VecGeom/">VecGeom Library</A>
0096 primitives, to replace the original Geant4 solids. VecGeom version
0097 <B>1.1.8</B> is required when using such configuration.
0098
0099 <P> </P>
0100 <A NAME="3."></A>
0101 <HR>
0102
0103
0104
0105 <H2>3. Items for migration of the user code</H2>
0106
0107 Listed here is some relevant information on developments included in this
0108 release.
0109 Note that for all users a full re-installation of libraries (or a full
0110 re-compilation) and a re-compilation of user applications is required.
0111
0112 <P> </P>
0113 <B>General</B>
0114 <P> </P>
0115 <UL>
0116 <LI>Code using the G4MULTITHREADED preprocessor macro must include the
0117 <TT>G4Threading.hh</TT> header before using the macro.</LI>
0118 <LI>Minimum required version of CMake to build Geant4 is 3.8.
0119 Allow specification of C++20 for CMake 3.12 and above.</LI>
0120 </UL>
0121
0122 <P> </P>
0123 <B>Geometry, Fields and Transportation</B>
0124 <P> </P>
0125 <UL>
0126 <LI>The default integration method for field propagation in a pure magnetic
0127 field is changed to use a templated stepper G4TDormandPrince45.
0128 A speedup is expected.
0129 Instead a slowdown can occur if a large fraction of 'long' steps
0130 propagating in a vacuum or gas volume with a strong-enough magnetic field.
0131 To restore the previous method used in Geant4 10.6. set <TT>nullptr</TT>
0132 as third argument and the fourth argument <TT>stepperDriverId=4</TT> in
0133 the relevant constructor of G4ChordFinder.</LI>
0134 </UL>
0135
0136 <P> </P>
0137 <B>Electromagnetic and optical physics</B>
0138 <P> </P>
0139 <UL>
0140 <LI>Moved optical physics parameters to new G4OpticalParameters class.</LI>
0141 <LI>Added new threshold for muon/hadron bremsstrahlung and e+e- pair production
0142 allowing to stop a track when energy transfer exceeds the defined threshold
0143 and makes a new vertex.</LI>
0144 <LI>Added two extra sets of StepFunction parameters for light ions and generic
0145 ions. Added corresponding UI commands allowing one to customise step
0146 limitation for ions separately from step limits for electrons or hadrons.</LI>
0147 </UL>
0148
0149 <P> </P>
0150 <B>Hadronic physics</B>
0151 <P> </P>
0152 <UL>
0153 <LI>The UI commands for Radioactive Decay are named <TT>/process/had/rdm/...</TT>.
0154 The old commands <TT>/grdm/...</TT> are still valid, but deprecated,
0155 and will be removed in the next major release, Geant4 11.</LI>
0156 <LI>To enable building of ParticleHP as HP, use the new CMake option
0157 <TT>-GEANT4_BUILD_PHP_AS_HP=ON</TT> when building Geant4.
0158 The old environment variable <TT>PHP_AS_HP</TT> is still valid, but
0159 deprecated, and will be removed in the next major release.</LI>
0160 </UL>
0161
0162 <P> </P>
0163 <B>Data Sets</B>
0164 <P> </P>
0165 <UL>
0166 <LI>This release introduces new data set versions.
0167 Please see the corresponding details in
0168 <A href="#data-notes">Section 9</A> of this document.
0169 <UL>
0170 <LI>New data set versions: <TT>G4EMLOW-7.13, G4RadioactiveDecay-5.6,
0171 G4PhotonEvaporation-5.7, G4ENSDFSTATE-2.3, G4PARTICLEXS-3.1,
0172 G4RealSurface-2.2</TT>.</LI>
0173 <LI>In order to use <TT>ParticleHP</TT> for charged particles
0174 (protons, deuterons, tritons, He3 and alphas), an optional data
0175 set <TT>G4TENDL-1.3.2</TT> is required, and can be optionally
0176 downloaded in addition.</LI>
0177 </UL></LI>
0178 </UL>
0179
0180 <A NAME="4."></A>
0181 <HR>
0182
0183
0184
0185 <H2>4. New Developments and Capabilities </H2>
0186
0187 <B>General</B>
0188 <UL>
0189 <LI>Introducing new optional (Beta) tasking system, based on PTL
0190 (Parallel Tasking Library), dedicated run manager (G4TaskRunManager) and
0191 factory (G4RunManagerFactory), enabling use of tasks for the event loop.
0192 The tasking system is fully compatible with Intel TBB, which can be
0193 selected if GEANT4_USE_TBB=ON is specified when configuring CMake. The
0194 default behavior for tasking is to submit the tasks to an internal
0195 thread-pool and task-queue.</LI>
0196 <LI>Introduced general facilities based on GFlash implementation to facilitate
0197 multiple hit (energy & position) creation from fast simulation models.</LI>
0198 <LI>Updated SI constants, based on May 2019 redefinition of SI units.</LI>
0199 <LI>Added G4Backtrace header for printing backtraces from raised signals.
0200 Can be enabled by setting GEANT4_BUILD_BUILTIN_BACKTRACE option at
0201 configuration.</LI>
0202 <LI>New profiling settings for TiMemory which allow per-{run,event,track,step}
0203 profiling when GEANT4_USE_TIMEMORY is enabled.</LI>
0204 <LI>Extended CMake build system to support G4Py activation through
0205 GEANT4_USE_PYTHON flag.</LI>
0206 <LI>Simplified CMake builds to enable future modularisation of Geant4
0207 libraries.</LI>
0208 </UL>
0209
0210 <B>Analysis</B>
0211 <UL>
0212 <LI>Major upgrade of analysis module, including support for multiple files
0213 and multiple output types in the same run; defeined new methods and
0214 corresponding UI commands. The new functions are available through a new
0215 G4GenericAnalysisManager class, and are demonstrated in the basic B5
0216 example.</LI>
0217 <LI>Enabled handling of automatic min/max axes values in case of log scale
0218 in analysis tools.</LI>
0219 </UL>
0220
0221 <B>Digitization, Hits & Scoring</B>
0222 <UL>
0223 <LI>Added layered mass geometry option for the new "probe" scoring mesh.</LI>
0224 <LI>Introducing G4VPrimitivePlotter allowing the user to extend a primitive
0225 scorer; added G4VScoreHistFiller and G4TScoreHistFiller, allowing scorers
0226 to fill histograms defined through Geant4 Analysis tools.</LI>
0227 </UL>
0228
0229 <B>Geometry and Field</B>
0230 <UL>
0231 <LI>Improved speed for detection of volume overlaps either through
0232 UI commands or at geometry construction.</LI>
0233 <LI>New templated field classes for equation and selected steppers
0234 to avoid virtual call for field and equation respectively.
0235 Non-virtual calls are expected to provide a direct speedup.
0236 In addition key methods are made inline to enable compilers to
0237 seek extra speedup by embedding them to avoid any function call.</LI>
0238 <LI>New class G4DriverReporter to print progress of field drivers.</LI>
0239 <LI>Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.</LI>
0240 <LI>Enabled use of whiteboard for logging/debugging in G4MultiLevelLocator,
0241 if "check-mode" in navigation is being activated through UI command.</LI>
0242 </UL>
0243
0244 <B>Materials</B>
0245 <UL>
0246 <LI>Added two new public methods to add elements to a material:
0247 AddElementsByNumberOfAtoms(...) and AddElementByMassFraction(...).</LI>
0248 <LI>Added a new method ConstPropertyExists() to G4MaterialPropertiesTable.
0249 Added new methods to access/add properties with G4String and std::vector.</LI>
0250 <LI>Added new properties for scintillation allowing 3 time constants and a
0251 second wavelength shifter in the same material in G4MaterialPropertiesTable
0252 and G4MaterialPropertiesIndex.</LI>
0253 </UL>
0254
0255 <B>Electromagnetic physics</B>
0256 <UL>
0257 <LI>Added two extra sets of StepFunction parameters for light ions and generic
0258 ions. Added corresponding UI commands allowing one to customise step
0259 limitation for ions separately from step limits for electrons or hadrons.</LI>
0260 <LI>Introducing thermal model of positronium decay to two gammas.
0261 In this model, the positronium acquires a mean kinetic energy on formation,
0262 which contributes to a small non-collinearity of the gammas, detectable and
0263 significant in PET.</LI>
0264 <LI>Added new EM model for polarized gamma elastic scattering.</LI>
0265 <LI>New class for handling the numerical Differential Cross-Sections(DCS) for
0266 Coulomb scattering of e-/e+, and added new model, implementing single
0267 Coulomb scattering for e-/e+.</LI>
0268 <LI>Added new classes and models for micro-dosimetry simulation.</LI>
0269 <LI>Added new threshold for muon/hadron bremsstrahlung and e+e- pair production
0270 allowing to stop a track when energy transfer exceeds the defined threshold
0271 and makes a new vertex.</LI>
0272 <LI>Added a model for gamma-ray elastic interactions, able to account for
0273 molecular interference effects, by using database or user-custom form
0274 factors.</LI>
0275 <LI>Implemented three time constants for G4Scintillation, and allow multiple
0276 time constants to work with scintillation by particle type.
0277 Added second wavelength shifting process within the same material.</LI>
0278 </UL>
0279
0280 <B>Hadronic physics</B>
0281 <UL>
0282 <LI>For charm and bottom hadron-nuclear (elastic and inelastic)
0283 cross sections, the Glauber-Gribov approach has been extended to
0284 cover heavy hadrons.
0285 For final-state elastic nuclear scattering of charm and bottom
0286 hadron projectiles, a simple treatment is utilized.
0287 For final-state inelastic nuclear scattering of charm and bottom
0288 hadron projectiles, both Geant4 string models (FTF and QGS) have
0289 been extended to deal with charm and bottom quarks and diquarks
0290 carried by the heavy projectile hadron, as well as with the
0291 possibility of creating charm-anti_charm and bottom-anti_bottom
0292 pairs from the vacuum during the string fragmentation phase.
0293 Cascade models are currently not applicable for heavy hadrons and
0294 string models cannot handle them properly at very low energies:
0295 below 100 MeV a dummy model that returns as final state the
0296 initial state unchanged is utilized.
0297 The decays of secondary heavy hadrons - charm and bottom hadrons
0298 created by inelastic nuclear interactions of primary hadrons -
0299 cannot be pre-defined by Monte Carlo event generators, therefore
0300 a very simple approach is currently used: one single, fully hadronic
0301 decay is defined for each "long"-lived charm and bottom hadron,
0302 with a simple multi-body phase-space treatment of the decay
0303 kinematics. </LI>
0304 <LI>For the evaluation of systematic errors due to uncertainties in
0305 the Geant4 hadronic cross sections we recommend to scale up and
0306 down the cross sections, independently for elastic and inelastic
0307 interactions, and independently for different types of hadrons.
0308 Currently, this is possible for the following three categories of
0309 hadrons: nucleons (i.e. proton and neutron together), pions (i.e.
0310 pion+ and pion- together), all the rest of hadrons (i.e. kaons,
0311 hyperons, anti-baryons, light ions, light anti-ions, charm and
0312 bottom hadrons all together).
0313 New public methods of the singleton class G4HadronicParameters
0314 allow to enable the scaling of these cross sections (disabled by
0315 default), and to set the scaling factors (by default 1.0).
0316 Here are some rough, practical suggestions on the scaling of the
0317 cross sections: +/- 10% variation for nucleons and pions;
0318 +/- 15-20% variation for kaons; +/- 20-30% variation for other
0319 hadrons. Moreover, bigger variations might be considered at low
0320 energies to account for the challenge of describing the shapes
0321 of cross sections in the threshold and resonance region. </LI>
0322 <LI>New utility class to access hadronic processes, allowing to customise
0323 hadronic cross-sections per particle type.</LI>
0324 <LI>New UI messenger for hadronic physics, currently used for controlling
0325 verbosity level: the UI command <TT>/process/had/verbose 0</TT> allows
0326 to switch off the print-out at initialization of hadronic processes,
0327 models and cross-sections (similar to the existing command
0328 <TT>/process/em/verbose 0</TT> to switch off the print-out of
0329 electromagnetic physics information).</LI>
0330 <LI>New UI command to change the default upper energy limit
0331 (default: 100 TeV): <TT>/process/had/maxEnergy ...</TT></LI>
0332 <LI>New G4PARTICLEXS-3.1 dataset provides accurate fusion cross-sections
0333 based on data, more accurate inelastic cross-sections for neutrons,
0334 protons, light ions, and gamma for the full energy range.</LI>
0335 <LI>Replaced where possible the use of environmental variables in hadronic
0336 models with appropriate UI commands.</LI>
0337 <LI>A new low-energy gamma-nuclear final-state model,
0338 <TT>G4LowEGammaNuclearModel</TT>, based on precompound de-excitation
0339 and providing isomer production and gamma transitions, is used in
0340 <TT>G4EmExtraPhysics</TT>.</LI>
0341 <LI>Improved treatment of antibaryon interactions in QGS.</LI>
0342 <LI>Added handling of lepto-nuclear interactions for anti_nu_e, nu_e,
0343 anti_mu_nu and mu_nu.</LI>
0344 <LI>A new coalescence model, useful in particular for Cosmic Ray applications,
0345 has been introduced. By considering the list of secondaries produced by a
0346 string model, it forms deuterons and antideuterons from, respectively,
0347 proton-neutron and antiproton-antineutron pairs with close momenta.
0348 By default, the coalescence model is disabled; it can be switched on
0349 via the UI command <TT>/process/had/enableCRCoalescence true</TT>.</LI>
0350 </UL>
0351
0352 <B>Physics Lists</B>
0353 <UL>
0354 <LI>Enabled charm and bottom hadronic physics in nearly all physics lists,
0355 in particular those of interest for HEP.
0356 (The main exceptions are the following physics lists:
0357 <TT>QGSP_BIC, QGSP_BIC_HP, QGSP_BIC_AllHP</TT>.)
0358 The QGS-based physics lists use, as for other hadrons, QGSP for
0359 charm and bottom inelastic interactions above 12 GeV, whereas FTFP
0360 is used below 25 GeV. The other, FTF-based physics lists, use FTFP
0361 at all energies, with a simplified approach below 100 MeV.</LI>
0362 <LI>New physics-list builder classes have been introduced to allow
0363 alternative builders for anti_proton, anti_neutron, hyperons and
0364 anti-hyperons nuclear interactions at high energies with QGSP.</LI>
0365 <LI>QGS-based physics lists use now QGS for hyperons, anti-hyperons,
0366 anti_proton and anti_neutron projectiles at energies above 12 GeV.</LI>
0367 <LI>Physics lists that include <TT>G4EmExtraPhysics</TT> use the new
0368 low-energy gamma-nuclear model (<TT>G4LowEGammaNuclearModel</TT>)
0369 below 200 MeV (while Bertini cascade is used above 199 MeV up to 6 GeV,
0370 and QGSP above 3 GeV). The use of this model, its energy threshold and
0371 the alternative cross section <TT>G4GammaNuclearXS</TT> can be
0372 configured.</LI>
0373 <LI>Extended EM physics-list configurator interface allowing application of
0374 extra configuration on top of any available DNA constructor.</LI>
0375 <LI>Cleanup destruction of physics processes at the end of job.
0376 Reviewed ownership/deletion of physics models at the end of the run.</LI>
0377 </UL>
0378
0379 <B>Visualization and Interfaces</B>
0380 <UL>
0381 <LI>Introduced new alpha-version of a Qt3D visualization driver, based
0382 on native Qt rendering.</LI>
0383 <LI>Added support for Open Inventor Qt visualisation driver to be built and
0384 used in applications. The OpenInventor module can be built with either
0385 the OIQt driver, or with the OIX/OIXE drivers, but not with both.
0386 Enabled use of OIQt viewer with Qt UI.</LI>
0387 </UL>
0388
0389 <B>Examples</B>
0390 <UL>
0391 <LI>New extended example showing how to use Geant4 as a generator for
0392 simulating inelastic hadron-nuclear interactions.</LI>
0393 <LI>New extended example demonstrating how to create multiple energy deposits
0394 from the fast simulation model.</LI>
0395 <LI>New extended example implementing the typical setup of a Small Angle
0396 X-ray Scattering (SAXS) experiment. It is meant to illustrate the usage
0397 of molecular interference (MI) of Rayleigh (coherent) scattering of photons
0398 inside the matter.</LI>
0399 <LI>New extended medical example (dna/chem6) providing scoring of the
0400 radiochemical yield G as a function of time and LET.</LI>
0401 <LI>New advanced example showing how to efficiently simulate particle transport
0402 through aerosols containing billions of randomly-positioned droplets, using
0403 an ordinary workstation.</LI>
0404 <LI>New advanced example Gorad (Geant4 Open-sourced Radiation Analysis and
0405 Design), a turn-key application for radiation analysis and spacecraft
0406 design.</LI>
0407 <LI>New advanced example HGCal_testbeam based on a Geant4 standalone application
0408 for the CMS High Granularity Calorimeter (HGCal) studies, to demonstrate a
0409 test beam setup used in HEP experiments, and as a base for the validation
0410 studies and comparison with experimental data.</LI>
0411 <LI>New advanced example modelling the ICRP110 reference computational human
0412 phantoms and calculating the dose in individual voxels and entire
0413 organs. The human male phantom is created from a whole-body
0414 clinical CT image.</LI>
0415 </UL>
0416
0417 <A NAME="5."></A>
0418 <HR>
0419
0420
0421
0422 <H2>5. Expected effects on physics and computing performance</H2>
0423
0424 <B>General</B>
0425 <UL>
0426 <LI>Revision of G4PhysicsVector classes to use similar algorithm for bin
0427 selection and adding checks on vectors length.</LI>
0428 <LI>Code reorganisation and optimisations in G4Transportation has been
0429 measured to provide a persistent reduction of instruction-TLB misses,
0430 leading to some measurable CPU speedup.</LI>
0431 </UL>
0432
0433 <B>Electromagnetic physics</B>
0434 <UL>
0435 <LI>Results are expected to be similar to release 10.6 for EM calorimeters.</LI>
0436 <LI>Expected some measurable CPU speedup.</LI>
0437 <LI>Expected improved angular distributions for e+e- pairs.</LI>
0438 </UL>
0439
0440 <B>Hadronic physics</B>
0441 <UL>
0442 <LI>Hadronic showers remain similar to those of the latest patch release
0443 10.6.p03, with the only expected difference of a few percent narrower
0444 showers for FTF-based physics lists.
0445 Comparing the hadronic showers of the two physics lists FTFP_BERT and
0446 QGSP_BERT, the latter show sligthly higher response, larger energy
0447 fluctuations, and longer and narrower shapes with respect to the
0448 FTFP_BERT showers. </LI>
0449 <LI>Expected more accurate cross-sections for light ions including fusion
0450 reactions.</LI>
0451 <LI>Expected slightly faster computation of hadronic cross-sections.</LI>
0452 </UL>
0453
0454 <P> </P>
0455 <A NAME="6."></A>
0456 <HR>
0457
0458
0459
0460 <H2>6. Known Run-Time Problems and Limitations</H2>
0461 For a complete list of outstanding run-time problems and to submit any
0462 problem you may find while running this version of Geant4, please refer
0463 to the
0464 <A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem
0465 Reporting System</A>.
0466
0467 <P> </P>
0468 <A NAME="7."></A>
0469 <HR>
0470
0471
0472
0473 <H2>7. Compilation Warnings</H2>
0474
0475 There may be a few compilation warnings on some platforms, particularly
0476 on Windows with Visual Studio, where warnings level has been raised when
0477 building examples.
0478 We do not believe that any of these lead to incorrect run-time behaviour.
0479
0480 <P> </P>
0481 <A NAME="8."></A>
0482 <HR>
0483
0484
0485
0486 <H2>8. Geant4 Software License</H2>
0487
0488 A Software License applies to the Geant4 code.
0489 Users must accept this license in order to use it. The details and the list of
0490 copyright holders is available at
0491 <A href="http://cern.ch/geant4/license">http://cern.ch/geant4/license</A>
0492 and also in the text file <TT>LICENSE</TT> distributed with the source code.
0493
0494 <P> </P>
0495 <A NAME="9."></A>
0496 <HR>
0497
0498
0499
0500 <H2>9. Detailed list of changes and fixes</H2>
0501
0502 These are the main new features/fixes included in this release since the
0503 last patched public release (for more detailed lists of fixes/additions,
0504 please refer to the corresponding History files provided in most packages):
0505
0506 <P> </P>
0507
0508 <A NAME="conf-notes">
0509 <H3><I>Configuration</I></H3></A>
0510 <UL>
0511 <LI><U>CMake</U>
0512 <UL>
0513 <LI>Added support for building PTL external module and introduced
0514 GEANT4_USE_TBB option, enabling use of TBB as possible alternative
0515 to builtin PTL tasking.</LI>
0516 <LI>Added support for Open Inventor Qt visualisation driver to be built and
0517 used in applications. The OpenInventor module can be built with either
0518 the OIQt driver, or with the OIX/OIXE drivers, but not with both.
0519 Added GEANT4_USE_XM to Open Inventor X11 driver code block to correct
0520 Xm and Xt link order. Improved consistency of using XQuartz vs System
0521 OpenGL on macOS. Removed obsolete FindInventor module.</LI>
0522 <LI>Introduced configuration support for Qt3D visualization driver.
0523 Qt3D driver optional based on find of required Qt5 modules.</LI>
0524 <LI>Applied patch to allow compilation on Windows using Clang.</LI>
0525 <LI>Removed requirement on presence of GLU library.
0526 No longer save GLU related variables in the package cache.</LI>
0527 <LI>Change shimmed imported target name to VecGeom::vecgeom to match
0528 upstream usage and reliably use target when available from VecGeom.
0529 Export VecCore_DIR to package cache when set so that Geant4 behaviour
0530 is consistent. Co-works with VecGeom-1.1.8.</LI>
0531 <LI>Updated functions to use G4expat{-static} as custom built targets.</LI>
0532 <LI>Added GEANT4_BUILD_BUILTIN_BACKTRACE option to enable automatic
0533 use of G4BackTrace signal handling in G4RunManager.</LI>
0534 <LI>Importing new "target" style API for declaring and composing libraries
0535 from modules of source code.</LI>
0536 <LI>Propagate value of CMAKE_DISABLE_FIND_PACKAGE_ROOT down to tests
0537 that optionally support Root to allow testing Geant4 with Root support
0538 disabled. This is necessary when testing Geant4 with a different C++
0539 standard than Root when it's installed. Avoid warnings from propagating
0540 the flag down to tests.</LI>
0541 <LI>New GEANT4_BUILD_PHP_AS_HP option to enable ParticleHP as HP in physics
0542 processes. Replaces PHP_AS_HP environment variable. Added PHP_AS_HP
0543 "feature" in Geant4Config.cmake/geant4-config to allow clients to
0544 check availability.</LI>
0545 <LI>Use STRINGS cache property for enum options and CMAKE_BUILD_TYPE to
0546 give easier interface in (G)UIs.</LI>
0547 <LI>Use "${FOO:-}" variable expansion and "-z" test to check for
0548 undefined variables in Bourne Shell scripts. Prevents errors when
0549 shell is in "set -u" mode. Addressing problem report
0550 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2221">#2221</A>.</LI>
0551 <LI>Handle install of G4clhep{-static} independently of main modules
0552 due it being built outside the category system.</LI>
0553 <LI>Renamed remaining internal "Geant4..." modules to "G4" convention.
0554 Retain Geant4DefineModule and Geant4LibraryTargets until new
0555 modularization scheme is in place.</LI>
0556 <LI>Set CLHEP minimum required version to 2.4.4.0.</LI>
0557 <LI>Set VecGeom-1.1.8 as minimum required version for optional build
0558 with VecGeom.</LI>
0559 <LI>Added possibility to download and install optional TENDL data set.</LI>
0560 <LI>Updated data-sets versions.</LI>
0561 </UL></LI>
0562 <LI><U>GNUMake</U>
0563 <UL>
0564 <LI>Added setup for building and configuring new externals/ptl
0565 and tasking modules. External installation of PTL can be enabled
0566 by defining the installation through the environment variable
0567 PTL_BASE_DIR.</LI>
0568 <LI>Added -pthread to all builds in Linux targets.</LI>
0569 <LI>Corrected setup for use of Open Inventor (Coin).</LI>
0570 <LI>Added configuration for Qt3D visualization driver.</LI>
0571 <LI>Added missing settings in G4UI_BUILD.gmk script for OIQt and use
0572 of UI.</LI>
0573 <LI>Removed deprecated G4USE_STD11 flag settings.</LI>
0574 <LI>Removed dependency on GLU for all configurations, as no longer
0575 necessary.</LI>
0576 </UL></LI>
0577 </UL>
0578
0579 <A NAME="ana-notes">
0580 <H3><I>Analysis</I></H3></A>
0581 <UL><LI><U>Analysis management & plotting</U>
0582 <UL>
0583 <LI>Major upgrade including the support for multiple files and multiple
0584 output types.</LI>
0585 <LI>New G4GenericAnalysisManager, G4GenericFileManager factory classes.</LI>
0586 <LI>New G4VAnalysisManager functions to set file-names and corresponding
0587 UI commands. While it is possible to mix output types for histogram
0588 and profiles objects, only one output type is supported for ntuples.</LI>
0589 <LI>Redesigned management classes to separate object file handling from
0590 output specific analysis managers.</LI>
0591 <LI>Updated G4PlotManager for use of new fonts.</LI>
0592 <LI>Changes to allow overriding Root classes in g4mpi/analysis.</LI>
0593 <LI>Removed redundant variable in G4RootNtupleFileManager::Reset().</LI>
0594 <LI>Fixed the memory leak reported by Valgrind in deleting files.</LI>
0595 <LI>Fixed text typos in printout. Problem report
0596 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
0597 and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
0598 </UL></LI>
0599 <LI><U>Ntuples</U>
0600 <UL>
0601 <LI>Implemented writing ntuples in multiple files of the same output type.
0602 New G4VAnalysisManager function SetNtupleFileName(..) and UI commands:
0603 "/analysis/ntuple/setFileName id fileName" and
0604 "/analysis/ntuple/setFileNameToAll fileName"</LI>
0605 <LI>Fix to add a null-pointer check to ntupleDescription->fNtuple in
0606 G4RootPNtupleManager::Merge().</LI>
0607 </UL></LI>
0608 <LI><U>g4tools</U>
0609 <UL>
0610 <LI>Updated the g4tools version to g4tools-5.2.1.
0611 <UL>
0612 <LI>Corrections to handle automatic min/max axes values in case of log
0613 scale. See History_tools in analysis module for all details.</LI>
0614 <LI>Modifications in tools/hdf5 to use H5free_memory() instead free()
0615 at some places (needed for HDF5/1.12.0).</LI>
0616 <LI>Modifications in graphics to be in sync with the code in
0617 inlib/exlib around Apple/Metal (no impact on offscreen plotting).</LI>
0618 <LI>See History_tools for the complete list of modifications.</LI>
0619 </UL></LI>
0620 </UL></LI>
0621 <LI>Updated granular dependencies in preparation for modularization.</LI>
0622 <LI>Removed uneeded links to externals in factory.</LI>
0623 </UL>
0624
0625 <A NAME="digits-notes">
0626 <H3><I>Digitization & Hits</I></H3></A>
0627 <UL>
0628 <LI>Introducing G4VPrimitivePlotter allowing the user to extend a primitive
0629 scorer. Use G4VPrimitivePlotter to allow scorers to directly fill
0630 histograms. Added "/score/fill1D" command.</LI>
0631 <LI>Introducing G4VScoreHistFiller and G4TScoreHistFiller, allowing scorers
0632 to fill histograms defined through Geant4 Analysis tools.</LI>
0633 <LI>Introducing a new scorer, G4PSVolumeFlux.</LI>
0634 <LI>Added two ComputeSolid() method to G4VPrimitiveScorer, to consolidate
0635 code.</LI>
0636 <LI>Added Mutex lock to G4ScoringProbe::SetMaterial() to avoid race condition.</LI>
0637 <LI>Fixed cases of comparison between int and size_t in templated classes
0638 and some cleanup.</LI>
0639 <LI>Fixed text typos in printout. Problem report
0640 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
0641 and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
0642 </UL>
0643
0644 <A NAME="emstd-notes">
0645 <H3><I>Electromagnetic Processes</I></H3></A>
0646 <UL>
0647 <LI><B>DNA</B>:
0648 <UL>
0649 <LI>Added classes for IRT; added features in management classes for IRT
0650 (G4ITReaction, G4ITModelProcessor ...).</LI>
0651 <LI>Added features in G4DNAMolecularReactionTable for GFDE.</LI>
0652 <LI>Added molecules (Oxygen, O2, O3, HO2) from: Plante et al.(2017).</LI>
0653 <LI>G4DNAMolecularMaterial: avoid deleting instance of the singleton;
0654 removed commented lines.
0655 Fixed thread contention on mutable data in G4DNAMolecularMaterial.
0656 Some code cleanup.</LI>
0657 <LI>G4MoleculeDefinition: copy constructor and assignment operator are not
0658 allowed (as for G4ParticleDefinition). Now deleted.</LI>
0659 <LI>Revised displacement of OH radicals of B1A1 dissociation based on
0660 momentum conservation in G4DNAWaterDissociationDisplacer.</LI>
0661 </UL></LI>
0662 <LI><B>High Energy</B>
0663 <UL>
0664 <LI>G4hPairProductionModel: inherit ComputeDMicroscopicCrossSection()
0665 from G4MuPairProductionModel to avoid code duplication.</LI>
0666 <LI>G4hPairProductionModel, G4hBremsstrahlungModel, G4hPairProduction,
0667 G4hBremsstrahlung: added definition of the energy threshold for
0668 creation of a vertex when energy transfer is above the threshold.</LI>
0669 </UL></LI>
0670 <LI><B>Low Energy</B>
0671 <UL>
0672 <LI>Added new model for polarized gamma elastic scattering, provided by
0673 the JAEA group. Updated existing process (G4JAEAElasticScattering) and
0674 model (G4JAEAElasticScatteringModel) in order to comply with the new
0675 data format. Changed initialisation of JAEA models.</LI>
0676 <LI>Added new classes for micro-dosimetry simulation.</LI>
0677 <LI>Added new class G4MicroElecSurface, a new boundary process for e-.</LI>
0678 <LI>Removed obsolete G4MuElec* classes.</LI>
0679 <LI>G4LivermorePhotoElectricModel: allow "Water" as a name of water
0680 material for low-energy photo-effect.</LI>
0681 <LI>Added G4LivermoreGammaConversion5DModel class. Reading EPICS2017 data.</LI>
0682 <LI>Change in G4LivermoreGammaConversion to now derive from
0683 G4PairProductionRelModel. Added missing method InitialiseForElement().</LI>
0684 <LI>Added G4PenelopeRayleighModelMI model and ancillary class G4MIData.</LI>
0685 <LI>Replaced std::log with G4Log in Penelope and Livermore models.</LI>
0686 <LI>Use GetZasInt() in Penelope models, when applicable.</LI>
0687 <LI>Fixed compilation warnings on clang-10.</LI>
0688 </UL></LI>
0689 <LI><B>Muons</B>
0690 <UL>
0691 <LI>G4MuPairProductionModel: optimised ComputeDMiscroscopicCrossSection()
0692 to speedup initialization.</LI>
0693 <LI>G4ModifiedMephi: new angular generator for muon/hadron Bremsstrahlung.</LI>
0694 <LI>G4MuPairProductionModel, G4MuBremmstrahlungModel,
0695 G4MuPairProduction, G4MuBremmstrahlung: updated sampling of
0696 final state using G4ModifiedMephi; implemented check on energy transfer
0697 and if beyond the threshold, kill primary particle and create a new
0698 vertex.</LI>
0699 </UL></LI>
0700 <LI><B>Standard</B>
0701 <UL>
0702 <LI>G4eDPWAElasticDCS: new class that handles the numerical Differential
0703 Cross-Sections(DCS) for Coulomb scattering of e-/e+, computed by Dirac
0704 Partial Wave Analysis(DPWA) using ELSEPA.</LI>
0705 <LI>G4eDPWACoulombScatteringModel: new class that implements single Coulomb
0706 scattering model for e-/e+ based on the numerical DCS provided by the
0707 above G4eDPWAElasticDCS class.</LI>
0708 <LI>G4eplusAnnihilation: fixed problem seen in the rare case, when initial
0709 energy is null; introducing thermal model of positronium decay to two gammas.
0710 In this model, the positronium acquires a mean kinetic energy on
0711 formation, which contributes to a small non-collinearity of the
0712 gammas, detectable and significant in PET. To activate this model:
0713 material->GetIonisation()->SetMeanEnergyPerIonPair(meanKE).
0714 A mean kinetic energy of 5 eV produces a projected acollinearity
0715 of about 0.5 degrees FWHM, as reported in:
0716 K.Shibuya et al., IFMBE Proceedings Vol. 14/3 1667 (2007).</LI>
0717 <LI>G4UniversalFluctuation: changed 'nmaxCont' from 16 to 8 for speedup.
0718 Set value for 'a0' to 42 after optimisations. Minor C++ improvements.</LI>
0719 <LI>G4UrbanMscModel: tuned 'tlimitmin' computation for e- (for e+ kept
0720 unchanged) and changed parameterisation of 'stepmin'; added two private
0721 inline methods to reduce code duplication.
0722 Removed cache and introduced data struct precomputed at initialisation,
0723 added e- range cut to the data structure.
0724 Changed parameterisation of backscattering parameter <TT>doverra</TT>;
0725 Changed computation of 'tlimit' in the step limitation algorithm
0726 UseDistanceToBoundary(); affecting only Opt3 EM physics.</LI>
0727 <LI>G4BetheHeitler5DModel: change "final" keyword by "override" for virtual
0728 methods.</LI>
0729 <LI>G4LindhardSorensenData: fixed few numbers in the data table.</LI>
0730 <LI>G4eeToTwoGammaModel: code cleanup; added static flag, which identifies
0731 if electron motion is taken into account for sampling of acollinearity,
0732 when annihilation happens at rest; ensuring that by default no extra
0733 computation is performed; also removed extra printout at initialisation
0734 and extra data structure.</LI>
0735 <LI>G4ICRU49NuclearStoppingModel, G4WentzelOKandVIxSection,
0736 G4WentzelVIRelModel, G4SeltzerBergerModel, G4LindhardSorensenIonModel:
0737 improved usage of locks; defined deletion of copy constructor and
0738 assignment operator. Improved usage of locks. Defined standard deletion
0739 of copy consructor and assignment operator.</LI>
0740 <LI>G4SauterGavrilaAngularDistribution, G4DeltaAngle: code clean-up.</LI>
0741 <LI>Fixed compilation warnings on clang-10.</LI>
0742 <LI>Requires data-set G4EMLOW-7.13.</LI>
0743 </UL></LI>
0744 <LI><B>Utils</B>
0745 <UL>
0746 <LI>G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger: added
0747 a new parameter - name of the sub-directory with data for Livermore
0748 models with variants: "livermore" (default), "epics_2017".
0749 Comes with G4EMLOW-7.10 data set and higher.</LI>
0750 <LI>G4EmParameters, G4EmParametersMessenger, G4VMultipleScattering:
0751 removed displacement-beyond-safety option, as may lead to crashes in
0752 some circomstances, and wrong results in others.</LI>
0753 <LI>G4EmParameters, G4EmParametersMessenger, G4EmExtraParametersMessenger,
0754 G4VEnergyLossProcess: added two extra sets of StepFunction parameters
0755 for light ions and generic ions. Added extra UI commands. Modified
0756 interfaces accordingly. Removed old comments.</LI>
0757 <LI>G4EmParameters, G4EmExtraParameters: added new flag defining type of
0758 single scattering model.</LI>
0759 <LI>G4EmParameters, G4EmParametersMessenger: added new flag threshold for
0760 muon/hadron bremsstrahlung allowing to stop a track when high energy
0761 bremsstrahlung is emitted.</LI>
0762 <LI>G4OpticalParameters, G4OpticalParametersMessenger: added new files to
0763 control optical parameters, as for G4EmParameters.</LI>
0764 <LI>G4EmLowEParametersMessenger: extended number of DNA PhysicsList
0765 options.</LI>
0766 <LI>G4EmModelManager, G4VMscModel, G4VEmModel, G4VMultipleScattering: at
0767 initialisation print extra line for all multiple-scattering models
0768 instead of the common printout, needed when different models are
0769 applied for regions. Minor code clean-up.
0770 Addressing problem report
0771 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2106">#2106</A>.</LI>
0772 <LI>G4VEmProcess: removed old unused methods; DefinedMaterial() method is
0773 now protected (needed for AtRest processes). Fixed setting of current
0774 particle. Addressing problem report
0775 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2277">#2277</A>,
0776 affecting ion DNA physics.</LI>
0777 <LI>G4LossTableManager: made ResetParameters() method public.
0778 Make clean interface for electron and positron general process.</LI>
0779 <LI>G4VAtomicDeexcitation: optimized arrays initialisation.</LI>
0780 <LI>G4VEmAngularDistribution: added flag of polarisation and corrected
0781 order of initialisation.</LI>
0782 <LI>G4VEmModel: define flag of polarisation for an angular generator.</LI>
0783 <LI>G4EmProcessSubType: added fSurfaceReflection.</LI>
0784 <LI>Fixed text typos in printout. Problem report
0785 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
0786 and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
0787 </UL>
0788 <LI><B>Xrays</B>
0789 <UL>
0790 <LI>Implemented three time constants for G4Scintillation, and allow
0791 multiple time constants to work with scintillation by particle type.
0792 The existing material property names have FAST and SLOW in them, like
0793 FASTTIMECONSTANT. This doesn't generalize well. Also YIELDRATIO as a
0794 single value doesn't generalize to three time constants. Proposal is
0795 to create new names SCINTILLATIONTIMECONSTANT1/2/3 and the same for
0796 other parameters. The existing names are kept for backwards
0797 compatibility, with the idea to remove them in the next major release.
0798 There is a flag in G4Scintillation, with messenger command in the
0799 OpticalPhysics list, to use the new method:
0800 /process/optical/scintillation/setEnhancedTimeConstants true.
0801 Results are unchanged if using same values.
0802 Allow specifying SCINTILLATIONYIELD only (not requiring
0803 SCINTILLATIONYIELD1) when only one scintillation channel is present.
0804 Same for particle specific yields.
0805 Set verbosity levels correctly.</LI>
0806 <LI>G4Cerenkov, G4Scintillation: use new G4OpticalParameters to control
0807 simulation parameters. Removed BuildThePhysicsTable().
0808 Applied code formatting.</LI>
0809 <LI>G4Cerenkov: make GetAverageNumberOfPhotons() method public.</LI>
0810 <LI>G4VXTRenergyLoss: fixed destructor.</LI>
0811 <LI>Code formatting.</LI>
0812 </UL></LI>
0813 </UL>
0814
0815 <A NAME="errprop-notes">
0816 <H3><I>Error Propagation</I></H3></A>
0817 <UL>
0818 <LI>Fixed Coverity defects warnings in G4ErrorPropagator for unreachable code.
0819 Implemented move assignment operators in G4ErrorSymMatrix, G4ErrorSymMatrix,
0820 G4ErrorFreeTrajParam, G4ErrorTrajState and G4ErrorSurfaceTrajParam.</LI>
0821 <LI>Fix to CMake script to support new CMake system.</LI>
0822 </UL>
0823
0824 <A NAME="event-notes">
0825 <H3><I>Event</I></H3></A>
0826 <UL>
0827 <LI>Introducing a new General Particle Source energy distribution option,
0828 that generates flat energy distribution with track weights that
0829 represent energy spectrum provided by /gps/hist/point commands.
0830 This option can enhance, for example, higher energy tracks that are
0831 rare but contribute to the scores.</LI>
0832 <LI>Corrected logic in G4VPrimaryGenerator::CheckVertexInsideWorld() method.</LI>
0833 <LI>G4GeneralParticleSourceMessenger: command structure clean-up.</LI>
0834 <LI>Some code cleanup, formatting and C++11 revision.</LI>
0835 <LI>Fixed CMake scripts to ensure G4_USESMARTSTACK pre-processor symbol
0836 is properly propagated.</LI>
0837 <LI>Added support for event profiler with TiMemory.</LI>
0838 <LI>Removed obsolete and unused headers.</LI>
0839 <LI>Fixed Coverity defect in G4GeneralParticleSourceMessenger.</LI>
0840 <LI>Fixed text typos in printout. Problem report
0841 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>.
0842 </UL>
0843
0844 <A NAME="externals-notes">
0845 <H3><I>Externals</I></H3></A>
0846 <UL>
0847 <LI><U>CLHEP</U>:
0848 <UL>
0849 <LI>Updated to CLHEP version 2.4.4.0.</LI>
0850 <LI>Updated values in SystemOfUnits.h and PhysicalConstants.h for:
0851 e_SI (electron charge), h_Planck (Planck constant), Avogadro
0852 (Avogadro constant), k_Boltzmann (Boltzmann constant), based on
0853 May 2019 redefinition of SI units, References -
0854 [<A href="https://en.wikipedia.org/wiki/2019_redefinition_of_the_SI_base_units">wikipedia.org</A>],
0855 [<A HREF="https://www.britannica.com/science/electron-charge">britannica.com</A>].</LI>
0856 <LI>Use 32-bit internal seeds types coherently in MixMaxRng.
0857 Addressing CLHEP JIRA ticket #156.</LI>
0858 <LI>Removed obsolete #pragma interface/implementation in Vector classes.</LI>
0859 <LI>Get rid of switch statement in operator()/operator[] of Hep3Vector
0860 Replaced dx/dy/dz with operator[] in Hep3Vector.
0861 Replaced private dx/dy/dz with public x()/y()/z() in Hep3Vector.</LI>
0862 <LI>Added missing includes in Vector and Random classes for translation
0863 unit encapsulation.</LI>
0864 </UL></LI>
0865 <LI><U>Expat</U>:
0866 <UL>
0867 <LI>Migrated build of G4expat to locally defined targets, allowing
0868 cleaner specification of usage requirements.</LI>
0869 </UL></LI>
0870 <LI><U>PTL</U>:
0871 <UL>
0872 <LI>New module for PTL (Parallel Tasking Library), implementing a
0873 lightweight C++11 multi-threading tasking system featuring thread-pool,
0874 task-groups, and lock-free task queue.</LI>
0875 </UL></LI>
0876 <LI><U>ZLIB</U>:
0877 <UL>
0878 <LI>Added needed include directories to CMake script when using new
0879 CMake system. Cleanup.</LI>
0880 </UL></LI>
0881 </UL>
0882
0883 <A NAME="g3tog4-notes">
0884 <H3><I>G3toG4</I></H3></A>
0885 <UL>
0886 <LI>Cleanup CMake build, removing obsolete granular library options and
0887 explicit include_directories.</LI>
0888 </UL>
0889
0890 <A NAME="gen-notes">
0891 <H3><I>General Processes</I></H3></A>
0892 <UL>
0893 <LI><B>Biasing</B>
0894 <UL>
0895 <LI>G4ImportanceProcess: added process type as fParallel.</LI>
0896 <LI>Fixed Coverity defect warnings for data initialisation.</LI>
0897 </UL></LI>
0898 <LI><B>Cuts</B>
0899 <UL>
0900 <LI>Revision for use of c++11 constructs. Code cleanup and formatting.</LI>
0901 </UL></LI>
0902 <LI><B>Management</B>
0903 <UL>
0904 <LI>G4ProcessManagerMessenger: use cache pointer of selected particle
0905 in the G4ParticleTable class.</LI>
0906 <LI>G4ProcessTable: enabled deletion of all processes except
0907 G4Transportation at the end of run.</LI>
0908 <LI>Fixed Coverity warning for uninitialised data in G4VProcess.</LI>
0909 <LI>C++11 revision and code cleanup/formatting.</LI>
0910 </UL></LI>
0911 <LI><B>Optical</B>
0912 <UL>
0913 <LI>Added second wavelength shifting process, G4OpWLS2, within the same
0914 material.</LI>
0915 <LI>Use new ConstPropertyExists(int) method rather than passing strings.</LI>
0916 <LI>G4OpRayleigh, G4OpAbsorption, G4OpMieHG, G4OpWLS, G4OpWLS2: moved to
0917 new G4OpticalParameters class to control simulation parameters.</LI>
0918 <LI>G4OpRayleigh: avoid double deletion of property vectors.</LI>
0919 <LI>G4OpBoundaryProcess: increase geometry tolerance to kCarTolerance.</LI>
0920 <LI>Fixed reading of Davis LUT data out of bounds.
0921 Addressing problem report
0922 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2287">#2287</A>.</LI>
0923 <LI>Code cleanup/formatting and improved readability.</LI>
0924 </UL></LI>
0925 <LI><B>Parameterisation</B>
0926 <UL>
0927 <LI>Introduced general facilities based on GFlash implementation to
0928 facilitate multiple hit (energy & position) creation from fast
0929 simulation models.</LI>
0930 <LI>G4FastSimulationHelper: merged ActivateFastSimulation() calls for mass
0931 and parallel geometry cases.</LI>
0932 <LI>G4FastSimulationManager, G4VFastSimulationModel: removed redefinition
0933 of G4Envelope type.</LI>
0934 <LI>Added sanity check for root logical volumes in regions for
0935 G4GlobalFastSimulationManager. UI command /param/showSetup works also
0936 if no parallel world is present.</LI>
0937 <LI>Fixed minor Coverity defect for uninitialised data in G4FastStep.</LI>
0938 </UL></LI>
0939 <LI><B>Scoring</B>
0940 <UL>
0941 <LI>G4ParallelWorldProcess, G4ParallelWorldScoringProcess: use new PDG
0942 code for optical photon, "-22".</LI>
0943 <LI>G4ParallelWorldProcess: make some private methods and data members
0944 protected so that this class can be extendable.</LI>
0945 </UL></LI>
0946 <LI><B>Transportation</B>
0947 <UL>
0948 <LI>Substantial reorganisation of G4Transportation::AlongStepGPIL() to use
0949 values already in cache, to reduce the number of branches, and to use
0950 extra local variables for track properties to avoid indirections.
0951 Resulting in a persistent reduction of instruction-TLB misses.</LI>
0952 </UL></LI>
0953 </UL>
0954
0955 <A NAME="geo-notes">
0956 <H3><I>Geometry</I></H3></A>
0957 <UL>
0958 <LI><B>Magnetic field</B>
0959 <UL>
0960 <LI>New class G4DriverReporter to print progress of drivers.</LI>
0961 <LI>New templated classes to avoid virtual calls for field, equation,
0962 steppers (from Google Summer of Code 2014 project): equation of motion
0963 is now templated on the field type; steppers are templated on the type
0964 of equation and the number of integration variables.
0965 These classes can be combined also with the templated drivers to avoid
0966 virtual calls in all the levels up to the chord finder's call to
0967 the integration driver. </LI>
0968 <LI>The default integration method for field propagation in a pure magnetic
0969 field is changed. The constructor of G4ChordFinder by default uses the
0970 new templated stepper G4TDormandPrince45 in place of
0971 G4DormandPrince745.</LI>
0972 <LI>The types of templated steppers currently available include
0973 the efficient, embedded Runge-Kutta intermediate order steppers:
0974 <UL>
0975 <LI>G4TDormandPrince45: based on G4DormandPrince745, embedded
0976 5<SUP>th</SUP> order; the default.</LI>
0977 <LI>G4TCashKarpRKF45: based on G4CashKarpRKF45, 5<SUP>th</SUP> order;
0978 first embedded RK.</LI>
0979 </UL>
0980 These are the most advanced templated steppers.
0981 G4TDormandPrince45 provides an endpoint derivative (FSAL) and can be
0982 used with interpolation.</LI>
0983 <LI>The second type of templated steppers are non-embedded of 4<SUP>th</SUP>
0984 and 3<SUP>rd</SUP> order:
0985 <UL>
0986 <LI>G4TClassicalRK4: based on G4ClassicalRK4, 4<SUP>th</SUP> order;
0987 robust and the old default;</LI>
0988 <LI>G4TSimpleHeum: based on G4SimpleHeum, 3<SUP>rd</SUP> order; a
0989 lower order alternative;</LI>
0990 </UL>
0991 which break up a step into half steps to estimate error, meaning
0992 they need several additional field evaluation calls than embedded
0993 steppers of the same order.
0994 The reliability of their error estimation has different properties; so
0995 it may be more robust in some cases.
0996 Primarily for comparison and cross-checking of results.</LI>
0997 <LI>The final available type of low order templated steppers are very low
0998 order:
0999 <UL>
1000 <LI>G4TSimpleRunge: based on G4SimpleRunge, 2<SUP>nd</SUP> order;</LI>
1001 <LI>G4TExplicitEuler: based on G4ExplicitEuler, 1<SUP>st</SUP> order,
1002 lowest order (the simplest checks only).</LI>
1003 </UL>
1004 only for tests or specialised uses.</LI>
1005 <LI>Additional intermediate and higher-order steppers are not yet
1006 available in templated form.</LI>
1007 <LI>Adapted templated G4TDormandPrince45 for use with G4InterpolationDriver.
1008 For a stepper to be used with this, it must implement the method
1009 GetSpecificEquation().
1010 Templated steppers must provide a return type which is the exact
1011 equation type of the template.</LI>
1012 <LI>Experimental versions of fields with inline methods (G4TUniformMagField
1013 and G4TQuadrupoleMagField) demonstrate how the field evaluation
1014 GetFieldValue() can also be inlined. Meant for use if the evaluation is
1015 simple -- and to be avoided if it is complex when inlining it could
1016 increase the code size significantly. </LI>
1017 <LI>Configured G4ChordFinder to use templated G4TDormandPrince45 as the
1018 default stepper for magnetic fields (when one is not chosen explicitly
1019 by the application). Speed improvement is observed in benchmarks.
1020 Note: currently it uses the simpler G4InterpolationDriver
1021 in place of a customised G4BFieldIntegrationDriver which
1022 multiplexed an interpolation driver for short steps with a
1023 helix-based driver for long steps.
1024 Applications with many <TT>large-angle</TT> steps in magnetic field may
1025 perform more reliably and faster by restoring the use of the customised
1026 driver - e.g. by using the G4ChordFinder constructor with <TT>nullptr</TT>
1027 as third argument and fourth argument <TT>stepperDriverId=4</TT>.</LI>
1028 <LI>G4VIntegrationDriver and dependent driver classes: added new virtual
1029 method StreamInfo(), and used it to implement their operator<<().</LI>
1030 <LI>G4MagInt_Driver: fixed max iterations & clarified that its method
1031 ComputeNewStepSize() does not (yet) respect maximum reduction factor
1032 (0.1); this is to enable comparisons with new G4IntegrationDriver<>
1033 implementation.</LI>
1034 <LI>G4OldMagIntDriver maintains all old behaviour of G4MagInt_Driver.</LI>
1035 <LI>In G4MultiLevelLocator, added ability to record in a 'whiteboard',
1036 the start/end steps of integration intervals, to allow one to diagnose
1037 issues like negative or zero steps occurrences. Includes new classes
1038 G4LocatorChangeLogger and G4LocatorChangeRecord.</LI>
1039 <LI>G4PropagationInField: improved ClearPropagatorState() method.</LI>
1040 <LI>Implemented move constructor and operator for G4FieldTrack.</LI>
1041 </UL></LI>
1042 <LI><B>Management</B>
1043 <UL>
1044 <LI>Added deleted declarations for copy constructor and assignment operators
1045 on store singletons. Based on
1046 <A HREF="https://github.com/Geant4/geant4/pull/12">GitHub PR#12</A> report.</LI>
1047 <LI>Reduced size of G4LogicalVolume objects by reordering class members.</LI>
1048 <LI>Fix in the calculation of normal in G4UAdapter::DistanceToOut().</LI>
1049 <LI>Adopt new convention for location of headers in VecGeom for wrappers.</LI>
1050 </UL></LI>
1051 <LI><B>Navigation</B>
1052 <UL>
1053 <LI>Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.
1054 Enable use of whiteboard for logging/debugging in G4MultiLevelLocator,
1055 if "check-mode" in navigation is being activated through UI command.</LI>
1056 <LI>Reordered data members in G4Navigator, to reduce object size.</LI>
1057 <LI>G4ReplicaNavigation: relaxed condition for step correction in
1058 ComputeStep(), to reduce cases of zero steps in combined rho/phi
1059 replications.</LI>
1060 <LI>Fixed Coverity defects in G4RegularNavigation for uninitialised data.</LI>
1061 <LI>Added G4GeomTestVolume::TestOverlapInTree(), alternative method for
1062 testing overlaps on a tree of volumes, avoiding to check hierarchies
1063 from copies of the same volume in the tree. Considerably speeding up
1064 recursive overlaps check through UI commands.</LI>
1065 </UL></LI>
1066 <LI><B>Solids (CSG)</B>
1067 <UL>
1068 <LI>G4Box: migration to use G4QuickRand in GetPointOnSurface().</LI>
1069 <LI>G4CutTubs: implemented specific GetCubicVolume() and GetSurfaceArea();
1070 revised implementation in GetPointOnSurface(), now faster and uniform;
1071 reimplemented IsCrossingCutPlanes(), to now reports a problem only in
1072 case cut planes are crossing inside the lateral surface; removed
1073 obsolete internal method GetMaxMinZ().</LI>
1074 <LI>G4Trd: added two pre-calculated values for fast calculation of lateral
1075 areas; revised implementation in GetPointOnSurface().</LI>
1076 <LI>G4Trap: fixed calculation of normal for points on edge in
1077 SurfaceNormal(). Improved code for Inside().
1078 Added array with precalculated face areas; added
1079 SetCachedValues() method and revised implementation in
1080 GetPointOnSurface().</LI>
1081 <LI>G4Tubs: revised implementation in GetPointOnSurface().</LI>
1082 <LI>G4Sphere: optimised implementation of InitializeThetaTrigonometry(),
1083 replacing call to std::tan() with pre-calculated quantities.
1084 Addressing problem report
1085 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2289">#2289</A>.</LI>
1086 <LI>G4CSGSolid: explicit implementation of G4RandomRadiusInRing(rmin,rmax)
1087 based on G4QuickRand.</LI>
1088 <LI>Adopt new convention for location of headers in VecGeom for all
1089 wrappers.</LI>
1090 </UL></LI>
1091 <LI><B>Solids (Specific)</B>
1092 <UL>
1093 <LI>G4Polycone, G4GenericPolycone, G4Polyhedra: implemented specific
1094 GetSurfaceArea(), GetCubicVolume(); no longer relying on MC method.</LI>
1095 <LI>G4Polycone: Revised GetPointOnSurface(); added protected auxiliary
1096 method SetSurfaceElements(); removed GetPointOnCone(), GetPointOnTubs(),
1097 GetPointOnCut() and GetPointOnRing().</LI>
1098 <LI>G4GenericPolycone: revised GetPointOnSurface(); added protected
1099 auxiliary method SetSurfaceElements().</LI>
1100 <LI>G4Polyhedra: revised GetPointOnSurface(); added protected auxiliary
1101 method SetSurfaceElements(); removed GetPointOnPlane() and
1102 GetPointOnTriangle().</LI>
1103 <LI>Added GetTwistedFaceSurfaceArea() in G4GenericTrap and fixed
1104 calculation of surface area in unit tests.</LI>
1105 <LI>Adopt new convention for location of headers in VecGeom for all
1106 wrappers.</LI>
1107 </UL></LI>
1108 <LI><B>Volumes</B>
1109 <UL>
1110 <LI>Use std::map instead of std::vector to define
1111 G4LogicalBorderSurfaceTable, to speedup search of surfaces in large
1112 tables. Addressing
1113 <A HREF="https://github.com/Geant4/geant4/pull/6">GitHub PR#6</A>.</LI>
1114 <LI>G4PVPlacement: in CheckOverlaps(), added keeping of bounding box from
1115 previous solid and complementary comparison of bounding spheres.</LI>
1116 </UL></LI>
1117 </UL>
1118
1119 <A NAME="glob-notes">
1120 <H3><I>Global</I></H3></A>
1121 <UL>
1122 <LI>G4Physics2DVector: extended number of characters in the table dump from 5
1123 to 8; use similar algorithm for bin selection as in 1D vector;
1124 if any dimension is less than 2 throw a G4Exception.</LI>
1125 <LI>G4PhysicsVector: use same code for interpolation for all types of
1126 PhysicsVector; removed obsolete unused methods; maximally use const
1127 variables; preserve precision of printout.</LI>
1128 <LI>G4PhysicsLinearVector: added checks on vector length: if it is less
1129 than 2 throw a G4Exception.</LI>
1130 <LI>G4PhysicsLogVector: added checks on vector length: if it is less
1131 than 3 throw a G4Exception.</LI>
1132 <LI>G4PhysicsLinearVector, G4PhysicsLogVector: fixed scale of energy; this
1133 problem does not affect results in general, it fixes data table scale
1134 and may change dEdx and cross-sections numerically on small level.
1135 More accurate checks in class constructors. Fixed Coverity warnings.</LI>
1136 <LI>Added new constructor for G4PhysicsOrderedFreeVector.</LI>
1137 <LI>Added G4Backtrace header for printing backtraces from raised signals.
1138 A more generic implementation of G4FPEDetection that can catch FPE issues
1139 but, by default, does not interfere with it. The default backtraced signals
1140 are: SIGQUIT, SIGILL, SIGABRT, SIGKILL, SIGBUS, SIGSEGV.
1141 The default signals can be overridden within user-code before and after the
1142 creation of the run-manager (See "Usage" section in G4Backtrace description).
1143 The default signals can be overridden via environment variable G4BACKTRACE.
1144 Can be enabled by setting GEANT4_BUILD_BUILTIN_BACKTRACE option at
1145 configuration.</LI>
1146 <LI>Added new G4Profiler header; implemented new profiling routines for
1147 TiMemory which allow per-{run,event,track,step} configuration w.r.t. when
1148 to profile, what to collect in the profiler, and how to label the entries.
1149 Also, includes user-profiling config and macros. Use of TIMEMORY_AUTO_TIMER
1150 is now deprecated.</LI>
1151 <LI>Removed condition restricting to <TT>__x86_64__</TT> architectures for
1152 macOS configuration in <TT>tls.hh</TT>.</LI>
1153 <LI>C++11 revision in 'management' and 'HEPNumerics' modules; general
1154 code cleanup/formatting.</LI>
1155 <LI>Updated e_SI value for electron charge in G4SIunits.h, based
1156 on May 2019 redefinition of SI units.</LI>
1157 <LI>Removed use of deprecated G4USE_STD11 flag.</LI>
1158 <LI>Fix to CMake script to support new CMake system.</LI>
1159 <LI>Updated date of release for 10.7.</LI>
1160 </UL>
1161
1162 <A NAME="greps-notes">
1163 <H3><I>Graphical Representations</I></H3></A>
1164 <UL>
1165 <LI>HepPolyhedron, G4Polyhedron: added HepPolyhedronTet.</LI>
1166 <LI>G4VisAttributes: clarify that if number of cloud points (for cloud style
1167 drawing) is <= 0, this is to be interpreted as under control of the
1168 viewer, i.e., to be decided by the viewer. Otherwise this number is to be
1169 drawn. Zero is the default value, which may be changed by invoking the
1170 method SetForceNumberOfCloudPoints(); also possible to force cloud
1171 drawing with SetForceCloud().</LI>
1172 <LI>Fixed graphical representation for G4Hype shape.
1173 Addressing problem report
1174 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2295">#2295</A>.</LI>
1175 <LI>Fixed minor Coverity defect in BooleanProcessor::assembleFace().</LI>
1176 <LI>Improved deprecation message for G4AttDefs::operator<<().</LI>
1177 </UL>
1178
1179 <A NAME="had-notes">
1180 <H3><I>Hadronic Processes</I></H3></A>
1181 <UL>
1182 <LI>Fixed text typos in printout. Problem report
1183 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
1184 and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
1185 <LI><B>Cross sections</B>
1186 <UL>
1187 <LI>G4ElNeutrinoNucleusTotXsc: new class for (nu_e,anti_nu_e)-nucleus
1188 cross-sections.</LI>
1189 <LI>G4PhotoNuclearCrossSection: corrected threshold for
1190 gamma + p -> pi0 + p, extended for use on 3H and 3He targets.</LI>
1191 <LI>G4HadronNucleonXsc: general clean-up of the code; use PDG number
1192 instead of particle pointer; removed instantiation of most of hadrons;
1193 optimisation of parameters.
1194 <LI>G4IonProtonCrossSection: added cross-sections for light ions.</LI>
1195 <LI>G4ParticleInelasticXS, G4NeutronCaptureXS, G4NeutronElasticXS,
1196 G4NeutronInelasticXS: updates in support for G4PARTICLEXS-3.x data
1197 structure - for capture and elastic applied low-energy parameterisation
1198 starting from second energy point of the data set (better agreement
1199 with HP cross-sections); exclude special treatments for Hydrogen and
1200 Helium isotopes, because data for fission reactions are available in
1201 the new data set; extended list of isotopes.
1202 Fixed fusion cross-sections.
1203 Moved run-time method GetPhysicsVector() to be inlined; added G4VERBOSE
1204 compilation flag and general clean-up of classes (reuse existing high
1205 energy Glauber-Gribov cross-section instances).</LI>
1206 <LI>G4EMDissociationCrossSection: fixes to avoid numerical crashes for ions
1207 at low energies (now setting to zero the cross-section for ion kinetic
1208 energies below 2 MeV) and to avoid to create unphysical clusters of
1209 neutrons (now forbidding to remove one proton from any hydrogen ions).
1210 Addressing problem report
1211 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2254">#2254</A>.</LI>
1212 <LI>Added new cross-section class G4GammaNuclearXS.</LI>
1213 <LI>In G4ParticleInelasticXS, added gamma cross-section.</LI>
1214 <LI>Removed unused class G4ProjectileFragmentCrossSection.</LI>
1215 <LI>Fixed compilation warnings on clang-10.</LI>
1216 </UL></LI>
1217 <LI><B>Management</B>
1218 <UL>
1219 <LI>G4HadronicProcess: fixed Coverity defect warning in EP check method for
1220 the case when primary particle remains in the interaction.
1221 Fixed warnings when environmental variables G4Hadronic_*Level are used.
1222 Removed unused flag.</LI>
1223 <LI>G4HadronicProcessStore: in the method Dump(), check the internal
1224 verbosity level as well as the newly introduced global hadronic
1225 verbosity level, returning immediately (without printing anything) if
1226 one of these is 0. Extended default initialisation printout to sigma-,
1227 D-, B-. Removed check for G4HadronicException where it cannot be;
1228 limit printout on kaon0 in final state.
1229 Extended default initialisation printout to anti_lambda.
1230 Use verbosity level from the G4HadronicParameters class, added
1231 printout of cross-section factor.</LI>
1232 <LI>G4HadronicEPTestMessenger, G4HadronicProcess: recommended for users
1233 the new UI commands <TT>/process/had/heptst/*Level</TT>, while the
1234 old ones <TT>/heptst/*Level*</TT> are deprecated, but still valid,
1235 and will be removed in the next major release, Geant4 11; kept the
1236 environmental variables <TT>G4Hadronic_*Level</TT> for system testing,
1237 but not recommended for users.</LI>
1238 <LI>Removed use of deprecated G4USE_STD11 flag.</LI>
1239 <LI>G4HadLeadBias: replaced 'G4int' with 'size_t' to fix warnings
1240 on Windows.</LI>
1241 <LI><U>Models Management</U>:
1242 <UL>
1243 <LI>G4HadronicInteractionRegistry: delete HP and PHP at the end of run.</LI>
1244 <LI>G4HadronicInteraction: provide default implementation for all virtual
1245 methods.</LI>
1246 <LI>G4VHighEnergyGenerator, G4VIntraNuclearTransportModel,
1247 G4VPreCompoundModel: cleaned up: removed old commented lines,
1248 code format, C++11 keywords.</LI>
1249 </UL></LI>
1250 </UL></LI>
1251 <LI><B>Processes</B>
1252 <UL>
1253 <LI>G4MuNeutrinoNucleusProcess, G4ElNeutrinoNucleusProcess: extended to
1254 nu_mu, anti_nu_mu, nu_e and anti_nu_e.</LI>
1255 <LI>Removed the inelastic processes for heavy hadron - nucleus interactions,
1256 no longer necessary because similar inelastic processes are created by
1257 G4HadronicBuilder.</LI>
1258 </UL></LI>
1259 <LI><B>Stopping</B>
1260 <UL>
1261 <LI>G4HadronicAbsorptionFritiof,
1262 G4HadronicAbsorptionFritiofWithWithBinaryCascade: simplified
1263 instantiation of the FTF model, and avoid to destruct its components.</LI>
1264 <LI>G4MuonicAtomDecay: fixed Coverity defect warning.</LI>
1265 </UL></LI>
1266 <LI><B>Utilities</B>
1267 <UL>
1268 <LI>G4HadronicParameters: added modifiers for Cascade-FTF transition.
1269 Created the new messenger.
1270 Added Get/Set methods for cross-section scaling factors separately
1271 for nucleons, pions, other hadrons, and leptons.
1272 Here is an example on how to use them:
1273 <UL>
1274 <LI>First enable the scaling of cross section (by default disabled):
1275 <TT>G4HadronicParameters::Instance()->SetApplyFactorXS( true ); </TT></LI>
1276 <LI>Scaling up the nucleon inelastic cross sections by 10% :
1277 <TT>G4HadronicParameters::Instance()->SetXSFactorNucleonInelastic( 1.10 );</TT></LI>
1278 <LI>Scaling down the pion elastic cross sections by 12% :
1279 <TT>G4HadronicParameters::Instance()->SetXSFactorPionElastic( 0.88 );</TT></LI>
1280 <LI>Scaling up all the other hadrons inelastic cross sections by 20% :
1281 <TT>G4HadronicParameters::Instance()->SetXSFactorHadronInelastic( 1.20 );</TT></LI>
1282 </UL>
1283 Added high energy limit for low-energy physics.
1284 Disabled charm and bottom hadrons by default.</LI>
1285 <LI>G4HadronicParametersMessenger: created new messenger class for
1286 G4HadronicParameters. Added the global verbosity level for hadronics:
1287 with the UI command <TT>/process/had/verbose 0</TT> the print-out
1288 of hadronic physics is completely switched off. </LI>
1289 <LI>G4HadronicParameters, G4HadronicParametersMessenger: added parameter
1290 for the upper energy limit (default 100 TeV); for instance, to set
1291 it to 1 PeV, <TT>/process/had/maxEnergy 1000.0 TeV</TT>.
1292 Added Boolean switch that allows to apply the Cosmic Ray (CR)
1293 coalescence algorithm to the secondaries produced by a string model
1294 (which can be useful in particular for Cosmic Ray applications); by
1295 default it is disabled, and to switch it on:
1296 <TT>/process/had/enableCRCoalescence true</TT></LI>
1297 <LI>G4HadFinalState: fixed warning on Windows for implicit conversions
1298 from 'size_t' to 'G4int'.</LI>
1299 <LI>Completely disable G4HadSignalHandler.</LI>
1300 <LI><U>Models Utilities</U>:
1301 <UL>
1302 <LI>G4Fragment: introduced an optional parameter to switch off some
1303 warnings. By default, nothing is changed (i.e. the warnings are
1304 printed out as usual); only for electromagnetic dissociation, the
1305 parameter is set to switch off otherwise too frequent warning messages.
1306 Addressing problem report
1307 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2254">#2254</A>.</LI>
1308 <LI>G4KineticTrack: added initialization of an array as suggested by
1309 Coverity. Used consistently pre-increment and pre-decrement instead
1310 of post-increment and post-decrement, respectively.</LI>
1311 <LI>Fixed compilation warnings on clang-10.</LI>
1312 </UL></LI>
1313 </UL></LI>
1314 <LI><B>Abla</B>
1315 <UL>
1316 <LI>Fixed reported Coverity defects.</LI>
1317 </UL></LI>
1318 <LI><B>Bertini Cascade</B>
1319 <UL>
1320 <LI>Fixed non-conservation warnings coming from G4HadronicProcess due to
1321 sub-threshold reactions in Bertini. Sub-threshold reactions are now
1322 treated as having a "non-interaction" final state, that is, the initial
1323 particles are simply copied to the final state.</LI>
1324 <LI>Fixed compilation warnings on clang-10.</LI>
1325 </UL></LI>
1326 <LI><B>Binary Cascade</B>
1327 <UL>
1328 <LI>G4BinaryCascade: fixed memory leak at exit.</LI>
1329 </UL></LI>
1330 <LI><B>De-excitation</B>
1331 <UL>
1332 <LI>G4PhotonEvaporation, G4DeexPrecoParameters, G4DeexParametersMessenger:
1333 added extra flag 'IsomerProduction'; if enabled, photon evaporation
1334 samples the time of gamma transition; added C++ interface and UI command
1335 allowing to set this flag; radioactive decay constructor should enable
1336 this parameter. Addressing problem report
1337 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2226">#2226</A>.</LI>
1338 <LI>G4DeexPrecoParameters: in method Dump(), check the global verbosity
1339 level of hadronics (if zero, do not print anything).
1340 Verbose level is defined by G4HadronicParameters class or by the local
1341 verbose level.</LI>
1342 <LI>G4DeexParametersMessenger: removed obsolete UI command.</LI>
1343 <LI>G4NuclearLevelData: use 'Zmax' for initialisation before the run.
1344 Reduced usage of mutex locks; read all level data at beginning of
1345 the run.</LI>
1346 <LI>G4ExcitationHandler: verbose level is defined by G4HadronicParameters
1347 class or by the hardcoded local verbose level defined only for
1348 debugging. Use 'Zmax+1' instead of 'Zmax' for nuclear level
1349 initialisation.</LI>
1350 <LI>Fixed compilation warnings on clang-10.</LI>
1351 </UL></LI>
1352 <LI><B>Elastic scattering</B>
1353 <UL>
1354 <LI>G4HadronElastic: added numerical protection against precision loss.
1355 Addressing problem report
1356 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2253">#2253</A>.</LI>
1357 <LI>G4QuasiElRatios: extended to charmed and bottom hadrons.
1358 The simplified treatment adopted is the following: to treat all heavy
1359 mesons having constituent charm or bottom quark as a meson with strange
1360 quark, like K-, and all heavy mesons having constituent anti-charm or
1361 anti-bottom anti-quark as a meson with anti-strange quark, like K+;
1362 for baryons, all heavy baryons are treated as Lambda and all heavy
1363 anti-baryons are treated as anti-proton/anti-neutron.
1364 Fixed memory leak at exit.</LI>
1365 </UL></LI>
1366 <LI><B>Electromagnetic Dissociation</B>
1367 <UL>
1368 <LI>G4EMDissociation: fix Lorentz kinematics, responsible for causing
1369 energy-momentum violations. Switched off too frequent warning messages
1370 by G4Fragment. Addressing problem report
1371 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2254">#2254</A>.</LI>
1372 </UL></LI>
1373 <LI><B>INCLXX</B>
1374 <UL>
1375 <LI>G4INCLXXInterfaceStore: in method EmitBigWarning(), check the global
1376 verbosity level of hadronics (if zero, do not print anything).</LI>
1377 <LI>Fixed compilation warnings on clang-10.</LI>
1378 </UL></LI>
1379 <LI><B>Lepto-nuclear</B>
1380 <UL>
1381 <LI>G4NuMuNucleusCcModel, G4NeutrinoNucleusModel: new access methods
1382 and minor fixes in in nu-mu nucleus model.</LI>
1383 <LI>Added classes G4ANuElNucleusCcModel and G4ANuElNucleusNcModel
1384 for anti_nu_e. Initialization from G4PARTICLEXS (neutrino/anti_nu_e).</LI>
1385 <LI>Added classes G4NuElNucleusCcModel and G4NuElNucleusNcModel
1386 for nu_e. Initialization from G4PARTICLEXS (neutrino/nu_e).</LI>
1387 <LI>Added classes G4ANuMuNucleusCcModel and G4ANuMuNucleusNcModel
1388 for anti_mu_nu. Initialization from G4PARTICLEXS (neutrino/anti_nu_mu).</LI>
1389 <LI>G4NuMuNucleusCcModel, G4NuMuNucleusNcModel, G4NeutrinoNucleusModel:
1390 rearrangement of initialisation methods and arrays.
1391 Fixes in CoherentPion() method, cleanup of Cc and Nc.</LI>
1392 <LI>G4NeutrinoNucleusModel: added K+, K- in final state.</LI>
1393 <LI>Fixed Coverity warnings for defects.</LI>
1394 </UL></LI>
1395 <LI><B>Particle High Precision</B>
1396 <UL>
1397 <LI>Allow printout only if the global hadronic verbosity level is not
1398 zero.</LI>
1399 <LI>G4ParticleHPHash, G4ParticleHPCaptureFS: fixes for implicit conversion
1400 between 'size_t' and 'G4int', to avoid warnings on Windows.</LI>
1401 <LI>G4FissionProductYieldDist: fixed thread competition in method
1402 G4GetFission(), by placing an auto lock.
1403 Addressing problem report
1404 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2234">#2234</A>.</LI>
1405 <LI>Fix in constructor of G4ParticleHPChannel so that two fission fragment
1406 models can be active at the same time, if Wendt model is active;
1407 turn off standard fragment production model.
1408 Addressing problem report
1409 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2233">#2233</A>.</LI>
1410 <LI>Use <TT>GEANT4_BUILD_PHP_AS_HP</TT> CMake option to enable
1411 <TT>PHP_AS_HP</TT>, retiring the use of <TT>PHP_AS_HP</TT> environment
1412 variable (i.e. still valid, but deprecated, to be removed at the next
1413 major release, Geant4 11).</LI>
1414 <LI>G4ParticleHPMessenger: added new UI macro command
1415 <TT>use_Wendt_fission_model</TT> related to the use of the Wendt
1416 fission model; make sure that no more than one fission fragment model
1417 is active.</LI>
1418 <LI>G4ParticleHPManager: added a new variable related to the use of the
1419 Wendt fission model; throw a <TT>JustWarning</TT> exception when the
1420 environmental variables are used (to remind that they are still valid
1421 but deprecated, and will be removed in future version; added new method
1422 DumpSetting() can be called somewhere to printout once the values of
1423 its parameters.
1424 For completeness, here is the complete list of ParticleHP UI commands:
1425 <UL>
1426 <LI>Force use of the Photon Evaporation model, instead of the
1427 neutron capture final state (default: false)
1428 <TT>/process/had/particle_hp/use_photo_evaporation true</TT></LI>
1429 <LI>Use only exact isotope data files, instead of allowing nearby
1430 isotope files to be used, if the exact file is not available,
1431 the cross section will be set to zero (default: false):
1432 <TT>/process/had/particle_hp/skip_missing_isotopes true</TT></LI>
1433 <LI>Switch off the Doppler broadening due to the thermal motion of the
1434 target nucleus, with a significant CPU performance advantage
1435 (default: false):
1436 <TT>/process/had/particle_hp/neglect_Doppler_broadening true</TT></LI>
1437 <LI>Disable the adjustment of final state for getting better
1438 conservation (default: false):
1439 <TT>/process/had/particle_hp/do_not_adjust_final_state true</TT></LI>
1440 <LI>Enable the generation of fission fragments (default: false):
1441 <TT>/process/had/particle_hp/produce_fission_fragment true</TT></LI>
1442 <LI>Enable Wendt fission model (default: false):
1443 <TT>/process/had/particle_hp/use_Wendt_fission_model true</TT></LI>
1444 <LI>Enable the use of NRESP71 model for neutron on Carbon reaction
1445 (default: false):
1446 <TT>/process/had/particle_hp/use_NRESP71_model true</TT></LI>
1447 <LI>Set verbose level of the ParticleHP package (default: 1):
1448 <TT>/process/had/particle_hp/verbose ...</TT></LI></LI>
1449 </UL>
1450 <LI>G4ParticleHPInelastic, G4ParticleHPManager: enabled printout of the
1451 physics parameters (only once and with a format similar to
1452 Precompound/de-excitation and RadioativeDecay).</LI>
1453 <LI>G4ParticleHPChannel: moved environmental variable related to the use
1454 of the Wendt fission model from this class to G4ParticleHPManager.</LI>
1455 <LI>G4ParticleHPContAngularPar, G4ParticleHPInelasticBaseFS,
1456 G4ParticleHPEnAngCorrelation, G4ParticleHPFinalState: replaced use of
1457 the environmental variable <TT>G4PHP_DO_NOT_ADJUST_FINAL_STATE</TT>
1458 with the equivalent in G4ParticleHPManager, GetDoNotAdjustFinalState().</LI>
1459 </UL></LI>
1460 <LI><B>Parton-String</B>
1461 <UL>
1462 <LI>Improved treatment of antibaryon interactions in QGS.
1463 In G4QGSMFragmentation, corrected the treatment of low-mass
1464 diquark-antidiquark strings. In addition to this, introduced the Mt
1465 distribution of produced hadrons.
1466 In G4VLongitudinalStringDecay, introduced in SetMinimalStringMass()
1467 a check that the strings are of allowed type: quark-antiquark,
1468 diquark-antidiquark, quark-diquark and antiquark-antidiquark.
1469 Introduced also for diquark-antidiquark strings a special algorithm
1470 (already present for the other types of allowed strings) for treating
1471 low-mass strings with masses below known hadrons.</LI>
1472 <LI>Improved agreement of FTF simulations with NA49 experimental data (on
1473 Pt-Xf correlations for various particles produced in pp interactions at
1474 158 GeV/c).</LI>
1475 <LI>In G4QuarkExchange, the reggeon exchanges are now treated as
1476 annihilation and creation of quark-antiquark pairs (to reflect in
1477 inelastic processes the non-vacuum reggeon exchanges present in
1478 antiparticle-particle elastic scattering amplitudes).</LI>
1479 <LI>G4VLongitudinalStringDecay, G4LundStringFragmentation,
1480 G4ExcitedStringDecay: inherit from G4HadronicInteraction; destruction
1481 of these models at the end of run is now done by the hadron model
1482 store; removed implementations of private operators.</LI>
1483 <LI>G4VLongitudinalStringDecay: in the method SetMinMasses(), set the
1484 constituent masses of charm and bottom quarks; introduced also a new
1485 pre-processor option for debugging heavy hadrons, switched off by
1486 default; made the logic clearer for Coverity. Code cleanup. Improved
1487 comments.</LI>
1488 <LI>G4VStringFragmentation: use inheritance from G4HadronicInteraction;
1489 removed implementations of private operators.</LI>
1490 <LI>G4SPBaryonTable: changed return type of the method 'length()' from
1491 'double' to 'size_t', to fix warnings on Windows.</LI>
1492 <LI>G4FTFModel: attempt to fix a crash rarely observed in pion+proton
1493 reaction: added tolerance of 1.e-10 for numerical computation;
1494 cleaned-up sampling of Pt for residual nucleons (limit argument for
1495 G4Exp to 200 instead of 1e+9). Extended debug printout; use
1496 pre-increment instead of post-increment in loops; removed commented
1497 lines and unused variables.</LI>
1498 <LI>G4FTFModel, G4FTFParticipants: clean-up: removed unused methods,
1499 delete operators, use of C++11 keywords.</LI>
1500 <LI>G4VParticipants, G4VPartonStringModel, G4VStringFragmentation,
1501 G4StringModel: clean-up; removed unused methods, delete operators,
1502 use of C++11 keywords.</LI>
1503 <LI>G4VPartonStringModel: introduced a new pre-processor option for
1504 debugging heavy hadrons, switched off by default.</LI>
1505 <LI>G4QGSModel: clean-up; removed unused methods, delete operators, use of
1506 C++11 keywords, moved inline implementation to source.</LI>
1507 <LI>G4QGSParticipants: added protection for G4Exp, fixing outstanding
1508 precision loss in gamma+proton interactions.</LI>
1509 <LI>G4DiffractiveExcitation: extended to handle heavy (charm and bottom)
1510 hadrons; introduced also a new pre-processor option for debugging
1511 heavy hadrons, switched off by default. Added protection against
1512 inexisting excited hyperon states (Sigma* and Xi*).
1513 Implemented new splitting of excited hadrons into quark-antiquark or
1514 quark-diquark in the method CreateStrings().
1515 Additional code improvements.</LI>
1516 <LI>G4FTFAnnihilation: removed useless check against inexisting excited
1517 hyperon states. Added initialization of 2-dimensional arrays as
1518 suggested by Coverity. Used consistently pre-increment instead of
1519 post-increment.</LI>
1520 <LI>G4FTFParameters: extended FTF configuration interface to include
1521 parameters of quark exchange with and without excitation, for
1522 baryon and pion projectiles.</LI>
1523 <LI>G4LundStringFragmentation, G4QGSMFragmentation: if the flag for heavy
1524 (charmed and bottom) hadrons is enabled, then non-zero probabilities
1525 for c-cbar and b-bbar creation from the vacuum are set, allowing
1526 charmed and bottom hadrons to be created during the string fragmentation
1527 of ordinary (i.e. not heavy) projectile hadron nuclear reactions.</LI>
1528 <LI>G4LundStringFragmentation: extension to charm and bottom quarks of the
1529 methods Quark_AntiQuark_lastSplitting() and Quark_Diquark_lastSplitting();
1530 added protections in the method FragmentString() to avoid rare crashes
1531 seen with heavy hadrons. Introduced a new parameter (as a class data
1532 member), a kind of "temperature" for sampling the Pt of produced
1533 hadrons; this parameter has been tuned for different fragmentation
1534 processes. The string direction (one of string's properties, whose
1535 value can be either +1 for projectile-like strings or -1 for target-like
1536 strings) is now treated correctly and used to invert the results of the
1537 string fragmentation (in the string rest frame) when the string
1538 direction is -1.</LI>
1539 <LI>G4HadronBuilder: fixed condition in the method Barion() to take into
1540 account the extension to charm and bottom quarks; moreover, for both
1541 Meson() and Barion() methods, we have to force by hand that the heavy
1542 hadron produced by the string fragmentation is one of the few available
1543 in Geant4 (in particular, all heavy hadron resonances are transformed
1544 into close heavy hadron ground states). Introduced also a new
1545 pre-processor option for debugging heavy hadrons, switched off by
1546 default.</LI>
1547 <LI>G4ExcitedStringDecay: added protection in the FragmentStrings() method
1548 to avoid rare crashes seen with heavy hadrons.</LI>
1549 <LI>G4BaryonSplitter, G4SPBaryon: extension to charmed and bottom
1550 baryons and anti-baryons.</LI>
1551 <LI>G4SingleDiffractiveExcitation, G4QGSDiffractiveExcitation,
1552 G4QuarkExchange: in ExciteParticipants() method of these classes,
1553 extension to charmed and bottom hadrons by assuming a minimum
1554 projectile diffractive mass equal to the PDG mass plus 250 MeV;
1555 in G4QuarkExchange, assumed also 50% for the probability of projectile
1556 diffraction.</LI>
1557 <LI>G4Reggeons: in the constructor, replaced Omega_cc (PDG code #4432)
1558 with Omega_c (PDG code #4332); added comments.</LI>
1559 <LI>G4FragmentingString: erased some inconsistencies.</LI>
1560 </UL></LI>
1561 <LI><B>QMD</B>
1562 <UL>
1563 <LI>G4QMDReaction: added code in ApplyYourself() to get the cross section
1564 when the projectile is a pion.
1565 Replaced data member G4PiNuclearCrossSection with G4BGGPionElasticXS
1566 and G4BGGPionInelasticXS.
1567 In G4QMDGroundStateNucleus constructor, move the check for proton or
1568 neutron projectile earlier in the code so that the baryon number can
1569 be conserved.
1570 Addressing problem report
1571 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2236">#2236</A>.</LI>
1572 </UL></LI>
1573 <LI><B>Radioactive Decay</B>
1574 <UL>
1575 <LI>G4RadioactiveDecayBase, G4RadioactiveDecay: in BuildPhysicsTable(),
1576 check the global hadronic verbosity level before printing out
1577 information.</LI>
1578 <LI>G4RadioactiveDecayBaseMessenger, G4RadioactiveDecaymessenger,
1579 G4RadioactivationMessenger: deprecated old UI commands <TT>/grdm/...</TT>
1580 and introduced new corresponding ones, <TT>/process/had/rdm/...</TT>.</LI>
1581 </UL></LI>
1582 <LI><B>RPG</B>
1583 <UL>
1584 <LI>Fixed Coverity warnings for unused variables.</LI>
1585 </UL></LI>
1586 <LI><B>Theo_High_Energy</B>
1587 <UL>
1588 <LI>G4CRCoalescence: new class for applying coalescence to the secondaries
1589 produced by string model to form deuterons and antideuterons from,
1590 respectively, proton-neutron and antiproton-antineutron pairs with
1591 close momenta; useful in particular for Cosmic Ray applications.</LI>
1592 <LI>G4TheoFSGenerator: introduced temporarily dummy treatment of heavy
1593 (charm and bottom) projectile hadrons at low energies (below 100 MeV).
1594 Cascade models are currently not applicable for heavy hadrons and
1595 string models cannot handle them properly at very low energies, so we
1596 return as final state the initial state unchanged.
1597 Note that, for most applications, this is a safe simplification, giving
1598 that the nearly all slowly moving charm and bottom hadrons decay before
1599 any hadronic interaction can occur.
1600 In method ApplyYourself(), apply G4CRCoalescence to the candidate
1601 secondaries produced by the string model, if the corresponding switch
1602 is enabled (by default it is disabled).</LI>
1603 <LI>G4QuasiElasticChannel: use inheritance from G4HadronicInteraction.
1604 In G4TheoFSGenerator, do not destruct G4QuasiElasticChannel.</LI>
1605 <LI>G4QuasiElasticChannel, G4TheoFSGenerator: clean-up; use of C++11
1606 keywords and loops, removed unused methods, formatting.</LI>
1607 </UL></LI>
1608 </UL>
1609
1610 <A NAME="interc-notes">
1611 <H3><I>Intercoms</I></H3></A>
1612 <UL>
1613 <LI>Added new parameter type 'L' for long int type; added parameter range
1614 check for long int and introducing G4UIcmdWithALongInt command type.</LI>
1615 <LI>Added G4ProfilerMessenger class.</LI>
1616 <LI>Revision for c++11 constructs, code cleanup and formatting.</LI>
1617 <LI>Fixed Coverity defect for uninitialised data in G4UImanager.</LI>
1618 <LI>Removed unnecessary use of deprecated G4USE_STD11 flag in G4AnyMethod.</LI>
1619 </UL>
1620
1621 <A NAME="interf-notes">
1622 <H3><I>Interfaces</I></H3></A>
1623 <UL>
1624 <LI>G4UIQt: replaced use of setTextColor() with adoption of rich text html
1625 tags (improving visibility in macOS Dark Mode).
1626 Send G4cout/G4cerr also to std::cout/cerr if in master thread,
1627 as workaround to the problem of loss of output in the case of a crash or
1628 G4Exception.</LI>
1629 <LI>Fixed deprecation warnings being triggered when using Qt-5.15.</LI>
1630 <LI>Make such that GEANT4_USE_INVENTOR for SoXt activates use of Xm, so there's
1631 no need to check for use of Inventor in setting up Xt, only GEANT4_USE_XM.</LI>
1632 <LI>Use CMake AUTOMOC to automatically generate and compile Moc sources
1633 and fixed CMake script to support new CMake system.</LI>
1634 <LI>Fixed text typos in printout. Problem report
1635 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>.
1636 </UL>
1637
1638 <A NAME="materials-notes">
1639 <H3><I>Materials</I></H3></A>
1640 <UL>
1641 <LI>G4Material: added two new public methods to add elements to a material
1642 with new signature.</LI>
1643 <LI>G4MaterialPropertiesTable: added ConstPropertyExists() method.
1644 Added new methods to access/add properties with G4String and
1645 std::vector.</LI>
1646 <LI>G4MaterialPropertiesTable, G4MaterialPropertiesIndex: added new
1647 properties for scintillation allowing 3 time constants and a second
1648 wavelength shifter in the same material.</LI>
1649 <LI>G4OpticalSurface: handle REALSURFACE optical data files zlib-compressed.
1650 Requires new data-set G4RealSurface-2.2.</LI>
1651 <LI>G4SurfaceProperty, G4OpticalSurface: some c++11 revision and code
1652 formatting; added method to select file to read; replaced long if/else
1653 construct with switch/case.</LI>
1654 <LI>Added G4MicroElecMaterialStructure, G4MicroElecSiStructure classes for
1655 micro-dosimetry simulation.</LI>
1656 <LI>G4OpticalSurface: added protection against access to optical LUT out of
1657 array bounds. Addressing problem report
1658 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2287">#2287</A>.</LI>
1659 <LI>G4Element, G4NistManager, G4NistMaterialBuilder: fixed spelling in
1660 printouts.</LI>
1661 <LI>Fixed text typos in printout. Problem report
1662 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>.
1663 </UL>
1664
1665 <A NAME="parameterisations-notes">
1666 <H3><I>Parameterisations</I></H3></A>
1667 <UL>
1668 <LI>GFLASH:
1669 <UL>
1670 <LI>Substituting Gamma calculation with corresponding STL functions, as
1671 suggested in
1672 <A HREF="https://github.com/Geant4/geant4/pull/3">GitHub PR#3</A>.
1673 Makes LnGamma calculation 1.4 times faster,
1674 and Gamma 1.9 times faster.</LI>
1675 <LI>GFlashSamplingShowerParameterisation: added X0eff calculation.</LI>
1676 <LI>Delete local tuning data in GFlashXXXShowerParameterisation class
1677 destructors.</LI>
1678 </UL></LI>
1679 </UL>
1680
1681 <A NAME="part-notes">
1682 <H3><I>Particles</I></H3></A>
1683 <UL>
1684 <LI>G4ParticleTable: create/destruct only one instance of G4IonTable and
1685 associated messenger; define assignment operator and copy constructor
1686 as deleted; added cache with pointer to selected particle and get/set
1687 methods.</LI>
1688 <LI>G4ShortLivedConstructor: improved constitutent masses of heavy diquarks.</LI>
1689 <LI>G4DynamicParticle: added GetBeta() method.</LI>
1690 <LI>G4OpticalPhoton: define PDG code as "-22".</LI>
1691 <LI>G4NuclideTable: added destruction of messenger.</LI>
1692 <LI>Added move operators to G4DynamicParticle.
1693 Code revision for c++11 and cleanup in 'management' module.</LI>
1694 </UL>
1695
1696 <A NAME="pers-notes">
1697 <H3><I>Persistency</I></H3></A>
1698 <UL>
1699 <LI>Minor c++11 review. Code cleanup and formatting.</LI>
1700 <LI>ASCII:
1701 <UL>
1702 <LI>Fixed Coverity defects warnings.</LI>
1703 </UL></LI>
1704 <LI>GDML:
1705 <UL>
1706 <LI>Fixed reading and writing of const properties of materials.
1707 Matrices of size 1x1 are now used both for writing out and reading in
1708 of const material. This fixes the inconsistency (using constants by the
1709 writer) found in the code. Const material properties with the same name
1710 (in different materials) are now written out with the properties table
1711 address appended.</LI>
1712 <LI>Added new method SetOutputFileOverwrite(G4bool) to the G4GDMLParser,
1713 allowing to set the flag to enable overwriting of the output GDML file.
1714 Addressing problem report
1715 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2288">#2288</A>.
1716 </UL></LI>
1717 </UL>
1718
1719 <A NAME="lst-notes">
1720 <H3><I>Physics lists</I></H3></A>
1721 <UL>
1722 <LI><B>Builders</B>:
1723 <UL>
1724 <LI>Revised all classes to remove unnecessary members, not destruct models
1725 and cross-sections and use updated instantiation of string models.
1726 This should help to achieve full deletion of hadronic physics objects
1727 at the end of run.</LI>
1728 <LI>G4QGSPAntiBarionBuilder: created new class to handle anti_proton and
1729 anti_neutron at high energies with QGSP. For the light anti-ions
1730 (anti_deuteron, anti_triton, anti_He3, and anti_alpha), currently QGSP
1731 cannot handle them, therefore FTFP is used.</LI>
1732 <LI>G4VHyperonBuilder, G4HyperonBuilder, G4HyperonQGSPBuilder: new classes
1733 to allow alternative builders for hyperons (and anti-hyperons).
1734 The class G4HyperonQGSPBuilder uses QGSP model to handle hyperons (and
1735 anti-hyperons) at high energies.</LI>
1736 <LI>G4HyperonFTFPBuilder: now it derives from G4VHyperonBuilder (physics
1737 behind remains unchanged, i.e. it is still based on BERT and FTFP
1738 models).</LI>
1739 <LI>G4HadronicBuilder: new utility class to build kaons, hyperons, and
1740 charm and bottom hadrons.</LI>
1741 <LI>Added second wavelength shifter optical process to the
1742 OrderingParameterTable.</LI>
1743 </UL></LI>
1744 <LI><B>Constructors</B>:
1745 <UL>
1746 <LI><U>decay</U>
1747 <UL>
1748 <LI>G4RadioactiveDecayPhysics: enabled flag for isomer production,
1749 required after fix to problem report
1750 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2226">#2226</A>.
1751 Updated initialisation to be coherent with recent updates in
1752 initialisation of atomic de-excitation. Added EM parameters
1753 definition in ConstructProcess(...); if atomic de-excitation
1754 is not defined add it in each thread but not change EM parameters
1755 in a thread; should address several problems observed in tests.</LI>
1756 <LI>G4DecayPhysics, G4RadioactiveDecayPhysics, G4SpinDecayPhysics,
1757 G4UnknownDecayPhysics: general cleanup. Removed thread local
1758 pointers, avoid deleting objects; use C++11 keywords; use standard
1759 signatures for constructors; define builder type for the main
1760 constructor G4DecayPhysics (bDecay, for others bUnknown).</LI>
1761 </UL></LI>
1762 <LI><U>electromagnetic</U>:
1763 <UL>
1764 <LI>G4GammaGeneralProcess: fixed problem of a concrete process
1765 assigning a step to post step point. Improved printouts and made
1766 some methods protected.</LI>
1767 <LI>G4OpticalPhysics, G4OpticalPhysicsMessenger: added settings for
1768 G4Scintillation to use 3 time constants. Added second wavelength
1769 shifter optical process to constructors.</LI>
1770 <LI>G4EmBuilder: new utility class to allow reducing code duplication
1771 for standard and low-energy EM physics constructors. Includes flag
1772 for allowing choice of multiple-scattering model.</LI>
1773 <LI>G4OpticalPhysics, G4OpticalPhysicsMessenger, G4OpticalProcessIndex:
1774 moved optical physics parameters to new G4OpticalParameters class.
1775 Removed G4OpticalPhysicsMessenger class and replaced by
1776 G4OpticalParametersMessenger. Removed G4OpticalProcessIndex class,
1777 with code now in G4OpticalParameters.</LI>
1778 <LI>G4EmStandardPhysics_option1: switch to use new G4EmBuilder utility;
1779 fixed StepFunction definition.</LI>
1780 <LI>G4EmStandardPhysics_option3: switch to use new G4EmBuilder utility;
1781 use ICRU90 stopping power data for water and air.</LI>
1782 <LI>G4EmStandardPhysics_option4: use ICRU90 data.</LI>
1783 <LI>G4EmStandardPhysicsSS: use the new G4eDPWACoulombScatteringModel
1784 for e-/e+ below 100 [MeV] (for testing this new model).</LI>
1785 <LI>Removed duplicate code by using G4EmBuilder in several constructors,
1786 fixed definition of StepFunction, use the same flag as hadronic
1787 physics to enable EM interaction of b- and c- mesons and baryons.</LI>
1788 <LI>G4EmModelActivator: use same options for physics per region as used
1789 in EM constructors recently updated.</LI>
1790 <LI>G4LivermorePolarizedPhysics: use inheritance from
1791 G4LivermorePhysics.</LI>
1792 <LI>G4EmModelActivator: updated multiple-scattering and PAI
1793 configurations to address problem reports
1794 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2052">#2052</A>
1795 and <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2106">#2106</A>.</LI>
1796 <LI>G4EmDNAModelActivator: extended to extra available DNA options
1797 (DNA_Opt2, DNA_Opt4, DNA_Opt4a, DNA_Opt6, DNA_Opt6a, DNA_Opt7).</LI>
1798 <LI>Optimisation in initialisation of G4EmDNAChemistry_option3.</LI>
1799 <LI>Use C++11 features in several constructors.</LI>
1800 </UL></LI>
1801 <LI><U>gamma_lepto_nuclear</U>:
1802 <UL>
1803 <LI>G4EmExtraPhysics, G4EmMessenger: added low-energy limit, set method,
1804 and UI command defining low-energy gamma-nuclear model, which is
1805 using de-excitation module and providing isomer production and
1806 gamma transitions. Added a flag to enable G4GammaNuclearXS
1807 cross-section and possibility to use general process for electron
1808 and positron; fixed several UI commands.</LI>
1809 <LI>G4EmExtraPhysics: extension to anti_nu_mu, nu_e and anti_nu_e
1810 processes-models.</LI>
1811 </UL></LI>
1812 <LI><U>hadron_elastic</U>:
1813 <UL>
1814 <LI>G4HadronElasticPhysics: use coherently with inelastic physics
1815 builder the new utilities G4HadParticles and G4HadronicBuilder.
1816 Instantiate anti-hyperons. Added optional cross-section scaling
1817 factors for systematics studies. Use G4HadProcesses and
1818 G4PhysListUtil.</LI>
1819 <LI>G4HadronHElasticPhysics: added elastic scattering for charm and
1820 bottom hadrons (needed for FTFP_BERT_TRV).</LI>
1821 <LI>G4ThermalNeutrons: use G4PhysListUtils to access neutron elastic
1822 process.</LI>
1823 </UL></LI>
1824 <LI><U>hadron_inelastic</U>:
1825 <UL>
1826 <LI>Use the new builder class G4QGSPAntiBarionBuilder to handle
1827 anti_proton and anti_neutron at high energies with QGSP.
1828 For the light anti-ions - anti_deuteron, anti_triton, anti_He3 and
1829 anti_alpha - currently QGSP cannot handle them, therefore FTFP is
1830 used.</LI>
1831 <LI>In all the inelastic physics constructors which are using the
1832 builder G4HyperonFTFPBuilder, introduced the new builder
1833 G4HyperonBuilder; moreover, the new builder G4HyperonQGSPBuilder
1834 is used now in all QGS-based inelastic physics constructor for
1835 hyperons (and anti-hyperons) at high energies, while keeping using
1836 G4HyperonFTFPBuilder at lower energies.</LI>
1837 <LI>G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BERT,
1838 G4HadronInelasticQBBC: added charm and bottom hadrons.
1839 Enabled charm and bottom hadronic physics - now available in nearly
1840 all physics lists, in particular those of interest for HEP; the main
1841 exception is QGSP_BIC and its derived physics lists, which are
1842 typically used for low-energy applications.</LI>
1843 <LI>G4HadronPhysicsQGSP_BIC_HP, G4HadronPhysicsQGSP_BIC_AllHP:
1844 refactoring consistently with all others.
1845 For G4HadronPhysicsQGSP_BIC_HP, the physics remains unchanged;
1846 for G4HadronPhysicsQGSP_BIC_AllHP, the physics remains unchanged
1847 except for the transition region between Binary and ProtonHP which
1848 is now 190-200 MeV (instead than 199-200), as for light ions.</LI>
1849 <LI>G4HadronInelasticQBBC: utilities G4HadParticle and
1850 G4HadronicBuilder. Fixed neutron and anti-baryon configurations.
1851 Added optional cross-section scaling factors for systematics
1852 studies. Applied the Binary cascade to pions below 1.5 GeV.</LI>
1853 <LI>G4HadronInelasticQGSP_BIC, G4HadronInelasticQGSP_BIC_HP,
1854 G4HadronInelasticQGSP_BIC_AllHP: added optional cross-section
1855 scaling factors for systematics studies; added charm and bottom
1856 hadron physics.
1857 <LI>G4HadronInelasticQGSP_BERT, G4HadronInelasticQGSP_BERT_HP,
1858 G4HadronInelasticQGSP_FTFP_BERT: added optional cross-section
1859 scaling factors for systematics studies; added charm and bottom
1860 hadron physics; implemented DumpBanner() method; added more c++11
1861 keywords.</LI>
1862 <LI>G4HadronInelasticFTFP_BERT, G4HadronInelasticFTFP_BERT_HP,
1863 G4HadronInelasticFTFP_BERT_ATL, G4HadronInelasticFTFP_BERT_TRV:
1864 added optional cross-section scaling factors for systematics
1865 studies; added charm and bottom hadron physics; c++11 code
1866 revision; removed unused headers.</LI>
1867 <LI>G4HadronInelasticQGSP_BERT and G4HadronInelasticQGSP_BIC: replaced
1868 BuildAntiLightIonsQGSP_FTFP() with BuildAntiLightIonsFTFP();
1869 currently QGSP cannot be applied to any ion or anti-ion.
1870 Allow modification of parameters at 'PreInit' state.</LI>
1871 <LI>G4HadronInelasticQGSP_FTFP_BERT: enabled charm and bottom hadron
1872 physics.</LI>
1873 <LI>G4HadronPhysicsINCLXX: use inheritance from the base class
1874 G4HadronPhysicsFTFP_BERT; removed duplicated code; code clean-up.
1875 List of models and applicability intervals are the same;
1876 implemented charm and bottom hadron physics and cross-section
1877 scaling factors.</LI>
1878 <LI>In G4HadronPhysicsNuBeam, G4HadronPhysicsShielding,
1879 G4HadronPhysicsShieldingLEND, G4HadronPhysicsFTF_BIC,
1880 G4HadronPhysicsQGS_BIC and G4HadronPhysicsFTFQGSP_BERT:
1881 use inheritence from the base class G4HadronPhysicsFTFP_BERT and
1882 removed duplicated code; ensure list of models and applicability
1883 intervals are the same; implemented charm and bottom hadron physics
1884 and cross-section scaling factors.</LI>
1885 <LI>G4VHadronPhysics: removed unused and obsolete methods and
1886 thread_local methods.</LI>
1887 <LI>Improved comments and info printout in other physics classes.</LI>
1888 <LI>Updated README.</LI>
1889 </UL></LI>
1890 <LI><U>ions</U>:
1891 <UL>
1892 <LI>Cleanup of constructors: fixed names; made all constructor
1893 signatures universal, removed thread local members, added
1894 c++11 keywords.</LI>
1895 <LI>Updated README.</LI>
1896 </UL></LI>
1897 <LI><U>stopping</U>:
1898 <UL>
1899 <LI>Cleanup of constructors: fixed names; made all constructor
1900 signatures universal, removed thread local members, added
1901 c++11 keywords.</LI>
1902 </UL></LI>
1903 </UL></LI>
1904 <LI><B>Lists</B>:
1905 <UL>
1906 <LI>LBE: added G4ShortLivedConstructor, to prevent issues, e.g. when rho0
1907 is produced by the decay of eta_prime.</LI>
1908 </UL></LI>
1909 <LI><B>Util</B>:
1910 <UL>
1911 <LI>G4HadParticles: new utility providing several lists of PDG codes for
1912 kaons, hyperons, charm and bottom hadrons in order to be used for
1913 construction of hadronic physics. Updated list of heavy EM particles.
1914 Subdivided in different methods hyperons and anti-hyperons.
1915 Separated light anti-particles to the extra vector and added extra
1916 access method.</LI>
1917 <LI>G4HadProcesses: new utility class providing access to hadronic
1918 processes and the possibility to add a cross-section per particle type
1919 and per hadronic process; by using this class it is possible to
1920 customise hadronic cross-sections.</LI>
1921 <LI>G4PhysListUtil: added method to access elastic cross-section.
1922 Added utility method InitialiseParameters().
1923 Updated dependencies on internal modules.</LI>
1924 </UL></LI>
1925 </UL>
1926
1927 <A NAME="run-notes">
1928 <H3><I>Run</I></H3></A>
1929 <UL>
1930 <LI>G4RunManager, G4WorkerRunManager: added layered mass geometry option
1931 for the new "probe" scoring mesh.</LI>
1932 <LI>G4RunManager: do not call G4ParticleTable for Messenger deletion.
1933 Added dummy virtual methods Get/SetNumberOfThreads() to allow for
1934 dispatching in MT/Tasking classes inheritance.</LI>
1935 <LI>Modified G4MTRunManager to enable inheritance for new G4TaskRunManager.
1936 Added banner similar to G4TaskRunManager at method CreateAndStartWorkers();
1937 moved master scoring-manager, master worlds, 'fMasterRM' from private to
1938 protected sections.</LI>
1939 <LI>G4MTRunManager, G4RunManager: fixes for windows, to avoid inline static
1940 methods and use export flag G4RUN_DLL for static data.</LI>
1941 <LI>Added activation of G4Backtrace to G4RunManagerKernel.</LI>
1942 <LI>Run-managers are now friends of G4RunManagerFactory.</LI>
1943 <LI>Added second wavelength shifter process to G4PhysicsListHelper.</LI>
1944 <LI>G4VPhysicsConstructor: added harmless call to G4HadronicParameters in
1945 constructors, setting a default parameter; needed to create the instance
1946 of the G4HadronicParameters singleton before run initialization.</LI>
1947 <LI>G4VModularPhysicsList: fixed typos in printouts.</LI>
1948 <LI>Added G4Profiler support for TiMemory; removed TIMEMORY_AUTO_TIMER.</LI>
1949 <LI>Fixed text typos in printout. Problem report
1950 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
1951 and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
1952 <LI>General code formatting.</LI>
1953 </UL>
1954
1955 <A NAME="tasking-notes">
1956 <H3><I>Tasking</I></H3></A>
1957 <UL>
1958 <LI>New module implementing a new Geant4 run manager, G4TaskRunManager,
1959 enabling use of the PTL tasking system for the event loop. The tasking
1960 system is fully compatible with Intel TBB, which can be selected if
1961 GEANT4_USE_TBB=ON is specified when configuring CMake. The default
1962 behavior for tasking, however, is to submit the tasks to an internal
1963 thread-pool and task-queue.</LI>
1964 </UL>
1965
1966 <A NAME="track-notes">
1967 <H3><I>Track & Tracking</I></H3></A>
1968 <UL>
1969 <LI>G4Track: use new G4OpticalPhoton PDG code; removed static thread local
1970 variables; slightly simplified velocity computation; fixed Coverity
1971 warnings connected with unnecessary checks for valid pointers to G4Step
1972 and G4DynamicParticle; removed commented code.
1973 Avoid using velocity table, use GetBeta() method from G4DynamicParticle
1974 instead; expected minor speedup.</LI>
1975 <LI>Minor c++11 revision; code cleanup and formatting.</LI>
1976 <LI>Fixed minor Coverity defects in G4Step and G4SteppingManager.</LI>
1977 </UL>
1978
1979 <A NAME="vis-notes">
1980 <H3><I>Visualization</I></H3></A>
1981 <LI>Use CMake AUTOMOC to automatically generate and compile Moc sources
1982 and fixed CMake script to support new CMake system.</LI>
1983 <LI>Fixed text typos in printout. Problem report
1984 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2285">#2285</A>
1985 and <A HREF="https://github.com/Geant4/geant4/pull/15">GitHub PR#15</A>.</LI>
1986 <UL>
1987 <LI><B>Management</B>
1988 <UL>
1989 <LI>Fixed case where models with no extent do not contribute to scene's
1990 extent.</LI>
1991 <LI>Trap infinite loop when looking for a fallback graphics system when
1992 issuing "/vis/sceneHandler/create".</LI>
1993 <LI>G4VisExecutive: added support for OIQt driver, via "OIQt" or "OI"
1994 keywords, provided the G4OpenInventor library has been built with
1995 the OIQt driver included.</LI>
1996 <LI>Added new command "/vis/geometry/set/forceCloud".</LI>
1997 <LI>G4VVisCommand: added CheckView for future utility.</LI>
1998 <LI>G4VisCommandsScene: improved output layout for "/vis/scene/showExtents".
1999 Removed superfluous/unnecessary SetView() in
2000 G4VisCommandSceneNotifyHandlers.</LI>
2001 <LI>G4VisManager: protected algorithm in NotifyHandlers() with
2002 'IsValidView'.</LI>
2003 <LI>Removed obsolete G4VIS_USE_STD11 and references to obsolete G4VIS_USE.</LI>
2004 <LI>Bug fix: rebuild graphics databases after "/vis/filtering/*/mode".</LI>
2005 <LI>Improved printing of available systems and models.</LI>
2006 <LI>Improved logic in G4VisManager for automatic event keeping.</LI>
2007 <LI>In MT mode, now keeping one (random) event when end-of-event action
2008 is "refresh" and keeping events (up to a user-adjustable maximum
2009 number). These may be in addition to events kept by a user in his/her
2010 user actions.</LI>
2011 <LI>Improved messaging.</LI>
2012 <LI>Use command->CommandFailed(); remove internal 'fErrorCode'.</LI>
2013 <LI>Implemented G4RunManagerFactory::GetMasterRunManager().</LI>
2014 </UL></LI>
2015 <LI><B>Modeling:</B>
2016 <UL>
2017 <LI>Rationalised defaults for PVPaths; make sure all nodes are marked as
2018 "not drawn" unless actually chosen for drawing.</LI>
2019 <LI>Suppress warnings while filter not fully established.</LI>
2020 <LI>Pick up default vis attributes.</LI>
2021 <LI>Implemented G4RunManagerFactory::GetMasterRunManager().</LI>
2022 <LI>Improved printing. Minor code tidy.</LI>
2023 </UL></LI>
2024 <LI><B>FukuiRenderer</B>
2025 <UL>
2026 <LI>G4DAWNFILEViewer: fixed Unbuntu 20 compiler warning about ignoring
2027 system function return value.</LI>
2028 <LI>G4FukuiRendererViewer: fixed compilation warning for overlapping
2029 comparisons always evaluating to true.</LI>
2030 </UL></LI>
2031 <LI><B>OpenGL</B>
2032 <UL>
2033 <LI>Improved guidance and tidy "/vis/ogl/" commands.</LI>
2034 <LI>Removed no longer required dependence on GLU.</LI>
2035 <LI>Removed support for Qt4.</LI>
2036 <LI>Fixed bug in "/vis/ogl/export" when dot '.' is included in name.</LI>
2037 <LI>CompareForKernelVisit(), force kernel visit if global parameters
2038 change. Avoid unnecessary redraw at start.</LI>
2039 <LI>Implemented G4RunManagerFactory::GetMasterRunManager().</LI>
2040 </UL></LI>
2041 <LI><B>OpenInventor</B>
2042 <UL>
2043 <LI>Added Open Inventor Qt visualisation driver. The Open Inventor module
2044 can be built with either the OIQt driver, or with the OIX/OIXE drivers,
2045 but not with both. Enabled use of OIQt viewer with Qt UI.</LI>
2046 <LI>Enable configuration for OIQt driver, as orthogonal to OIX and OIXE.</LI>
2047 <LI>CompareForKernelVisit(), force kernel visit if global parameters
2048 change. Avoid unnecessary redraw at start.</LI>
2049 </UL></LI>
2050 <LI><B>Qt3D</B>
2051 <UL>
2052 <LI>New driver based on Qt3D for native Qt rendering.</LI>
2053 </UL></LI>
2054 <LI><B>Raytracer</B>
2055 <UL>
2056 <LI>Suppressed printing during RayTracer run.</LI>
2057 <LI>Implemented G4RunManagerFactory::GetMasterRunManager().</LI>
2058 </UL></LI>
2059 <LI><B>VRML</B>
2060 <UL>
2061 <LI>G4VRML1/2FileSceneHandler: fixed Unbuntu 20 compiler warning about
2062 ignoring system function return value.</LI>
2063 </UL></LI>
2064 <LI><B>XXX</B>
2065 <UL>
2066 <LI>CompareForKernelVisit(), force kernel visit if global parameters
2067 change. Avoid unnecessary redraw at start.</LI>
2068 </UL></LI>
2069 <LI><B>Externals</B>
2070 <UL>
2071 <LI>Fixed Coverity defect warning.</LI>
2072 </UL></LI>
2073 </UL>
2074
2075 <A NAME="env-notes">
2076 <H3><I>Environments</I></H3></A>
2077 <UL>
2078 <LI>G4Py:
2079 <UL>
2080 <LI>Removed obsolete boost.python indexing suite (which was only required
2081 on very old Boost versions <= 1.33). Replace use in client modules by
2082 direct inclusion of the needed Boost header.</LI>
2083 <LI>Modified use of Boost 1.73 binding and placeholder functionality,
2084 resulting in Boost.Python spamming pragma messages about deprecation
2085 of this.
2086 Added BOOST_BIND_GLOBAL_PLACEHOLDERS as a private compile definition
2087 to geant4py targets to suppress these.</LI>
2088 <LI>Made CMAKE_INSTALL_PYTHONDIR a user-configurable cache variable.
2089 RPATH issue is addressed by use of CMAKE_SKIP_INSTALL_RPATH variable
2090 by client. Addressing problem report
2091 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2283">#2283</A>.</LI>
2092 <LI>Updated signatures to support const addresses as return values in
2093 G4UIcommand.</LI>
2094 <LI>Added binding to G4PhysListFactory and a simple test.
2095 Addressing
2096 <A HREF="https://github.com/Geant4/geant4/pull/14">GitHub PR#14</A>.</LI>
2097 </UL></LI>
2098 </UL>
2099
2100 <A NAME="data-notes">
2101 <H3><I>Data sets</I></H3></A>
2102 <UL>
2103 <LI>New low-energy data set version, <B>G4EMLOW-7.13</B>:
2104 <UL>
2105 <LI>Added new cross-section files for protons (HT).</LI>
2106 <LI>Added EPICS2017 data for gamma conversion (ZL).</LI>
2107 <LI>Added new JAEA elastic polarized gamma scattering data files
2108 in compressed format.</LI>
2109 <LI>Added a new numerical DCS set for e-/e+ elastic scattering
2110 obtained by numerical Dirac Partial Wave Analysis (DPWA).
2111 More information can be found in the 'dpwa/Readme.txt' file.</LI>
2112 <LI>Added new Molecular Interference form factors (penelope/rayleigh/MIFF),
2113 to be used by G4PenelopeRayleighMI model.</LI>
2114 </UL></LI>
2115 <LI>New data files for nuclides properties <B>G4ENSDFSTATE-2.3</B>:
2116 <UL>
2117 <LI>Corrected GD158 data to be compliant with new PhotonEvaporation
2118 database.</LI>
2119 </UL></LI>
2120 <LI>New data files for evaluated cross-sections <B>G4PARTICLEXS-3.1</B>:
2121 <UL>
2122 <LI>Regenerated n, p, d, t, He3, He4, gamma data based on G4NDL4.6 and
2123 LEND; provided smooth cross-section shape and fixed fusion
2124 cross-sections.</LI>
2125 </UL></LI>
2126 <LI>New data set version <B>G4PhotonEvaporation-5.7</B> for nuclear de-excitation
2127 data:
2128 <UL>
2129 <LI>Updated file z66.a161 (Dy161) for the decay of Tb161.</LI>
2130 <LI>New file for z64.a158 (Gd158).</LI>
2131 <LI>Updated and corrected file z64.156 (Gd156).</LI>
2132 </UL></LI>
2133 <LI>New data set version for radioactive-decay processes,
2134 <B>G4RadioactiveDecay-5.6</B>:
2135 <UL>
2136 <LI>Updated file z82.a211 (Pb211) according to DDEP plus adding of
2137 firstForbidden tag.</LI>
2138 <LI>Slight update of z83.a211 (Bi211) and z84.a211 (Po211) according to DDEP.</LI>
2139 <LI>Correction of file z2.a8; addressing problem report
2140 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2243">#2243</A>.</LI>
2141 <LI>Update of file z63.a158 (EU158 beta- decay to Gd158).</LI>
2142 <LI>Removed empty lines in files z3.a8, z7.a16, z10.a18.</LI>
2143 </UL></LI>
2144 <LI>New data set version for measured optical surface reflectance,
2145 <B>G4RealSurface-2.2</B>:
2146 <UL>
2147 <LI>Compressed data with zlib.</LI>
2148 </UL></LI>
2149 </UL></LI>
2150
2151 <A NAME="ex-notes">
2152 <H3><I>Examples</I></H3></A>
2153 <UL>
2154 <LI>Updated reference outputs, macros, READMEs and scripts.</LI>
2155 <LI>Fixes for Doxygen documentation and coding guidelines.</LI>
2156 <LI>Migrated most examples to use G4RunManagerFactory, therefore allowing
2157 for enabling optional tasking in MT builds.
2158 <LI><B><U>advanced</U></B>
2159 <UL>
2160 <LI><B>air_shower</B>
2161 <UL>
2162 <LI>Output results histograms to file. Added macro file to plot
2163 histograms.</LI>
2164 <LI>Create material properties using std::vectors.</LI>
2165 <LI>Added missing include statement in UltraDetectorConstruction.</LI>
2166 </UL></LI>
2167 <LI><B>brachytherapy</B>
2168 <UL>
2169 <LI>Analysis now fully compliant with g4tools; removed dependency
2170 on Root. General cleanup of the code. Implemented RunAction.</LI>
2171 </UL></LI>
2172 <LI><B>fastAerosol</B>
2173 <UL>
2174 <LI>New example showing use of FastAerosol geometry classes, allowing
2175 to efficiently and accurately simulate particle transport through
2176 aerosols containing billions of randomly-positioned droplets, using
2177 an ordinary workstation. See: MacFadden, N., Knaian, A.,
2178 "Efficient Modeling of Particle Transport through Aerosols in
2179 Geant4", manuscript in preparation, 2020.</LI>
2180 </UL></LI>
2181 <LI><B>gammaray_telescope</B>
2182 <UL>
2183 <LI>GammaRayTelHadronPhysics, GammaRayTelIonPhysics: fixed
2184 compilation problems due to incorrect FTFP instantiation.</LI>
2185 <LI>Added option to use G4EmStandard_Option4 with BetheHeitler5D model
2186 by using macro file physics_polarized_new.mac to select the EM
2187 physics processes and models.</LI>
2188 <LI>Added new macro gammaray_polarized.in.</LI>
2189 </UL></LI>
2190 <LI><B>gorad</B>
2191 <UL>
2192 <LI>New example Gorad (Geant4 Open-sourced Radiation Analysis and
2193 Design), a turn-key application for radiation analysis and
2194 spacecraft design.</LI>
2195 </UL></LI>
2196 <LI><B>hadrontherapy</B>
2197 <UL>
2198 <LI>Added BEST beamline.</LI>
2199 <LI>Fixed occasional segmentation faults in MT mode with max number
2200 of threads.</LI>
2201 <LI>Fixes in using analysis: added test for open file before calling
2202 write & close; uncommented delete of analysis manager in
2203 RunAction.</LI>
2204 <LI>Added protections against FPEs in RBE module.</LI>
2205 <LI>Fixed compilation warnings on Windows related type conversions.</LI>
2206 <LI>Deleted many obsolete macro files.</LI>
2207 <LI>Code cleaup; removed Root script folder and other cosmetics.</LI>
2208 </UL></LI>
2209 <LI><B>HGCal_testbeam</B>
2210 <UL>
2211 <LI>New example based on the Geant4 standalone application developed
2212 by Thorben Quast for the CMS High Granularity Calorimeter (HGCal)
2213 studies. The example demonstrates a test beam setup used in HEP
2214 experiments, and as a base for the validation studies and
2215 comparison with experiment data. Details on the High Granularity
2216 Calorimeter (HGCal) can be found in the
2217 <A HREF="https://cds.cern.ch/record/2293646/files/CMS-TDR-019.pdf">Technical Design Report</A>..</LI>
2218 </UL></LI>
2219 <LI><B>ICRP110_HumanPhantoms</B>
2220 <UL>
2221 <LI>New example modelling the ICRP110 reference computational human
2222 phantoms and calculating the dose in individual voxels and entire
2223 organs. The human male phantom is created from a whole-body
2224 clinical CT image.</LI>
2225 </UL></LI>
2226 <LI><B>iort_therapy</B>
2227 <UL>
2228 <LI>Fixed CMake script, removing direct dependency on Root.</LI>
2229 </UL></LI>
2230 <LI><B>radioprotection</B>
2231 <UL>
2232 <LI>Added new parameter to DetectorConstruction constructor; added
2233 instance of DetectorManager in main().</LI>
2234 <LI>DetectorConstruction: defined private methods to construct a
2235 specific type of detector ("Silicon", "Diamond", and "MicroDiamond");
2236 added detectorType private string to store the name of the one in
2237 use; rewrote Construct() so that it calls the specific method of
2238 the selected detector type; moved the previous diamond detector
2239 geometry to ConstructDiamondDetector() and added new possible
2240 geometries (silicon and microdiamond).</LI>
2241 <LI>DetectorMessenger: created file in order to switch detector type.</LI>
2242 <LI>New macro geometry.mac, to select a specific detector at runtime
2243 (by default, all options are commented out).
2244 Added a line in vis.mac to execute geometry.mac before launching
2245 the GUI (at which point it wouldn't be possible to change the
2246 geometry anymore). Added a line in run.mac to execute geometry.mac.</LI>
2247 </UL></LI>
2248 <LI><B>underground_physics</B>
2249 <UL>
2250 <LI>Migrated UI commands from "/grdm/..." to "/process/had/rdm/..."
2251 in input macros.</LI>
2252 <LI>Removed unnecessary command in neutron.mac and ambe_spectrum.mac
2253 macros.</LI>
2254 <LI>Build material property tables using std::vectors.</LI>
2255 </UL></LI>
2256 </UL></LI>
2257 <LI><B><U>basic</U></B>
2258 <UL>
2259 <LI><B>B4</B>
2260 <UL>
2261 <LI>Updated B4Analysis header with commented lines for using new
2262 generic analysis manager.</LI>
2263 <LI>Added commented command "ignoreThreadsExcept 0" setting in
2264 run2.mac.</LI>
2265 </UL></LI>
2266 <LI><B>B5</B>
2267 <UL>
2268 <LI>Replaced use of G4Analysis::ManagerInstance() with new generic
2269 analysis manager. Storing ntuple in a separate file.</LI>
2270 </UL></LI>
2271 </UL></LI>
2272 <LI><B><U>extended</U></B>
2273 <UL>
2274 <LI><B>electromagnetic</B>
2275 <UL>
2276 <LI><B>TestEm1</B>
2277 <UL>
2278 <LI>PhysicsList: use G4RadioactiveDecayBase instead of deprecated
2279 G4RadioactiveDecay. Minor code cleanup.</LI>
2280 <LI>Migrated UI command from "/grdm/nucleusLimits" to
2281 "/process/had/rdm/nucleusLimits" in radioactive.mac macro.</LI>
2282 <LI>Reviewed macros and added macro description in README.</LI>
2283 </UL></LI>
2284 <LI><B>TestEm2</B>
2285 <UL>
2286 <LI>Macro & commands review: removed implementation of command
2287 "/testem/histo/setFileName" and replaced its usage with
2288 "/analysis/setFileName"; fixed file name in egs4.mac;
2289 extended TestEm2.in with a command: "/testem/run/verbose 1".</LI>
2290 </UL></LI>
2291 <LI><B>TestEm3</B>
2292 <UL>
2293 <LI>Macro & commands review: added macro descriptions in README;
2294 added geom.mac with commands not used in TestEm3.in; fixed not
2295 working macros: ionC12.mac, lockwood.mac, storeTables.mac;
2296 removed obsolete macro retrieveTables.mac.</LI>
2297 </UL></LI>
2298 <LI><B>TestEm4</B>
2299 <UL>
2300 <LI>Do not call vis.mac automatically in interactive mode.</LI>
2301 </UL></LI>
2302 <LI><B>TestEm5</B>
2303 <UL>
2304 <LI>TrackingAction: corrected weight for solid angle histograms
2305 Updated berger.mac, berger/berger.C, hanson.mac and
2306 hanson/hanson.C. Added hanson/19um-wwols.ascii and 9um too.
2307 Based on proposal by Weronika Wolszczak (TU Delft Univ.).</LI>
2308 <LI>Macro & commands review: added macro descriptions in README;
2309 added geom.mac for testing remaining commands.
2310 Removed obsolete fluo.mac macro.</LI>
2311 <LI>StackingAction: log histograms, revert to previous version.</LI>
2312 </UL></LI>
2313 <LI><B>TestEm7</B>
2314 <UL>
2315 <LI>Do not call vis.mac automatically in interactive mode.</LI>
2316 </UL></LI>
2317 <LI><B>TestEm11</B>
2318 <UL>
2319 <LI>PhysicsList: use G4RadioactiveDecayBase instead of deprecated
2320 G4RadioactiveDecay. Minor code cleanup.</LI>
2321 <LI>Added macros description.</LI>
2322 </UL></LI>
2323 <LI><B>TestEm12</B>
2324 <UL>
2325 <LI>Added macros description.</LI>
2326 </UL></LI>
2327 <LI><B>TestEm14</B>
2328 <UL>
2329 <LI>Added atomicDeexcitation.mac macro.</LI>
2330 <LI>Added macros description.</LI>
2331 </UL></LI>
2332 <LI><B>TestEm18</B>
2333 <UL>
2334 <LI>Cleanup of macros.</LI>
2335 </UL></LI>
2336 </UL></LI>
2337 <LI><B>exoticphysics</B>
2338 <UL>
2339 <LI><B>saxs</B>
2340 <UL>
2341 <LI>New example implementing the typical setup of a Small Angle
2342 X-ray Scattering (SAXS) experiment. It is meant to illustrate
2343 the usage of molecular interference (MI) of Rayleigh (coherent)
2344 scattering of photons inside the matter, which is implemented
2345 in the G4PenelopeRayleighModelMI model.</LI>
2346 </UL></LI>
2347 </UL></LI>
2348 <LI><B>hadronic</B>
2349 <UL>
2350 <LI><B>FissionFragment</B>
2351 <UL>
2352 <LI>Replaced deprecated HP environmental variables with
2353 corresponding UI commands.</LI>
2354 </UL></LI>
2355 <LI><B>Hadr00</B>
2356 <UL>
2357 <LI>HistoManagerMessenger: fixed destructor.</LI>
2358 </UL></LI>
2359 <LI><B>Hadr01</B>
2360 <UL>
2361 <LI>PhysicsList: make it coherent with current reference physics
2362 lists.</LI>
2363 <LI>RunAction: improved printouts.</LI>
2364 <LI>Switched from Al to W in hadr01.in macro.</LI>
2365 </UL></LI>
2366 <LI><B>Hadr02</B>
2367 <UL>
2368 <LI>HadronPhysicsCRMC_FTFP_BERT, HadronPhysicsHIJING,
2369 HadronPhysicsUrQMD: introduced the new class G4HyperonBuilder
2370 which is now needed when using G4HyperonFTFPBuilder.</LI>
2371 </UL></LI>
2372 <LI><B>Hadr03</B>
2373 <UL>
2374 <LI>PhysicsList: added G4HadronPhysicsQGSP_BIC, Shielding,
2375 RadioactiveDecay.</LI>
2376 <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2377 <LI>Added GammaNuclearPhysicsLEND.</LI>
2378 <LI>HistoManager, SteppingAction: added plot of e-.</LI>
2379 <LI>Modified gamma.mac script; added Au196.mac.</LI>
2380 <LI>Removed deprecated HP environmental variables and replaced
2381 them with corresponding C++ calls in the main(), and UI
2382 commands in the macros.</LI>
2383 <LI>Added fusion.mac macro.</LI>
2384 <LI>Added macros description.</LI>
2385 </UL></LI>
2386 <LI><B>Hadr04</B>
2387 <UL>
2388 <LI>Removed deprecated HP environmental variables and replaced
2389 them with corresponding C++ calls in the main().</LI>
2390 <LI>Added macros description.</LI>
2391 </UL></LI>
2392 <LI><B>Hadr06</B>
2393 <UL>
2394 <LI>HistoManager, TrackingAction: plot particle energy at
2395 creation.</LI>
2396 <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2397 <LI>TrackingAction: added commented code for singleFission.</LI>
2398 <LI>Removed deprecated HP environmental variables and replaced
2399 them with corresponding C++ calls in the main(), and UI
2400 commands in the macros.</LI>
2401 <LI>Added singleFission.mac macro.</LI>
2402 </UL></LI>
2403 <LI><B>Hadr07</B>
2404 <UL>
2405 <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2406 <LI>Removed deprecated HP environmental variables and replaced
2407 them with corresponding C++ calls in the main().</LI>
2408 <LI>Added macros description.</LI>
2409 </UL></LI>
2410 <LI><B>Hadr09</B>
2411 <UL>
2412 <LI>New example showing how to use Geant4 as a generator for
2413 simulating inelastic hadron-nuclear interactions.</LI>
2414 </UL></LI>
2415 <LI><B>NeutronSource</B>
2416 <UL>
2417 <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2418 <LI>Removed deprecated HP environmental variables and replaced
2419 them with corresponding C++ calls in the main().</LI>
2420 <LI>Added macros description.</LI>
2421 </UL></LI>
2422 </UL></LI>
2423 <LI><B>medical/DICOM</B>
2424 <UL>
2425 <LI>Distinguish output names of archive lib from DLL and application
2426 to fix Windows linking errors for static libraries.</LI>
2427 </UL></LI>
2428 <LI><B>medical/DICOM2</B>
2429 <UL>
2430 <LI>Fixed compiler warning on Windows.</LI>
2431 </UL></LI>
2432 <LI><B>medical/dna</B>
2433 <UL>
2434 <LI><B>chem4</B>:
2435 <UL>
2436 <LI>Fixed setup for Root in CMake script.</LI>
2437 </UL></LI>
2438 <LI><B>chem6</B>:
2439 <UL>
2440 <LI>New example providing scoring of the radiochemical yield G
2441 defined as (Number of species X) / (100 eV of deposited energy),
2442 as a function of time and LET. The details are described in the
2443 following paper: J. Appl. Phys. 125 (2019) 104301.</LI>
2444 </UL></LI>
2445 </UL></LI>
2446 <LI><B>optical</B>
2447 <UL>
2448 <LI><B>LXe</B>
2449 <UL>
2450 <LI>Set optical parameters in G4OpticalParameters class.</LI>
2451 <LI>Use new scintillation material property names.</LI>
2452 <LI>Use std::vector to specify material property names.</LI>
2453 <LI>Fixed valgrind errors: added 'delete's and fix initialization
2454 of hits counters.</LI>
2455 <LI>Renamed LXe.in macro to LXe.mac; store random seed in LXe.mac
2456 and set optical verbosity to 1.</LI>
2457 <LI>Applied clang-format style and updated macros.</LI>
2458 <LI>Renamed ProcessHits_constStep() to ProcessHits_boundary().</LI>
2459 <LI>Removed unused #includes and empty methods.</LI>
2460 </UL></LI>
2461 <LI><B>OpNovice</B>
2462 <UL>
2463 <LI>Added material properties using new interface with
2464 std::vectors.</LI>
2465 <LI>Print out process statistics at end of run.
2466 Added EventAction and Run classes for this.</LI>
2467 <LI>Updated macros, especially to run more particles.
2468 Updated gui.mac.</LI>
2469 <LI>Remove use of G4Timer.</LI>
2470 <LI>Use default random number generator.</LI>
2471 <LI>Applied clang-format style.</LI>
2472 </UL></LI>
2473 <LI><B>OpNovice2</B>
2474 <UL>
2475 <LI>Use new scintillation time constant parameter.</LI>
2476 <LI>Added code to generate statistics for wavelength shifting.</LI>
2477 <LI>Added material properties using new interface with
2478 std::vectors.</LI>
2479 <LI>Calculate reflection/transmission probabilities vs. angle;
2480 new macro fresnel.mac.</LI>
2481 <LI>Histos: added axis labels, id's; refer to them by id in some
2482 places.</LI>
2483 <LI>Added wls.mac to test WLS and new process WLS2.</LI>
2484 <LI>Removed string comparisons and redundant calls in
2485 SteppingAction.</LI>
2486 <LI>Removed redundant G4AnalysisManager::Instance() calls.</LI>
2487 <LI>New macro boundary.mac, exercising all 4 boundary models.</LI>
2488 <LI>Removed glisur.mac and unified.mac macros.</LI>
2489 <LI>Renamed OpNovice2.in macro to OpNovice2.mac.</LI>
2490 <LI>Print histogram statistics at end of run.</LI>
2491 <LI>Removed use of G4Timer; don't set number of threads in main().</LI>
2492 <LI>Updated macro verbosity, ignore threads except 0.</LI>
2493 <LI>Applied clang-format style.</LI>
2494 </UL></LI>
2495 <LI><B>wls</B>
2496 <UL>
2497 <LI>Added material properties using new interface with
2498 std::vectors.</LI>
2499 <LI>Large cleaning including clang-format style guidelines.</LI>
2500 <LI>Added counters to record run and event statistics.
2501 Update macros.</LI>
2502 <LI>Added remaining material properties using new interface with
2503 std::vectors.</LI>
2504 </UL></LI>
2505 </UL></LI>
2506 <LI><B>parallel</B>
2507 <UL>
2508 <LI><B>MPI</B>
2509 <UL>
2510 <LI>Updated analysis classes for the design changes in analysis
2511 module.</LI>
2512 </UL></LI>
2513 <LI><B>TBB</B>
2514 <UL>
2515 <LI>Updated to use new tasking system which is fully compatible
2516 with TBB.</LI>
2517 </UL></LI>
2518 <LI><B>ThreadsafeScorers</B>
2519 <UL>
2520 <LI>Updated to use new tasking system; forcing use of
2521 G4TaskRunManager.
2522 <LI>Added example of user code leveraging tasking in TSRunAction;
2523 it leverages tasks on the master thread at the end of the run
2524 to generate some strings of output via a nested hierarchy of
2525 tasks and uses the features of the G4TaskGroup to combine the
2526 strings in the order that they were submitted to the task-group
2527 (thus producing the same output result as the serial version).</LI>
2528 <LI>Replaced TIMEMORY_AUTO_TIMER usage with G4USER_SCOPED_PROFILE
2529 usage.</LI>
2530 </UL></LI>
2531 <LI><B>TopC</B>
2532 <UL>
2533 <LI>Fixed README.html. Addressing problem report
2534 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2284">#2284</A>.</LI>
2535 </UL></LI>
2536 </UL></LI>
2537 <LI><B>parameterisations</B>
2538 <UL>
2539 <LI><B>Par03</B>
2540 <UL>
2541 <LI>New example demonstrating how to use G4FastSimHitMaker helper
2542 class to create multiple energy deposits from the fast
2543 simulation model.</LI>
2544 </UL></LI>
2545 </UL></LI>
2546 <LI><B>persistency</B>
2547 <UL>
2548 <LI><B>gdml/G01</B>
2549 <UL>
2550 <LI>Use [] brackets in loop.gdml sample to show how to index names
2551 and dimensions in loops.</LI>
2552 <LI>Added a line (commented out) indicating how to overwrite output
2553 files.</LI>
2554 </UL></LI>
2555 <LI><B>P01</B>
2556 <UL>
2557 <LI>Fixed CMake script for search or Root macros.</LI>
2558 </UL></LI>
2559 </UL></LI>
2560 <LI><B>radioactivedecay</B>
2561 <UL>
2562 <LI><B>Activation</B>
2563 <UL>
2564 <LI>GammaNuclearPhysics: added G4LowEGammaNuclearModel.</LI>
2565 <LI>In Run, corrected a protection on maximum number of
2566 histograms.</LI>
2567 <LI>Removed deprecated HP environmental variables and replaced
2568 them with corresponding C++ calls in the main().</LI>
2569 <LI>Added macros description.</LI>
2570 </UL></LI>
2571 <LI><B>rdecay01</B>
2572 <UL>
2573 <LI>Migrated UI commands from "/grdm/..." to "/process/had/rdm/..."
2574 in input macros.</LI>
2575 <LI>Added atomicDeexcitation.mac macro.</LI>
2576 <LI>PhysicsList: added SetDeexcitationIgnoreCut(ARMflag).</LI>
2577 <LI>Added macros description.</LI>
2578 </UL></LI>
2579 <LI><B>rdecay02</B>
2580 <UL>
2581 <LI>Migrated UI commands from "/grdm/..." to "/process/had/rdm/..."
2582 in input macros.</LI>
2583 </UL></LI>
2584 </UL></LI>
2585 </UL>
2586 </UL>
2587
2588 <HR>
2589
2590 </BODY>
2591 </HTML>