Geant4 9.6 Release Notes
The code and binary libraries for the supported systems are available
through our Source
Code Web page.
We are grateful for the efforts of Geant4 users who have provided
   detailed feedback or comprehensive reports of issues.
   We thank in particular those who have contributed corrections,
   improvements or developments included in this release. 
Please refer to the
Geant4
User Documentation for further information about using Geant4.
Contents
- Supported and Tested Platforms
- Supported CLHEP version
- Items for migration of the user code
- New Developments and Capabilities
- Expected effects on physics and performance
- Known Run-Time Problems and Limitations
- Compilation Warnings
- Geant4 Software License
- Detailed list of changes and fixes
 
1. Supported and Tested Platforms
Officially tested platforms:
- Linux, gcc-4.1.2 and gcc-4.3.x.
 Tested on 64 bit architectures (Intel or AMD) with
    Scientific Linux CERN 5 (SLC5) (based on Red Hat Linux Enterprise 5).
- MacOSX 10.8 with gcc-4.2.1 and clang-3.1
- Windows7 with Visual C++ 10.0 (Visual Studio 2010)
More verified configurations (64 bits):
- Linux, gcc-4.7.2
- Linux, Intel-icc 13.0
- AIX 5.3, 6.1, xlC 10.1
- MacOSX 10.7 with gcc-4.2.1
- Windows/XP with Visual C++ 9.0 (Visual Studio 2008)
Platforms configured but neither tested nor supported:
- DEC V4.0, cxx C++ V6.1-027
- HP 10.20, aCC C++ B3910B A.01.23
- MacOSX 10.4, gcc-3.3
- MacOSX 10.5, gcc-4.0.1
- MacOSX 10.6, gcc-4.2.1
- SGI V6.5.5, CC 7.2.1
- SUN Solaris 5.8, C++ CC-5.5.
 
2. Supported CLHEP version
This release of Geant4 has been verified with
CLHEP, release 2.1.3.1.
Use of a different CLHEP version may cause incorrect simulation results.
NOTE: an internal module of the relevant CLHEP classes is provided and can be
used as alternative to an external CLHEP library installation.
 
3. Items for migration of the user code
Listed here is some relevant information on developments included in this
release, some of which may require migrations (mainly for users of advanced
Geant4 features) in order to upgrade from release 9.5 to release 9.6.
Note that for all users a full re-installation of libraries (or a full
re-compilation) and a re-compilation of user applications is required.
 
Electromagnetic and optical physics
 
- EM physics (both standard and low-energy) now require 
    the G4EMLOW data files (version 6.32 is needed).
- Obsolete methods Get/SetModel() have been removed from 
    optical processes, requiring an update (i.e. removal of such calls) for
    those custom physics lists and physics configurations in which optical
    boundary process is
    defined.
 
Hadronic physics
 
- Hadronic physics now require new G4SAIDDATA data files.
 
Physics Lists
 
- Physics lists which depend on the CHIPS package or on the parameterized
    (Gheisha-like) models (LEP/HEP) are deprecated and will be removed in
    Geant4 10.
 
Data Sets
 
This release introduces new data set versions.
Please see the corresponding details in
Section 10 of this document.
- New data set versions: G4EMLOW6.32, G4NDL4.2, G4NEUTRONXS1.2,
    RadioactiveDecay3.6, G4SAIDDATA1.1.
 
4. New Developments and Capabilities 
General
- Full event reproducibility is  provided in simulations with most physics
    lists; this  allows  to restart a simulation from an intermediate event
    and obtain exactly the same results, if the user specifies or restores
    the status of the pseudo random generator  at the beginning of the event.
    This strict event reproducibility is achieved in all physics models, with
    two exceptions: 
    CHIPS stopping and neutron HP. This means that event reproducibility is
    valid for the  majority of the physics lists, including FTFP_BERT,
    QGSP_BERT and QGSP_FTFP_BERT.
Geometry
- A new optimized implementation of G4TessellatedSolid  provides
    substantial CPU performance boost and reduced memory
    footprint. Scaling of CPU time with increased complexity (number of facets)
    of the shapes being defined or imported.
Materials
- For all elements, a vector of G4Isotopes is always created using abundance
    values from NIST (in previous Geant4 versions, the vector of isotopes was
    created only for NIST materials). As a result it is no longer needed to
    define natural composition of isotopes in the user code.
Electromagnetic physics
- WentzelVI multiple scattering model is used by default in all EM physics
    lists. For electrons and positrons the WentzelVI model is used only above
    100 MeV.
    This was done to provide more accurate simulation both small and large
    angles of high energy charged particles.
- Sampling of multiple scattering  is performed AlongStep, before the
    sampling of energy loss (previously multiple scattering was sampled
    PostStep, after the energy loss). The physics performance is unchanged.
- New processes for microdosimetry in Silicon for electrons, protons and
    ions (G4MuElecElastic, G4MuElecInelastic) and corresponding models
    (G4MuElecElasticModel, G4MuElecInelasticModel).
- New Compton scattering model (G4LowEPComptonModel) along with specific
    Physics builder (G4EmLowEPPhysics).
- New builder selects the most accurate models now available for each
    process; this  is G4EmStandardPhysics_option4. Models from both standard
    and low-energy options are used.
Hadronic physics
- Hadronic processes now trigger re-sampling of the interaction if
    energy/momentum non-conservation limits are exceeded. A warning message
    is printed if this occurs.
- New hadron stopping models G4PiMinusAbsorptionBertini,
    G4KaonMinusAbsorptionBertini, G4SigmaMinusAbsorptionBertini,
    G4AntiProtonAbsorptionFritiof, and G4AntiSigmaPlusAbsorptionFritiof
    are added. 
- New total cross section sets based on SAID data-base are added.
    (They are used for proton, neutron and pion cross-sections on hydrogen
    in majority of physics lists.)
- A new option in the nuclear de-excitation module allows
    to ignore Doppler broadening for long lived meta-stable isotopes and
    provide instead decay at rest. This new feature is activated by the
    environment variable 
  G4AddTimeLimitToPhotonEvaporation
  . If
    this environment variable is set the momentum balance of the
    de-excitation is broken and energy balance is respected.
- A new electro-nuclear interaction model, G4ElectroVDNuclearModel,
    was created. It is based on the CHIPS total cross sections, with final
    state modeling using the Bertini cascade and FTFP.
- The INCL cascade model (INCL++) was updated and can now handle
    heavy-ion collisions.
- HTML files describing hadronic processes, models and cross-sections can
    be printed by invoking the ProcessDescription(), ModelDescription()
    and CrossSectionDescription() methods, respectively.
Physics Lists
- The model of multiple scattering for electrons and positrons is changed
    in all physics lists for HEP applications. Introduced the WentzelVI
    model for multiple scattering of e+ and e- above 100 MeV. Below 100 MeV
    the Urban95 model is used in the main physics lists (whereas Urban93
    is used in EMV or EMX).
- Relativistic gamma conversion model in used in all physics
    constructors above 80 GeV.
- New EM physics constructor G4EmStandardPhysics_option4  selects the
    most accurate models for each EM process. It  combines models from
    standard and low-energy sub-packages.
- New model for lepton-nuclear interactions using Bertini and
    Fritiof/Pre-compound has been introduced in most physics list.
    Only LHEP- and CHIPS-based physics lists  still use the
    (deprecated) CHIPS model for handling lepton-nuclear interactions.
- Introduced Bertini model for
    nuclear capture at rest of pi-, K-, Sigma-, Xi- and Omega- in most
    physics lists. 
    Also use Fritiof/Pre-compound model for anti-proton, anti-Sigma+
    and light anti-nucleus capture at rest in the same physics lists.
    Only LHEP- and CHIPS-based physics lists are still using the
    (deprecated) CHIPS model for handling nuclear capture at rest.
- CHIPS elastic and inelastic cross-sections for protons, neutrons, pions,
    kaons, hyperons and anti-baryons have been extracted and moved to the
    default module. They can now be selected individually for use in physics
    lists.
- Barashenkov-Glauber-Gribov nucleon-nucleus inelastic cross sections
    are now used in most physics lists instead of Axen-Wellisch 
    proton-nucleus and Laidlaw-Wellisch neutron-nucleus inelastic
    cross sections.
- Glauber-Gribov nucleus-nucleus inelastic cross sections are now used
    in most physics lists instead of Shen (which in turn replaced Tripathi)
    cross sections.
- The new physics list FTFP_BERT_HP has been created: it is similar to
    FTFP_BERT, but using HP for low-energy neutrons.
- Four new physics lists have been created: QGSP_BERT_95,
    QGSP_FTFP_BERT_95, QGSP_BERT_95XS and QGSP_FTFP_BERT_95XS.
    The "95" variants have the same physics models and cross sections
    as QGSP_BERT and QGSP_FTFP_BERT, respectively, in Geant4 version 9.5.
    The "95XS" variants have the same cross sections as QGSP_BERT and
    QGSP_FTFP_BERT, respectively, in Geant4 version 9.5, whereas the
    physics models are the same as in Geant4 version 9.6.
    These physics lists, which have been created for "backward compatibility"
    with the production physics lists used by the experiments, are
    deprecated and will be removed in Geant4 10.
    FTFP_BERT remains the recommended physics list for high-energy
    applications.
Visualization and Interfaces 
- /vis/set/colour, lineWidth, textColour, textLayout - new commands to set
    view details.
- /vis/scene/add/arrow, arrow2D, line, line2D, logo2D, text2D, date,
    frame - new commands to add content to views.
- /vis/scene/activateModel - new command to control trajectory and hit
    modeling.
- /vis/viewer/save, copyViewFrom - new commands to save view parameters
    and copy them from one view to another.
- Improved OpenGL rendering speed through major re-design of scene and
    transient processing. Use new command /vis/ogl/set/eventsDrawInterval
    to get even more speed when accumulating multiple events.
- /vis/scene/add/userAction now supports multiple user vis actions.
    Where previously one could only have a single user vis action, one can
    now register any number of such actions. Each action gets a specific name,
    and each can be assigned to any selected scene.
- Added Event ID to trajectory attributes so that in scenes that contain
    more than one event, one can tell which trajectory came from which event.
- Improved Qt interface and viewer.
- Improved handling of text.
- Added new OpenInventor option: /vis/open OIXE (in addition to the
    previous option, /vis/open OIX). Provides many new capabilities such
    as ability to set viewpoints and to fly along a trajectory path.
    This is an excellent viewer selection for accelerator studies or other
    situations in which it can otherwise be difficult to set appropriate
    views.
5. Expected effects on physics and computing performance
Electromagnetic physics
- Compared with Geant4 9.5.p02 a minor speedup of simulation of EM showers
    (2-3%) in calorimeters is expected, also about factor 2 speedup of EM
    initialisation.
Hadronic physics
- The main change on hadronic showers in Geant4 9.6 is their lateral
    profile: showers are wider in Iron and Copper, and narrower in
    heavier absorbers, like Tungsten and Lead.
- Similar CPU speed for simulation of hadronic showers as in
    Geant4 9.5.p02.
 
6. Known Run-Time Problems and Limitations
For a complete list of outstanding run-time problems and to submit any
problem you may find while running this version of Geant4, please refer 
to the
Geant4 Problem
Reporting System.
 
7. Compilation Warnings
There may be a few compilation warnings on some platforms.
We do not believe that any of these lead to incorrect run-time behaviour.
 
8. 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.
 
9. Detailed list of changes and fixes
These are the main new features/fixes included in this release since the
last patched public release (for more detailed lists of fixes/additions,
please refer to the corresponding History files provided in most packages):
 
Configuration
  - CMake:
      
      - Complete rewrite of data installation with support for
          CMake >= 2.6.4 and custom physics data install location.
          Downloaded data bundles are also verified using MD5 hashes.
