Geant4 10.2 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.3.
Tested on 64 bit architectures (Intel or AMD) with
CERN CentOS Linux 7 (CC7) (based on CentOS Linux 7).
- MacOSX 10.11 with clang-3.7 (Apple LLVM/Clang-7.0.0)
- Windows7 with Visual C++ 14.0 (Visual Studio 2015)
More verified and tested configurations (64 bits):
- Linux, gcc-4.9.3, gcc-5.2.0, clang-3.6
- Linux, Intel-icc 15.0, 16.0
- MacOSX 10.10 with clang-3.6
- MacOSX 10.9 with clang-3.5
- Windows7 with Visual C++ 12.0 (Visual Studio 2013)
- Linux for Intel Xeon Phi with Intel-icc 15.0, 16.0
(gcc-4.9 compatibility layer)
Note: Windows platforms are supported/verified only for the sequential mode.
Multi-threading capability is not yet supported on Windows.
2. Supported CLHEP version
This release of Geant4 requires and has been verified with
CLHEP, release 2.3.1.1.
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
- Compilation using the C++11 Standard is now enabled by default, therefore
requiring compilers supporting at minimum the following C++11 Standard features:
- Template aliases, as defined in N2258.
- Automatic type deduction, as defined in N1984.
- Delegating constructors, as defined in N1986.
- Enum forward declarations, as defined in N2764.
- Explicit conversion operators, as defined in N2437.
- Override control final keyword, as defined in N2928,
N3206
and N3272.
- Lambda functions, as defined in N2927.
- Null pointer, as defined in N2431.
- Override control override keyword, as defined in N2928,
N3206
and N3272.
- Range-based for, as defined in N2930.
- Strongly typed enums, as defined in N2347.
- Uniform intialization, as defined in N2640.
- Minimum required version of CMake to build Geant4 is 3.3.
User applications can still use CMake 2.8.X or above for configuration
and compilation. It is however recommended to migrate to CMake 3.3 or
above for its improved support of C++ compile and target features.
Geometry
- A new minor release of the GDML schema, GDML-3.1.3, is used,
supporting optional export of physical volumes copy-numbers and
geometrical regions dump.
The new schema is fully compatible with old schema versions
and schema validation thorugh network is already activated against it.
- Optional adoption of the
Unified Solids Library,
can now be achieved after installation of the library as external
package.
Electromagnetic and optical physics
- Updated Goudsmit-Sounderson multiple scattering model for e+-
can be tested in various applications. A new electromagnetic (EM)
physics constructor G4EmStandardPhysicsGS is provided
for that.
- For applications which are using C++ interface to define parameters
of EM physics, it is recommended to switch from usage of the
G4EmProcessOptions class to the G4EmParameters class.
This will guarantee coherent parameters definition also for multi-thread
setup.
- Public methods and corresponding UI commands have been added to
activate PAI, MicroElec, or DNA models in one or more Geant4 regions.
- In all ionisation processes which simulate energy loss along step
the models' lowest energy limits, which force full energy deposition at
a step independently on the material, are reviewed. A coherent and common
approach is introduced, allowing the user to set the value of this limits
via UI commands or the new interface class G4EmParameters.
Introduction of a lowest energy allows to remove hidden tracking cuts
and limits from elastic scattering and ionisation models.
For very low-energy simulations these lowest energy limits may be set
to zero.
- Added alternative Geant4-DNA physics models for liquid water.
- The data file G4EMLOW-6.48 should be used.
Hadronic physics
- The new data sets G4PhotonEvaporation-3.2,
G4RadioactiveDecay-4.3 and G4ENSDFSTATE-1.2
should be used.
- The environment variable G4ENSDFSTATEDATA must be set
to G4ENSDFSTATE-1.2.
- The NeutronHP module has been replaced by ParticleHP:
no change in the user code is required.
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-6.48, G4ENSDFSTATE-1.2,
G4RadioactiveDecay-4.3, G4PhotonEvaporation-3.2.
- The G4ENSDFSTATE data set has now become mandatory, therefore it is
required to have it installed and the appropriate environment variable
G4ENSDFSTATEDATA for its path to be set.
- In order to use ParticleHP for charged particles
(protons, deuterons, tritons, He3 and alphas), an optional data
set G4TENDL-1/0 is required, and should be downloaded in
addition from the Geant4 web site.
4. New Developments and Capabilities
Analysis
- Added "batch plotting" facility.
- Added classes for users parameters management.
- Added ability to send/receive histograms through MPI.
Geometry
- In this release, an option allows an installation to use the
Unified Solids Library
primitives, to replace the original Geant4 solids, as in the
previous release. The path to an external installation of the USolids
library (VecGeom version v00.01.00) should be specified.
See the associated instructions file for configuration and installation.
Electromagnetic physics
- New UI commands and C++ interfaces to define parameters
of EM physics are now provided. PAI models may be enabled per particle type
and detector region on top of any EM physics configuration.
For example, the UI command "/process/em/AddPAIRegion all Tracker"
defines PAI model for all charged particles in Tracker region.
MicroElec models for the Silicon and set of DNA default models for the liquid
water may be also enabled via UI commands and C++ interface.
- In all ionization processes which simulate energy loss along step
a lowest energy limit is introduced, which forces full energy
deposition at a step independently on material. Its value may be
changed via a new UI commands or through the interface class
G4EmParameters. The default value is 1 keV, for Opt3, Opt4,
Livermore, and Penelope physics constructors lowest e+- energy is
100 eV.
- By default lateral displacement sampling is disabled for muons, hadrons,
and ions. To enable lateral displacement a new UI command should be used:
"/process/msc/MuHadLateralDisplacement true".
- G4UrbanMscModel has been updated: e+ corrections are added and a new
optional algorithm to sample lateral displacement is introduced.
The new lateral displacement sampling is used only in Opt3, Opt4,
Livermore, and Penelope EM physics constructors.
- A new implementation of the Goudsmit-Saunderson model for multiple-scattering
is now used for e+- below 100 MeV in the G4EmStandardPhysicsGS
constructor. It is available in the experimental physics-list
FTFP_BERT_TRV.
- The single scattering model with Mott corrections may be enabled in the
G4EmStandardPhysicsSS physics constructor using the new UI command:
"/process/msc/UseMottCorrection true".
- Ion/ion stopping power tables have been updated using new
computations of A. Schinner.
- Introduced new G4LowEPPolarizedComptonModel for simulation of the
Compton scattering of linear polarized gamma.
- Full Auger atomic de-excitation cascade simulation may be enabled
via the new UI command: "/process/em/augerCascade true".
- The usage of the more accurate atomic transition energies (Bearden data)
can be enabled via the UI command:
"/process/em/fluoBearden true".
- Added alternative Geant4-DNA physics models for liquid water
and extra DNA physics constructors.
Hadronic physics
- Improved simulation of low-energy, evaporated nucleons by Fritiof model
coupled with Precompond-de-excitation model.
It affects the energy response in hadronic showers: the visible energy
in simplified calorimeters increases in not heavy absorber materials,
e.g. Iron and Copper.
- A new model for nuclear gamma de-excitation model has been introduced.
It affects the lateral shapes of hadronic showers: narrower showers
are produced, especially for heavy absorber materials.
- The model NeutronHP has been merged into the ParticleHP
model, which now extends the treatment of low-energy neutrons (below
20 MeV) to charged particles: proton, deuteron, triton, 3He and
alpha, with energies up to 200 MeV.
Note: users should be careful when using this model for charged particles,
for various reasons: validation is not yet completed; only the inelastic
interactions are included in this model, while the elastic interaction
is treated independently by other Geant4 models; the TENDL data library is
deployed, which means that ENDF VII(.r1) evaluated data is used only for
the few cases where it is available, while, in all other cases,
the data from TALYS nuclear model is utilized, which can lead to
large uncertainties.
In order to use ParticleHP for charged particles, the optional data set
G4TENDL-1.0 is required.
- Substantial revision of the Radioactive Decay model:
now using G4UAtomicDeexcitation to handle fluorescence and Auger electrons;
improved energy conservation for IT and EC modes to order 30 eV
by using approximate shell energy method of A. Zoglauer;
adapted to changes in particle category by providing a mass defect check
between parent and daughter nuclei; removed dependence on local
isotope table in favor of that in G4NuclideTable.
Particles
- Mass width is taken into account in Phase Space Decay when daughter
particles are resonant particles; dynamic mass is given to daughter
particles according to the Breit-Wigner formula.
Physics Lists
- New experimental EM physics constructors: G4EmStandardPhysicsGS,
G4EmStandardPhysicsWVI, G4EmSTandardPhysicsSS.
- Replaced the Chips neutron elastic cross-section with NeutronElasticXS
one in all (non-HP) physics lists.
- The Glauber-Gribov kaon inelastic cross-sections are used in all physics lists
(instead of either Chips or Gheisha cross-sections).
- In the QBBC physics list, the upper limit of Bertini has been reduced
from 12 to 4 GeV.
- The FTFP_BERT_TRV physics list uses now the standard EM option
with the new Goudsmit-Saunderson multiple scattering model
(i.e. G4EmStandardPhysicsGS). Moreover, the transition region
between Bertini and Fritiof models has been reduced from [3, 12] GeV
to [2, 4] GeV.
- The physics list QGSP_BIC_AllHP uses the ParticleHP
model for charged particles (p, d, t, 3He, alpha) below 200 MeV.
Note: this requires some optional data libraries, which the user needs
to download from the Geant4 web site.
Run
- New UI command for running in multi-threading mode by forcing the
random generator engine to use a specified state (stored in a file)
for each event. This allows to test strong reproducibility in pure
multi-threading mode.
- Increased granularity of MT methods to allow easier subclassing
of run-manager classes and ease integration with external frameworks.
Visualization and Interfaces
- New dedicated thread for visualization in MT mode
- New commands for multithreading:
- "/vis/multithreading/actionOnEventQueueFull": when event
queue for drawing gets full, wait or discard events.
- "/vis/multithreading/maxEventQueueSize": defines maximum
event queue size.
- Added viewer menu button in Open Inventor for PDF output.
5. Expected effects on physics and computing performance
Electromagnetic physics
- Expected reduction of memory per thread in multi-treaded mode.
- Due to increased precision in some models, the measured CPU performance
for some cases of high energy EM shower in HEP calorimeters
is ~1% slower with respect to the previous Geant4 release.
Hadronic physics
- Hadronic showers have changed in two aspects: increased visible energy
in not heavy absorber materials (e.g. Fe and Cu);
narrower lateral showers in heavy absorber materials (e.g. W and Pb).
The change in energy response is mostly due to the development in the
formation of the excited nuclear remnant in the Fritiof model.
The change in the lateral shape is mostly due to the new model for
nuclear gamma de-excitation.
- In some cases simulations of hadronic showers in HEP calorimeters
are faster up to 5% with respect to the previous Geant4 release.
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
- Use CMake Compile Features to setup C++ Standard.
Removed setup of C++ Standard selection via compiler version checking.
Created list of compile features required by Geant4.
Maintain GEANT4_BUILD_CXXSTD option to allow user to choose between
C++11 and C++14 standards. When newer standard is chosen, require that
compiler supports at least one feature from that standard, and add all
supported features of that standard to the required list.
Updated setting of flags and standard used to obtain information from
compile features.
- Always use libc++ with Apple Clang so that std-supporting library is
used for C++11 mode on older Mac systems where libstdc++ is the default.
- Migrate output directories for build products to use same layout as
install tree. For single mode generators (Makefiles/Ninja), products
are output to a 'BuildProducts' subdir of the main binary dir which
holds bin/lib directories as derived from requested install dirs.
With multimode generators (Xcode/VS), 'BuildProducts' holds an extra
directory layer, one per build mode, under which the same bin/lib
structure is used.
- Updates for migration to CMake >= 2.8.12. Use generator expressions in
setting of per-mode compile definitions for Geant4 libs.
- Removed -no-gcc in CMAKE_CXX_FLAGS when using Intel compiler, as gcc
interoperability is required for use of C++11 features in cxxlib.
Removed -i-dynamic from LDFLAGS, no longer supported.
Corrected checking of Intel compiler to use better CMAKE_CXX_COMPILER_ID
variable.
- Only allow use of system USolids, i.e. external installation of the
package.
- Updated Apple Clang detection to work on Xcode-7.
- Correction to allow for both static and shared libs to be built on
Windows.
- Added new GEANT4_USE_FREETYPE option (OFF by default), to allow user to
enable Freetype support in analysis library.
Added export of TOOLS_FONT_PATH to environment when Freetype support is
enabled, pointing to the fonts/ subdirectory of Geant4's share directory.
Added TOOLS_FONT_PATH to test environment when Freetype support enabled.
- Updated FindROOT.cmake script to provide compatibility with Root-6 and
allow usage of ROOTConfig.cmake, if available.
- Changed default build mode for single config generators to RelWithDebInfo
to match testing system and UNIX conventions.
- Added new MSVC only option GEANT4_BUILD_MSVC_MP, defaulting to OFF.
When ON, it prepends /MP to CMAKE_CXX_FLAGS to enable file level parallel
compilation on Windows.
- Allow user to force search for Qt4 only when GEANT4_USE_QT is selected.
Requested on HN User Forum #1766.
- Put CLHEP version 2.3.1.x as the minimum required.
- Updated data-sets versions.
Analysis
- Plotting
- Added "batch plotting" facility for histograms and profiles.
- Implemented "/analysis/xx/setPlotting" commands to activate
plotting for selected histograms or profiles.
- Introduced the plot configuration parameters that can be set
via UI commands: the plotting style, page layout and the viewer dimensions.
- A single plot file, possibly with multiple pages, is generated.
- Implemented support for Freetype.
- Parameteres
- Added a new sub-category, parameters, with first implementation of
G4ParameterManager and G4Parameter<T> classes for handling user
parameters.
- Users can define their parameters objects as named parameters registered
to the parameter manager, which then provides the acces to them by name
and performs their merging in multi-threading mode.
- See their usage in basic examples B1 or B3a.
- MPI
- Added code to send/receive histograms through MPI:
G4VAnalysisManager::Merge(tools::histo::hmpi*) method and G4MMPIToolsManager
class which implements histogram and profiles MPI merging using
tools/histo/hmpi interface.
- Histograms & Profiles
- Implemented "/analysis/xx/setX,Y,Z" commands for setting
histograms/profiles parameters per dimension. They can be used as an
alternative to the complex set commands.
- Removed profile directory; the profiles are put in the histograms directory,
if its name is set by the user.
- Ntuples
- Implemented activation of ntuples.
- Implemented support for the ntuple columns of vector type with Csv output.
- General
- Added Set/GetCompressionLevel() functions to G4AnalysisManager
and changed its default value to 1 (was 9).
- Fixes
- Fixed false warnings about unknown column type when an ntuple contains
a column of a vector type and is created via ntuple booking.
- Fixed parameter range in 'setAscii' command.
- Fixed handling of n-tuples created in MT mode on master thread; this fixes
the problem reported in Hypernews Analysis Forum (#495) and the problem
of deleting non-empty Root file containing only n-tuples.
- Fixed G4AnalysisManager::IsActive(), now taking into account all
histogram and profiles types.
- Fixed G4Analysis::Tokenize() which was failing when processing a
string containing opening double quota without a closing one.
This function is used in messengers.
- Internal
- Introduced C++11 features. Added classes for common handling of tools
objects and restructured existing classes to avoid code duplication.
- Added G4AnalysisOutput type (as class enum) and G4AnalysisManager
functions needed to connect analysis to Geant4 scorers.
- g4tools
- Updated the g4tools version to g4tools-1.26.2.
Digitization & Hits
- Added new G4MultiSensitiveDetector functionality, allowing to assign
multiple sensitive-detectors to a single logical-volume.
Sensitive-detectors are added to this proxy class and an instance of the
proxy is assigned to the logical volume. Calls to the sensitive-detectors
methods are forwarded to all user-defined sensitive-detectors that are
added.
Electromagnetic Processes
- Adjoint
- G4AdjointhMultipleScattering: make it coherent with the forward
multiple-scattering processes.
- G4AdjointCSManager: use G4ThreadLocalSingleton pattern, fixed
computation of A of an element, added initialisation of all
class members in the constructor.
- Fixed coverity defect in G4VEmAdjointModel.
- Checked code for potential never-ending loops.
- DNA:
- Added elastic model by H.Tran.
- Vector of products becomes a pointer instead of a reference in
G4UserTimeStepAction::UserReactionAction().
- G4DNAMillerGreenExcitationModel, G4DNABornExcitationModel: added
GetPartialCrossSection() method.
- Updated G4DNABrownianTransportation and G4Scheduler classes.
- Updated G4TrackState & related classes.
- Born headers: include both model versions when proxy header is
included.
- Added classes G4DNAEmfietzoglouExcitationModel,
G4DNAEmfietzoglouIonisationModel and
G4DNAUeharaScreenedRutherfordElasticModel.
- Added temporary classes G4DNABornIonisationModel2 and
G4DNABornExcitationModel2.
- Added preliminary implementation of G4DNASmoluchowskiDiffusion.
- G4ITTrackHolder: replaced use of G4Threading::IsWorkerThread() by
G4Threading::IsMasterThread().
- G4DNAElastic: added check on name.
- G4DNAIonElasticModel: cleanup and fixed potential double free.
- Removed unnecessary using namespace std from few headers.
- G4DNA processes: corrected setup of energy boundaries.
- Added new classes G4ITLeadingTracks, G4ITSteppingVerbose,
G4IosFlagsSaver, G4DNAElectronHoleRecombination.
- Added new UI command "/chem/tracking/verbose 1,2,3..." in
G4VITSteppingVerbose and G4ITSteppingVerbose.
- Added methods SetFormatedName(), NewConfiguration(), NewConfiguration(),
AddDecayChannel() per G4MolecularConfiguration, Finalize() to
G4MoleculeDefinition; replaced AddDecayChannel() for a molecule model.
- G4MolecularConfiguration: new configuration can be defined by labels;
added Finalize() method and added exception if attempt to modified
the G4MolecularConfiguration is done after finalization.
- G4MolecularDissociationChannel, G4DNAMolecularReactionTable and
G4DNAMolecularEncounterStepper: use G4MolecularConfiguration rather
than molecule models.
- G4Molecule: added constructor where only G4MolecularConfiguration is
specified.
- G4Scheduler: removed entirely track specification from this class.
Added GetGun() method.
- G4ITXProcess: deal with tracks.
- G4ITTrackingManager is a "service" to start and finish tracking.
- G4ITModelProcessor, G4ITStepProcessor: added macro to prevent warnings
in verbose mode.
- G4DNADingfelderChargeDecreaseModel: added hole creation.
- G4DNAEmfietzoglouXModel: specify energy boundaries in constructor.
- G4DNAEmfietzoglouIonisationModel: removed condition for faster code
usage on shell selection.
- Added easier handling of cumulative probabilities in SR elastic models.
- Added new class G4Serialize.
- Added accessors in G4MolecularReactionTable.
- G4MoleculeGun, G4MoleculeGunMessenger: place gun randomly in a box.
- G4DNAAttachment, G4DNAChargeDecrease, G4DNADissociation,
G4DNAExcitation, G4DNAIonisation: updated processes & models
initialisation.
- Use standard shared_ptr types instead of old CLHEP wrappers.
- Added stationary regime to all inelastic models.
- Updated ion selection in G4DNARuddIonisationExtendedModel for Z>2.
- Added proton ionisation scaling in G4DNABornIonisationModel1* classes.
- Fixed issue of vector out-of-bounds in Sanche model.
- Added base class G4VDNAPTBModel.
- Removed dynamic_cast to G4VITProcess in G4ITStepProcessor.
- Renamed G4DNAOneStepSolvatationModel to G4DNAOneStepThermalizationModel.
Avoid placing products outside volume of the mother track and delete
navigator state when model is deleted.
- G4MoleculeCounter: fixed bug and made class compatible with
G4DNAElectronHoleRecombination.
Added a flag to check or not against scheduler time.
- G4MoleculeTable: no longer store G4MolecularConf as G4MolecularConfMan is
taking care of this.
- Added classes G4VITDiscreteProcess and G4ReactionTableMessenger.
- Added class G4DNARevertProbability, now used by
G4DNAWaterDissociationDisplacer.
- G4Scheduler: Update time before G4ITStepProcessor::DoIt().
- Reset leading tracks at the end of the call in
G4ITStepProcessor::DoIt().
- G4ITModelProcessor: added RegisterModel() and GetComputeTimeStep()
methods.
- G4DNAMolecularReactionTable: delete reaction data when table is
deleted.
- G4DNAElectronHoleRecombination: enable using this model even when not
all dissociation products have been defined (they will just not be taken
into account).
- G4DNAWaterDissociationDisplacer: fix and speed up distributions.
- Requires G4EMLOW-6.48 data-set.
- High Energy
- Checked code for potential never-ending loops.
- Replaced use of variable 'L' to avoid
shadowing of new volumetric units.
- Low Energy
- New Monash Compton model G4LowEPPolarizedComptonModel including
polarization.
- Migrated G4LowEPComptonModel to multi-threading.
- G4MicroElecElastic, G4MicroElecInelastic: fixed definition of default
models at initialisation; by default use G4DummyModel.
- G4UAtomicDeexcitation: added optional implementation of Auger cascade,
based on proposal by B.Suerfu (see problem report
#1727).
- G4LowECapture: added capture process needed for MicroElec and DNA
applications.
- G4AtomicTransitionManager: improved Exception printout.
- Fixed issue of over-generation of atomic deexcitation in
PenelopeIonisation model when PIXE activated. Addressing problem report
#1761.
- Updated G4UAtomicDeexcitation for Bearden UI command.
Cleanup initialisation, use only G4EmParameters.
- Fixed cross-section names in G4UAtomicDeexcitation, G4empCrossSection
and G4teoCrossSection.
- G4PenelopeIonisationModel: use G4EmParameters.
- Migrated MT-compliant Livermore polarized models for gammas.
- Upgraded models for pair and triplet production.
- Replaced G4Exception in G4PenelopeIonisationModel with printout.
- Checked while/do loop in G4PenelopeBremsstrahlungFS.
- G4LivermoreIonisationModel: increased intrinsic low limit from 10 eV
to 12 eV.
- G4UAtomDeexcitation: comment out unnecessary G4Exceptions.
- Replaced use of variable 'L' to avoid
shadowing of new volumetric units.
- Checked code for potential never-ending loops.
- Requires G4EMLOW-6.48 data set.
- Muons
- G4MuMultipleScattering: do not redefine step limit type.
- Checked code for potential never-ending loops.
- Polarisation
- G4PolarizedCompton, G4ePolarizedIonisation, G4eplusPolarizedAnnihilation:
changed initialisation taking into account MT mode; added method
ComputeSaturationFactor() used in mean-free-path and step-limit
corrections; removed PreparePhysicsTable() method (use one from the
base class); fixed computation of the value of number of interaction
lengths left which is responsible for the problem report
#1698.
- G4PolarizedComptonModel: revised do/while loop in sampling of gamma
scattering angle.
- Checked code for potential never-ending loops.
- Standard
- G4GoudsmitSaundersonMscModel, G4GoudsmitSaundersonTable:
completely revised and
improved implementation of the model.
- G4GoudsmitSaundersonTable: fix for problem report
#1767.
- New class G4PWATotalXsecTable for GS model.
- G4UrbanMscModel: new positron correction dependent on e+ energy and
material is added; new lateral displacement sampling algorithm
is added as an alternative (disabled by default); flag is added to
switch between lateral displacement sampling methods; repeat check on safety
for each new step; added extra limit for very small step regime;
use "distance" instead of "range" to compare with safety; fixed for rare
long running event; facsafety parameter is set to 0.6 (was 0.3) to
provide some CPU speedup for calorimeter simulation and tiny change of
calorimeter response.
- G4hMultipleScattering: do not redefine step limit type.
- G4IonCoulombScatteringModel, G4eSingleCoulombScatteringModel: removed
unnecessary using namespace std from header files.
- G4IonCoulombScatteringModel, G4eCoulombScatteringModel,
G4hCoulombScatteringModel: removed low-energy limits from scattering
models, because it is now implemented inside ionisation.
- G4IonCoulombScatteringModel, G4IonCoulombCrossSection: fixed wrong
kinematics for the recoil. Addressing problem report
#1763.
- G4IonCoulombScatteringModel, G4hCoulombScatteringModel: fixed recoil
kinematics. Addressing problem report
#1778.
- G4hCoulombScatteringModel, G4WentzelVIRelXSection: fully implemented
scattering in CM rest frame of projectile/target.
- Updated G4ScreeningMottCrossSection and G4eSingleCoulombScatteringModel;
make optimal usage of vectors.
- G4PAIModel, G4PAIPhotModel: fixed re-initilisation in MT mode.
- Removed obsolete class G4PAIPhotonModel.
- G4BraggIonModel: fixed non reproducibility problem.
Addressing problem report
#1771.
- G4ASTARStopping, G4ESTARStopping, G4PSTARStopping: build Spline at
initialisation of a vector.
- G4UrbanMscModel, G4IonFluctuations, G4MollerBhabhaModel: take from
material class the value of effective Z instead of computing it;
fixing potential source of event non-reproducibility.
- Use nullptr in models implementation.
Use rndmEngine->flatArray(n, rndm) in sampling algorithms.
- Checked code for potential never-ending loops.
- Fixes for Coverity defects.
- Requires G4EMLOW-6.48 data set.
- Utils
- G4VEmModel: added extra interface ComputeCrossSectionPerShell();
added new feature, a flag allowing a user to "lock" model
parameters protecting from overwrite by default values. Currently needed
for the new Goudsmit-Saunderson multiple-scattering model.
- G4VEmModel, G4VEmFluctuationModel: removed pointers to random engine,
now handled by individual models (this fix is responsible for small
CPU performance degradation).
- G4VMscModel: compute distance to boundary even if a particle is inside
the world volume (identified use-case when the world volume is filled
not by vacuum but some material).
- G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering, G4VEmModel:
added new interfaces for automatic description of processes/models to
generate HTML pages.
- G4VEnergyLossProcess: use lowest energy from G4EmParameters.
Minor optimisation at the last step.
- G4VEmProcess, G4VEnergyLossProcess, G4LossTableManager,
G4EmConfigurator: removed tabs and improve code formatting.
- G4VEmProcess, G4VEnergyLossProcess: avoid destruction of
G4PhysicsModelCatalog at end of run.
- G4VMultipleScattering: fixed algorithm of displacement beyond the boundary.
- G4EmParameters, G4EmParametersMessenger: added new methods and
respective UI commands for muon/hadron/ion multiple scattering:
SetMscMuHadRangeFactor(), SetMscMuHadStepLimitType(),
"/process/msc/RangeFactorMuHad", "/process/msc/StepLimitMuHad" and
use these methods in G4VMultipleScattering;
added vector of regions, public interface and corresponding UI commands by
which PAI, MicroElec, or DNA models may be activated on top of any
EM physics builders.
- G4EmParameters, G4EmParametersMessenger: added
added extra flag AugerCascade and its use in G4VAtomDeexcitation;
added extra parameters accessors and UI command
("/process/em/printParameters") to dump EM parameters,
for lowest energy for e+- and muons/hadrons; added SetDefaults() method
for initialisation of EM parameters; define allowed names for PIXE
cross-sections and to multiple-scattering step limits; fixed PIXE
cross-sections names; added UI command ("/process/em/fluoBearden") for
Bearden files and its use in G4VAtomicDeexcitation.
Added useMottCorrection parameter, Get/Set, and UI command
"/process/msc/UseMottCorrection".
- G4LossTableManager: moved run time methods to be inlined.
- G4VAtomDeexcitation, G4LossTableManager: changed initialisation, now
happening before BuildPhysicsTable() in each thread.
- G4VAtomDeexcitation, G4EmProcessOptions: use only G4EmParameters for
de-excitation module parameters.
- G4EmCalculator: moved simple methods to inline; added public method
SetupMaterial() for computation of cross-section per atom, to add
initialisation of material (problem observed in Bremsstrahlung
cross-section); added ComputeCrossSectionPerShell, minor fixes of
printout; added special computation of dEdx for ICRU'73 based ion
ionisation model. Addressing problem report
#1792.
- Checked code for potential never-ending loops.
- Fixed Coverity defects.
- Xrays
- Calculate deltaTime more accurately in G4Scintillation and G4Cerenkov.
- Checked code for potential never-ending loops.
Error Propagation
- Checked for potential never-ending loops.
Event
- Fixed Coverity defects.
- Fixed logical bug in GPS relative to the use of
"/gps/source/clear" UI command when old sources could still be used
(addressing problem report
#1744).
- Fixed problem report
#1706.
Externals
- Removed internal USolids module. Adapted scripts for optional builds
against an installation of the
Unified Solids Library
in a different, outside location.
- Updated CLHEP module to version 2.3.1.1:
- Added MixMax random engine classes implementing the "Matrix Generator
of Pseudorandom Numbers", as described in J. Compt. Phy. 97, 573 (1991).
- Added liter and its sub units to SystemOfUnits.h: liter, L, dL, cL,
mL.
- Fixed usage of std::abs() in RandGaussZiggurat.
- Moved static methods handling static data in G4RandGauss from inline
to source. Addressing problem report
#1754.
- Switch off gcc-5 warnings for deprecated calls to auto_ptr in Utility
headers. Switch off gcc-5 warning for unused variable in Randomize.h
header.
- Use std::shared_ptr in random classes instead of internal Boost-derived
implementation. In the Utility module, removed Boost derived
implementation of shared_ptr and weak_ptr; removed no longer used
type_traits.h header.
- Corrected RandExpZiggurat to use shared_ptr as for all other
distributions.
- Upgraded expat module to version 2.1.0.
Use pragmas to suppress trivial warnings for GNU and Clang compilers.
- Upgraded zlib module to version 1.2.8.
Keeping local modifications, like function declarationss, and removed
obsolete register keyword; added type casts to fix compilation errors
on Windows.
General Processes
- Biasing
- management:
- Migrated to use G4VAuxiliaryTrackInformation: removed classes
G4BiasingTrackData and G4BiasingTrackDataStore.
Removed no longer applicable methods in G4VBiasingOperator.
- G4VBiasingOperator : added Configure() and ConfigureForWorker()
virtual methods, primarely intended to handle the G4VAuxiliaryTrackInformation
ID's creation (ID's to be created using the G4PhysicsModelCatalog).
- generic:
- Migrated to use G4VAuxiliaryTrackInformation: created
G4BOptrForceCollisionTrackData and rewritten G4BOptrForceCollision
biasing operator accordingly. The bookkeeping of tracks to be biased
is no longer made through state variables stored by the operator but
through the G4BOptrForceCollisionTrackData; this makes the bookeeping
much simpler, eliminates non-reliable cases, and allows for warnings
to be issued in case a track to be biased is undeservedly deleted.
- Removed dependency on deleted G4BiasingTrackData in 'management' module.
- Cuts
- G4VRangeToEnergyConverter: added back call to Reset() in destructor.
- Checked code for potential never-ending loops.
- Decay
- Fixed issue in G4Decay::DecayIt() to check that the parent mass is
enough for decay products.
- Check on parent mass for decay products moved to method
G4VDecayChannel::IsOKWithParentMass().
- Fix for spin treatment in decay in-flight. Addressing problem report
#1783.
- Management
- Cleanup source code of messengers.
- Fixed Coverity defects in G4ProcessTable.
- Checked code for potential never-ending loops.
- Optical
- Change calculation of NewPolarization in G4OpRayleigh to avoid
potential division by zero. If the polarization is perpendicular to
the scattering plane, it will not change after the scattering.
- Added call to ProposeLocalEnergyDeposit() for particle-change in
G4OpAbsorption.
- Corrected reflectivity calculation with complex refractive index;
include the index of refraction of the PreStepPoint medium; allow
for a real and imaginary part of the index of refraction.
Addressing problem report
#1762.
- Checked code for potential never-ending loops.
- Scoring
- G4ParallelWorldProcess: added verbosity to check update of field-track.
- Fixed Coverity defects.
Geometry
- Checked code for potential never-ending loops.
- Protected compilation of USolid wrappers with G4GEOM_USE_USOLIDS flag.
- Division
- Fix for use of rotation matrix in G4VDivisionParameterisation in
MT-mode; use thread-local pointer for rotation matrix as member of
the class G4VDivisionParameterisation and set it to suto-delete.
Removed unnecessary thread-local verbose flag.
Addressing problem reports
#1743
and #1758.
- Set as unsupported divisions of polycone and polyhedra in MT-mode.
- Magnetic field
- Change assignment to field instead of field array in G4RepleteEofM.
Included NumberOfVariables in G4RepleteEofM constructor argument
list.
- Added check against number of iterations in
G4ChordFinder::FindNextChord(), to identify potential cases of lack
of convergence.
- Management
- Added shadow pointers to shared data structures in G4LogicalVolume
and G4VPhysicalVolume for exclusive use by object persistency.
- Return const reference in G4LogicalVolume::GetName().
Addressing report
#1757.
- Use G4Threading::IsMasterThread() function in splitters.
- In G4VSolid, moved EstimateCubiVolume() and EstimateSurfaceArea()
to public section for specific use-cases and customisation of precision.
- Replaced use of sprintf with C++ streams in G4AffineTransform.
- Navigation
- G4MultiLevelLocator::EstimateIntersectionPoint(): fix for logic error
in keeping consistent candidate intersection. Copes with case that a
candidate intersection is not found in the next segment (typically in
the 'second half' part).
Ensure that splitting of step (new level/depth) advances the required
length, used when adding a new level/depth.
Revised condition of 'while' loop which ensures that a new candidate
intersection exists. Corrected the resetting of 'first_section' flag.
Replaced fatal error for exceeding max steps with warning and signal
'looping' for too many steps; G4PropagatorInField detects this
condition, and identifies it as a 'Looping Particle' which is then
flagged; the calling class (Transportation, PathFinder) is expected
to stop the tracking of this particle after a few of these steps.
Addressing issue seen by ALICE (non-finishing of step due to poor
advances).
- G4VIntersectionLocator: added new logging methods & revised interfaces.
- G4NavigationLogger: added method to report issue with normal that
is the result of applying a rotation.
- G4NormalNavigation, G4VoxelNavigation: added check of rotated exit
normal.
- Removed unused leftover header file G4GeomTestVolPoint.hh.
- Solids (CSG)
- Added USolids/VecGeom wrapper for G4Torus.
- Introduced check in G4Sphere::DistanceToIn(p,v) for concave
Theta and point located on the origin. Also make proper use of radial
tolerance in DistanceToOut(p,v).
- Fixed Coverity defect in G4CutTubs::GetMaxMinZ().
- Solids (Specific)
- Added USolids/VecGeom wrapper for G4Paraboloid.
- Added specialised implementation for GetCubicVolume() in
G4TessellatedSolid.
- G4PolyhedraSide: moved internal struct definitions to public section
to overcome deficiencies in object-persistency class parsing.
- Removed redundant condition in G4Polyhedra and G4Polycone
SetOriginalParameters() method.
- Minor code cleanup in G4SurfaceVoxelizer.
- Volumes
- Enabled paramerisation by solid type in G4GeometryWorkspace in MT-mode.
Assumes solids being parameterised are declared thread-local in the
user's parameterisation class and allocated just once.
Global
- First implementation of G4UniformRandPool for serial generation of
uniform random numbers. Feature not actived yet.
- Introduced IsMasterThread() function in G4Threading header.
- Added type-info information to G4Allocator to aid debugging.
- Force use of G4MT wrappers for Intel-icc compiler for random numbers.
Explicit settings for Intel-icc compiler in tls.hh.
- Added missing inline specification to functions in G4String.icc.
Added string length check in G4String::operator==().
- Tune radial tolerance to same value as for Cartesian tolerance in
G4GeometryTolerance.
- Added units in G4SystemOfUnits.hh: liter, L, dL, cL, mL.
Updated G4SIunits.hh and G4UnitsTable accordingly.
- G4PhysicsVector, G4Physics2DVector, G4PhysicsOrderedFreeVector:
use std::lower_bound() instead of do/while loops.
- G4Pow: added protections against zero value of argument of methods
powN(), powA() and A13(). Minor cleanup.
- Update date of release for 10.2.
Graphical Representations
- HepPolyhedron: corrected a long-standing spelling mistakes.
This is reflected in the method names, but the old names have been
kept for backwards compatibility. Fixed Coverity defect.
Hadronic Processes
- Fixed Coverity defects.
- Cross sections
- G4CrossSectionDataSetRegistry, G4VCrossSectionDataSet: defined as
G4ThreadLocalSingleton; delete all x-sections at exit except HP.
- G4KokoulinMuonNuclearXS: fixed initialisation for the case of multiple
runs.
- G4DiffElasticRatio: added protection for hydrogen; added energy
thresholds to skip treatment of low-energy particles.
- Added description method to cross-section classes.
- G4CrossSectionDataStore: additions to print Html documentation.
- G4NeutronInelasticXS, G4NeutronCaptureXS: fixed isotope cross-sections
including retrieve, data management, isotope x-section and isotope
selection.
- Deleted old classes G4GlauberGribovCrossSection, G4GGNuclNuclCrossSection,
and replaced them with new, recommended ones G4ComponentGGHadronNucleusXsc
and G4ComponentGGNuclNuclXsc, respectively.
- Added artificial cross-section data set G4ZeroXS which always replies
zero.
- G4HadronNucleonXsc: fixed energies for K-p data in order to avoid crash
when bounds check is applied.
- G4ComponentGGHadronNucleusXsc: added Default_Name() method.
- G4HadronNucleonXsc, G4ComponentGGHadronNucleusXsc: clean up of
kaon-nucleon cross-section vector-arrays, no longer used.
- G4CrossSectionDataSetRegistry: added same ad-hoc trick of NeutronHP to
ParticleHP models to prevent problem at termination.
- First implementation of fast-path (ASCR style) cross-section feature
(currently OFF by default).
- Properly treat initialisation of float quantities in
G4HadronCrossSections.
- Replaced use of variable 'L' in G4ElectroNuclearCrossSection.cc to
avoid shadowing of new volumetric units.
- Migrated code to use faster G4Exp, G4Log and G4Pow where possible.
- Management
- G4HadronicProcessStore, G4HadronicProcess: fixed procedure of
deletion at exit.
- G4HadronicProcess: improved method GetElementCrossSection() to be used
also with neutronHP (which needs a material defined).
- G4HadronicProcessStore: print "/n", i.e. "per nucleon", in the kinetic
energy limits of hadronic models in the case of ions.
Addressing problem report
#1775.
- Replace condition in G4HadronicProcess::BiasCrossSectionByFactor()
with initial capital letter for strings being compared.
Addressing problem report
#1740.
- Updates to G4HadronicProcessStore for Html documentation.
- Checked code for potential never-ending loops.
- Models Management:
- G4HadronicInteractionRegistry, G4HadronicInteraction: fixed
deletion of models at exit. Made G4HadronicInteractionRegistry
thread-local singleton.
- G4HadronicInteractionRegistry: more accurate check on HP
models.
- Processes
- Changed default argument of G4He3InelasticProcess constructor to avoid
confusion with triton. Addressing problem report
#1782.
- G4HadronElasticProcess: switch to ProcessDescription() interface.
- Added G4PhotoCaptureProcess and G4PhotoFissionProcess classes.
- Inline some methods in G4UCNBoundaryProcess.
- Checked code for potential never-ending loops.
- Stopping
- G4AntiNeutronAnnihilationAtRest: migration to G4Exp, G4Log and G4Pow.
- G4HadronStoppingProcess: removed call to DeRegistration() to fix
memory corruption reported by Valgrind.
- Checked code for potential never-ending loops.
- Utility
- G4NuclearPolarization: new container class keeping nuclear polarisation
tensor.
- G4Nucleus, G4Bessel and G4LightMedia: use G4Exp, G4Log and G4Pow.
- Checked code for potential never-ending loops.
- Models Utilities:
- New implementations of G4Clebsch, G4LegendrePolynomial and
G4PolynomialPDF for correlated gamma nuclear de-excitation.
- G4Fragment: fixed copy constructor; fixed leak in operator=().
Use initialisers in constructors.
Add usage of G4NuclearParameterization.
- G4GeneralPhaseSpaceDecay, G4KineticTrack : extension to deal with
decays with maximum 4 daughters (instead of 3).
- G4KineticTrack: fixed final products list.
- Use G4Exp, G4Log and G4Pow in place of std functions.
- Checked code for potential never-ending loops.
- ABLA
- Checked code for potential never-ending loops.
- Abrasion
- Use G4Exp and G4Pow in G4NuclearAbrasionGeometry and
G4WilsonAbrasionModel.
- Checked code for potential never-ending loops.
- Bertini Cascade
- G4InuclCollider: added special end-of-cascade test to require
low-energy photo-nuclear and lepto-nuclear events to produce at least
one non-gamma secondary. Currently hidden behind
G4CASCADE_CHECK_PHOTONUCLEAR flag; will address problem report
#1680
to increase neutron yield around the giant dipole resonance, without
model changes.
- G4KaonSampler, G4HyperonSampler: new copies of G4KaonHypSampler, which
will eventually diverge with different energy binning, in order to
extend kaon and hyperon final state tables to ~30 GeV.
- G4KaonSampler: modified to 30 bins, finely divided up to 1.5 GeV, very
coarsely grained above 10 GeV. Binning optimized to isolate various
resonances in Kp and Kn spectra.
- G4CascadeKplusPChannel: use new G4KaonSampler binning, with final states
tabulated up to 9-body. Should dramatically improve match to data.
- Follow new G4cbrt() by moving powers of Z and A out of argument.
Lookup table only covers real nuclei (up to about 300 or so).
- G4CascadeInterface: call static Initialize() function in constructor,
for sequential builds or master thread.
- Migrated "TLS" local buffers in G4InuclSpecialFunctions and
G4NucleiModel to use G4AutoDelete mechanism. This removes them as
spurious memory leaks at end of job.
- G4CascadeCoalescence: added explicit inclusion of G4InuclElementaryParticle
header to address compiler error from Cray (as reported in Configuration
Hypernews Forum #1764).
- G4CascadeKplusNChannel: extended to 9-body final states and 32 GeV
using same energy bins as G4CascadeKplusPChannel.
- Migrated code to use G4Pow, G4Log, and G4Exp.
- Verified while-do loops conditions for potential non-termination.
Binary Cascade
- Improved fragmentation of fast residual nuclei in
G4GeneratorPrecompoundInterface, with energies of the order of some
TeV/nucleon. A residual is transformed in its rest frame. After
fragmentation, all produced fragments are transformed to Lab.
system.
- G4GeneratorPrecompoundInterface: propagate for hA interactions. Fixed
bug for a case when the actual mass of a residual nucleus is less than
the ground state mass of the residual.
Introduced CaptureThreshold variable and improved calculation of
excitation energies of projectile and target nuclear residuals.
Improved calculation of excitation energies of nuclear residuals for
QGS model.
- Migrated code to use G4Exp, G4Log, and G4Pow.
- Checked code for potential never-ending loops.
De-excitation
- G4NuclearLevelStore: taken out access to G4LevelManager.
- G4NuclearLevelData: new data class for nuclear levels and gamma
transitions; pure singleton with data shared among threads.
Adapted classes G4LevelReader, G4LevelManager and G4NucLevel
accordingly.
- G4LevelReader: added factor to transform half life time into life
time.
- G4NuclearLevelData, G4LevelReader: cleanup of reading of the data.
Implemented lazy initialisation per isotope (before data for all isotopes
for a given Z were uploaded); reduces initial memory footprint.
- Moved new nuclear data structure classes to 'management' module.
Removed obsolete G4E1SingleProbability1, G4VPhotonEvaporation
classes.
- G4VEvaporationChannel, G4VEvaporation, G4VEvaporationChannel: moved
setters from G4PhotonEvaporation to reduce number of new/delete at
initialisation.
- G4VEvaporationChannel, G4LevelManager, G4EvaporationFactory,
G4EvaporationDefaultGEMFactory, G4EvaporationGEMFactory: added new
method GetNearestLevel() providing access to the nuclear level data
from any nuclear decay channel. Providing implementation of
GetNearestLevel() in G4PromptPhotonEvaporation.
- G4Evaporation: access random engine before the loop.
- Renamed G4PromptPhotonEvaporation as G4PhotonEvaporation, the old
G4PhotonEvaporation class
is renamed as G4PhotonEvaporationOLD.
- G4PhotonEvaporation: added prototype of gamma transition class with
correlated gamma emission. Computation of probability of gamma emission
does not use level data information (and does not require uploading files);
this reduces CPU used by de-excitation module.
- G4PhotonEvaporation, G4GammaTransition, G4PolarizedGammaTransition:
added protection against fragments with Z > 100. Added protection
against wrong shell index.
- Replaced use of variable 'L' in G4LevelReader.cc and
G4PolarizationTransition to avoid shadowing of new volumetric units.
- More accurate use of G4float, make explicit conversion to G4double
when needed, use float const for initialisation of float.
- G4WilsonAblationModel, G4EvaporationFactory, G4EvaporationFactory,
G4ExcitationHandler: use default constructor of G4Evaporation and
access photon evaporation class from G4Evaporation.
- G4VEvaporationChannel, G4PhotonEvaporation: removed "timeType"
which is no longer used; removed name of channel.
- G4ChatterjeeCrossSection, G4KalbachCrossSection: new cross-section
classes to be used for all evaporation fragments.
- G4AlphaEvaporationProbability, G4DeuteronEvaporationProbability,
G4EvaporationProbability, G4He3EvaporationProbability,
G4NeutronEvaporationProbability, G4ProtonEvaporationProbability,
G4TritonEvaporationProbability: use new classes above; reduced
number of virtual calls and number of computations in the
integration loop.
- G4FissionParameters, G4CompetitiveFission: fixed kinematics;
code cleanup.
- G4EvaporationChannel, G4EvaporationProbability: optimisation of
the sampling of final state.
- G4WilsonAblationModel: complete migration to G4PromptPhotonEvaporation.
Use G4Exp and G4Pow; fixed Coverity defect.
- G4VGammaDeexcitation, G4PhotonEvaporation, G4E1Probability,
G4DiscreteGammaTransition, G4DiscreteGammaDeexcitation,
G4ContinuumGammaTransition, G4ContinuumGammaDeexcitation:
tolerance is reduced from 1-10 keV to 0.1 keV.
Required in order to address problem report
#1760.
- G4PolarizationTransition: new class for correlated gamma emission.
- G4VEvaporationChannel, G4VEvaporationChannel, G4LevelManager: added
extra method GetMaxLevelEnergy() needed for decay channels to
distinguish continue and discrete excitation states.
- G4FermiPhaseSpaceDecay: removed obsolete method to sample N-body
decay and left only Kopylov one. Fixed compilation on Windows.
- G4ExcitationHandler: increased limit for multi-fragmentation model from
4 to 400 GeV, so rare cases when a fragment with very
high excitation is sent to the de-excitation module are not treated any
longer with this model.
- Fixed cases of event non-reproducibility.
- Checked code for potential never-ending loops.
Elastic scattering
- G4ElasticHadrNucleusHE : share cross-section tables among threads.
- G4LMsdGenerator: modification in angle distribution to reduce angles
at high energies. Changed final state for pi+- DD, according to recent
COMPASS data.
- Migration to use ModelDescription() for G4ChipsElasticModel,
G4ElasticHadrNucleusHE, and G4HadronElastic.
- G4ElasticHadrNucleusHE: added check on max Z. Fixed Coverity defect.
- G4LMsdGenerator: disactivated internal elastic scattering of
dissociated hadron.
- G4NuclNuclDiffuseElastic: fixed trivial Coverity reports.
- Removed unnecessary "using namespace std" statement from some
headers.
- G4LMsdGenerator: improved resonance masses, taking them from
G4ParticleTable.
- G4LMsdGenerator: included resonances recommended by the COMPASS
experiment in diffraction dissociation.
Fixed uninitialized variable responsible for event
non-reproducibility.
- G4DiffuseElastic: bug-fix in BuildAngleTable() to improve the angle bin
accuracy at high energies.
- Use G4Exp, G4Log and G4Pow in several classes.
- Properly treat initialisation of float quantities.
- Checked code for potential never-ending loops.
Electromagnetic dissociation
- G4EMDissociation: fixed memory leaks. Removed useless header file
dependency on G4GeneralPhaseSpaceDecay.
Fission
- Migrated to use ParticleHP instead of NeutronHP.
- Adapted interface in G4FissionLibrary with particle-hp module.
- Set A and Z of actual target of reaction to "targetNucleus" from
HadronicProcess. Reset isotope pointer to the target G4Nucleus object
of reaction; fixing warning message about 'ReactionWhiteBoard
disappeared'.
- Migration to fast-math functions.
- Checked code for potential never-ending loops.
High Energy Theoretical
- Migrated code to use fast math functions.
- Properly treat initialisation of float quantities.
- Checked code for potential never-ending loops.
Im_r_matrix
- Moved G4Clebsch class to 'models/util' module.
- Cleared compilation warning on clang-3.6.
INCLXX
- Updated to INCL++ v5.2.9.5.
- Removed unnecessary using namespace std statement in
G4INCLXXInterface.
- Introducing possibility to perform calculations with a limited number
of outgoing pions in multi-pion collisions.
Checked all the while loops in the code and added guards and comments.
- Added some setters for configuration; added UI commands to control the
INCL physics and the coupled de-excitation model; removed
INCL_INVERSE_KINEMATICS compile-time symbol.
- Omit use of real masses from incl42 physics option.
- Fixed nuclide name parsing.
Lend
- Updated LEND code to LEND v1.3.
- fixed case of energy non-conservation in Capture and Inelastic.
- Migrated code to use fast math functions.
- Fixed compilation problem on Intel-icc with c++11 enabled.
- Checked code for potential never-ending loops.
Lepto-nuclear
- G4MuonVDNuclearModel: defined G4KokoulinMuonNuclearXS via factory
interface allowing reuse of already instantiated class; keep pointer
of G4KokoulinMuonNuclearXS instead of object in order to avoid double
deletion at exit.
- Migrated code to use fast math functions.
- Checked code for potential never-ending loops.
Particle High Precision
- Fixing problem of possible infinite loop in
G4ParticleHPEnAngCorrelation.
- Fixed rare core dump in thermal scattering.
- Uncomment out para/ortho hydrogen and liquid/solid methane.
- Adjust A and Z in the case of mismatch between selected data and
target nucleus.
- Added G4ParticleHPMessenger class.
Added UI commands for controlling options of HP package and verbose
level.
- Delete unnecessary issue of BuildPhysicTable.
- Introducing ThreadLocalManager for storing information related to each
individual reactions.
- Avoid using the cache of cross-section, as the same feature is offered
in G4CrossSectionDataStore.
- Improved sharing of static data among threads.
- Added model and cross-section descriptions.
- Fixed problem on photon distribution. Addressing problem report
#1745.
- Fixed issue in MT-mode in Wendt-Fission-Fragment model.
- Use G4Threading::IsMasterThread() instead of calls to
IsWorkerThread().
- Fixed cases of array out-of-bound errors.
- Fixed problems at deletion and reproducibility in multi-threading mode.
- Use G4Threading::IsMasterThread().
- Enable to use dynamically generated materials.
- Improved memory consumption.
- Fix problem in G4InterpolationIterator.
- Fixes in G4ParticleHPProduct and G4ParticleHPEnAngCorrelation for solving
event reproducibility issues.
- Moved header files from old 'neutron_hp' module as typedefs to new
types for backward compatibility. Added NeutronHP.History and
FissFragGen.History, copies of the History files in the old neutron_hp
module.
- Replaced use of variable 'L' in G4ParticleHPThermalScattering.cc and
G4PolarizationTransition to avoid shadowing of new volumetric units.
- Migrated code to use fast math functions.
- Checked code for potential never-ending do-while loops.
- Note: if ParticleHP is used only for neutrons, as replacement
for NeutronHP, then the usual neutron data library
(G4NDL4.5) is utilized.
In order to use ParticleHP for charged particles
(protons, deuterons, tritons, He3 and alphas), the optional data
set G4TENDL-1.0 is required, downloadable from the Geant4 web site.
Parton-String
- G4FTFParameters: tuning to improve the description of evaporated
neutrons, based on an analysis of ITEP and Leray experimental data.
- G4LundStringFragmentation: improved reaction cross-sections of:
Pbar + P -> Pi+ Pi-, K+ K-.
- G4FTFModel: changed lower energy limit from 2 to 1 GeV.
Introduced smearing of the excitation energy associated with an
involved nucleon.
Implemented correct coupling of FTF with BIC. Energy-momentum is
conserved.
Improved sampling of nucleon momenta after the Reggeon cascading in
the method G4FTFModel::SamplingNucleonKinematics().
Added protection to Elastic hN scattering.
Added new methods Set/GetCofNuclearDestructionPr() in G4FTFParameters,
for projectile nucleus, according to last studies that Reggeon
cascading depends on nuclear mass number.
Tuned parameters in G4LundStringFragmentation according to NA49 data.
Fixed case of potential FPE in FragmentString() function.
G4ExcitedStringDecay: fixed bug leading to energy-momentum
non-conservation in QGSM.
Fixed bug in G4QGSMFragmentation::SplitEandP() for rare
energy-momentum non-conservation.
G4FTFParameters: fixed Valgrind error for uninitialized variables.
Use G4Exp, G4Log and G4Pow.
Checked code for potential never-ending loops.
Pre-equilibrium
- G4PreCompoundFragment: use classes G4KalbachCrossSection and
G4ChatterjeeCrossSection; removed duplicate computations of these
cross-sections; fixed sampling of kinetic energy of emitted fragment.
- Fixed compilation problem on icc-16 in G4PreCompoundFragment.
- Checked code for potential never-ending loops.
QMD Reaction
- Added model and cross-section descriptions.
- Added new method GetExcitationHandler() in G4QMDReaction and deleted
obsolete code.
- Fixed bug in handling forgiven decay in G4QMDCollision.
- Migrated to use fast-math functions.
- Checked code for potential never-ending loops.
Quasi-elastic
- Fixed problem of double deletion.
- Migrated code to use fast math functions.
Radioactive Decay
- Added new classes G4BetaMinusDecay, G4BetaPlusDecay, G4ECDecay
and G4ITDecay to streamline inheritance chain and reduce
non-reproducibility.
- Use G4NuclearDecay as the new base class for all decay channels.
This replaces G4NuclearDecayChannel.
- Removed G4NuclearDecayChannel from G4RadioactiveDecay.
- G4RadioactiveDecay: register G4UAtomicDeexcitation to
G4LossTableManager in BuildPhysicsTable() so that electron shells can
be found. Set Fluo and Auger flags to true, PIXE to false.
Change code to create new atomic deexcitation only if one doesn't
already exist.
- Temporary removal of decay table map sharing for threads, to resolve
observed failures in MT mode.
- Activated Auger in G4RadioactiveDecay::BuildPhysicsTable().
- Re-enable setting of ARM on/off (default is on) in G4ITDecay and
G4ECDecay.
- G4RadioactivedDecay::LoadDecayTable(): implemented changes back to
level search using tolerance (now 0.1 keV).
- G4RadioactivedDecay::AddDecayTable(): bug fix in combination of
branching ratios (brs[1] -> brs[2] in beta+ decay).
- G4ECDecay: use of daughter atom instead of parent atom when calling
atomic relaxation.
- Addressing problem report
#1727
for Auger electron cascade missing vacancies.
- G4ITDecay: fix memory leak of G4Fragment objects.
Addressing problem report
#1787.
- G4RIsotopeTable: added object name in constructor; removed
G4RIsotopeTable (now redundant) and all associated pointers from
G4RadioactiveDecay.
- Changed G4ProtonDecayChannel by G4ProtonDecay.
- G4NeutronDecay added to work with the "Neutron" key in the radfiles.
- Fixed cases of energy non-conservation in IT and EC modes due to
incomplete atomic relaxation model. Addresses problem report
#1756.
- G4RadioactiveDecay::DoDecay(): pass parent mass + 30 MeV to
G4DecayTable::SelectADecayChannel() in order to account for difference
in mass defects between parent and daughter.Addresses problem report
#1793.
- Removed obsolete class G4BetaFermiFunction and references to it in
G4NuclearDecayChannel. Addresses problem report
#1785.
- Checked code for potential never-ending loops.
- Requiring new data set RadioactiveDecay.4.3.
RPG
- Migrated code to use fast math functions.
- Properly treat initialisation of float quantities.
- Checked code for potential never-ending loops.
Intercoms
- Deal with implementation of remove_reference() in G4AnyMethod for cases
where one is compiling with the C++11 standard.
- Fixed Coverity defects in G4UImanager.
Interfaces
- G4UIQt:
- Added method GetCoutDockWidget() returning a QDockWidget.
Materials
- G4IonisParamMat: corrected density effect parameterisation when density
of a simple (one component) material differs from the nominal value;
use G4Exp and G4Log;
added protection for the case of large difference between nominal density
and defined density of the material; for big difference Sternheimer-1971
parameterisation is used, while Sternheimer-1984 is normally applied
(important for vacuum and low-density gas), this fix addressing problem report
#1765.
- G4Element: always define effective number of nucleons fNeff as
fAeff/(g/mole); addressing post on Hadronic Processes Forum on Hypernews
#1495; it is recommended to use element->GetN() for average atomic mass,
for number of nucleons to use G4lrint(element->GetN()).
- G4NistManager: added method FindOrBuildSimpleMaterial(Z) and
GetNominalDensity(); removed method GetLOGA(),
duplicated from G4Pow.
- G4NistMaterialBuilder: fixed computation of gas density in method
ConstructNewGasMaterial(). Added FindOrBuildSimpleMaterial(Z);
splitted implementation in longest private method.
- G4NistMaterialBuilder, G4SandiaTable: fixed minor Coverity defects.
- Checked code for potential never-ending loops.
Parameterisations
- Gflash: Fix for Zeff wrongly computed as ( W1*Z2 ) + ( W2*Z1 ),
with Z1 and Z2 swapped. Addressing problem report
#1719.
Particles
- Added new method G4VDecayChannel::IsOKWithParentMass() to check
that parent mass (dynamical mass) is enough for decay products.
Added 'parentMass' as argument of G4DecayTable::SelectADecayChannel().
Channels which give false with IsOKWithParentMass() are ignored.
Added parent_polarization.
- Added new method G4PhaseSpaceDecayChannel::SetDaughterMasses() to give
daughter masses instead of sampling masses according to PDG mass and width.
A new method of SampleDaughterMasses() switches back to sampling masses.
- Fixed bug in K-K* decay modes in G4ExitedMesonConstructor; K-K* modes in
pi2(1670) decay were missing.
- Clean up of G4IonTable class; simplified GetLifeTime() and make sure
worker threads know G4NuclideTable. Introducing a utility method
GetLifeTime(A,Z,E), returning the lifetime of a nuclide without
instantiating a G4Ion object.
- Updated G4NuclideTable: deleted hard-coded state data, now retrieved from
the G4ENSDFSTATE data set. Enabled to change tolerance value for finding
state.Added messenger.
- Added methods to cleanly delete particle dictionaries when worker
threads are deleted.
- Fixed Coverity defects and checked code for potential never-ending loops.
Persistency
- GDML:
- New GDML schema version 3.1.3 (files: gdml.xsd, gdml_core.xsd):
Added 'userinfo' to GDML schema to allow 'global' auxiliary fields.
Extended auxiliary field in the schema by auxunit and pointer to
sub-auxiliary fields (no limit on the number of levels).
Added optional field for specifying copy-numbers associated to normal
volume placements.
- Added support for writing and reading copy-numbers associated to
placements.
- Added writer support for auxiliary info (global and volume-specific).
- Implemented import/export of geometrical regions associated to volumes
for importing and storing production cuts and user-limits, as global
auxiliary_info entity.
Updated G4GDMLParser to optionally activate export of regions (default
is OFF). Export of regions can be activated/de-activated by means of
the new UI command "/persistency/gdml/export_regions [true/false]".
- Implemented ability to optionally export energy cuts associated to
logical volumes (default is OFF). Export of energy cuts for
volumes can be activated/de-activated by means of a new UI command
"/persistency/gdml/export_Ecuts [true/false]".
- Fixed writing out of reflected volumes. No more redundant duplicated
logical volumes in the store after import of geometry.
- Allow for return of NULL pointer in call to GetWorldVolume() in case
read command for importing a GDML file has not been yet issued.
Addressing enhancement request
#1412.
- Use relaxed precision constant for matrix to angle formula evaluation
in G4GDMLWriteDefine, to allow for proper treatment of singularities.
Fixes issues of misplaced volumes in exported geometries of complex
detectors.
- Rectify rotation matrices in reading and writing GDML files to reduce
spurious roundoff errors in stored values.
- Protected compilation of G4MultiUnion wrapper with G4GEOM_USE_USOLIDS
flag.
- Code cleanup and formatting.
Physics lists
- Migrated to 'particle_hp' module.
- Fixed Coverity defects.
- Builders:
- G4INCLXXPionBuilder: fixed pion cross-section for pi-.
- Do not delete model and x-section at exit to avoid double deletion.
- Constructors:
- electromagnetic:
- Added G4EmDNAPhysics_option2 and G4EmDNAPhysics_option3
constructors.
- G4EmLivermorePhysics, G4EmLowEPPhysics, G4EmPenelopePhysics,
G4EmStandardPhysics_option1, G4EmStandardPhysics_option2,
G4EmStandardPhysics_option3, G4EmStandardPhysics_option4:
parameters for multiple scattering are defined via G4EmParameters
class.
- G4EmLivermorePhysics, G4EmLowEPPhysics, G4EmPenelopePhysics,
G4EmStandardPhysics_option3,4: set lowest e+- energy to 100 eV.
- G4EmStandardPhysicsWVI, G4EmStandardPhysicsSS,
G4EmStandardPhysicsGS: set lowest e+- energy to 10 eV.
- G4EmLivermorePhysics, G4EmLowEPPhysics, G4EmPenelopePhysics,
G4EmStandardPhysics_option[1,2,3,4], G4EmStandardPhysicsWVI,
G4EmStandardPhysicsSS, G4EmStandardPhysics,
G4EmLivermorePolarizedPhysics, G4EmDNAPhysics_option[1,2,3,4,5]:
call G4EmParameters::SetDefaults() in constructor for each
electromagnetic physics-list.
- Updated G4EmDNAPhysics_option1 for GenericIon usage.
- G4DNAPhysics_option5: added Born models for energy regions where
Emfietzoglou models do not apply.
- G4EmDNAChemistry: adapted for new elastic model.
Use G4MolecularConfiguration instead of G4Molecule.
- G4EmModelActivator: added Ion elastic model + cosmetics.
- New helper class G4EmModelActivator to activate PAI, MicroElec
and DNA models per G4Region. Adapted constructor classes
G4EmLivermorePhysics, G4EmLowEPPhysics, G4EmPenelopePhysics,
G4EmStandardPhysics_option1, G4EmStandardPhysics_option2,
G4EmStandardPhysics_option3, G4EmStandardPhysics_option4
G4EmStandardPhysicsWVI, G4EmStandardPhysicsSS and
G4EmLivermorePolarizedPhysics to use G4EmModelActivator.
- G4EmStandardPhysicsSS: full activation of the atomic de-excitation
module.
- Added constructor G4EmDNAPhysics_option4.
Added G4EmStandardPhysicsGS constructor to use the
Goudsmit-Saunderson multiple-scattering model for e+e- below
100 MeV. Enable Rayleigh scattering and fluorescence.
- G4EmStandardPhysics_option4: configure Penelope ionisation for e+-
below 1 MeV.
- G4EmStandardPhysics_option4: use WVI+SS for pions, kaons, p,
pbar.
- G4EmStandardPhysicsGS: use PWA screening option for e+;
set RangeFactor to 0.15; use SafetyPlus step limit.
- G4EmStandardPhysicsWVI: set RangeFactor to 0.15.
- Corrected proton energy limits in G4EmDNAPhysics_option2.
- Added G4EmDNAPhysics_option5 constructor.
- G4EmStandardPhysicsSS, G4EmStandardPhysicsWVI: enable Rayleigh
scattering and fluorescence.
- Define 'fluo' flag in constructors of all EM constructors.
- G4EmStandardPhysics_option3, G4EmStandardPhysicsWVI,
G4EmStandardPhysicsSS, G4EmStandardPhysicsGS: use
G4LivermorePhotoElectricModel and G4KleinNishinaModel.
- G4EmStandardPhysics, G4EmStandardPhysics_option1,2: set new Urban
multiple-scattering lateral displacement off.
- G4EmStandardPhysicsGS: tuned parameters; now compatible with
standard Opt0.
- G4EmStandardPhysicsSS: allowing Mott correction for e-.
- decay
- Added constructor for Spin decay, G4SpinDecayPhysics.
- gamma_lepto_nuclear:
- G4EmExtraPhysics: removed use of G4AutoDelete.
- Fixed text in History (problem report
#1788).
- hadron_elastic
- Replaced Chips neutron elastic cross-section with NeutronElasticXS
cross-section.
- G4HadronHElasticPhysics: fixed Coverity report for memory leak at
exit.
- G4IonElasticPhysics: replaced old class G4GlauberGribovCrossSection
with new recommended one G4ComponentGGHadronNucleusXsc.
- hadron_inelastic:
- G4HadronPhysicsFTFP_BERT_TRV: changed the transition region between
BERT and FTF from [3, 12] GeV to [2, 4] GeV.
- G4HadronInelasticQBBC: reduced upper limit of Bertini from 12 to
4 GeV; use BGG inelastic cross-sections for pions.
- Use G4ComponentGGHadronNucleusXsc for the kaon inelastic
cross-sections consistently everywhere (instead of either Chips
or Gheisha cross-sections). According to LHCb, this class
describes well the charged kaon cross section asymmetry.
- limiters:
- Added utility methods to G4GenericBiasingPhysics for selection of
particles to bias: by PDG ranges, all charged (with option to exclude
short lived particles), all neutral (with option to exclude short lived
particles).
- Added option for verbosity.
- Lists:
- FTFP_BERT_TRV: now using G4EmStandardPhysicsGS.
- Updates to g4alt::G4PhysListFactory to do more passthrough to
underlying G4PhysListRegistry singleton.
- G4PhysListRegistry more checking that all the requested physics
constructor additions are available; updated output to closer match
old factory.
- Enable registration of ShieldingLEND, ShieldingM and
G4GenericPhysicsList to g4alt::G4PhysListFactory.
- G4PhysListFactory: added QGSP_BIC_AllHP.
Addresses problem report
#1732.
- G4PhysListFactory: added extra EM option "_GS" where
G4GoudsmithSoundersonMscModel is used for e+-; registered
new QGSP_BIC_AllHP physics list to mirror original factory.
- LBE: replaced old G4GGNuclNuclCrossSection class with the new
recommended one, G4ComponentGGNuclNuclXsc.
- Migrate responsibility for pulling the $PHYSLIST down to
G4PhysListRegistry.
- Allow user to set a preferred default in case $PHYSLIST is not set;
initial value (and value when set to "") is system default "FTFP_BERT".
Run
- New functionalities for MT:
- Added new method G4WorkerRunManager::DoWork(), called by
G4MTRunManagerKernel::StartThread() to process requests of new runs
from kernel.
- Moved setting of pin affinity from G4MTRunManagerKernel::StartThread()
to G4WorkerThread.
- Corrected handling of deletion of worker run-managers.
- G4MTRunManager: removed explicit initialization of Bertini Cascade
(now done in Bertini module).
- Replaced calls to IsWorkerThread() by G4Threading::IsMasterThread().
- Fixed issue for random-number strong-reproducibility in MT mode.
A new UI command has been introduced to allow to run in MT mode
by forcing the random generator engine to use a specified state
(stored in a file) for each event:
"/random/resetEngineFromEachEvent true". It looks for
the files runXevtY.rndm, where X is the
run-number (starting from 0), and Y is the event-number
(starting from 0): if these files are not found, then the reseeding
is ignored and the run proceeds as usual.
This command allows to test the strong reproducibility in pure MT mode,
e.g. to re-run a single event with the starting random engine status
G4Worker3_run0evt5.rndm it is enough to rename (or copy) it
as run0evt0.rndm and use the above UI command.
- Invoking G4ParticleTable::DestroyWorkerG4ParticleTable() in
G4WorkerRunManagerKernel destructor to cleanly delete thread-local
particle dictionaries.
- Other changes (non MT related):
- Added new G4MultiSensitiveDetector functionality.
- G4VUserPhysicsList: lookup for default-world-region in G4RegionStore
instead of accessing the store at index 0. It's not always guaranteed
the default world region is the first element in the store!
- Added MixMaxRng to the list of possible engines to use in
G4UserWorkerThreadInitialization::SetupRNGEngine().
Requires installation of CLHEP version 2.3.1.1.
- Fixes for Coverity defects.
Track & Tracking
- New G4VAuxiliaryTrackInformation class to be associated to G4Track.
- Added 'Creator Model ID' and 'Creator Model Name' to G4Atts of
G4RichTrajectory. Fixed Coverity defect.
- Fix in G4ParticleChange::UpdateStepForPostStep().
- Added GetNumberOfSecondariesInCurrentStep() method to G4Step.
Visualization
- Management
- Now adopting dedicated thread for visualization in MT mode.
- New interface in G4VViewer for multi-threading.
- Re-implemented graphics system fallback strategy. A graphics system may
have more than one nickname. This is used for finding a fallback graphics
systems when, for example, a Qt session is requested but the user has not
instantiated a Qt session, or when interactive graphics systems are
prohibited, as in batch mode.
This allows the user to run an application
that is fully configured with all available graphics systems, even under
circumstances for which the primary graphics system is inappropriate. For
example, it allows one to make a image with these commands in a batch
macro: "/vis/open OGL", "/vis/drawVolume",
"/vis/ogl/export".
- Improved guidance for UI command "/vis/scene/add/extent".
- Fixed "/vis/scene/add/eventID" UI command for MT mode.
- Introduced use of std chrono for queue handling in MT mode.
- G4VisManager: corrected end-of-run printing for the case of
"/vis/multithreading/actionOnEventQueueFull discard".
- G4VisCommandsViewer: improved guidance and confirmation printing for
UI command "/vis/viewer/save".
- Improvements to help and verbosity printing.
- New UI commands for multi-threading:
"/vis/multithreading/actionOnEventQueueFull" and
"/vis/multithreading/maxEventQueueSize".
- Added "light" representation to "/vis/scene/add/magneticField".
- Fixed Coverity defects.
- Modeling:
- Augmented G4PhysicalVolumeModel interface.
Added local transformation attribute.
- G4TouchableDumpScene: added polyhedron dump for use with
"/vis/touchable/dump".
- G4PhysicalVolumeSearchScene: optimised ProcessVolume() by setting
variables only when needed and by comparing string length before
comparing all string.
- G4PhysicalVolumeSearchScene.cc: minor improvement; replaced an
assignment by a reference.
- HepRep
- Fixed compilation warnings on Windows/VC-14.
- OpenGL
- Added methods to manage GLContext in Qt.
- Fixing Qt visualization in MT mode on clang.
- Fixed problem when zooming on small volumes.
- Introduced sleep while waiting for pick action
- Migrated to new G4VViewer interface.
- A bit of cleaning in managing OpenGL context for Qt.
- Fixed "SetVisible" problem on various platforms.
- G4OpenGLViewer: fixed small problem in picking list.
- Improved graphics system fallback strategy: implemented
IsUISessionCompatible() in G4OpenGLQt and G4OpenGLXm; Qt not allowed
unless a Qt session has been instantiated; interactive graphics systems
(Qt, Xm) are not allowed in batch.
- Fixed minor problem for Qt driver: open/close icons on scene
tree/viewer properties and pick were not good at start.
- Minor improvements to the interface on scene tree/viewer properties
and pick item menu.
- Fixed bug when launching OGL driver from a macro file (in batch mode).
- Fixed Coverity defects in G4OpenGLViewer and G4OpenGLStoredViewer.
- OpenInventor
- G4OpenInventorViewer, G4OpenInventorXtExtendedViewer:
added viewer menu button and methods for PDF output.
- G4OpenInventor: added IsUISessionCompatible(); set OI graphics system
not compatible with a batch job.
- Tree
- G4ASCIITreeSceneHandler: added physical volume dump for
verbosity >=7.
- Tidied and cleaned up att values after use.
- Externals
- G4OpenGL2PSAction: added method setBufferSize().
Environments
- G4Py:
- Updated interfaces for release 10.2.
- Added exported methods as suggested in enhancement request
#1613.
- Updated CMakeLists.txt for C++11 migration and minimum required
version for CMake to 3.3.
Data sets
- New low-energy data set version, G4EMLOW.6.48:
- Added elastic files by H.Tran for Geant4-DNA.
- Added files by D. Emfietzoglou for Geant4-DNA.
- Added files by M.Novak for upgraded version of the
Goudthmit-Sounderson multiple-scattering model.
- Substituted 2016 files in ion_stopping_data by new PASS
computations.
- New files for upgraded version of the Goudthmit-Sounderson multiple
scattering model in the sub-directory 'msc_GS'.
- Added directories livermore/tripdata and livermore/pairdata used by
the new Livermore polarized gamma models.
- New data files for nuclides properties G4ENSDFSTATE-1.2:
- Updated state data based on February 2015 input data from ENSDF.
- Fixed missing ground state of Cl35.
- Fixed duplicated entry for ground state of 21N.
- Fixed formatting in ground state of 223Rn.
- New data set version PhotonEvaporation.3.2 for nuclear de-excitation data:
- New photon evaporation database meant to be consistent with version
4.3 of the radioactive-decay database. Also formatted to remove
scientific notation where possible and to remove trailing zeros.
- New data set version for radioactive-decay processes, G4RadioactiveDecay.4.3:
- New files with February 2015 input data from ENSDF and nuclear wallet cards.
Q values are computed with QCalc. Data overlapping with those in
G4PhotonEvaporation-3.2 and G4ENDSFSTATE are intended to be consistent.
- Added proton, neutron emission and spontaneuos fission lines.
- New optional data set, G4TENDL-1.0 for incident proton data:
- Set translated from the TENDL-2014 incident proton, deuteron, triton, He3
and alpha data libraries (written in ENDF-6 format), excluding the elastic
channel. Of the about 2600 isotopes contained in the TENDL-2014 libraries,
only those present in the G4NDL-4.5 neutron data library have been included.
For the few isotopes available in the corresponding ENDF/B-VII.1 data
libraries, the data are taken from the latter instead of TENDL-2014..
Examples
- Updated reference outputs, macros and scripts.
- advanced
- air_shower
- Replaced call to obsolete GetDz() for G4Tubs to
GetZHalfLength() in UltraDetectorConstruction.
- composite_calorimeter
- Migrated to use 'particle_hp' module.
- gammaray_telescope
- GammaRayTelIonPhysics: replaced use of G4GGNuclNuclCrossSection
with recommended one, G4ComponentGGNuclNuclXsc.
- hadrontherapy
- General revision and fixed comments.
- iort_therapy
- lAr_calorimeter
- Fixed internal array overflow in FCALTestSetupSD, causing crashes
in MT.
- microbeam
- Added stronger constraints on SetMinimumEpsilonStep() and
SetMaximumEpsilonStep().
- Switched to use G4UIExecutive.
- nanobeam
- underground_physics
- DMXPhysicsList: replaced use of G4GGNuclNuclCrossSection
with recommended one, G4ComponentGGNuclNuclXsc.
- Migrated to use 'particle_hp' module.
- xray_fluorescence
- Updated livermore.mac macro.
- basic
- B1
- B1Run class replaced with a code based on G4Parameter.
- B3
- Split example in two variants of merging data:
B3a (new) with the code based on G4Parameter;
B3b (as previous B3) with the code based on G4Run.
- B5
- Extended n-tuple with two columns of a vector type in order to provide
an example of this analysis use case.
- extended
- analysis
- AnaEx01: Updated hbook for developments in analysis category:
implemented interfaces for activations of ntuples.
- Introduced meaningful histograms and ntuple names instead of
numbers in all AnaEx0N examples and use histogram ids starting
from 0.
- Simplified HistoManager class and fixed function names to follow
coding guidelines.
- Updated hbook for developments in analysis category.
- biasing
- biasing/GB02
- Biasing scheme evolved to use G4VAuxiliaryTrackInformation.
Adapted example to these changes: second OperationApplied() method
implemented in GB02BOptrMultiParticleForceCollision.
- biasing/GB04
- Bug fix in GB04BOptnBremSplitting for missing call to
SetSecondaryWeightByProcess(true).
- biasing/ReverseMC01
- RMC01AnalysisManager: added variable fNentry in order to
correctly compute mean and error of energy deposition.
- common
- Added a client-specific prefix to common library and test
to avoid name clashes when building all extended examples at
once.
- electromagnetic
- electromagnetic/TestEm0
- Removed local SetCutFor*() methods from PhysicsList and 'setCut'
command from PhysicsListMessenger, to use "/run/setCut" UI command.
- electromagnetic/TestEm1
- Added EM standards physics builders GS, WVI.
- PhysicsList: removed SetICM() method.
- electromagnetic/TestEm2
- PhysicsList: use GS, WVI, SS EM physics from main library.
- electromagnetic/TestEm3
- PhysicsList: use GS physics from main library.
- TestEm3: use default 4 threads, improved vis.mac macro.
- PhysListEmStandard: use G4EmParameters.
- electromagnetic/TestEm5
- PhysicsList: use GS physics from main library.
- DetectorConstruction: do not remove volumes when sizes
are changed.
- SteppingVerbose: restored usage of this class.
- TrackingAction: cleanup logic of transmitted/reflected
particles.
- electromagnetic/TestEm6
- Added more standard EM physics builders.
- electromagnetic/TestEm7
- Replaced CLHEP header inclusion for units in G4ScreenedNuclearRecoil.
- electromagnetic/TestEm8
- RunAction, Run, StackingAction: improved histogram handling.
- PhysicsList: added SS, GS, WVI physics-lists.
- Macro files: added alternative configuration of PAI models
via UI command.
- PhysicsList: removed configuration of PAI models via
G4EmConfigurator and left only method via UI command; set
default verbosity to zero to reduce length of reference output;
fixed initialisation of StepMax in MT mode.
- DetectorConstruction: allowed to change geometry sizes between runs.
- TestParameters: added parameters needed for ALICE TRD simulation.
- Use one thread for interactive mode; improved vis.mac macro.
- Updated macro files.
- electromagnetic/TestEm9
- Added physics lists G4EmStandardPhysicsGS, SS, WVI.
- Applied code guidelines, removed tabulation.
- electromagnetic/TestEm10
- Em10PhysicsList: removed obsolete header.
- electromagnetic/TestEm11
- RunAction: corrected bin width of histogram #1.
- Added EM physics builders G4EmStandardGS, WVI.
- Added EM physics builders G4EmStandardPhysicsMP which uses
G4DiscreteScatteringModel for e-.
- Use G4EmParameters in local Physics List classes.
- electromagnetic/TestEm12
- PhysicsList: use GS physics from main library.
- RunAction: corrected bin width of histogram #1.
- electromagnetic/TestEm13, TestEm14
- DetectorConstruction::SetMatetial(): allow NIST materials.
- electromagnetic/TestEm17
- Set default EmParameters in PhysListEmStandard.
- PhysicsList, PhysListEmStandard: fixed upper energy for physics
tables.
- eventgenerator/userPrimaryGenerator
- New example showing how to create a primary event including several
vertices and several primary particles per vertex.
- eventgenerator/exgps
- Added in ctest with distribution from histogram for
PhysicsChecks.
- Updated macros with new commands for H2.
- Fixed documentation.
- eventgenerator/particleGun
- PrimaryGeneratorAction1: added randomization of time zero of each
event.
- eventgenerator/pythia/decayer6
- Set a specific prefix to common library and test
to avoid name clashes when building all extended examples
at once.
- exoticphysics/channeling
- Added full integration of particle trajectory into the channeling
process.
- Added beampipe and detector box to the detector construction.
- Modified wrapper classes to correct bugs in energy loss calculation
under channeling.
- Added to the wrapper class the InCrystal parameter in order to be
completely transparent if the particle is outside a volume with a
lattice. Added InCrystal parameter to the user info to switch
between single and multiple scattering.
- Single and multiple scattering are enabled/disabled if the volume
has or not a lattice.
- Added data files for Si110 and Si111 planar nuclei density, planar
electron density and planar electric field.
- Minor modification to XPhysicalLattice.
- Minor modification to the macro to analyze the output data.
- exoticphysics/monopole
- Removed EventAction and EventActionMessenger classes, now obsolete, and
replaced "/testex/event/printModulo" UI commands in macros with
"/run/printProgress".
- exoticphysics/phonon
- XAluminumElectrodeHit: make simple container with public data
members.
- XAluminumElectrodeSensitivity: improved MT robustness, make HC
local, make file streams shared-static, with protective mutexes.
- Updated output reference logs.
- exoticphysics/ucn
- Corrected way to access G4Transportation::EnableUseMagneticMoment().
- Removed AddBetaDecay() method. Added NumberOfVariables in
G4RepleteEofM constructor.
- field/field01, 02, 03
- Removed EventActionMessenger classes, now obsolete, and replaced
"/event/printModulo" UI commands in macros with
"/run/printProgress".
- Code cleanup.
- field/field04
- Removed obsolete commands from macros.
- field/field05
- Use new G4SpinDecayPhysics constructor in PhysicsList.
- field/field06
- Removed AddBetaDecay() method.
- g3tog4
- Set a specific prefix to common library and test to avoid name
clashes when building all extended examples at once.
- geometry/transforms
- Updated vis.mac macro to draw axes.
- hadronic/FissionFragment
- Limit number of worker threads of one.
- hadronic/Hadr01
- PhysicsList: updated according to developments in reference physics-lists.
- hadronic/Hadr02
- Removed obsolete interface to DPMJET.
- hadronic/Hadr03
- Fix in SteppingAction for setting pointer to hadronic process.
- hadronic/Hadr04
- Migrated to use 'particle_hp' module.
- hadronic/Hadr06
- Migrated to use 'particle_hp' module.
- medical/dna
- chem2
- In G4UserTimeStepAction::UserReactionAction(), vector of
reaction products becomes a pointer instead of a reference.
- CommandLine option: -mt option restaured with 2 as default
number of threads.
- Updated visualization macros.
- chem3
- In G4UserTimeStepAction::UserReactionAction(), vector of
reaction products becomes a pointer instead of a reference.
- CommandLine option: -mt option restaured with 2 as default
number of threads.
- Updated visualization macros.
- clustering
- New example simulating protons tracks in liquid water using
Geant4-DNA processes and models. Energy deposit are clustered
with a dedicated clustering algorithm to assess strand breaks.
The default parameters of the clustering algorithm have been
tuned to reproduce data published by Francis et al. 2011
Comput. Meth. Programs. Biomed. 2011 101(3).
- dnaphysics
- Switched to use G4UIExecutive.
- Use G4EmModelActivator to define DNA physics.
- Added "ignoreCut" UI command in dnaphysics.in macro.
- pdb4dna
- Removed modulo printing at EventAction level.
- range
- New example showing how to calculate range of electrons in liquid water
using the Geant4-DNA physics processes and models.
- svalue
- New example showing how to calculate mono-energetic S values
in liquid water using the Geant4-DNA physics processes and
models.
- wvalue
- New example showing how to calculate w in liquid water for e- using
the Geant4-DNA physics processes and models.
- medical/DICOM
- Fixed coding guidelines (long lines).
- medical/electronScattering2
- Removing from master unnecessary instance of GPS.
- Added physics-list G4EmStandardGS to PhysicsList.
- Modifid primary foil parameters by setting class variables and calling
G4RunManager [Physics/Geometry]HasBeenModified.
- Removed local physics lists.
- Correction to only instantiate VisManager if no macro file is specified
on command line.
- medical/fanoCavity[1,2]
- Migrated code to support multi-threading.
- Use G4EmParameters instead of G4EmProcessOptions.
- Removed EventActionMessenger class.
Replaced printModulo by "/run/printProgress" UI command.
- optical/OpNovice
- Use G4Threading::IsMasterThread().
Introduced G4ThreadLocal in OpNovicePhysicsList.
- optical/WLS
- Removed obsolete commands from macros.
- parallel/MPI
- Fixed bug in exMPI02 using wrong calls to random generator for
generation of primaries.
- Introduced new functionality in G4mpi library to merge G4Run,
scorers and g4tools histograms/profiles across MPI ranks.
- Introduced new example exMPI03, based on same geometry and physics
of exMPI02 to demonstrate merging capabilities.
- Added implementation of histo merger with use of g4analysis and
g4tools; kept temporarily old merger class.
- Optimized merging for G4Run and scorer.
- Improved CMake scripts for standalone use: allow for library
and examples to be built together.
- Increased verbosity during build phase to print out location of MPI
library and headers. Updated CMake scripts.
- Building of MPI library requires
CMake minimum version to be 3.3.
- parallel/ThreadsafeScorers
- New example demonstrating a very simple application where an energy
deposit and # of steps is accounted in thread-local (i.e. one instance
per thread) hits maps with underlying types of plain-old data (POD) and
global (i.e. one instance) hits maps with underlying types of atomics.
- parameterisations/gflash
- ExGflashPhysicsList replaced with ExGflashPhysics builder.
- Code clean-up, coding guidelines.
- parameterisations/Par02
- New example implementing a simplified version of a Geant4-based
fast simulation program for Future Circular Collider (FCC),
showing how to do "track and energy smearing".
- persistency/gdml/G01
- Added example code showing how to import and export auxiliary
information.
- Enabled export of geometrical regions.
- persistency/gdml/G02
- Added mbb.geom mbb.tree to G02_SCRIPTS.
- persistency/gdml/G04
- Migrated code to support multi-threading.
- persistency/P01, P02
- Upgraded to work with Root-6.
- persistency/P03
- Removed ExTGPhysicsList class.
- radioactivedecay/rdecay01
- PhysicsList: removed call to SetICM().
Removed initialization of UAtomicDeexcitation.
- Compute total visible energy in TrackingAction, EventAction, Run
and HistoManager.
- Removed EventMessenger classe, now obsolete, and replaced
"/event/printModulo" UI commands in macros with
"/run/printProgress".
- PhysicsList: added LevelTolerance (100*eV) and HalfLife (0.1*ps).
- Updated it1.mac and it2.mac macros.
- radioactivedecay/rdecay02
- Migrated to support multi-threading.
- Migrated to use g4tools for analysis.
- runAndEvent/RE06
- Added new macro file for testing on Xeon Phi with limited
statistics.