Geant4 8.0 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
- Known Run-Time Problems
- Compilation Warnings
- Known Run-Time Warnings
- Items for migration of the 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 on 32 bits architectures (Intel)
    and 64 bits architectures (AMD) with the Scientific Linux CERN 3
    (SLC3) distribution (based on RedHat Linux Enterprise 3).
    Versions of Geant4 have also been compiled successfully on other
    Linux distributions, like Debian, Suse or other RedHat systems.
- 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.4.4, gcc-4.0.2
- Linux, Intel-icc 8.0
- MacOS 10.4, gcc-4.0
- Windows/XP and CygWin Tools with: Visual C++ 8.0 (Visual Studio 2005)
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 8.0 requires the installation of
CLHEP.
Tests have been performed with CLHEP-1.9.2.2
The software has been verified also with CLHEP-2.0.2.2.
 
Geant4 8.0 examples with histogramming cowork with AIDA 3.2.1
implementations. These include:
AIDA headers can be downloaded from:
http://aida.freehep.org
 
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:
- 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.
- 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 1.9.2.2 of CLHEP or 2.0.2.2.
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:
- G4VIS_BUILD_RAYTRACERX_DRIVER, G4VIS_USE_RAYTRACERX:
    allowing installation and usage of a new optional RayTracer
    module based on X11 graphics and allowing for interactive ray-tracing
    visualization.
 
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):
 
Configuration
- Configure script:
  
  - Added new RAYTRACERX driver to setup.
 
- Added G4VIS_BUILD_RAYTRACERX_DRIVER and
    G4VIS_USE_RAYTRACERX control flags.
- Added workaround to binmake.gmk to allow for physics-lists to
    link with DLLs on Windows. Added new options to WIN32-VC setup for
    porting on VC++8 compiler.
Digitization & Hits
- Introduced new G4VPrimitiveScorer and G4VSDFilter
    base classes, G4THitsMap template class,
    G4MultiFunctionalDetector class and several concrete scorer
    and filter classes. These enhancements make ease for scoring
    applications in particular in medical and space fields, such as 
    dose or energy-deposition scoring. 
- Added a new sub-directory "utils" for new concrete primitive scorers
    and concrete filters. Introduced G4THitsMap template class.
Electromagnetic Processes (Low-energy)
- Fixes in atomic relaxation and G4hLowEnergyIonistation.
- Implemented migration to <sstream> from deprecated
    <strstream>.
Electromagnetic Processes (Standard)
- Standard
    
    - G4MultipleScattering:
        
        - General update: stepping algorithm has been modified; this
            affects most results; the algorithm is now much less cut
            dependent and provides more precise energy in sampling
            calorimeters with normal cuts about 1 mm. By default the
            the process now limits the step (step limitation on), with
            facrange = 0.02.
- New function MscStepLimitatiion(bool,double) to
            allow for switching the step limitation algorithm and change
            the facrange factor.
 
- G4MscModel:
        
        - Updated version: now taking into account theta-phi
            correlation in the final state.
- Nuclear size correction is removed; it is now included in the
            tabulated cross section values for Tkin > 10 MeV.
 
- G4MultipleScattering71, G4mscModel71: new classes
        corresponding to the old frozen version of the multiple-scattering
        algorithms included in release 7.1.p01.
        Default facrange = 0.2.
- G4UniversalFluctuation:
        
        - Cut dependence of the energy-loss distribution has been reduced.
- Introduced correction for very small loss to avoid zero energy
            loss.
 
- G4eBremsstrahlungModel: now taking into account electron
        recoil into in the final state. Important for hard bremssrahlung
        emission.
- G4BraggIonModel: not using G4Alpha.
- G4PEEffectModel, G4BetheHeilterModel, G4eplusAnnihilation:
        final energy of incident particle is set to zero in PostStep.
- G4GammaConversion52, G4BetheHeitlerModel: replaced usage
        of RandBit() by G4UniformRand() to correct cases
        of event irreproducibility.
- G4PAIModel, G4PAIPhotonModel: changes for support of
        CLHEP 2.0.X series.
 
- Muons
    
    - G4MuPairProductionModel: added protection needed for
        sampling of pair energy in the case of low cuts.
 
- HighEnergy
    
    - G4BraggNoDeltaModel, G4BetheBlochNoDeltaModel:
        magnetic change is removed, models are assumed to be used only for 
        very heavy electrically charged particles.