- Added support for Clang detection (CMake > 2.8.1).
- Implemented C++ Standard detection and flag configuration for GNU,
          Clang and Intel compilers; added user option to select C++ Standard
          to build against, if the compiler supports this.
          The default is always c++98/'ansi' (C++98 plus the '03 addenda).
          Addressing problem report
          #1351.
- New API for managing data to allow reuse of existing datasets and
          not install data at build time if required. Addressing problem report
          #1285.
- Correct shell variable name in export of commands to scripts.
          Addressing problem report
          #1387.
- Added support for G3ToG4 library. Added CLHEP library to link line
          using output from clhep-config. Addressing problem reports
          #1290
          and #1328.
- Fix to use BASH_VERSION instead of non-POSIX compliant check.
          Addressing problem report
          #1306.
- Enable use of C-shell scripts inside other scripts. Protect changes
          to the environment if self location fails.
          Addressing problem report
          #1268.
- Removed extraneous quotes around resolved include paths.
          Addresses problem report
          #1357.
- Removed optimization flags from "TestRelease" build mode on all
          platforms. Removed obsolete "TestReleaseDebug" build mode.
          Addresses problem report
          #1263.
- Removed find of Inventor debug libraries and added find for of SoXt
          headers. Addresses problem report
          #1320.
- Added -limf library in CMAKE_EXE_LINKER_FLAGS for icc compiler.
- Allow choice between internal and system expat library on non-Win32
          platforms. Choosing system expat requires it to have been found.
- Check that X11 Xpm library has been found when Inventor driver is
          activated, and issue FATAL_ERROR if it is not located.
- On Windows setup, add MD flag to Release style build modes (RELEASE,
          MINSIZEREL and RELWITHDEBINFO); add MDd flag to Debug style build
          modes (DEBUG, TESTRELEASE, MAINTAINER).
- Tidy up module inclusions to provide minor, but noticeable, speed up
          in CMake configuration time.
- Use 'header guard' variable to prevent module being loaded multiple
          times.
- Improved description of workaround for sourcing Cshell scripts
          non-interactively.
- Fixed problem on Windows, for the case that a space appears in the 
          install prefix.
- Removed use of STATUS in error messages so all errors go to stderr
          when validating source files.
- Added FindHepMC, FindPythia6 and FindAIDA modules.
- Updated version of data sets: G4EMLOW.6.32, G4NDL.4.2,
          G4NEUTRONXS.1.2, RadioactiveDecay.3.6, PhotonEvaporation.2.3 and
          G4SAIDDATA.1.1. Removed obsolete ABLA dataset.
          Updated the required version of CLHEP to 2.1.3.1.
- Removed obsolete files geant4-env.[c]sh.in.
- Updated references to data libraries version for 9.6.
 
- GNUMake:
      
      - Updated paths for X11 in X11FLAGS on Darwin targets, for porting on
          MacOSX 10.8 (Mountain Lion).
- Exclude "setup" and "clean_setup" targets from dependencies step.
- Replaced "photolepton_hadron" module with "lepto_nuclear".
          Removed path to hadronic INCL package.
 
Analysis
  - Updated histogramming tools to g4tools-1.4.3.
- Adding defs include files per manager type; GetNtuple() function
      to specific managers; GetType() function to
      G4VAnalysisManager.
- Increased granularity of verbose levels (now 3 levels are available).
- Made creating directories optional. Added locks for functions which
      define directory names, setting Ids etc. so that these parameters cannot
      be changed once they were used. Changed return type for the functions
      with locks to G4bool.
- Adding an additional information to the analysis objects: units,
      activation, ascii output.
- Implemented a possibility to book histograms/ntuples before opening a
      file.
- Adding a messenger class allowing to configure file and directories
      names, verbosity level and histogram parameters interactively.
- Fixes in memory management: delete file before opening a new one (all);
      delete ntuple before closing a file (csv, xml).
- Added possibility to fill h1, h2 with values with automatically applied
      function (e.g. log10, exp). Added getters for many h1, h2 attributes;
      Added ScaleH1(), ScaleH2() methods. Added SetH2Title() in all managers.
- Added setters/getters for histogram axis titles and commands for setting
      histogram title and axis titles.
- Pass units via a name instead of value.
  
- Fixed warning in G4RootAnalysisManager when trying to fill inactivated
      histogram.
- Adding function  G4VAnalysisManager::SetActivation(..)
      for setting activation to all histograms of one type.
      Adding commands to handle and activate/inactivate 1D, 2D histograms.
- Fixed GetH1[2]Width: return the correct value also when histogram is
      inactive.
- Splitting verbose level 1 in 2 levels and shifting the upper levels.
- Fixed cases of variable shadowing.
Digitization & Hits
  - Support 'weighted'/'dividedByArea' options in flatCurrent
      and flatFlux command-line scorers.
- Use 'const G4String&' as argument instead of plain copy of
      strings in G4ScoringManager, G4VScoreWriter and
      G4VScoringMesh.
- Explicitly include headers for system of units and physical constants.
- Fixed cases of variable shadowing.
Electromagnetic Processes
- Fixed cases of variable shadowing and Coverity defects.
- Explicitly include headers for system of units and physical constants.
Adjoint:
    - G4AdjointBremsstrahlungModel: changed to use G4SeltzerBergerModel
        as forward model by default.
- Corrected differential cross-section expression in G4VEmAdjointModel.
- Get the weight from PostStepPoint rather than from Track when
        correcting the step in along stepping actions of
        G4ContinuousGainOfEnergy and G4AdjointAlongStepWeightCorrection.
        This is needed for a correct propagation of weight correction in
        different along step actions.
- G4AdjointMultipleScattering: commented out obsolete call.
DNA:
    - Bug fix in G4DNAChemistryManager::CreateSolvatedElectron() concerning
        the final position of the solvated electron using Sanche
        thermalization.
- Updated source of cross-section file for elastic scattering.
        Updated electron elastic scattering low limit.
- Removed G4Water* classes in 'utils' module.
- Improved management of information in G4ITStepProcessor.
- Added products of dissociative attachments (as a molecular decay).
- Added exception in molecular decay, in case no decay channel is
        proposed in input.
- Added possibility of calling G4ITStepManager::EndTracking()
        from UserReactionAction::EndProcessing().
- Added new classes G4DNAMolecularMaterial, G4DNADamages and
        G4ITTrackingInteractivity.
        Modified all models to use G4DNAMolecularMaterial.
        Added G4DNASecondOrderReaction prototype class.
- Switched to use of SetEmModel() and EmModel() in all processes
        classes.
- Fixed semantic warning related to forward declaration of
        G4ITNavigator_Lock. Modified molecule's name.
- Renamed G4DNADiffustionControlledModel to G4DNASmoluchowskiReactionModel.
        Updated G4ITNavigator to new interface of
        ReplicaNavigation::ComputeStep().
- Force kinetic energy to zero for real killings in models.
- Fixed uninitialised variable in Ionisation Models (Born, Rudd,
        RuddExtended) and some optimisation.
- Minor fixes for porting on AIX; mainly on use of const signature
        for objects in maps.
High Energy
    - G4mplIonisation, G4mplIonisationModel, G4mplIonisationWithDeltaModel:
        extended energy range of dEdx and other tables for monopoles with large
        mass, required for interpolation of dEdx for super-heavy monopoles.
Low Energy
    - New processes and models for microdosimetry in Si for electrons,
        protons and ions. Details can be found in: "Inelastic cross-sections
        of low energy electrons in silicon for the simulation of heavy ion
        tracks with the Geant4-DNA toolkit", NSS Conf. Record 2010, p80-85;
        "Geant4 physics processes for microdosimetry simulation: very low
        energy electromagnetic models for electrons in Si", NIM B, vol. 288,
        pp. 66 - 73, 2012; "Geant4 physics processes for microdosimetry
        simulation: very low energy electromagnetic models for protons and
        heavy ions in Si", NIM B, vol. 287, pp. 124 - 129, 2012.
- Added new Compton model G4MUComptonModel.
- G4LivermorePhotoElectricModel and G4LivermoreGammaConversionModel: 
        migration to G4PhysicsVector and G4ElementData data structures.
- Removed obsolete Penelope v2001 models and related helper classes.
- Make a consistent use of G4Element::GetA() and GetAtomicMassAmu()
        in Penelope models.
- Removed dependency on obsolete G4AtomicDeexcitation in
        G4PenelopeIonisationModel.
- Decoupled calculation of Penelope ionisation cross-sections from the
        Ionisation model. Preparatory step for a future Penelope-specific
        atomic de-excitation model.
- Minor design iteration for G4VhShellCrossSection base class, in order
        to carry also the information about G4Material. Also preparatory step
        for a future Penelope-specific fluorescence model.
- Made G4PenelopeBremsstrahlungAngular derived from the basic interface
        G4VEmAngularDistribution. Makes angular generator usable by any other
        model via the interface.
- Renamed G4PenelopeIonisationCrossSection to
        G4PenelopeIonisationXSHandler (the name will be reserved for a
        different class).
- Made G4PenelopeCrossSection able to return both absolute and
        normalized values of the shell cross sections. It will be used for
        Penelope-PIXE.
- Penelope-based cross-section model for electron PIXE registered in
        G4UAtomicDeexcitation. Added warning messages to Penelope models to 
        verify the proper activation of fluorescence.
- Updated G4PenelopeOscillatorManager to accomodate the calculation of
        PIXE cross-sections. First implementation of Penelope-specific PIXE
        cross-sections.
- Corrected G4PenelopeBremsstrahlungFS to avoid anomaly in the gamma-ray
        spectrum close to the cut.
- G4RayleighScattering: build physics table above 100 keV,
        Substituted calls to methods Model(), SetModel() with 
        EmModel(), SetEmModel()
- Migration to the common SampleDirection() interface in
        G4VEmAngularDistribution for Livermore and Penelope models.
- Introduced new class G4RayleighAngularGenerator.
- G4Generator2BS: fixed sampling according to the original paper.
- G4PhotoElectricAngularGeneratorPolarized: added protection against
        possible infinite loop.
- Added protection against cos(theta) < -1 to avoid numerical problems
        in G4PhotoElectricAngularGeneratorPolarized, G4Generator2BN,
        G4Generator2BS, G4RayleighAngularGenerator.
        Fixed exception printout in G4LivermoreRayleighModel.
- Updated MuElec classes to widen the energy range of application.
- Fix in G4MuElecInelasticModel for usage of iterators at boundary of
        vectors.
- Minor fixes for porting on AIX; mainly on use of const signature for
        objects in maps.
Muons
    - G4MuMultipleScattering: use G4UrbanMscModel95 as a default.
        Substituted calls to methods Model(), SetModel() with 
        EmModel(), SetEmModel().
- G4MuBremsstrahlung, G4MuIonisation,  G4MuPairProduction: secondary
        particle type defined in constructors and not in Initialise() method,
        this is needed for correct initialisation at G4_PreInit.
- G4MuBremsstrahlungModel, G4MuPairProductionModel: reduce number of
        computations of log() of the same argument, no change in results.
Polarisation
    - G4PolarizedPhotoElectricEffect, G4PolarizedPEEffectModel: substituted
        calls to methods Model(), SetModel() with EmModel(), SetEmModel().
Standard
    - Single and multiple scattering:
        
        - G4CoulombScattering, G4NuclearStopping, G4eMultipleScattering,
            G4hMultipleScattering, G4ComptonScattering: substituted methods
            Model(), SetModel() with EmModel(), SetEmModel().
- G4CoulombScattering: added method MinPrimaryEnergy() 
            allowing to define
            low edge of physics table when Coulomb scattering is combined with
            multiple or single scattering;
            modified initialisation allowing easier addition 
            of a custom model; improved list of options/flags in constructor
            to reduce size of cross-section tables; do not allow
            anymore to change polar angle limit after first initialisation;
            fixed initialisation for the case when polar angle limit 
            is below pi.
- For all multiple scattering models:
            sampling of scattering moved from PostStep to AlongStep;
            implemented StartTracking() method allowing to ensure
            reproducibility of simulation moved cross-section table from 
            process to model; fixed event non-reproducibility for
            the case where more than one model is configured for
            a particle for different energies; removed method GetLambda();
            added protection to stop sample scattering if energy is below 
            1 eV.
- G4hMultipleScattering: use G4UrbanMscModel95 as a default.
- G4UrbanMscModel95: improved fix for cases of abnormal tail using 
            results of single scattering model for tuning (protection against
            very large angles is retained);
            added protection into GetTrueStepLength method (true length cannot
            exceed physics path length.
- G4UrbanMscModel96: new version of the Urban model.
- G4WentzelVIModel: added "no scattering" check inside
            SampleScattering().
- G4WentzelOKandVIxSection: revert to 9.5 version, 
            as giving better fit
            with MuScat experimental data; make special case only for Hydrogen.
- G4GoudsmitSaundersonMscModel: fixed FPE bug; fixed inconsistency -
            lateral displacement is not anymore sampled for plural scattering;
            improved method of definition of screening parameter.
- G4ScreeningMottCrossSection, G4eSingleCoulombScatteringModel: 
            updated version of electron scattering code based on analytical 
            approximation of the Mott cross-section by means of Hose 
            coefficients. Added new 
            class G4MottCoefficients.
 
- Bremsstrahlung models:
        
        - G4SeltzerBergerModel: fixed minor problem of sampling for 
            positrons;
            made internal data structure static to be used by both e+ and e-
            models providing some memory reduction; use simplified computation
            of majorant valid for data with more detailed grid;
            added SetBicubicInterpolationFlag() method, activating more
            accurate parameterisation of 2D data for energy spectrum;
            for the cut on gamma energy below 5% below primary electron
            energy use extra factor 1.2 to
            max value of the cross-section when sampling gamma energy (reduced
            number of cases when differential cross-section exceeds estimated
            maximum of the cross-section).
- G4eBremsstrahlungRelModel: fixed use of screening function;
            switched full screening off; use G4DipBustGenerator for angular
            distribution.
 
- Angular generators:
        
        - Migrated all angular generators to G4VEmAngularDistribution
            interface and use SampleDirection() method in models which
            are using this interface (bremsstrahlung and photoelectric).
- G4SauterGavrilaAngularDistribution extracted from G4PEEffectModel,
            changed limit gamma factor from 5 to 30 (no angular sampling above
            ~15 MeV instead of 2.5 MeV).
- G4DipBustGenerator, G4SauterGavrilaAngularDistribution: added
            protection to angular sampling theta < pi, and optimise computation
            for ultra-relativistic particles.
- G4DipBustGenerator: fixed model description.
- G4ModifiedTsai: improved sampling of bremsstrahlung in backward
            hemisphere.
 
- G4UniversalFluctuation, G4IonFluctuations: improved sampling
            for "thick" absorber.
- G4GammaConversion: use relativistic model above 80 GeV in
        order to have more accurate
        cross-sections plus LPM effect at very high energy.
- G4ComptonScattering: build two cross-section tables, below and
        above 1 MeV using different technique for interpolation.
- G4PhotoElectricEffect: build cross-section table above 200 keV.
- G4KleinNishinaModel: added simplified PDF function and fixed infinite
        loop. Fixed computation of electron energy.
- G4BetheBlochModel, G4BraggIonModel, G4BraggModel: defined flag 'isIon'
        for all nucleus except deuteron, triton and special DNA ions.
- G4eBremsstrahlung, G4eIonisation,  G4hIonisation, G4ionIonisation:
        secondary particle type defined in constructors and not in
        Initialise() method, this is needed for correct initialisation
            at G4_PreInit.
- G4NuclearStopping: added check of upper energy limit and ion energy 
        to speedup computations.
- G4ICRU49NuclearStoppingModel: reduced upper limit for protons from
        100 MeV to 1 MeV (for CPU performance)
- G4XrayRayleighModel: update of cross-sections and angular 
        distribution.
- Added deprecation warning to obsolete methods and classes.
Utils
    - Fixed issues with event-reordering  reproducibility related to EM models. Added StartTracking() method in G4VEmProcess which calls corresponding methods in each registered model. 
- G4LossTableManager: added a check and protection against double
        registration of the same process; this allows the use of the same
        EM energy-loss process for different particle types;
        added methods MinKinEnergy() and MaxKinEnergy()
- G4LossTableBuilder: added method BuildTableForModel() to enable the
        building of the physics-table for a model.
- G4EmModelManager: extended printout if cross-section table is built
        for the model; improved printout of model energy limits.
- Process and model abstract classes:
      
        - G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering:
          optimisation of time methods called at each step;
          updated tracking parameters and
          flags in PostStepGetPhysicalInteractionLength(),
          print process/model information for the
          same list of particles.
- G4VEnergyLossProcess, G4VMultipleScattering, G4VEmModel: added
          implementation of StartTracking() method; moved initialisation 
          of a new track inside this method; defined flag 'isIon' for all 
          nucleus except deuteron, triton and
          special DNA ions (fixing event non-reproducibility for ions).
- G4VMultipleScatteringProcess, G4VMscModel: sampling scattering is
          moved from PostStep to AlongStep.
 
- G4VMultipleScattering: removed transport cross-section table (it
          is assigned to msc models); simplified 
          AlongStepGetPhysicalInteractionLength() method; added
          protection against zero kinetic energy into PostStepDoIt();
          optimised initialisation and reduced number of checks at run time;
          added more accurate protection against case
          when true length exceeds physics step limit;
          Fixed case of event non-reproducibility for ions; added protection,
          do not sample scattering if range exceed true step length is less than
          'minGeom' parameter (1e-6 mm); define ion multiple scattering in
          constructor; improved printout at initialisation.
- G4VEmProcess: added extra option allowing to build two different
        tables for low-energy and high-energy using different interpolation
        method; this was needed in order to  combined  different models for multiple scattering. Changed initialisation for ions.        
- G4VEmModel: added virtual method Value(), by default computing
        cross-section; added inline methods HighEnergyActivationLimit(),
        LowEnergyActivationLimit(), ForceBuildTableFlag(), 
        ForceBuildTable().
- G4VMscModel: critical fix for stopping particles, based
        on ATLAS report on extremely small steps of low-energy ions.
        Computes true path length even if multiple-scattering 
        model is inactive.
        Builds table for all particles except  when
        the same instance of the multiple-scattering process is shared by many different nuclei - the case when it is registered for G4GenericIon.
        Added building of transport cross-section table and new 
        method GetTransportCrossSection() to be used at run-time; added method
        GetTransportMeanFreePath(); added GetDEDX() method.
- G4VEmAngularDistribution added  methods 
        SampleDirection() and Initialise().
- G4EmCalculator: modified method to access a process to take into 
        account that the same process may be used by different particle types; 
        added new methods ActiveForParticle(), FindEnLossProcess(), 
        FindDiscreteProcess() and FindMscProcess(); fixed method FindRegion();
        improved model selection for multiple-scattering processes;
        added ComputeGammaAttenuationLength() method.
- G4EmCorrections: fixed event reproducibility violation due to cashing
        of 'IonHighOrderCorrections' with a vector depending 
        on the ion charge.
- G4VAtomDeexcitation: fixed logic of activation of de-excitation per
      region and for all geometries; updated initialization for the case
      when de-excitation is not used. Added computation of sum of energies
      of de-excitation gamma and electron produced AlongStep; use logical OR
      instead of AND for de-excitation flags; fixed de-excitation AlongStep
      by substitution which limited de-ecitation from ion ionisation;
      corrected activation of de-excitation for the
      case when specific de-excitation regions are not defined;
      use G4lring method to extract integer Z.
- G4ElectronIonPair: use inverse FanoFactor to simplify formula.
      Cleanup implementation of sampling of number of ions.
- Added deprecation warning to obsolete methods and classes.
- Biasing:
      
      - Fixed Bremsstrahlung splitting to sample gamma secondaries.
- G4VEnergyLossProcess: fix for forced biasing, now forcing if step==1.
          Also required  change in G4VEmProcess. Addressing problem report
          #1314.
- Set weight consistently for forced interaction and cross-section
          biasing in G4VEmProcess and G4VEnergyLossProcess.
- G4EmBiasingManager: added check on number of  PostStep secondaries;
          if multiple secondaries disables both splitting and Russian roulette.
          This does not affect  delta-electron and Bremsstrahlung secondary
          biasing.
          Cleanup the code; do not modify ParticleChange when applying
          Russian-Roulette (minor CPU save). Moved RussianRoulette()
          method to inline; added range cut option.
- G4EnergyLossMessenger: allow to apply biasing UI commands only in
          Idle state.
 
Xrays
    - Updated G4VXTRenergyLoss and regular XTR radiators/models
        for more accurate angular distribution of XTR.
- Modified G4SynchrotronRadiation and
        G4SynchrotronRadiationInMat to
        provide more realistic angular distribution for secondary SR gammas
        according to simplified dipole busted approach.
- Removed warning in G4Cerenkov constructor.
Error Propagation
- Fix in G4ErrorRunManagerHelper to correct check for G4ErrorPhysicsList.
- Fixed cases of variable shadowing.
Event
- G4StackTrack, G4StackedTrack: modified to use a std::vector
    by value instead of a double linked list. Measured speedup of ~35% in
    simple test program.
- G4SmartTrackStack: optimized tuning for the parameters (4-5% persistent
    reduction in total execution time in complex setups).
    Fix to not use particle definition pointers and use PDG code instead.
    Enabled by default the use of G4SmartTrackStack (-DG4_USESMARTSTACK).
- G4StackManager: moved some inlined methods from header to implementation
    to fix issue with Windows DLLs. Also, removed inline keyword from
    G4EventManager::AbortEvent() to prevent incorrect inlining for VC++ if
    G4SmartTrackStack is used.
- G4TrajectoryContainer: added private copy constructor and assignment
    operator in attempt to fix Coverity warnings.
- Added deprecation warning messages to G4CellScorer and G4CellScorerStore
    classes which will be dropped starting from next major release.
- Fixed cases of variable shadowing.
- Explicitly use inclusion of headers for system of units and physical
    constants.
Externals
- Updated CLHEP module to version 2.1.3.1:
    
    - Random: use a template to get rid of the warnings in Ranlux64Engine.
- Vector, Geometry, Random: changed names of internal variables 
        to avoid shadowing of variable.
- Evaluator: fixed a problem with unary +/- and exponentials in
        Evaluator class.
- Vector, Evaluator, Random, Geometry: use explicit std:: for
        math functions.
- Made explicit the HepLorentzVector(double) constructor.
 
G3toG4
- Fixed cases of variable shadowing.
- Explicitly use inclusion of headers for system of units and physical
    constants.
General Processes
- Fixes for Coverity defects and variable shadowing.
- Explicitly use inclusion of headers for system of units and physical
    constants.
- management
    
    - Added GetTotalNumberOfInteractionLengthTraversed() method to
        G4VProcess.
- Move virtual inlined methods to source.
 
- Optical
    
    - Removed unnecessary methods Get/SetModel() from
        G4OpBoundaryProcess.
 
- Scoring
    
    - Introducing "HyperStep" G4Step object owned by G4ParallelWorldProcess,
        which may own touchables in pre- and post-step points belonging to
        different worlds.
- Adapt to modifications in G4RegularNavigationHelper which is now a
        canonical singleton accessed through call to Instance(). Step lengths are
        accessed by GetStepLengths(). Avoiding  inline functions to access
        G4RegularNavigationHelper. Addressed run-time errors on Windows when
        using DLLs.
 
Geometry
- Explicitly  include  headers for system of units and physical
    constants.
- Fixed cases of variable shadowing.
- Biasing
    
    - Added deprecation warning messages to G4VCellScorer and
        G4VCellScorerStore classes which will be dropped starting from next
        major release.
 
- Magnetic field
    
    - G4QuadrupoleMagField: allow displaced origin and rotation.
 
- Management
    
    - Added base materials in G4Region::ScanVolumeTree() to the list
        of region materials, when applicable.
 
- Navigation
    
    - Extended G4ReplicaNavigation to calculate Exit Normal. Now calculates
        it at each 'depth', and eventually also for daughters.
        Gives additional information in case of 'Out-of-Volume' exception.
- G4SafetyHelper: introduced check of length for relocation method
        LocateGlobalPointWithinVolume() to check move against safety.
- G4VoxelSafety: introduced first optimisations in this method,  using distance to voxels to trim search tree. The search uses the distance to voxels and the current and previous depths. Includes use of equivalent nodes. It is currently not used in production - it is a first release at the 'beta' level. 
- G4VoxelNavigation: added simple check  in ComputeSafety()
        call whether point is inside current volume.
- G4RegularNavigationHelper: transform it to  singleton created upon first use, instead of static
        utility class. Make vector of Step Lengths a
        data member. Adapted G4RegularNavigation to the 
         singleton. Fixes run-time errors on
        Windows DLLs.
- G4ErrorPropagationNavigator: cosmetic change to improve readability 
        of initialisation of a double.
 
- Solids (Boolean)
    
    - G4BooleanSolid: added 'AreaRatio' data member and
        method GetAreaRatio() to store the ratio of surface areas of
        SolidA to SolidA+SolidB. 
        The ratio is used in GetPointOnSurface() to better approximate
        uniform coverage of points. Uniformity cannot be guaranteed in all
        cases. One exception is when constituent solids have shared surfaces.
 
- Solids (BREPs)
    
    - Added deprecation warning for BREPs module, planned for removal from
        next major release.
 
- Solids (CSG)
    
    - Modified GetPointOnSurface() methods for solids using polar
        coordinate parameterizations, to generate more uniform distributions,
        using a function in G4CSGSolid to generate correct radial
        coordinate.
 
- Solids (Specific)
    
    - New rewrite of G4TessellatedSolid resulting in reduced memory footprint
        by 50% and large speedup;  for number of facets in the thousands the speedup factor observed is tens or more. Adopted to ad-hoc voxelization of the surface
        for fast retrieval of intersected facets.
        Measured a factor of thousands speedup when number of facets is of the
        order of order of a hundred thousand. New classes introduced, G4SurfBits and
        G4SurfaceVoxelizer.
- Modified GetPointOnSurface() to throw sqrt(r)
        uniformly for disk surfaces, in G4Paraboloid, G4Polycone
        and G4TwistedTubs.
 
- Volumes
    
    - Fix in G4EnhancedVecAllocator for porting on AIX.
 
Global
- Introduced G4StatDouble class in HEPNumerics module, a class providing
    simple "one variable statistics" capability; adapted from the original
    code included in the GRAS tool.
- Use 'const G4String&' as arguments in G4coutdestination instead
    of plain string copy to reduce memory churn.
- Removed unnecessary string data member in G4PhysicsVector to reduce
    memory footprint. Removed related Get/SetComment() methods.
- Added header for thread local storage defines.
- G4Physics2DVector: added bicubic interpolation option.
    No effect on results if option is not active.
- Added GetClockTime() function to G4Timer to print the  clock time.
- Use explicit inclusion of headers for system of units and physical
    constants. Fixed cases of variable shadowing.
- Update date of release for 9.6.
Graphical Representations
- G4VVisManager: Added Begin/End Draw(2D), optional methods for
    bracketing Draw() methods to improve drawing speed.
- G4Colour: in operator<<(), added colour name if in colour map.
      Added colour brown.
- G4Text: added operator<<(...,G4Text::Layout), for producing meaningful
      text instead of the integer value of the enumerator.
- Change G4Exception ID in G4NURBS and HepPolyhedron.
- G4VisExtent: cached radius and centre for improved efficiency.
- G4DimensionedType: fixed clang compilation warning. Moved "Helper class"
    HasName and utility function GetUnitValue() to source.
- Explicitly use inclusion of headers for system of units and physical
    constants.
- Fixed cases of variable shadowing and Coverity defects.
Hadronic Processes
- Removed obsolete "incl" module for INCL model; now replaced by INCL++.
- Renamed 'photonlepton_hadron/muon_nuclear' model to 'lepto_nuclear'
- Fixed cases of variable shadowing and Coverity defects.
- Explicitly use inclusion of headers for system of units and physical
    constants.
- Cross sections
    
    - G4CrossSectionDataStore: introduced cash for material and element
        cross-sections in order to save CPU; cross-section for material
        is not recomputed if material, primary particle and kinetic
        energy are the same; cross-section for element is not recomputed
        if material, element, primary particle and kinetic energy are the
        same; G4Nucleus is updated using new method SetIsotope().
        Take into account that all elements should have isotopes.
- G4VCrossSectionDataSet: added virtual method SelectIsotope() which is
        used for element wise cross-sections, allowing for the data-set to use
        isotope wise cross-sections when isotope is selected; by default the
        old method is used based on isotope abundance; no change of results
        expected.
- G4HadronNucleonXsc: updated p,n,pi-,pi+ cross-sections on p,n.
        Added new method GetCoulombBarrier().
- G4GGNuclNuclCrossSection, G4GlauberGribovCrossSection: updated to get
        total and inelastic cross-sections from G4HadronNucleonXsc.
- G4BGGNucleonInelastic, G4BGGNucleonElastic: use SAID data for 
        scattering
        off hydrogen below 1.3 GeV for neutrons and below 2 GeV for protons.
        G4BGGPionInelastic, G4BGGPionElastic: use SAID data for scattering
        off hydrogen below 2.6 GeV.
- G4GGNuclNuclCrossSection: updated to get nucleus radii of light
        elements p, d, t, He3, He4, Li7 and Be9.
        Fixed condition and setting minimum kinetic energy in to 0.
- New classes G4ComponentGGNuclNuclXsc based on G4GGNuclNuclCrossSection
        (Glauber-Gribov for ion-ion cross section) and G4ComponentBarNucleonNucleusXsc
        based on G4NucleonNuclearCrossSection (Barashenkov cross section); implemented
        component interface.
- Added elastic and inelastic cross-sections extracted from CHIPS.
        Make GetExchangeT() method public to be used in coherent_elastic.
- Extended functionality of G4CrossSectionDataSetRegistry to allow
        sharing of cross-sections sets. Make exception in method
        GetCrossSectionDataSet() optional.
- New class G4ComponentSAIDTotalXS for SAID cross-sections.
- Use new cross-sections factory for CHIPS elastic and inelastic
        cross-sections. Removed unnecessary statics in CHIPS cross-sections
        and fixed case of double-deletion.
        Removed G4ChipsBaseXS class.
- G4NeutronCaptureXS: use G4ElementData for isotope x-sections.
        Implemented isotope selection based on isotope cross-section.
- G4ComponentSAIDTotalXS: fixed cross section computation.
- Added factory mechanism for G4GlauberGribovCrossSection,
        G4NucleonNuclearCrossSection and G4GGNuclNuclCrossSection.
- Make two methods in CHIPS cross-sections public for the use in
        quasi-elastic module.
- New data-set G4SAIDDATA1.1 controlled by path variable G4SAIDXSDATA
        is now required.
 
- Management
    
    - Added method to address energy non-conservation; if check finds
        violation of energy conservation, re-sample the interaction. 
        
        - Limits are set in
            G4HadronicInteraction, and may be overridden per model; LEP and HEP
            override defaults, as these do not include the recoil nucleus in the 
            final state.
- Failure of E/p conservation is signalled only if both checks,
            absolute and relative, fail. Thus violations which  either a) are
            just smaller in absolute value than the value threshold or b) are
            just a smaller fraction than the threshold fraction (but not both)
            will not fail.
