Geant4 6.2 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
- AIDA and CLHEP
- Compiler Specific Problems
- Known Run-Time Problems
- Compilation Warnings
- Known Run-Time Warnings
- Major items for migration of user code
- Detailed list of changes and fixes
1. Supported and Tested Platforms
Official platforms:
- SUN Solaris 5.8, C++ CC-5.4 Patch 111715-02.
- Linux, gcc 3.2.3.
This configuration was tested with the RedHat 7.3 distribution,
versions of Geant4 have also been compiled successfully on other
Linux distributions, like Debian, Suse or more recent RedHat systems.
The default RedHat compiler gcc-2.96 distributed in RedHat 7.X is NOT
supported. It has been verified that it produces incorrect binaries,
therefore is not reliable. See also note below.
- Windows/XP and CygWin Tools with: Visual C++ 7.1 .NET
More verified configurations:
- SUN Solaris 5.8, C++ CC-5.5.
- Linux, gcc 3.3.3.
- Linux, Intel-icc 8.0.
- MacOS 10.3, gcc-3.3
More verified configurations, which we plan to stop supporting
in releases or patches after November 2004:
- Linux, gcc 2.95.2.
- Windows/2000 and CygWin Tools, Visual C++ 6.0 Service Pack 5
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. AIDA and CLHEP
Geant4 6.2 requires the installation
of CLHEP.
Tests have been performed with CLHEP-1.8.1.0
Geant4 6.2 examples with histogramming cowork with AIDA 3.2.1
implementations. These include:
AIDA headers can be downloaded from:
http://aida.freehep.org
3. Compiler Specific Problems
- Linux Red Hat 7.X, gcc-2.96.
- The default compiler distributed by Red Hat since release 7.0 is
NOT supported and not considered reliable for running a Geant4-based
application. In more than one test case, binaries produced by gcc-2.96
have shown incorrect behavior, either due to wrong order of
initialisation of static data in memory or to bugs in the system
iostream classes, problems which apparently have all been
solved in more recent versions of the compiler (3.X series).
For information, gcc-2.96 is a compiler that has never been
officially released, nor supported by the GNU team itself and is not
considered reliable by the authors (for more information, see also
http://gcc.gnu.org/gcc-2.96.html).
4. 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.
5. Compilation Warnings
There may be compilation warnings on some platforms. We do not believe
that any will lead to incorrect run-time behaviour.
6. Known Run-Time Warnings
The following message can be written to error output while tracking.
We believe it does not give rise to incorrect behaviour.
G4PropagateInField: Warning: Particle is looping
- tracking in field will be stopped.
It has performed 1000 steps in Field while a maximum of 1000
are allowed.
7. Major items for migration of user code
There're not known migrations necessary if upgrading from release 6.1,
other than recompilation and/or reinstallation of libraries and user
applications.
Future migration for G4VParticleChange class
For the future releases, an interface change to the class
G4VParticleChange is foreseen. The required changes are already
implemented in this release while still keeping valid the old interface.
The following methods will be removed in the future:
void SetTrueStepLength(G4double truePathLength);
void SetLocalEnergyDeposit(G4double anEnergyPart);
G4TrackStatus GetStatusChange() const;
void SetStatusChange(G4TrackStatus status);
void SetSteppingControl(G4SteppingControl StepControlFlag);
void SetParentWeight(G4double);
They will have to be replaced by the following methods, respectively:
void ProposeTrueStepLength(G4double truePathLength);
void ProposeLocalEnergyDeposit(G4double anEnergyPart);
G4TrackStatus GetTrackStatus() const;
void ProposeTrackStatus(G4TrackStatus status);
void ProposeSteppingControl(G4SteppingControl StepControlFlag);
void ProposeParentWeight(G4double);
Future migration for G4GeneralParticleSource class
A 'tree-structured' command format is implemented in this release for
G4GeneralParticleSource. The old UI commands have been kept
for backward compatibility but will be removed in the future.
For more information, please consult:
http://reat.space.qinetiq.com/gps.
8. Detailed list of changes and fixes
These are the main new features/fixes included in this release since the
last patched public release (for the detailed list of fixes/additions,
please refer to the related History files provided in most packages):
Configuration
- Configure script:
- Added support for global DLL libraries on Windows systems.
- Added new data-set for elastic-scattering data.
- source/GNUmakefile:
- Revised order of module installation according to dependencies.
- New dll target for building of DLLs global libraries
on Windows systems.
- Linux-g++.gmk:
- Made -O2 optimisation the default.
- Included (deactivated by default) Pentium4 chip specific options
for using chips-specific floating-point arithmetics based on the
SSE unit.
- WIN32-VC7.gmk:
- Added setup for WIN32-VC7 for building of DLLs.
- Darwin-g++.gmk:
- Corrected options to build shared libraries (.dyn); use
twolevel_namespace and GLOBLIBS for shared-libs build on MacOS.
Shared-libs build are possible only global libraries.
- Corrected options to retrieve Motif.
- architecture.gmk:
- Added check for definition of LDFLAGS. Fixes bug report #603.
- Revisited Inventor default. Removed HEPVis dependencies
(Inventor visualization driver no longer needs these).
- binmake.gmk:
- Activated shared-libs mechanism for Windows platforms; forced creation
of static library for examples/applications for the usage with DLLs.
- Fixed problem for WIN32 such that also LDLIBS (including EXTRALIBS)
will be mangled to replace -L by its WIN32 corresponding libpath.
- Added include paths to new hadronic models.
- Restored global library for 'interfaces' module which was missing from
the linking list.
- common.gmk, globlib.gmk:
- Fixed clean/clean_libs target.
Digitization & Hits
- G4SDManager, G4SDStructure: added optional argument
warning to FindSensitiveDetector(pathName, warning),
defaulted to true, to eventually exclude warning issued by
G4SDManager when sensitive detector is not found.
Event
- Design iteration of the G4GeneralParticleSource class:
- New classes have been added.
See http://reat.space.qinetiq.com/gps
for more details of the changes.
- New formula for converting integral spectrum to differential one.
- G4EventManager:
- Added access methods to G4TrackingManager and
G4StackManager.
- Fixed incorrect behaviour of event abortion requested by
BeginOfEventAction().
Electromagnetic Processes (Low-energy)
- First iteration towards new models for photoelectric angular distribution:
design iteration and re-implementation of non-polarized Sauter-Gavrila
distribution (K-shell approximation).
- New model for PIXE.
- Bug fix for Barkas effect.
- Bug fix in energy loss concerning positrons handled by Penelope.
Electromagnetic Processes (Standard)
- G4VEnergyLoss and related classes:
- Corrected error in retrieving dE/dx from tables
(it affected proton around 1 MeV).
- Fixed a problem in retrieving physics tables from files.
- Fixed a problem of energy below lowestKinEnergy (simulation of
energy loss of low energy particles in low density gases).
- Improved sampling in integral method for cross sections with peaks.
- Added new methods to define simulation options to
G4EmProcessOptions.
- Revised printout format in G4VEnergyLossProcess.
- Energy-loss fluctuations:
- Reduced area of applicability of the model for simulation of
fluctuations at very small steps to provide less step dependent
results in solid absorbers.
- Smoothed out sampling of Gaussian fluctuations, when sigma is much
bigger than energy loss.
The purpose of both changes is to provide results that are less dependent
on step size. For example, for steps down to 0.1 microns (in solid materials)
the energy deposition distribution in a thin absorber is not dependent on the
step limit.
- Ionization for muons, hadrons, ions:
- Set the integral method to be the default (it already was for electrons).
The step remains limited to 20% of the current range, as in Geant4 5.2.
- Multiple Scattering:
- Changes in G4MscModel: t->z and z->t
transformations (true length to geometrical length and back) have
been rewritten. The purpose is to reduce the step-size dependence of
results, which was mainly connected with simulation of multiple
scattering of low energy particles. It will affect the resolution
of sampling calorimeters.
- Change in the angular distribution for e+/e-: correction
to the Highland formula for the central part of the distribution.
- Multiple Scattering for ions:
- Use dynamic charge for simulation of multiple scattering angle.
- Fix to avoid crash in case of use of G4hLowEnergyIonisation
for ions together with multiple-scattering.
- Muon Pair Production:
- Minor fix in differential cross section: use total energy instead
of kinetic energy.
- Fixed minor energy non-conservation (electron mass).
- Fixed problem of calculation of maximum energy transfer to an
atom of compound materials.
- PAI ionisation:
- Introduced new model G4PAIPhotonModel, PAI model that splits
the cross-section into electron and photon parts.
- Removed limitations on cut values in both PAI models.
- Use precise integrator for initialisation of PAI models.
General Processes, Parameterisation, Cuts, Decay, Optical
- Cuts:
- Enabled the user to retrieve from a file tables with materials and
couples which are in a different order to that in memory.
Modified G4ProductionCutsTable::RetrieveCutsTable() to enable this.
- G4ProductionCuts: moved usage of statics in inline functions
to non-inline for porting to DLLs on Windows.
- Decay:
- Use new interface methods of G4VParticleChange.
- Management:
- Fixed bug in G4ProcessManager::RemoveProcess() for the case
when the process to be removed is inactive.
- Optical:
- Fixes in G4OpBoundaryProcess for default class member
assignments in DoIt() method.
- Added protection against NULL pointers in G4OpRayleigh process.
Do not overwrite Rayleigh scattering length for 'Water' material if it
has been specified by the user through a call to
AddProperty("RAYLEIGH"...).
Geometry
- Divisions
- Added support for reflection of divided volumes:
added concrete istance of division-factory G4PVDivisionFactory
for the creation of volume divisions on demand.
- Management
- Imported G4ReflectedSolid class from solids/Boolean.
- Added abstract factory G4VPVDivisionFactory defining interfaces
for the creation of volumes divisions.
- Navigation
- Added more verbosity on solids response for navigators (optimised/not
optimised) if "check_mode" state is combined with verbose level-1.
- Added check to G4Navigator to count the number of steps with
zero length and issue an exception aborting the event for tracks that
get stuck in a loop. A corrective action is attempted after 10
consecutive zero steps; the exception is thrown after 25 consecutive
zero steps.
- Solids
- Boolean solids:
- Moved G4ReflectedSolid class to management module.
- Moved G4ReflectionFactory class to volumes module.
- Moved unit test for reflection to volumes module.
- Specific solids:
- First implementation of a framework for twisted surfaces:
includes a new specific twisted shape: G4TwistedTubs.
New classes: G4VSurface, G4TwistedSurface,
G4HyperbolicSurface, G4FlatSurface,
G4TwistedTubs.
- Volumes
- G4LogicalBorderSurface, G4LogicalSkinSurface: added
CleanSurfaceTable() static methods for the clearing of the
surface tables in case of dynamic geometries.
- Imported G4ReflectionFactory from module solids/Boolean.
- Enhanced G4ReflectionFactory to support reflection of divided
volumes: added Divide(...) set of methods.
- Adopt DLLIMPORT/EXPORT technique to handle extern simbols for
allowing support of DLLs on Windows.
Global
- G4Allocator: added utility methods for explicitely deallocate
storage and print total allocated pages size:
ResetStorage(), GetAllocatedSize().
- HEPNumerics: fixed bug in G4DataInterpolation::PolynomInterpolation()
for indexing in a for-loop.
- Added support for building DLLs on Windows: added macros for importing
symbols and migrated G4ios and G4strstreambuf.
Graphical Representations
- Implemented constructor and destructor for G4AttDefStore, to
properly delete objects in the static map, allocated through explicit
calls to GetInstance(). Made G4AttDefStore a singleton.
Materials
- G4SandiaTable: added new methods for sorting algorithm
in PAI model.
- Added new utility method ConstPropertyExists(const char * key)
returning true/false according to the existance of the
'key' in the table G4MaterialPropertiesTable.
Hadronic Processes
- New packages and models:
- Ablation: model for evaporation (used in conjunction with
the abrasion code).
- Abrasion: package for ion reactions.
- EM dissociation.
- Coherent_elastic: new model for high energy elastic scattering,
requiring a new provided data set for elasting scattering data.
- cross_sections:
- Removed discontinuities in pion scattering data.
- Fix in high energy p-H cross-sections (G3 legacy bug).
- management:
- Optionally killing of primaries, steerable from use code.
- Bug fix for cross-section biasing.
- Added protection to hadronic processes against illegal track
status.
- util:
- Added a fuzzy initializer class.
- Added a Besselfunction class.
- Fixed two rare bugs seen by LHCb in G4HadFinalState that
lead to an exception.
- models/binary_cascade:
- Some performance optimizations.
- Corrected rotation in inverse kinematics for light ion
reaction code.
- Added some protections fixing problems reported in bug-reports
#574 and #593.
- Bug fix related to bug report #607.
- models/cascade:
- models/chiral_invariant_phase_space:
- Fixed ppK+ "antistrange below mass shell" problem in
G4QEnvironment.
- Minor bug fixes in G4QEnvironment in (Sigma-)2n final state.
- Fixed rare problem of decay in Del+Del+ with pi0 when
pi- was found.
- Minor bug fix in final multibaryon spit (3n->n+n+n).
- models/de_excitation/fermi-break-up:
- Bug fix in the splitting probabilities.
- Adding destruction of configurations.
- models/de_excitation/photon-evaporation:
- Slight optimisation of E1 probabilities.
- models/high_energy:
- Re-added class-descriptions.
- models/im_r_matrix:
- Some optimizations in G4Scatterer.
- models/management:
- Protections for rounding issues.
- Enabling user overload of some methods.
- models/neutron_hp:
- Some code clean-up.
- Now suitable for DLL usage.
- models/pre_equilibrium:
- Dixed updating of charged/neutral excited particles.
- models/util:
- Optimized initialization for G4Fancy3DNucleus.
- Fix in decay routines for decays involving broad resonances
in the final state.
Particles
- Adopt DLLIMPORT/EXPORT technique to handle extern simbols for DLLs.
Modified granular GNUmakefiles and rearranged usage of extern
symbols in classes in management module.
Run, Intercoms and Interfaces
- Intercoms:
- Introduced static methods in G4UIcommand class for conversion
between a string and a value. Some implementation of derived classes
are modified accordingly. Introduced utility methods
ConvertToStringWithBestUnit() and
ConvertToStringWithDefaultUnit() for command classes taking a
unit parameter.
- Interfaces:
- G4[UI]Win32: implemented changes to allow usage of
standard C main (and avoid WinMain). Moved usage of inline methods
to non-inline for DLLs support on Windows.
- Run:
- G4RunManagerKernel: added access methods to
G4TrackingManager and G4StackManager.
- Adopt DLLIMPORT/EXPORT technique to handle extern simbols for DLLs.
Modified GNUmakefile and rearranged usage of extern symbols in
G4Run.
Track and Tracking
- Track
- G4VParticleChange: added new methods ProposeXXX() (and
corresponding GetXXX() methods) as replacement for old
SetXXXChange() and GetXXXChange(), now obsolete.
- G4ParticleChangeForLoss: fixed minor energy non-conservation
problem in case of more than 1 processes changing the energy.
Fixed initialization of ParentWeight.
- Adopt DLLIMPORT/EXPORT technique to handle extern simbols for DLLs.
Modified GNUmakefile and rearranged usage of extern symbols in
G4Track.
- Tracking
- Adopt DLLIMPORT/EXPORT technique to handle extern simbols for
DLLs. Modified GNUmakefile and rearranged usage of extern
symbols in classes.
Visualization
- HepRep
- Renamed zlib prefix from z_ to heprep_z_.
Added symbol z_errmsg to list for renaming to avoid conflicts
with other programs who contain a copy of zlib.
- Added attributes for Region and root-Region to both HepRep drivers.
- Added ability to separately write geometry files.
- Bug fix: copied new interfaces for HepRep, which uses fewer pointers.
- Added initial viewpoint settings and a command to set the coordinate
system.
- OpenGL
- Added G4OpenGL.hh wrapper file and adapted code to encapsulate
inclusion of GL/gl.h and GL/glu.h that may be platform
dependent. Cleared WIN32 ifdefs no longer necessary.
- OpenInventor
- Added copy of the few necessary HEPVis code. HEPVis module dependency
is now no more needed.
- Ported code to run on Windows systems.
- Split Viewer to have G4OpenInventorXtViewer and
G4OpenInventorWinViewer.
- Split G4OpenInventor to have G4OpenInventorXt and
G4OpenInventorWin: Xt and Win to follow the conventions found
in the OpenInventor environment.
- RayTracer
- Adopt DLLIMPORT/EXPORT technique to handle extern simbols for
allowing support of DLLs on Windows.
- VRML
- Fixed typo in printout in G4VRML[1/2]FileSceneHandler.
Data sets
- New data set for elastic-scattering data at high-energies
(above 1-GeV) for the coherent_elastic hadronic model.
Electromagnetic physics-lists
- New module with samples of physics list for standard electromagnetic
physics.
Environments
- MOMO: new version of MOMO.jar archive including a bug-fix to GPE.
G3toG4 Tool
- Removed hardwired gSeparator constant (a character which is
used during generation of volume names) to '_'. Now gSeparator
is made non constant and so can be changed in case a user wants to use
'_' in his code.
- G4gsrotm: commented warning about left-handled coordinates for
rotation axes.
Examples
- Updated reference outputs.
- advanced
- Implemented migration to AIDA 3.2.1
- composite_calorimeter
- Changed use of the ntuple. Mechanism simplified and the ntuple
is always correctly filled.
- cosmicray_charging
- New example illustrating an application aimed at simulating the
electrostatic charging of isolated test masses in the LISA mission
by galactic cosmic ray protons and helium nuclei.
- hadrontherapy
- New example illustrating an application simulating an hadron
therapy beam line for medical physics.
- medical_linac
- New example simulating energy deposit in a Phantom filled with
water for a typical linac used for intensity modulated radiation
therapy. The experimental set-up is very similar to one used in
clinical practice.
- purging_magnet
- New example illustrating an application that simulates electrons
traveling through a 3D magnetic field; used in a medical
environment for simulating a strong purging magnet in a treatment
head.
- radioprotection
- New example illustrating an application to evaluate the dose in
astronauts, in vehicle concepts and Moon surface habitat
configurations, in a defined interplanetary space radiation
environment.
- extended
- Implemented migration to AIDA 3.2.1
- analysis
- A01
- Updated mac files for HepRep2 driver to set zoom factor
and coordinate system and write separate geometry.
- electromagnetic
- TestEm1:
- PhysicsLists: removed Particles and General.
- EmPhysicsList: set G4eBremsstrahlungCMS as default.
- TestEm2
- Updated PhysicsList: use concept of builders per package.
- Added acceptance control.
- Added histogram name and type UI commands (AIDA, ROOT, JAS,
and other output types are available).
- TestEm3
- Introduction of the class HistoManager.
- Possibility to have multi-runs histogram files.
- PhysicsLists: removed Particles and General.
- New macro dedx.max to quickly check dE/dx
calculation.
- Added acceptance check activated by UI command.
- TestEm5
- Modified HistoManager and its messenger in order to allow
for multi-run jobs.
- PhysicsLists: added HadronElastic, BinaryCascade,
IonBinaryCascade. Removed Particles, General.
- New macro dedx.mac.
- Modified histo 7: projected position at exit.
- TestEm7
- PhysicsLists: removed Particles and General.
- TestEm8
- Updated test of PAI model.
- TestEm9
- Removed Clean of G4RegionStore, instead delete
regions one by one.
- Added acceptance printout.
- Added histclean target to GNUmakefile.
- MuonProcesses
- New example intended to check implementation of the processes
of muon interactions: ionization, direct (e+,e-) production,
bremsstrahlung, mu-nuclear interaction.
It allows to compute differential cross sections (as function
of the energy transfered to secondaries), total cross sections
and to compare with analytic calculations.
- PhotonProcesses
- New test devoted to the photon processes: gamma conversion,
coherent and incoherent scattering, photoelectric effect.
It allows to compute absorption coefficients and to plot
- optical
- New example LXe demonstrating the use of optical processes
in a multi-purpose detector setup.
- parallel
- New example ExDiane showing parallelisation of the
'brachytherapy' example using the DIANE framework
(see http://cern.ch/diane).
- Bug fix in ParRunManager for ParN02 and ParN04 TOP-C examples.
- novice
- N02
- Removed UI vis commands from run-action.
- Code cleanup in physics-list.
- Corrected definition of XenonGas in detector-contruction.
- N03
- Use G4UI_USE_WIN32 to have a default Windows GUI coworking
with the OpenGL Windows driver on Windows.
- New macro exN03Vis9.mac, demo of the OpenGL Windows
driver. Update to the gui.mac menu items.
- Code cleanup in physics-list.
- N06
- Change e+ energy in primary-generator to 500 keV.
- Removed UI vis commands from run-action.