- G4hhIonisation: new class for simulation of very heavy
        electrically charged particles (ATLAS request).
- G4eeToHadrons: fixed verbosity; fixed initialisation.
- G4eeToHadronsModel: fixed verbosity.
- Minor cleanup: removed inline constructors and destructors.
 
- Utils
    
    - G4EmCorrection: fix on calculation of effective charge and
        Mott correction for ion energies about 10 MeV.
        Relevant for heavy ions like Pb.
- G4EmProcessOptions: fixed verbosity definition for energy
        loss processes (LHCb request).
- G4EmCalculator: fixed problem in ComputeDEDX()
        for ions.
- G4VMultipleScattering:
        
        - Introduced mechanism of step limitation for multiple scattering.
            Added public method SetMscStepLimitation(bool) to allow
            for switching on/off the new mechanism, which may affect both CPU
            performance and quality of results.
- Fix in a protection in GetContinuousStepLimit().
 
- G4VEnergyLossProcess:
        
        - New default parameters: Integral=true;
            SetStepFunction(0.2,1mm), lambdaFactor=0.8.
            Fixes also problem report #780 connected with d-electron
            production tmax < cut.
- Updated subcutoff regime; G4VSubCutoffProcessor is not
            used any longer.
 
- G4VEmModel:
        
        - Fixed default energy range from 0.1*keV to
            100*TeV to make easier initialisation of PAI models.
- Removed inlined constructors and destructors.
 
- G4VEmModelManager: added protection for arithmetic operations
        with cut=DBL_MAX.
- G4VEmProcess: using integral mode only for charged particles;
        default lambdaFactor=0.8.
 
- Xrays
    
    - G4XTRRegularRadModel, G4XTRGammaRadModel,
        G4XTRTransparentRegRadModel: new models for simulation of
        transition radiation, they are using the interface
        G4VXTRenergyLoss::fExitFlux=true for the description of
        XTR at the exit of the radiator.
- XTR process is now transformed to be discrete.
 
Event
- Removed dependency on HepMC, moved G4HepMC classes to extended examples.
- Issue exception from constructors of G4UserEventAction and
    G4UserStackingAction to protect against their instantiation
    before G4VUserPhysicsList is instantiated and set to the
    run-manager.
- Put protection against null pointer in
    G4ParticleGun::SetParticleDefinition().
- Modified GNUmakefile to follow intercoms->graphics_reps migration
    for G4VGraphicsScene and G4VVisManager classes.
General Processes: Management, Cuts, Parameterisation
- Implemented migration to <sstream> from deprecated
    <strstream>.
- Management
    
    - G4VProcess::StartTracking() now takes G4Track*
        as an argument. G4ProcessManager::StartTracking() now
        invokes this new method. Functionality to be used for future
        developments.
 
- Cuts
    
    - Implemented migration to new scheme considering G4Region
        as envelope for fast-parameterisation.
 
- Parameterisation
    
    - Implemented migration to new scheme considering G4Region
        as envelope for fast-parameterisation. Corrected setting of envelope
        volumes and solid in G4FastTrack.
- Migrated from old scheme for G4Exception and some
        cosmetics.
 
Geometry
- Implemented changes for support of CLHEP-2.0.X.
- Added fake default constructor for all concrete volumes, solids, base
    classes and relevant utility classes for handling of direct object
    persistency.
- Merged concept of "envelope" to G4Region for
    fast-parameterisation.
- Implemented migration to <sstream> from deprecated
    <strstream>.
- Divisions
    
    - Protected case of generic construct for G4Polyhedra and
        G4Polycone currently NOT supported for divisions.
 
- Management
    
    - Added virtual method GetPointOnSurface() to G4VSolid
        to be implemented in the concrete solids classed for returning a
        random-point uniformly distributed on the surface. Added concrete
        implementation to G4ReflectedSolid.
- Added new pure virtual methods to identify regular structures in
        physical-volume: IsRegularStructure() (returns true
        if the underlying volume structure is regular) and
        GetRegularStructureId() (Returns non-zero code in case the
        underlying volume structure is regular, voxel-like). If non-zero the
        volume is a candidate for specialised navigation such as 'nearest
        neighbour' directly on volumes).
- Revised G4VPVParameterisation: changed signature of
        ComputeMaterial(), adding parent touchable pointer;
        this refinement enables easy use of nested parameterisations.
        Additional methods allow for nested parameterisation to be identified
        (IsNested()) and to provide their material via new interface
        class G4VVolumeMaterialScanner (GetMaterialScanner()).
 