- Added check for momentum conservation, reusing limits for energy.
- Added check for charge and baryon number conservation; active only
            if limit is less than DBL_MAX.
 
- G4HadronicProcess
        
        - Moved some data members to protected to be used in 
            derived classes; removed unused code. 
- Changed logic of definition of time for secondary particles
            inside method FillResults().
- Moved to use method ResetNumberOfInteractionLengthLeft() and
            GetTotalNumberOfInteractionLengthTraversed() from G4VProcess.
- Dropped the check cross-section in PostStepDoIt() in the case of
            neutral particles, in order to improve CPU performance.
            Now check only for charged particles.
- Improved quick check and full check for case of electro-nuclear.
            Copes with case that both primary survives and secondaries are
            created.
- Fixed problem of flushing stdout/stderr for energy checking
            printout.
- Removed GetTargetDefinition(); instead added GetTargetIsotope().
- Added catch of G4HadronicException inside BuildPhysicsTable()
            method.
- Added full printout about hadronic exception inside G4Exception
            body; addressing problem report
            #1377.
 
- G4HadronicProcessStore: added functions GetCrossSectionPerAtom(),
        GetTargetDefinition() and GetCrossSectionPerVolume().
        Added e+ and mu+ to level-1 reporting.
- Added printing of model descriptions to html files.
- Moved isotope production infrastructure from process to model level;
        now done only for LEP models. Updated G4HadronicProcess accordingly.
