Geant4 10.5 Release Notes
The code and binary libraries for the supported systems are available
through our Source
Code Web page.
We are grateful for the efforts of Geant4 users who have provided
detailed feedback or comprehensive reports of issues.
We thank in particular those who have contributed corrections,
improvements or developments included in this release.
Please refer to the
Geant4
User Documentation for further information about using Geant4.
Contents
- Supported and Tested Platforms
- Supported CLHEP version
- Items for migration of the user code
- New Developments and Capabilities
- Expected effects on physics and performance
- Known Run-Time Problems and Limitations
- Compilation Warnings
- Geant4 Software License
- Detailed list of changes and fixes
1. Supported and Tested Platforms
Platforms:
- Linux, gcc-4.8.5.
Tested on 64 bit architectures (Intel or AMD) with
CERN CentOS Linux 7 (CC7) (based on CentOS Linux 7).
- MacOSX 10.14 Mojave with llvm/clang-6.0.1 (Apple LLVM/Clang-10.0.0)
- Windows-10 with Visual C++ 14.11 (Visual Studio 2017)
More verified and tested configurations (64 bits):
- Linux, gcc-4.9.3/5.4.0/6.3.0/7.3.0/8.2.0, clang-3.9/5.0
- Linux, Intel-icc 19.0
- MacOSX 10.11, 12, 13 with clang-3.8/4.0/5.0
- Windows-10 with Visual C++ 14.0 (Visual Studio 2015)
2. Supported CLHEP version
This release of Geant4 requires and has been verified with
CLHEP, release 2.4.1.0.
Use of a different CLHEP version may cause incorrect simulation results.
NOTE: an internal module of the relevant CLHEP classes is provided and can be
used as alternative to an external CLHEP library installation.
3. Items for migration of the user code
Listed here is some relevant information on developments included in this
release.
Note that for all users a full re-installation of libraries (or a full
re-compilation) and a re-compilation of user applications is required.
General
- Minimum required version of CMake to build Geant4 is 3.3.
- Due to the migration from POSIX threading to C++11 threading, enabling
multi-threading on Windows for use with either static or dynamic
libraries, the following migration is required:
- Any usage of G4THREADCREATE should pass a reference to an
allocated G4Thread pointer.
- G4THREADCREATE (previously a macro) is
now a variadic template function that accepts an unlimited
number of arguments to the function launched on the thread.
- G4Thread t; G4THREADCREATE(&t, myfunction, myarg);
is no longer valid
- G4Thread* t = new G4Thread();
G4THREADCREATE(t, myfunction, myarg); is required
- G4MUTEX_INITIALIZER, G4MUTEXINIT, and
G4MUTEXDESTROY are now empty macros and their usage is
unnecessary and thus deprecated.
Geometry
- The behaviour of G4Transportation and G4CoupledTransportation
concerning the treatment of looping particles has been reviewed:
- From this release on, only stable particles are killed if they
'loop', i.e. take more than the maximum (default 1000) integration
steps in one physics step; unstable particles are now propagated
indefinitely.
- Warning exceptions with full details of the particle, location and
volume are now generated for stable looping particles which are killed
(as before, this only happens if their energy exceeds a threshold
'warning' energy).
In previous releases a short message with only energy and location
was generated, and only for installations which did not use
G4_NO_VERBOSE. Typically these warnings occur predominantly in vacuum
or other low density media.
- As before the killing of loopers and potential warnings are controlled by
two energy thresholds and a step number parameter. Default settings imply:
- 100 MeV (warning energy): below this, tracks are killed
silently.
- 250 MeV (important energy): above this, tracks are given
multiple chances (10 physics steps).
These settings are fully under user control. The new methods in
G4PhysicsListHelper allow the user to select a set of low (or the above
high) values of the 'looper' energy thresholds.
Existing methods of G4[Coupled]Transportation can be used for fine-grained
control of the parameter values.
Additional information regarding how to reduce the incidence of looping
particles is provided in an expanded section on Transportation in the
Users Guide for Applications Developers.
- G4MagneticField has been corrected to no longer inherit from
G4ElectroMagneticField; this anomaly used to allow a user to provide a
'full' EM field (mixed electric and magnetic), but obtain the force only
from the B-field when using the equation created in the G4ChordFinder
constructor. With this correction it is no longer possible to use the
equation of motion for a pure magnetic field for the case of a mixed
electromagnetic field. Instead the full chain of classes for equation
of full EM field, steppers and driver must be used for the case of the
'full' EM field.
Electromagnetic and optical physics
- The new data set G4EMLOW-7.7 should be used.
Hadronic physics
- The new data sets G4PhotonEvaporation-5.3, G4INCL-1.0,
G4RadioactiveDecay-5.3, G4SAIDDATA-2.0 and
G4PARTICLEXS-1.1 should be used.
- Requiring new G4INCL-1.0 data set and corresponnding G4INCLDATA path
environment variable when using INCLXX physics.
- The old G4NEUTRONXS data set is now replaced by G4PARTICLEXS-1.1,
and the corresponding G4PARTICLEXSDATA environment variable should be
now used.
Analysis
- The default mode for Root n-tuple merging (in multi-threaded runs) is
changed to row-wise in order to preserve an "event point of view" (the
n-tuple rows) after merging. The output files written with this mode use a
different data schema (organisations of TBranches and TLeaves) than
before and so require adapting the macros for reading back the data.
Data Sets
This release introduces new data set versions.
Please see the corresponding details in
Section 9 of this document.
- New data set versions: G4EMLOW-7.7, G4RadioactiveDecay-5.3,
G4PhotonEvaporation-5.3, G4INCL-1.0, G4SAIDDATA-2.0,
G4PARTICLEXS-1.1.
- In order to use ParticleHP for charged particles
(protons, deuterons, tritons, He3 and alphas), an optional data
set G4TENDL-1.3.2 is required, and should be downloaded in
addition from the
Geant4 web site.
4. New Developments and Capabilities
General
- Replaced POSIX threading with C++11 threading, enabling multi-threading
on Windows for use with either static or dynamic libraries.
- G4THREADCREATE is now a variadic template function
(unlimited arguments) instead of a macro
- G4THREADCREATE can be used outside of MT. In sequential
mode, G4THREADCREATE will execute the function on the
calling thread.
- G4Mutex is now a typedef to std::mutex,
even in sequential mode.
- Added G4RecursiveMutex typedef to
std::recursive_mutex.
- Provided generic template functions G4TypeMutex<T>() and
G4TypeRecursiveMutex<T>() to create and access static
instances of mutexes without the need for declarations.
- When combined with G4AutoLock, this enables easy creation of
class-specific locks, e.g.
G4AutoLock lock(G4TypeMutex<decltype(this)>());
- G4AutoLock now inherits from std::unique_lock, even in
sequential mode.
- In sequential mode, G4AutoLock does not lock upon construction,
i.e. std::defer_lock
- Added overloads to accept reference to mutex, in addition to previous
form of a pointer to a mutex.
Analysis
- Switched the default Root ntuple merge mode to row-wise in analysis
tools and added new G4RootAnalysisManager::SetNtupleRowWise(G4bool)
function which can be used to override the defaults.
- Added "Boolean reset" argument in G4AnalysisManager::CloseFile()
function, allowing to close a file without resetting data.
Digitization & Hits
- Added new class G4StatAnalysis, a lightweight statistics class that
calculates the mean, FOM, relative error, standard deviation, variance
and other quantities. Compatible with usage in G4THitsMap and (new)
G4THitsVector -- replacing G4THitsMap<G4double> with
G4THitsMap<G4StatAnalysis> and can provide a quick
implementation of accumulating statistics for scoring.
- Added new class G4THitsVector, a generic hits container compatible with
G4THitsMap, that enables the underlying storage container to utilize a
sequential container instead of a map (saving memory); additionally, it
allows the underlying container to store data as non-pointer types
(saving more memory).
- These containers are intended to be used at the G4Run level to
accumulate data over the course of the run and it is not recommended
for use at the event level -- a G4THitsMap is ideal at the event level
due to the general sparsity of hits per index but at the run level,
G4THitsVector becomes ideal with respect to memory usage as
approximately 40% of the total available indices accumulate non-zero
hits.
- See DICOM2 and ThreadsafeScorers for usage examples,
including demonstrations of G4THitsVector + non-pointer data storage
and the new style of generic iteration over the hits container classes
that is valid for both G4THitsMap and G4THitsVector (the previous form
of iteration over G4THitsMap is still valid, and will remain valid,
for G4THitsMap types).
- Introduced a new interface class, G4VScoreNtupleWriter, which allows
automated storing of scorers hits with Geant4 analysis tools. Concrete
implementations (G4ScoreNtupleWriter with associated messenger) are
demonstrated in new provided extended/analysis examples.
Geometry
- A configuration option allows an installation to use the
VecGeom Unified Solids
Library primitives, to replace the original Geant4 solids, as in the
previous release. The path to an external installation of the VecGeom
library (VecGeom version v01.01.00) should be specified.
See the associated instructions file for configuration and installation.
- Enabled VecGeom wrappers for G4ExtrudedSolid, G4TessellatedSolid, G4Hype
and G4Tet.
- Reimplemented EstimateSurfaceArea() for approximate calculation
of the surface area of a solid with new algorithm providing more
accurate estimation without performance penalty.
- Introduced Bulirsch-Stoer method of integration, an alternative to
Runge-Kutta based on the mid-point method.
- New G4InterpolationDriver field driver class using Runge-Kutta method
with interpolation property to integrate EoM with error control.
- Updated field steppers to make use of cached field vales.
- Improved reporting of looping particle, adding info on density,
fraction (%) of proposed step that was completed and momentum.
Electromagnetic physics
- Use new parameter MscEnergyLimit() (default is 100 MeV)
in EM physics constructors, allowing to customise transition from
low-energy multiple scattering to high energy combination of multiple
and single scattering.
- Alg96 lateral displacement algorithm used in G4UrbanMscModel in all
EM physics.
- Default angular generator for bremsstrahlung is G4ModifiedTsai.
- Revisions of G4BetheHeitlerModel and G4PairProductionRelModel with
improved screening function approximation, improved LPM function
approximation, angular generation and efficiency of sampling
of the final state.
- New gamma conversion model G4BetheHeitler5DModel.
- Added optional possibility to use ICRU90 data.
- New optional ion ionisation models G4LindhardSorensenIonModel,
G4AtimaEnergyLossModel, G4AtimaFluctuations.
- Added new classes for the simulation of elastic scattering of gammas.
Hadronic physics
- For both Fritiof (FTF) and Quark-Gluon-String (QGS) string models,
we have released the latest versions, which have been developed since
the release 10.2 but have not been included in the two previous releases,
10.3 and 10.4, to keep stable the simulation of hadronic showers
(note that snapshots of these developments have been made available
in previous beta releases: 10.3.beta, 10.4.beta and 10.5.beta).
- New tuning of the FTF model parameters, for both string formation
and string fragmentation. Introduced smearing of delta-isobar mass and
improved di-quark fragmentation into baryons in Lund string fragmentation.
First implementation of rotating strings in FTF, at the level of string
fragmentation, with introduction of Mt distribution of hadrons.
Improved process probability parameterizations for Pi-Nucleon interactions;
corrected calculation of nuclear residual excitation energy.
- Major revision of the QGS final-state model: implemented Reggeon cascading
and "Fermi motion"; new algorithm for the determination of the kinematical
properties of partons; improved formation of the residual nucleus.
Improved cross-sections of K-meson - nucleon interactions in QGS: Pomeron
and two non-vacuum exchanges are taken into account.
Gamma-nucleon cross sections are also improved by tuning of parameters.
Improved string fragmentation (G4QGSMFragmentation): new algorithm for
last string decay a-la Lund is implemented; refined the algorithm to stop
the fragmentation.
Tuning the parameters related to both string formation and string
fragmentation to improve the description of thin-target data.
- For both string models (FTF and QGS): first implementation of alpha
cluster structure of carbon nuclei (affecting only hadron-Carbon
interactions), according to P.Bozek et al., Phys.Rev.C90, 064902 (2014).
- For Bertini Cascade, extended strange pair production channels, and
improved pion-quasideuteron reactions.
- Extended upper limit of applicability (from 1 to 100 TeV) for the
diffuse-elastic processes.
- New class for diffuse-elastic process, where the underlying physics model
code has been revised and significantly improved in performance.
- Introduced switch in cross-sections to allow transuranic elements.
- Coherent use of the same parameterisation of level density and pairing
correction between all models in hadronic de-excitation.
Physics Lists
- In all hadronic builders fixed use of data for neutron capture in HP
physics-lists.
- Major revision of all ion builders.
- New tuning of parameters for several EM constructors.
- The physics lists QGSP_BIC_HP and QGSP_BIC_AllHP use EM Opt4
(instead of EM Opt0 as before).
- For FTF/QGS/INCLXX physics-lists builders, use Barashenkov-Glauber-Gribov
inelastic cross-section for pions, avoiding to use Gheisha cross-sections
for pion inelastic on Hydrogen target.
Run
- Added track/step/volume information in G4ExceptionHandler when an
exception happens while event is being processed.
Visualization and Interfaces
- Implemented simple algorithm in visualization to allow colouring of
detector elements based on materials density.
- RayTracer now visualizes layered-mass-geometry volumes defined in
parallel worlds.
- G4UIcommand: additional implementation for adding
a mechanism of carrying back error message from the messenger
if a command is rejected due to the target class or the messenger.
Examples
- B3aScoreWrgiter and B4dScoreWriter: new examples (in
extended/analysis) demonstrating saving of scorers hits in form of
n-tuples in a Root file using Geant4 analysis tools.
- DICOM2: new example (in extended/medical) demonstrating how
to specialise and extend functionalities from DICOM example.
- chem5: new example (in extended/medical/dna), variation of
chem4, showing how to activate chemistry code and score the
radiochemical yield G, using preliminary G4EmDNAPhysics_option8
and G4EmDNAChemistry_option1 constructors.
- splitting: new example (in extended/medical/dna) demonstrating
acceleration of Geant4-DNA physics simulations by particle splitting.
- OpNovice2: new example (in extended/optical) for investigation
of optical properties and parameters. Details of optical photon boundary
interactions on a surface are recorded, as well as the details of
optical photon generation and transport.
- exMPI04: new example in extended/parallel/MPI demonstrating
merging n-tuples via MPI. The G4mpi classes were adapted to
allow to define (an) extra worker(s) for collecting data
from processing workers (needed for merging n-tuples).
- field01: Added code to demonstrate use of G4PhysicsListHelper's
Use[Low|High]LooperThresholds() methods and code to demonstrate
fine grained control of G4[Coupled]Transportation parameters for (killing)
looping tracks (tracks which take too many iterations to finish integration;
typically due to electrons in vacuum, but also can affect other charged
particles).
5. Expected effects on physics and computing performance
Electromagnetic physics
- Extended G4SeltzerBergerModel model with optional sampling tables for
faster run time sampling of the emitted photon energy. Measuring 40-60%
model speedup.
Hadronic physics
- Both hadronic string models (FTF and QGS) describe generally better the
thin-target data with respect to the previous versions.
Moreover, the QGS model becomes competitive with the FTF model, for
most thin-target observables for projectile kinetic energies above
about 20 GeV.
- For the simulation of hadronic showers, both hadronic string models
give higher energy response with respect to the previous versions,
and consistently higher when compared with test-beam and collider data.
We believe at least part of this is due to an underestimate with the Birks
quenching factor which must be applied to the simulation in order to
compare to measured data. The Birks coefficient is a phenomenological
function of energy loss and not of energy deposit. It therefore neglects
the effect of discrete delta ray production performed in Geant4.
We therefore suggest re-fitting from data the Birks coefficient to the
h/e ratio: energy response of a hadron (charged pion or proton) at a
given energy with respect to the energy response of an electron of the
same energy.
6. Known Run-Time Problems and Limitations
For a complete list of outstanding run-time problems and to submit any
problem you may find while running this version of Geant4, please refer
to the
Geant4 Problem
Reporting System.
7. Compilation Warnings
There may be a few compilation warnings on some platforms.
We do not believe that any of these lead to incorrect run-time behaviour.
8. Geant4 Software License
A Software License applies to the Geant4 code.
Users must accept this license in order to use it. The details and the list of
copyright holders is available at
http://cern.ch/geant4/license
and also in the text file LICENSE distributed with the source code.
9. Detailed list of changes and fixes
These are the main new features/fixes included in this release since the
last patched public release (for more detailed lists of fixes/additions,
please refer to the corresponding History files provided in most packages):
Configuration
- CMake
- Added c++17 to C++ standards against which Geant4 can be compiled.
Requires a minimum CMake version of 3.8 to enable.
- Added "auto" dummy Thread Local Storage model; when "auto" is used,
no explicit compiler flag is being set to select the TLS model;
selection is left to compiler default.
- Added configuration for optional profiling package TiMemory.
- Skip validation checking for external zlib sources.
- Added TESSELLATEDSOLID flag to enable optional wrapping of
G4TessellatedSolid with VecGeom implementation.
- Added configuration support for MT on Windows; removed restrictions
and warnings on enabling MT on Windows.
- Support use of WINDOWS_EXPORT_ALL_SYMBOLS for DLL builds with
cmake >=3.4 retaining old capability for CMake 3.3.
- Updated FindInventor.cmake to properly setup SoQt if existing.
- Geant4InterfaceOptions.cmake: added check for existance of SoQt package.
- Geant4MakeRules_cxx.cmake: added -DGL_SILENCE_DEPRECATION to
CMAKE_CXX_FLAGS_INIT for clang to silence GL deprecation compilation
warnings on MacOS 10.14 Mojave.
- Corrected URLs for data installation to use https; added -L flag to
curl to follow redirects when accessing a dataset URL.
- Removed entry for G4NEUTRONXS data set, no longer necessary.
- Updated data-sets versions.
- GNUMake
- In geomconf.gmk, added G4GEOM_USE_UTESSELLATEDSOLID flag to enable
VecGeom wrapper for G4TessellatedSolid.
- Fixed setting of G4RUNPATHOPTION in Darwin/Linux-clang/g++ and
binmake.cmk. Addressing problem report
#2086.
- Cleanup settings for GL in Darwin-clang.gmk and Darwin-g++.gmk.
Added -DGL_SILENCE_DEPRECATION to CPPFLAGS to silence GL deprecation
compilation warnings on MacOS 10.14 Mojave.
Analysis
- Ntuples
- Switched the default Root n-tuple merge mode to row-wise.
- Added function SetNtupleRowWise(G4bool) to G4RootAnalysisManager, allowing
to choose row-wise/column-wise mode also in sequential mode.
- Updated G4TNtupleManager::FinishTNtuple() to support creating n-tuples
both before and after OpenFile().
- Added friend class declarations to allow an implementation of MPI
n-tuple merging.
- Allow overriding of selected functions in G4RootAnalysisManager,
G4RootNtupleManager and G4TNtupleManager, needed MPI ntuple merging.
- Output files
- Added "Boolean reset" argument in G4AnalysisManager::CloseFile()
function, allowing to close a file without resetting data.
- Fixes
- Fixed compilation warnings on gcc-8.1.0.
- Fixed a deadlock issue with G4RootPNtupleManager where the mutex
was locked before being passed to Root.
- Modified management of plotting: G4PlotManager is now instantiated
with G4AnalysisManager what makes possible to remove static
G4PlotParameters. Addressing problem report
#2083.
- Use the same mutex for add_row and end_fill. This should fix
occasional failures of tests in MT mode.
- g4tools
- Updated the g4tools version to g4tools-4.2.3.
See History_tools for the complete list of modifications.
Digitization & Hits
- Introduced a new interface class, G4VScoreNtupleWriter which allows
implementing in the user code automated storing of hits collections of
G4THitsMap (used by primitive scorers) with Geant4 analysis tools;
concrete implementations (G4ScoreNtupleWriter with associated messenger)
are demonstrated in new provided extended/analysis examples.
- Updated G4THitsMap: generic GetContainer(), size(), GetIndex(...),
GetObject(...), begin(), end(), cbegin() and cend().
- Added G4THitsVector class, a generic container compatible with G4THitsMap
such that vectors can be used to score over the course of a run (saving
memory); it allows the underlying container to store data as non-pointer
types.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
Electromagnetic Processes
- Requires data-set G4EMLOW-7.7.
- DNA:
- Updated G4DNAOneStepThermalizationModel and other classes for
chemistry.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Included upper energy limit of models.
- Updated Si mass in G4DNAGenericIonsManager.
- Added protection in Auger emission.
- Fixed header guards in G4ITFinder and G4AllITFinder.
Addressing problem report
#2084.
- High Energy
- G4AnnihiToMuPair: added Coulomb correction to cross-section at
threshold.
- Minor code cleanup in G4eeToHadronsMultiModel, G4eeToHadronsModel and
G4mplIonisationWithDeltaModel.
- G4eeToHadrons, G4eeToHadronsMultiModel, G4hBremsstrahlung,
G4hPairProduction, G4hhIonisation, G4mplIonisation: automatic
documentation format now rST.
- Low Energy
- Added new classes for elastic scattering of gammas by M.Omer
and R.Hajima.
- Updated JAEA elastic model classes.
- G4LivermoreBremsstrahlungModel: no functional changes. Some base class
member names have been changed and these modifications propagated down
to the derived class.
- Fixed problem G4PenelopeIonisationModel responsible for rare energy
non-conservation and run-time warning.
- Fix in G4PenelopeComptonModel and G4PenelopePhotoElectricModel for rare
energy non-conservation.
- Fix for differential cross-section of photo-electrons in
G4LivermorePolarizedPhotoElectricModel. Addressing problem report
#2089.
- G4RayleighScattering: changed automatic documentation format to rST.
- Muons
- G4MuMultipleScattering, G4MuPairProduction, G4MuIonisation,
G4ePairProduction, G4MuBremsstrahlungModel, G4MuBremsstrahlung,
G4MuBetheBlochModel: use default destructor.
- Added minor protection in G4MuPairProductionModel.
- G4ePairProduction: fixed model name.
- G4EnergyLossForExtrapolator: fixed MT initialisation and destruction.
- G4MuMultipleScattering, G4MuPairProduction, G4eePairProduction,
G4MuBremsstrahlung, G4MuIonisation: automatic documentation format
now rST.
- Polarisation
- G4PolarizedAnnihilationModel: implemented sampling of final state
at-rest.
- Code cleanup; removed unused headers and methods.
- Standard
- G4GoudsmitSaundersonMscModel: implemented interface method for
macroscopic first transport cross-section computation per volume
(used only for testing).
- G4GSMottCorrection, G4GSPWACorrections: fixed initialization of first
moment correction factor.
- G4GoudsmitSaundersonTable: fixed gcc-8.1.0 compilation warnings.
- G4WentzelOKandVIxSection: fixed form-factor for proton.
Added Mott corrections to e+-.
- G4WentzelOKandVIxSection: fixed destructor.
- G4ScreeningMottCrossSection: added extra method for more CPU effective
computation of the Mott correction.
- G4UrbanMscModel: correction in order to get better backscattering for
low energy.
- G4eSingleCoulombScatteringModel: fixed calculation of scattering angle.
Addressing problem report
#2090.
- G4ScreeningMottCrossSection: use G4MottData and improved time consuming
computations. Removed obsolete G4MottCoefficients class, replaced by
static data class G4MottData.
- G4ScreeningMottCrossSection, G4eSingleCoulombScatteringModel: added
extra protections on argument of std::acos avoiding crash due to
precision lost; code cleanup.
- G4BetheBlochModel: use form-factor for projectile ion as in formulation
of NIM A 488 (2002) 282.
- G4ionIonisation: apply correction to energy loss only to BetheBloch
ionisation model.
- G4BraggModel, G4BraggIonModel, G4BetheBlochModel: added optional
possibility to use ICRU90 data.
- G4PSTARStopping: minor code cleanup.
- G4LindhardSorensenIonModel, G4LindhardSorensenData: new ion ionisation
model for moderate and high energies.
- G4AtimaEnergyLossModel, G4AtimaFluctuations: new ion ionisation model.
- G4BetheHeitler5DModel: new 5D model.
- G4BetheHeitlerModel, G4PairProductionRelModel: new versions with
improved screening function approximation, improved LPM function
approximation, efficiency, documentation and cleanup.
Corrected call to selecting target atom in final state sampling.
- G4PairProductionRelModel, G4BetheHeitlerModel: use G4ModifiedTsai
angular generator for the final state sampling.
- G4PairProductionRelModel: fixed computation of cross-section in the
new version of the high energy model.
- G4DipBustGenerator, G4ModifiedTsai: implemented new interface for
sampling of directions of e+e- pair.
- G4eplusAnnihilation: moved sampling of final state from AtRestDoIt()
method to SamplingSecondaries().
- Code cleanup in G4eeToTwoGammaModel, G4BetheHeitlerModel and
G4NISTStoppingData.
- G4eplusAnnihilation: set weights for directional splitting.
- G4eplusTo2GammaOKVIModel, G4eplusTo3GammaOKVIModel: make consistent
definition of cross-section for 2-gamma and 3-gamma models; use cuts
for gamma in sampling of 3-gamma final state.
- Added new models, G4eplusTo2GammaOKVIModel and G4eplusTo3GammaOKVIModel.
- G4eBremsstrahlungRelModel, G4PairProductionRelModel, G4PAIySection,
G4PAIxSection, G4ICRU73QOModel: moved inline method which use static
constants to source. Improved code formatting.
- G4SeltzerBergerModel: extended model with optional sampling tables for
fast run time sampling of the emitted photon energy from the
Seltzer-Berger scaled DCS, instead of using the rejection.
The sampling tables are hadled by the new G4SBBremTable class.
Measuring 40-60% model speedup with some additional memory consumption.
- G4eBremsstrahlungRelModel: improved LPM function approximation; code cleanup
and optimization.
- G4SeltzerBergerModel, G4eBremsstrahlungRelModel: use by default
G4ModifiedTsai generator instead of G4DipBustGenerator.
- G4DipBustGenerator: optimisation, speedup; using G4Pow::A13.
- G4GammaConversion, G4eBremsstrahlung, G4hIonisation: use upper energy
limit for low-energy model from physics-list instead of hard-coded
values.
- G4CoulombScattering, G4eBremsstrahlung, G4[e,h]MultipleScattering,
G4eplusAnnihilation, G4[e,h,ion,alpha]Ionisation, G4ComptonScattering,
G4NuclearStopping, G4PhotoElectricEffect: changed auto-generated
documentation format to rST.
- Utils
- G4EmCorrections, G4VEmModel, G4ionEffectiveCharge, G4VAtomDeexcitation:
avoid use of static class members in inline methods; moved long methods
to source; added thread safe definition of model index for atomic
de-excitation.
- G4EmCalculator: fixed GetCrossSectionPerVolume() method in case of
multiple scattering process; the proper value of the first transport
cross-section is retrieved now.
- G4EmCalculator: fixed computation dEdx for ions.
- G4EmParameters, G4EmParametersMessenger: added 5D gamma conversion
model parameters; added MscEnergyLimit() and corresponding UI command;
addressing problem report
#2045;
added extra DNA UI directory and command; improved dump of EM
parameters.
- G4EmParameters: added extra protection to avoid simulteneous definition
of options which should not be enabled together.
- G4EmParameters, G4EmParameterMessenger, G4LossTableManager:
minor update of interfaces; added extra parameters.
- G4EmParameters, G4EmParametersMessenger: added extra parameter and
UI command to enable usage of ICRU90 data; fixed DNA parameters;
added checks of EM physics type.
- G4EmParameters: fixed typo in printout.
- G4VEmAngularDistribution: added SamplePairDirections() method for
sampling of e+e- pair production.
- Added new enumerator G4DNAModelSubType.
- G4LossTableManager: moved inline run time method to source.
- Minor code cleanup in G4VMscModel and G4VEmModel.
- G4EmDataHandler: added public interfaces.
- G4VEmProcess: code cleanup in StorePhysicsTable(..) methods;
introduced 'isTheMaster' flag.
- G4EmElementSelector: code optimisation.
- G4EmModelManager, G4VEmModel, G4VEmProcess, G4VEnergyLossProcess,
G4VMultipleScattering: auto-generated documentation now in rST format.
- G4EmBiasingManager, G4EmParameters, G4EmParametersMessenger,
G4VEnergyLossProcess, G4VEmProcess: enable directional splitting
and moved logic to G4EmBiasingManager.
- Fixed Coverity defects.
- Xrays
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- G4Cerenkov. added protection against infinite loops due to very small
steps. Addressing problem report
#1992.
- G4Cerenkov, G4Scintillation: correctly reset number of photons to
zero each step. Addressing problem report
#2056.
Event
- Code cleanup in G4StackManager to remove branches for muonic atom
settings.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
Externals
- CLHEP:
- Updated to CLHEP version 2.4.1.0.
- Enabled thread-local storage and atomics on Windows and clang,
as now all supported by c++11.
- Ranlux64Engine: fixed compilation warning on Windows for shift count
negative or too big.
- Fixed compilation warnings from gcc-8.1.0 when using
-Woverloaded-virtual compilation option.
- Zlib:
- Updated to Zlib version 1.2.11
- Use original files format and adopt C Compiler for installation.
Addressing compilation warnings on gcc-8.1.0.
General Processes
- Biasing
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Cuts
- Code cleanup; use of nullptr and c++11.
- Management
- Code cleanup; use of nullptr and c++11.
- Optical
- G4OpMieHG: changed GetProperty() to use enum indeces instead of
strings.
- Scoring
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- G4ParallelWorldProcess: fixed track velocity of optical photons for
the first step in a layered mass geometry.
- Transportation
- G4Transportation and G4CoupledTransportation: adjusted killing of
looping particles, to apply only to stable particles. Unstable
particles will be propagated indefinitely. At object destruction,
added printing of the maximum energy and sum of energies of particles
"saved". Added method SetHighLooperThresholds() to restore
old default parameters for killing looping particles (warning energy
to 100 MeV - tracks below this are killed silently; important energy
to 250 MeV - above this, tracks are given multiple chances). Default
constructors now use these high values.
New auxiliary methods PushThresholdsToLogger() and
ReportMissingLogger().
New method SetLowLooperThresholds() for low-E applications.
New method ReportLooperThresholds() to print out the values.
Added extra simple statistics at destruction: stats on non-electrons
loopers killed (sum E, number, max E & its PDG); stats for non-electron
loopers killed (total energy, maximum energy and PDG of the type of
that track). Statistics are now printed by a new method and are
printed also in non-verbose mode.
Addressing problem report
#2063.
- New class G4TransportationLogger to consolidate reports from the
Transportation processes.
- Use G4Exception for warnings, instead of streaming to cout/cerr.
- Fixed Coverity defects.
Geometry
- Magnetic field
- Correction in G4MagneticField to no longer inherit from
G4ElectroMagneticField; this allowed a user to provide a full EM field,
but obtain the force only from the B-field when using the equation
created in the G4ChordFinder constructor.
It is no longer possible to use the equation of motion for a pure
magnetic field for the case of a mixed electromagnetic field. Instead
the full chain of classes for equation of full EM field, steppers and
driver must be used for the case of the 'full' EM field.
- Introduced Bulirsch-Stoer method of integration, an alternative to
Runge-Kutta based on the mid-point method. A separate driver derived
from G4VIntegrationDriver was needed, using specialisation of
G4IntegrationDriver template class.
- Change in G4FieldManager::CreateChordFinder() to cope better
with case where field argument is null.
- Fix for missing interface method in G4VIntegrationDriver; added method
RenewStepperAndAdjust() which used to exist in G4MagInt_Driver. This
method must be defined in those derived driver classes which accept
a Runge Kutta stepper.
- Defined default implementation of the method in G4IntegrationDriver
and G4FSALIntegrationDriver, and implementations in the templated
classes G4IntegrationDriver and G4FSALIntegrationDriver.
- Removed static data from G4FSALIntegrationDriver, G4IntegrationDriver
and G4MagIntegratorDriver and moved to base class as normal data
members. Fix was required for allowing proper symbol exporting on
Windows DLLs.
- Use G4Exception warnings instead of streaming to cerr.
- Added override final for virtual methods in G4UniformMagField.
- Corrections in calculation of chord distance in G4DormandPrince745
(use 4th order interpolation from Shampine 1986 for mid-point).
- Revised G4FieldUtils: moved copy() method from steppers,
added two new setters for simple & variadic methods.
- Fixes to copy input time in ModifiedMidpoint, CashKarp, G4RK547FEq1/2/3
Bogacki-Shampine 4/5 and 2/3, Dormand Prince 4/5, 5/6 and 7/8 and
Tsitouras steppers.
- Fix for unitialised pointer in G4FSALIntegrationDriver constructor.
Revision of data member variable names.
- G4NystromRK4 now uses G4CachedMagneticField for caching values and
creates it if not provided. Any other stepper will work with that cached
field too.
- Removed G4MagIntegratorStepper::ComputeRightHandSide()
virtual method, previously introduced for use with G4NystromRK4
(calling non-virtual RightHandSide() instead).
- New experimental class G4BFieldIntegrationDriver for pure magnetic
field.
In QuickAdvance() it uses helix stepper when rotation angle
is larger than pi/3.
- New experimental class G4InterpolationDriver; using Runge-Kutta method
with interpolation property to integrate EoM with error control.
- Management
- G4AffineTransform: added explicit copy constructor, assignment and
destructor; InverseProduct() has been optimised, now it does
36 multiplications instead of 45; optimised also for the case of pure
translation; added methods for inverse transformation:
InverseTransformPoint(), InverseTransformAxis(),
InverseNetRotation() and InverseNetTranslation().
Minor optimisation to multiplication of matrix by vector, to make use
of temporaries in accessing vector components.
- G4GeomSplitter: replaced use or realloc()/free() and
memcpy() with normal allocation/deallocation through
G4Allocator. Also addressing compilation warnings on gcc-8.1.0.
- G4VSolid: reimplemented EstimateSurfaceArea() for approximate
calculation of the surface area of a solid, by estimating volume of a
thin shell surrounding the surface using Monte-Carlo method; algorithm
providing more accurate estimation without performance penalty.
- Navigation
- G4Navigator::ComputeLocalAxis(): removed unnecessary check
for IsRotated().
- Replaced use of Inverse() from G4AffineTransform with new
dedicated methods, to avoid creation of temporaries in
G4RegularNavigation, G4Navigator and G4ReplicaNavigation.
- G4PropagatorInField: fix for case of finishing integration in last
iteration (so a looping particle will not be signalled incorrectly in
that case). Improved reporting of looping particle, adding info on
density and fraction (%) of proposed step that was completed, and
momentum.
- Use G4Exception instead of streaming to cerr in various classes.
- Fixed Coverity defect in diagnostic report in G4MultiLevelLocator.
- In G4PropagatorInField::ComputeStep(), notify G4ChordFinder
at the beginning of each call.
- Solids (Boolean)
- G4MultiUnion: added protection for normal initialisation in
DistanceToOutVoxels(). Minor optimisation in
DistanceToOut(p,v,..).
- Minor optimisations to G4SubtractionSolid and G4IntersectionSolid
for use of early returns.
- Solids (CSG)
- G4Cons: fix in GetPointOnSurface() when sampling on inner and
outer conical surfaces.
- G4Orb: improved check if point is too far in DistanceToIn(p,v).
- G4Torus: added check if point is too far in DistanceToIn(p,v).
Addressing problem report
#2100.
- Make G4UCons wrapper inheriting from vecgeom::GenericUnplacedCone,
following the latest changes in VecGeom.
- Make G4UTrd wrapper inheriting from vecgeom::GenericUnplacedTrd,
following the latest changes in VecGeom.
- G4UTorus: removed leftover use of UVector3 and replaced with U3Vector.
- Solids (Specific)
- Enabled VecGeom wrappers for G4ExtrudedSolid, G4TessellatedSolid
G4Tet and G4Hype.
- Make G4UPolycone wrapper inheriting from vecgeom::GenericUnplacedPolycone,
following the latest changes in VecGeom.
- Minor cleanup in G4TessellatedSolid::CreatePolyhedron(), no
functional changes.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Removed G4SolidsWorkspacePool class. Adapted G4SolidsWorkspace to
use templated class G4TWorkspacePool.
- Volumes
- Replaced use of Inverse() from G4AffineTransform with new
dedicated methods, to avoid creation of temporaries in G4TouchableHistory,
G4PVPlacement and G4PVParameterised.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- G4PVPlacement: added copy number to G4Exception printing in
CheckOverlaps().
- Removed G4GeometryWorkspacePool class. Adapted G4GeometryWorkspace to
use templated class G4TWorkspacePool.
- Added G4AssemblyStore singleton class for assembly structures bookeeping,
to address the specific use-case of allowing identification of assembly
envelopes.
Global
- Threading
- Removed obsolete MT wrappers for random numbers, no longer necessary.
Simplified definition of G4Random types in Randomize.hh accordingly.
- Full support for thread-local storage on clang (also MacOS clang) now
enabled; updated tls.hh definitions accordingly; removed use of the
G4USE_STD11 flag, now always enabled by default.
- Use thread_local keyword on Windows, instead of
__declspec(thread) in tls.hh. Avoid exporting symbols for
Windows DLLs in multi-threaded builds.
Removed no longer necessary windefs.hh header.
- G4Threading: replaced POSIX threading with C++11 threading
(std::condition_variable, std::mutex, std::recursive_mutex,
std::thread).
Many of the former macros are now dummy macros (e.g. G4MUTEXINIT,
G4MUTEX_INITIALIZER, etc.). Updated pin affinity.
Replaced typedef statements with C++11 using
correspondents.
- G4AutoLock is now a thin wrapper around std::unique_lock providing
previous functionality + more features (e.g. try_lock, try_lock_until,
etc.). Overloaded G4AutoLock member functions in sequential mode to not
execute locking/unlocking.
- Added G4RecursiveAutoLock for recursive mutexes.
- Extended G4TemplateAutoLock to take advantage of the features
std::unique_lock offers.
- G4MTBarrier: removed WIN32 specifics, updated G4CONDITIONWAIT to use
G4AutoLock (std::unique_lock) instead of G4Mutex, removed
G4MUTEX_INITIALIZER from constructor.
- Added G4TypeMutex<T> and G4TypeRecursiveMutex<T> function
to threading for safely obtaining a static mutex that is unique to the
template type T.
- Replaced static G4Mutex in G4Cache with calls to G4TypeMutex
function calls to safely initialize mutexes on Windows.
- Updated G4cout_p and G4cerr_p to point to std::cout and
std::cerr before and after library load.
G4cout before G4RunManager creation has been seen to fail on Windows.
- Improvement to G4AutoLock in non-MT mode + bug fix (void try_lock()
-> bool try_lock()) plus error handling within G4AutoLock
if static mutex is attempted to be used at application cleanup
(previously handled in G4Cache). Using atomics in G4Cache.
- G4Cache, G4CacheDetails: minor code cleanup and formatting.
- Define G4ThisThread, G4Promise, G4Future, and G4SharedFuture in
G4Threading the promises and futures are not currently used but will be
used in future.
- G4TypeMutex and G4RecursiveTypeMutex now accept an index.
- G4DummyThread typedef std::thread::id as id instead of
id_type.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Increased accuracy of G4Pow::A13() in the most critical [1/4,4]
interval.
- Extracted G4Exception banner front/end strings for use in Qt parsing.
- G4PhysicsVector, G4Physics2DVector: fixed possible out-of-bound access
in FindBin() method. Addressing problem report
#2087.
- Reset singleton pointer in G4StateManager destructor;
addressing problem report
#2094.
Minor code cleanup.
- Migrated G4Timer real (wall) time to use std::chrono::high_precision_clock
from C++11. Fixed CPU number printout in operator<<().
Use G4 types. Code formatting.
- Expanded DEFINED_PPC and DEFINED_INTEL in G4FPEDetection.
- Added G4TiMemory header which defines an dummy initializer and empty
macros when the profiling package TiMemory is disabled, while it includes
the TiMemory headers and defines an initializer when built with TiMemory
support enabled. Removed obsolete definition in G4Timer and G4SliceTimer,
causing conflicts with TiMemory. Updated CMake scripts.
- Minor code cleanup in G4UniformRandPool.
- Added new classe G4StatAnalysis, a lightweight statistics class that
calculates the mean, FOM, relative error, standard deviation, variance,
coefficient of variation, efficiency, r2eff, r2int (corr-coeff-of-interp/
coeff-of-determ).
- Added new utility class G4EnvironmentUtils, including convenient
environment converters.
- Added variadic template function to templates.hh to consume unused
parameters and variables.
- G4OrderedTable and G4DataVector: fixed store/retrieve of binary
data format.
- G4AllocatorPool: moved copy-ctr and operator=() to public section.
- Fixes to G4ConvergenceTester to ensure there are no divide-by-zeros
when calculating the stat history.
Added operator += (G4double).Fixed printout typos.
- Updated date of release for 10.5.
Graphical Representations
- Replaced DBL_MAX by G4VisAttributes::veryLargeTime = 1.e100*ns,
(i.e. about 1.e75 billion years), to avoid for consistency DBL_MAX
which is dimensionless.
Disabled deprecated static data member G4VisAttributes::Invisible for
Windows systems.
- Added GetNullExtent() function and operator==() to
G4VisExtent.
- Added G4GREPS_ALLOC_EXPORT flag for DLL symbols export and apply it to
data in G4VisAttributes.
Hadronic Processes
- Cross sections
- G4NeutrinoElectronTotXsc: new class for total (i.e. neutral current
plus charged current) cross-section for neutrino-electron
interactions.
- Introduced switch to allow transuranic elements.
- G4PiNuclearCrossSection: for transuranic elements, scale the
cross-sections from those of Uranium (using the ratio of atomic
weights), instead of using directly the latter.
- G4NeutronElasticXS, G4NeutronInelasticXS, G4NeutronCaptureXS:
adopting new data structure from data set, incompatible with
previous.
- G4ParticleInelasticXS: new inelastic cross sections for neutrons,
protons and light ions based on G4PARTICLEXS-1.1.
- G4HadronXSDataTable: new class for cross-section handling.
- G4CrossSectionDataStore: added new method ComputeCrossSection(); reduced
number of type conversions, number of computation of cross-sections and
code branches; use const pointers to G4Material, G4Element and
G4Isotope; fixed selection of isotope, for energy below 20 MeV
use isotope cross-sections, above 20 MeV - isotope abundaces.
- G4VCrossSectionDataSet: added new flag 'isForAllAtomsAndEnergies' and
get/set methods allowing to reduce the list of cross-sections per
particle.
- Commented out debug printouts in G4ProjectileFragmentCrossSection
header.
- Replaced file-scoped mutexes in G4CrossSectionFactoryRegistry to use
G4TypeMutexwhich addresses a static mutex initialization bug on
Windows.
- G4NeutronElasticXS, G4PhotoNuclearCrossSection,
G4ElectroNuclearCrossSection: removed Gheisha cross-section from
data store; use these classes as default.
Corrected list of isotope cross-section.
- G4NeutronElasticXS: instantiate components in BuildPhysicsTable.
- G4HadronNucleonXsc: improved computation of kaon cross-sections,
kaon-short and kaon-long cross-sections are computed as half sum of
K- and K+. Implemented PDG-2017 parameterisation of total cross-sections.
Use G4Pow, G4Exp, G4Log substituting std::pow(); added
interfaces with G4ParticleDefinition and kinetic energy.
- G4CrossSectionElastic, G4CrossSectionInelastic: use new class
G4HadronicParameters for definition of max energy.
- G4ComponentGGHadronNucleusXsc: general review and speed up without
functional changes; added method ComputeCrossSections();
added cache values.
- G4VCrossSectionDataSet, G4BGGPionElasticXS, G4BGGPionInelasticXS:
replaced explicit high-energy limit of hadronic physics with
the one from G4HadronicParameters.
- G4CrossSectionElastic, G4CrossSectionDataSetRegistry,
G4CrossSectionInelastic: added safe deletion of
G4VComponentCrossSection at end of run.
- G4CrossSectionDataSetRegistry, G4VComponentCrossSection: added
registration/de-registration of component cross-sections.
- G4ComponentGGHadronNucleusXsc: minor code cleanup.
- G4HadronCrossSections: use G4ThreadLocalSingleton pattern.
- G4HadronElasticDataSet, G4HadronInelasticDataSet: added cache;
optimized IsElementApplicable() method.
- G4CrossSectionElastic, G4CrossSectionInelastic: set Zmin=1
instead of 0.
- G4HadronCrossSections: added a protection (with a JustWarning
exception) in the case of direct calls of cross-sections for particles
not handled by Gheisha (e.g. gamma, He3, light anti-ions).
- G4ComponentGGNuclNuclXsc: fixed bug for light ion cross-sections.
- G4VComponentCrossSection, G4CrossSectionInelastic, G4CrossSectionElastic,
G4ComponentSAIDTotalXS, G4ComponentGGNuclNuclXsc,
G4ComponentGGHadronNucleusXsc: use stream in the Description()
method instead of standard output.
- G4ComponentBarNucleonNucleusXsc: simplified and cleaned up, use
G4BarashenkovData.
- G4BGGPionInelasticXS: use N. Starkov parameterisation for
pion-nucleon.
- G4NucleonNuclearCrossSection: use G4ComponentBarNucleonNucleusXsc.
- G4UPiNuclearCrossSection, G4PiNuclearCrossSection: code cleanup.
- G4ComponentGGNuclNuclXsc, G4ComponentGGHadronNucleusXsc: completed
cleanup; removed code duplication, all parameterisations are used from
G4HadronNucleonXsc class only; do not create temporary G4DynamicParticle
objects; implemented computations only inside ComputeCrossSections()
methods.
- G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4BGGPionElasticXS,
G4ComponentSAIDTotalXS, G4CrossSectionPairGG, G4NeutronElasticXS,
G4NeutronInelasticXS, G4ParticleInelasticXS: improved destruction.
- G4VComponentCrossSection, G4CrossSectionDataSetRegistry,
G4CrossSectionElastic, G4CrossSectionInelastic: fixed deletion of
cross-sections and components in MT mode.
- G4ComponentGGNuclNuclXsc: fixed Coulomb barrier computation.
- G4HadronNucleonXsc: introduced parameterisation for kaons.
Restored PDG 2005 parameterisation.
Added cross-sections for strange hyperons.
- G4ComponentGGHadronNucleusXsc: added cross-sections for strange
hyperons.
- G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS, G4BGGPionElasticXS,
G4BGGPionInelasticXS: use only Barashenkov cross-section,
Glauber-Gribov cross-section for target Z>1 and G4HadronNucleonXscNS
for target Z=1. G4BGGPionElasticXS: limit cross-section below
20 MeV.
- G4PhotoNuclearCrossSection: added two new methods, IsIsoApplicable()
and GetIsoCrossSection() to allow photo-nuclear reactions on deuterium.
Addressing problem report
#2092.
- G4ComponentGGNuclNuclXsc: fixed nuclear radius parameterisation.
- G4ComponentGGHadronNucleusXsc: choose NS (i.e. by N. Starkov)
parameterisation for kaon scattering off Hydrogen.
- G4BGGPionElasticXS, G4BGGPionInelasticXS, G4BGGNucleonInelasticXS: use
SAID cross-section at low energy. Use NS (i.e. by N. Starkov)
parameterisation for cross-sections on Hydrogen. G4BGGNucleonElasticXS:
limit elastic cross-section off proton at low energy.
- G4ComponentSAIDTotalXS - make class thread safe
- G4HadronNucleonXsc: use PDG2016 parameterisation for protons.
Smooth kaon cross-section. Kaon cross-section with the same
parameterisation as in G4 10.4.
Added extra method for kaons fully based on NS (i.e. by N. Starkov)
parameterisation.
- G4NucleonNuclearCrossSection: fixed typo in inelastic cross-section.
- G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS
G4ParticleInelasticXS: replaced environment variable G4NEUTRONXSDATA
with G4PARTICLEXSDATA; use full list of isotopic cross-sections
available in G4PARTICLEXS.
- G4CrossSectionFactoryRegistry: fixed printout typo.
- Management
- G4HadronicProcess: fixed compilation warnings on gcc-8.1.0 regarding
catching polymorphic type by value, instead of by reference.
Use const pointers and "nullptr" for G4Material and G4Element; use
ComputeCrossSection() method; removed creation of new
materials at run-time inside GetElementCrossSection(), all materials
should be created in the user code.
Use correct return type when calling CheckResult() from
PostStepDoIt():
fixes case when the value of pointer 'result' does not get properly
reset to NULL in case a non-conservation is detected, thus "bad"
interaction does not get re-sampled.
- Code cleanup in G4HadronicProcess, G4VLeadingParticleBiasing and
G4HadLeadBias. G4HadronicProcess, G4HadronInelasticProcess: added
keyword override; cleanup of cross-section scale factor
and weights; G4HadronicProcessStore: use nullptr and added
flag buildXSTable with get/set methods.
- Added function GetHadronicModel(modelName) in
G4HadronicProcess, which returns a pointer to G4HadronicInteraction.
- Removed obsolete class G4HadronicInteractionWrapper.
- G4HadronicProcess: added check if secondary particle is on the mass
shell; if its mass differ from the PDG mass by more than 1.5 MeV
then the mass is forced to the mass shell, keeping total energy
conserved but not 3-momentum.
- Processes
- G4HadronElasticProcess, G4NeutrinoElectronProcess: fixed compilation
warnings on gcc 8.1.0, regarding catching polymorphic type by value,
instead of by reference.
Use const pointers and "nullptr" for G4Material and G4Element.
- G4NeutrinoElectronProcess: added cross-section biasing.
Modified constructor.
- G4HadronCaptureProcess: revised description; added C++11 keywords.
- Stopping
- G4HadronStoppingProcess, G4MuonicAtomDecay: fixed compilation warnings
on gcc 8.1.0, regarding catching polymorphic type by value, instead of
by reference.
- G4HadronicAbsorptionFritiof: replaced the explicit high-energy limit
of hadronic physics with the one from G4HadronicParameters.
- G4MuonMinusBoundDecay: changed the calculation used in
GetMuonDecayRate(), based on problem report
#2049.
Added another GetMuonDecayRate() function using A, muon and nucleus
masses in addition to Z to accomodate the more accurate formula.
- G4MuonMinusBoundDecay: fixed Coverity defect in GetMuonDecayRate();
removed forbidden creation of G4Element in any model class.
- Utilities
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Added new singleton class G4HadronicParameters, keeping global
hadronic parameters. For the time being, it has only the high-energy
limit of hadronic physics (instead of spreading this value in many
different files, as done up to now). The default value is set to
100 TeV.
- Models Utilities:
- First implementation of alpha cluster structure of carbon nuclei in
G4Fancy3DNucleus, according to P.Bozek et al., Phys.Rev.C90, 064902
(2014). Fixed issue of event reproducibility; added loop checks and general
cleanup. In case of difficulties in the method ChooseFermiMomenta(),
emit a JustWarning exception instead of writing to cerr.
- Minor improvement to code in G4Nucleon and cleanup.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Abla
- Extended model to hypernuclei.
- Updated ABLA interfaces.
- Updated some parameters and code cleanup.
- Fixed some Coverity defects.
- Bertini Cascade
- Added strange pair production channels to list of 6, 7, 8 and 9-body
final states in classes G4CascadeT31piNChannel and
G4CascadeT33piNChannel. Modified template values accordingly.
- G4CascadeT11pizNChannel: extended strange pair production channels to
6,7,8 and 9 body final states.
- Fixes in G4ElementaryParticleCollider methods generateSCMpionAbsorption()
and generateSCMmuonAbsorption(), as they did not produce correct nucleon
pairs when pion or muon was absorbed. Added quantum number conservation
test to method collide().
- Fixed implementation of nuclear_rad_2par configurable key in
G4CascadeParamMessenger.
- G4GDecay3: fixed problem reported by CMS due to wrong kinematics in the
final state by removing loop check; adding protection for low value of
mother mass.
- G4NucleiModel: replace Kossov parameterization of gammaQDxsec with new
values coming from smooth line through deuteron photo-disintegration
data which include 2004 JLab data up to 3 GeV.
Fix in boundaryTransition() to prevent glancing incidence at
shell boundaries from reflecting too many times.
- G4CascadeT11pizNChannel, G4CascadeT31piNChannel, G4CascadeT33piNChannel:
re-ordered particle types in final state arrays so that pion is first
and nucleon is second. Two body final state methods assume this.
- G4CascadeKminusNChannel, G4CascadeKminusPChannel, G4CascadeKplusNChannel,
G4CascadeKplusPChannel, G4CascadeKzeroBarNChannel,
G4CascadeKzeroBarPChannel, G4CascadeKzeroNChannel, G4CascadeKzeroPChannel:
same as above but re-ordered only for two- and three-body final states.
- G4CascadeT1GamNChannel: re-ordered final state particle types so that
mesons are first in two- and three-body cases.
- G4CascadeParamMessenger: added description to /process/had/ directory.
Addressing problem report
#2020.
- Fix in G4PreCompoundDeexcitation::deExcite() to not use const
reference as input since G4PreCompound can change the fragment and
upset the energy balance. In G4CollisionOutput::getTotalCharge(),
subtract electron charges in case of internal conversion in
G4PreCompound.
In G4CascadeCheckBalance::collide(), convert fragment momentum
given in MeV to GeV (Bertini units) and remove
electrom masses from energy balance when internal conversion occurs.
Addesses problem report
#2096
for energy non-conservation.
- De-excitation
- G4ChatterjeeCrossSection, G4KalbachCrossSection: moved implementation
to source.
- G4VEmissionProbability, G4EvaporationProbability: fixed integration
of probabilities for neutron emission for OPT=1,2.
- G4NeutronRadCapture: replaced the explicit high-energy limit of
hadronic physics with the one from G4HadronicParameters.
- G4FermiPhaseSpaceDecay: moved long method from inline to source;
added a protection for low mass of initial state.
- G4LevelReader: attempt to adress problem reports
#1986
and
#2076
by changing hadling of internal conversion data.
- G4LevelReader: changed fatal exception by warning for problematic
level index.
- G4LevelReader: changed fAlphaMax from 1.e+6 to 1.e+15 for correct
IC probability of some isotopes.
- G4DeexPrecoParameters: fixed checks on parameter values.
- G4DeexPrecoParameters: set default deexcitation "evaporation+GEM".
- G4DeexPrecoParameters: set default level density parameter to 0.075.
- G4DeexPrecoParameters: added extra parameter for the FBU model.
- G4FermiFragmentsPoolVI: extended number of FBU fragments from
399 to 991 and corresponding number of reaction channels.
- G4EvaporationProbability, G4CompetitiveFission, G4VEmissionProbability,
G4PhotonEvaporation: coherent use of the same parameterisation of level
density and pairing correction between all models.
- G4CompetitiveFission, G4FissionLevelDensityParameter,
G4FissionLevelDensityParameterINCLXX, G4FissionProbability:
tuned fission parameters.
- G4EvaporationProbability: added option 4 for de-excitation.
- G4LevelManager: added shell correction data and its accessor.
- G4LevelManager, G4NuclearLevelData, G4LevelReader: added intialisation
of level density and pairing correction per isotope, added possibility
to choose between two parameterisations of level density.
- G4FissionLevelDensityParameter, G4FissionLevelDensityParameterINCLXX,
G4EvaporationLevelDensityParameter, G4CoulombBarrier, G4PairingCorrection:
clean up according G4NuclearLevelData.
- G4UnstableFragmentBreakUp: fixed Coverity defect.
- G4ExcitationHandler: added protection to verbosity printouts in
SetDeexChannelsType() and Initialise() methods.
- G4PhotonEvaporation: improved debug printout.
- Fixed few printout typos.
- Fixed Coverity defects.
- Elastic scattering
- Update to G4hhElastic to take into account recent TOTEM data for
proton-proton at 13 TeV.
- Added new class G4DiffuseElasticV2. The underlying physics model is
the same as in G4DiffuseElastic, however, the code has been revised,
cleanup and significantly improved in a number of places.
The performance has been improved by a factor of ~2 with respect
to the original implementation. The approximation of small angles
has been dropped (replaced by exact calculation) as it was not
bringing any visible benefits.
- Set to 100 TeV (instead of 1 TeV) the upper limit
of applicability for the model G4DiffuseElastic and G4DiffuseElasticV2
(the number of equally-sized logarithmic energy bins has been increased
from 200 to 250 to keep the same bin size, 0.04).
The model has been validated with experimental data up to 300 GeV,
but it should not give meaningless results well above this energy.
The number of bins has been further increased from 250 to 300 in order
to have no larger bins up to 10 PeV.
- Replaced the explicit high-energy limit of hadronic physics with the
one from G4HadronicParameters.
- G4AntiNuclElastic: use cross-section component from
G4CrossSectionDataSetRegistry and properly delete it at the end
of run.
- G4NuclNuclDiffuseElastic: replaced the high-energy limit of
applicability of the model from 1 TeV to the value specified
in G4HadronicParameters.
- G4AntiNuclElastic: do not delete component at the end of run.
- G4HadronElastic: fixed numberical instability when final kinetic
energy of projectile is nearly zero.
- INCLXX
- Updated to INCL++ v6.28.
- Improved strangeness and few nucleon removal (HFB).
- Fixed mass of a light hypernucleus (Z=1,A=2). Fixed various bugs.
- Checked porting with C++17 enabled.
- Requiring new G4INCL-1.0 data set and corresponnding G4INCLDATA path
environment variable.
- Use G4RandGauss for Gaussian random distribution, to reduce cases of
event non-reproducibility.
- Changed Adapter::operator()() in G4INCLRandom to make direct use of
G4RandFlat::shootInt(n). Fixes FPE errors occurring in MT mode
optimised.
- Fixed few printout typos.
- Lend
- MCGIDI_misc: fixed printout typo.
- Lepto-nuclear
- G4NeutrinoElectronCcModel: added extra interfaces.
Also fixed Coverity defect.
- G4NeutrinoElectronCcModel: replaced the explicit high-energy limit
of hadronic physics with the one from G4HadronicParameters.
- Particle High Precision
- G4ENDFTapeRead, G4FissionProductYieldDist: fixed compilation warnings
on gcc 8.1.0, regarding catching polymorphic type by value, instead of
by reference.
- G4ParticleHPElementData: removed unnecessary inheritance from
G4HadronicCrossSection.
- Fixed incorrect sampling of isotropic distribution.
Addressing problem report
#1745.
- Fixed gamma level mismatch in G4ParticleHPInelasticCompFS.
Not a complete fix because gamma data comes from ENSDF and does not
necessarily match excitations in ENDF. Addressing problem report
#1789.
- Fixed memory leaks in G4ParticleHPContEnergyAngular::Sample() and
G4ParticleHPContAngularPar::cacheInit(). Addressing problem report
#2026.
- G4ParticleHPCaptureFS::ApplyYourself(): Lorentz boost of neutron into
target frame was backwards; reversed it. Also replaced SetDefinition()
with SetDefinitionAndUpdateE(). Addresses problem report
#1919.
- Fixed definition of singletons for G4ParticleHPManager and
G4ParticleHPThreadLocalManager and some code cleanup.
Made G4ParticleHPThreadLocalManager a G4ThreadlLocalSingleton to avoid
memory leaks generated each time a thread creates the instance.
- Fixed bug for double allocation of G4ParticleHPReactionWhiteBoard in
G4ParticleHPThreadLocalManager::OpenReactionWhiteBoard().
- G4ParticleHPElasticFS::ApplyYourself(): use correct reference frames for
calculation of projectile and target momenta. Correction made for cases
when cos(Theta) is given in lab frame and in center of momentum frame.
Partial fix of momentum non-conservation for problem report
#1918.
- Fixed potential leaks in G4ParticleHPPhotonDist, G4ParticleHPContAngularPar
and G4ParticleHPFinalState for use of pointers cached in G4Cache.
- Minor code cleanup and formatting.
- Parton-String
- In the string fragmentation part of the FTF model, first implementation
of rotating strings with introduction of Mt distribution of hadrons.
Parameters are tuned using NA49 experimental data on pp-interactions.
Good results are obtained for Pi+-, K+-.
For P and Pbar - xF correlations need still improvement.
- Major revision of QGS model; implemented Reggeon cascading and
associated "Fermi motion". Implemented new algorithm of parton
kinematical properties determination and calculation of residual
nucleus properties. Adjusted G4GammaParticipants to the revised
model.
Cut non-vacuum reggeons are interpreted as a creation of a single
string, or as a single string creation and one "stable" hadron.
Such processes are described by RRR diagram of Reggeon phenomenology.
- Improved energy-momentum conservation in the QGS model, especially
in the case of diffraction interactions.
- Major improvement of QGS model: Pomeron parameters are set up according to
A.Kaidalov and M.Poghosyan (2009-2010). Non-vacuum reggeons: f and
omega, are included in the calculations using parameters by A.Kaidalov
and M.Poghosyan (2009-2010).
- New class G4Reggeons for calculations of cross-sections in QGS model.
- Introduced new class G4QuarkExchange for implementation of quark
exchange process in QGS model.
- G4QGSParticipants: implementation of quark-exchange simulation in
the QGS model. Fix for nucleon state counter. Minor fix to avoid
FPE observed only in optimized mode.
- G4VPartonStringModel: throw exception for the case when string
fragmentation does not produce hadrons (for both FTF and QGS models).
- In the QGS model, cleaned and improved G4SingleDiffractiveExcitation and
G4QGSDiffractiveExcitation. Correction in G4SingleDiffractiveExcitation
to treat h + N and Gamma + N diffraction.
- In the QGS model, changed G4MesonSplitter probabilities UUbar DDbar
from (0.5, 0.5) to (0.8, 0.2) for gamma projectile.
- G4QGSMSplitableHadron: fixed bug in the case of gamma projectile with
P_minus = 0 for the QGS model.
- G4ExcitedStringDecay: bug-fix in FragmentStrings() method (access
to the first element of an empty vector: this is for both FTF and QGS
string fragmentation). Increased the number of max attempts to
fragment strings from 10 to 100.
- New tuning of FTF model parameters.
- Introduced various Pt^2 for diffractive and non-diffractive
interactions in the FTF model, for NA49 and NA61/SHINE experimental data.
- Fine tuning in G4DiffractiveExcitation for the FTF model, to describe
NA49 experimental data, especially, on Xf.
- Fix to address the baryon puzzle of NA49 data for the FTF model;
of baryons 1/2 at a string fragmentation setting up at 435 MeV/c,
and Pt for baryons 3/2 production at 900 MeV/c.
- Fine tuning of G4LundStringFragmentation (for the string fragmentation
of the FTF model). Pt of mesons created at quark fragmentation is
decreased. Pt of baryons created at quark and di-quark is increased.
Corrected fragmentation functions of qq->B(1/2) and B(3/2).
Re-organized and cleaned up code; the variant is tuned using NA49
experimental data on pp->p/pi/K +X.
- Introduced smearing of delta-isobar mass in the FTF model;
delta-isobars are now treated as a kinetic track; improved
parameterisation of the quark exchange process with excitation.
NA61/SHINE exp. data on Pi+, Pi-, K+, K- and protons in PP interactions
at 20, 31, 40, 80 and 158 GeV/c are now described. Now
reproducing the ratio of <Strane Q>/<Normal Q> in PP
interactions. Not describing kink in AA interactions.
- Improved di-quark fragmentation into baryons in Lund string
fragmentation (used in the FTF model). Improved description of NA49 and
NA61/SHINE experimental data on p+p->p+X. Improvements in
the method SetMinimalStringMass(), relevant for Pbar P annihilation.
- In the FTF model, improved process probability parameterizations for
Pi - Nucleon interactions. Good results are obtained for HARP data
(p/Pi+/Pi- + A at 3, 5, 8, 12 GeV/c) and for Pi N
inclusive reactions.
- Corrected calculation of nuclear residual excitation energy in the FTF model.
Fine tuning of the FTF model parameters.
- For the FTF model, set to false the switches for the A-dependence
in nuclear destruction for baryon projectile in G4FTFParameters.
Uncommented checks for these switches in the code. No changes in the
random number sequence.
- Improved versions and tuning of Lund and QGS fragmentations
(used, respectively, by FTF and QGS string models).
- G4LundStringFragmentation: bug fixes related to rotating strings
in the FTF model.
- G4VLongitudinalStringDecay: removed useless caching in the method
FragmentationMass() which was causing rare irreproducibilities in
gamma-nuclear reactions (i.e. involving QGS).
- Improved QGS model and fixed issue of event reproducibility in
gammma-nuclear.
- Fixed leak in G4QGSParticipants::GetList() for targets not deleted
after interaction.
- G4QGSParticipants: introduced protection in the QGS model against
negative squared mass in the method PutOnMassShell(), which was causing
some rare crashes. If a negative squared mass occurs, a JustWarning
exception is thrown and the squared mass is set to 0, before calling
the square root (which is now computed only once).
- Moved G4PomeronCrossSection class to 'qgsm' module.
- G4FTFAnnihilation: fix to get flat cos(theta) and phi
distributions for antiproton annihilation at rest in the FTF model.
Added also a protection for the evaluation of the rapidity.
- G4FTFModel, G4DiffractiveExcitation, G4FTFAnnihilation: code
improvements of the FTF model. No changes in physics output, but with
possible differences in the random sequence, due to numerical effects
caused by re-ordering of operations.
- G4LundStringFragmentation: tuning of strange - anti-strange probability
production, for the FTF model, as a function of energy to describe
NA61/SHINE 31 GeV/c p-C data on K+ / K- production.
Decreased also the Lambda0 production for NA61/SHINE 158 GeV/c
and 31 GeV/c p-C: for the former good agreement,
while for the latter the simulation underestimates the data.
- G4QGSMFragmentation: implemented new algorithm for the last string decay
a-la Lund. Improved the algorithm to stop the fragmentation of QGS strings.
Tuning of parameters with NA49 and NA61/SHINE data was performed.
- G4Reggeons: improved cross-sections of K-meson - nucleon interactions
in the QGS model. Taken into account Pomeron and 2 non-vacuum exchanges.
Initial parameters for kaons are taken from Kaidalov's paper (1976).
Improved gamma-nucleon cross-sections by tuning of parameters.
- Fix in G4FTFModel::GetStrings() to return a vector with
size zero in wrong conditions for FTF.
- G4VPartonStringModel: in cases of wrong conditions for the QGS model,
the initial particle/nucleus is returned, according to a similar fix in
FTF model.
- Fixed handling of wrong conditions for the QGS model when it is unable
to generate strings.
- Fixed few printout typos and minor code cleanup.
- Fixed Coverity defects.
- Pre-equilibrium
- G4PreCompoundEmission, G4PreCompoundFragment, G4PreCompoundNucleon:
fixed computations for OPT=1,2.
- G4PreCompoundModel: fixed initialisation.
- G4PreCompoundFragmentVector: moved inlined methods to source.
- G4VPreCompoundFragment, G4HETCChargedFragment, G4HETCFragment,
G4HETCNeutron, G4PreCompoundFragment, G4PreCompoundIon,
G4PreCompoundNucleon, G4PreCompoundModel, G4PreCompoundEmission,
G4PreCompoundTransitions, G4GNASHTransitions: updated usage of level
density parameterisation according to de-excitation model.
- Quasi-Elastic
- G4QuasiElRatios: removed unnecessary protection against heavy
elements.
- Radioactive Decay
- G4ECCapture, G4RadioactiveDecay, G4RadioactiveDecayMode: added electron
capture channel from the N Shell.
- G4ECCapture: added tables of PL2/PL1 PM2/PM1 and PN2/PN1 based on bound
electrons radial wave amplitudes, taken from Bambynek et al., Rev. Mod.
Phys., vol. 49, 1977.
Compute partial probabilities of subshells PL1,PL2,PM1,PM2,PN1,PN2 from
the tables PL2/PL1, PM2/PM1, and PN2/PN1. Valid for allowed transitions.
- G4RadioactiveDecay: enable printout of parameters within G4VERBOSE in
BuildPhysicsTable().
- RPG
- G4RPGAntiKZeroInelastic, G4RPGInelastic: fixed compilation warnings on
gcc-8.1.0, regarding catching polymorphic type by value, instead of by
reference.
Intercoms
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Fixed compilation warnings for not used return parameters.
- G4UIcommand: added comparison of two variables. Addressing problem report
#2068.
Interfaces
- Fixed parse error for empty lines.
- G4Xt: fixed compilation warnings for casts on gcc-8.1.0.
- Fixed compilation warnings for not used return parameters.
- Changed G4VInteractorManager::SecondaryLoop() to virtual
to cope with OpenInventor Qt visualization driver.
Materials
- New class G4AtomicShells_XDB_EADL using experimental binding energy data
from X-ray Data Book (XDB) where available and theoretical values otherwise.
Removed old class G4AtomicShells_EADL.
- New class G4ICRU90StoppingData for ICRU90 data. Added method in G4NistManager
to access G4ICRU90StoppingData; removed check forcing instantiation only in
the master thread.
- G4ICRU90StoppingData, G4NistManager: fixed destruction of ICRU90 data.
Fixed initialisation in G4ICRU90StoppingData.
Particles
- Removed obsolete MaxNumberOfProducts enumerator in G4DecayProducts.
- Removed G4MUTEX_INITIALIZER from constructor in G4VDecayChannel.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Fixed case of energy non-conservation in muon decay, due to wrong
calculation of 2-neutrino system in CM frame for muon decay channel
with spin. Addressing problem report
#2072.
- Fixed proton momentum and direction in G4NeutronBetaDecay.
Addressing problem report
#2088.
- Changed UI command directory for G4NuclideTable
and removed obsolete class G4NucleiPropertiesTableAME03.
- Fix in muon decay channel with spin, for calculation of beta of
a 2 neutrino system in CM frame. Addressing problem report
#2072.
- Code cleanup.
Persistency
- GDML:
- Clear auxiliary map information in G4GDMLReadStructure::Clear().
Addressing problem report
#2064.
- Added stripping of invalid characters for names generation in writer
classes to prevent invalid NCName strings in exported GDML files.
Adopt properly stripped generated strings for exporting names of
optical surfaces.
Physics lists
- Builders:
- Replaced explicit high-energy limit of hadronic physics with the one
from the new class G4HadronicParameters.
- OrderingParameterTable: added gamma and e- processes.
- G4FTFBinaryPiKBuilder, G4HyperonFTFPBuilder: improved deletion.
- In G4QGSBinaryPionBuilder, G4QGSBinaryPiKBuilder, G4QGSPPiKBuilder,
G4FTFPPionBuilder, G4BertiniPiKBuilder, G4FTFPPiKBuilder,
G4BertiniPionBuilder, G4FTFBinaryPiKBuilder, G4BinaryPiKBuilder,
G4INCLXXPionBuilder, G4FTFBinaryPionBuilder, G4BinaryPionBuilder,
G4QGSPPionBuilder, use Barashenkov-Glauber-Gribov inelastic
cross-section for pions. This allows to avoid to use Gheisha
cross-sections for pion inelastic on Hydrogen target.
- Constructors:
- decay
- G4RadioactiveDecayPhysics: fixed initialisation ordering of
messages to EM physics.
- electromagnetic:
- G4EmStandardPhysics, G4EmStandardPhysics_option1/2/4, G4EmLowEPPhysics,
G4EmPenelopePhysics, G4EmLivermorePhysics, G4EmStandardPhysicsGS,
G4EmLivermorePolarizedPhysics: use new parameter MscEnergyLimit()
(default is 100 MeV) allowing to customise transition from
low-energy multiple scattering to high energy combination of
multiple and single scattering.
- G4EmStandardPhysics_option1/2: use Livermore photo-effect model.
- G4EmStandardPhysics_option4, G4EmLivermorePhysics,
G4EmPenelopePhysics: set upper energy limit to 100 TeV.
- G4EmLowEPPhysics: use new 5D gamma conversion model below 80 GeV,
use new Lindhard-Sorensen ion ionisation model above 20 MeV/u.
- Added new class G4GammaSuperProcess, for coherent handling of EM
processes on gamma particles.
G4EmStandardPhysics_option1: enable gamma super process.
G4EmStandardPhysics: added possibility to use gamma super process.
- G4EmLowEPPhysics: added Bremsstrahlung and pair-production for ions.
- G4EmStandardPhysics_option4, G4EmLivermorePhysics, G4EmPenelopePhysics,
G4EmPolarizedLivermorePhysics: use same Goudsmit-Saunderson multiple
scattering model configuration and same configurations for hadrons
and ions.
- G4EmLowEPPhysics: use same configurations for hadrons.
- Renamed G4GammaSuperProcess to G4GammaGeneralProcess.
- G4GammaGeneralProcess, G4EmStandardPhysics, G4EmStandardPhysics_option1,
G4EmStandardPhysics_option4: updated usage of gamma general process.
- Added new constructors G4EmDNAPhysics_option8 and
G4EmDNAChemistry_option1.
- G4EmStandardPhysics_option1: disabled general gamma process.
- G4EmLivermorePhysics, G4EmPenelopePhysics: set stepping function
parameters for muons and hadrons to (0.2,50*um).
- G4EmStandardPhysics_option3: set stepping function parameters for muons
and hadrons to (0.2,50*um) and enable Mott corrections.
- G4EmStandardPhysics_option4: set stepping function parameters for
muons and hadrons to (0.1,20*um).
- Use the most recent version of lateral displacement for the Urban
model.
- G4EmParticles: extended list of particle (Bc+-, OmegaB, XiB,
SigmaB).
- G4OpticalPhysicsMessenger, G4OpticalPhysics: fixed documentation.
Addressing problem report
#2020.
- G4EmStandardPhysics_option4, G4EmStandardPhysics_option3: cleaned up
definition of nuclear stopping process.
- G4EmStandardPhysics_option2: use the same models and parameters
as in LHCb EM physics constructor.
- G4EmStandardPhysicsWVI: use Opt3 parameters; use new ATENA ion
stopping model.
- G4EmLowEPPhysics: use Opt3 parameters; use Lindhard-Sorensen ion
stopping model; use ICRU90 stopping for protons and alpha.
- G4EmStandardPhysics_option3: use Alg96 lateral displacement sampling.
Addresses issue reported in EM processes HyperNews Forum #1516.
- G4EmLivermorePhysics: return back 5D gamma conversion model.
- G4EmDNAPhysics_option7: fix for electron models combination.
- G4EmDNAChemistry, G4EmDNAChemistry_option1: fixed typo in headers.
- factory:
- Moved G4_REFERENCE_PHYSCONSTR_FACTORY macro calls out of
G4PhysicsConstructorRegistry., where they cause an implicit circular
dependency when building granular libraries; moved into inline source
where they can be included as necessary in a higher level compilation
unit. REFERENCE macro calls can be made unique.
- Allow override of exclusion of G4RegisterPhysicsConstructors
definitions when using WIN32 by setting USING_STATIC_LIBS.
- Code cleanup.
- gamma_lepto_nuclear:
- G4EmExtraPhysics, G4EmMessenger: added extra UI commands and
modifiers to define flags for neutrinos and for neutrino-electron
interactions.
- Removed G4MUTEX_INITIALIZER from constructor in G4EmExtraPhysics.
- G4BertiniElectroNuclearBuilder: replaced explicit high-energy limit
of hadronic physics with the one from G4HadronicParameters.
- G4EmExtraPhysics, G4BertiniElectroNuclearBuilder: added enabling of
G4GammaGeneralProcess.
- G4EmExtraPhysics, G4EmMessenger: added possibility of cross-section biasing
for neutrino-nuclear process.
- hadron_elastic:
- G4HadronElasticPhysicsXS: fixed use of data for neutron capture
in HP lists. Addressing problem report
#2057.
- G4HadronElasticPhysics: added service methods GetElasticProcess(),
GetElasticModel() and AddXSection().
Code cleanup: use C++11 keywords; removed unnecessary statics.
- G4HadronElasticPhysicsHP, G4HadronElasticPhysicsPHP, G4HadronElasticPhysicsXS,
G4HadronElasticPhysicsLEND: use inheritance from G4HadronElasticPhysics;
removed most of static members; use of C++11 keywords.
- G4HadronDElasticPhysics, G4HadronHElasticPhysics: use of C++11 keywords.
- G4ChargeExchangePhysics, G4IonElasticPhysics, G4ThermalNeutrons:
removed static members; use of C++11 keywords.
- G4HadronHElasticPhysics: for hyperon elastic cross-sections,
replaced Chips cross-sections with Glauber-Gribov ones.
- G4HadronElasticPhysics, G4HadronElasticPhysicsXS: use G4BGGNucleonElasticXS
cross-section for protons.
- Updated README.
- hadron_inelastic:
- G4HadronInelasticQBBC: use G4ParticleInelasticXS both for neutrons
and protons.
- Replaced explicit high-energy limit of hadronic physics with the
one from G4HadronicParameters.
- In all hadronic builders fixed use of data for neutron capture in HP
lists; fixed configuration of capture and fission models and
cross-sections. Addressing problem report
#2057.
- G4HadronInelasticQBBC, G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BIC:
clean-up model and cross-section configurations for neutrons.
- Fixed possible double deletion of builders objects at the end of a
run.
- G4HadronPhysicsQGSP_BIC_AllHP: rewritten physics constructor for
QGSP_BIC_AllHP, consistently with QGSP_BIC_HP (this fixes the
problem of two fully overlapping neutron-capture models).
- G4HadronPhysicsQGSP_BIC, G4HadronPhysicsQGSP_BIC_HP,
G4HadronPhysicsQGSP_BIC_AllHP: fixed C++11 keyword.
- G4HadronInelasticQBBC, G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGS_BIC,
G4HadronPhysicsQGSP_BIC_AllHP: do not fill internal structure for
cross-sections.
- G4VHadronPhysics: added extra method.
- G4HadronInelasticQBBC: removed more statics variables.
- G4HadronPhysicsFTFP_BERT_TRV: for hyperon inelastic cross-sections,
replaced Chips cross-sections with Glauber-Gribov ones.
- G4HadronPhysicsFTFQGSP_BERT: use BGG pion cross-section consistently
with all other physics lists.
- G4HadronInelasticQBBC: use BGG proton inelastic; fixed neutron
cross-section.
- G4HadronPhysicsShielding, G4HadronPhysicsShieldingLEND: rewritten
to cure memory leaks.
- ions:
- Major revision of all ion builders: reduced number of thread-local
variables; simplified class constructors; for QMD, INCLXX, XS enabled
combined list of de-excitation channels; use max energy from
G4HadronicParameters and do not instantiate FTFP model if this
energy is below max energy of the cascade; G4IonBinaryCascadePhysics
is now identical to G4IonPhysics.
- G4IonPhysics, G4IonBinaryCascadePhysics, G4IonPhysicsPHP: replaced
explicit high-energy limit of hadronic physics with the one from
G4HadronicParameters.
- G4IonPhysicsXS: new constructor in which ParticleXS cross-sections
are used for light ions.
- G4IonPhysics: clean-up, removed unnecessary statics.
- Lists:
- Use new G4RegisterPhysicsConstructors inline definitions to ensure that
for static builds G4PhysicsConstructorRegistry is populated.
- No longer register ShieldingLEND as a wrapper, but use explicit one.
- LBE: replaced the explicit high-energy limit of hadronic physics
with the one from G4HadronicParameters.
- QGSP_BIC_HP and QGSP_BIC_AllHP use EM Opt4 (instead of EM Opt0 as before).
- QBBC: use G4IonPhysicsXS.
- PhysListFactory: added extra EM option "EM0", enabling default Opt0
EM physics configuration.
- Shielding, ShieldingLEND, QGSP_BIC, QGSP_BIC_HP, QGSP_BIC_AllHP: moved
implementation to source, removed templates.
- Added "EM0" option to g4alt::G4PhysListFactory (via G4PhysListRegistry).
- PhysListFactory: added extra EM options WVI and _EM.
- Shielding: replaced use of env variable G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS
with a call to G4ParticleHPManager::SetProduceFissionFragments().
Resolving Valgrind memory run-time errors.
- Util:
- G4PhysListUtil: added methods GetCaptureProcess() and
GetFissionProcess().
- G4DataQuestionaire: substituted G4NEUTRONXSDATA with G4PARTICLEXSDATA.
Run
- Threading
- Replaced pthread-style <void*(void*)> function
signatures with <void(G4WorkerThread*)> as it is now
unnecessary.
- Removed WIN32 conditional for G4THREADCREATE in
G4UserWorkerThreadInitialization, no longer needed.
- Changed G4Thread to G4NativeThread when setting pin affinity in
G4WorkerThread.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Added TiMemory auto-timer macros to some key functions in G4RunManager,
G4RunManagerKernel, G4MTRunManager, and G4MTRunManagerKernel.
- Added TiMemory libraries and includes to CMake script for optional use.
- G4WorkerThread: use G4GeometryWorkspace and G4SolidsWorkspace the same
way as the other workspaces, through the templated worskspace pool class.
- G4PhysicsListHelper: added two new EM physics process types.
- Minor update to G4Run constructor to invoke G4StatAnalysis::ResetCpuClock();
this enables the calculation of the FOM for G4StatAnalysis without requiring
each instance to hold it's own timer.
- Added calls to new G4VScoreNtupleWriter, if activated.
The concrete utility class can implement automated storing of hits
collections of G4THitsMap type (used by primitive scorers) with Geant4
analysis tools.
- Added clearing of G4AssemblyStore in G4RunManager::ReinitializeGeometry().
- G4PhysicsListHelper: added new methods to set low/high 'looper'
thresholds in Transportation classes.
- G4RunMessenger, G4WorkerRunManager: fixed printout typos.
Track & Tracking
- G4SteppingManager: remove unnecessary checks of process manager for
generic ion and muonic atom.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Fixed potential memory leaks in assignment operator and copy constructor
for G4Step and G4Track.
- G4VSteppingVerbose: reset singleton pointer in destructor.
Addressing problem report
#2095.
- Added protection for potential null pointer dereferencing in G4Track.
Addressing problem report
#2097.
- Some code cleanup.
Visualization
Fixed compilation warnings on gcc-8.1.0.
- Management
- Implemented UI command /vis/viewer/set/colourByDensity: simple
algorithm to allow colouring of detector elements based on materials
density.
- Introduced UI command /vis/drawLogicalVolume, synonymous with
/vis/specify. Both commands create a new scene and invoke
/vis/scene/add/logicalVolume. Includes overlap checking.
- Moved time window parameters from G4OpenGLStoredViewer to
G4ViewParameters. Now one can interpolate time window parameters (using
/vis/viewer/interpolate) and make a movie of particles moving
through time. To do this, see guidance on /vis/viewer/set/timeWindow/
commands.
- G4ViewParameters: fix for /vis/viewer/save.
Completed PrintDifferences(), operator<<() and
operator!=() for time window parameters.
Provide proper Get and Set functions for time parameters.
- Moved time window commands to /vis/viewer/set/timeWindow/.
Deprecated the equivalent /vis/ogl/set/ commands.
Copied /vis/ogl/set time window commands to
/vis/viewer/set.
- G4VSceneHandler: reduced repetitive error messages.
- Improved some UI commands.
- /vis/viewer/colourByDensity, changed defaults: algorithm 1
is default; gm/cm3 is the default unit; subsequent parameters
are not omitable.
- Removed G4VViewer::G4Spline.
- /vis/viewer/set/timeWindow/displayLightFront: changed defaults.
- /vis/viewer/colourByDensity: changed defaults.
- Small bug fix in G4ViewParameters operator<<().
- /vis/drawVolume and /vis/scene/add/volume now draw
all occurrences of a physical volume.
- Fixed bug for multiple worlds in /vis/touchable/dump.
- Reinstated G4VViewer::G4Spline.
- /vis/scene/add/volume (and, consequently, /vis/drawVolume):
improved guidance; describe the use of a regular expression.
If physical-volume-name is "world" (the default), the top of the
main geometry tree (material world) is added. If "worlds", the
top of all worlds - material world and parallel worlds, if any - are
added. Otherwise a search of all worlds is made.
In the last case (a search of all worlds) all physical volume names are
matched against the first argument of this command.
- G4VisManager: moved creation of top level commands to end so that
they may pick up guidance and parameters from invoked commands.
- /vis/drawVolume and /vis/draw/logicalVolume: pick up
guidance and parameters from /vis/scene/add/....
- /vis/scene/add/trajectories: avoid adding new model if one
exists. If no trajectories model exists in the scene create a new one...
else it already exists and there is no need to add a new one
because G4TrajectoriesModel simply describes trajectories in the
trajectories store whatever the type.
- Added /vis/touchable/findPath UI command.
- Improved several other facilities for accessing touchables.
- Simplify scene checking and fixed minor bug.
- In /vis/scene/add/logicalVolume, enable overlap checking
text-only output and drawing.
- Minor bug fixes in /vis/scene/add/userAction and
/vis/drawLogicalVolume.
- Modeling:
- Implemented UI command /vis/viewer/set/colourByDensity.
- G4LogicalVolumeModel: added overlap checking.
Fixed Coverity warning for unnecessary check on pointer.
- Extensive revision of handling of touchables.
- Added regex search. Match the string with the required match. The latter
can be of the form "/regexp/", where regexp is a regular expression
or a plain string, in which case there must be an exact match.
- Improved description of G4TrajectoriesModel.
- Initialise line width.
- G4LogicalVolumeModel: enable overlap checking text-only output and
drawing.
- OpenGL
- Implemented G4OpenGLStoredViewer::AddPrimitiveForASingleFrame().
- Updated G4CONDITIONWAIT(...) to new C++11 requirements.
- G4OpenGLQtViewer: replaced explicit usage of G4Mutex locking/unlocking
with G4AutoLock pointers initialized with std::defer_lock as this
enables one to avoid any deadlock or non-locked condition_variable
waits by using G4AutoLock::owns_mutex().
- Small bug fixes, including light front.
- Disable GL_LIGHTING for 3D markers.
- G4LogicalVolumeModel: added overlap checking (printing only for now).
Avoid multiple printing of overlaps. Print only first time for a given
instantiation of G4LogicalVolume.
- Added G4TouchableGlobalTransformScene: returning a pointer to the global
transform of a touchable.
- Added G4TouchableUtils: implementing FindGlobalTransform().
- Added setLineWidth() for trajectory models.
- Open header files to users. In all header files, changed guards
(similarly for OPENGLX, XM, QT, WT and WIN32), so that a user may
include the OpenGL headers and use the OpenGL library. This will be
useful if a user (or a developer) wishes to write a new vis driver
based on the existing OpenGL code.
- OpenInventor
- Implemented kernel visit for "colour by density".
- Enable InventorQt driver.
- Fixes to CMake build script; make OIQT driver installation optional.
- Raytracer
- Use HyperStep of G4ParallelWorldProcess to draw volumes defined in a
parallel world.
- Updated use of thread-local static variables to function returning
a thread-local static reference. New model for allowing support of
multi-threading on Windows DLLs.
- Conform to revision of handling touchables.
- G4RTMessenger: fixed printout typos.
Environments
- G4Py:
- Updated interfaces for release 10.5.
- Fixed setting of CMAKE_INSTALL_PREFIX; addresses problem report
#1924.
Data sets
- New low-energy data set version, G4EMLOW-7.7:
- Updated microelec elastic cross-section files.
- Added new JAEA elastic model data files.
- Added new sampling table data for the Seltzer-Berger Bremsstrahlung
model under brem_SB/SBTables.
- Added a new directory fluor_XDB_EADL with most recent data on binding
energies including rare high Z elements.
- New data files for proton and neutron density profiles G4INCL-1.0:
- New data set based on Hartree-Fock-Bogoliubov calculations for radius
and diffuseness parameter for the proton and neutron density profiles.
The data are used for the INCL++ model, as described in the following
publications:
- K.Bennaceur and J.Dobaczewski, Comput. Phys. Commun. 168, 96 (2005).
- J.L.Rodriguez-Sanchez, J.-C.David, D.Mancusi, A.Boudard, J.Cugnon
and S.Leray, Phys. Rev. C 96, 054602 (2017).
- New data set version G4PhotonEvaporation-5.3 for nuclear de-excitation
data:
- Set IC coefficient = 1e20 for E0 gamma/IC transition of 809.907 keV
in U234 (z92.a234). Correction needed for Pa234m decay simulation.
Addressing problem report
#2076.
- Corrected typo in Te125 (z100.a247).
- New data set version for radioactive-decay processes, G4RadioactiveDecay-5.3:
- Added capture from N shell for I-125, z53.a125. Data taken from DDEP.
- Added alpha decay line in z88.a223 (Ra223). Data taken from DDEP.
- Updated alpha decay in z86.a219 (Rn219). Data taken from DDEP.
- Correction of energy level in z85.a215 (At215).
- Slight update for alpha decay in z84.a215 (Po215).
- Added firstForbidden tag in beta decay channel of z83.a211 (Bi211).
Data taken from DDEP.
- Added firstForbidden tags in beta decay channels of z81.a207 (Tl207).
Data taken frpm DDEP.
- Update data for z37.a82 (Rb82). Data taken from DDEP.
- New data files for evaluated cross-sections G4PARTICLEXS-1.1:
- New data set replacing G4NEUTRONXS; produced from G4NDL-4.5 for
neutrons, G4TENDL-1.3.2 for p, d, t, He3, He4 and LEND1.3 for gamma.
- New data set version for evaluated cross-sections from SAID database,
G4SAIDDATA-2.0:
- Updated data for p,n,pi,k inelastic and elastic.
- Updated data for piN-->2piN and gamma induced reactions.
Examples
- Updated reference outputs, macros and scripts.
- Fixes for Doxygen documentation and coding guidelines.
- Updated reference outputs, macros, READMEs and scripts.
- Updated vis/UI setup. Removed no longer needed G4VIS/UI_USE.
- Added inclusion of G4Types.hh in files for self-consistency.
- Fixed compilation warning on gcc-8.1.0.
- advanced
- air_shower
- Drop detector configuration through preprocessor directives. Use
detector messenger instead.
Reorganised and simplified code in UltraDetectorConstruction.
Geometry can now be changed in the same interactive session.
Allow to remove reflecting surface.
- Reorganised macros. Added new macros.
- No default PrimaryGeneratorAction in UserActionInitialization.
- brachytherapy
- Included new brachy source (I-125 Oncura 6711).
- Added directory test_macro and included more analysis files.
- ChargeExchangeMC
- CexmcException: fixed typo in printout.
- composite_calorimeter
- General clean-up of the example including user actions and SD
classes.
- doiPET
- New example simulating depth-of-interaction enabled positron
emission tomography (PET) scanner.
- gammaray_telescope
- Fixed issues reported by Valgrind. Addressing problem report
#1981.
- GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced explicit
high-energy limit of hadronic physics with the one from
G4HadronicParameters.
- hadrontherapy
- Added function DefineMaterial() in DetectorConstruction to define
materials not contained in the NIST database.
- Added the Phase Space; PrimaryGenerator and DetectorSD modified
accordingly.
- Added HadrontherapyRBE class for RBE calculation.
- Removed analysis for LET and dose.
- In HadrontherapyDetectorSD, added histograms for the energy
deposited and kinetic energy in the phantom slices.
- TrentoProtonPassiveBeamLine changed in TIFPAProtonPassiveBeamLine.
- LET class completely renewed with new calculation approaches.
- Updated user interface initialisation in main().
- Code cleanup.
- iort_therapy
- Removed readout geometry together with Hit class. Including
scoring mesh.
- Fixed bug in the way to delete the geometry of the disk.
- Removed analysis class.
- Removed G4Decay and IORTMatrix as no longer needed.
- Removed Protontherapy.
- IORTDetectorConstruction: fixed initialisation setting of inner
radius for "DiscoIORT0" and "DiscoIORT1" components.
Fixed typos in printout.
- lAr_calorimeter
- FCALTBEventAction: fixed typo in printout.
- medical_linac
- Simplified PhysicsList; fixing problems on Windows.
- Do not explicitly delete singletons, added extra initialisation.
- Do not trigger /run/beamOn during detector construction in
ML2AcceleratorConstructionMessenger and ML2PhantomConstructionMessenger.
- Fixed typos in macros. Set Nloop=10 if the exp data are not provided.
- microbeam
- DetectorConstruction: removed user limits per volume; added
protection from double initialisation.
- Use default random engine in main().
- PhysicsListMessenger: set default step limit to 1 mm.
- StepMax: use thread safe class from EM extended examples.
- PhysicsList, PhysicsListMessenger: use StepMax.
- nanobeam
- Relaxed EM field settings.
- Simplified UI session and updated default.mac macro.
- purging_magnet
- Removed useless buffer singleton PurgMagAnalysisManager and
call directly G4AnalysisManager tools.
- Clean-up in the SteppingAction.
- underground_physics
- DMXPhysicsList: replaced explicit high-energy limit of hadronic
physics with the one from G4HadronicParameters.
- xray_fluorescence
- XrayFluoMercuryDetectorMessenger: fixed typo in printout.
- basic
- B2
- Modified default input macro exampleB2.in to reduce the output.
- B3
- Replaced explicit printing of Run ID with /run/printProgress.
- Added StatAnalysis to example B3b to demonstrate statistical
computations.
- B4
- Replaced deprecated /vis/ogl/set/ with
/vis/viewer/set/timeWindow command in visualization
macros.
- Fix to CMake configuration script.
- extended
- analysis
- Macro & commands review: removed obsolete /N03 top command
directory; added protection against warnings issued from
ReinitializeGeometry() if called in PreInit phase;
added test for all commands defined in this example.
- Added missing include in DetectorConstruction source.
- New examples B3aScoreWriter and B4dScoreWriter based on basic
example B3a and B4d respectively, demonstrating saving of scorers
hits in form of n-tuples in a Root file using Geant4 analysis
tools.
- biasing
- B03
- B03PhysicsList: replaced explicit high-energy limit of
hadronic physics with the one from G4HadronicParameters.
- GB03
- Fixed bug in GB03BOptnSplitOrKillOnBoundary in the
computation of the killing probability.
- electromagnetic
- TestEm2
- DetectorConstruction: improved method names, do not allow to
clear geometry between runs.
- StepMax: use thread safe instantiation, messenger merged with
PhysicsListMessenger.
- Use MixMax default random number generator.
- PhysicsList: make Opt0 default, removed local instantiation of
G4Decay.
- PhysListEm5DStandard: experimental PhysList with the new 5D
gamma conversion model.
- Corrected input macros to optimise output.
- Run: added protection for division by zero.
- TestEm3
- DetectorConstruction: improved method names, do not allow to
clear geometry between runs.
- StepMax: use thread safe instantiation, messenger merged with
PhysicsListMessenger.
- Use MixMax default random number generator.
- Removed radioactive.mac input macro.
- PhysicsList: make Opt0 default, removed local instantiation
of G4Decay.
- Corrected input macros to optimise output.
- TestEm5
- PhysListEm5DStandard: experimental PhysList with the new
5D gamma conversion model.
- Added test of new ion ionisation model, which is included in
the new physics constructor PhysListEm19DStandard;
added atima.mac macro file to compare results with known data.
- StepMax: use thread safe instantiation, messenger merged with
PhysicsListMessenger.
- Use MixMax default random number generator.
- Removed obsloete class PhysListEmStandardSSM.
- PhysicsList: make Opt4 default, removed local instantiation
of G4Decay.
- Corrected input macros to optimise output.
- TestEm7
- SteppingAction: added edep at end of step for photo-electric.
- TestEm8
- Fix for thread safety in PrimaryGeneratorAction.
- Disabled tracking cuts in input macro TestEm8.in.
- Corrected input macros to optimise output.
- TestEm11
- SteppingAction: added edep at end of step for photo-electric.
- TestEm12
- Updated dna.mac input macro.
- TestEm14
- Extended with gamma -> e+ e- 5D conversion code.
- PhysicsList: added G4EmStandardPhysicsWVI, GS, SS.
- Use G4RotationMatrix to convert to gamma reference system.
- Use default random number generator.
- TestEm15
- SteppingAction: no conversion case protection, use directly
G4ThreeVector::orthogonal() for coordinate axis
definition.
- DetectorConstruction: use G4NistManager to allow predefined
materials.
- Minor cosmetics in DetectorConstruction and SteppingAction
classes.
- TestEm18
- Updated PhysListEmStandard, livermore, penelope.
- error_propagation
- Use implicit destructor in ExErrorMagneticField.
- exoticphysics
- monopole
- Changed G4MonopoleEquation to use G4MagneticField instead of
not use G4ElectroMagneticField, as equations of motion do not
use electric field.
- G4MonopolePhysics: fixed static analyzer warning.
- G4MonopoleTransportation: removed several static variables;
fixed code layout.
- Define the field setup data in the DetectorConstruction class
to be thread-local using G4Cache utility.
- Macro review and code clean-up.
- Updated main() to make possible passing the monopole
setup in both batch and interactive mode.
Removed run initialization and added init_vis.mac macro for
interactive session.
- Added warning in G4MonopolePhysics when setting monopole
parameters fails.
- Explicitly define physics lists (FTFP_BERT default).
- Added the default value of magnetic field to 0.2 tesla
and also setting of this value in monopole.in and init_vis.mac.
- Fixed updating geometry parameters after initialization
by calling G4RunManager::ReinitializeGeometry() instead of
GeometryHasBeenModified().
- Added printing production cuts table in
RunAction::EndOfRunAction.
- phonon
- Update references for caustic and timing.
- field
- Macro review and code clean-up: removed EventAction, RunAction,
RunActionMessenger used only for storing random numbers, already
available in kernel; added test for commands
defined in the example at the end of the main input macro;
improved visualization of geometry; added beamOn 10 button
in gui.mac; updated README files.
- BLineTracer
- Fixed compilation error for missing header inclusion.
- field01
- Added code in main() to demonstrate use of
G4PhysicsListHelper's UseLowLooperThresholds() and
UseHighLooperThresholds() methods.
- Added F01RunAction class to demonstrate fine grained control
of G4[Coupled]Transportation's parameters for (killing) looping
tracks (tracks which take too many iterations to finish
integration; typically due to electrons in vacuum, but also
can affect other charged particles).
- Enable use of FSAL stepper and driver (to use it uncomment
line in main()).
- Added command /field/setField Bx By Bz unit.
- field02
- Added command /field/setField Bx By Bz unit.
- field03
- Added commands /field/setField Bx By Bz unit and
/field/setLocalField Bx By Bz unit.
- field05
- field06
- Macro review and code clean-up;
added beamOn 10 button in gui.mac.
geometry/transforms
- DetectorConstruction::PlaceWithAxialRotations(): use
rotate(angle, axis).
hadronic
- envHadronic: added env variables for particleHP.
- Hadr00
- DetectorConstruction: cleanup geometry.
- Hadr01
- Cleaned up geometry definition.
- DetectorConstruction: minor improvement of printout.
- Added test macros.
- Hadr02
- Introduced CRMC (Cosmic Ray Monte Carlo) interface and created
a physics list which uses this interface for very high energy
hadronic interactions, while using FTFP_BERT for the rest.
- Replaced explicit high-energy limit of hadronic physics with
the one from G4HadronicParameters.
- Hadr03
- PhysicsList: added G4HadronElasticPhysicsXS.
- Hadr06
- PhysicsList: use G4IonPhysicsXS.
- Hadr07
- PhysicsList: use G4IonPhysicsXS.
- SteppingAction: added edep at end of step for photo-electric.
- NeutronSource
- PhysicsList: activated use of GetHadronicModel() in
ConstructProcess().
- PhysicsList: use G4IonElasticPhysics and G4IonPhysicsXS.
medical/DICOM
- Enabled CMake package configuration. Added DICOM_USE_DCMTK and
DICOM_USE_HEAD options backwards compatible with environment
variables. Updated CMake scripts to handle DICOM_USE_HEAD setup
and installation.
- DicomHandler implements GetDicomData{Path,File} which provides
a fallback path to data libraries directory for DICOM2 and handles
DICOM_USE_HEAD situation.
Skipping 2 bytes in implicit VR (problem report
#2101).
Corrected reading for 'fPixelSpacingY' (problem report
#2102).
- Phantom parameterization classes take an argument specifying color
file.
- DicomEventAction doesn't print every event; removed
DicomRun::RecordEvent() incrementing numberOfEvent (done
by G4Run::RecordEvent()).
- Cleaned up output; now just a summary is provided and per-voxel
is output to file only.
- Moved Data.dat to Data.dat.old and CMake copies correct
Data.dat.{old,new} to Data.dat in binary directory based on
DICOM_USE_DCMTK setting.
- Use canonical definition for DICOMRunAction; removed wrong
singleton specification.
- DicomPartialDetectorConstruction: fixed shadowing of base class
data for 'fMateIDs'. Fixed type conversion.
- Updated DICOMUtilities.cmake to handle Windows builds; using
modern CMake DICOM::target library alias.
medical/DICOM2
- New example demonstrating how to specialise and extend
functionalities from DICOM example.
medical/dna
- Removed use of obsolete RanecuEngine.
- chem5:
- New example, variation of chem4, showing how to activate
chemistry code and score the radiochemical yield G.
- dnaphysics:
- icsd:
- Activated ntuple merging.
- Updated plot.C for reading ntuples merged with row-wise
mode (now default).
- mfp:
- Rewritten physics list and macro mfp.in to avoid factory
usage.
- microyz:
- Activated ntuple merging.
- Updated plotting function.
- Updated plot.C for reading ntuples merged with row-wise
mode (now default).
- neuron:
- Fixed PhysicsList to allow running on Windows.
- pdb4dna:
- slowing:
- Updated input script and code cleanup.
- spower:
- Rewritten physics list and macro spower.in to avoid factory
usage.
medical/fanoCavity
- ActionInitialization: added printout of Run::EndOfRun().
- PhysListEmStandard_GS, PhysListEmStandard_SS, PhysListEmStandard,
PhysListEmStandard_WVI, PhysListEmStandard_option3: use the same
EM parameters as in physics_lists module.
- Added PhysListEmStandard_option4.
- Updated physics lists according to settings in main module.
medical/fanoCavity2
- Updated physics lists according to settings in main module.
optical/LXe
- LXeDetectorConstruction: moved DefineMaterials() to constructor.
- Replaced local physics configuration with FTFP_BERT +
G4OpticalPhysics/
- Deleted LXeEMPhysics, LXeGeneralPhysics, LXeMuonPhysics and
LXePhysicsList.
- Removed class LXeSteppingVerbose.
- In input macros, removed /LXe/detector/update and added
/run/initialize. General cleanup.
- Addressing problem report
#2042.
- Replaced local physics with FTFP_BERT + G4OpticalPhysics; deleted
custom lists LXeEMPhysics, LXeGeneralPhysics, LXeMuonPhysics and
LXePhysicsList; use G4EmStandard_option4 EM physics.
- Added LXeRun to record and print results at the end.
- Removed LXeSteppingVerbose and cleanup of macros.
- Removed LXeUserEventInformation, use LXeEventAction instead;
removed LXeRecorderBase, replaced with LXeHistoManager.
- Removed unneeded direction named random.
- Fixed MT issue: random directory should not be set via EventAction,
this functionality is moved to DetectorConstruction.
- LXeDetectorConstruction: removed definition of random number
directory from the code, user may define this via UI command.
optical/OpNovice
- Macro review: added test for /OpNovice/phys/cerenkovMaxPhotons
command at the end of OpNovice.in macro; updated README files.
optical/OpNovice2
- New example OpNovice2 for investigation of optical properties and
parameters. Details of optical photon boundary interactions on a
surface are recorded, as well as the details of optical photon
generation and transport.
parallel
- MPI
- New example exMPI04 demonstrating merging n-tuples via MPI.
- Adapted g4mpi to allow to define an extra worker for collecting data
from processing workers (needed for merging n-tuples).
- Added classes for n-tuple merging.
- In exMPI03: fixed warning from analysis when opening the second
output file (dose-merged) within the same run.
- TBB
- Updated to work with migration from POSIX threads to C++11
threads.
- ThreadsafeScorers
- TSPhysicsLists no longer declares G4VPhysicsConstructors in
header.
- Added TiMemory timing to TSPrimaryGeneratorAction and G4Run.
- Added TiMemory ASCII output and serialization to main().
- Fixed shadowing warnings.
- Removed G4MUTEX_INITIALIZER from constructors of G4TAtomicHits.
- Added scorers with G4StatAnalysis and G4ConvergenceTester.
- Improved scheme for using TiMemory to time how long the scoring
takes w.r.t. storage container and PS.
- Included plot generation in main.
persistency
- gdml/G02
- gdml/G03
- RunAction: removed visualisation command.
- P02
- Updated selection.xml file with new members of
G4MaterialPropertiesTable.
- Fixed crash on reading due to duplication of materials in
.root file. Addressing problem report
#2065.
physicslist
- shared
- Copy script works whether include/src directories exist or not.
radioactivedecay
- Activation
- envHadronic: added env variables for particleHP.
- PhysicsList: use G4IonElasticPhysics and G4IonPhysicsXS.
- rdecay01
- Add timeWindowBiased.mac input macro and data.
- rdecay02
- PhysicsList: in constructor, set nuclide table half-life
threshold to 0.1 ps and level tolerance to
1.0 eV, to not miss short-lived nuclides.
- HistoManager, TrackingAction: added two histograms to look
at 0-0.1 MeV, and 0-1 MeV ranges in particle
emission spectra.
- Input macros: updated to latest UserEvapData_z83.a210,
UserRadData_z82.a210, UserEvapData_z102.a252 database formats.
Removed energy unit (keV) from call to /gun/ion in
u238b.mac, po201m.mac and UserEvapDataBiTest.mac.