- Navigation
    
    - Added ability to use nested parameterisations to parameterised
        navigation.
 
- Solids
    
    - Added concrete implementation for GetPointOnSurface() to
        relevant solids. The method returns a random point according to a
        quasi-uniform distribution along the surface.
- CSG:
        
        - Fixed bug in G4Torus::Inside(p) for phi
            sections. Fixes problem report #810.
 
- Specific:
        
        - Introduced new solid G4EllipticalCone, a full cone with
            elliptical base that can be cut in Z.
- Introduced new solid G4Tet implementing a tetrahedra
            defined by 4 points in space.
- Introduced new solid G4Ellipsoid with possible cut in
            Z
- G4Polyhedra, G4Polycone: protected case of
            generic construct for visualization. Introduced explicit flag and
            method IsGeneric() to identify the kind of constructor
            used.
- Renamed baseline classes for twisted solids. Added polyhedron
            definition for G4TwistedTrap, G4TwistedTrd,
            G4TwistedBox and G4TwistedTubs for
            visualization.
            Fixed bug in G4VTwistSurface::ComputeLocalPoint(p) for
            point coordinate transformation.
 
 
- Volumes
    
    - Introduced first implementation for optional check of overlaps at
        construction to G4PVPlacement and G4PVParameterised
        volumes. Default resolution of 1000 points is defined for the check.
        The check is disabled by default.
- Introduced method CheckOverlaps(p) for placements and
        parameterised volumes. The resolution for the check can be specified
        providing the number of points wished to be generated.
- Added G4VNestedParameterisation class with ability to use
        parent information to compute/change material.
- Added methods to identify regular structures in physical-volume
        derived classes (replicas, parameterised-volumes, placements).
    
 
Global
- Added Surface/Mass unit (cm2/g) in G4UnitsTable.
- Added G4Version header, including definitions for software
    versioning.
- Get rid of hard-coded numbers for DBL_MIN, FLT_MIN, DBL_DIG,
    DBL_MAX, FLT_DIG, FLT_MAX/MAXFLOAT. Use numeric_limits
    from <limits> instead in templates.hh.
- Revised G4strstreambuf for migration to <sstream>
    from deprecated <strstream>.
- Introduced changes for support of CLHEP-2.0.X series:
    
    - Introduced explicit usage of CLHEP:: and HepGeom::
        namespaces for vector and geometry types.
- Added wrapper headers for units and constants to allow for usage in
        the global namespace. NOTE: units and constants are currently NOT moved
        to the CLHEP namespace.
 
- Removed #undef __DEPRECATED statement in G4Types.hh for
    <sstream> deprecation by the gcc compiler.
    Added forward declaration for __void__ type to be used for
    definition of fake default constructors for usage of direct object
    persistency.
Graphical Representations
- Added polyhedron descriptions for new G4Ellipsoid and
    G4EllipticalCone shapes.
- Source code cleanup: removed redundant intermediate class
    G4VVisPrim and redundant virtual assignment operators.
- Added time to set of allowed attributes in G4AttValues.
- Moved G4VGraphicsScene and G4VVisManager from intercoms
    module; replaced default arguments G4Transform3D::Identity by
    G4Transform3D() to avoid initialisation problems with static
    objects with dynamic libraries.
- Fixed dispatch method name to DispatchToModel() in
    G4VVisManager.
- G4Colour now has a G4String->G4Colour colour map
    and static data members for common colours.
- Implemented migration to <sstream> from deprecated
    <strstream>.
- Implemented changes to support CLHEP-2.0.X series, adding explicit
    namespace to CLHEP types in HepPolyhedron and
    BooleanProcessor.
Materials
- G4NistMaterialBuilder: added chemical formulas for number of
    materials, added temperature and pressure explicitly for each material;
    it will allow to have other than STP parameters for gases.
- Added fake default constructor for isotopes, elements, materials and
    relevant related classes, for usage of direct object persistency of
    detector description.
- Added default boolean argument for warning in methods
    GetMaterial(), GetElement(), GetIsotope().
Hadronic Processes
- Implemented migration to <sstream> from deprecated
    <strstream>.
- Implemented changes to support CLHEP-2.0.X series.
- models/coherent_elastic:
    
    - G4ElasticHadrNucleusHE: added high energy elastic scattering
        on protons.
- G4HadronValues: use PDG value instead of static particle
        pointers.