- G4IsoParticleChange: moved to models/management module.
- G4HadronicProcessType: added 'fLeptonAtRest'.
- Models:
        
        - Moved G4InelasticInteraction class to 'low_energy' model.
- G4IsoParticleChange: moved from main 'management' module.
- G4VIsotopeProduction: replace G4Track argument in GetIsotope() with 
            G4HadProjectile.
- G4VHighEnergyGenerator: added virtual method
            PartonStringModelDescription().
- G4VIntraNuclearTransportModel, G4VPreCompoundModel: cleanup for
            object construction/deletion.
- Provide method and default values for checking of "catastrophic"
            energy non-conservation. Current default is a deviation larger than
            150 MeV and at least 10% of the kinetic energy of the primary.
            Set default limit for energy non-conservation to 5 GeV;
- Added G4VIntraNuclearTransportModel::Description() method, printing 
            a descriptive message before throwing a G4Exception.
- Modified G4VHighEnergyGenerator: added ModelDescripion() to interface;
            made private the copy-constructor and the =,  ==, and != operators, which are not
            implemented.
- G4VIntraNuclearTransportModel: added PropagateModelDescription()
            method.
- G4HadronicInteractionRegistry: added method FindModel() allowing to
            access G4HadronicInteraction by name.
 
 
- Processes
    
    - G4*HadronElasticProcess: replaced use of "aParticleChange" with
        "theTotalResult", and drop callback to
        G4VDiscreteProcess::PostStepDoIt().
- G4HadronElasticProcess: use cut for recoil as energy threshold to
        produce recoil ion. Added deprecation warning for obsolete method.
    
- Marked as obsolete G4WHadronElasticProcess class.
 
- Stopping
    
    - Removed class G4FTFCaptureAtRest and replaced with the new classes
        G4HadronicAbsorptionFritiof, G4AntiProtonAbsorptionFritiof
        and G4AntiSigmaPlusAbsorptionFritiof.
        Modified initialisation of de-excitation; fixed
        potential cases of double deletion of objects; added registration
        in G4HadronicProcessStore and added sub-type definition.
        Included annihilation of anti_sigma+.
- Added new classes G4MuonMinusBoundDecay, G4ElementSelector,
        G4EmCaptureCascade, G4MuMinusCapturePrecompound,
        G4HadronStoppingProcess, G4MuonMinusCapture, providing general
        stopping process.
- New class G4HadronicAbsorptionBertini inheriting from
        G4HadronStoppingProcess, registering Bertini as the model.
        G4PiMinusAbsorptionBertini as subclass of G4HadronicAbsorptionBertini,
        G4KaonMinusAbsorptionBertini and G4SigmaMinusAbsorptionBertini new
        subclasses of G4HadronicAbsorptionBertini.
- G4MuonMinusBoundDecay, G4StopElementSelector: added data
        for muon capture rate in Hydrogen and He4 from recent experimental
        data.
- G4HadronicAbsorptionBertini: drop list of "allowed" hadrons, so Bertini
        can take care of any negative hadron thrown at it.
        Use Bertini's IsApplicable() function to decide whether incident
        projectile is suitable for absorption or not.
- Flag deprecated classes in the 9.6 release, to be removed for next
        major release; added warnings to constructors. Stopping hadrons are
        now handled by Bertini and Fritiof models, and muon capture by the more
        complex process with atomic cascade effects.
- Added nuclear capture at rest of anti-nuclei with FTFP in
        G4HadronicAbsorptionFritiof.
- G4HadronicAbsorptionFritiof, G4MuMinusCapturePrecompound,
        G4MuMinusBoundDecay, G4EmCaptureCascade: fixed memory leak;
        reuse G4PreCompoundModel instead from the store of creation of
        a new one.
- G4HadronStoppingProcess: defined two argument constructor with defaults
        used G4HadronicProcessType in the constructor.
- Replaced replicated code blocks for deprecation messages with new
        G4HadronicDeprecate macro from 'utils' module.
 
- Utility
    
    - G4HadProjectile: added methods SetGlobalTime(), SetBoundEnergy() and
        GetBoundEnergy() needed for general stopping process; always set time
        to zero at construction or initialisation, so hadronic interaction is
        starting from zero local time.
        Added Initialise() method allowing to update the projectile and not
        instantiate it for any new interaction. Inlined all get methods.
        Added protection to kinetic energy computation.
- G4Nucleus: added methods GetIsotope(), SetIsotope().
- Added macro function G4HadronicDeprecate to generate deprecation
        messages.
