Geant4 9.1 Release Notes
The code and binary libraries for the supported systems are available
through our Source
Code Web page.
Please refer to the
Geant4
User Documentation for further information about using Geant4.
Contents
- Supported and Tested Platforms
- CLHEP and AIDA
- 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
Official platforms:
- Linux, gcc-3.4.6.
Tested on 32 bits architectures and 64 bits architectures
(Intel or AMD) with the Scientific Linux CERN 4 (SLC4) distribution
(based on RedHat Linux Enterprise 4).
Versions of Geant4 have also been compiled successfully on other
Linux distributions, like Debian, Suse or other RedHat systems.
- MacOSX 10.4, gcc-4.0.1
- SUN Solaris 5.8, C++ CC-5.5.
- Windows/XP and CygWin Tools with: Visual C++ 8.0 (Visual Studio 2005)
More verified configurations:
- Linux, gcc-3.2.3, gcc-4.2.2
- Linux, Intel-icc 9.1
- SUN Solaris 5.8, C++ CC-5.4 Patch 111715-02
- Windows/XP and CygWin Tools with: Visual C++ 7.1 .NET
Platforms configured but not tested and not 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
- SGI V6.5.5, CC 7.2.1
2. CLHEP and AIDA
Geant4 9.1 requires the installation of
CLHEP.
Tests have been performed with CLHEP-2.0.3.2
Geant4 9.1 examples with histogramming cowork with analysis tools compliant
to AIDA 3.2.1 interfaces (for details, see
Appendix 2
of the
Users Guide for Application Developers).
AIDA headers can be downloaded from:
http://aida.freehep.org
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 advanced uses of
features in Geant4) in order to upgrade from release 9.0 to release 9.1.
Note that a full re-installation of libraries (or a full recompilation) and
a recompilation of user applications is required.
Geometry
The revision of G4TessellatedSolid required a name change for some
public methods. User code making explicit use of these methods should migrate
accordingly.
Low Energy Electromagnetic physics
The prototype interfaces of beta-version G4DNA* processes have been
replaced by a unique process. Prototype user code is required to migrate; in
principle the migration is limited to replacing typedef statements.
Standard Electromagnetic physics
The G4Cerenkov process was changed from being an AlongStep
process to a PostStep process. Custom user physics-lists that
include G4Cerenkov must be changed accordingly:
pmanager->AddContinuousProcess(theCerenkovProcess);
to:
pmanager->AddProcess(theCerenkovProcess);
pmanager->SetProcessOrdering(theCerenkovProcess,idxPostStep);
Hadronic physics
Gamma level file warnings in G4NuclearLevelManager have been
suppressed, so if an isotope has no data, no warning will be issued.
To turn them on again, set the pre-compiler flag GAMMAFILEWARNING
as follows:
CPPFLAGS += -DGAMMAFILEWARNING
and re-build the library in
processes/hadronic/models/de_excitation/photon_evaporation of Geant4.
Fast Parameterised Simulation
The process G4FastSimulationManagerProcess (G4FSMP) can be
used for trigger fast simulation models. These can be attached either to a region of the primary 'mass'
geometry or to a region of a parallel (ghost) geometry.
In the first case, the user has to attach an instance of the G4FSMP
process as a PostStep process to particles having a fast simulation
model in the mass geometry; this remains unchanged.
A change is required in the second case, of a ghost geometry: the G4FSMP process now must be attached as an AlongStep+PostStep
process to particles having fast simulation models bound to regions of the
ghost geometry.
The AlongGetPhysicalInteractionLength() method of the G4FSMP
process must be placed second-to-last in this case (i.e. after the Multiple
Scattering, but before the Transportation processes). An example is given in
the physics-list defined in examples/novice/N05.
Data Sets
This release introduces a new data set and two new versions.
Please see the last section for the corresponding details.
- New data for neutron cross-sections, G4NDL.3.12.
- New low-energy data set, G4EMLOW.5.1.
- New data set for nuclear shell effects, G4ABLA3.0 used by the new ABLA .
4. New Developments and Capabilities
Geometry
- Introduced new navigation for phantoms and similar regular
structures. The new algorithm provides fast navigation
and no memory overhead for voxels phantoms and similar geometries.
An option is available to skip volume boundaries, when the volumes on either side hold the same material. The example in extended/medical/DICOM has been
revised to demonstrate the usage of the new parameterisation required and the corresponding navigation. In addition it
enables comparison against existing algorithms, including the nested parameterisation (which had reduced memory overhead) and the older 3D optimisation.
GDML detector description persistency
- A plugin-module for GDML can be installed optionally in Geant4. This replaces the dependency on the external GDML (GDML-2.X series) library. The new
module includes all the features supported in the old GDML library for
importing GDML descriptions, except for handling of parameterised volumes
and material optical properties. (These will be added in a future version
of the new plugin.) It remains possible to use the old external
GDML library, if needed.
Low Energy Electromagnetic physics
- Fully functional capabilities of physics processes in liquid water for
microdosimetry simulation are provided in this release; details can be
found in S. Chauvie et al., "Geant4 physics processes for
microdosimetry simulation: design foundation and implementation
of the first set of models", IEEE Trans. Nucl. Sci., vol. 54,
no. 6, Dec. 2007.
Standard Electromagnetic physics
- Non-ionizing energy loss is filled by ion ionisation processes and is
available to user actions.
- The new process G4ionGasIonisation is available. It is recommended
to be used for simulation of ion transport in low-density media.
- The process G4CoulombScattering was verified and is proposed to
be used instead of the multiple scattering process for simulation of
scattering in low-density media.
- The G4ScreenNuclearRecoil process developed by the Vanderbilt
University group is available with the extended example TestEm7.
This process is an alternative to the multiple scattering process for
ions.
- The simulation of energy loss of the classical magnetic monopole is
provided. The example of Physics List with the monopole is available with
the new extended example exotic_physics/monopole.
Hadronic physics
- Extended applicability of the Binary cascade. G4BinaryCascade::Propagate() method is first released. This allows
the use of the Binary cascade to transport the remnants of a high energy collision, as it has become model in the high energy
framework (G4TheoFSGenerator::SetTransport()). This feature is
aimed for expert use currently, as validation is starting.
The binary cascade can now be used for pions, benefiting from a bug fix for
incident pions; validation is in progress.
- The first, alpha release of the new INCL (Liege) cascade module is included. This will be an alternative to the
Binary and Bertini cascades, are already offered in Geant4, and valid up
to 3 GeV. It has been converted from the Fortran implementation and its validation is ongoing.
- First, alpha release of new QMD (quantum molecular dynamics) nucleus-nucleus
interaction code. Its validation is ongoing.
- High precision neutrons: G4NDL 3.12 data set is now released. This uses
JENDL entries for Cd isotopes, and adds four new elements with their
corresponding isotopes: Hg, Ra, Br, and
La.
Physics Lists
Several new physics lists are offered, providing new configurations or new
modeling options. Feedback via the Hypernews Forum on physics lists is welcome.
The new physics lists are:
- FTFP_BERT and QGSC_BERT: both of these reduce the use of
parameterized modeling. For proton, neutron, pion and kaon induced
inelastic hadronic interactions the parameterized model is not used.
- QGSP_DIF and QGSP_BERT_DIF: for diffractive scattering of
proton and neutron at high energies a diffractive scattering model
provided by CHIPS is used.
- QGS_BIC and FTF_BIC: offering new developments of
Binary cascade. For more details, see the detailed notes.
Command-based scoring
- The user can
use this new ability to score on an arbitrary three-dimensional scoring mesh, using only new user commands. No user code needs be
written to apply the scoring. It utilises a parallel world making the mesh geometry
can be independent of the mass geometry. An arbitrary number of physics
quantities to be scored and filters affecting these scorers can be assigned
to the mesh. After scoring has been applied (i.e. after the run), the user
can visualize the score map and also dump scores into a file. Relevant
UI commands are listed in the Application Developers Guide, and the new
extended/runAndEvent/RE03 example demonstrates their usage.
- Command-based scoring is in Beta release; commands and methods are subject
to modification in future releases. Feedback will be greatly appreciated.
5. Expected effects on physics and performance
Standard Electromagnetic physics
- Improved simulation of the high-energy gamma tail for muon Bremsstrahlung
(rare process, important for background simulation - NA49).
- Improved simulation of straggling for ions; the width of the Bragg peak
becomes stable versus modification of the cut in range.
Hadronic physics
- Fixed problem reported by ATLAS of high energy collision of sigma+
and a nucleon producing a high energy backward proton. This problem has
been in the hadronic code since the beginning and was due to incorrectly
selecting evaporated nucleons as leading particles. At 1 TeV
incident energy, this type of event occurred 0.5% to 1% of the time when
the HEP models are used. After the fix, no high energy backward nucleons
are observed, with the effect that such events will not exist to mimic
exotic reactions.
- Bug fixes and completed implementation of theory in G4PreCompoundModel
and G4Evaporation have produced a 10-15% increase in neutron flux
for 2.5 GeV/c protons incident on Pb.
- Correct time is now set for secondaries, instead of global time. This will
primarily affect neutron times for users of the HP neutron package.
- An angular distribution bug in Bertini cascade has been fixed. Previously,
double differential cross sections showed an excess of events at high
energy and small to medium scattering angles. The fix removes this by
using an exp(t) distribution for nucleon-nucleon scattering above
2.8 GeV. This will result in only a small reduction of average
particle energy in the secondaries.
- Bug fix in quasi-elastic scattering may cause shower shapes to be a bit
shorter and wider when using QGSC/QGSP physics lists.
6. Known Run-Time Problems and Limitations
For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem
Reporting System.
7. Compilation Warnings
There are compilation warnings on some tested platforms. We do not believe
that any of these lead to incorrect run-time behaviour.
8. Known Run-Time Warnings
The following message can 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 looping in magnetic fields
or encountering problems at geometrical boundaries.
In case either of these reported energy is significant, we recommend to
increase the verbosity of G4Transportation to obtain information for
each track killed. A user can change the threshold energy above which particles
are not killed using the method SetThresholdImportantEnergy of
G4Transportation. The default value is 250 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
- New modules added to binmake.gmk:
digits_hits/scorer, processes/hadronic/models/rpg,
processes/hadronic/models/incl (Liege cascade),
processes/hadronic/models/qmd and persistency/gdml.
- Introduced G4LIB_BUILD_GDML/G4LIB_USE_GDML flags to trigger
compilation of gdml plug-in. Added setup for XercesC. Required
path XERCESCROOT to XercesC installation if
G4LIB_BUILD_GDML is set.
- Added setup for QT in UI scripts (variables QTHOME,
G4UI_BUILD_QT_SESSION, G4UI_USE_QT, G4VIS_BUILD_OPENGLQT_DRIVER,
G4VIS_USE_OPENGLQT).
- Use gfortran instead of g77 on MacOSX.
- Updated Configure script to handle new modules and data libraries.
Digitization & Hits
- Created new module scorer now including all scorer and filter
classes. The module utils is now used for interactive scoring
utilities.
- First implementation of interactive parallel world scoring.
- Introducing command-based scoring mechanism: Beta release.
Currently shape of scoring cell is limited to boxes.
Electromagnetic Processes
- High Energy
- G4mplIonisation: introduced theoretical asymtotic low-energy
parameterization of dEdx and fixed intermediate
parameterization between low-energy and high-energy models
for classical magnetic monopole..
- Low Energy
- Refactoring of Geant4-DNA domain. Added G4DNAProcess and
G4DNAFinalStateProduct classes.
- New Geant4-DNA models for electrons: Elastic Scattering (screened
Rutherford, Brenner-Zaider), Ionisation (Emfietzoglou), Excitation
(Emfietzoglou).
- New Geant4-DNA models for protons: Excitation (Dingfelder,
Emfietzoglou), Ionisation (Rudd, Dingfelder 1st Born approximation),
Charge Change (Dingfelder).
- New Geant4-DNA models for hydrogen: Excitation (Dingfelder),
Ionisation (Dingfelder), Charge Change (Dingfelder).
- New Geant4-DNA models for helium and its charge states: effective
charge scaling from proton models.
- Fixes to handle Z=100 in the Livermore library and to correct
problem report
#933.
- Fix in G4PenelopeRayleigh to address problem report
#965.
- Correction in G4AtomicDeexcitation, addressing problem Report
#986.
- Requires new data set G4EMLOW5.1, where a new dna/directory has been
added containing Geant4-DNA data tables for interpolation.
- Muons
- G4EnergyLossForExtrapolator: added maxEnergyTransfer
parameter for the computation of energy loss.
- G4MuBremsstrahlungModel: updated sampling algorithm to provide
more precise predictions for the tail of the gamma energy spectra
(NA49 problem).
- G4MuBremsstrahlungModel and G4MuPairProductionModel:
added ignoreCut flag, if true both models provide
zero dEdx and full cross sections.
- G4MuMultipleScattering, G4MuMscModel: new classes
for simulation of multiple scattering for muons (beta-version).
- Polarisation
- G4eplusPolarizedAnnihilation: added enabledAtRest
flag.
- Implemented more general cross section framework; removed dependencies
to models. Now cross sections can be used independent of any model,
e.g. in a cross section calculator class.
- Added polarized photo-electric effect.
- Bug fix in G4PolarizedAnnihilationCrossSection correcting
error in calculation of polarisation dependent total cross section
(wrong interaction-length for positrons in applications where particle
and media are polarised).
- Standard
- G4UrbanMscModel:
- Use SampleScattering() method instead of
SampleSecondaries().
- For skin > 0 (computed distance to the geometry boundary):
- use range instead of TrueStepLimit for the computation
of the distance to a boundary to provide more stable step
limitation by GeomFactor;
- default values stepmin = 1 nm,
tlimitmin = 10*stepmin;
- default value 10^-16 is used to avoid lost of
precision and occasional NaN values.
- New, simpler model functions for mean scattering angle
theta0. Now the form of theta0 is the same as
in the Highland formula, but the parameter values are different
for e+/e- and the other (heavy) particles.
- Fixed old bug in sign of theta0 for negatively charged
particles.
- Fixed old bug in SampleCosineTheta(): now the value of
prob is always between [0,1].
- Compare new value of safety with zero after sampling of
lateral displacement to identify if track is on boundary.
- Changed initialisation for ions: protecting parameters from
modification.
- Tuned ComputeGeomPathLength() in order to get better low
energy behaviour for heavy particles (mu, hadrons).
- G4UrbanMscModel90: new class which keeps the version of
sampling of scattering angle as the one of version 9.0 but includes
also protections and fixes of G4UrbanMscModel.
Used by G4hMultipleScattering.
- G4CoulombScattering, G4CoulombScatteringModel,
G4eCoulombScatteringModel:
- Updated InitialiseProcess() and PrintInfo()
methods to ensure that the parameters of models change between
runs.
- Added nuclear size effect; added separate simulation of scattering
on atomic electrons taking into account cuts; fixed cross section
for compounds.
- Reorganised initialisation of kinematics and screening
parameters.
- Using precomputed Z^1/3 and log(A) values to
speed up code.
- Fixed crash happening at initialisation when several elements
with the same Z are defined.
- G4BraggModel, G4BraggIonModel:
- More safe computation of scattering angle.
- G4ionIonisation:
- Removed obsolete method DefineMassCharge()
- Added protected methods BetheBlochEnergyThreshold() and
NuclearStoppingFlag().
- G4ionGasIonisation:
- New ion ionisation process with discrete ion charge and no
equilibrium between ion and media.
- G4IonFluctuations:
- Added dependence on cut in the formula of width to
reduce cut dependence of the Bragg peak width for ions;
use Fermi energy from G4Material.
- G4PAIphotonModel, G4PAIModel:
- Fixed MaxSecondaryEnergy() method for e- and
e+ and use it for definition of max energy transfer;
protected printouts by verbosity flag.
- General cleanup and fixed memory leak in G4PAIModel.
- G4eplusAnnihilation: added flag enabledAtRest.
- G4PAIySection: new class which substitutes
G4PAIxSection, fixing memory leak problems.
- G4ionIonisation, G4ionGasIonisation,
G4CoulombScatteringModel: fill NIEL energy deposit.
- Utils
- G4VEnergyLossProcess:
- Use prestep time for subcutoff secondaries and avoid precise
computation ot the time using GetVelocity() method.
- Improved energy loss computation for the case of big step,
allowing for slight improvement in CPU performance.
- Use STL vector of G4VEmModel* instead of C-array.
- G4VEmProcess:
- Added cut as a parameter of ComputeCrossSectionPerAtom()
method allowing models to use the cut (used by single scattering
model and potentially by others); added vector of cuts to the list
of members of the class.
- Integral option now coupled with buildLambdaTable option:
integral cannot be activated if buildLambdaTable is not
activated.
- G4VEmModel:
- Compare cross section with DBL_MIN instead of zero.
- Added SampleScattering() method for multiple-scattering
models.
- G4VEnergyLossProcess, G4VEmProcess,
G4VMultipleScattering:
- Fixed memory leak at destruction; proper deletion of
G4PhysicsTables.
- Moved virtual functions, like
PostStepGetPhysicalInteractionLength()
from inline to body of classes; moved simple methods from body
to inline.
- Fixed handling zero cross section in
PostStepGetPhysicalInteractionLength() method to avoid
problem happening in FanoCavity example when cross section
inside cavity is zero.
- G4VEnergyLossProcess:
- Simplified logic to switch on/off fluctuations.
- G4VMultipleScattering:
- Use SampleScattering() method in PostStep.
- Added vector of cuts for electrons (needed for combined multiple
scattering processes).
- G4EmCalculator: fixed default region name.
- G4ionEffectiveCharge: use Fermi energy from G4Material
and not recalculate it at each step; reorganized formulas: less calls
to mathematical functions.
- G4EmModelmanager: added pointers to G4Gamma and
G4Positron at initialisation.
- G4EmProcessOptions: added missing initialisation of
G4LossTableManager parameters together with parameters of
concrete processes (fixed initialisation when an option is defined
before phyics list construct processes).
- Xrays
- G4Cerenkov: changed inheritance to G4VDiscreteProcess,
and changed the arguments of
G4Cerenkov::GetAverageNumberOfPhotons().
Added warning in G4Cerenkov constructor.
- G4VXTRenergyLoss: general cleanup of old comments;
removed all static members; protect verbosity within flag.
- G4XTRTransparentRegRadModel, G4XTRRegularRadModel,
G4StrawTubeXTRadiator: cleanup; protect verbosity within flag.
Error Propagation
- G4ErrorFreeTrajState: corrected bug in one of the transformation
matrix terms. Addresses problem report
#971.
- G4ErrorFreeTrajParam: corrected normalization of Y and Z
coordinates.
- G4ErrorPropagator: removed call to exit() and some cleanup.
Event
- Added class member particle_momentum and method
SetParticleMomentum().
- Added UI commands /gun/momentum and /gun/momentumAmp.
- Added private copy constructor and =, ==, += operators to
G4ParticleGun. Addressing problem report
#984.
- Modified G4SPSEneDistribution to adress problem report
#988.
General Processes
- Biasing
- Fix in G4ProcessPlacer to put biasing process at the second
place for AlongStep as well as for PostStep.
A bug fix which would feature for charged particles.
- Added printout for AlongStep process vector.
- Decay
- Added G4PionDecayMakeSpin class: set the daughter muon spin
for 2-body decays of pi, K and K0_long.
- Added method DaughterPolarization() in G4Decay
to set polarization vector for daughters.
- Management
- Added method SetProcessOrderingToSecond() to
G4ProcessManager, which puts the process at the second
position in the DoIt list.
- Added method CheckOrderingParameters() to
G4ProcessManager, in order to check whether given ordering
parameters are set for valid DoIts.
- Added methods to G4VProcess to indicate that the specified
DoIt is valid for the process.
- G4WrapperProcess: fixed double definition of method
PreparePhysicsTable() in the header and moved inline
implementations of virtual methods to source file.
- Optical
- Added capability of calculating the reflectivity off a metal surface
by way of a complex index of refraction.
- In G4OpWLS, allow for the MeanNumberOfPhotons to be
different from 1, in case the constant property
WLSMEANNUMBERPHOTONS is provided and, if so,
NumPhotons is sampled with Poisson.
- Parameterisation
- Added Along methods to G4FastSimulationManagerProcess.
- Minor corrections to G4FastSimulationManagerProcess: added
call to G4PathFinder::PrepareNewTrack(); deactivated ghost
navigator in EndOfTracking() method.
- Transportation
- G4Transportation:
- Modified behaviour of G4Navigator
for small straight steps - when a track does less than the safety.
Before only a simple, quick estimation of the starting point's safety was done, using the
last available value of the isotropic safety (from the Navigator).
Now the navigator is called to compute this safety. This improves the value
and avoids roundoff issues. It gives better stability in comparisons with
CoupledTransportation. The costs are additional calls to the Navigator.
A new method EnableShortStepOptimisation controls this.
Note: this only affects neutral particles and charged particles when no field is present.
- Fixed StartTracking() to reset number of looping steps
and to clear propagator state ( issue with caching of safety, which is multi-valued in case of
overlaps, is now addressed.)
- Change to enable a user to switch on a global field (off was already
possible), when a track goes between volume (or regions) of a setup. Was response
to requirement of ATLAS. Done by moving the call to ConfigureForTrack()
before the check for zero field, in AlongStepGPIL().
- G4CoupledTransportation:
- Fix for problem in condition for relocation. It was incorrect when only a
parallel geometry limited the step.
- Changed condition for recalculation of the safety used, to improve stability to roundoff.
- Corrected treatment of time integration.
- Fix to reset looping counter also when no field or charge is present.
- Fix for case of zero proposed step: missed to set end position.
Geometry
- Biasing
- Modified Weight-Window algorithm: do not introduce extra variance in
the case of splitting to the survival weight when the weight is above
the upper weight window.
- Magnetic field
- New class G4EqEMFieldWithSpin to allow tracking of spin also
in case of electromagnetic fields.
- Management
- Fixed typo in forcing minimum number of points in method
G4VSolid::EstimateSurfaceArea(). Addresses problem report
#981.
- Navigation
- Introduced new specific navigation for regular structures and
phantoms. New classes: G4RegularNavigation,
G4PhantomParameterisation.
- G4PathFinder:
- Make singleton definition canonical.
- New method to return the safety sphere last calculated for a
PreStep point. If last step(s) were smaller than safety,
then for a linear track (no field or no charge) navigator's
ComputeSafety() is not called. Older PreStep
point is stored for this and provided.
- Fixed return value for ComputeStep() in case of step
smaller than tolerance (now kInfinity).
- Added calculation of start-point safety in
DoNextCurvedStep() and corrected GetCurrentSafety()
accordingly.
- Added method to obtain safety of one navigator (after call to all).
- Deleted obsolete data member fMinSafety.
- Optimisation: if only one geometry, do not call WhichLimited()
in DoNextLinearStep(). DoNextLinearStep() also
only calls ComputeStep() for a navigator whose safety
greater than the step; if there's one geometry, no longer calls
ComputeSafety() at start.
- ComputeSafety(): save the values of isotropic safety for
each navigator.
- Fix for result of ObtainSafety(), used in
G4CoupledTransportation.
- Some code cleanup. Switched off additional optimisation for safety
in method DoNextLinearStep().
- PrepareNewTrack() clears safety to avoid potential
problems in overlaps. Added calls to re-initialise
SafetyHelper (reset safety).
- Fix to now set fNoGeometriesLimiting in
DoNextLinearStep() in the case of one navigator
optimisation.
- Added new methods GetNumberGeometriesLimitingStep()
and GetMinimumStep() needed by
G4CoupledTransportation to see whether to relocate.
- Fix for problem of another process shortening steps (between calls
to ComputeStep() by different processes in same step).
- Check to verify that fNoGeometriesLimiting is set by
DoNext*Step methods. Revised data type of
fNoGeometriesLimiting to be a int, so that less
than 0 means unset.
- G4Navigator:
- Corrected calculation of fStepEndPoint in
ComputeStep() for case of step not limited by geometry.
- Replaced call to LocateGlobalPointWithinVolume() with
calls to sub-navigators.
- Made fVerbose protected.
- G4PropagatorInField:
- Fixes for compilation of code under G4DEBUG_FIELD (problem report
#982).
- Added extra check of method LocateIntersectionPoint()
arguments.
- Protected verbosity with compiler flags in G4PathFinder
and G4MultiNavigator.
- Set fRecomputeFactor in G4SafetyHelper to zero, to
switch off internal optimisation and allow for reproducibility of
steps when using different transportation classes.
- Added method CheckPointExiting() in
G4AuxiliaryNavServices utility class.
- Reuse fVerbose from G4Navigator in
G4MultipleNavigator and some cleanup.
- G4SafetyHelper: Improved ComputeSafety() not to
call G4Navigator if exactly on safety 'center'.
- Fix in G4ReplicaNavigation::DistanceToOut() for exact
classification of the linear step for Cartesian case.
- Made IdentifyAndPlaceSolid() method inlined in
G4ParameterisedNavigation.
- Cleared compilation warnings for shadowing of variables in classes
within the module. Minor cosmetics and cleanup.
- Solids (Boolean)
- Boosted performance for response of Inside() for
G4SubtractionSolid and G4UnionSolid according to
suggestion in problem report
#979.
- Solids (CSG)
- G4Torus:
- Fixed bug in CalculateExtent() for case of non-rotated
full-Phi torus definition: added protection against
negative value for sqrt() and corrected formula for
delta. Fixes problem of NaN detected in initialisation
by CMS.
- Fixed bug in SolveNumericJT(): corrected handling of
complex roots, rootsrefined is used only if the number
of refined roots is the same as for primary roots. Addresses
problem report
#969.
- Fixed problem of undefined side for valid surface normal in case of
Phi section and direction through the center of either a
G4Tubs or G4Cons shape.
- Solids (Specific)
- New specific shape G4Paraboloid with cuts along the
Z axis.
- Revision of G4TessellatedSolid classes:
- Fixed problem report
#931
for proper handling of concave surfaces.
Modified classes G4TessellatedSolid and
G4TriangularFacet.
- Modified data and accessor centroid and
GetCentroid() for G4VFacet;
replaced by circumcentre and GetCircumcentre()
respectively.
- Reviewed implementation of CalculateExtent() to
make it more robust and precise. Addresses problem report
#983.
- Added utility class G4TessellatedGeometryAlgorithms.
- Removed debug printout in G4Polycone::GetPointOnCone().
- Added formulas for calculating SemiAxis and Zheight
in G4EllipticalCone.
- Volumes
- Added explicit initialisation of first volume entry to zero, to ensure
correct behavior for out-of-world touchable handle.
- Minor cleanup in G4LogicalBorderSurface and
G4LogicalSkinSurface classes.
- Added inline specification to methods in G4AssemblyTriplet
class.
Global
- Cleared compilation warnings for non-inlining and shadowing of variables.
Removed unnecessary virtual specifier to G4String
destructor.
- Changed date for release 9.1.
Graphical Representations
- Added G4Paraboloid to HepPolyhedron and
G4Polyhedron.
Hadronic Processes
- Cross sections
- Added log(0) protection in
G4NeutronInelasticCrossSection and
G4ProtonInelasticCrossSection.
- Management
- G4HadronicProcess::FillTotalResult(): fix addressing problem report
#967, replaced call to aT.GetGlobalTime() with the
internal variable time.
- Binary Cascade
- Developments for propagate interface.
- Correcting bug for pion incident at low energy causing crash in Precompound
- G4BinaryLightIon: adapted to changes in Binary Cascade.
- Cascade
- Fixed angular distribution for nucleon-nucleon elastic scattering
above 2.8 GeV.
- Chiral Invariant Phase Space (CHIPS)
- Bug fix in quasi-elastic, which may influence the shower shape, it
should be now a bit shorter and wider when using QGSC/QGSP physics
lists.
- Introducing Single Target Diffraction.
- R&D level implementation of ion-ion elastic and low-energy inelastic.
- Added (e,nu) reaction to G4QCollision and weight
support in all CHIPS processes.
- Corrected neutral currents normalization for neutrino-nuclear
interactions.
- Chain of bug-fixes in G4Quasmon, G4QEnvironment, G4QNucl*
classes.
- More accurate decay transition from G4QEnvironment to
G4QNucleus.
- Improvement in G4QNucleus class to boost CPU speed.
- De-excitation
- Removed atomic mass number from "gamma factor" for
G4DeuteronEvaporationProbability,
G4TritonEvaporationProbability,
G4He3EvaporationProbability and
G4AlphaEvaporationProbability.
- Introduced missing Rj (Q_beta) factor in the evaporation
module. Protected against occasionally divide by zero.
- Corrected the Coulomb-barrier to the formalism of Dostrovski as
described in the Physics Reference manual.
- Fix in photon evaporation to address problem report
#952.
- Suppressed gamma-level file warnings in G4NuclearLevelManager.
- Elastic scattering
- G4DiffuseElastic: added Coulomb elastic scattering amplitude
using Wentzel model. Do initialisation of the model for each new
target nucleus on-fly; the model is initialised in constructor with
particle definition for the vector of available elements. Tuning at
high energies. Added control on verbosity at initialisation.
- Updated G4ElasticHadrNucleusHE: included difference in
scattering off protons and neutrons; optimised computation of the
distribution function (important for heavy targets); fixed model for
scattering off hydrogen; tuned model parameters for better description
of total and elastic cross sections.
- G4LEnp: removed erroneous code for identity exchange of
particles.
- G4UHadronElasticProcess: introduced verbosity checks within
VERBOSE flag inside methods called at each step.
- High Energy
- G4HEInelastic::TuningOfHighEnergyCascading(): fixed incorrect
assignment of leading particle to low energy backward nucleons and
fragments. This bug caused high energy backward particles to be
emitted from high energy collisions.
- G4HEPionMinusInelastic: fixed incorrect Imax in
sampling of charge exchange.
- High precision Neutron
- Allow for _nat_ final state even for isotoped cross sections.
- Enabled element based cross-section dump.
- Fixed bug in G4NeutronHPChannel for treatment of Z
in elements.
- Im_r_matrix
- Incorporated changes for G4CollisionComposite.
- In G4ParticleTypeConverter, removed warning on unknown
particle; occurs for eta_prime, k_star+, anti_... etc. in
BIC propagate interface.
- INCL/ABLA
- First version of the Liege cascade INCL Model, including ABLA
evaporation and fission.
Requires new external data set (G4ABLA3.0) including files for
nuclear shell effects, with new environment variable G4ABLADATA
to be set to point to the directory where the data are stored.
- Pre-equilibrium
- New developments to reflect the literature and units expected for the
exciton model: introducing an Rj factor into the probability
calculation; correcting the units for the Pauli Blocking Factor
(missing a g factor); decreasing the number of charged particles if
the number excitons is decreased (previously this number was only
increased with increasing excitons).
- New development with respect to light ion production.
- Correction for integer arithmetic bug in G4PreCompoundModel
and concerning the ratio of charged to neutral excitons.
- QMD Reaction
- First implementation of QMD reaction model based on JQMD
(Niita et al., JAERI-Data/Code 99-042).
- Re-Parameterized Gheisha
- First version of a 'Re-Parameterized Gheisha-style' model. This
version is essentially a re-factored copy of the low energy
parameterized model which also contains several bug fixes and
physics improvements.
- Theoretical High Energy
- Added channel for projectile diffractive scattering.
- Stopping
- G4StopElementSelector: fixed typo in Primakoff formula for
capture velocity.
- G4MuonMinusCaptureAtRest: fixed old memory leak.
- Removed old-style copyright from all headers and fixed Software
Reference Manual tags.
- Utils
- Removed initialization by random number of angular momentum vector
from G4Fragment constructors which could cause change of
random sequence after physics initialisation.
- Use production version of G4Fancy3DNucleus.
- G4LightMedia: fixed coding errors in inequalities for
charge exchange occurrence in PionPlusExchange,
KaonZeroShortExchange, and NeutronExchange.
Interfaces
- G4UItcsh: added ability to store shell history across sessions.
- Updated the implementation of the signal handler for Ctrl-C.
- New classes G4UIQt and G4Qt for handling of Qt interface
(Beta version with support restricted to Qt-4).
- Removed improper dependency from basic sub-module to run.
Materials
- G4NistManager: extended interfaces to build new materials; added
G4State, temperature, pressure (gases are allowed) with default
values. Simplified logic of Print() methods. Providing destruction of all
materials and elements.
- G4NistElementBuilder: for given Z, build only one Nist element
and allow user to create other elements with given Z (HP physics
requirement).
- G4NistMaterialBuilder: modified FindOrBuildMaterial()
method: NIST materials are now built even if user creates a material with
the same name, therefore NIST materials parameters -cannot- be
substituted.
- G4Material, G4Element: extended destructors, now all materials
and elements are deleted at the end of a run.
- G4SandiaTable: separated computations of tables photo-absobtion
coefficients for photo-electric effect and PAI model;
general cleanup and reduced number of static variables.
Fixed memory leak at destruction.
- G4IonisParamMat: added commutation and accessor methods for
parameters of ion ionisation: Fermi energy, effective Z, effective
L-factor; values will not be recomputed at each step.
Particles
- Added G4HyperNucleiProperties class so that hyper-nuclei can be
created for G4Ions. G4ParticleTable can return a pointer
to hyper-nucleus by using GetIon() and FindIon() methods.
- Modified G4PDGCodeChecker to support PDG code for hyper-nuclei.
- Changed G4ParticleTable::GetIonTable() to give 'non-const' pointer
in order to allow users to use G4IonTable::GetIon() methods
directly.
- Added check for atomic number (less than 1000) in G4IonTable.
- Added new classes G4PionRadiativeDecayChannel and
G4MuonRadiativeDecayChannelWithSpin.
Persistency
- Introduced new gdml plugin sub-module, based on new GDML
release 3.
Added G4LIB_BUILD_GDML/G4LIB_USE_GDML flags and
XERCESCROOT path. The new GDML plugin does not yet support
parameterised volumes and material optical properties.
- Moved existing classes to mctruth sub-module;
renamed libraries.
Physics lists
- New physics lists QGSP_DIF and QGSP_BERT_DIF; as QGSP or QGSP_BERT with projectile diffraction
for proton and neutron enabled.
- New physics list QGSC_BERT; use QGSC down in energy to overlap with BERT. LEP is not
used for proton, neutron, pions, kaons, except for neutron capture and
neutron induced fission.
- New physics list FTFP_BERT: FTFP with Bertini cascade.The energy ranges of FTFP and BERT
overlap, so LEP is not used for proton, neutron, pions, kaons, except for neutron capture and
neutron induced fission.
- New physics list QGS_BIC, equivalent to QGSP_BIC, but using binary also for
pion and for rescattering via the propagate interface; the deexcitation
implicitely uses precompound.
- Several fixes in QBBC: fixed bug in adding of cross section for pions
and mesons; tuned energy thresholds between string and cascade models;
corrected interface to CHIPS model; reviewed options: QBBC, QBBC_DEL,
QBBC_HEL, QBBC_HP.
- New physics list FTF_BIC, equivalent to QGS_BIC but using FTF model for high
energy interactions. For protons, neutrons and pions LEP is not used,
as BIC is used up to 5 GeV, thus overlapping with FTF starting at 4 GeV.
- Added possibility to activate G4SynchrotronRadiation and mu-nuclear
betwen runs.
- Change QGSP builders to enable use of projectile diffraction in QGSP-like lists.
- Added optional builder G4RadioactiveDecayPhysics.
- Added G4HadronDElasticPhysics builder and fixed name to
G4HadronHElasticPhysics.
- G4EmStandardPhysics_option2: increased number of bins in tables.
- G4LEPNeutronBuilder: when the limit for MaxInelastic
is zero, do NOT add LEP for inelastic. Change needed for FTFP_BERT list.
Run
- Added ability to handle G4ScoringManager in G4RunManager.
- First implementation of interactive parallel world scoring.
- Introducing new /random/setSeeds command allowing to set initial
seeds.
- Now /random/setDirectoryName command creates directories if needed.
- Reordered commands in G4RunMessenger so that obsolete commands
appear last. Obsolete UI commands now do nothing except warning messages.
Track & Tracking
- Added accessors for non-ionizing energy deposit in G4Step.
- Added protection in G4Track::GetVolume() to avoid cases of
dereferencing of null pointer.
- G4SteppingManager: fix to use Cartesian tolerance in
Stepping() and CalculateSafety() for the computation
of endPointSafety.
Visualization
- Management
- Replaced references to Wired3 in command guidance.
- Minor improvements in messaging.
- Modeling
- Minor improvements in messaging.
- HepRep
- Adjusted geometry hierarchy for parallel worlds.
- OpenGL
- Removed redundant G4OpenGLXViewerMessenger class.
- Minor improvements in design and messaging.
- Added GEANT4_QT_DEBUG flag to test Qt interfaces.
- OpenInventor
- Initialise local vectors in SoPolyhedron implementation; fixing
compilation warnings on gcc-4.2.2.
Environments
- Python interface (G4Py): added support for embedded GDML plugin.
Updated physics-lists bindings.
Data sets
- New data for neutron cross-sections, G4NDL.3.12:
- Changed Cadium data. Added Hg, Radium, Br and La data.
- New low-energy data set, G4EMLOW.5.1:
- Added dna/directory including Geant4-DNA data tables for interpolation.
- New data set for nuclear shell effects, G4ABLA3.0.
Examples
- Updated reference outputs.
- advanced
- air_shower
- Adjust to the G4Cerenkov process now become a
G4VDiscreteProcess.
- hadrontherapy
- Updated physics commands in macro files. Updated README.
- underground_physics
- Corrected micrometer unit in macros from mum to um (old bug
since 8.2).
- Rich
- Adjust to the G4Cerenkov process now become a
G4VDiscreteProcess.
- extended
- electromagnetic/TestEm1
- Added material CO2 at 10^-6 atm.
- HistoManager/HistoMessenger: printing selected histos
on ascii file.
- electromagnetic/TestEm2
- PhysicsLists: added options from physics_lists library.
- TestEm2.in update to provide the same reference output
as before.
- electromagnetic/TestEm3
- Updated TestEm3.in macro.
- Added PhysListEmStandardIG experimental PhysList.
- HistoManager/HistoMessenger: printing selected histos
on ascii file.
- electromagnetic/TestEm5
- New histogram numbering (see README). Changed all macros
accordingly, also in Geant3 version.
- Reordered processes in PhysListEmStandardSS.
- Added histos 17->20: energy fluence.
- Fixed usage of elastic builders.
- RunAction: compute and print energy leakage and energy balance.
- PhysListEmStandard: PhysicsTables set with 100 bins per decade (EmOptions).
- Added PhysListEmStandardIG experimental PhysList.
- TrackingAction: new histos (4,5) to plot vertex position
of secondaries.
- HistoManager/HistoMessenger: printing selected histos
on ascii file.
- electromagnetic/TestEm7
- PhysListStandardSS: reviewed process ordering.
- Added PhysListStandardIG, ion G4ionIonisation
process is substituted by G4ionGasIonisation and for
Coulomb scattering the model taking into account the recoil is
used.
- Added class G4ScreenNuclearRecoil and ancillary utilities
for ion-ion scattering provided by Vanderbuilt University.
- PhysListStandardSS: use G4ionGasIonisation.
- PhysListStandardIG: use G4ScreenNuclearRecoil.
- Fixed usage of elastic builders.
- electromagnetic/TestEm8
- Use components of physics lists from physics_list module.
- Fixed memory leak in the UI interface.
- Removed used lines from PAI physics constructors, added pai_brem
constructor PhysListEmPAI in which AlongStep from
Bremsstrahlung is allowed.
- Fixed logic in SteppingAction.
- electromagnetic/TestEm9
- Added PhysListEmStandardIG experimental physics list.
- electromagnetic/TestEm11
- Added histo 8: energy profile as function of x/range.
- Added input macro sandia.mac.
- HistoManager/HistoMessenger: printing selected histos
on ascii file.
- electromagnetic/TestEm12
- HistoManager: modified way to get csdaRange from
G4EmCalculator and compute stepMax for histo 8.
- HistoManager/HistoMessenger: printing selected histos
on ascii file.
- electromagnetic/TestEm14
- electromagnetic/TestEm15
- HistoManager/HistoMessenger: printing selected histos
on ascii file.
- electromagnetic/TestEm18
- PhysicsList: added more EmOptions.
- HistoManager/HistoMessenger: printing selected histos
on ascii file.
- exoticphysics/monopole
- New example demostrating simulation of a classical magnetic
monopole and computation of the energy deposited.
- field/field04
- New example showing how to define/use overlapping field elements.
Fields might be either magnetic, electric or both
(contributed by T.Roberts and Muons Inc., G4BEAMLINE).
- gdml
- Updated to co-work with built-in GDML plugin module GDML-3.
- Showing loading of modular GDML files.
- hadronic/Hadr01
- Physics list updated according to recent changes in hadronics and
physics_lists package. Added QGSC_BERT physics list.
- medical/DICOM
- Deep review: on the input files and the way how the geometry is
built. Now using new specialised fast navigation and parameterisation
according to G4PhantomParameterisation.
- Added color by voxel and possibility to also use
nested-parameterisations.
- medical/fanoCavity
- DetectorConstruction: wallRadius automatically
recomputed; added materials graphite and aluminium.
- PhysicsList: implemented G4CoulombScattering
process as option; use 100 bins per decade (emOptions)
in physics tables.
- MyKleinNishina: do not cancel Compton cross-section in
cavity.
- EventAction: added histogram of energy deposit in cavity
per incident gamma.
- RunAction: compute error on energy deposit and mean
kinetic energy.
- HistoManager/HistoMessenger: printing selected histos
on ascii file.
- Syntax correction in DetectorMessenger.
- medical/fanoCavity2
- New example demonstrating computation of the dose deposited in an
ionization chamber by an extended (one dimensional) monoenergetic
electron source, making use of a reciprocity theorem.
- parallel/MPI
- New module including a Geant4 MPI UI library and a couple of
examples showing how applications can be parallelized with
different MPI compliant libraries, such as LAM/MPI, MPICH2,
OpenMPI, etc.
- persistency/P02
- New example showing how to store in a binary file and read back
the geometry tree using the 'reflection' technique for
persistency.
- polarisation/Pol01
- Use new polarized photo electric effect, important for polarisation
transfer from photon to electron in certain regions of the
phasespace (see also E166 experiment).
- optical/LXe
- Adjust to the G4Cerenkov process now become a
G4VDiscreteProcess.
- radioactivedecay/exrdm
- Use decay and radiactive decay builders from physics_lists
module.
- Added elastic, stopping, ion and extraEm physics.
- Minor fix to low-energy EM physics builder.
- runAndEvent/RE03
- New example demonstrating how to use UI-command based scoring.
It creates a parallel world for defining scoring mesh(es).
novice
- N02
- Explicitely delete allocated parameterisation and step-limit
objects in ExN02DetectorConstruction class.
- N03
- Added option to activate Qt rendering.
- N05
- Modified physics list to take into account usage of Along
method in G4FastSimulationManagerProcess.
- N06
- Adjust to the G4Cerenkov process now become a
G4VDiscreteProcess.