- Fixed memory leaks, fixed 4-momentum balance.
        Fixed compiler warnings.
 
- models/cascade:
    
    - Added G4ElasticCascadeInterface and modified
        G4CascadeInterface to allow for elastic scattering
        of p, n, pi+, pi-, gamma using the Bertini cascade model.
 
- models/chiral_invariant_phase_space:
    
    - The Charged Currents (nu,mu) neutrino-nuclear reactions are
        now implemented for all energies. The recommended energy is below 320
        GeV, where the model is compared with data. Above 320
        GeV it is just a formal extrapolation. Both Quasi Elastic and
        Inelastic interactions are implemented. In future the developed
        non-perturbative CHIPS method can be used for simulation of
        (nu,e) reactions.
- New capture process G4QCaptureAtRest valid for pi-,
        K-, anti-proton, mu-, tau-, Xi-, Omega-, neutron, anti-neutron,
        anti-Sigma+.
- Muon neutrino and anti-neutrino scattering added to
        G4QCollision process.
- New cross section classes: G4QANuMuNuclearCrossSection and
        G4QNuMuNuclearCrossSection.
- Memory leak fix for nuclear mass management in G4QPDGCode
        to use Geant4 masses of nuclear fragments.
 
- models/low_energy:
    
    - G4LElasticB:
        
        - Copy of G4LElastic process with modified relativistic
            kinematics. Addresses problem report #534.
 Added protection for low momentum (<10 MeV/c)
            particles where CM sampling of cos(theta) is not valid.
 
- G4LCapture: fixed incorrect unit in momentum components.
        Addresses preblem report #726.
 
- models/neutron_hp:
    
    - Added four new models: G4NeutronHPorLCapture,
        G4NeutronHPorLEInelastic, G4NeutronHPorLElastic, 
        G4NeutronHPorLFission.
 These models should be used instead of the corresponding 
        G4NeutronHPCapture, G4NeutronHPInelastic,
        G4NeutronHPElastic or G4NeutronHPFission models
        when a detector setup contains elements or isotopes not found in the
        G4NDL data set. The new models use the existing high precision models
        when data exist, but switch to the Low Energy Parameterized models
        when data is absent, thus avoiding a crash.
 
- models/parton_string:
    
    - Fixed bug in G4ExcitedStringDecay for method
        EnergyAndMomentumCorrector(): removed comparisons of
        4-ector quantities with integers, replaced with comparisons of
        doubles.
- Corrected and simplified code for random number generation in
        G4QGSMSplitableHadron, avoiding unnecessary crashes.
 
- models/radioactive_decay:
    
    - Replaced usage of NULL with 0.
 
Parameterisation Models
- Archived old TRD parameterised models. Functionality now included
    in standard EM processes.
- gflash:
    
    - Design iteration. Added concrete sampling shower parameterisation
        and tuning classes.
- Corrected typo to name GFlashHomoShowerParamterisation,
        to become GFlashHomoShowerParameterisation. Replaced
        affected files.
- Fixed usage of random numbers to allow for event
        reproducibility. Code cleanup for Software Reference Manual.
- Implemented migration to new scheme for considering G4Region
        as envelope for fast-parameterisation.
 
Particles
- Introduced new scheme for non-static particle definitions.
- Implemented migration to <sstream> from deprecated
    <strstream>.
Run, Intercoms and Interfaces
- Implemented migration to <sstream> from deprecated
    <strstream>.
- Intercoms:
    
    - Moved G4VGraphicsScene and G4VVisManager to
        graphics_reps module.
 
- Run:
    
    - Implemented migration to new scheme considering G4Region
        as envelope for fast-parameterisation.
- Invoke exception in constructors of G4VUserPrimaryGeneratorAction
        and G4UserRunAction to protect against their instantiation
        before G4VUserPhysicsList is instantiated and set to
        the run-manager.
- Removed redundant invokation of ConstructParticle() from
        G4RunManagerKernel::InitializePhysics().
        All particles must be instantiated in ConstructParticle()
        method in the physics list along with the introduction of non-static
        particle definition scheme.
- Use G4Version.hh for version and date in
        G4RunManagerKernel constructor.
- Added necessary changes for support of CLHEP-2.0.X series.
 
Track and Tracking
- Implemented migration to <sstream> from deprecated
    <strstream>.
- Track
    
    - Fix in G4Track::GetVelocity(). Use the material pointer in
        the PreStepPoint.