- Fix for porting on AIX in G4ReactionProduct header.
- Models:
        
        - G4Fragment: added flag of stable fragment and Get/Set methods.
 
 
- Binary Cascade
    
    - G4BinaryCascade: when propagating secondaries from HE model,
        do not modify initial energy for Fermi level.
- G4BinaryCascade, G4BinaryLightIonReaction and
        G4GeneratorPrecompoundInterface: reuse already instantiated
        pre-compound model, if existing.
- Added description in G4BinaryLightIonReaction.
- Fixed minor leak in G4GeneratorPrecompoundInterface.
- Code cleanup & splitting of long methods.
    
- Fix charge/baryon number violation for Propagate() interface in
        G4RKPropagtion. Added method to optionally check baryon/charge
        conservation. Added model descriptions also for Propagate().
 
- Bertini Cascade
    
    - Developed and improved ability of Bertini cascade to handle
        photo-nuclear and elector-nuclear interactions and the interactions
        of stopping particles.
- G4CascadeInterface: check for no-interaction in retryInelasticProton(),
        both in return value and in debugging report.
        Added new function for dumping configuration.
- G4CascadeChannelTables: added "om*pro" and "om*neu" to LoadTables().
- G4CascadeCheckBalance: lower verbosity level for energy-conservation
        reports, change violation rules to allow relative OR absolute passing,
        consistent with new process-level checks.  Added reporting of
        strangeness conservation.
- G4CascadeCoalescence: fixed bug for clear at start of event of the list
        of clusters already considered; entries from previous events prevented
        formation of valid clusters. Also improved diagnostic messages.
- G4CascadeCollisionOutput: added calculations of net strangeness.
- G4CascadeKminusPChannel: modified two-body cross-section values in
        zero-energy bin, to reflect stopping data.
- G4CascadeOmegaMinusPChannel, G4CascadeOmegaMinusNChannel:  New classes
        containing partial cross-sections for omega- p and omega- n reactions.
- G4CascadeParameters: new singleton container class to hold and
        evaluate any developer-configured environment variables. Default
        values for parameters are provided. Three new flags are also
        defined: G4CASCADE_VERBOSE (pre-set verbosity in G4CascadeInterface
        constructor), G4CASCADE_USE_PRECOMPOUND (select use of
        PreCompoundModel in G4CascadeInterface constructor),
        G4NUCMODEL_USE_BEST (re-set all defaults for nuclear model with
        physical units).
- G4CascadeParamMessenger: new class to define UI macro commands for
        setting G4CascadeParameters (string) values, as an alternative to
        environment variables.
- G4CascadeParticle: added public accessor for cumulative path length.
- G4CascadePPChannel, G4CascadeNPChannel, G4CascadeNNChannel: new
        final-state tables implemented as subclass of templated base (rather
        than 'typedef'). Overrides findCrossSection() function to apply
        analytic (parametrized) function from Stepanov for projectiles below
        10 MeV, with maximum cross-section at zero-bin value.  Use
        Stepanov's cross section values up to 420 MeV.
- G4CascadeSigmaMinusPChannel: changed zero-bin cross-sections for
        Lambda-n and Sigma0-n, based on data from M. Goossens et al.
        measurements of Sigma- capture.
- Removed G4CascadeT1NNChannel class and split into separate pp, pn
        and nn files (see G4CascadePPChannel, etc.).
    
- G4Dineutron, G4Diproton, G4UnboundPN: added protection against warning
        messages issued from G4ParticleTable::Remove().
- G4ElementaryParticleCollider: added angular distributions for elastic
        and inelastic 2-body final states of gamma p and gamma n reactions.
        Allow photons to be absorbed via dibaryon (quasideuteron) excitation.
        In generateSCMfinalState(), defer "particles.resize()" action until
        after final-state properties have been validated. In case no final
        state can be generated, this ensures that the failure propagates
        back up the calling chain, instead of simply looping forever.
- G4ExitonConfiguration: added empty() function to test exciton state,
        reduced printout to single line.
- G4Fissioner: removed static in local vectors in method collide(), to
        ensure event reproducibility.
- G4IntraNucleiCascader: specify mass when decaying trapped particle.
        This fixes reproducibility violations when hyperons are forced to
        decay inside the nucleus.
- G4InuclNuclei: report non-empty exciton configuration in print().
- Added additional diagnostic messages in G4NonEquilibriumEvaporator and
        G4EquilibriumEvaporator.
- G4NucleiModel: New function isProjectile() identifies incident
        particle at start of cascade.  Return zero from getPotential() for
        photons in cascade.  Added binned spectrum for photons in
        absorptionCrossSection().  Added scale factor for gamma absorption.
        Allow photons to be absorbed via dibaryon (quasideuteron) excitation.
        Simplified and encapsulated path-length computations.
- G4PreCompoundDeexcitation: avoid double deletion of pre-compound
        model and excitation handler.
 
- Chiral Invariant Phase Space (CHIPS)
    
    - New tuning for stopping in CHIPS. Added re-scattering to allow for
        wider energy resolution.
- Fixed charge non-conservation problem and memory leak in
        G4QFreeScattering.
- Bug fixes for E/M violation with (dE)^2+(dp)^2>.5 MeV^2.
- Split G4QInelastic into G4QInelastic and G4QNGamma classes for use
        with the CHIPS_HP physics-list.
- Fix to hadron elastic and inelastic interfaces to correct the use of
        the base class G4VCrossSectionDataSet.
- Fix for quasi-elastic duplication in G4QInelastic (for p & n).
- Fixed warning in G4QPDGCode.
- Added deprecation warning message to constructors for removal in next
        major release.
 
- De-excitation
    
    - G4ExcitationHandler: propagate G4VPhotonEvaporation pointer to
        G4Evaporation and do not delete it; this allows usage of the same 
        gamma evaporation object inside G4Evaporation class and 
        G4ExcitationHandler; added access methods to de-excitation components.
- G4VEvaporationFactory, G4Evaporation, G4EvaporationGEMFactory,
        G4EvaporationFactory, G4EvaporationDefaultGEMFactory: correct deletion
        of decay channels after run and simplified constructors.
- G4Evaporation: cleanup logic of initialisation and setup options;
        always define photon evaporation channel as first; removed obsolete
        constructor.
- G4PhotonEvaporation: added check for environment variable
        G4AddTimeLimitToPhotonEvaporation, if it is defined a time
        limit 1.e10-16 is compared with the nuclear level life time allows to
        identify and sample narrow gamma lines or use relativistic kinematics
        which will result in Doppler broadening for other nuclear lines; this 
        option has a side effect for energy-momentum non-conservation.
- New classes G4PromptPhotonEvaporation, G4LevelManager, G4NucLevel, and
        G4LevelReader implementing new photon-evaporation model.
 
- Elastic scattering
    
    - G4ElasticHadrNucleusHE: fixed reproducibility violation due to caching
        of cross-sections based on the target element, whereas they depend also
        on the isotope. Rather than using the first isotope encountered for an
        element, the natural average is used.
- Added G4ChipsElasticModel class to use the extracted CHIPS
        cross-section classes from main 'cross_sections' module.
- Adopt factory mechanism for CHIPS cross-sections.
- Initialisation of subtype field for G4ChargeExchangeProcess.
 
- Electromagnetic dissociation
    
    - Fixed double deletion of cross-section in G4EMDissociation destructor.
        Addressing problem report
        #1339.
- G4EMDissociation: added prototype for copy constructor.
 
- High Energy
    
    - Relaxed limits on check for "catastrophic" energy non-conservation,
        allow for deviation by the mass of heavy nucleus.
- Fixed compilation warnings from MacOSX 10.8.
- Replaced MAXFLOAT with DBL_MAX in G4HEInelastic.
- Added deprecation warnings to constructors of model classes.
 
- High Energy Theoretical
    
    - Added ModelDescription() interface.
 
- Im_r_matrix
    
    - Incorporate new data from extended nucleon-nucleon elastic scattering
        data (SAID evaluation). These double-differential elastic
        cross-sections now cover energies up to 5 GeV.
- Fixed reproducibility violation in G4CollisionComposite.
- Added Print() method to G4CollisionInitialState.
 
- INCLXX
    
    - Updated to INCL++ v5.1.8: can now handle heavy-ion collisions.
        Conserves energy using masses from the Geant4 tables down to the keV
        level. Fixed a bug mostly affecting reactions around 200 MeV.
        Refactored the configuration part of the interface in a separate
        G4INCLXXInterfaceConfig singleton.
        Interface returns an empty G4HadFinalState if no inelastic event
        can be produced.
- Realistic densities for deuterons; can now be used for very light
        systems (e.g. p+alpha).
- INCL++ refuses to handle reactions between nuclei with A>18.
        Those reactions are handled by binary-cascade.
- Major speed improvement in cluster coalescence; gained about a factor
        of 2 in 1-GeV p+208Pb. Fixed some bugs in reactions induced by
        composite particles.
- Only one model instance for all processes.
- Messenger interface now creates commands in /process/had/inclxx,
        for consistency with Bertini model.
- Better (iterative) determination of the remnant recoil at the end
        of the cascade. Isospin-dependent back-to-spectator.
- Minor bug for negative incident pions: integration over impact-parameter
        distribution was incomplete.
- Cache nuclear-density objects for better performance.
- Fixed sampling of the impact-parameter distribution for nucleon-induced
        reactions and incoming kinetic energies below ~40 MeV.
- Always apply numerical solutions (used to lead to some minor violations
        of energy conservation).
- Do nothing if the projectile is below the Coulomb barrier.
- Bug fix to void collisions with A=1 targets.
- Bug fix: de-excitation products should not be boosted using the
        pre-fragment velocity.
- Fixed bug in forced compound nucleus (emission of di-protons or
        di-neutrons). Fixed a bug affecting the choice of the
        accurate-projectile mode.
 
- Isotope Production
    
    - Change GetIsotope() interface argument to use G4HadProjectile
        instead of G4Track.
- Added deprecation warnings for removal in next major release.
 
- Lend
    
    - Fix for porting on AIX in statusMessageReporting source code.
 
- Lepto-nuclear
    
    - Renamed module from 'photolepton-hadron'.
- Added new model G4ElectroVDNuclearModel. Removed classes
        G4LeptonHadronProcess and G4LeptonHadronInteractionModel.
- Changed name of G4VDMuonNuclearModel to G4MuonVDNuclearModel to
        avoid any confusion with virtual class names.
        For gammas below 10 GeV use Bertini cascade to interact gammas directly
        with nucleus. Above 10 GeV, treat gamma as pi0 and use FTFP model.
        Fixed negative KE bug in CalculateHadronicVertex().
        Fixed case of NaN value for pion momentum at low gamma energies.
 
- lll_fission
    
    - Fixed uninitialised variables.
 
- Low Energy
    
    - Moved G4InelasticInteraction class to this module from 'management'.
- In ApplyYourself() method of all G4LEXXXInelastic classes, added call
        to DoIsotopeCounting(), conditional upon isotope production mode being
        turned on.
- Relaxed limits on check for "catastrophic" energy non-conservation
        (for G4LCapture, G4LFission and G4LElastic). This allows for deviation
        by the mass of heavy nucleus. Accounts for lack of recoil nucleus.
- Added deprecation warnings for removal in next major release.
 
- Neutron High Precision
    
    - Added protection of huge E/p breakdown caused by a miss match between
        cross-section data set and model.
        Added final momentum check in G4NeutronHPInelasticBaseFS.
        Added method to loosen check for bad energy violation and allow for
        big differences when G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE is set.
- Removed unnecessary debug output produced by G4NeutronHPCapture.
- Use QI values for limiting the products energies in
        G4NeutronHPInelasticCompFS.
- Added isotropic emission in CM system.
- Added non LIN-LIN interpolation and 2D interpolation.
- Added capability to produce fission fragments for those currently
        neglected, based on ENDF nfy data; enabled by setting environment
        variable G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS.
- G4NeutronHPFission: added method to loosen check for bad energy
        violation to allow for a violation of order of nuclear mass (250GeV).
- Added excited isomer index and methods in G4NeutronHPFinalState and
        G4NeutronHPDataUsed. Updated relevant sources accordingly.
- Migrated 'frameFlag' (MF6 LCT) = 3, used for several ENDF/B-VII.1
        files previously in use only for energies beyond 20 MeV.
