Geant4 8.0 Release Notes
December 16th, 2005

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.


  1. Supported and Tested Platforms
  2. AIDA and CLHEP
  3. Known Run-Time Problems
  4. Compilation Warnings
  5. Known Run-Time Warnings
  6. Items for migration of the user code
  7. Detailed list of changes and fixes

1. Supported and Tested Platforms

Official platforms: More verified configurations: Platforms configured but not tested and not supported:


Geant4 8.0 requires the installation of CLHEP.
Tests have been performed with CLHEP-
The software has been verified also with CLHEP-

Geant4 8.0 examples with histogramming cowork with AIDA 3.2.1 implementations. These include: AIDA headers can be downloaded from:

3. 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.

4. Compilation Warnings

There may be compilation warnings on some platforms. We do not believe that any will lead to incorrect run-time behaviour.

5. 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. 

6. Items for migration of the user code

Some migrations may be necessary for advanced uses of features in Geant4 in order to upgrade from release 7.1 to release 8.0. Note that a full reinstallation of libraries (or a full recompilation) and a recompilation of user applications is required.

Creating and instantiating physics lists : impact of the revised, "non-static", particle definitions

In this release, all particle-definition objects are instantiated dynamically when the method ConstructParticle() of the user's G4VUserPhysicsList is called. This method is invoked when the user's physics list is assigned to the G4RunManager (whereas previously it was called at the time of G4RunManager::Initialize()). The new scheme allows the user to set a number physics quantities to alternative values (e.g. masses of elementary particles) before particles are instantiated with the values provided by Geant4. This new scheme creates some restrictions which can affect on the existing users's codes, in particular when user-defined physics lists are used:
  1. Physics processes and models must be instantiated in the ConstructProcess() method of the user's physics list.
    In particular physics processes or models must not be data members of a physics list. The reason is that some existing physics processes and models require that particles have been instantiated already. If a process is a data member of the physics list, it is instantiated when the physics list's constructor is called, and thus before the invocation of ConstructParticle().
    The "educated-guess" physics lists distributed with previous Geant4 releases are affected by this change. The revised physics lists, which are distributed with this release, should be used in their place. A user adopting his/her own physics list, will need to perform a similar revision in case a G4Exception with the following message occurs when the physics list is instantiated:
    Error message:
          Access to G4ParticleTable for finding a particle or equivalent operation 
          occurs before G4VUserPhysicsList is instantiated and assigned to 
          G4RunManager. Such access is prohibited by Geant4 version 8.0. 
          To fix this problem, please make sure that your main() instantiates 
          G4VUserPhysicsList and set it to G4RunManager before instantiating 
          other user classes such as G4VUserPrimaryParticleGeneratorAction.
    Fix: All physics processes and models defined as data members of the physics list must be moved to the ConstructProcess() method, and must be explicitly instantiated by new operator. The revised physics lists provide a reference for this revision.
  2. User action classes (derived from G4VUserPrimaryGeneratorAction, G4UserRunAction, G4UserEventAction, G4UserStackingAction, G4UserTrackingAction and G4UserSteppingAction) must be instantiated after the physics list is instantiated and after it is set to G4RunManager. Please note that the user's detector construction class is a user initialization class and thus is not affected by this restriction.
    The user should revise the main() function if the following G4Exception occurs:
    Error message (for G4VUserPrimaryGeneratorAction):
          You are instantiating G4VUserPrimaryGeneratorAction BEFORE your 
          G4VUserPhysicsList is instantiated and assigned to G4RunManager. 
          Such an instantiation is prohibited by Geant4 version 8.0. To fix this 
          problem, please make sure that your main() instantiates G4VUserPhysicsList 
          AND set it to G4RunManager before instantiating other user action classes 
          such as G4VUserPrimaryParticleGeneratorAction.
    Fix: Edit main() to make sure all user action classes are instantiated after the physics list is set to G4RunManager.

G4VProcess base class

A signature change is implemented in the G4VProcess base class.
The virtual method StartTracking() defined in G4VProcess now takes const G4Track* as argument in its signature. Users implementing their own physics process and making use of this virtual method, will have to modify the signature accordingly.

Multiple Scattering electromagnetic process

In the electromagnetic standard package major changes have been introduced concerning the Multiple Scattering process. To improve the behaviour of low energy particles (electrons in particular, but affecting also hadrons), the Multiple Scattering now limits the step size for the particles. This restriction is undertaken using several criteria, and is applied systematically, in all volumes and materials. In addition a model of the correlation between lateral displacement and final direction has been implemented (see the Physics Reference Manual for further information).
As a result, most physical observables become more stable when varying production cuts (i.e. less "cut dependent"). There is a corresponding cost, a CPU-time penalty, when utilising the same value of the production thresholds. This penalty can be significant, depending on the user's setup and the cut values. For many use cases the increased stability will allow the choice of higher production thresholds, recovering computing performance while maintaining physics performance.
To enable the user to investigate its benefits, a mechanism is provided to deactivate this step limitation. The new method MscStepLimitation(bool) of G4MultipleScattering disables these new step limitations. In addition, in order to help the transition, the old version is available for this release 'frozen' in the class G4MultipleScattering71. Several examples (in extended/electromagnetic) provide sample physics lists which use this older version.

Geometry modeler

For setups including parameterised geometries by material, an interface extension is introduced in G4VPVParameterisation base class for the ComputeMaterial() method. An optional argument has been added, that provides a constant pointer to the touchable of the parent of the current volume, enabling access to its copy number and other properties, and those of all its ancestor volumes. User code making use of this feature will have to be updated accordingly. A compilation warning should flag to take into account this interface change.

Internal classes implementing the framework for twisted solids have been renamed. User code depending on this framework will have to be modified accordingly.

Fast parameterisation

The concept of "envelope" and "ghost-volume" for fast-parameterisation has been merged with the G4Region in this release. Therefore, a logical-volume no longer acts directly as an "envelope", since this attribute now assigned to G4Region. Please refer to the User Guide for Application Developers for the detailed information. The relevant modules have migrated accordingly. See exampleN05 which has been revised to demonstrate this new mechanism.

A design iteration has taken place for the GFlash fast shower parameterisation model and some classes were renamed to follow the new implementation and design for envelopes. User code making use of the GFlash tool should migrate accordingly.

TRD models for cluster parameterisation have been retired. The functionality is now provided directly as physics processes and included in the electromagnetic packages.

Migration to <sstream> from deprecated <strstream>

<strstream> types are no longer in use by the Geant4 kernel in this release. Also any protection from compilation warnings by the compiler for deprecation of such header are no longer implicitely included. User code therefore will be exposed to implement such migration to <sstream>, if not already done.

System of Units and Physical Constants

Geant4 8.0 can be used either with version of CLHEP or Explicit usage of the CLHEP and HepGeom namespaces is made in the Geant4 code. However, for what concerns Units and Physical Constants, these are still kept available in the global namespace for convenience and backward-compatibility.

New Installation flags

New installation flags have been introduced:

7. 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):


Digitization & Hits

Electromagnetic Processes (Low-energy)

Electromagnetic Processes (Standard)


General Processes: Management, Cuts, Parameterisation



Graphical Representations


Hadronic Processes

Parameterisation Models


Run, Intercoms and Interfaces

Track and Tracking


Physics lists

G3toG4 Tool