- Modified G4ParticleChangeForGamma to update the step for
        the 'PostStep' in any case.
 
- Tracking
    
    - Issue exception in constructors of G4UsertrackingAction
        and G4UserSteppingActio to protect against their instantiation
        before G4VUserPhysicsList is instantiated and set to the
        run-manager.
- Modifications to G4VTrajectory::DrawTrajectory() for
        enhanced trajectory drawing.
- Added new development classes G4RichTrajectory and
        G4RichTrajectoryPoint.
 
Visualization
- Implemented migration to <sstream> from deprecated
    <strstream>.
- management
    
    - Added enhanced trajectory drawing to let interactively change
        how trajectories are modeled. Initial options are
        /vis/modeling/trajectories/create/drawByCharge and
        /vis/modeling/trajectories/create/drawByParticleID, with
        additional commands to set specific colors.
        Coming in the next release will be drawByMomentum,
        drawByOriginLogicalVolume, etc.
        There is also a mechanism to let define a user's own drawBy
        class and then invoke it from the command line. More information can
        be found in the User Guide for Application Developers.
- Added /vis/viewer/rebuild comand to force visit of kernel.
- Removed MyVisManager (was deprecated in previous major
        release).
- Initial window size can now be set from /vis/open and
        /vis/viewer/create (RayTracer, OpenGL and OpenInventor).
- Background colour can now be set by /vis/viewer/set/background
        (RayTracer, OpenGL and OpenInventor).
- Non-uniform scaling is now supported, /vis/viewer/scale
        (and scaleTo). Like zoom (and zoomTo) but
        provides different scale factors along different axes (OpenGL and
        OpenInventor).
- Comand /tracking/storeTrajectory 1 is now issued
        automatically when doing /vis/scene/add/trajectories.
- Attempt to add volume to a scene already containing the world now
        gives now a warning.
- Introduced optional second pass over run-duration models in
        G4VSceneHandler::ProcessScene().
 
- modeling
    
    - Added enhanced trajectory drawing
        (see notes in management section above).
- Fixed (non-)culling of transparent volumes.
- Implemented radial replicas for G4Tubs.
 
- OpenGL
    
    - Initial window size can now be set from /vis/open and
        /vis/viewer/create.
- Background colour can now be set by
        /vis/viewer/set/background.
- Non-uniform scaling is now supported
        (see notes in management section above).
- Added G4OpenGLViewerDataStore to facilitate access of viewer
        data by scene handler.
- Re-implemented transparency button in OpenGLXm.
- Fixed treatment of triangular polygons for drawing of auxiliary
        edges (also known as soft lines).
- Fixed bug in which stored transparent objects were being lost.
- Introduced rendering of transparent polyhedron objects.
- Introduced smooth shading. Also window size hints for Xm.
- Added G4OpenGLXmViewerMessenger. Corrected text position.
 
- OpenInventor
    
    - Initial window size can now be set from /vis/open and
        /vis/viewer/create.
- Background colour can now be set by
        /vis/viewer/set/background.
- Non-uniform scaling is now supported
        (see notes in management section above).
- Allowing to read a g4view.iv file at creating of a view.
        If found, the scene graph in g4view.iv is added at head of
        the overall scene graph. Permits easy out of band customization of
        the scene without having to touch the code.
- Corrected treatment of edgeflags.
 
- RayTracer
    
    - Introduced RayTracerX driver. Builds same jpeg file as RayTracer,
        but simultaneously renders to screen interactively.
- Initial window size can now be set from /vis/open
        and /vis/viewer/create.
- Background colour can now be set by
        /vis/viewer/set/background.
 
- Tree
    
    - Refined guidance and printing.
 
- XXX
    
    - Improved guidance for rendering polyhedron objects.
 
Physics lists
- Implemented migration of physics lists to non static particles scheme.
    Hadronic lists upgraded to Package 5.0.
- Added verbosity level as argument for the physics lists (default is
    with verbosity on).
- Defined hadron-ionisation and multiple-scattering to the same list of
    hadrons as in version 7.1.
- Do not allow installation of shared libraries when Geant4 granular
    libraries are installed and used.
G3toG4 Tool
- Implemented migration to <sstream> from deprecated
    <strstream>.
Examples
- Updated reference outputs.
- Implemented migration to <sstream> from deprecated
    <strstream>.
- Implemented changes for support of CLHEP-2.0.X series.
- advanced
    
    - brachytherapy
        
        - Fixed bug in the RunAction. The results of the simulation
            (energy deposit, position) are stored in a hit collection.
 