- Added G4NeutronHPBGGNucleonInelasticXS class to be used in Shielding
        physics-list.
- Added G4NeutronHPManager and G4NeutronHPReactionWhiteBoard classes.
- Set A and Z of the reaction into "targetNucleus" from HadronicProcess.
- Enable to handle cross sections of dynamically generated G4Elements.
        Enable to handle final states of dynamically generated G4Elements.
- Fix in G4NeutronHPContAngularPar::Sample() when dealing with outgoing
        angles. Addresses problem report
        #1366.
        Fixed potential floating point error.
- Fix in returning unchanged final states in G4NeutronHPChannelList.
- Fix for porting on AIX in G4NeutronHPVector header.
- Requires new data set G4NDL-4.2.
 
- Parton-String
    
    - Improved diffraction dissociation of p/pi/k-mesons.
        Fit of exp. data on p/pi/k + H.
        Good results are obtained for h+A interactions.
- Tuning of FTF parameters: Wdelta 0.25 -> 0.05, Dcor 0.4 -> 0.3,
        E* 75 -> 100 MeV.
- Introduced new energy dependence for diffraction cross-sections.
- Improved quark exchange algorithm. Strings with large masses
        are now allowed to save their masses.
- Increased Pt transfer in excitation up to 0.3 GeV/c.
- Changed string mass sampling for baryon like strings.
- Safer implementation of the static pointer for cross-sections.
- Bug-fixes in PutOnMassShell() and high energy anti-baryons in FTF
        model. Fixed bug for K-minus interactions.
- Modified G4FTFParameters to use new G4ChipsComponentXS from main
        'cross_sections' module; made G4ChipsComponentXS static to avoid
        multiple instantiations.Removed old interface G4ComponentCHIPShadronNuclearXS.
- Implemented improved diffraction dissociation.
- Added ModelDescription() to FTF and QGS.
- Probabilities of s-sbar quark pairs and qq-qqbar diquark pairs are
        changed in G4LundStringFragmentation to describe the NA49 data.
 
- Pre-equilibrium
    
    - G4VPreCompoundFragment: fixed rare bug for abnormal fragments by
        moving computation of Z^(1/3) after consistency check.
- G4PreCompoundModel: deal correctly with instantiation and deletion of
        G4ExcitationHandler in constructor and destructor.
        Prepared to use factory approach.
- Added Description() method in G4PreCompoundModel printing the 
        description from the Physics Reference Manual.
 
- QMD Reaction
    
    - Added model name to G4QMDReaction.
 
- Quasi Elastic
    
    - Moved classes to use common cross-sections.
 
- Radioactive Decay
    
    - G4RadioactiveDecay: added computation of activation.
        Added 'isInitialised' flag to reduce initialisation printout.
        Removed internal PhysicsVector of mean free path and implemented
        same algorithm as in G4Decay,
        Modified BuildPhysicsTable() method: added Spline, added initialisation
        of atomic de-excitation (needed for the case when radioactive decay is
        used standalone).
        Set a flag 'isAllVolumesMode' to ensure that when the geometry is
        changed, the 'AllVolume' mode is still considered.
        Added call to LoadedNuclei.push_back() in LoadDecayTable() also for
        the case where user data files are used.
        Addressing problem report
        #1324.
- Changed length of input characters to 100 in G4RIsotopeTable
        to fix infinite loop when excitation energy is non-zero.
- G4RIsotopeTable: added reading of user data files in order to take
        into account the life time.
        Use evaporation nuclear level data in G4RIsotope::GetMeanLifeTime()
        for getting the mean life of an exited nuclei, when it is not provided
        in the radioactive decay database.
        Reset print message to verbose level 1 to avoid
        systematic printing for some decays.
- G4BetaDecayCorrections: fix in constructor for a bug on beta+ decay.
        In FermiFunction(), fix for discontinuity in electron screening energy.
- Requiring new data set RadioactiveDecay.3.5.
 
Intercoms
- First version of G4GenericMessenger class. Added related G4AnyType and
    G4AnyMethod utility classes.
- Code reviewed to use 'const G4String&' argument.
- G4UImanager: added macro path feature with /control/macroPath command.
- Added shortcut way for defining UImacro commands in G4UImessenger.
- Fix on executing a macro file containing Windows return codes.
Interfaces
- G4UIQt: changed name of viewer components. Set Cout as default
    ToolBox widget at startup; moved Cout widget out of toolbar.
    Updated GUI window. Added /vis/scene/add and /vis/viewer
    parameters widgets.
    Reviewed implementation to be able to call widget dialog box for
    parameters outside view/scene tab stack component.
    A menu/icon with a command without parameter will open a parameter dialog
    box. Added warning when creating new menu if command not found.
 Moved icon creation in a generic method AddIcon().
    Icons are provided in a icons.mac file.
    Put name of the application in the title bar.
    Corrected "File" menu; addressing problem report
    #1391.
    Fixed 'add' button; addressing problem report
    #1389.
    Moved command line on the right widget.
    Added "save" command to "save" icon through /vis/viewer/save.
 Fixed issue for ColorDialog in Qt < 4.5.
    Addressing problem report
    #1365.
- G4UIQt/G4VInteractiveSession/G4InteractorMessenger: added new command
    /gui/addIcon to be able to add an icon on the toolbar
    Removed "Scene" and "viewer" components.
- G4VUIshell, G4UItcsh, G4VBasicShell, G4UIterminal: improved swimming
    among command directories with ".", "..".
- G4UIExecutive: introduced string-driven-selection of UI session.
    Introduced run-time session selection scheme and moved inline code to source.
    Re-ordered printing of available sessions. Removed Win32 session from best
    guess. Fixed case-insensitivity in .g4session, with some modifications.
- G4UItcsh: changed command completion, now dynamically optimize path.
- Changed GetCommandLine() in G4UIshell to GetCommandLineString() to avoid
    conflicts on Windows.
- Code reviewed to use 'const G4String&' argument.
- G4InteractorMessenger: allow "addIcon" command to have omittable
    parameters.
- G4UIGAG, G4UIGainServer, G4UIQt, G4VBasicShell: fixed compilation
    warnings on gcc-4.7.
- Deprecated G4UIXaw driver.
Materials
- G4Element, G4Isotope, G4NistManager, G4NistMaterialBuilder,
    G4NistElement, G4NistElementBuilder: added/reviewed methods GetA(), 
    GetAtomicMassAmu().
- G4Element: added construction of isotope-vector for all elements;
    if user does not create isotopes, then vector of isotopes with natural
    abundances is created automatically using NIST data.
    In all cases the sum of isotope abundances is normalized to unity.
- G4Material: added map for composite materials built via AddMaterial().
    When constructing material from the base one use mean excitation energy
    from base material and not recompute from scratch.
- G4NistMaterialBuilder: build H2O via atom count and not mass fraction.
    Added G4_THYMINE, G4_CYTOSINE and G4_URACIL; for G4_ADENINE and G4_GUANINE
    use combination by atom numbers and not by mass fraction.
- G4IonisParamMat: more safe computation of element index and
    identification of Hydrogen and Helium.
- Added method ConstructNewIdealGasMaterial() in G4NistManager and
    G4NistMaterialBuilder.
- G4SandiaTable: avoid use of std::pow() from all functions and use instead
    precomputed values in static array; some CPU performance improvement
    expected.
- Explicitly use inclusion of headers for system of units and physical
    constants.
- Fixed cases of variable shadowing and Coverity defects.
- G4AtomicShell: reorder shells descending in energy (before, shells
    were ordered by quantum numbers and for high Z atoms low-energy outer
    shells had lower indexes than shells with higher quantum numbers).
- Updated G4ElementData and simplified code.
Particles
- Fixed problem in G4PhaseSpaceDecayChannel, where dynamic mass was cached
    in the object and used in following decays. Fixed problem in constructor.
    Fixed assignment operator of G4DecayProducts.
- Added protection to call G4ParticleRemoveAllParticles in 'readyToUse'
    state.
- Added protection to call 'Clear' for G4IonTable and G4ShortlivedTable
    in 'readyToUse' state.
- Added protection to call 'Remove' for G4ParticleTable and related tables
    in 'readyToUse' state.
- Added protection to call destructor of G4ParticleDefinition in
    'readyToUse' state.
- Explicitly use inclusion of headers for system of units and physical
    constants.
- Fixed cases of variable shadowing.
Persistency
- Minor fix for porting on AIX to G4tgrVolumeMgr in ascii module.
- Fixed cases of variable shadowing.
- Explicitly use inclusion of headers for system of units and physical
    constants.
Physics lists
- New physics lists and builders:
    
    - Added new FTFP_BERT_HP physics list, combining HP data-driven treatment
        for neutrons.
- Added new CHIPS_HP physics list, which combined CHIPS models with
        the HP data-driven treatment for low-energy neutrons.
- Instrumented EM and hadronic constructors to register factories.
 
- Physics lists qualification changes (supported/experimental/unsupported):
    
    - Marked supported: FTFP_BERT_HP.
- Marked experimental: QGSP_INCLXX.
- Marked unsupported: LHEP, LHEP_EMV, CHIPS, CHIPS_HP, QGSC_BERT, 
        QGSC_CHIPS, QGSP_BERT_CHIPS, QGSP_BERT_NOLEP, QGSP_BERT_TRV, QGSP_QEL, 
        QGSP_BERT_95, QGSP_BERT_95XS, QGSP_FTFP_BERT_95, QGSP_FTFP_BERT_95XS.
 
- EM physics builders and options:
    
    - In all EM builders use the same instances of the Bremsstrahlung and
        e+/e- pair production processes for each particle/antiparticle pair.
        As a result, mu+ and mu- share one instance of each process. Pi+ 
        and pi- share a different instance of each process.  The same occurs
        for K+ and K-, and for proton and antiproton.
        Expect reduction of memory required for physics tables and
        initialisation time for EM physics.
- In all EM builders use WentzelVI multiple scattering model for e+-
        above 100 MeV; build transport mean free path for He3 and He4, do not
        build for all other ions and heavy hadrons.
- New builder G4EmStandardPhysics_option, combining standard and
        low-energy physics configuration as best combination.
        Added "opt4" to G4PhysListFactory.
- Modified method of instantiation of multiple scattering: the same
        process instance is used by mu+ and mu-; 
        Note: different instances are still used for  pi+, pi-, K+, K-, proton
        and antiprotons. Separate processes are needed to enable the different
        internal transport cross-section tables.
        For all others particles one (extra) process instance is used and no table 
        is built.
- Use the WentzelVI model for e+ and e- above 100 MeV in all standard
        builders for HEP use cases (Opt0, Opt1, Opt2).  This is coupled with
        single Coulomb scattering using G4eCoulombScattering models. 
        Below 100 MeV the G4UrbanMscModel95 model is retained.
        This addresses the issue of unphysical large angle scatters of GeV 
        electrons reported by Atlas.
- Substituted obsolete method SetModel() by SetEmModel().
- G4EmExtraPhysics: changed name of class G4VDMuonNuclearModel
        to G4MuonVDNuclearModel.
- New physics builder G4EmLowEPPhysics to take into account renamed
        Monash U. Compton model. Removed obsolete G4EmLivermoreMUPhysics
        builder.
- Changed G4WaterExcitation to G4DNAWaterExcitation in
        G4EmDNAPhysicsChemistry. Updated builders for G4DNA.
- Added new Physics constructor G4EmLivermoreMUPhysics.
- Remove use of SetModel() for optical physics, according to changes to
        optical process.
- G4EmPenelopePhysics, G4EmStandardPhysics_option3, G4EmLivermorePhysics,
        G4EmPenelopePolarizedPhysics: added upper limit 1 MeV for nuclear stopping
        for CPU performance
- G4EmStandardPhysics, G4EmStandardPhysics_option1: use WentzelVI for pions
        and kaons
        G4EmStandardPhysics_option2: added Rayleigh scattering.
        G4EmStandardPhysics_option3, G4EmLivermorePhysics, G4EmPenelopePhysics:
        added nuclear stopping for protons and antiprotons, removed upper energy
        limit for Rayleigh.
- Updated G4EmDNAPhysicsChemistry; molecule's names changed.
        Renamed G4DNADiffusionControlledModel to
        G4DNASmoluchowskiReactionModel.
 
