Geant4 9.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
- Known Run-Time Warnings
- Geant4 Software License
- Detailed list of changes and fixes
1. Supported and Tested Platforms
Officially tested platforms:
- Linux, gcc-4.1.2 and gcc-4.3.2 (SLC5).
Tested on 32 and 64 bit architectures (Intel or AMD) with
Scientific Linux CERN 5 (SLC5) (based on RedHat Linux Enterprise 5).
- MacOSX 10.7 with gcc-4.2.1
- Windows7 with Visual C++ 10.0 (Visual Studio 2010)
More verified configurations:
- Linux, gcc-4.6.2
- Linux, Intel-icc 11.1, 12.0
- MacOSX 10.6 with gcc-4.2.1
- Windows/XP with Visual C++ 9.0 (Visual Studio 2008)
Platforms configured but neither tested nor supported:
- AIX 4.3.2, xlC 6.0
- DEC V4.0, cxx C++ V6.1-027
- HP 10.20, aCC C++ B3910B A.01.23
- MacOSX 10.4, gcc-3.3
- MacOSX 10.5, gcc-4.0.1
- SGI V6.5.5, CC 7.2.1
- SUN Solaris 5.8, C++ CC-5.5.
2. Supported CLHEP version
This release of Geant4 has been verified with
CLHEP, release 2.1.1.0.
Use of a different CLHEP version may cause incorrect simulation results.
3. Items for migration of the user code
Listed here is some relevant information on developments included in this
release, some of which may require migrations (mainly for users of advanced
Geant4 features) in order to upgrade from release 9.4 to release 9.5.
Note that for all users a full re-installation of libraries (or a full
recompilation) and a recompilation of user applications is required.
Configuration
- The CMake system for installation replaces the old Configure script.
CMAKE has been extended to cover all features.
Complete information on how to use the new CMake system can be found
in the User Installation Guide (Note: the old Configure script has been
removed, as planned).
- Geant4 now comes with an embedded CLHEP module (based for this release on
version 2.1.1.0 of CLHEP), which includes the subset of CLHEP library
classes required by Geant4. On installation there is a choice between using
this embedded module or installing CLHEP as an external library.
Through the GNUMake system, the use/installation of the external CLHEP
is triggered if the environment variable CLHEP_BASE_DIR is set;
otherwise the embedded CLHEP module is used.
With the CMake system, the embedded CLHEP is selected by default.
- An additional package, expat, required by the the new hadronic
lend module is also included in the externals directory and is
built automatically on Windows. On Linux or Mac, the expat
library available in the system is used instead by default.
Standard Electromagnetic physics
- Standard EM physics lists now require the G4EMLOW data files (version 6.23), in order
to access precise cross-sections for Bremsstrahlung.
Low Energy Electromagnetic physics
- All classes describing interactions of electrons, positrons and photons
(Livermore and Penelope based) have been upgraded to the common software
design adopted by both Standard and Low-Energy electromagnetic domains.
Users are invited to use these upgraded classes following the migration
procedure described in the following page:
https://twiki.cern.ch/twiki/bin/view/Geant4/LoweMigration.
The old obsolete classes have been removed from the Geant4 kernel.
Users are invited to contact the Low Energy Electromagnetic working group
in case of difficulties with this upgrade.
Persistency
- A new version of the GDML schema (GDML-3.0.1) is included in this
release. The GDML reader and writer are now compliant with
GDML-3.0.1.
Physics Lists
- Number of reference physics lists is reduced. Nearly all EM 'variant' physics
lists are no longer available as a class
in the library (e.g., FTFP_BERT corresponds to a class in the library,
FTFP_BERT_EMV does not exist as a class). However, EM options are all easily available from
updated G4PhysListFactory, allowing to use any EM option on top of a
base hadronic physics configuration (e.g., it is possible to request "FTFP_BERT_EMV" by name).
- The implementation of physics-list constructors (builders) has been revised.
Ordering numbers for processes are no longer used. Old method is still allowed but
it is recommended for a custom user's
physics list to be revised to be compatible with the new mechanism.
Use of Exceptions
- Obsolete signature of G4Exception (using only one, text string,
argument) has been removed. Use of a signature with four arguments,
including severity, is now mandatory.
For code that is portable between previous releases and this release,
it is necessary now to use the signature:
void G4Exception(const char* issure, const char* errorCode, G4ExceptionSeverity severity, const char* comments)
Note: the enum G4ExceptionSeverity has been defined since Geant4
release 5.0 and its values are:
FatalException, FatalErrorInArgument, EventMustBeAborted,
RunMustBeAborted, and JustWarning.
Data Sets
This release introduces new data set versions.
Please see the corresponding details in
Section 10 of this document.
- New data set versions: G4EMLOW.6.23, G4RadioactiveDecay.3.4,
G4PhotonEvaporation.2.2, G4PII-1.3, G4NDL.4.0, G4NEUTRONXS-1.1.
4. New Developments and Capabilities
Geometry
- It is now possible to define volumes with material in
parallel geometry layers.
The volumes created can complement or overlap the standard 'main' geometry for tracking.
This new capability is called a "layered mass geometry".
Zero, one or more additional layers for the mass geometry can be used.
This is an enhancement of the existing functionality for parallel
specialised geometries, which has been used for scoring, fast simulation,
shower parameterisation and event biasing.
The registered parallel geometries are scanned now for material.
A side effect of this new capability is that all geometries and all regions
in the each world defined are now scanned for their material.
Materials
- Applications with many materials can reduce their memory footprint
by using the new Base Material capability.
With it, materials with the same composition but different density
will share entries in the tables of all electromagnetic processes.
Tables with cross-sections, stopping
powers and ranges are precomputed only for base materials.
Any number of materials with different names and densities can be built from
one base material.
So, for example,it is now possible to define large number of "water" materials
with slightly different densities. Only the base "G4_WATER" physics tables
will be built at initialisation; these will be scaled at run time for all
derived materials .
Standard Electromagnetic physics
- A new tune of the Urban multiple-scattering model for electrons is
provided. Is is named G4UrbanMscModel95. This features
higher accuracy of electron scattering and stability of energy
deposition when the step size is varied. The model is currently set as
the default for electrons and positrons.
- A new model for Bremsstrahlung, G4SeltzerBergerModel, is now
used by default at energies below 1 GeV. The model is based on
tabulated cross-sections published by S.M. Seltzer and M.J. Berger.
It provides agreement with the low energy Livermore and Penelope models
below 10 MeV and the standard relativistic model at 1 GeV,
improving the most over the previous 'standard' Bremsstrahlung model
in the energy range from 1 keV to 1 GeV.
- New biasing options are provided which can be used both with standard
and low-energy electromagnetic physics. They include cross-section biasing,
forced interaction, and secondary particle biasing. The secondary particle
biasing consists of Bremsstrahlung splitting and Russian Roulette. All
these options can be activated per process, particle, energy and
geometrical region via UI commands or C++ code.
Hadronic physics
- Interactions of antibaryons (including antihyperons) and light antinuclei with
matter have been implemented in the Fritiof (FTF) model. This model is valid
for incident antibaryon energies from 0 to 1 TeV, and for incident
antinucleus momenta from 150 MeV/c/nucleon up to 2 GeV/c/nucleon.
Corresponding antibaryon and antinuclear cross section classes have also been
added. New processes were added to handle inelastic reactions of antideuterons,
antitritons, anti3He and antialphas.
- Cascade models
- Bertini
- The Bertini cascade is interfaced to the pre-compound and de-excitation
module, enabling improved generation of low energy secondaries. This
option is fully benchmarked, and is targetted for applications sensitive
to the spectra of low energy nuclear products.
- An interface for re-scattering the fragments of the high energy
string models has been created. This is an early stage development.
- Bug fixes in the three-body final state reactions provided slightly
better angular distributions of final state hadrons.
- Memory churn (allocation and de-allocation of memory) was significantly
reduced throughout the model.
- A new nucleon-coalescence model is available, for improved production
of energetic deuterons and light ions. It is not the default
in existing configurations, due to the extra CPU cost.
- Gamma-nucleon channels were added for future use, but are not activated.
- Binary
- The excitation energy used for re-scattering was improved.
- The large energy non-conservation observed for hydrogen targets was fixed.
- INCL/ABLA
- The first version of INCL++, based on the INCL4.6 model, was released.
It supports proton, neutron and pion projectiles up to 3 GeV
and uses the native G4ExcitationHandler for nuclear
de-excitation after the cascade.
- The INCL light ion model now supports incident ions up to 18-Oxygen.
- Nuclear de-excitation models have been improved to allow G4PhotoEvaporation
to be used for nuclei with Z > 100. Users may now include their own photo-evaporation
data files. Several improvements were also made to the Fermi-Breakup model to
improve behavior for light (A < 17) target nuclei.
- Several elastic scattering cross-sections, models and processes were extended to
handle antimatter projectiles. These include
G4WHadronElasticProcess, G4AntiNuclElastic
and G4CHIPSElasticXS.
- A new module which handles quasi-elastic scattering has been created. It is
extracted and now separate from the CHIPS code where it originated.
It is used by all physics lists.
- Low energy neutrons interactions based on data-libraries:
- The Geant4 Neutron Data Library (G4NDL) is now based on the ENDF VII database
exclusively.
Its new version, G4NDL 4.0, is required for use with the High Precision (HP)
models with this release.
- New translations of alternative neutrons database (ENDF, JENDL, JEFF,
MENDL, CENDL), are being made available separately from IAEA.
These can be used with the current HP neutron models, for studies of systematics.
- Thermal scattering is enabled in the HP neutron models and the appropriate
data files have been added to ENDF/B-VII, with the exception of para (ortho)
H and D, liquid (solid) methane and benzene.
- New low energy neutron models (LEND) which use the Livermore neutron database
have been released. They use the GIDI interface to the database.
All information on this database will be maintained and updated by Lawrence
Livermore National Lab.
- Radioactive decay has been extended to handle forbidden beta decays and
spontaneous fission. The corresponding data set has been updated to
reflect this.
The radioactive decay code was also corrected to allow atomic relaxation of de-excited
nuclei produced during alpha and beta decay. Bug fixes in the internal conversion code
now provide better agreement with deexcitation gamma spectra. Also, new code and
messenger commands now allow directional biasing of decay daughters, including e-, e+,
gamma, n and alpha.
- Improved muon-nuclear reactions are implemented in G4VDMuonNuclearModel.
Here, the LEP models that used to handle the meson interactions are replaced by
the Bertini Cascade. A new cross-section class, G4KokoulinMuonNuclearXS,
was developed which splits out the cross-section code which was formerly
hard-coded into the old muon-nuclear process.
- Energy and momentum checking at the process and model level can now be enabled
by environment variable.
Interfaces and Visualization
- Improvements to the Qt Graphical User Interface and Viewer.
Involves installation of Qt from qt.nokia.com and selection with CMake
- see CMake instructions.
- Users are encouraged to use the generic "/vis/open OGL" command,
which selects the OpenGL viewer most appropriate to the
installation.
- Some new /vis/ commands - see Detailed list of
changes and fixes.
Physics Lists
- The new G4SeltzerBergerModel bremsstrahlung model is used by
all standard EM builders below 1 GeV.
- The new G4UrbanMscModel95 model is used by all EM builders
except for G4EmStandardPhysics_option2 in which the old
G4UrbanMscModel93 model remains.
In the G4EmStandardPhysics_option2 builder, G4WentzelVIModel
is used for multiple scattering of protons, pions and kaons.
The Rayleigh scattering process is added to G4EmStandardPhysics_option3
builder.
- The physics-list factory allows to select one of EM options on top of base
hadronic physics configuration. "_EMV" - standard option1,
"_EMX" - standard option2, "_EMY" - standard option3,
"_LIV" - Livermore, and "_PEN" - Penelope.
5. Expected effects on physics and computing performance
Standard Electromagnetic physics and cuts
- Improved the accuracy of the Bremsstrahlung simulation and low-energy
electron transport. Due to the adoption of the new model for Bremsstrahlung,
the kernel part of the electromagnetic shower appears slightly narrower,
no effect on the tails of the electromagnetic shower are observed.
- Retained similar CPU performance to the previous Geant4 versions.
Hadronic physics
- The recommended physics lists for HEP applications (FTFP_BERT, QGSP_FTFP_BERT
and QGSP_BERT), show results very similar to the previous production release.
A small decrease in energy deposited in calorimeters is expected for FTF-based physics lists
with respect to the previous release for primaries with energy above 20 GeV.
The decrease is of order ~1%.
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. Known Run-Time Warnings
The following message may be written to standard output at the end of a program:
G4Transportation: Statistics for looping particles
Sum of energy of loopers killed:
Max energy of loopers killed:
It provides the total energy (in MeV) of tracks killed due to
excessive number of steps ('looping') during the simulation, and the maximum
energy of such a track. Such behaviour can be due to low-momentum particles
which loop in magnetic fields (a physical effect, which can consume a lot of
CPU time for little )
or being abandoned due to being stuck at geometrical boundaries.
In case either of these reported energies is significant, we recommend
increasing the verbosity of G4Transportation to obtain information for
each track killed. A user can change the threshold energy above which particles
are killed more reluctantly (only after significant additional effort) using
the method SetThresholdImportantEnergy() of G4Transportation.
The default value is 100 MeV.
9. 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.
10. 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:
- Set default to build shared libraries on all platforms.
- Added support for Xm Motif and OpenInventor drivers.
- Updated scripts to export use of internal CLHEP when used.
Option to use system CLHEP is automatically set to ON if the user
has supplied a CLHEP_ROOT_DIR argument.
- Added script UseGeant4.cmake providing a simple CMake
module which users can include to setup the build of a basic
Geant4 application.
It sets definitions, include directories and compiler flags.
- Added support for generation of DLL libraries on WIN32 platform.
- Abilitated built-in dylib symbols on Mac for shared libraries;
it is now no longer necessary to specify paths in
DYLD_LIBRARY_PATH.
- Automatically use GDML if user supplies XERCESC_ROOT_DIR
argument as path to XercesC installation.
Added support for setting GDML/Xerces variables as needed.
- Providing full setup of environment from build and install trees,
allowing developers to build applications directly using the build
tree.
- Fix for Unix platforms in setting the output directory for libraries.
Partially addressing problem report
#1200.
- Added universal shell script skeleton for generating backward
compatible environment variable setup.
Addressing problem report
#1202.
- Added 'uninstall' target to remove all items installed via the
install command.
- Removed unsetting of data library environment variables in generated
environment scripts.
- First version of CPack configuration for binaries.
Added TBZ2 and ZIP types back into list of source package generators.
- Added initial set of files needed for building tests and examples
with CTest.
- Added the downloading and installation of Geant4 Data files if the
option GEANT4_INSTALL_DATA is set. Added guard on option
and install of data so that this is only available on CMake >= 2.8
due to use of ExternalProject.
- Forced all CXX flags to use those used to build Geant4.
Addressing problem report
#1227.
- Corrected setting of INSTALL_NAME_DIR for library targets.
Addressing problem report
#1231.
- Added build of new "analysis" module.
- Added protection for setting of G4LIB_BUILD_DLL to happen
on WIN32 only.
- Added support for tests on Windows with NMake and Visual Studio.
- Added Geant4CTest.cmake module for the configuration of CTest and
added pre- and post-commands for runnig test/examples.
- Added possibility to generate Root dictionaries in FindROOT.cmake
macro.
- Moved setting of initial values for TestRelease and
Maintainer mode compiler flags to make rules override file.
Values are now set based on compiler and platform.
Added TestReleaseDebug build mode.
- Removed enabling of Fortran language when G3toG4 is enabled.
- Added G4VIS_USE and G4UI_USE to list of core
compile definitions conditional on the existence of the variables
G4VIS_NONE and G4UI_NONE to match original
GNUMake behavior.
- Added 'ui_all' and 'vis_all' components to allow simple selection
of all available UI and Vis components.
- Added support for OpenInventor visualization driver, with new
CMake option GEANT4_USE_INVENTOR to enable build.
Addressing problem reports
#1196,
#1261.
- Added setup of installed scripts to use self location functionality
in geant4-config when installation is relocatable.
- Added a function to conditional set environment variables.
Added setup of G4WORKDIR. Added setup of data library
variables if they've been installed. Added GEANT4_ADD_FEATURE
reporting for data and example code install.
- Marked GEANT4_ENABLE_TESTING and GEANT4_BUILD_EXAMPLES
options as advanced.
- Updated references to data libraries version for 9.5.
- GNUMake:
- Added default for CLHEP_BASE_DIR to built-in package in
externals. Integrated flags in architecture.gmk and
binmake.gmk for use of the CLHEP built-in package, and
adapted setup for build of DLLs on Windows.
Added flags to handle future driver OpenGLWt.
- architecture.gmk: corrected definition of G4LIB_USE_GDML, to
properly activate GDML settings.
- Darwin-g++.gmk: modified OGLLIBS settings to
support MacOSX 10.7 Lion for proper configuration of OpenGL
libraries in combination with Qt.
Allow use of Qt libraries not installed as Framework
- Updated binmake.gmk to add new "electromagnetic/dna",
new "hadronic/models/quasi_elastic" and "analysis" modules.
Changed common.gmk to take into account paths to headers.
- G4UI_BUILD.gmk: added setting of G4INTY_BUILD_XT
for OPENGLXM and OIX. Visualization drivers need Xt, so this covers
the case when the user does not build Xt from G4UI_BUILD flags.
Addressing problem report
#1250.
- Abilited possibility to force building of internal 'expat' module
also for Linux and Mac, through use of G4LIB_BUILD_EXPAT flag.
- Archived Configure script.
Analysis
- New module providing managers for generation of histograms in the form
of Root n-tuple/trees and AIDA XML, based on tools from the
Inlib/Exlib package.
Digitization & Hits
- Moved copy-ctor and operator=() for G4VReadOutGeometry to
protected, as not meant to be directly used.
- G4THitsMap: removed the print-out of total value, to avoid
inconsistency caused by a class which does not have += operator
or cannot be initilized to 0. Addressing problem report
#1258.
- Fixed Coverity defects: mainly uninitialised static data.
- Migrated code to new G4Exception scheme.
Electromagnetic Processes
- Fixed compilation warnings on gcc-4.6 for unused variables.
- Fixed defects reported by Coverity.
- Migrated code to new G4Exception scheme.
DNA:
- New module with Geant4-DNA classes imported from 'lowenergy' module.
- Updated all models for handling of variable density.
- Changed process sub-type numbering.
- Added atomic deexcitation to ionisation models.
- Increased energy limits for G4DNAChargeIncrease,
G4DNAChargeDecrease, G4DNADingfelderChargeIncreaseModel
and G4DNADingflederChargeDecreaseModel.
- Upgrade to ionisation classes for Auger e-.
- Added enhanced debug information in ionisation models.
- Fixed a bug regarding energy deposition in case of no de-excitation.
- Updated de-excitation initialization in ionization models.
- First prototype classes for water radiolysis and radiation chemistry.
- G4DNAIonisation: added models for C/N/O/Fe.
Added electron solvatation process & models.
- Extension of ionisation by HZE.
- Reorganised module structure in sub-modules.
- Added correct types/sub-types for DNAElectronSolvatation,
DNAMolecularDecay, DNABrownianTransportation,
ITTransp. Added possibility to link a decay time to a given
electronic configuration while declaring the decay scheme.
- Place the reaction products at the reaction site rather than center of
mass in DNAMolecularReaction.
- Changed the name of macros in AddClone_def.hh to avoid conflicts.
- Corrected wrong condition in the step manager. Avoid the call of Green
brownian bridge when the time step is equal to zero.
- Fixed incoherent management of time and secondaries in management.
Fixed memory leak. Fixed a bug in G4DNATransformElectronModel.
- Fixed compilation warnings and allow DLLs build on Windows.
High Energy
- G4hBremsstrahlung, G4hPairProduction: improved initialisation
allowing to use model instantiated in physics-list.
- Removed include of unused header in G4GammaConversionToMuons.
Low Energy
- Added new Bremsstrahlung model based on Penelope v2008.
Removed all obsolete G4Penelope processes and obsolete class
G4PenelopeCrossSectionHandler.
Removed unnecessary dependency over HepMatrix in Penelope
codes.
- Edited G4PenelopeIonisation models to avoid the production of
sub-threshold delta-rays.
- Changed G4PenelopePhotoElectric models to suppress fake
energy-violation warning and to make sure that fluorescence/Auger
is generated only if above threshold.
Fixed bug in G4PenelopeOscillatorManager causing crash on
Windows.
- Migrated PhotoElectric and Compton Penelope models (v2008) to the new
interface for atomic de-excitation. Migration does not affect for now
Ionisation and v2001 models.
- Fixed cases of floating-point exceptions in
G4PenelopeRayleighModel.
- Bug fix in G4PenelopeOscillatorManager, which caused a
G4Exception for some materials.
- Bug fix in G4PenelopePhotoElectricModel, which caused a
potential violation of energy conservation in high-Z materials.
- Added additional verbosity and protection in
G4PenelopeBremsstrahlungFS.
- G4BremsstrahlungParameters: fixed value of the density effect
constant (Migdal constant) using standard relativistic model.
- Corrected control of warnings in ion cross-section model classes.
- Moved all Geant4-DNA classes to external module and removed
obsolete and dummy classes.
- Removed obsolete classes: old livermore photon polarized processes
(G4LowEnergyPolarized*); old shell cross sections
(G4hShell*); old ion ionisation process
(G4ionLowEnergyIonisation); old h-ionisation process
(G4hLowEnergyIonisation); old G4hLowEnergyLoss.
- Removed obsolete G4LowEnergy* and G4eLowEnergyLoss*
classes.
- Migrated G4LivermoreIonisationModel and
G4LivermorePhotoElectricModel to common design with standard
EM for de-excitation. Added de-excitation to G4LivermoreComptonModel.
Added e+- cross section separately from hadron cross-sections in
G4UAtomicDeexcitation.
- G4LivermorePolarizedGammaConversionModel: added protection in
numeric computations to avoid FPE crash, minor cleanup of the
initialisation.
- Added G4LivermoreIonisationCrossSection and
G4eCrossSectionHandler classes.
- Use SetDeexcitationFlag(true) in the migrated Penelope and
Livermore models, to make atomic de-excitation applicable for these
models.
- Modified G4PenelopeOscillatorManager in order to use the
shell binding energy from the G4AtomicDeexcitation data,
rather than from the local Penelope database.
This fixes small inconsistencies.
- Added protection in G4LivermorePolarizedRayleighModel for
cosTheta above 5 MeV.
- Replaced use of RandBit() with simple formula to avoid problems of
non reproducibility.
- Added G4CrossSectionDataSet table in
G4AnalyticalEcpssrKCrossSection.
- Added FormFactor*CrossSection classes according to A.Taborda et al.
X-Ray Spectrom,and made modifications accordingly.
- Updated of G4UAtomDeexcitation to remove runtime warning
if de-excitation is not used.
- Adapted form factor ionization cross-sections for the new set of
ionization data proposed by M. Reis & A. Taborda.
- Bug fix in G4OrlicLiXsModel lower edge for L1 adjusted, and
in G4EmpCrossSection, returning zero for alpha particles on
L-shells. Minor bug fixes in de-excitation classes.
- Requires new data set version 6.23 of G4LEDATA.
Muons
- G4MuBremsstrahlung, G4MuPairProduction, G4MuBremsstrahlungModel:
improved initialisation allowing to use model instantiated in
physics-list (potential saving of initialisation time).
Precise Impact Ionisation
- Implemented workaround in logarithmic interpolator to deal with
zeros in new data library G4PII-1.3.
Standard
- Single and multiple scattering:
- Use base class G4VMscModel methods to compute range and inverse
range.
- G4UrbanMscModel95: new version of multiple-scattering
model providing improved sampling of the tail of angular
distribution, better sampling of lateral displacement and
true-step length; Z sampling applied for medium step size,
not applied to small steps and to steps equal to electron range.
G4UrbanMscModel95 become default in
G4eMultipleScattering.
- G4UrbanMscModel90, G4UrbanMscModel93, G4UrbanMscModel95:
use simplified
computation of geom path length if true path length is equal
to the range; providing minor CPU improvement and more stable
computation. Added protection against numerical problems of
sampling scattering with small steps at high energy to avoid
back-reflection.
Added G4Exception warning to control back-reflection.
- G4GoudsmitSaundersonMscModel: added protection against
infinite loop for solving equation for the screening parameter.
Addresses problem report
#1221.
- Removed obsolete classes G4ionGasIonisation,
G4CoulombScatteringModel, G4UniversalFluctuation93 and
G4UrbanMscModel92.
- G4eCoulombScatteringModel: default low-limit is increased from
1 eV to 1 keV; particles below this limit are
killed (protection against low-energy particles doing many steps).
The limit may be decreased by user.
Renamed local member and SetLowEnergyThreshold() method
to avoid base class method hiding. Addressing problem report
#1256.
- G4ScreeningMottCrossSection, G4eSingleCoulombScatteringModel:
new classes implementing single scattering model for electron-nuclei
interaction, suitable for high-energy electrons, low scattering
angles and light target materials.
- G4WentzelOKandVIxSection, G4eCoulombScatteringModel:
tuned screening function.
Bremsstrahlung models:
- G4SeltzerBergerModel: new class implementing new model
for Bremsstrahlung, according to S.M.Seltzer and M.J.Berger,
Atomic data and Nuclear Data Tables 35 (1986) 345.
Updated G4eBremsstrahlungRelModel accordingly.
Requires new G4EMLOW data set 6.23.
- New class G4DipBustGenerator - bremsstrahlung angular
generator.
G4MollerBhabhaModel: modified parameterisation of dedx at very low
energy providing more smooth shape. Removed limitations on cut value
to be able to combine with Livermore and Penelope models.
G4eeToTwoGammaModel: added numerical protection in
cross-section computation for very small energy. Added linear polarization
of produced photons.
New class G4XrayRayleighModel implementing
simplified Rayleigh scattering.
G4BraggModel, G4BraggIonModel: use ASTAR and PSTAR
parameterisations for moleculas from list of ICRU'49.
G4eplusAnnihilation: disable creation of PhysicsTable and
compute the cross-section at run time (no visible CPU penalty,
reduced memory).
G4NuclearStopping: use new sub-type fNuclearStopping.
G4PhotoElectricEffect, G4ComptonScattering, G4CoulombScattering:
implemented constructors in same style and removed obsolete unused
methods.
G4PhotoElectricEffect: use G4PEEffectFluoModel as
the default.
G4PAIySection: added method ComputeLowEnergyCof()
allowing for extended low energy limit of the model down to
10 eV.
G4KleinNishinaModel: set limitFactor to 4 (was 10).
Use dynamic selection between high energy sampling and sampling
with Doppler broadening.
Fixed infinite loop in new model for 1 keV gamma and added extra
protection during sampling of final state (very low-energy gamma).
G4KleinNishinaModel, G4PEEffectFluoModel: initialised
de-excitation flag. Added extra
protection to avoid precision loss in sampling of scattering angle.
G4BetheBlochModel: added protection for high correction
to energy loss; important if a step length is nearly the range.
G4alphaIonisation added warning to avoid direct use of
the process.
Utils
- G4LossTableManager, G4LossTableBuilder, G4VEmProcess,
G4VMultipleScattering, G4VEnergyLossProcess: adopt base material
approach; build physics vectors only for base materials and scale
values for other materials.
- Optimisation fix in G4EmModelManager, to not create local copy of vector
with production thresholds (reducing run time memory).
Added printout of de-excitation flag per model.
Fixed smoothing function for cross section computations.
- G4VEnergyLossProcess: added extra protection for correction
to energy loss to avoid ions travel foreever.
Fixed initialisation for ions defined by the DNA ion manager.
- G4LossTableBuilder: fixed computation of range table for the
case of zero dEdx in first bins of dEdx table.
- G4EmModelManager: bug fix in cross-section computation for
the case of more than 1 model; effect is seen for results when low
cuts are used for low-energy physics-lists.
- G4LossTableBuilder: fixed initialisation logic for usage by
G4EnergyLossForExtrapolator.
- G4VEnergyLossProcess, G4VEmProcess: added check on zero
kinetic energy in PostStep. If energy iz zero
then track status is changed to fStopAndKill
or fStopButAlive.
- G4VEmModel: fixed non-accurate internal vector initialisation.
- G4VMscModel: added protected GetRange() and
GetEnergy() methods and use these methods at run
time in G4VMultipleScattering.
Removed obsolete method MinEnergyCut().
- G4VEmProcess: allow to use the Integral approach also if the physics
table is not built (before it was forbidden).
- G4VMultipleScattering: fixed problem of initialisation of true step
length when multiple-scattering model is inactive (needed for DNA
Phsyics List).
- G4ElectronIonPair: substituted Gaussian sampling by Gamma function
sampling of number of electron/ion pairs.
- G4EmProcessSubType: added fNuclearStopping=8
sub-type.
- Updated G4VAtomDeexcitation methods names and improved printout;
created G4AtomicShellEnumerator.
G4EmProcessOptions: improved names of methods for de-excitation.
- G4EmProcessOptions, G4EnergyLossMessenger,
G4LossTableManager, G4VAtomDeexcitation:
cleanup options for de-excitation.
- Removed obsolete method SampleDeexcitationAlongStep() in
G4VEmModel.
- G4EmBiasingManager: new class for forced biasing.
- G4VEmProcess, G4VEnergyLossProcess: removed old obsolete
de-excitation scheme; added forced interaction biasing.
Improved computations for the base material approach; added
cross-section biasing option.
- G4VEnergyLossProcess, G4EmBiasingManager, G4EmProcessOptions,
G4EnergyLossMessenger: added Russian roulette; added
Bremsstrahlung splitting.
- G4EnergyLossMessenger, G4EmProcessOptions: added new UI commands
for cross section biasing and forced interaction.
Xrays
- G4SynchrotronRadiation, G4SynchrotronRadiationInMat:
fixed length of C-arrays for the interface with EM field.
Addressing problem report
#1236.
- G4ForwardXrayTR: made fProtonEnergyVector non
static pointer; allocate and deallocate it directly inside class
constructors/destructor.
- Removed reminder message from G4Cerenkov constructor.
Error Propagation
- Added method GetTranfMat() in G4ErrorFreeTrajectoryState.
Addresses problem report
#1248.
- Fixed Coverity defects for uninitialised static data and cases of ios
format not restored.
- Migrated code to new G4Exception scheme.
Event
-
- Modified G4ParticleGun, G4PrimaryTransformer, G4RayShooter and
G4SingleParticleSource to use kinetic energy and momentum
direction.
- Fixed minor bugs in G4HEPEvtInterface: in creation of
G4PrimaryParticle, only PDG code is given to the constructor;
then mass and momentum are set.
- Some code cleanup in G4ParticleGun and G4SPSPosDistribution.
- G4ParticleGun: added const qualifier to accessors.
- Fixed Coverity defects for uninitialised static data.
Fixed compilation warnings on gcc-4.6.
- Migrated code to new G4Exception scheme.
Externals
- New module for optional external packages. Currently including:
- Built-in "CLHEP" module, including a subset of CLHEP classes imported
from version CLHEP-2.1.1.0 and adapted to the Geant4 build scheme.
- Built-in "expat" module, including source code from original 2.0.1
version of expat. Required only on WIN32 for "lend" hadronic model.
G3toG4
- Added export flag for extern symbols to allow for generation of DLLs
on Windows; allow build of DLL, if selected.
Fixed signature in PG4gsdet() for unresolved symbol in
building DLLs.
- Make safe to compile with -j and drop compilation of Fortran code.
- Use canonic indexed form for G4Exception.
- Fixed Coverity defects.
General Processes
- Migrated to new G4Exception scheme.
- Fixed Coverity defects.
- Biasing
- G4ProcessPlacer: using SetProcessOrderingToSecond()
for biasing process, and leave transportation as first.
- Cuts
- Introducing parallel layered mass geometry. Material-cuts-couple
is now updated for all worlds.
- Decay
- Added sub-type for radioactive decay 'DECAY_Radioactive'
(equal to 210).
- Fix in G4Decay to propose the final local time rather than the
global time so that local time can be updated properly.
Addressing problem report
#1224.
- management
- Suppressed warning message of G4ProcessTable::Insert() in case
of adding ions with inactivate processes.
Addresses problem report
#1173.
- Added check for duplicate call for SetOrderingToFirst(Last).
- Fixed memory leak in copy constructor of G4ProcessAttribute.
- Optical
- A dielectric_dielectric surface may now have a wavelength dependent
property "TRANSMITTANCE". If this is specified for a surface it
overwrites the Snell's law's probability. This allows the simulation
of anti-reflective coatings.
- Added logic for ProposeVelocity() to
G4OpBoundaryProcess::PostStepDoIt().
- Parameterisations
- Fixed bug in G4FlashShowerModel::ModelTrigger() for energy
condition.
- Scoring
- Introducing parallel layered mass geometry.
G4ParallelWorldProcess takes care of both layered mass
geometry and sensitivity of a parallel world.
- Transportation
- Defined ProcessSubType for transportation processes.
- Changed process type of G4NeutronBuilder to fGeneral.
- Change in G4Transportation and G4CoupledTransportation
to propose the final local time rather than the global time so that
local time can be properly updated. Addressing problem report
#1224.
- Modified calcuation of deltaTime for optical photons in
G4Transportation (and G4CoupledTtansportation).
The final velocity obtained by G4Track
CalculateVelocityForOpticalPhoton() should be used instead
of the initial velocity of the step. Addressing problem report
#1239.
- G4Transportation and G4CoupledTransportation: allow
for spin tracking of neutral particles with a magnetic moment, turned
off by default, can be enabled by using the new method
EnableUseMagneticMoment().
Allow for uniform gravity field tracking of neutral particles.
Removed all special treatment and logic for opticalphoton.
Geometry
- Migrated to new scheme of G4Exception for warnings and errors.
- Divisions
- Optimised initialization of phi angles in parameterisation for
tubs and cons.
- Magnetic field
- Added capability for (uniform) gravity field.
Implemented with new classes G4EqGravityField, G4UniformGravityField.
- G4Field: revised to help detect the presence of a gravity field.
Added new method IsGravityActive().
- Corrected computation of omegac in G4EqEMFieldWithEDM,
G4Mag_SpinEqRhs and G4EqEMFieldWithSpin with more
coherent formula. Simplified formula for computation of kinetic energy
in G4FieldTrack.
- Avoid printing out pointer in G4CachedMagneticField::ReportStatistics().
- Added new class G4TrialsCounter for keeping statistics of step trials.
- Management
- Introducing parallel layered mass geometry.
Scanning of material is extended to all the regions of all the worlds.
- Navigation
- Fix in locator classes for tracks stuck on boundaries between
volumes: improved the condition for accepting a candidate
intersection with a boundary in all locator classes. It now checks
whether the track enters in the new volume, using
GetGlobalSurfaceNormal() from G4Navigator.
- Revised G4VIntersectionLocator: added new method
GetSurfaceNormal(), to get normal at last candidate boundary
crossing. Corrected
AdjustmentOfFoundIntersection() to use exit-normal in
global coordinates instead of local.
- Modified G4Navigator::GetLocalExitNormal() method, to allow
it to be called before one of the Locate...() methods is called
( LocateGlobalPointAndSetup() or LocateWithinVolume()
is called.
Returns the normal at the endpoint of the last ComputeStep();
Added new method to provide the exit-normal in global coordinates;
added new methods GetMotherToDaughterTransform() and
GetLocalExitNormalAndCheck().
- Adapted G4MultiNavigator to revisions of intersection logic
to provide exit-surface normal for step ending on boundary.
- Trivial fixes for Coverity defects in G4GeomTestPoint and
G4GeomTestVolPoint.
- Some code cleanup.
- Solids (Boolean)
- Corrected protection in G4SubtractionSolid::DistanceToIn(p,v).
Revised outcome, to not cause event abortion, in case of bad convergence.
- Solids (CSG)
- First implementation of G4CutTubs solid, a tube with possible
cuts in +-Z.
- G4Sphere: fix for setting of relative radial tolerances when
setters for radiuses are explicitly called (affecting parameterisations
on radius for spheres). Relaxed validity condition in construction for
the minimum size of the outer radius.
- Solids (Specific)
- Fix in G4TriangularFacet::Intersect() to take into account
geometrical tolerance and cases of zero distance from surface's facet;
fixed tests where square root was compared to half Cartesian tolerance;
now compared to kCarTolerance.
- Fix in G4TessellatedSolid::DistanceToOut(p) and
DistanceToIn(p) to compute exactly the distance from facet
avoiding use of shortcut/variant using the 'outgoing' flag.
Addresses problem report
#1242.
- Fix in G4Paraboloid::DistanceToIn(p,v) and DistanceToIn(p)
to take into account tolerance correctly and provide better estimation
of distance. Addresses problem report
#1234.
- Added SetReferences() and InvertFacets() to
G4GenericTrap::CreatePolyhedron() for correct visualisation of
Boolean compositions with G4GenericTrap.
- Added SetReferences() to
G4TessellatedSolid::CreatePolyhedron() for correct
visualisation of Boolean compositions with G4TessellatedSolid.
Addresses problem report
#1235.
- Fixed logic in G4VTwistSurface::GetEdgeVisibility() for the
treatment of corners.
- Volumes
- Use WIN32 instead of G4LIB_BUILD_DLL as flag for
protecting allocator choice in G4NavigationHistory on Windows.
Global
- Added banner and footer for errors and warnings, to allow automated
parsing for the start and end of all printout for all calls to G4Exception.
Redirected warnings to cout instead of cerr by default.
- Removed obsolete G4Exception signature, that took simple string as argument.
Added two new G4Exception signatures, which take a ostringstream
for any amount of additional output.
- G4Physics2DVector, G4Physics2DVectorCache: new classes implementing
a 2-dimensional vector with linear interpolation.
- Added dBin, baseBin and verboseLevel in the
base class G4PhysicsVector to avoid having additional properties data
introduced in derived classes. This enables use of G4Allocator for allocating
G4PhysicsVector and G4PhysicsVectorCache objects.
Fixed ScaleVector() method in G4PhysicsVector derived classes.
- G4PhysicsLogVector, G4PhysicsLnVector, G4PhysicsLinearVector:
updated to safer implementation of ScaleVector() method.
- Added protection in G4Pow::powN() method for high exponent
values. Reduced vector for factorial from 512 to 170 (result should be
below DBL_MAX). Fixed computation of log(factorial).
- Added G4lrint(), G4lint(), G4rint() as global utility functions for
generic use.
- Added missing post-const qualifier to G4String::compareTo()
methods.
- Update date of release for 9.5.
Graphical Representations
- G4PolyhedronArbitrary: added SetReferences() and
InvertFacets() methods. SetReferences() is necessary
at the end to complete the polyhedron, in particular if the polyhedron
suffers subsequent Boolean operations.
- G4Polymarker, G4VMarker: added copy-constructors.
- G4Colour: added GetMap() so that current colour map
options can be listed.
- Migrated to new scheme of G4Exception.
- Fixed most Coverity warnings.
Hadronic Processes
- Completed migration to integer Z and A.
- Added ModelDescription() method to all model classes
for HTML documentation.
- Migrated to new scheme of G4Exception.
- Fixed compilation warnings on gcc-4.6 and Coverity reports.
- Cross sections
- Implemented re-design of G4VCrossSectionDataSet interface.
- New class G4KokoulinMuonNuclearXS: derived from code in the
direct-implementation process G4MuNuclearInteraction, replacing the
old-style implementation for conforming to the hadronic framework design
of process, model, cross-section. This new class is now the default
cross-section for G4MuonNuclearProcess.
- Provide descriptions for nearly all cross-section classes in method
CrossSectionDescription().
- G4CrossSectionElastic, G4CrossSectionInelastic and
G4ComponentAntiNuclNuclearXS: adopt modified names and fixed
usage in physics-list. Fixed problem of double-deletion.
- G4VComponentCrossSection: changed method names to
GetTotalElementCrossSection() and
GetTotalIsotopeCrossSection().
- G4IonsShenCrossSection: extended energy range up to
100 TeV.
- G4IonProtonCrossSection: implemented all virtual
IfApplicable() methods.
- Added GetName() method in G4VCrossSectionDataSet,
to be used with documentation reporting.
- G4CrossSectionDataStore: fixed selection of isotope when
element cross-section is used but isotope composition is defined by
the user. Fix in DumpPhysicsTable() method, responsible for
incorrect ion cross-sections values when invocated.
- G4IonsShenCrossSection added method GetIsoCrossSection().
- Modified p-p cross sections in G4GGNuclNuclCrossSection,
G4GlauberGribovCrossSection and G4HadronNucleonXsc to include
latest TOTEM data at 7 TeV.
- G4ElectroNuclearCrossSection: corrected numerical instability
adding numerical protections in methods computing equivalent photon
energy, Q^2, and virtual factor.
- Extended G4GlauberGribovCrossSection and
G4HadronNucleonXsc for kaons.
- G4ComponentAntiNuclNuclearXS: introduced Plab/baryon. Fixed
anti-baryon-nucleon cross-sections at low energies at value they have
at 100 MeV/c of projectile/anti-nucleon.
- G4UPiNuclearCrossSection: fixed Barashenkov data for pi+.
- G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS: fixed
cross-section off Hydrogen and pi+ cross-sections; use PDG
and GHEISHA parameterisations.
- G4TripathiLightCrossSection: added protections against
big positive values of cross-section below Coulomb barrier.
- Management
- G4HadronicProcess: make GetCrossSectionDataStore()
public so it can be accessed through the process.
Added method MultiplyCrossSectionBy() so
that cross-sections can be scaled for testing.
- G4HadronicProcess: added public method GetTargetNucleus()
to access target isotope; added private method FillResult()
providing simpler and more transparent handle for primary and
secondaries. Added null-pointer checks for material and volume to
DumpState().
- G4HadronicProcess: completed migration to integer Z and A.
Added file-scope variable to capture envvar with name of file for
saving random engine state. Used immediately prior to model
ApplyYourself() call.
- G4HadronicProcess: changed order of checks; first track
status, then value of cross-section to remove potential numerical
problem of cross-section computation for zero kinetic energy hadrons.
Added change status if final energy of primary particle is zero
Added protected method GetTargetNucleusPointer().
- Implemented migration to new G4HadFinalState interface for
G4HadronicProcess and related classes. Adopt new interface
to cross sections; use GetElementCrossSection() in place of
GetMicroscopicCrossSection(); added check on zero kinetic
energy of primary and secondary after interaction.
- Allow to turn on checking for E/p conservation by environment
variables. Take the tighter limit of process and model.
Enhanced printout for case 3 in E/p checking with initial state
info.
- G4HadronicProcessType: added 'RadioactiveDecay' with
ID 210 to enumeration.
- Extended Print() method in G4HadronicProcessStore
to include cross-section info. Added method DumpHtml() to
write out html physics list documentation. Added also method
PrintHtml() to print html documentation for processes,
models and cross sections for each particle.
- Models:
- E/p checking extended to allow string models to set limits;
GetEnergyMomentumCheckLevels() made virtual in
G4HadronicInteraction, and implemented to query string
model in G4VHighEnergyGenerator.
- Added data member in G4VIntraNuclearTransportModel with
related accessor methods to store/retrieve original projectile.
- G4VIntraNuclearTransportModel: fixed initialisation of
primary projectile.
- Added constructor and virtual destructor to
G4VIsotopeProduction.
- Processes
- Added G4MuonNuclearProcess, meant to replace the old process
G4MuNuclearInteraction by separating model and cross-section
classes.
- Added processes for light anti-ions: G4AntiAlphaInelasticProcess,
G4AntiDeuteronInelasticProcess, G4AntiHe3InelasticProcess and
G4AntiTritonInelasticProcess.
- G4WHadronElasticProcess: moved from coherent_elastic;
implemented random rotation of final state. Added change status
if final energy of primary particle is zero. More accurate handling
of low-energy particles.
- Utility
- G4ReactionProduct: use G4Allocator for dynamic
allocation to reduce memory churn.
- G4HadFinalState: store vector of values instead of pointers
to reduce memory churn. Improved constness of argument passing and
functions, and reduced creation of temporary objects. Drop unneeded
staleness flag. Removed AddSecondary() interface. Added
interfaces to merge two final states together.
- Models:
- New utility class G4DecayKineticTracks, to be used by
models' Propagate() member function, scanning input list
and decaying any short-lived resonances in situ. Parent particles
are deleted from the list at following decay. Adapted
G4DecayStrongResonances accordingly.
- G4Fancy3DNucleus: reduced memory churn by eliminating
duplicate arrays of G4Nucleon, moving the Helper buffer
and other buffers into class data members.
- Binary Cascade
- Set E/p checking limits for energy non-conservation checks.
Fixed large energy non-conservation for Hydrogen target (vector for the
final state was not cleared before use). Also moved check for Hydrogen
to ApplyYourSelf().
- G4GeneratorPrecompoundInterface: added code to calculate
excitation energy as difference of initial-final state, to allow for
energy conservation for string models. Reduced problem of energy
non-conservation. Fix to add fragment nucleus to reaction products
when no de-excitation. Replaced loop to decay input secondaries with
new G4DecayKineticTracks utility. Fixed memory leak in to
correctly delete kinetic track.
- G4BinaryCascade: revised calculation of excitation energy
when used for rescattering, removing systematic energy non-conservation.
More changes/fixes for use with propagate interface.
Added handling of detroyed nucleus, i.e. when charge becomes 0.
Some code cleanup, mostly ApplyCollision().
- Fixed bug in G4RKFieldIntegrator, following Xcode warning.
- Bertini Cascade
- Developed infrastructure to support using Bertini as a "rescattering"
model for the output of the FTF simulation.
- Make cross-section tables self-registering at job initialization.
- G4NucleiModel: added optional
argument to reset() with list of collision points, for
copying cascade state when rescattering. Optimised computation of
"rho". Reverted length scales to "2.82" factor. Compared local
kaon/hyperon cross-section tables with sum-of-exclusive tables
from G4Cascade*Channel classes.
Fixed bug in G4InuclNuclei constructor (mom,A,Z,Eexc,model)
to properly set excitation energy; caused energy non-conservation in
de-excitation code. Changed kaon potential to be positive, not
negative, so slow kaons will occasionally be captured.
Removed obsolete local cross-section arrays;
use standard tables, which are numerically equivalent.
- G4CascadeInterface: added support for capturing random-engine
state for debug at each ApplyYourself() or Propagate()
invocation. Simplified NoInteraction() to
have no particles returned, but use SetEnergyChange() to
communicate to tracking that real track should be stopped and deposit
all its energy. Only projectile is copied to final state, not target
nucleus. If accept/reject loop fails (maximum retries), return initial
state untouched rather than last generated cascade. This avoids
exposing an elastic scattering event under any circumstances.
Use new G4DecayKineticTracks in Propagate() to
handle short-lived inputs. Set up for E/p checking by
G4HadronicProcess in constructor; set internal E/p limits
(currently 5% and 10 MeV).
- Simplified cascade test-and-repeat loops; do four-momentum balancing
with nuclear fragment, now used exclusively as G4Fragment,
at end of cascade, not after de-excitation.
- G4CascadeCheckBalance: added non-limit ctor and explicit
limit setting.
- G4IntraNucleiCascader: added list of hit-nucleon locations,
filled by copyWoundedNucleus() for initialization of
G4NucleiModel. Reduced number of retries from 1000 to 100.
For pre-cascade rescattering, put
resonances, or any particle which cannot be propagated by Bertini,
directly onto output, without decaying.
- G4CollisionOutput: added non-const accessors for lists.
- G4LorentzConvertor: added diagnostic messages in rotate().
Drop most "intermediate" kinematic parameters used in rotate,
in favor of somewhat more direct vector operations.
- G4CascadeChannelTables: use FindTable() to determine
if table has been created already or not. Added new gamma-nucleon
interaction states.
- G4CascadeGamNChannel, G4CascadeGamPChannel: new final state
tables for gamma-nucleon interactions, with final states up to 9-body,
using the same energy binning as pion-nucleon.
- G4Cascade*Channel: added new constructor argument for all
cross-section tables. Removed all namespace self-instantiations
to fix incosistencies in initialization across platforms.
- G4Inucl*Particle: modified all constructors to take the model
code as an optional argument, so that subclasses don't have to set it
manually.
- Fix in G4ElementaryParticleCollider to hide no longer used
"mult" argument to getMomModule2toMany(); removed special
"mult==3" case.
- Fix in G4CascadeT1NNChannel to final 9-body final-state list
for both nn and pp: existing entries violate charge.
- Added protections in G4LorentzConvertor for rotate()
applied to at-rest system (i.e., z-axis ~ (0,0,0)), and
simplified calculations.
- Updated to reduce memory churn in G4IntraNucleiCascader,
G4FissionStore, G4Fissioner, G4CascadeInterface,
G4InuclElementaryParticle, G4BigBanger, G4ElementaryParticleCollider.
- G4EquilibriumEvaporator: improved building of final-state
particles to reduce creation of temporaries.
- G4CollisionOutput: use resize() and set/fill to
eliminate temporary copies. Added diagnostics and fixed bug with
momentum units.
- G4CascadParticle: added functions to explicitly set all data
members, including initial path and generation, to support changes
below. Re-order member functions in set/get pairs.
In getPathToTheNextZone(), check
for zero momentum (pp < 1e-9) and return zero path-length;
this will support capture at rest.
- G4CascadeCoalescence: NEW factory class to implement
conversion of final-state nucleon "clusters" into light ions.
Uses LAQGSM
algorithm (Sec. 2.3).
- G4ElementaryParticleCollider: added protection against
non-physical arguments and FPE in two-body angular distributions.
Moved message about unrecognized initial-state behind verbosity flag.
- G4IntraNucleiCascader: added final-state clustering as
optional facility, controlled through compile-time flag
G4CASCADE_DO_COALESCENCE. Clustering is done during
cascade finalization.
- Chiral Invariant Phase Space (CHIPS)
- Tuning of the Quasmon/Evaporation transition.
- Correction for Coulomb Barrier. Addressing problem report
#1192.
- Implemented migration to new G4HadFinalState interface in
G4ElectroNuclearReaction. Fix in destructor.
- G4QHadron(Elastic/Inelastic)DataSet: returning '0' for
missing hadrons.
- Fix in G4QEnvironment for object deletions. Fixed initialization
in constructor.
- Fixed case of FPE for unprotected sqrt() with possible negative argument
in G4QNucleus. Addressing problem report
#1251.
- Corrected G4QKaonPlusElasticCrossSection and
G4QPionMinusNuclearCrossSection
for a right reproduction of K+N and Pi-N cross sections.
- Correction in G4QNeutronNuclearCrossSection,
G4QProtonNuclearCrossSection for right reproduction of
cross-sections, as in G4QuasiElasticRatios.
- De-excitation
- G4NeutronRadCapture: fixed in particle change, kill primary
particle and save residual nucleus.
- G4ExcitationHandler: fix for Fermi break-up products
de-excitation. Added protection for small excitation energy into
photon evaporation loop.
Updated logic: first call only to MFM model, second start evaporation
loop, where FBU is called for light fragments, products of FBU are sent
to the 3d loop on photon evaporation.
- General cleanup of the FermiBreakUp model:
Removed G4FermiSplitter and G4FermiIntegerPartition.
Modified G4FermiConfiguration to be a simple container.
Removed unused methods in G4FermiConfigurationList and fixed
minor memory leak.
Removed map and access to map methods in G4FermiFragmentsPool.
Extended printout when kinematics fail in G4FermiPhaseSpaceDecay;
fixed computation of majorant in BetaKopylov method, general cleanup.
- G4VGammaDeexcitation: added accessors for the ICM flag,
commented out usage of this flag during sampling.
- G4Evaporation: directly send low Z,A fragments to the
FermiBreakUp model. Added extra protection: do not compute GEM
probability for the case Eexc > 3MeV*A; fixing FPE problem
for rare FTFP events.
- Fixed numerical problem for exp() function in
G4EvaporationProbability.
- G4NuclearLevelStore (photo-evaporation): added method to
include user's evaporation data file; the given data will be used for
the treatment of the photo evaporation of the given isotope instead
of using the file provided in the photo-evaporation database.
- Extended use of G4PhotoEvaporation to Z>100.
Note that for Z>100 at the moment the binding energy of the
vacant e- shell left after internal conversion is set as 0. and the
atomic relaxation will not be simulated later on.
- Elastic scattering
- G4WHadronElasticProcess: added light anti-nuclei; using
particle names in the IfApplicable() method. Added NIEL
energy deposition if recoil is below the threshold. Follow migration
of G4HadFinalState interface. Set lowestNeutronEnergy
to 1.e-12*eV. Added protection for very low
primary energy after scattering.
Moved class to 'processes' sub-module.
- New class G4AntiNuclElastic for simulation of elastic
anti-A - A scattering.
- G4HadronElastic: do not create an ion if the recoil energy is
below the threshold; fixed SampleInvariantT() default
implementation to be used in testing. Lowest limit is set to
1.e-6 eV.
- G4NuclNuclDiffuseElastic, G4DiffuseElastic: updated to use
G4HadronElastic as the base class and to follow its interface.
- Removed obsolete class G4UHadronElasticProcess.
Renamed G4VHadronElastic to G4HadronElastic (main
interface).
- G4CHIPSElasticXS: added calculations of anti-baryons,
Pi+, Pi-, K+, K- nucleus elastic cross-sections. Use
G4HadronicException; added cross-sections for neutral kaons.
- G4ChargeExchangeProcess, G4CHIPSElasticXS: implemented
migration to new design of G4VCrossSectionDataSet interface.
- G4LEpp, G4LEnp: fixed extraction of A from
G4Nucleus().
High Energy Theoretical
- Store primary particle, so that cascade in Propagate() has access.
- Added GetEnergyMomentumCheckLevel() method to
G4TheoFSGenerator.
- G4QuasiElasticChannel, G4TheoFSGenerator: reduced external
dependences. Modified according to G4V3DNucleus::GetNucleons()
signature.
- G4QuasiElasticChannel: use QuasiElRatios from 'quasi_elastic'
model in place of QuasiFreeRatios from CHIPS.
INCL/ABLA
- Use inverse kinematics in INCL light ion collisions: it improves INCL
light ion model performance in applications where we are interested in
beam fragmentation.
- INCL light ion model now supports light ion projectiles up to and
including Oxygen-18.
- Bug fixes in ABLA for rounding problem, causing evaporation function to
modify nucleus excitation energy via a side-effect.
INCLXX
- First version of INCL++ intra-nuclear cascade model based on INCL4.6
cascade model. Supported projectiles: protons, neutrons, pions up to
3 GeV. Uses G4ExcitationHandler for de-excitation.
Isotope Production
- G4NeutronIsoIsoCrossSections: implemented migration to new
design of G4VCrossSectionDataSet interface.
Lend
- First implementation of LEND (Low Energy Nuclear Data) cross-section
and physics model.
lll_fission
- Enabled to handle excited isomer nuclei as targets.
Low Energy
- Added protection against return back only primary particle with
increased energy in G4LEDeuteronInelastic, G4LETritonInelastic
and G4LEAlphaInelastic.
Neutron High Precision
- Added reaction Q value and break up flag (MF3::QI and LR) in
G4NeutronHPInelasticCompFS.
- Enabled FSMF6 in capture final state (G4NeutronHPCaptureFS).
- Bug fix in G4NeutronHPFinalState for unexpected baryon balance.
Fix for setting an index of the last element of an array.
- Bug fix in G4NeutronHPPhotonDist for call to element with
negative index.
- Modified G4NeutronHPIsoData, G4NeutronHPFission and
G4NeutronHPorLFission for ENDF-VII.
- Relaxed checking condition of inconsistency in
G4NeutronHPElasticFS, to avoid rounding problems on
32-bits systems. Added protection to avoid producing 0 kinetic
energy neutrons.
- Added protection for very low "remaining_energy" and fixes in
G4NeutronHPContAngularPar.
- Fixes in G4NeutronHPInelasticCompFS and use QI value for
calculating excitation energy of residual.
- Fixes for migration to ENDF-VII.r0. Bug fix in G4NeutronHPPartial.
- G4NeutronHPFissionFS: modified according to new
G4HadFinalState interface.
- Migrated to new G4VCrossSectionDataSet interface.
- Added cache for kinetic energy, element, material and cross-section.
- Enabled to handle excited isomer nuclei as targets.
- Migrated G4NeutronHPFastLegendre to high order (>30)
Legendre polynominal.
- Enabled to use Thermal Scattering Model and Data with NIST Materials.
- Added ENDF/B-VII thermal scattering materials; excluding para (ortho)
H and D, liquid (solid) methane and benzene.
- Fixed FPE error in G4NeutronHPThermalScattering and memory leak in
G4NeutronHPThermalScatteringData.
- Requires new data set G4NDL-4.0.
Parton-String
- First implementation of barion - anti-barion annihilation.
Added new G4FTFAnnihilation class in the FTF model, and made
corresponding changes in related FTF classes.
- Implemented simulation of anti-barion - nucleus interactions from the
rest to 1000 GeV. Reggeon cascading is switched off.
Good results are obtained in combination with the Binary cascade model.
- Implemented first variant of FTF code for simulation of
anti-nucleus-nucleus and nucleus-nucleus interactions.
The anti-nucleus nucleus part is working starting from 150*A MeV/c.
The nucleus-nucleus part is applicable at Plab > 2 * A GeV/c.
- Decreased low energy limit for FTF.
- Small improvement introduced in G4FTFParameters in order to treat
Labmda-Bar, Sigma-Bar, etc...
- Tuned parameters of Kaon-Proton interactions in FTF.
CHIPS cross sections are used now in FTF for needed X's; created
corresponding class: G4ComponentCHIPShadronNuclearXS.
- Set limits for E/p checking.
- G4QGSParticipants: reduced energy of participant nucleons by
binding energy. This increases excitation energy, as calculated by
initial-final. Without this, excitation E often is close to 0, or
negative.
- G4VParticipants: removed external dependences on
G4Fancy3DNucleus.
- G4GammaParticipants: updated according to new
G4V3DNucleus::GetNucleons() signature..
- G4LundStringFragmentation: made public and factorized the
virtual method FragmentString().
Factorized method SplitLast() to improve maintenance.
Simplified GetLightConeZ() implementation.
Photo-lepton-hadron
- New model G4VDMuonNuclearModel to replace old-style
G4MuNuclearInteraction and G4ParametrizedHadronicVertex
based on GHEISHA.
- Removed G4MuonNucleusProcess and
G4MuonNucleusInteractionModel classes.
These were the old GHEISHA-style models no longer used.
Pre-equilibrium
- G4PreCompoundModel: added limit on nucleon number
maxZ=3, maxA=5, allowing pre-compound emission for
light fragments (old formulation of the model).
Restored soft-cutoff option and use "go_ahead".
Set low limit for excitation to 1 MeV.
- G4PreCompoundTransitions: return zero probability if
no excitons.
QMD Reaction
- Migrated to new G4VCrossSectionDataSet interface.
Quasi Elastic
- New module including the quasi-elastic model extracted from CHIPS.
It is used by all physics-lists and it now made independent from CHIPS.
Radioactive Decay
- G4RadioactiveDecay: added data members and Set/Get functions
to support directional biasing ("collimation") of visible decay
daughters (e+, e-, gamma, neutron, and alphas, but not neutrinos or
the residual nucleus).
Added corresponding commands in G4RadiactiveDecaymessenger.
Set process subtype (fRadioactiveDecay = 210).
Fix for local decay time; addressing problem report
#1224.
Added new Fermi function and forbidden beta decay spectral shapes.
Added possibility for the user to load its own decay file.
Set halflifethreshold negative by default to allow the
tracking of all excited nuclei resulting from a radioactive decay.
Added reading of 'Spontaneous Fission' mode from
data files. requires new data set G4RadioactiveDecay.3.4.
- G4RadioactiveDecayMode: added SpFission mode.
- Created G4BetaDecayType, an enum of beta transition types.
- Created G4BetaDecayCorrections, a class containing new Fermi
function and forbidden transition calculations.
- Added check for maximum shell number in G4NuclearDecayChannel.
- G4RadioactiveDecayChannel: correction to allow the atomic
relaxation of de-excited nuclei produce also during beta and alpha
decay.
- G4RadioactiveDecayMessenger: added macro commands for setting
files.
- G4NuclearDecayChannel: migration to the new design of atomic
deexcitation, activation of deexcitation via EM UI commands or
G4EmProcessOptions as it is shown in EM examples.
Added check if de-excitation is enabled.
- G4NucleusLimits: suppressed Z<100 limit.
Stopping
- Added class G4FTFCaptureAtRest to handle nuclear capture
of anti-protons at rest with Fritiof.
- Added G4PiMinusAbsorptionBertini class.
Utils
- Added new methods in G4Nucleon for creation of anti-nucleus.
They can be used to replace protons and neutrons into anti-protons
and anti-neutron, respectively.
- Moved G4lrint(), G4lint(), and G4rint() global
functions to 'global' module for generic use.
Intercoms
- Migrated code to new G4Exception scheme.
Interfaces
- Added a flag in G4Qt to know if there is an external Qapp
started.
- Fix for displaying a QMessageBox on G4err output, to allow
for proper detection of G4Exceptions coming from kernel.
- Code quality improvements by Coverity.
- Migrated code to new G4Exception scheme.
Materials
- G4Material: added new "Base-material" approach allowing to share
internal tables for dedx, ranges, cross section between similar
materials; a pointer to the base material (NULL by default) and
corresponding methods have been added; added also extra protections
against incorrect mass fraction during material construction.
- G4NistMaterial: added constructor of a material using base material;
reduced size of internal vectors. Cleanup in methods to build materials
in G4NistMaterialBuilder.
- G4IonisParamMat: use mean ionisation potential provided by user
in computation of density effect.
- Added new class G4ElementData, data structure for cross-sections,
shell and isotope cross-sections.
- Reviewed and updated body tissue compositions according to ICRU Report
46 (1992) instead of old data (1975); renamed G4_TESTES_ICRP to
G4_TESTIS_ICRP; removed G4_CYTOSINE, G4_THYMINE, G4_URACIL,
as already existing as G4_DNA materials.
- G4Element, G4Material: reviewed comments. Addressing problem report
#1220.
- G4Isotope: added flag 'fm' to identify isomer level.
- Removed G4MaterialPropertyVector implementation and make it a
typedef of G4PhysicsOrderedFreeVector; removed G4MPVEntry
class and modified G4MaterialPropertiesTable accordingly.
- G4SandiaTable, G4IonisParamElm, G4IonisParamMat, G4OpticalSurface:
fixed problems reported by Coverity, mainly in assignment operator.
- Migrated code to new G4Exception scheme.
Particles
- Updated particle life time, mass and width according to PDG-2011.
- Added B-baryons, Bc mesons, Upsiron and Etac particles.
- Modified G4PrimaryParticle to avoid precision loss in conversion
from momentum to energy.
- Fixed the scale of 'som0' in G4MuonRadiativeDecayChannelWithSpin
and other internal quantities computations.
- Fixed bug in G4IsotopeMagneticMoment constructors.
Persistency
- ASCII
- Fixed case of dereferencing null pointer in G4tgbGeometryDumper
DumpRotationMatrix() method.
- Fixed bug on the usage of units. Addressing problem report
#1240.
- Migrated code to new G4Exception scheme.
- GDML
- Extended GDML schema for materials to include ionisation potential
(mean excitation energy) property to materials (GDML-3.0.1). Adapted
reader and writer plugins accordingly.
- Extended reader and writer to support new shape G4CutTubs.
- Fixes in reader to properly consider units in import for
G4GenericTrap, G4EllipticalTube, G4TessellatedSolid and
G4Tet shapes.
- Updated to comply with modification made in materials module.
- mctruth
- Removed disabled obsolete HepMC code.
Physics lists
- New physics lists and builders:
- Added OrderingParameterTable for G4PhysicsListHelper.
- Added G4DNAEmPhysicsChemistry builder.
- Added builders for anti-deuteron, anti-triton, anti-He and
anti-Alpha.
- Added builders for new LEND hadronic model. Enable to use LEND model
and cross-section for low energy neutron in Shielding physics list
(default is still neutron-HP) and added
G4RadioactiveDecayPhysics.
Updated G4PhysListFactory accordingly.
- Added new builder G4IonFTFPBinaryCascadePhysics applicable
for projectile ions up to 100 TeV and use it within QBBC;
set transition energy to 2-4 GeV.
- Physics lists qualification changes (obsolete/partially
disabled/experimental/supported):
- Marked unsupported: QGSP_BERT_NOLEP, QGSP_BERT_TRV.
- Marked supported: Shielding.
- Marked experimental: CHIPS.
- EM physics builders and options:
- Migrated EM standard, low energy and DNA builders to the new approach
based on G4PhysicsListHelper: no more use of integer numbers
to identify processes order; added de-excitation module to all EM
builders.
- Added G4BuilderType header with enumerator of builder types.
Added type for all EM and Ion builders.
- G4EmStandardPhysics_option3: experimental change of options:
reduced low-energy limit to 10 eV; reduced StepFunction parameters
per particle type; Activated Rayleigh Scattering. Use updated
G4UrbanMscModel95 model for e+-.
- G4EmLivermorePhysics, G4EmLivermorePolarizedPhysics,
G4EmPenelopePhysics: use UrbanMscModel95 for e+-.
- Modified G4EmExtraPhysics builder to use the new
muon-nuclear model and process.
- Set multiple-scattering polar angle limit from 0.2 to pi (reduction
of number of steps for low-energy muons/hadrons) for
G4EmStandardPhysics, G4EmStandardPhysics_option1,
G4EmStandardPhysics_option2, G4EmStandardPhysics_option3,
G4EmLivermorePhysics and G4EmPenelopePhysics.
- G4EmStandardPhysics_option1,2: pi+-, kaon+-, proton,
anti_proton use WentzelVI model of multiple-scattering.
- Modified G4OpticalPhysics in builders; added new
class G4OpticalProcessIndex. Addressing problem report
#1216.
- Modified G4OpticalPhysicsMessenger to allow
G4State_PreInit for most commands.
- G4EmStandardPhysics_option1: use UrbanMsc95.
G4EmStandardPhysics_option2: same as Opt1 but
with UrbanMsc93.
- Added SetFiniteRiseTime() to G4OpticalPhysics
and G4OpticalPhysicsMessenger.
- Modified G4OpticalPhysicsMessenger so that commands
setOpProcessVerbose and setTrackSecondariesFirst
work in PreInit state.
- Added process names in G4EmDNAPhysics. Changed elastic
scattering model. Extended to the handling of HZE.
- Hadronic builders:
- G4DecayPhysics, G4RadioactiveDecayPhysics: use
G4PhysicsListHelper.
- G4HadronElasticPhysics: added light anti-nuclei using
LHEP model below 100 MeV and above using
G4AntiNuclElastic model and
G4ComponentAntiNuclNuclearXS.
- G4HadronElasticPhysicsXS, G4HadronElasticPhysicsHP,
G4HadronElasticPhysicsLEND: use G4HadronElasticPhysics
for all particles and modified only neutron models and
cross-sections.
- Replaced G4UHadronElasticProcess by
G4WHadronElasticProcess in
G4HadronQElasticPhysics.
- Removed obsolete G4HadronElasticPhysics93 configuration.
- G4FTFPAntiBarionBuilder: added cross section to light
anti-nuclei.
- Fixed several small bugs in G4HyperonFTFPBuilder.
Make use of new features of FTF in FTFP_BERT and in QGSP_FTFP_BERT:
added builder G4HyperonFTFPBuilder for Hyperons using FTF
and Bertini as models. Delete cross-section objects in
G4FTFPAntiBarionBuilder.
- HadronPhysicsFTFP_BERT: use G4HyperonFTFPBuilder,
replacing G4MiscCHIPSBuilder; use
G4FTFPAntiBarionBuilder for anti barions;
FTFP_BERT and QGSP_FTFP_BERT uses new IonFTFPBinaryPhysics,
replacing LHEPIonPhysics and IonBinaryPhysics,
respectively.
- G4HadronInelasticQBBC: use FTFP for all anti-baryons,
set energy interval for FTFP above 2 GeV, below 6 GeV for Bertini.
- Updated HadronPhysicsFTFP_BERT_TRV to use FTF for
antibarions and hyperons, and to use CHIPS cross-sections for
hyperons and kaons. This makes this configuration identical to
HadronPhysicsFTFP_BERT, except for the transition energy.
Changed overlap region between BERT/FTFP to be from 3 to
12 GeV, affecting FTFP_BERT_TRV physics-list.
- Updated HadronPhysicsQGSP_FTFP_BERT to use FTFP for hyperons
(G4HyperonFTFPBuilder).
- Change in HadronPhysicsFTF_BIC to no longer use LEP for
"misc" particles. Now using FTFP for antibarions
(G4FTFPAntiBarionBuilder) and for hyperons
(G4HyperonFTFPBuilder); also switch to CHIPS cross-section
for kaons.
- Modified G4HadronDElasticPhysics coherently with the changes
made in G4DiffuseElastic.
- Removed multiple implementations of FindInelasticProcess()
method, now included in class PhysListUtil.
- G4HadronElasticBuilder: use He3 x-section from the new
AntiNuclei class to avoid crash in GHEISHA x-sections.
G4HadronDElasticBuilder: x-sections from CHIPS, Diffuse model.
G4HadronHElasticBuilder: alternative x-sections and models.
- G4HadronElasticXS: use G4BGGHadronElasticXS proton
cross-section.
- G4HadronInelasticQBBC: use CHIPS x-sections for kaons; use
Bertini up to 12 GeV, FTFP down to 3 GeV.
Code cleanup in QBBC.
- HadronPhysicsFTF_BIC: fixed bug for wrong deletion.
- Removed He3 from elastic builders, because cross-section is
still unavailable.
- Updates to lists:
- Revised QGSP_FTFP_BERT to utilise the new FTF/P processes: changing
them for anti-proton, anti-neutron; adding them also for the above
list of light anti-ions (d,t,He3,alpha).
- Added anti-triton to anti-barions. Use default energy limit for
anti-barions, i.e. up o 100 TeV.
- In QGSP_FTFP_BERT use G4IonBinaryCascadePhysics in place of
G4IonPhysics.
- QGSP_INCL_ABLA: enabled INCL/ABLA treatment for GenericIons.
- Changed FTFP_BERT_TRV to use Fritiof for the nuclear capture of
anti-protons at rest. Introduced new class
G4QandFTFStoppingPhysics.
- Added new physics list QGSP_INCLXX and assosiated builders.
Uses INLC++ for protons, neutrons and pions in the energy range
[0-3] GeV.
- G4PhysListFactory: implemented selection of EM builder
via physics-list name.
EM variants (EMV, EMX, EMY, LIV, PEN) are now available only from physics-list
factory, with the exception of FTFP_BERT_EMV and QGSP_BIC_EMY.
The following now raise G4Exception explaining what is needed to do:
FTFP_BERT_EMX, QGSP_BERT_EMX, QGSP_BERT_EMV.
- FTF_BIC: removed use of LEP for Kaons; this required new builders
G4KaonBuilder, G4FTFBinaryPionBuilder, G4FTFBinaryKaonBuilder,
G4BinaryPionBuilder, G4BertiniKaonBuilder.
- G4DataQuestionaire: updated for use more datasets.
Updated lists to ask for check datasets needed:
QGSP_BIC_HP, Shielding, QGSP_BERT_EMV, QGSP_INCL_ABLA.
- Fixed coverity issues in many files; most were uninitialised data
members for processes/models.
Run
- Introducing parallel layered mass geometry.
- Added new utility G4PhysicsListHelper for controlling process
ordering in physics lists and related classes.
If a process is added through the new method RegisterProcess(),
the ordering parameters can be omitted.
Default values for process ordering are applied. The user can choose
to adopt his/her own parameter table by setting G4ORDPARAMTABLE.
- Default implementation of SetCuts() is provided. Now, it is no
longer needed to implement a SetCuts() method (old scheme still
supported).
The obsolete method SetCutValueForOthers() has been removed.
It is now allowed to set zero cut length in SetCuts commands.
- Added ReplacePhysics() in G4VModulerPhysicsList to
replace physics constructor in a given physics list.
- Fixed bug in constructor of G4VUserPhysicsList reported by ATLAS
for setting of DefaultCutValue flag.
- Changed G4VModularPhysicsList to issue messages always if physics
is added and/or removed. Cleared compilation warning on gcc-4.6.
- Fixed potential case of deferencing null pointer in
G4VModularPhysicsList::RemovePhysics().
- Removed unnecessary AtRest GPIL in G4ParallelWorldScoringProcess.
- Added banner for errors and warnings in G4ExceptionHandler.
Redirect warnings to cout instead of cerr.
Track & Tracking
- Added GetSecondaryInCurrentStep() method in G4Step.
- Modified ParticleChange classes to properly handle local time change.
Addressing problem report
#1224.
- Renamed GetVelocity() to CalculateVelocity()
in G4Track; added accessor and modifier for velocity.
- Added G4VelocityTable CalculateVelocity()
as singleton to avoid unnecessary creation
of G4PhysicsVector objects in the event loop.
- Set velocity of track within UpdateStep() in
G4ParticleChange.
- Modify G4Step::InitializeStep() to set correct velocity for
optical photons.
- Modified G4ParticleChangeForTransport to fix a bug of wrong
velocity in 'PostStepPoint' after Along/PostStepDoIt().
- Fix problems related to treatment of weight in G4ParticleChange.
(addressing problem report
#1243),
to always set the parent track's weight to the value set by
ProposeParentWeight() and ProposeWeight() methods for
all particle change classes.
- Removed Conditionally-forced status in G4ForceCondition
enum in G4SteppingManager, no longer applicable.
- G4RichTrajectoryPoint: added 'Pre/PostStepPointStatus' and
'Pre/PostStepPointWeight'. Fixed bug in copy constructor (volume
touchable handle was not copied)
Visualization
- Replaced G4cerr with G4cout and added verbosity control.
- Migrated to new G4Exception scheme.
- Fixed Coverity defects. Fixed warning on gcc-4.6.
- Management
- Improvements to /vis/scene commands.
- Added /vis/viewer/set/rotationStyle UI command.
- Introduced RefreshIfRequired in viewer commands.
- Added virtual function ResetView() in G4VViewer.
Do not set auto-refresh for viewers that are not auto-refresh
by default.
- Added concept of default view parameters. These can be set
in the visualization manager for future operations either
by code or by command.
- Added /vis/default/hiddenEdge and /vis/default/style.
- Added printing of available colours on intialisation and in
/vis/list.
- Changed "Fatal" to "JustWarning" for non-existent model.
- Modeling
- Relaxed some exceptions to warnings.
- G4TrajectoryDrawerUtils: reworked TimesValidity.
- G4PhysicalVolumeModel: added flag to
G4PhysicalVolumeNodeID (true if drawn).
- Externals
- HepRep
- Added /vis/heprep/scale and
/vis/heprep/center commands.
- OpenGL
- Fixed conflict with qgl.h and GL/gh.h in include files.
- Added CMake support for Xm and Win32 components.
- Fix in G4OpenGL header for proper inclusion of gl.h and
glu.h for Qt build, when GL/X11 is not selected.
Fixes compilation problem happening in either GNUMake
and CMake builds, when selected Qt/GL driver on MacOS systems.
- Fixed transparency problem.
- Improved first pass rendering speed (reduced use of glFlush).
- Fixed non-appearance of trajectories in Qt (added final glFlush).
- Xm: fixed consistency and rest issue with control panels.
- Stored mode: improved efficiency for handling transients (trajectories).
- Fixed problem of missing trajectories drawing on Mac.
Fixed slow drawing on Mac, by reducing the frequency of glFlush.
- Fixed inconsistent parameters on Xm panels.
- Use program loop to call display lists for "permanent objects"
instead of using a "top display list".
- Qt improvements. Bug fix for Qt < 4.4.
- Fixed circles/squares problem.
- Improvements in ogl/print and gl2ps.
- OpenInventor
- Added support for CMake build of OpenInventor.
- RayTracer
- Updated setup to use new GEANT4_USE_RAYTRACER_X11 variable.
- XXX
- Implemented simple ad hoc tree and removed include/tree.
Environments
- Merged changes for migration to new G4ApplicationState.
- Fixes to port on OSX Lion and migrated to new G4Exception scheme.
Data sets
- New data set G4NEUTRONXS-1.1 for evaluated neutron cross section data
on natural composition of elements:
- Evaluated cross section data derived from G4NDL-4.0.
- New data set G4PII-1.3 for shell ionisation cross-sections to be used
in precise impact ionisation simulation.
- Refined values of the theoretical cross-sections.
- New low-energy data set, G4EMLOW.6.23:
- Added module penelope/bremsstrahlung for G4PenelopeBremsstrahlung
v2008 model.
- Updated FL2.dat and Paul data.
- Added Bremsstrahlung data files into new sub-directory brem_SB.
Data are published in S.M.Seltzer and M.J.Berger Atom. Data and
Nucl. Data Tables 35 (1986) 345-418.
- Added ecpssr Form Factor calculations from A. Taborda, M. Reis et al.
- New neutron data set with thermal cross sections, G4NDL.4.0:
- Updated most data to ENDF/B-VII.
- Added Zinc: Zn_nat.
- Added Tantalum: Ta181:Ta-181 (neutron),
Ta182:Ta-182 (neutron).
- Replaced Lithium data: Li6, Li7.
- Replaced Boron data: B10, B11.
- All neutron data file below Elastic, Inelastic, Capture and Fission are
replaced. New data comes from ENDF-VII.r0 library.
New files are processed by NJOY-99.u364 with reconstruction tolerance
of 0.001. Exceptions: data files for As75, Y90, Pa231, Pa233 and Th232
come from ENDF-VI.r8. No data files for Be7 and As74.
- All excited isomer data are excluded, as currently not supported
in Geant4.
- All data file for isotopes heavier than Uranium are excluded.
- Added simplified level scheme data of Np to Cf into
inelastic/Gammas.
- Total 389 isotopes including 3 natural abundance data.
- New photon-evaporation data set, G4PhotonEvaporation.2.2:
- New radioactive decay data set, G4RadioactiveDecay.3.4:
- New spontaneous fission capability and upgrade to forbidden beta decays.
Examples
- Migrated physics-list to use G4PhysListHelper.
- In DetectorConstruction in EM examples set I=78 eV (vs 75 eV)for Water.
Fix in SteppingVerbose for proper treatment of 'OutOfWorld' cases.
- Archived advanced example 'Rich', no longer under maintenance.
- Various fixes, improvements, adoption of new features.
- Updated reference outputs.
- advanced
- brachytherapy
- Migrated to use new internal analysis module.
- Deleted sensitive detector and ReadOutGeometry components.
- ChargeExchangeMC
- Implemented new framework for easy creation of various
scene primitives.
- Added new algorithms for energy deposit collection strategies.
- Added new reconstruction parameter: expected momentum at the center of
the target.
- Optimized calculation of physical values. Code cleanup.
- dnaphysics
- New example exercising G4DNA processes.
- eRosita
- Imported old Livermore low-energy processes.
- hadrontherapy
- Added complete physics to the batch.mac file for batch runs.
- Updates and corrections to macros and cleaned physics.
- iort_therapy
- New application specifically developed to address typical needs
related to the Intra-Operative Radio-Therapy (IORT) tecnique.
- human_phantom
- Added macro batch.mac for running in batch mode.
- microbeam
- Removed obsolete hadron elastic builders.
Removed usage of system commands.
- microdosimetry
- Switched to G4ionIonisation and 5 MeV proton.
- Added new variables to histogram.
- Added scoring of multiple-scattering.
- Removed initStep test in SteppingAction.
- Removed usage of system commands.
- nanobeam
- Switched to non-numbered physics list.
- Removed usage of water material and cleanup.
- Removed usage of system commands.
- Removed one analysis option in HistoManager.
- Updated README for use with full version of CLHEP.
- xray_fluorescence
- Migrated physicslist to standard EM+Fluo.
- Added several classes (XrayFluoPhysListEmStandardFLUO,
XrayFluoStepMax and XrayFluoStepMaxMessenger)
and adapted code accordingly for use.
- basic
- New set of basic examples B1-2-3-4 oriented to "novice" users and
covering many basic general use-cases typical of an
"application"-oriented kind of development.
- extended
- analysis/A01
- Corrected order of filling x and y for Cloud2D.
- analysis/AnaEx02
- New example showing the usage of histogram and ntuple
manipulations using the Root analysis tool. All analysis
manipulations (histo booking, filling, saving histos in
a file, etc...) are located the class HistoManager.
- common
- First version of the placeholder of common classes to be
adopted in the future extended examples.
- electromagnetic/TestEm1,2,3,5
- PhysicsList: set back default lowest production cut (990 eV).
- Updated PhysListEmStandard for msc95 and de-excitation.
Set lowest production cut to 100 eV in PhysicsList.
- Updated SteppingVerbose.
- Set msc95 as default in PhysListEmStandard.
- electromagnetic/TestEm7
- PhysicsList: set back default lowest production cut (990 eV).
- Updated PhysListEmStandard for msc95 and de-excitation.
Set lowest production cut to 100 eV in PhysicsList.
- Updated SteppingVerbose.
- Set msc95 as default in PhysListEmStandard.
- Removed calls to obsolete methods and cleaned up options in
PhysListEmStandardNR and PhysListEmStandardSS.
- Added compiler depended selection of the math library to c2_function.
- Allow tallies of different materials and sizes.
- Added Water_1.05 material and test of variable density option in
TestEm7.in macro and DetectorConstruction.
- electromagnetic/TestEm9
- Added extra run with 20 GeV mu- in TestEm9.in.
- Set msc95 as default in PhysListEmStandard.
- electromagnetic/TestEm11
- PhysicsList: set back default lowest production cut (990 eV).
- Updated PhysListEmStandard for msc95 and de-excitation.
Set lowest production cut to 100 eV in PhysicsList.
- Set msc95 as default in PhysListEmStandard.
- Allow several absorbers to DetectorConstruction.
- Modified RunAction, SteppingAction, SteppingVerbose, DetectorMessenger.
- HistoManager and Messenger: removed 'csda' and 'stepMax' computation.
- Updated all macros and Readme.
- electromagnetic/TestEm12
- PhysicsList: set back default lowest production cut (990 eV).
- Updated PhysListEmStandard for msc95 and de-excitation.
Set lowest production cut to 100 eV in PhysicsList.
- Set msc95 as default in PhysListEmStandard.
- Added G4EmDNAPhysics in PhysicsList and new macro dna.mac.
- Reduced statistic in input macro.
- Removed obsolete modifiers in PhysListEmStandard.
- PhysListEmStandardGS, PhysListEmStandardWVI: low energy
threshold for Coulomb scattering model reduced to 10 eV
for e+- and to 100 eV for muons and hadrons.
- electromagnetic/TestEm13
- electromagnetic/TestEm14
- Modified PhysListEmStandard, included AtomicDeexcitation,
new G4PEEffectFluoModel and G4KleinNishinaModel.
- electromagnetic/TestEm15
- Updated PhysListEmStandard to multiple-scattering-95.
- electromagnetic/TestEm18
- Modified PhysListEmStandard, included AtomicDeexcitation,
new G4PEEffectFluoModel and G4KleinNishinaModel.
- Moved Fluo and Pixe tests to TestEm14.
- field/field06
- New example excercising gravity field.
- geometry/g3tog4
- Fixed vis.mac macros. Corrected README.
- geometry/olap
- geometry/transforms
- New example demonstrating various ways of definition of 3D
transformations for placing volumes.
- hadronic/Hadr01
- Added new builders for ions.
- hadronic/Hadr02
- New example providing simulation of ion beam interaction
with different targets. Hadronic aspects of beam target
interaction are demonstrating in the example including
longitudinal profile of energy deposition, spectra of
secondary particles, isotope production spectra.
- medical/electronScattering
- Updated PhysListEmStandard to multiple-scattering-95.
- Added EGS_13MeV results.
- Set msc95 as default in PhysListEmStandard.
- RunAction: disabled storing of random seeds.
- medical/electronScattering2
- Corrected README comments on opt2 and opt3.
- Updated PhysListEmStandard to match version
in electronScattering.
- Corrected physics-list setting in macros.
- medical/fanoCavity[1,2]
- Updated PhysListEmStandard_opt3 to multiple-scattering-95.
Suppressed PhysListEmStandard_opt2, and use same
configuration as for opt3 in PhysListEmStandard_GS, VWI, SS.
- medical/GammaTherapy
- Renamed step-limiter classes to avoid clash with class names in kernel.
- optical/LXe
- Exercise the optics_engine in input macro.
- parameterisations/gflash
- Fixed bug in ExGflashSensitiveDetector::Initialize() for
creation of new hits collection.
- persistency/gdml
- G02:
Updated test.gdml to add example of ionisation potential to materials.
Requires upgrade of the schema to GDML-3.0.1.
- G03:
Changed from no longer supported physics-list QGSP-BERT-EMV to
QGSP-BERT.
- radioactivedecay/rdecay01
- Fixed bug in time counting in RunAction.
- Compute activity from primary ion in RunAction.
- Modified setting for total kinetic energy in histo 6.
- Suppressed histo #9.
- radioactivedecay/rdecay02
- Migrated physics list to remove use of obsolete low energy EM
processes.
- Corrected pre-processor lines in exrdmHisto.
- Added macro files and user data files to illustrate the
possibility for a user to define its own radioactive decay data and
evaporation data. An example No252.g4mac shows also how to treat
nuclei with Z>100.
- Added commands '/process/em/fluo true' and '/process/em/auger true'
in macro files to have the atomic relaxation taking place, with the
new EM interface for atomic relaxation. Updated README.
- runAndEvent/RE04
- New example demonstrating how to define a layered mass geometry
in a parallel world.
- novice
- N03
- Get pointers to UserAction classes via G4RunManager.
- N04
- Optimised initialisation of Phi angles in parameterisations
to avoid recomputation of trigonometry.
- N06
- Use Spline interpolation for some property-vectors.