- composite_calorimeter
        
        - Updated hadronic physics list (commented QGSP_Model)
 
- cosmicray_charging
        
        - Updated hadronic physics setup.
 
- gammaray_telescope
        
        - Introduced GammaRayParticles and updated hadronic
            physics setup.
 
- hadrontherapy
        
        - Updated initialisation of particles and input macros
 
- medical_linac
        
        - Added new methods to messengers for the selection of
            detector features.
- Updated input macro for visualization and code cleanup.
 
- radioprotection
        
        - Added Eta and EtaPrime particles and introduced ions.
- Introduced usage of general particle source and updated macros.
 
- Tiara
        
        - Removed obsolete G4VisManager reference..
- Migrated to non-static particles and to CLHEP namespace.
- Updated configuration scripts.
 
- underground_physic
        
        - Migrated to non-static particles and hadronic constructor
            required for G4Decay.
- Removed step limitation from multiple-scattering.
 
- xray_fluorescence
        
        - Fixed compilation problem with UIXm and allow for
            running in batch-mode.
 
- xray_telescope
        
        - Allow compilation without analysis and batch mode, abilitated
            ASCII output also without usage of AIDA.
- Updated obsolete GPS commands and code cleanup.
 
 
- extended
    
    - analysis/AnaEx01
        
        - Made .aida as the default file format.
- Updated README, analyis/Lab/AnaEx01.py to work with
            OpenScientist-v14r0.
- Made application easily instrumentable with G4Lab::UIOnX.
 
- biasing/B01 & B02
        
        - Tidied up code for correct deletion at the end of run in main().
            Addresses problem report #802.
 
- electromagnetic/TestEm1
        
        - Created PhysListEmG4v71 (g4v71) for G4MultipleScattering71.
 
- electromagnetic/TestEm2
        
        - Created PhysListEmG4v71 (g4v71) for G4MultipleScattering71.
 
- electromagnetic/TestEm3
        
        - Created PhysListEmG4v71 (g4v71) for G4MultipleScattering71.
- Corrected bug in lateral leakage calculation (stepping action).
- Introduced TrackingAction for energy flow initialization.
- Modified energy flow calculation in geant3 exercise.
 
- electromagnetic/TestEm5
        
        - Created PhysListEmG4v71 (g4v71) for G4MultipleScattering71.
- Fixed initialisation of non-static hadrons according to new
            particle definition scheme.
 
- electromagnetic/TestEm6
        
        - Added GenericIon to the PhysicsList.
- Extended test to mu+mu- and pi+pi- pair creation
            processes and G4hhIonisation in order to test all involved
            processes.
 
- electromagnetic/TestEm7
        
        - Created PhysListEmG4v71 (g4v71) for G4MultipleScattering71.
- Fixed initialisation of non-static hadrons according to new
            particle definition scheme.
 
- electromagnetic/TestEm9
        
        - Added new command /testem/phys/mscStepLimit.
- Fixed initialisation of non-static hadrons according to new
            particle definition scheme.
 
- electromagnetic/TestEm10
        
        - Production cuts are moved to Physics list providing
            independent gamma, electron and positron cuts in radiator
            and detector regions.
 
- electromagnetic/TestEm11
        
        - Created PhysListEmG4v71 (g4v71) for G4MultipleScattering71.
 
- electromagnetic/TestEm12
        
        - New example illustrating how to use the concept of 'process' in
            order to implement a constraint on the step size of the particle
            trajectories.
 
- field/field02
        
        - Removed cluster models from detector construction.
 
- field/field03
        
        - Removed cluster models from detector construction.
 
- medical/DICOM
        
        - Updated interface to parameterisation and documentation.
 
- medical/GammaTherapy
        
- paralled
        
        - Synchronised examples according to evolution of kernel libaries.
 
- parameterisations/gflash
        
        - New example showing usage of gflash fast shower parameterisation.
 
- runAndEvent/RE02
        
        - New example demonstrating full functionality of new
            filter and scoring classes.
 
- visualization
        
        - New examples for UserVisAction and standalone demo.
 
 
- novice
    
    - N03
        
        - Modified physics list.
- Quietened vis manager in batch mode.
 
- N05
        
        - Implemented migration to new scheme considering G4Region
            as envelope.
- Use RandGamma from CLHEP end removed custom RandomGamma
            function.
 
- N07
        
        - Fully revised to use new filter and scoring classes.