- Hadronic builders:
    
    - New builders using Bertini and Fritiof for lepton-nuclear.
        Migrated most of the physics lists to use these new builders
        and the new cross-sections extracted from CHIPS.
- Using new functionality of cross-sections registry to allow
        sharing of cross section data-sets.
        Migrated the Elastic and DElastic builders, and most of the
        physics lists to use factory mechanism for the new cross-sections
        extracted from CHIPS.
- Updates the INCLXX builders for compatibility with the latest INCL++
        developments. Updated QGSP_INCLXX physics list to treat light-ion-induced
        collisions with INCL++.
- Reduced number of objects deleted in hadronic builders to avoid cases
        of double deletion.
- Renamed G4IonFTFPBinaryCascadePhysics as G4IonPhysics 
        (while the original G4IonPhysics has been renamed as
        G4IonLHEPPhysics).
        Migrated G4IonPhysics and G4IonBinaryCascadePhysics to use
        Glauber-Gribov nucleus-nucleus inelastic cross sections.
- G4VHadronPhysics: include name of the hadron in the name of the process.
- Added proper treatment of light anti-ions in G4HadronQElasticPhysics.
- Removed obsolete class G4HadronInelasticQLHEP.
- Improve creation of cascade to avoid one instantiation of Pre-compound in
        FTFP{Proton,Neutron,PiK,AntiBarion} builders.
- Substituted use of G4WHadronElasticPhysics by G4HadronElasticPhysics in
        all elastic builders.
- G4HadronInelasticQBBC: reuse G4PreCompoundModel if it is already
        instantiated.
- Removed INCL builders and obsolete physics list QGSP_INCL_ABLA.
 
- Updates to lists:
    
    - Use Bertini model for pi-, K-, Sigma-, Xi- and Omega- for nuclear
        capture at rest in most physics lists. In addition use the FTF and
        Pre-compound models
        for antiproton, anti-Sigma+ and light anti-nucleus capture at rest
        in the same physics lists.
- Added four new physics lists: QGSP_BERT_95, QGSP_BERT_95XS,
        QGSP_FTFP_BERT_95 and QGSP_FTFP_BERT_95XS.
- Added nuclear capture at rest of anti-nuclei with Fritiof/Pre-compound.
- Fix to use correct classes for Bertini gamma/electro-nuclear.
- HadronPhysicsShielding: fixed problem in neutron cross-section for
        inelastic reaction below 20MeV.
- Replaced G4QandFTFStoppingPhysics with the new class
        G4BertiniAndFritiofStoppingPhysics.
- Replaced G4IonBinaryCascadePhysics with G4IonPhysics in some lists.
- Changed default physics for stopping, lepto-nuclear, and ion.
        Only LHEP- and CHIPS-based physics lists keep using exactly the same
        physics as before, whereas all other physics lists migrate to the new
        default. Deprecated the physics lists that will be removed in next
        major release.
- Consistent treatment of _EMV, _EMX, and _EMY physics lists.
 
- Added new factory class G4PhysListFactory implementing new automatic
    registration mechanism; added registry singleton class
    G4PhysicsConstructorRegistry and implemented generic physics list class
    G4GenericPhysicsList.
- Moved #includes from .hh to .cc to reduce compile dependencies.
- Explicitly use inclusion of headers for system of units and physical
    constants.
- Fixed cases of variable shadowing and Coverity defects.
Run
- Offering more granular public methods of G4RunManager, to enable external
    frameworks with own event loop to execute each individual event without
    copying context of base class methods of G4RunManager.
- Destructor of G4RunManager now sets G4State_Quit in
    addition to G4RunManagerKernel.
- Added new subType process numbers for DNA processes.
- Moved constructors and destructor for G4VPhysicsConstructor base class
    to source.
- Fixed cases of variable shadowing.
Track & Tracking
- Modified way of handling parent weight in AlongStep in accumulated way
    (same as for other properties).
    Fixed treatment of weights in G4ParticleChange.
    Addressing problem report
    #1283.
- Fixed bug in G4ParticleChange::AddSecondary(), where the local time
    of the parent was incorrectly used. Addressing problem report
    #1305.
    Added global time check for secondaries in G4VParticleChange.
- Modified output messages for CheckIt() and CheckSecondary().
    Added G4Exception in G4ParticleChangeForRadDecay::AddSecondary().
- Fix in G4VelocityTable::Interpolation().
- G4ParticleChangeForMSC: allow for modification of position and direction
    along step.
- Explicitly use inclusion of headers for system of units and physical
    constants.
- Fixed cases of variable shadowing and Coverity defects.
Visualization
- General:
    
    - Added commands (see help system or user guide for details):
        
        - /vis/scene/activateModel
- /vis/viewer/copyViewFrom
- /vis/set/colour
- /vis/set/lineWidth
- /vis/set/textColour
- /vis/set/textLayout
- /vis/scene/add/arrow
- /vis/scene/add/arrow2D
- /vis/scene/add/line
- /vis/scene/add/line2D
- /vis/scene/add/logo2D
- /vis/scene/add/text2D
- /vis/scene/add/date
- /vis/scene/add/frame
- /vis/viewer/save
 
- Improved commands:
        
        - /vis/scene/add/axes - default size is now computed automatically,
            limit width to length/50.
- /vis/scene/add/logo - default size is now computed automatically.
- /vis/scene/add/scale - default size is now computed automatically.
 
- Extended G4VisManager to support multiple user vis actions.
        Where previously one could only have a single user vis action, one can
        now register any number of such actions. Each action gets a specific
        name, and each can be assigned to any selected scenes.
        See the help system or user guide for details:
        /vis/scene/add/userAction.
- Added Event ID to trajectory attributes so that in scenes that contain
        more than one event, one can tell which trajectory came from which
        event.
- Removed creation date from EPS files (so that one can more easily use
        diff to tell that two files have the same graphics).
- Implemented 'BeginDraw/EndDraw' and 'BeginDraw2D/EndDraw2D'.
        This forces all thus-bracketed Draw messages to have the same
        transformation. If an attempt to change the transformation is detected,
        a fatal exception is raised.
- Migrated drivers to use G4VScenehandler::fObjectTransformation.
- Added G4VViewer::RefreshView().
- Added an extra refresh for auto-refresh viewers at end of run.
- G4VisManager::EndOfEvent(): removed unwarranted DrawView()
        that was causing duplicate copy of the geometry to be drawn.
- Marker size bug fix.
- Fixed Ubuntu warnings about ignoring return value of system call.
- Removed several instances of code duplication,
        unnecessary screen refreshing, incorrect buffer switching
        (necessitating extra refreshing), variable shadowing, etc.
- Removed #ifdef G4VIS... from header files.
- Protected against use of 2D primitives in viewers that can not handle
        these.
- Improved handling of parallel worlds (some worlds had been missing from redraws).
- Added SetBaseFullPVPath(). The base full path is the full path of the
        top physical volume (actually the full path of the mother of the top
        physical volume), so that even if a user issues
        '/vis/drawVolume sub-detector', the full path includes the base full
        path, i.e., the full path up to the world volume.
- G4ModelingParameters: added VisAttributesModifiers, enums and a nested
        class for communicating a modification to the vis attributes for a
        specific touchable defined by PVNameCopyNoPath, to be used by new
        commands set, '/vis/touchable/set/...'.
- Brought stray print statement under control of verbosity.
        Addressing problem report
        #1310.
 
- Fukui Rendeder (DAWN)
    
- OpenGL
    
    - Improved rendering speed through major re-design of scene and transient
        processing.
- Added command /vis/ogl/set/eventsDrawInterval to specify how frequently
        image should update when accumulating multiple events. Defaults to 1,
        meaning to refresh after every event.
- Improved Qt interface and viewer:
        
        - Introduced Qt tree ("Scene" panel in G4UIQt session).
- Added search widget in scene tree.
- Added depth-of-geometry slider.
- Double-click to change color/transparency.
- Record changes to colour and visibility of touchables so that they
            may be transmitted to other viewers.
- Attempting to instantiate a Qt viewer when there is no Qt UI
            session used to cause a crash since the viewer requires the Qt UI
            session. We now protect against this, creating an alternate OpenGL
            viewer when a Qt viewer would not be appropriate.
- Allow instantiation of a Qt viewer in batch - no window is opened,
            but one can create a scene, change view parameters and
            '/vis/ogl/printEPS' to get an EPS file in batch.
 
- Improved handling of text in all X viewers:
        
        - Volumes drawn in surface mode now hide 3D text when appropriate.
- Implemented text layout and offset.
- Fixed cases where text was missing.
 
- Corrected treatment of colour for transient objects.
- Corrected treatment of transparency in OpenGL stored mode
        for trajectories that pass through or behind transparent persistent
        objects (detector components).
- Fixed bug such that hidden markers can now be handled on-the-fly,
        i.e., without having to rebuild the display lists.
- Fixed Qt batch mode printEPS. Addressing problem report
        #1368.
- Fixed problem on Linux at startup. Addressing problem report
        #1385.
 
- OpenInventor
    
    - New option: /vis/open OIXE (in addition to the previous option,
        /vis/open OIX):
        
        - OIXE opens a G4OpenInventorXtExaminerViewer, an optional
            replacement for the standard SoXtExaminerViewer.
- Provides many new capabilities such as ability
            to set viewpoints and to fly along a trajectory path.
- This is an excellent viewer selection for accelerator studies or
            other situations in which it can otherwise be difficult to set
            appropriate views.
- See help system or user guide for details.
- Currently requires the Coin3D implementation of Inventor.
 
- Fixed libXpm linking problem.
 
Environments
- G4Py:
    
    - Updated configure script for CMake build.
- Updated Geant4 interface according to latest changes to kernel.
- Explicitly including units and constants headers.
- Updated documentations in Markdown format.
- Minor updates for examples.
 
Data sets
- New low-energy data set, G4EMLOW.6.32:
    
    - Updated high granularity electron elastic cross-section data.
- Updated data for Goudsmith-Sounderson model.
- Removed unused files for obsolete Penelope01 models from the
        module Penelope.
- Added new cross-section data files for microdosimetry models in Si,
        for electrons, protons, and ions.
- Added updated Bremsstrahlung data files with extended grid from NIST
        (as in Penelope2008); added probabilities of scattering off electrons
        from S. M. Seltzer and M. J. Berger, Atom. Data and Nucl. Data Tables
        35 (1986) 345-418.
- Added new ionisation cross-section data for incident protons and alphas
        from the work of A. Taborda et al.
- Updated data for Seltzer-Berger Bremsstrahlung model obtained from
        Geant4 Penelope dataset.
- Updated icru73 ion stopping data with PASS code computations (main
        difference for Iron ions - Bragg peak is lower by about 10%).
- Added optimized data files for Livermore gamma processes.
- Added optimized muelec files.
 
- New neutron data set with thermal cross sections, G4NDL.4.2:
    
    - Most data is converted from ENDF/B-VII.r1 with processing by
        NJOY-99.u364 with reconstruction tolerance of 0.001.
        Following isotopes are exception: Cl35 (same as v.4.0), MT600,
        4Be7, 25Mn55, 33As74, 39Y90, 40Zr90, 40Zr91, 40Zr92, 40Zr93, 40Zr94,
        40Zr95, 40Zr96, 69Tm168, 69Tm169, 69Tm170, 74W180, 74W182, 74W183,
        74W184, 74W186, 90Th232, 91Pa231 and 91Pa232.
- New independent and cumulative fission product yield data within
        Fission/FF module, originating from ENDF/B-VII.1 neutron fis.yields
        sub-library.
- Fixed problems in following isotopes: 44Ru105, 60Nd146, 63Eu152
        and 92U238.
- Separated thermal data from main data set distribution.
 
- New data set G4NEUTRONXS-1.2 for evaluated neutron cross section data
    on natural composition of elements:
    
    - Evaluated cross section data derived from new G4NDL set.
 
- New data set for radioactive-decay processes, G4RadioactiveDecay.3.6:
    
    - Added new files containing the forbidden Beta decay information for all
        nuclei known to have such decays in the ENSDF database.
- Updated format of files exceeding 100 characters length.
        Addressing problem report
        #1336.
 
- New data set for evaluated SAID data-base, G4SAIDDATA1.1:
    
- New data set PhotonEvaporation.2.3 for nuclear de-excitation data:
    
    - Corrected internal conversion coefficients for Cs133, Pa234, and TH231,
        according to ENSDF. Updated files z90.a231, z91.a234 and z55.a133.
 
Examples
- Updated reference outputs; added CMake scripts where missing.
- Migrated to new g4tools histogramming system, where needed.
- Updates to apply new coding conventions and fixed variable shadowing.
- Added Doxygen documentation and comments. Updated README files
- advanced
    
    - air_shower
        
        - Removed use of SetModel() for optical physics,
            according to changes to optical process.
 
- ChargeExchangeMC
        
        - Added "File" menu in gui.mac. Addressing problem report
            #1395.
- Added icons.mac. Fixed compilation errors.
 
- composite_calorimeter
        
- dnaphysics
        
        - Added messenger for material change.
- Updated SteppingAction class.
- Added more histogram variables.
 
- gammaknife
        
        - New example application to simulate an advanced device for
            Stereotactic Radiosurgery.
 
- gammaray_telescope
        
        - Changed logic of UI/GUI instantiation in the main(), to avoid
            problems when running in batch mode.
- Fixed warnings due to two G4Regions without their own cut.
            Change physics list from QGSP_BIC to FTFP_BERT, to fix deprecation
            warnings for LEP models.
 
- hadrontherapy
        
        - Remove IAEA detector and related files. Added Carbon beam line.
            Added GPS. Migrated to the new stopping physics.
            Renamed executable.
- Replaced INCL with INCLXX in physics-list.
- Included generic command for visualization vis/open OGL in input
            macro files where needed.
- Fixed compilation warning on gcc-4.7.
 
- iort_therapy
        
        - Migrated to the new stopping physics.
- Included generic command for visualization vis/open OGL in input
            macro files where needed.
- Fixed compilation warning on gcc-4.7.
 
- lAr_calorimeter
        
        - Use of PhyListFactory instead of explicit instantiation of physics
            lists.
- Added icons.mac.
 
- medical_linac
        
        - Fixed compilation warnings and cleanup of unused files.
- Cleared unnecessary calls to 'this'.
- Added batch.mac to run without graphics.
- Fixed compilation warnings on gcc-4.7 and clang.
 
- microbeam
        
        - Added description of composition of cell.
- Updated composition of cell cytoplasm.
 
- microdosimetry
        
        - Added TrackingAction, counting N secondaries created in/outside
            "target" region.
- G4ElectronCapture: clean up killing captured electron.
            Updated physics list for usage of SetEmModel() method.
 
- nanobeam
        
        - Switched to touchables.
- Renamed executable.
 
- underground_physics
        
        - Removed obsolete call to G4OpBoundaryProcess::SetModel().
 
- xray_fluorescence
        
        - Fixed compilation warnings on clang.
 
 
- basic
    
    - B1: Use QBBC physics list instead of QGSP_BIC_EMY, which becomes
        obsolete.
- B4: replaced messenger classes with use of G4GenericMessenger.
 
- extended
    
    - analysis
        
        - Restructuring of AnaEx01, AnaEx02, AnaEx03 examples for use of
            shared classes; shared classes are now in a new directory,
            'shared'.
 
- common
        
        - Updated scripts for copying shared files.
- Added functions to customize the HBOOK IDs by user.
- Added setting locks introduced in the base class.
- Fixed handling of directories for both histograms and ntuple.
- Added GetNtuple() function to specific managers.
            Increased granularity of verbose levels
            (now 3 levels are available).
- Making creating directories optional.
 
- common/analysis
        
        - Adding additional information to analysis objects:
            units, activation option.
- Make possible to book histograms/ntuple before opening a file.
- Using new bN::configure functions in SetHN(..).
- Messages from Fill() functions only in verbose level 3.
- Fixes in memory management.
- Added possibility to fill h1, h2 with values with automatically
            applied function. Pass units via a name instead of value.
- Added functions for accessing h1, h2 by name.
- Splitting verbose level 1 in 2 levels and shifting the upper
            levels.
- Fixed GetH1[2]Width: return the correct value also when histogram
            is inactive.
 
- electromagnetic/TestEm0
        
        - Updated PhysListEmStandard for GenericIon.
            Use G4UrbanMscModel96.
- PhysicsList: added G4EmStandardPhysics_option4
            Added more units for cross sections.
 
- electromagnetic/TestEm1
        
        - New histograms for "total energy deposit", "energy of charged
            secondaries at creation", "energy of neutral secondaries at
            creation".
- Use NIST materials in DetectorConstruction::SetMaterial().
- Added StackingAction class.
- PhysListEmStandard: use G4UrbanMscModel96.
- PhysicsList: added G4EmStandardPhysics_option4.
            Added radioactive-decay and associated input macro.
- Avoid to save random number per event.
 
- electromagnetic/TestEm2,
        electromagnetic/TestEm3
        
        - Added PhysListEmStandardWVI. Use G4UrbanMscModel96.
            Added Em physics option4.
- Added statistics on number of charged and neutral steps.
 
- electromagnetic/TestEm4
        
        - Avoid to save random number per event.
 
- electromagnetic/TestEm5
        
        - PhysListEmStandardSSM: added alternative single scattering models.
- PhysListEmStandardWVI, PhysListEmStandardSS: more correct process
            order and WVI model.
- Use G4UrbanMscModel96. Added Em physics option4.
- Code cleanup and added protections against division by zero.
- Avoid to save random number per event.
- Added fluo.mac input macro. Fix in pixe.mac.
 
- electromagnetic/TestEm7
        
        - PhysListEmStandard, PhysListEmStandardSS: more correct process order.
- Use G4UrbanMscModel96. Added Em physics option4.
- c2_functions: fixed compilation problems on gcc-4.7.
- Added extra test case for low-energy ions.
 
- electromagnetic/TestEm8
        
        - DetectorConstruction: added gas of ALICE TPC and macro testALICE.mac.
- TargetSD: added zero-energy steps to histograms and step counters.
- Added Em physics option4 to PhysicsList and decreased limit on cuts.
- Fixed initialization in PrimaryGeneratorAction.
 
- electromagnetic/TestEm9
        
        - Migrated to the new stopping and ion physics.
- Added Em physics option4 to PhysicsList and decreased limit on cuts.
 
- electromagnetic/TestEm10
        
        - Em10RunAction: fixed case of write outside boundaries of C-array.
            Cleanup initialisation.
- Optimized rewrite of SteppingAction.
 
- electromagnetic/TestEm11
        
        - Modified StepMax mechanism; added command /testem/StepMax.
- PhysListEmStandard, PhysListEmStandardSS: more correct process order.
- Use G4UrbanMscModel96. Added Em physics option4.
            Decreased limit on cuts.
- New results in sandia/EGSnrc: e- 50 MeV, 150 MeV in Water.
 
- electromagnetic/TestEm12
        
        - Modified StepMax mechanism; added command /testem/StepMax.
- PhysListEmStandard, PhysListEmStandardSS: more correct process order.
- Use G4UrbanMscModel96. Added Em physics option4.
            Decreased limit on cuts.
- Printing correction in StepMaxMessenger.
 
- electromagnetic/TestEm15
        
        - Printing corrections in RunAction::EndOfRunAction().
- Added emstandard_opt3 in PhysicsList to allow muMsc WVI model.
            Use G4UrbanMscModel96.
- SteppingAction: set process name to 'muMsc'.
- Added input macro muon.mac.
 
- electromagnetic/TestEm16
        
        - Added Rayleigh scattering in PhysicsList.
 
- electromagnetic/TestEm17
        
        - MuNuclearBuilder: use G4MuonNuclearProcess instead of
            G4MuNuclearInteraction.
 
- electromagnetic/TestEm18
        
        - Printing corrections in RunAction::EndOfRunAction().
 
- eventgenerator/HepMC
        
        - Migration to "new" G4Exception scheme.
- Fixed building Pythia6 in HepMCEx01 so that it works without
            CERNLIB.
 
- eventgenerator/pythia/decayer6
        
        - Introduced use of classes from 'common' module.
- Introduced a physics builder for adding the external decayer to
            an existing physics list.
- Updated pythia6_decayer.in macro: added initialization
            (now required); added call to /pythia6Decayer/verbose.
- Limited G4Pythia6Decayer verbose levels to 0, 1.
 
- eventgenerator/exgps
        
        - Renamed exGPS.cc to exgps.cc to match exactly with directory name.
 
- exoticphysics/phonon
        
        - New example demonstrates how phonon propagation in cryogenic
            crystals can be simulated.
 
- field/field04
        
        - Reverse order of checking thePostLV and thePreLV, to fix
            run-time crash on Windows.
- Removed use of SetModel() for optical physics,
            according to changes to optical process.
 
- field/field06
        
        - New example exercising capability of tracking massive particles
            in a gravity field.
 
- geometry/g3tog4
        
        - Removed cltog4 example, duplication of clGeometry.
- Restructured clGeometry for use of classes from common.
            Changed gun particle position & direction in test macros to
            get particles to go through volumes inside HALL.
 
- geometry/transforms
        
        - Simplified version, limited to geometry functionalities.
            Renamed classes, updated input macros.
 
- hadronic/Hadr00
        
        - Use FTFP_BERT as default in physics-list.
- Renamed main file to match exactly with directory name.
 
- hadronic/Hadr01
        
        - PhysicsList: fixed bug for absence of elastic scattering.
- Added G4EmUserPhysics builder. Use FTFP_BERT as default
            in physics-list.
- Renamed main file to match exactly with directory name.
 
- hadronic/Hadr02
        
        - Added first implementation of UrQMD interface.
- Renamed main file to match exactly with directory name.
- Migrated to the new stopping physics.
 
- hadronic/Hadr03
        
        - New example demonstrating how to compute total cross-section
            from the direct evaluation of the mean free path.
 
- medical/DICOM
        
        - Corrections in materials Z/A. Addressing problem report
            #1287.
- Assign return value for fread() and fscanf() calls in DicomHandler.
            Fixes compilation warnings on Ubuntu.
 
- medical/electronScattering
        
        - PhysListEmStandardWVI, PhysListEmStandardSS: more correct process
            order and fixed initialisation.
 
- medical/electronScattering2
        
        - PhysListEmStandardWVI, PhysListEmStandardSS: more correct process
            order and fixed initialisation.
- Corrected area calculation in ElectronRun.
 
- medical/fanoCavity[1,2]
        
        - PhysListEmStandard_WVI: more safe initialisation method.
 
- medical/GammaTherapy
        
        - Migrated to the new stopping physics.
 
- optical/LXe, WLS
        
        - Removed use of SetModel() for optical physics,
            according to changes to optical process.
 
- parallel/MPI
        
        - Migrated to CMake build with change of directory structure.
- Migrated to new G4Exception signature.
- Fixed infinite-loop of slaves when a macro does not exists.
- Added support for execution of macro with /control/macroPath.
- Added best guess of selection of a UI shell.
 
- radioactivedecay/rdecay01
        
        - PhysicsList: use G4PhysicsHelper. Added atomic de-excitation.
- RunAction : added protections against division by zero.
- fullChain.mac: added example of command /grdm/nucleusLimits.
            New macro electronicCapture.mac.
            Added macros Cf238.mac and No252.mac to demonstrate UserRadData
            and UserEvapData files respectively.
- Removed initialisation of de-excitation in PhysicsLists, to be
            compliant with changes in kernel processes.
 
- radioactivedecay/rdecay02
        
        
        - Added ntuple RDecayProducts registering Z,A,time,energy, PID,weight
            of each radioactive decay product
- Changed macro UserRadDataCf238Test.mac and UserRadData_z82.a210 to
            check that the mean life time given is properly taken into account
            in the code.
- Merged modifications for the activation computation.
- Migrated to the new stopping physics.
 
- runAndEvent/RE01, RE02
        
        - Fixed elastic physics for ions in physics-list.
- Renamed main file to match exactly with directory name.
 
- runAndEvent/RE03
        
        - Corrected signature of
            RE03UserScoreWriter::DumpQuantityToFile() to
            according to changes done in 'digits_hits' module.
 
- visualization
        
        - Corrected vis user action extent.
 
 
- novice
    
    - N03
        
- N06
        
        - Set '/tracking/verbose 3' in input macros to also test timing of
            optical photons.
- Removed use of SetModel() for optical physics, according to
            recent changes to optical process.