Geant4 10.1 Release Notes

December 5th, 2014

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

1. Supported and Tested Platforms
2. Supported CLHEP version
3. Items for migration of the user code
4. New Developments and Capabilities
5. Expected effects on physics and performance
6. Known Run-Time Problems and Limitations
7. Compilation Warnings
8. Geant4 Software License
9. Detailed list of changes and fixes

## 1. Supported and Tested Platforms

Platforms:

- Linux, gcc-4.4.7.
  Tested on 64 bit architectures (Intel or AMD) with Scientific Linux CERN 6 (SLC6) (based on Red Hat Linux Enterprise 6).
- MacOSX 10.9 with gcc-4.2.1/clang-3.5
- Windows7 with Visual C++ 12.0 (Visual Studio 2013)

More verified and tested configurations (64 bits):

- Linux, gcc-4.7.2, gcc-4.8.2, gcc-4.9.2
- Linux, Intel-icc 14.0, 15.0
- MacOSX 10.10 with gcc-4.2.1/clang-3.5
- Windows7 with Visual C++ 9.0, 10.0, 11.0
- Many Integrated Core architecture (aka Intel Xeon Phi) with Intel-icc 15.0

Note: Windows platforms are supported/verified only for the sequential mode. Multi-threading capability of this release does not support Windows.

## 2. Supported CLHEP version

This release of Geant4 has been verified with CLHEP, release 2.2.0.4. 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. 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.

General

- The new version of CLHEP can be built supporting the C++11 Standard, on compilers that support C++11. When C++11 option is chosen in a multi-threaded build of Geant4, this trigers the use of the Standard `thread_local` and `atomic` keywords.
- The procedure of deleting the full geometry for rebuilding a new one from scratch has been reviewed. It is suggested to use `G4RunManager::ReinitializeGeometry(true)` or the equivalent UI command `/run/reinitializeGeometry` rather than directly invoke deletion from G4SolidStore, G4LogicalVolumeStore and G4PhysicalVolumeStore, to safely delete all previously-defined solids, logical and physical volumes.

Geometry

- A new minor release of the GDML schema, GDML-3.1.1, is used, supporting the new MultiUnion structure. This new feature is available only in installations which use the Unified Solids Library. The new schema is fully compatible with old schema versions and schema validation thorugh network is already activated against it.

Electromagnetic and optical physics

- The data file G4EMLOW6.41 should be used.
- A new structure of UI commands for optical-physics is implemented.

Hadronic physics

- The new data sets G4PhotonEvaporation-3.1, G4RadioactiveDecay-4.2 and G4NDL-4.5 should be used.

Generic biasing

- The G4VBiasingOperation interface class had been modified to simplify the interface. These are described in the Biasing section of detailed changes chapter below.

Data Sets

This release introduces new data set versions. Please see the corresponding details in Section 10 of this document.

- New data set versions: `G4EMLOW-6.41, G4NDL-4.5, G4RadioactiveDecay-4.2, G4PhotonEvaporation-3.1`.

## 4. New Developments and Capabilities

Geometry

- In this release, an option allows an installation to use the Unified Solids Library primitives, to replace the original Geant4 solids, as in the previous release. An additional configuration option enables a build against an external installation of the USolids library.

Materials

- Preliminary support for phonon propagation (see Phonon Physics below) is provided by G4LatticeLogical (which defines parameters for materials) and G4LatticePhysical (which associates G4LatticeLogical with a particular G4VPhysicalVolume, including lattice orientation). These objects should be instantiated in the user's G4VUserDetectorConstruction class.

Electromagnetic physics

- A new class G4EmParameters and updated set of UI commands have been introduced, allowing easy definition of the EM parameters both in sequential and multi-threaded modes.
- A new option "DisplacementBeyondBoundary" for simulation of multiple scattering diplacement at geometry boundary is available.
- G4SynchrotronRadiation process is now applicable for all charged particles.
- High energy processes G4GammaConversionToMuons and G4eeToHadrons are ready for production.
- A new model class G4LowEWentzelVIModel is introduced for low-energy electron elastic scattering. Low-energy cross-section for water has been added for the low-energy Livermore photoelectric model.
- A new User Interface command to disable production thresholds in atomic deexcitation has been introduced: `/process/em/deexcitationIgnoreCut true/false`.
- An alternative set of data files for the simulation of atomic fluorescence lines is also provided in this release.
- In Geant4-DNA physics, added ionisation model from Rudd for B, Be, Li and Si ions. An alternative physics constructor G4EmDNAPhysics_option1 including the G4LowEWentzelVIModel has been also introduced. G4DNAIonisation and G4DNARuddIonisationExtendedModel have been updated for G4GenericIon usage.
- Classes for the simulation of water radiolysis have been introduced for Geant4-DNA chemistry. See details at Geant4-DNA project site

Hadronic physics

- In this release, mass width is taken into account in decays of short-lived hadrons. Daughter hadrons have dynamical mass according to Breit-Wigner distribution.
- The Fritiof (FTF) model has been significantly improved, resulting in closer agreement with thin-target data. Revisions in string fragmentation affect the meson production, and in particular the pi-zero fraction of showers. This is largely counteracted by other improvements of FTF and an imposed reduction of omega production. The overall effects on hadronic observables is found to large cancel in our benchmark hadronic calorimeter setups, but the effect should be monitored on experiment setups for key observables including visible energy, resolution, longitudinal and lateral size.
- The fragmentation part of the Quark-Gluon-String (QGS) model has been improved significantly. This implies that the hadronic showers produced with QGS-based physics lists (e.g. QGSP_FTFP_BERT) become wider and longer, and with a lower energy response, in closer agreement with the ones produced by FTF.
- The INCLXX model has been extended up to 15-20 GeV incident energy.
- Labeling of tracks resulting from muon stopping are added.

Phonon Physics

The contents of this new physics category were moved into the toolkit from the `phonon` extended example.

- A new set of processes and utility classes are provided as a framework to support propagation of phonons through materials.
- G4LatticeManager and G4LatticeReader provide access to the solid crystal structure parameters (G4LatticeLogical and G4LatticePhysical in Materials) read from data files and used by the physics processes.
- G4PhononPolarization defines an enum to identify the three acoustic phonon polarization states supported in this framework. See also Particles below.
- G4PhononTrackMap is an internal singleton class used by the processes to associate additional phonon-specific information (wave number, etc.) with each propagating G4Track object in the event.
- G4VPhononProcess is the abstract base class for the phonon processes, and provide some common utility functions.
- G4PhononDownconversion implements the conversion of high energy phonons to pairs of lower energy phonons.
- G4PhononReflection is a "template" process which will, in the future, implement reflection or transmission of phonons at the boundaries of crystals. Currently, phonons at a boundary are absorbed, and an associated G4VUserSteppingAction (in the `phonon` example) records hits.
- G4PhononScattering implements the scatting of phonons from one polarization state to another due to impurities or defects in the crystal lattice.

Generic Biasing

- A new class G4BiasingProcessSharedData is introduced, allowing to gather information shared by the G4BiasingProcessInterface instances attached to the same G4ParticleDefinition (hold by a same G4ProcessManager).
- Now providing easier access to cross-sections/mean-free-paths of wrapped physics processes, making all them up to date at the first call to the biasing operator.
- New examples have been added: `GB03` showing a technique inspired by geometry importance biasing, but with some more flexibility; `GB04`, an implementation of Bremsstrahlung splitting, using the generic biasing classes.

Particles

- Ions and isomers are instantiated during the event loop as they become necessary. In the previous release 10.0, all ions and isomers were instantiated before the event loop.
- Pre-instantiation of all ions and isomers is still optional via a UI command at `PreInit` or `Idle` states.
- Three new particles corresponding to the polarization states of acoustic phonons are provided to support the phonon physics processes. These were moved into the toolkit from the `phonon` extended example.
  - G4PhononLong: longitudinal (along crystal valley axis) polarization;
  - G4PhononTransFast: higher-speed transverse polarization;
  - G4PhononTransSlow: lower-speed transverse polarization.

Physics Lists

- Switched on muon-nuclear by default in all physics lists.
- Cut on proton is set to zero, to simulate all recoils from elastic scattering, in physics lists using neutron-HP.
- The physics lists based on INCLXX use this model for pions, protons and neutrons up to 20 GeV, and the string model (FTF or QGS) starting from 15 GeV.
- Trying out a new hadron elastic scattering, still in development, in the experimental physics-list FTFP_BERT_TRV.
- The G4OpticalPhysics constructor has been restructured and UI commands have changed. This allows for different particles to have specific settings of optical parameters.
- New experimental physics lists ShieldingM and NuBeam are introduced.

Visualization and Interfaces

- Evolution of Qt User Interface
  - The "Scene tree" opens up as soon as the detector is drawn.
  - An editable "Viewer properties" panel allows one to adjust view parameters interactively.
  - "Picking information" also has its own panel that may be opened by the user. Picking has been improved.
  - The "Scene tree, Help and History" panel may be detached, leaving more screen space for the viewers.
  - The "Output" panel may also be detached.
  - One may select output by a string match or, in the case of multi-threaded mode, by thread.
  - A "Useful tips" window is available in the viewer panel and comes up automatically if no other view has been created.
- In representing curved surfaces by planar polygons the number of "lines per circle" may optionally be reduced to as little as 3 (the default is 24) if speed of rendering is the priority.
- New commands
  - `/vis/touchable/dump`: dumps attributes of a specific touchable (as set by the `/vis/set/touchable` command).
  - `/vis/scene/add/extent`: allows one to add an extent (i.e., coordinate system and range) to a scene. Normally this is done automatically by a survey of the geometry, but if you wish to draw trajectories without geometry, for example, you may use this command.
  - `/vis/set/textSize`: controls text size on subsequent `/vis/scene/add/axes` and `/vis/scene/add/scale` commands.
- Improved commands
  - `/vis/scene/add/scale`: one may now add more than one scale to a scene.
  - `/vis/scene/add/axes`: one may suppress annotations.
  - `/vis/scene/add/logicalVolume`: now draws axes of the local coordinate system.

## 5. Expected effects on physics and computing performance

General

- Memory space required per thread is reduced to less than half. This reduction does not include the space defined in the users code.
- We observe up to 10% speedup in several use-cases.

Electromagnetic physics

- All internal physics tables are shared between threads, thus reducing contribution of electromagnetic physics to total memory per thread.
- Code cleanup providing slight speedup (about a few percent) of electromagnetic simulation.

Hadronic physics

- Extensive development in the FTF model has improved significantly the agreement between simulation and thin-target data on hadron-hadron and hadron-nucleus interactions. Small changes are expected in hadronic shower observables in the physics lists based on the FTF model (e.g. FTFP_BERT).
- Improvements in the fragmentation part of the QGS model produce now hadronic showers which are more similar to those produced by the FTF model.

## 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:
  - Added -DG4USE_STD11 compilation flag when c++11 is selected at configuration time for capable compilers.
  - Added command line arguments to configuration scripts to report C++ standard compiled against and TLS model used if multithreading support available. Added presence of static libs as a feature argument that can be checked.
  - Added support for "offloading" of tests (e.g. for use on Xeon Phi co-processors).
  - Removing any self-links from internal library link list when building global libraries.
  - Enabled choice between builtin or system USolids library (builtin is the default).
  - Added Modules/Geant4ConfigureModulefile.cmake new file to configure and install a basic Environment Modules module file for Geant4.
  - Added ROOT_BIN_DIR variable in FindROOT.cmake to point to the path of root executables. Needed for merging of output files for MT in physics testings.
  - Include Geant4 headers as SYSTEM and after other headers.
  - Removed unused settings for tpmalloc module.
  - Updated references to data libraries version for 10.1.
- GNUMake:
  - No longer supported, only for development/testing use.

### Analysis

- Updated histogramming tools to g4tools-1.16.3.
- Added new CreateNtupleTColumn() functions for ntuple columns of vectors in G4AnalysisManager.
- Added interface classes G4VAnalysisReader and G4VRNtupleManager for reading, and their Root specializations: G4RootAnalysisReader, G4RootRNtupleManager. Introduced independent numbering of warnings from reader.
- Use G4Threading::IsMultithreadedApplication() instead of G4AnalysisManagerState::IsMT() (now removed); this function fixes files clean-up at the end of sequential application built against multi-threaded libraries.
- Added typedefs and functions for accessing iterators over H1, H2, Ntuples. Added G4AnalysisManager functions to access FirstIds.
- Replaced use of std::cout with G4cout in Root managers to fix potential data race among threads.
- Get rid of obsolete 'register' keyword in csz_inflate.cc.
- Removed unsused data member in G4P1DummyManager.
- Added histograms and profiles support in Csv.
- Implemented reading csv ntuples.
- Finalized G4VAnalysisReader interface: added reading P1, P2, H3; modifications to fit to all outputs; support for both user defined file names and "generic" file names (generated automatically by G4AnalysisManager from the base name).
- Introduced G4BaseFileManager and separated implementation for output/input file managers
- Implemented reading P1, P2 in G4RootAnalysisReader; prepared code for H3 which reading is not yet available in tools.
- Completed implementation of G4XmlAnalysisReader; now requiring Expat parser.
- Fixed writing ntuples when more than one ntuple is defined (Xml).
- Do not overwrite user defined file extension.
- Fixed units in /analysis/[h|p]n/create and /analysis/[h|p]n/set commands.
- Fixed Coverity defects: initialization of data members in G4VAnalysisManager; provided assignment operator for G4HnDimensionInformation.
- Removed H1, H2, P1 dummy manager classes and H3, P3 moved in hbook implementation in examples.
- Revised (and simplified) numbering of warnings in exception messages.
- Support reading of root ntuple with column of std::string type by using ntuple_binding. Implemented reading H3 for Root. Added an option to write the Hippo header in csv ntuple output.
- Fixed reading histograms with titles of more words.
- Revised (and simplified) numbering of warnings in exception messages.

### Digitization & Hits

- Added Merge() methods to G4ScoringManager and G4VScoringMesh, needed for multi-threading.
- Changed method names in G4VScoringMesh and derived classes.
- Added missing options in command-based scorers in G4ScoreQuantityMessenger and G4ScoreQuantityMessengerQCmd.
- Added protoype cloning mechanism for sensitive-detectors, needed for multi-threaded mode.
- G4VScoringMesh, G4ScoringBox, G4ScoringCylinder: fixed Construct() to make it work when the entire geometry has been destroyed. Addressing problem report #1665.

### Electromagnetic Processes

- DNA:
  - Modified G4DNAChampionElasticModel to read high precision differential cumulated cross-section.
  - Modified calculation of secondary kinetic for fast code. Updated chemistry.
  - Changed to faster method interpolation in G4DNABornIonisationModel.
  - G4ITSafetyHelper: force temporary usage of G4PathFinder.
  - Added interface class G4ITTimeStepper.
  - Added G4DNABornAngle and G4DNARuddAngle generators; ionisation models switch to use angular generator interface.
  - Switched to DNAion for Si in G4DNAGenericIonsManager.
  - Added Si to G4DNARuddIonisationExtendedModel. Updated G4DNAIonisation and G4DNARuddIonisationExtendedModel for G4GenericIon usage.
  - Avoid usage of molecule iterators as pointers.
  - Removed obsolete class for electron excitation.
  - Get rid of obsolete 'register' keyword in code.
  - Added G4ITStepManager class and related messenger.
  - Added LEPTS model classes.
  - Renamed classes: G4ITTimeStepper-->G4VScheduler; G4ITStepManager-->G4ITScheduler; G4ITStepManager-->G4ITSchedulerMessenger. Removed G4AllITManager G4ITManager and G4VITScheduler classes. Added G4ITFinder and G4VITTrackHolder. Implemented G4ITTrackHolder. Code cleanup.
  - Removed G4MolecularConfiguration from the manager's table when deleted.
  - Use G4ITTimeStepper in ChemMan::InitMaster() and G4DNASecondOrderReaction.
  - Avoid use of std::map at the application level in TimeStepAction.
  - Simplified initialization of chemistry from user applications; just registering constructor is enough to initialize the chemistry.
  - Transform fStopAndAlive to fStopAndKill in G4DNABrownianTransportation when the particle has reached a boundary.
  - Updated G4ITNavigator2 to recent developments in G4Navigator.
  - Fixed bug in G4MoleculeGun and corrected track creation by G4MoleculeGunMessenger.
  - Improved error message for missing data in PW elastic model.
  - Removed obsolete classes.
  - Fixes for Coverity defects.
  - Requires G4EMLOW-6.41 data-set.
- High Energy
  - G4GammaConversionToMuons: added protection against infinite loop at the reaction threshold; removed G4ThreadLocal variables; introduced G4Exp, G4Log and NIST functions; added counters limiting do/while loops.
  - G4eeToHadrons, G4eeToHadronsModel,G4eeToHadronsMultiModel: revision and cleanup of code.
- Low Energy
  - Added new model class G4LowEWentzelVIModel.
  - G4LivermorePhotoElectricModel: added low-energy cross-section for water, make cross section const below first ionisation potential for all elements/materials.
  - G4IonParametrisedLossModel, G4LivermoreIonisationModel: added G4DeltaAngle generator for angular distribution.
  - Make G4AtomicTransitionManager become pure singleton shared between threads, with all run time methods const; Initialise() method to be called in the beginning of the run. Adapted classes accordingly.
  - Changed Livermore, LivemorePolarized, LivemoreModified and Penelope Compton to unify the treatment for energy < LowEnergyLimit(). Null cross-section and no change in the gamma state.
  - G4LivermorePhotoElectricModel, G4LivermoreGammaConversionModel, G4LivermoreRayleighModel, G4LivermoreComptonModel, G4IonParameterisedLossModel: added proper deletion of G4PhysicsVectors at the end of run.
  - Use cumulated cross-sections in G4MicroElecElasticModel; use LinLinInterpolate() instead of LinLog(); better treatment of GenericIon in G4MicroElecInelastic and G4MicroElecInelasticModel; improved MT compatibility.
  - Change in angular generator to use G4DeltaAngle model.
  - Fix in G4MicroElecInelasticModel for potential infinite loop.
  - Fixes for Coverity defects.
  - Requires G4EMLOW-6.41 data set.
- Muons
  - G4MuPairProductionModel, G4MuBremsstrahlungModel: added protection at initialisation for the case when user artificially reduces high energy limit of the model. Addressing problem report #1670.
  - Added new class G4TablesForExtrapolator to store EM tables shared between threads. Imported data from G4EnergyLossForExtrapolator.
  - Use G4EmParameters in G4MuPairProductionModel, G4MuBremsstrahlungModel and G4MuIonisation.
- Polarisation
  - G4PolarizationMessenger: fixed Coverity report on non-initialized members.
  - G4PolarizedCompton, G4PolarizedComptonModel: added 'startFromNull' option as for standard Compton process and add same low-energy threshold to create secondary particle.
  - G4PolarizedCompton: fixed initialisation, added sharing of process table among threads.
  - Use G4EmParameters in G4PolarizedCompton, G4PolarizedGammaConversion, G4PolarizedPhotoElectricEffect, G4ePolarizedBremsstrahlung and G4ePolarizedIonisation.
- Standard
  - G4WentzelOKandVIxSection, G4WentzelVIRelXSection, G4WentzelVIModel, G4WentzelVIRelModel, G4eCoulombScatteringModel, G4hCoulombScatteringModel: added Boolean flag to identify in physics-list if multiple and single scattering are combined or not; make consistent definition of min and max scattering angle for single scattering mode.
  - G4WentzelOKandVIxSection: fixed initialisation for low-energy model (this model is not combined with single scattering); fixed small inaccuracy for sampling.
  - G4WentzelVIModel: changed single scattering factor from 1.5 to 1.25. Added possibility to compute second momentum; added more accurate transition to single scattering mode; define single scattering mode before transformation from true to geometry step length to avoid many small steps for very low-energy particles; Refinements of lateral displacement.
  - G4BraggModel, G4BraggIonModel: added spin correction.
  - G4UniversalFluctuations: adapted code to allow for vectorised use of random engine for CPU performance improvement; no change to algorithms.
  - G4UrbanMscModel: modified ComputeGeomPathLength() method to provide one single return statement for easier printouts; Modification in order to improve timing by 1-14%, depending on the setup and cut; made correction to improve efficiency in 'UseSafety' mode; fixed numerical problem for the case when range is nearly truePathLength; refinements of lateral displacement; added new step limit type UseSafetyPlus; corrections to improve CPU in the use of random numbers.
  - G4DeltaAngle: added implementation of SampleDirectionForShell() virtual method; improved sampling; added check on length of do/while loop; comment out warning happens frequently for low-energy e-.
  - G4eCoulombScatteringModel, G4hCoulombScatteringModel, G4IonCoulombScatteringModel: updated initialisation of vector of cuts; cut for recoil can be changed via '/run/setCut' command.
  - G4ComptonScattering: set 'startFromNull' flag to true for all models forced to zero cross-section for the low energy in the cross-section table.
  - G4KleinNishinaModel, G4KleinNishinaCompton, G4HeatedKleinNishinaCompton: do not sample final state below low limit of the model (default 100 eV); added protection to do/while loop; added check on secondary energy of both gamma and electron using internal limit.
  - G4HeatedKleinNishinaCompton: use inheritance from G4KleinNishinaCompton.
  - G4IonCoulombScatteringModel: fix for non-initialised data (Coverity report).
  - G4ASTARStopping, G4PSTARStopping, G4BraggModel, G4BraggIonModel: restore functionality to access NIST stopping data via chemical formula and not only by material name.
  - G4ASTARStopping, G4ESTARStopping, G4PSTARStopping, G4WaterStopping: reduced memory churn by using static data; delete physics vectors at destruction; changed interface to be const (allowing it to be shared among threads).
  - G4BraggModel, G4BraggIonModel: use static pointer to G4*STARStopping classes, which are initialized once.
  - G4PAIxSection, G4PAIPhotData, G4PAIPhotModel, G4PAIModelData: corrected deletion at destruction; use spline interpolation; fixed sampling of delta-electrons. Fixed memory leak in G4PAIxSection.
  - G4PairProductionRelModel, G4eBremsstrahlungRelModel: added protection at initialisation for the case when user artificially reduces high energy limit of the model. Addressing problem report #1670.
  - G4PEEffectFluoModel: fixed threshold cross section.
  - G4GoudsmitSaundersonMscModel: fixed rare division by zero.
  - Use G4EmParameters at initialisation in G4eIonisation, G4hIonisation, G4ionIonisation, G4eBremsstrahlung, G4GammaConversion, G4ComptonScattering, G4PhotoElectricEffect, G4CoulombScattering, G4WentzelVIModel, G4WentzelOKandVIxSection and G4WentzelVIRelXSection.
  - G4GoudsmitSaundersonMscModel: fixed displacement computation.
  - G4PEEffectFluoModel: make internal array per material and not per materialCutsCouple, allowing model to be used in unit tests.
  - Additional fixes for Coverity defects.
- Utils
  - G4VMultipleScattering: added possibility to build extra table for a model. Minor cleanup for post-safety computation. Introduced optional mechanism of displacement at geometry boundary.
  - G4VEmModel, G4VEmFluctuationModel: defined different pattern to access to random generator for sequential and MT modes to avoid compillation problems; random generator pointer becomes available to derived model classes in order to save CPU.
  - G4EmCorrections, G4EmElementSelector, G4VEmModel, G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering, G4ionEffectiveCharge: general cleanup including: use G4Log; reduced number of divisions; use std::min and std::max instead of "if" where possible.
  - Fix in G4VMscModel::ComputeSafety() pass 2nd parameter to G4SafetyHelper for optimisation. Added default for 2nd parameter, compatible with G4SafetyHelper.
  - G4VEnergyLossProcess: for sub-cutoff regime added upper limit when calling G4SafetyHelper.
  - G4VSubCutProducer, G4LossTableManager, G4VEnergyLossProcess: added new interface to allow for production of delta-electrons below production threshold.
  - G4EnergyLossMessenger, G4EmProcessOption: added extra flag and UI command "/process/em/deexcitationIgnoreCut" allowing to disable check on production threshold by deexcitation module; added interface methods and UI command '/process/msc/DisplacementBeyondSafety'.
  - G4VEnergyLossProcess, G4VEmProcess, G4VMultipleScattering: fix for cases of crash in G4WrapperProcess in sequential mode. Addressing problem report #1594.
  - G4EmSaturation: updated class design, VisibleEnergyDeposition() method become virtual allowing application of user alternative algorithms. Added protection to throw exception if e- or proton are not defined when used in VisibleEnergyDeposition(); do not instantiate G4Electron and G4Proton by default in InitialiseBirksCoefficient(); moved check on existence of e- and proton from run time to initialisation (i.e. it is now done only once).
  Changed initialisation of G4EmSaturation to work in MT mode.
  - G4LossTableManager: helper classes are instantiated only if user requests via access method.
  - G4LossTableManager, G4VEnergyLossProcess, G4VEmProcess: improved initialisation; moved modifiers for parameters from inline to source and added extra check on parameter value; throw warnings if parameters are out of range.
  - G4EmCalculator: added public FindProcess() method.
  - G4EmCorrections, G4EmElementSelector, G4LossTableManager, G4VEmModel, G4VEmProcess, G4VEnergyLossProcess: explicit delete PhysicsTables and PhysicsVectors at destruction.
  - G4VAtomDeexcitation: if de-excitation options are defined for the world G4Region, propagate these options to all G4Regions.
  - G4VEmProcess, G4VEnergyLossProcess: fixed model type definition for secondary particle production (fluorescence, PIXE, splitting); set step limit to DBL_MAX if selected model is inactive at such energy - addressing problem report #1674.
  - G4EmParameters, G4EmParametersMessenger: new classes for keeping EM parameters static for run time.
  - G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering, G4EmProcessOptions, G4VAtomDeexcitation: changed initialisation logic, to use G4EmParameters. Addressing problem report #1670.
  - G4MscStepLimitType, G4EnergyLossMessenger: added new step limit type, UseSafetyPlus for multiple-scattering.
  - G4VEmProcess, G4VEmModel: added access methods for target element and isotope.
  - G4EmConfigurator: set high energy activation limit for a new model not more than high energy limit (needed for DNA models).
  - Fixed Coverity defects.
- Xrays
  - G4SynchrotronRadiation: extended model from e+, e- to be universal. Applicable for all relativistic charged particles.
  - Fixes for Coverity defects in G4VXTRenergyLoss.
  - Fix in BuildPhysicsTable() for G4Scintillation. Addressing problem report #1678.
  - Re-engineered UI commands related to optical processes. Addressing problem report #1675.

### Event

- First implementation of memory reduction mechanism in multi-threading mode. Adapted General Particle Source classes.
- G4AdjointPrimaryGenerator: added splitting of forward gamma primaries to improve convergence of Reverse-Montecarlo.
- Fix in G4SPSPosDistribution::GenerateOne() which was not working correctly for GeneratePointsOnSurface() and GeneratePointsInVolume(). Addressing problem report #1656.
- Introduced mechanism for not deleting G4Event until visualized by a different thread.
- Implemented new strategy for GPS messenger: being instantiated as singleton. UI commands are created in a worker thread, but commands are executed by the master. Adding G4MUTEXDESTROY for GPS classes.
- Correction in the logic of normalization of sources for GPS. Initialize mutex for G4SPSEneDistribution class; fix for unitialized array.
- G4GeneralParticleSourceMessenger: change G4ParticleTable::GetIon() to G4IonTable::GetIon().
- Fixed Coverity defects.

### Externals

- Moved USolids module from source/geometry. Adapted scripts for optional builds against an installation of the Unified Solids Library in a different, outside location.
- Removed unused 'tpmalloc' and 'memoryprotection' modules.
- Updated CLHEP module to version 2.2.0.4:
  - Converted statics and globals to const, thread-local or atomic to improve thread safety.
  - Introduced CLHEP_THREAD_LOCAL and CLHEP_ATOMIC_INT_TYPE macros thread_local and atomic keywords.
  - Fixed compilation warnings on clang and gcc-4.9 compilers for MTwistEngine and RanshiEngine.
  - Fixed a type mismatch in Utility/memory.h, reported as compilation warning on Windows/VC9.
  - Updated Hep3Vector to move operators 'operator()(int)' to be inline and removed printout to improve CPU performance.
  - Moved definition of `pi` into SystemOfUnits.h so that its hard-coded value is not defined twice.
- USolids:
  - Added UMultiUnion construct, which enables the simultaneous union of multiple solids. Uses voxel technique to improve performance.
  - Added shapes from the USolids library: UExtrudedSolid, UGenericTrap, UTessellatedSolid (together with UQuadrangularFacet, UTriangularFacet and UTessellatedGeometryAlgorithms utility classes) and UTrap.
  - UPolyhedra: moved Extent() from protected to public.
  - UPolycone: correction in Capacity() for iteration over the number of sections and in SurfaceArea() for the case opening-angle is less than 2*pi. Fixes in InsideSection() for openPhi when StartPhi is negative, in Init() for Polycone defined from ZPlane[0]>ZPlane[N], and in DistanceToOut() for points starting on internal surface.
  - UTet: fixed approximation in Extent().
  - Minor fixes of errors reported by Coverity and unit tests in UTubs,UCons, UTrap, UTet, UTriangular/QuadrangularFacet.
  - Removed useless 'inline' specification for pure virtual function StreamInfo() in VUSolid base class.
  - Removed references to G4 types in several classes and some code cleanup.

### General Processes

- Biasing
  - management:
    - Simplified the G4VBiasingOperation interface class:
      - Suppressed DenyProcessPostStepDoIt() method, functionality merged (and generalized) in ApplyFinalStateBiasing().
      - Extra argument added as last argument of ApplyFinalStateBiasing(..., G4bool& forceBiasedFinalState), allowing to force to return as is the generated final state; covers the case of the deprecated DenyProcessPostStepDoIt() by not changing the primary state, changing its weight, and setting this argument "true".
      - Merged ProposeGPILSelection() into ProvideOccurenceBiasingInteractionLaw(), which has now the signature ProvideOccurenceBiasingInteractionLaw(const G4BiasingProcessInterface*, G4ForceCondition&).
  - generic:
    - Introduced G4BiasingProcessSharedData: a class that gathers information shared by G4BiasingProcessInterface instances attached to the same G4ParticleDefinition (hold by same G4ProcessManager). Access to the object is provided by the G4BiasingProcessInterface methods GetSharedData(). Provides in particular lists of G4BiasingProcessInterface instances for physics/non-physics biasing.
  - Easier access to cross-sections/mean-free-pathes of wrapped physics processes: this is done by a call to the PostStepGetPhysicalInteractionLength() of the wrapped physics processes that anticipates the call by the stepping manager: the first G4BiasingProcessInterface in the PostStepGetPhysicalInteractionLength() loop triggers these calls, and results are cached in each G4BiasingProcessInterface instance. This makes cross-sections of physics wrapped processes up to date at the first call to the biasing operator, simplifying biasing implementations dealing with several cross-section or the total cross-section.
  - Related rewritting of biasing operator G4BOptrForceCollision, biasing operation G4BOptnForceCommonTruncatedExp and simplified implementation of interaction law G4ILawCommonTruncatedExp.
- Management
  - Added new process type for UCN processes in G4ProcessType.
- Optical
  - Implemented full UNIFIED reflectivity probabilities when a dichroic surface reflects.
  - G4OpWLS, G4OpRayleigh: always rebuild the integral-table in BuildPhysicsTable() method.
  - G4OpBoundaryProcess now allowing for Transmittance, Reflectivity and Absorption on dielectric_dielectric and dielectric_metal boundaries. Added ConstProperty "SURFACEROUGHNESS". If set, the reflectivity at dielectric_dielectric surface is angular dependent and calculated from: `exp(-pow((4*pi*theSurfaceroughness*Rindex1*cost1/wavelength),2))` for `Rindex1 > Rindex2`.
  - G4OpRayleigh process now calculates the Rayleigh scattering length for more materials than just Water (although the Water default is kept). To do this the user would need to specify the ISOTHERMAL_COMPRESSIBILITY as a material property and optionally an RS_SCALE_LENGTH (useful for testing).
  - Re-engineered UI commands. Addressing problem report #1675.
- Phonon
  - G4LatticeManager: changed to globally shared object no longer thread-local. Fixes cases of null-pointer crash in MT mode.
- Scoring
  - Introducing G4ParallelWorldProcessStore to allow G4ParallelWorldProcess objects of all threads to update their corresponding world volumes when entire geometry is destroyed and rebuilt between runs.
- Transportation
  - G4Transportation and G4CoupledTransportation: made static data member 'fUseMagneticMoment' and its set method EnableUseMagneticMoment().
  - Added initialization of G4CoupledTransportation data members (fixes reported Coverity defect). Renamed data member, to make its name canonical.

### Geometry

- Moved solids/usolids module to source/externals.
- Magnetic field
  - Moved constructors and simple methods to inline in G4ChargeState and G4LineSection for CPU speedup.
- Management
  - Moved G4SmartVoxelHeader constructor for partial voxels refinements from protected to public.
  - Added G4USolid bridge class from internal USolids module. Enabled implementation of StreamInfo().
- Navigation
  - G4PropagatorInField: added new method GetCurrentEquationOfMotion().
  - Added internal method RecheckDistanceToCurrentBoundary() for G4SafetyHelper, G4Navigator and G4PathFinder, for checking a proposed displacement (new position) to see if it is in mother, and a proposed new direction to find potential backtrack to return to mother volume, or distance to new exit.
  - Code cleanup: removed unnecessary G4ThreadLocal in G4ReplicaNavigation.
  - G4TransportationManager: added ClearParallelWorlds() method; internal method to be invoked by G4RunManager when geometry is destroyed and destroys rebuilt from scratch in the user's application.
  - G4Navigator: corrections in the computation of exit normal and small fix to calculation of stored step endpoint, for steps that do not hit a boundary. Some code cleanup.
  - Added protection in G4ReplicaNavigation::DistanceToOutRad() for potential rare cases of negative value to sqrt() in equation calculation for rmin/rmax intersection.
  - G4ErrorPropagationNavigator: added GetGlobalExitNormal() method to match the update of G4Navigator interface made back in release 9.5. Fix to make normal a unit vector, and fixed Coverity defect to protect against null 'target'. Addressing problem report #1679.
- Solids (Boolean)
  - Enabled G4MultiUnion wrapper for USolids UMultiUnion structure.
- Solids (CSG)
  - Added wrapper for UTrap shape; adapted switch for G4Trap accordingly.
- Solids (Specific)
  - Added wrappers for UExtrudedSolid and UGenericTrap; adapted switches for G4 types accordingly.
- Volumes
  - Introduced pool G4NavigationHistoryPool for storage and reuse of navigation history levels collections. Disabled use of G4EnhancedAllocator in G4NavigationHistory accordingly.
  - Corrected implementation of copy-constructor and assignment-operator for G4NavigationHistory, to provide exact copy for size of the histories-level vector.
  - Use G4Allocator for dynamic allocations of G4NavigationHistory objects.
  - Moved constructors, destructors and assignment operators for G4NavigationLevelRep to be inline, for CPU optimisation.

### Global

- G4MTcoutDestination: by default ignores the printout during the initialization of each thread, as they are identical to each other and thus redundant.
- Introduced G4SetPinAffinity() function (available only for LINUX): "locks" a pthread to the given CPU index. This will be used by run category as an option to improve performance on high-core counts CPUs.
- New utility function G4Threading::IsMultithreadedApplication() and G4Threading::SetMultithreadedApplication(bool) used to specify which type of kernel is instantiated indipendently by build type (e.g. to distinghuish application migrated to MT or still using sequential run manager).
- Define G4ThreadLocal to be 'thread_local' in case C++11 standard is used (enabled through use of flag G4USE_STD11); directly adopt CLHEP classes in such a case instead of G4MT* wrappers, if keyword is supported; updated logic in tls.hh header.
- Added forward of cout and cerr in MT to master G4coutDestination if setup in client derived classes. To be used by special sessions (e.g. GUI) that want to intercept thread cout/cerr.
- G4Physics2DVector::Retrieve(): added extra protection to fix Coverity reports in classes which are using 2-D vector.
- Removed use of G4Allocator in G4PhysicsVector; now requiring explicit deletion of dynamically allocated objects by clients, also in destructors.
- G4PhysicsModelCatalog: added destruction of catalog; modified definition of singleton to avoid resources leak at exit. Made it more const; hide operator=() and copy constructor.
- G4Pow: modified definition of singleton to avoid resources leak at exit.
- Added std::flush to receiving of G4MTcoutDestination. Addressing problem report #1644.
- Added template class G4TWorkspacePool for generic implementation of thread-local workspace pools.
- Added methods G4MTcoutDestination::GetPrefixString() and G4MTcoutDestination::GetFullPrefixString() returning the thread cout identification prefix respectively without and with thread ID. Required by visualization. G4MTcoutDestination now supports special non-worker threads for which the ID makes no sense.
- Introduced G4MUTEXDESTROY macro in G4Threading. Fix to G4ThreadLocalSingleton destructor. Introduced G4Threading enum to hold thread IDs constants.
- G4StatDouble: corrected use 'const' interface for Add() method.
- Added missing G4GLOB_DLL specification for DLL import/export to G4CacheDetails specialization of cache reference for double.
- G4FPEDetection.hh: restrict FPE trapping to GCC only, excluding CLang. Addresses problem with Qt generating an apparent FPE deep inside its code with MacOSX CLang builds. Added call to 'sigfillset' to clear any signals before any use of sigset_t in InvalidOperationDetection() for both MacOS and Linux, as suggested in specifications.
- Fixed Coverity defects.
- Update date of release for 10.1.

### Graphical Representations

- Introduced operator<<() for const reference G4AttDefs map. Deprecated const pointer equivalent.
- G4Scale: added annotation size; set default annotation size to 12 pixels.
- G4VisAttributes: added fMinLineSegmentsPerCircle parameter.

### Hadronic Processes

- Made pointers to G4ParticleDefinition use const.
- Cross sections
  - Fixed use of inline keyword for methods defined inside G4ElectroNuclearCrossSection.
  - Minor reshuffling of some variables to calculate some variables only when used to prevent overflows.
  - Added protection in destructor of G4ElectroNuclearCrossSection against NULL pointer entries in cache.
  - G4KokoulinMuonNuclearXS does not call anymore explicitly clearAndDestroy() for the cross-section table, as the underlying physics vectors are managed by allocators.
  - G4ChipsHyperonElasticXS : avoid to exclude Sigma+ in the set of hyperons which can be treated by Chips elastic scattering.
  - G4ChipsAntiBaryonElasticXS: include anti_Omega- in GetPTables().
  - Replace all statics by regular class members in Chips cross-sections. Fixed case of memory leak.
  - G4KokoulinMuonNuclearXS: delete physics vectors at destruction; share data among threads; use G4Exp, G4Log.
  - G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS, G4ComponentSAIDTotalXS, G4UPiNuclearCrossSection: delete physics vectors at destruction.
  - G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS: share data among threads. Fixed minor memory leak at the end of job in G4NeutronElasticXS.
  - Added missing factories to G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS, G4PiNuclearCrossSection.
  - Added new interface class G4VCrossSectionRatio.
  - Fixing data-races in G4Chips{Neutron,Proton}ElasticXS as reported by DRD.
  - Added G4DiffElasticRatio class managing single diffraction to elastic cross-section ratio.
- Management
  - G4HadronicProcess: added method GetHadronicInteractionList() allowing access to the list of registered models, removed obsolete access methods to G4EnergyRangeManager.
  - G4HadronicProcessStore: changed to become G4ThreadLocalSingleton, allowing for automatic destruction of hadronic processes, models, and cross-sections. Correction in Clear() for stopping processes being deleted twice (once because registered as normal processes and once because registered as extra processes). Added printout information for deuteron, triton, He3 and alpha.
  - G4EnergyRangeManager: some cleaned up; instead of c-array, models pointers are now stored in STL vectors.
  - G4EnergyRangeManager: added new method GetHadronicInteraction() which uses G4HadronicInteraction::IsApplicable().
  - G4HadronicProcess: replaced old method of G4EnergyRangeManager (still there but deprecated) with new one. Moved computation of the kinetic energy per nucleon (in the case of ion projectile) from G4HadronicProcess to G4EnergyRangeManager.
  - G4HadronicProcessStore::PrintHtml(): include ProcessDescription inline in physics lists description.
  - Added BuildPhysics() method for initialisation of models before run; modified G4EnergyRangeManager and G4HadronicProcess.
  - G4HadronicProcess: added creator model type to secondary. Clearing final state before resample interaction due to energy balance violation. Fixed final track status for some models like G4WilsonAbrasionModel. Add check for dynamic mass in CheckResult(), to correspond to PDG mass within ~10%.
  - G4HadronicProcessStore: fixed computation of cross-sections for ions.
  - Models Management:
    - Added DeExciteModelDescription() to G4VPreCompoundModel and provided default implementation.
    - G4HadronicInteractionRegistry: added new method FindAllModels().
    - G4HadronicInteraction: removed unnecessary dependency on G4ReactionDynamics.
    - Added BuildPhysics() method for initialisation of models before run; modified G4HadronicInteraction.
- Processes
  - Added new G4UCN* processes and utility classes.
  - G4HadronElasticProcess: replaced old method of G4EnergyRangeManager (still there but deprecated) with the new one (which uses IsApplicable() from G4HadronicInteraction).
  - G4HadronElasticProcess: added low-mass diffraction option (still in development and switched off by default).
  - Added G4He3InelasticProcess class.
- Stopping
  - G4HadronStoppingProcess: in destructor do not de-register if Boolean flag G4HadronicProcess::deRegister is true, this is needed to cope with the modified thread-local-singleton G4HadronicProcessStore.
  - G4HadronStoppingProcess: replaced old method of G4EnergyRangeManager (still there but deprecated) with new one (which uses IsApplicable() from G4HadronicInteraction). Use G4PhysicsModelCatalog to label tracks.
  - Removed obsolete classes G4MuonMinusCaptureAtRest, G4StopElementSelector and G4MuMinusCaptureCascade.
- Utility
  - Removed obsolete G4ReactionKinematics and G4ReactionDynamics classes.
  - G4HadFinalState, G4HadSecondary, G4ReactionProduct: added creator model type to secondary, moved simple methods to inline.
  - G4HadSecondary: added creator model type.
  - Models Utilities:
    - G4ExcitedString: improved to treat a non-excited string when it is given as a KineticTrack, especially to give its 4-momentum.
    - G4Fancy3DNucleus: removed unnecessary thread-local allocations in ChoosePositions(). Replaced by const data.
    - G4ExcitedString: fixed a memory leak.
    - G4Fragment: added model type.
- ABLA
  - Added model-description methods to the interface.
  - Fixes for Coverity defects.
- Abrasion
  - G4WilsonAbrasionModel: use GetZ_asInt() and GetA_asInt().
- Bertini Cascade
  - Added new pi-nucleon 2-body angular distributions: G4PipP2PipPAngDst, G4PimP2PimPAngDst, G4Pi0P2Pi0PAngDst and G4PimP2Pi0NAngDst. Below 2.6 GeV, distributions taken from SAID phase shift calculations with Coulomb phase removed. Above 2.6 GeV, taken from data.
  - G4CascadeInterface: Fix possible infinite-loop condition where (nTries >= maxTries) and momentum balance fails. Configure PreCompound vs. BERT-internal de-excitation explicitly in ctor based on envvar flag.
  - G4ElementaryParticleCollider: Protect against rare failure of G4GDecay3 by checking for null vector return. Add support for absorbing a pion with a single nucleon (via a charge exchange interaction, e.g. pi- p -> n), with momentum conservation handled by recoiling against the nucleus. This is intended to improve the match to data for pi- capture. Pion-nucleon absorption is disabled by default, with an envvar/macro flag to enable.
  - G4CascadeFinalStateAlgorithm: Use ".c_str()" in diagnostic outputs, to avoid IBM/xlC compiler error. Addressing problem report #1558.
  - G4NucleiModel: In boundaryTransition(), switch sign of "dv" so that particle sees a barrier (next_zone potential > current potential) as positive. In generateParticleFate(), pass (A,Z) to EPCollider for possible nuclear-recoil calculations.
  - G4PreCompoundDeexcitation: Use shared instance of PreCompound by fetching from hadronic registry; register G4ExcitationHandler properly if local instance required.
  - Change several constructors' argument from "const char*" to "const G4String&" to avoid memory deallocation problems.
  - Internal improvements for multithreading, to avoid static initializers, and to use G4AutoDelete for all singletons.
- Binary Cascade
  - Extended model-description to cover de-excitation model.
  - Improved handling of destroyed nucleus, solving issues with light nuclei in BinaryLightIonReaction, like He in H. Made to conserve energy and momentum for final state in case target nucleus is destroyed, taking into account momentum transfered to nucleus, and finally forcing conservation.
  - BinaryLightIonReaction: handle currentA/Z consistently with list of spectators. Added optional debugging output.
  - BinaryLightReaction: momentum correction wrong in case of no Fragment, but primary projectile nucleon(s) in final state (ex. d + Pb -> X, where neutron or proton of deuteron did not interact).
- De-excitation
  - G4NuclearLevelStore: use G4ThreadLocalSingleton pattern providing proper deletion of photon evaporation instances at the end of run.
  - Improved design of FermiBreakUp and fixed decays of "unstable" Fermi fragments; reduced memory churn in several classes; optimized code reducing number of new/delete of intermediate objects; for that, slightly modified interface to evaporation channel; cleanup logic and implementation; G4FermiConfigurationList: reduced memory churn by reusing vectors which are members of the class; improved and verified computation of probabilities; made public methods const; G4FermiConfiguration, G4UnstableFermiFragment: removed unused members; made all methods const.
  - G4FermiFragmentsPool: made pure singleton class, all methods and data const at run time, no decay of exotic states. Added method IfApplicable() for fast check if FermiBreakUp is applicable to a given excited fragment; fixed energy or several excited levels to be the same in the gamma level database; added DumpFragment() and Dump() methods.
  - Removed obsolete class G4FermiConfigurationList.
  - G4ExcitationHandler: fixed a problem in isomer production that caused energy non-conservation at the level of 1 MeV; added protection against abnormal fragments; added ModelDescription() for automatic documentation.
  - Introduced an INCL++-specific fission level-density parameter class; set af/an parameter for INCL++ to 1.02 for all nuclei. Moved theChannels and theChannelFactory to the base class, since they seem to be common to all classes derived from G4VEvaporation. Some code refactoring.
  - Cleanup and redesign of photon evaporation.
  - G4NuclearLevelStore fixed wrong deletion of user data at exit. Addressing problem report #1684. Ensure that the same level is not uploaded twice when running in MT mode.
  - G4NuclearLevelManager: removed unnecessary data members to reduce memory consumption.
  - G4ContinuumGammaTransition, G4ContinuumGammaDeexcitation, G4DiscreteGammaDeexcitation, G4DiscreteGammaTransition, G4VGammaDeexcitation: cleanup selection of continuous or discrete transition; fixed computation of probabilities.
  - G4DiscreteGammaDeexcitation, G4DiscreteGammaTransition: fixed internal conversion for the case when transition energy is nearly electron bound energy.
  - G4VGammaDeexcitation: removed unneeded extra call to CanDoTransition() inside DoChain() method.
  - G4ContinuumGammaTransition, G4VGammaDeexcitation: coherently use same energy tolerance of 2 keV.
  - GEN probabilities: verified nuclear level energies using gamma level data.
  - G4B10GEMProbability, G4B11GEMProbability: changed nuclear level energies to be the same as in the gamma level database.
  - G4VEvaporationChannel, G4GEMChannel, G4GEMProbability: added Dump() method. Added DumpLevels() method to G4NuclearLevelManager and G4NuclearLevel.
- Elastic scattering
  - Added new dipole model class G4LEHadronProtonElastic.
  - New class G4hhElastic, implementation of the qQ-model with springy Pomeron for hadron-hadron elastic scattering.
  - G4LEnp, G4LEpp: added SampleInvariantT() method and inheritance from G4HadronElastic; implemented SampleT() method in G4LEnp. Fix in G4LEpp for incorrect use data array, used GetInvariantT() inside ApplyYourself().
  - G4NuclNuclDiffuseElastic: fix to nuclear radius (which was zero); fixed deletion in destructor.
  - Fix in G4DiffuseElastic.
  - G4LEppData, G4LEpp: removed data with Coulomb correction and corresponding code because they do not work properly and provide double counting with EM.
  - G4DiffuseElastic and G4NuclNuclDiffuseElastic: use the average nuclear weight for each element to compute the table of angles, in order to improve the reproducibility.
  - G4DiffuseElastic, G4NuclNuclDiffuseElastic, G4hhElastic, and G4ChargeExchangeProcess: proper deletion of physics vectors.
  - G4DiffuseElastic: extension down to 0.1 MeV, mainly for neutrons.
  - G4hhElastic: changes to combine with low mass diffraction.
  - Added G4LMsdGenerator class for low mass single diffraction dissociation.
- Electromagnetic dissociation
  - G4EMDissociation: replaced G4ParticleTable::GetIon() with G4IonTable::GetIon().
- Fission
  - Updated interface in G4FissionLibrary along with changes in neutron_hp.
- High Energy Theoretical
  - Updated ModelDescription(); updated text and recurse to propagate.
- Im_r_matrix
  - Do not delete physics vector explictly in destructors since they are managed by allocators in G4XResonance, G4XAnnihilationChannel, G4XNNElasticLowE, G4XnpElasticLowE and G4XnpTotalLowE.
  - G4VCrossSectionSource: removed unused GetTransversePionMass() and GetMinStringMass() methods.
  - G4VScatteringCollision, G4ConcreteN*: fixed leaks in destructors. Added protection against double delete.
  - G4Clebsch: removed unused GetLogs() method.
  - G4XResonance, G4XNNElasticLowE, G4XAnnihilationChannel, G4XnpTotalLowE, G4XnpElasticLowE: delete physics vectors at destruction.
  - Sharing of static tables among threads in G4Scatterer.
  - Overall improved thread safety; marked as static some "const" data.
  - Fix for data-race issue in G4CollisionComposite, when shared there are concurrent accesses to G4CollisionBuffer. The simplest solution is to add a lock on a mutex.
  - Fix for data race detection by DRD to correctly destroy mutex after initialization.
- INCLXX
  - Updated to INCL++ v5.2.8.
  - Extending INCL++ up to 15-20 GeV incident energy.
  - Added plumbing for tallying reactions treated by INCL++.
  - Activated use of adjusted fission parameter in G4ExcitationHandler. Large reduction in memory churn due to allocation pools; bringing some speed-up (a few percent).
  - Fixed crash in p+He2 reactions.
  - Added AvatarDumpAction class. Fixed bug that caused a large overestimation of the compound-nucleus spin in "fusion". Updated reference in G4INCLXXInterface::ModelDescription().
  - Fixes for Coverity defects.
- Lend
  - Protection for potential division by zero in tpia_misc and tpia_kinetics.
  - Replaced use of obsolete FindIon() with GetIon() in G4LENDCapture, G4LENDModel, G4LENDInelastic and G4LENDElastic.
  - Turn off license banner in G4LENDManager.
- Lepto-nuclear
  - Reuse G4PreCompoundModel and G4ExcitationHandler objects instead of instantiating new local ones; do not delete objects which follow the G4HadronicInteraction interface to avoid double deletion.
- Neutron High Precision
  - Fixed rare core dump caused by angular parameters being all zero; the angular parameters of the first and last secondary energy in ThermalScattering/Inelastic/FS have all zero elements.
  - Uncomment out para and ortho hydrogen and liquid and solid methane in G4NeutronHPThermalScatteringNames.
  - G4NeutronHPElasticData, G4NeutronHPInelasticData, G4NeutronHPCaptureData, G4NeutronHPFissionData, G4NeutronHPJENDLHEData: proper deletion of physics vectors at destruction.
  - Removed unused header file G4NeutronHPPhotonXSection.hh.
  - Adding information of data source to each data file, according to new data set.
  - Introducing ThreadLocalManager for storing information related to each individual reactions. Sharing cross-section data, final state and thermal scattering final state data among threads.
  - Fixed event-reproducibility issue in multi-threaded mode.
  - Adjusted A and Z in the case of mismatch between selected data and target nucleus in G4NeutronHPInelasticBaseFS and G4NeutronHPInelasticCompFS.
  - Fixed bug in G4NeutronHPElasticFS. Addressing problem report #1686.
  - Fixed potential memory-overwrite problem in G4NeutronHPInterpolator Addressing problem report #1689.
  - Fixed boundary-checking error in G4NeutronHPProduct and G4NeutronHPContAngularPar.
  - Fixed problem caused by QNAN on Windows in G4FPYSamplingOps.
  - Fixed use of BuildPhysicTable() in G4NeutronHPThermalScattering., G4NeutronHPCapture, G4NeutronHPElastic, G4NeutronHPFission and G4NeutronHPInelastic.
  - Requires new data set G4NDL-4.5.
- Particle High Precision
  - New module for treatment of low energy charged particles, based on neutron_hp. This is still under testing, but it is aimed to replace neutron_hp in the future.
- Parton-String
  - Fix in G4VPartonStringModel, occuring when debugging with residual nucleus mass number equal to zero. Improved code to treat an ExcitedString object when it is a hadron stored as a track, needed for a correct processing of quark-exchange processes in FTF model.
  - Fix on the positions of the increment of the variables "StateQ++" and "StateAQ" in G4LundStringFragmentation. This fix increases the production of neutral pions, while decreasing the production of charged pions.
  - G4FTFModel: factorized the longest method PutOnMassShell(); no changes in results for hadron-nucleus, nucleus-nucleus, anti_baryon-nucleus and light anti_ion-nucleus interactions.
  - Re-tuned parameters of G4LundStringFragmentation; fragmentation function F(qq->B+anti-quark) set to Z^2. Fix for anti-diquark-diquark strings.
  - Code cleanup in G4InteractionContent, G4VParticipants, G4VSplitableHadron. Added debugging option in G4VPartonStringModel.
  - Fixed bug in G4DiffractiveSplitableHadron where baryons are subdivided into quark and diquark. Introduced suppression of uu-diquark in proton, based on the theory of QCD instantons: di-quarks with identical quarks are suppressed by 50% (corresponding to a probability of 1/6), except for baryons like Delta++ (uuu), Delta- (ddd) and so on. Re-tuned parameters of FTF model (in the class G4FTFParameters) in accordance with this assumption.
  - Fixed bug in G4DiffractiveExcitation responsible for asymmetric rapidity distributions in pp-interactions.
  - G4VLongitudinalStringDecay: mixing between the vector mesons rho0 and omega have been changed from 50% (rho0) - 50% (omega) to 100% (rho0) - 0% (omega), in order to reduce the pi0 production (which was increased by the bug-fix on G4LundStringFragmentation). Little effects are seen in thin-target, while there are significant effects in hadronic showers in calorimeters.
  - Tuned parameters and string fragmentation functions of G4LundStringFragmentation, assuming that the weight of uu-diquarks in protons is 1/6. Improved treatment of string decay direction in G4FragmentingString and G4LundStringFragmentation.
  - Improved EnergyAndMomentumCorrector in G4ExcitedStringDecay.
  - Fixed bug connected with annihilations of anti-delta isobars: G4FTFAnnihilation can now treat correctly these processes. Applied fine tuning of parameters for Pi+P interactions.
  - Fixed problem of missing treatment of involved nucleons in the case of nuclear projectile in FTFmodel. Fixed memory leaks.
  - Fixed problem connected with multiple quark exchanges and string excitations in hadron-nucleus interactions: the status of such hadrons was set incorrectly. Also fixed the determination of of the 4-momentum of anti-alpha at low energies.
  - Fixed bug connected to abnormal stable meson masses: change of masses of particles in quark-exchange processes is now improved.
  - Fixed problem of energy-momentum non-conservation in Xi-nucleus interaction; energy/momentum is now conserved, but an accurate treatment of minimal diffractive masses for strange particles is still needed.
  - Fixed charge non-conservation for meson-nucleus interactions in G4DiffractiveExcitation, caused by quark exchange.
  - G4DiffractiveExcitation: use pole mass + 5*width as maximum mass for resonances, to avoid cases of energy-momentum non-conservation.
  - G4ExcitedStringDecay: restored initial string system in the case that the hadronization fails.
  - G4LundStringFragmentation: set fragmentation functions for qq -> B as f(z)~ Const for all baryons and fixed charged baryon number conservation for K-nucleus interactions.
  - Essential improvement of QGS hadronization. Fragmentation functions of quarks and di-quarks are close to Kaidalov's and Shabelskii's ones. Ionk's algorithm is inserted for sampling light-cone momentum fraction, z. First tuning of fragmentation parameters (further improvements are expected after the revision of the QGSM string creation algorithm).
  - Improved algorithm of G4QGSMFragmentation::SplitEandP, now faster.
- Pre-equilibrium
  - Added DeExciteModelDescription() to G4PreCompoundModel.
  - G4PreCompoundIon: cleanup transition probability computation.
  - G4PreCompoundAlpha, G4PreCompoundHe3, G4PreCompoundTriton: fixed FactorialFactor() method; corrected denominator.
- QMD Reaction
  - Updated to use G4CrossSectionDataSetRegistry. Removed inclusions of obsolete cross-section headers.
- Radioactive Decay
  - G4RadioactiveDecayMode: added double beta- decay and double beta+ decay to enum.
  - G4RadioactiveDecay: added dummies for double beta- decay and double beta+; long ground state lifetimes with no decay scheme. Addressing problem report #1560.
  - Added proton decay. Coded mimicking the alpha decay. The word in the data file is "Proton". Dummy double proton decay "Proton2" added for consistency with the double beta decays.
  - G4RadioactiveDecay::GetMeanFreePath(): tau = -1001 now indicates a nuclide with very short lifetime or that was not listed in G4NuclideTable. In that case, set pathlength to DBL_MIN. Addressing problem report #1582.
  - Use 'const' qualifier for local variables and arguments where applicable.
  - G4NuclearDecayChannel: removed upper limit on number of gammas produced by G4PhotoEvaporation. In DecayIt(), allow up to three fragments from G4PhotoEvaporation::BreakUp. This fixes an exception seen when there is more than one gamma. Check number of gammas returned from G4PhotoEvaporation and take different action in each case of 0, 1, or 2 gammas.
  - Added new class G4AlphaDecay to streamline inheritance chain and use Q to calculate decay product energies. Use G4AlphaDecay instead of G4AlphaDecayChannel in G4RadioactiveDecay.
  - G4RadioactiveDecay: fixed memory leak.
  - Requiring new data set RadioactiveDecay.4.2.
- RPG
  - G4RPGInelastic: defined GHADLISTSIZE, now needed after removal of class G4ReactionDynamics.

### Intercoms

- G4UIparameter: improved dignostic message of CandidateCheck().
- Introducing "/control/cout/ignoreInitializationCout" UI command to omit G4cout from threads during initialization, as they should be identical to the masther thread.
- Introducing new UI commands /control/doif and /control/getVal.
- Extended use of "/control/macroPath" UI command to now also apply to macros called inside a loop.
- Removed unnecessary source file G4AnyType.cc, as all symbols are inlined.
- G4UImanager: added method GetThreadCout(), to get the destination buffer of the current thread.
- Defined accessor GetThreadId() and moved related data to private.
- Added mechanism to make such that UI commands defined in a worker thread are registered to the G4UImanager of the master thread.
- Added G4cout support for generic (non worker) threads via new a method: G4UImanger::SetUpForSpecialThread(G4String prefix).
- Renamed few inline method parameter names in G4GenericMessenger to fix compilation warnings for shadowing.

### Interfaces

- G4UIQt:
  - Changed help tree splitter from vertical to horizontal. Added method to display text in HTML.
  - Changed help display to render parameters in a QTableView.
  - Changed window expanding policy. Now when expanding main window, it will keep the size of the viewer.
  - When choosing "pick" icon, it will now apply picking to true.
  - Fixed a Qt function that was only defined for Qt5.
  - Changed UI look by moving "search" at the top of the G4cout area.
  - Added multi-threading outputs; added a filter on thread in output.
  - New cout internal management.
  - Added SetViewerFirstPageHTMLText() method to be able to set the first tab widget text. This could be used to make some kind of a start page to display useful informations.
  - Fixed Dock output panel on the bottom right of window.
  - Minor change in text for the first page widget
  - Fixed problem in coloring cout sometimes after a cerr was send.
  - Set the focus on the command line after a command is sent.
  - Fixed problem when closing the last tab. Now the first page is displayed.
  - Fixed bug when running with Qt-4.6.
  - Get the thread prefix string directly from G4MTcoutDestination.
  - Added methods GetCoutWidget(), GetUserInterfaceWidget(), GetViewersWidget().
  - Renamed SetViewerFirstPageHTMLText() to SetStartPage().
  - Added new method AddViewerTab(), allowing users to define their own tab.
  - Added new method AddViewerTabFromFile(), to add a tab in the viewer from a file. Added ability to have HTML tags inside the file given by AddViewerTabFromFile(). This will allow to include for example a README file with an or other HTML tags.
  - Activate Help Widget at the beginning instead of sceneTree.
  - Moved clear G4cout icon on the right side.
  - Set viewer text tab "read only".
  - Added left panel tab tooltips.
  - Changed text on StartPage.
  - Removed viewer size parameter, as no longer used.
  - For all methods needing a file, instead of getting the file from current path, look for it in MacroPath.
  - When closing a dock panel, hide it instead of removing it. Prevent from null pointer exception.
  - Set focus on command line at the beginning.
  - Recreate help tree each time we creating a new viewer.
  - Display G4Exception warning messages in G4cerr an fixed G4Vis thread number in G4cout.
  - Use FindMacroPath() instead of GetMacroSearchPath().
  - Fixed recursive calls caused by qApp->processEvent().
  - Fixed a problem with Wt include names on case sensitive systems.
  - Attempted fix for the cout widget not updating in real time when run progresses; update is more frequent now.
- G4UIWt:
  - Minor update.

### Materials

- New classes G4UCNMaterialPropertiesTable and G4UCNMicroRoughnessHelper for microroughness probability values and calculation of microroughness in materials.
- G4Material: improved material printout. Addressing problem report #1563.
- Make G4Material copy constructor private.
- Replaced size_t with int type for 'fNumberOfIsotopes' in G4Element and 'fNumberOfComponents' and 'fNumberOfElements' in G4Material. Adapted code accordingly.
- G4NistmaterialBuilder: added new material G4_lBr, as STP Bromine is mainly liquid while in NIST DB it is described as a gas. Data taken from: http://en.wikipedia.org/wiki/Bromine. Addressing problem report #1607.
- G4SandiaTable: modified low limit in GetSandiaCofPerAtom()/Material().
Modified low limit for water and code clean-up. Made run time methods const, as materials are shared between threads; added new methods GetSandiaCofWater(), GetWaterEnergyLimit() and GetWaterCofForMaterial(). Added proper deletion of G4PhysicsVectors at destruction.
- G4ElementData, G4IonStoppingData: proper deletion of G4PhysicsVectors at destruction.
- G4IonisParamMat: added initialization of G4DensityEffectData in the default constructor.

### Particles

- Updated particle properties to PDG-2014.
- Compute life time from mass width for pi0 and sigma0. Addressing problem report #1570.
- Fix in G4ExcitedMesonConstructor (missing pi + eta mode in DecayTable).
- Added new constructor with dynamical mass in G4DynamicParticle. G4PhaseSpaceDecayChannel takes in to account mass width of daughter particles and gives the dynamical mass according to Breit-Wigner distribution. Added daughters_width in G4VDecayChannel. Addressing problem report #1629.
- Introducing PrepareNuclideTable() method in G4IonTable to allow creating G4NuclideTable object without preloading any ions.
- Removed unused class G4IsomerTable; G4NuclideTable is now used.
- Introduced workspace class for particle definition Revised G4PDefSplitter class to add utility methods. Revised G4ParticlesWorkspace to use new class G4TWorkspacePool.
- Removed FindIon/GetIon() obsolete methods from G4ParticleTable.
- Fix in G4ParticleTable to make sure all dynamically created ions are deleted at the end of the program. Fixed G4IonTable to delete thread-local string objects.

### Persistency

- GDML:
  - Added implementation for import/export of Multi-Union (G4MultiUnion) structures (NOTE: usable only for USolids classes). Requiring updated GDML schema for multiUnionNode entity (GDML version 3.1.1). Updated internal schema to reflect new GDML schema release 3.1.1, for updated gdml_solids.xsd module.
  - Correction to G4GDMLReadMaterials::MixtureRead() to revert order of reading (first elements then materials) for mixtures by fraction; corrects referencing for cases when elements and materials may carry the same name (case reported by ATLAS).
  - Fix in G4GDMLMessenger for UI command "/persistency/gdml/clear", to invoke G4RunManager for cleanly delete entire geometry.
  - Fixed typo in G4GDMLWriteSolids::BooleanWrite() for the case of repeated displacements of the reference solid in the same Boolean operation (issue reported by ATLAS).

### Physics lists

- Replaced explicite instantiation of cross-sections by calls to G4CrossSectionDataSetRegistry using factory approach.
- Removed inclusions of obsolete cross-section headers.
- Builders:
  - In all builders, new instances of G4PreCompoundModel and G4ExcitationHandler are no longer created in order to reduce the memory footprint.
  - Avoid deleting of processes, models and cross-sections in destructors of builders.
  - Convert G4INCLXXPiKBuilder to G4INCLXXPionBuilder. Set the maximum energy for G4INCLXXPionBuilder to 20 GeV. Added G4QGSPKaonBuilder.
  - Added G4QGSPLundStrFragmProtonBuilder outfitting QGSP model with G4LundStringFragmentation (instead of the G4QGSMFfragmentation); this appears to give better agreement with data at the energies above 100 GeV (tested for proton+C). Set minimum energy for G4QGSPLundStrFragmProtonBuilder at 100 GeV.
  - Added dependency to 'de_excitation/fission' module in build scripts, now required by INCLXX.
  - Added builders for particle_hp physics list.
  - Updated CMake scripts.
- Constructors:
  - electromagnetic:
    - G4EmDNAPhysics_option1: added new constructor for DNA physics.
    - G4EmLowEPPhysics: added G4LowEWentzelVIModel.
    - G4EmLowEPPhysics, G4EmStandardPhysics_option3, G4EmStandardPhysics_option4, and G4EmLivermoreStandardPhysics: cleanup gamma and e- models instantiation.
    - Added G4EmLEPTSPhysics and G4EmDNAChemistry constructors.
    - Added G4EmStandardPhysicsSS, G4EmStandardPhysicsWVI constructors.
    - Use G4EmParameters used in all EM constructors.
    - G4EmStandardPhysics_option3,4: use G4GeneratorBS angular generator for bremsstrahlung.
    - G4EmStandardPhysics_option4: use RangeFactor = 0.02 (instead of 0.01); use G4DeltaAngle angular generator for all ionisation models.
    - Re-engineered UI commands related to optical processes and created in G4OpticalPhysics. Addressing problem report #1675.
    - Fixed bug responsible for bounds-checking failures in optical tests. Improved printing in G4OpticalPhysics::PrintStatistics().
    - Reviewed initialisation of chemistry in DNA constructors and extended elastic scattering models to low energies to avoid killing e-.
  - factory
    - Added macro for declaring physics constructors in a namespace to factory.
    - Added methods for G4PhysicsConstructorRegistry to report known constructors.
  - gamma_lepto_nuclear:
    - Switched on muon-nuclear by default.
    - Implemented thread safe UI messenger. Addressing problem report #1606.
    - G4BertiniElectroNuclearBuilder: fixed case of double deletion.
  - hadron_elastic
    - G4HadronHElasticPhysics: improved version of elastic, used temporarily only in FTFP_BERT_TRV for testing; it may become in the future the default in all physics lists.
    - Fixed cases of inline static methods in G4HadronElasticPhysics.
    - G4HadronHElasticPhysics: for proton, neutron, pion+ and pion- elastic scattering introduced the Chips model on Hydrogen, while kept G4DiffuseElastic for all other elements. To ensure reproducibility, use a different instance of G4DiffuseElastic for each particle type (p, n, pi+, pi-); disable G4NuclNuclDiffuseElastic, using Gheisha elastic model for light ions (nothing else is available for heavy ions).
    - G4HadronHElasticPhysics: included diffraction dissociation process. This is under development and switched off by default.
    - Added G4HadronElasticPhysicsPHP for particle_hp physics list.
  - hadron_inelastic:
    - Modified switching energies and models in HadronPhysicsINCLXX.
    - Added constructor for NuBeam and Shielding.
    - Including constructors for NuBeam and Shielding. Extended Shielding code to also include ShieldingM variant.
    - Added protection in all destructors to avoid double deletes.
    - In G4HadronPhysicsNuBeam, adjust BERT/FTF overlap from 7-10 GeV to 3-3.5 GeV, better for light targets.
    - Fix in destructor of G4VHadronPhysics to check validity of pointer.
    - Added dependency to 'de_excitation/fission' module in build scripts, now required by INCLXX.
    - Added G4HadronPhysicsQGSP_BIC_AllHP for particle_hp physics list.
  - ions:
    - Reuse the G4PreCompoundModel instance, instead of creating new local instances in the ion physics classes, in order to reduce the memory footprint.
    - Added dependency to 'de_excitation/fission' module in build scripts, now required by INCLXX.
  - limiters:
    - G4GenericBiasingPhysics: fixed bug of PhysicsBias() which was not taking into account the vector of selected processes (but biasing all physics processes).
- Lists:
  - Added experimental physics lists ShieldingM and NuBeam. ShieldingM is based on Shielding with the Bertini to FTFP model transition region at 9.5-9.9GeV. NuBeam is based mainly on FTFP_BERT with the Bertini to FTFP model transition region at 3.0-3.5GeV for protons, pions and kaons and uses QGSP+G4LundStringFragmentation above 100GeV (with FTFP used up to 101GeV) for protons
  - FTFP_BERT_TRV: use (temporary) G4HadronHElasticPhysics in order to allow testing of improvements in elastic.
  - FTFP_BERT_HP, QGSP_BIC_HP, QGSP_BERT_HP: set cut on proton to zero to simulate all recoils from elastic scattering.
  - Extended Shielding code to also include ShieldingM variant.
  - Increased cuts in LBE physics list to 1 micrometer (from 1 nanometer). Fixed bug in LBE addressing problem report #1591.
  - Removed Bertini Cascade from alphas, deuterons and tritons and replaced with BinaryLightIonReaction.
  - Replaced G4MuonMinusCaptureAtRest with G4MuonMinusCapture.
  - Added QGSP_BIC_AllHP particle_hp physics list. Please note that particle_hp is still under development, and this new physics list is meant only for testing purposes.
  - Added g4alt::G4PhysListFactory as user extensible list factory; work done via G4PhysListRegistry and G4PhysListStamper classes (not yet activated).
  - Modify LBE physics-list constructor to accept verbosity as optional argument as the other physics-lists.

### Run

- New functionalities for MT:
  - Introduced pin affinity functionalities.
  - Added new option in MT mode to set random number seeds only once per run per worker thread.
  - Introduced workspace for physics-list split-classes. Enable use of G4ParticlesWorkspace for particle-definition split-class.
  - Introduced /run/useMaximumLogicalCores UI command.
  - Introducing mechanism to not delete G4Event until visualized by another thread; fixed cleaning up of kept events when visualization thread keeps events.
  - Increase verbosity in case of NULL process-manager pointer in multi-threaded mode.
  - Worker threads return G4RunManagerKernel::SetPhysics() method just after setting physics-list pointer (e.g. no setup needed).
  - G4VUserPhysicsList::SetCuts() is no longer called by worker threads during physics initialization.
  - G4RunManagerKernel::RunTermination() workers do not call G4ProductionCutsTable::PhysicsTableUpdated().
  - Implemented G4WorkerRunManager::TerminateEventLoop() in worker and avoid data-race on shared resources.
  - G4WorkerThread::UpdateGeometryAndPhysicsVectorFromMaster(): removed mechanism of copying pointer of region that is not needed.
  - Fixed data-race condition in G4RunManagerKernel when FPE is active. Only master thread installs FPE handler.
- Handling of ions:
  - Avoid pre-creation of all ions in sequential mode. Preloading ions is now optional.
- Other changes (non MT related):
  - Modified G4AdjointSimManager, G4AdjointSimMessenger and G4AdjointPrimaryGeneratorAction to add forward primary splitting for Reverse MonteCarlo.
  - Explicitly invoke deletion of new G4NavigationHistoryPool instance in G4RunManagerKernel at job's end.
  - G4VScoringMesh is cleaned when geometry is rebuilt from scratch. G4ParallelWorldProcess objects of all threads now update their corresponding world volumes when the entire geometry is destroyed and rebuilt between runs. G4TransportationManager is cleaned as well when geometry is rebuilt from scratch. Addressing problem report #1665.
  - Fix in G4VUserPhysicsList to alternate cut value for the region sharing the default cut value.
  - Fixed logic at G4RunManager::RunTermination() for keeping events.
  - Fix in G4RunManager in case macroFile in beamOn is " ".
  - Fixes for Coverity defects.

### Track & Tracking

- Corrections in G4AdjointSteppingAction and G4AdjointTrackingAction to have the treatment of adjoint and forward tracks in the same event.
- Removed non const requirement when using G4PhysicsModelCatalog getters and moved implementations to .icc file.

### Visualization

- Management
  - Introduced G4VGraphicsSystem::fileWriter to allow special informational.
  - Added run ID to G4Atts of user drawn trajectories.
  - Added '/vis/touchable/dump' command; dumping G4Atts to G4cout.
  - Added parameter to '/vis/scene/add/axes' command to suppress annotations.
  - /vis/specify and /vis/scene/add/logicalVolume: added flag for drawing/suppressing axes.
  - G4VisCommands: Fixed deprecated call to GetAttDefs.
  - Fix for NULL pointer in G4VSceneHandler.
  - Fixes for management of cout/cerr messages.
  - Added text size control through '/vis/set/textSize' for '/vis/scene/add/axes and '/vis/scene/add/scale' commands.
  - Changed default text size to 12 pixels.
  - Added /vis/scene/add/extent command, which adds a dummy model with given extent to the current scene, to be used to provide an extent to the scene even if no other models with extent are available. For example, even if there is no geometry.
  - G4VisManager: split out some code in sequential version of EndOfEvent in preparation for re-use in multi-threading mode.
  - G4VisManager: reset event reviewing flag at end of run in MT mode.
  - G4VisCommandsViewerSet: fixed bug affecting file-writing viewers.
  - G4VisCommandsSceneAdd: with command "/vis/scene/add/scale", add full list of parameters to GlobalDescription of scale model. This is so that scales with different parameters can be added to a scene without being caught in the "model already exists" trap.
  - Fixed spelling mistake in messages.
  - Fixed Coverity defects.
- Modeling:
  - Introduced G4TouchableDumpScene and G4PseudoScene.
  - G4TrajectoriesModel: Add run ID.
  - G4PhysicalVolumeModel: improved constructor.
  - Added text size for axes labels.
  - Get appropriate run manager in MT mode.
  - G4TrajectoriesModel: added protection against incorrect casting if G4RunManager base class is used in multi-threaded mode.
- Fukui Renderer
  - DAWNFILE declared as G4VGraphicsSystem::fileWriter.
- GMocren
  - Fixed memory leak in G4GMocrenFile. Addressing problem report #1585.
  - gMocren declared as G4VGraphicsSystem::fileWriter.
  - G4GMocrenFileSceneHandler, G4GMocrenFileViewer, G4GMocrenMessenger: fixed STRING_OVERFLOW checks according to Coverity reports.
- HepRep
  - HepRep and HepRepFile declared as G4VGraphicsSystem::fileWriter.
- OpenGL
  - Improvements to class design and some bug fixes for picking.
  - Some Qt fixes and improvements.
  - Improved protection of pointers.
  - G4OpenGLImmediateSceneHandler: split AddPrimitivePreamble() in three functions to avoid dynamic_cast. Gaining up to 20% speedup in drawing.
  - G4OpenGLViewer: time optimization in printEPS() for Immediate mode; saving 70-80% in drawing time on batch drawing, 10-20% when printing with a screen viewer. Manage bad file name case (missing directory) in printGl2PS().
  - G4OpenGLQtViewer: added ability to change the color of text in DrawText().
  - New Viewer parameters info panel.
  - G4OpenGLQtViewer: fixed problem in viewer/set parameters.
  - Speed improvements by avoiding a dynamic_cast.
  - G4OpenGL: removed all references to glu.h.
  - G4OpenGLXViewer: replaced gluGetError to avoid calling of glu function.
  - G4OpenGLStoredSceneHandler: changed some G4cout in G4err in case of error messages.
  - G4OpenGLViewer: replaced deprecated gluLookAt by g4GluLookAt. Refactoring and renaming of internal methods. Added new methods addExportImageFormat(), setExportImageFormat(), exportImage() (generic function with lots of formats available) and isInitialized().
  - G4OpenGLQtViewer: factorisation of Qt save function and OGL save functions. Added "picking info" component at bottom left inside the scene browser. Added a horizontal splitter inside the scene browser. Start changing color of a picking item (need to be improved). Fixed a bug: previously when changing cursor to "Pick" on context menu, nothing was done. Changed picking effect, instead of displaying in G4Cout, will now display all picking infos separate by "hit number" in another widget inside the scene browser. Move picking event from "mouse click" to "mouse release" function. New method "changeColorAndTransparency" to be able to change color and transparency on a PO index. Change cursor shape according to mouse operation. Activate picking info widget when picking. Fixed a crash when closing a tab viewer when auto rotating. Change the "search" look and feel in the tree viewer. Remove unused functions.
  - G4OpenGLImmediateQtViewer, G4OpenGLStoredQtViewer, G4OpenGLQtViewer: added keyReleaseEvent() method. Allow rotation/move during picking.
  - G4OpenGLViewerMessenger: added new commands '/vis/ogl/set/exportFormat' and '/vis/ogl/export'.
  - G4OpenGLQtViewer: changed QPixmap objects to be pointers; fixes fatal problem creating viewer in "batch" application without interactive GUI.
  - G4OpenGLQtExportDialog: removed unused functions.
  - Refactoring of code for treatment of OpenGL2 and Wt driver.
  - G4OpenGLStoredQtViewer/G4OpenGLImmediatedQtViewer: fixed refresh problem for 'zoom' command in viewer. Avoid repainting problems by disable recursive repaints.
  - Fixed hidden marker field in Qt viewer properties for G4OpenGLQtViewer. Allow viewer properties/picking/scene tree to be accessible from an external application. Set the scene tree / viewer properties / picking open at the beginning. Added viewer properties and picking for Immediate mode.
  - Fixed bug in G4OpenGLStoredSceneHandler whereby hidden markers are not respected if 2D objects are drawn. Removed call to ClearView() method.
  - G4OpenGLViewer: added ClearViewWithoutFlush() method.
  - G4OpenGLWtViewer: fixed problem with Wt include names on case sensitive systems.
- OpenInventor
  - G4OpenInventorXtExaminerViewer: adjusted dimensions of viewer aux window; implemented look-ahead for better tracking of trajectory animation; implemented mouse-over readout for trajectories.
- RayTracer
  - Fixed Coverity defects.
- VRML
  - VRML1/2File declared as G4VGraphicsSystem::fileWriter.
- Externals
  - G4XXXFile declared as G4VGraphicsSystem::fileWriter.
  - Updates for OpenGL.

### Environments

- G4Py:
  - Completed migration to CMake for building libraries.
  - Fixed link problem on MacOS-X for library extension.
  - Updated interfaces for release 10.1.
  - Addressing problem reports #1613, #1660.

### Data sets

- New low-energy data set version, G4EMLOW.6.41:
  - Added sigmadiff_cumulated_elastic_e_champion_hp.dat and corresponding macro.
  - Added sigmadiff_cumulated_ionisation_e_born_hp.dat and sigmadiff_cumulated_ionisation_p_born_hp.dat.
  - Updated electron inelastic files for Si (microelec).
  - Added sigma_ionisation_(b,be,li)_rudd.dat, sigma_ionisation_p_rudd.dat (up to 1 GeV), sigma_ionisation_si_rudd.dat and fluor_Bearden data to dna module.
  - Removed unused data sets.
- New neutron data set version with thermal cross sections, G4NDL.4.5:
  - Added information of data source to each file.
- New data set version PhotonEvaporation.3.1 for nuclear de-excitation data:
  - Corrections of of +X, +Y, ... levels for compliance with latest isomer list.
  - 212Bi (z83.a212, line 8): change strength of gamma transition (415.272 keV to ground state) from 4.4 to 0.4. Addressing problem report #1565.
- New data set version for radioactive-decay processes, G4RadioactiveDecay.4.2:
  - Corrections for X,Y,Z,W and A levels.
  - Added observationally stable (very long lifetime) ground states to 20 nuclides: 4 are thought to decay by alpha emission, 6 by double beta+ decay and 10 by double beta- decay. G4RadioactiveDecay now recognizes double beta- and double beta+ decays, but currently does nothing when they occur.
  - Added new files filling in missing alpha levels and removed spurious ones.
  - Added new files filling in missing beta- levels.
  - Updated beta+ files.
  - Fixed files z55.a136 (IT) and z58.a129 (beta) which had NaN in place of intensity value; replaced with value of 1.00.

### Examples

- Moved advanced examples dnaphysics dnageometry and microdosimetry to new module 'dna' in extended/medical.
- Updated reference outputs, macros and scripts.
- advanced
  - air_shower
    - Follow migration of MT-ready GPS code.
  - amsEcal
    - Added protection in RunAction against division by zero. Addressing problem report #1522.
    - DetectorConstruction: corrected rotation matrix and uppdates.
    - RunAction: reinitialise 'resEtot' and 'resEvis' in loop.
    - Migration to g4tools for histograms.
    - Migrated to multi-threading.
  - ChargeExchangeMC
    - Updated CMake scripts.
  - composite_calorimeter
    - Migrated to use built-in analysis tools.
    - Removed use of exit() and use G4Exception instead.
  - gammaknife
    - Follow migration of MT-ready GPS code.
  - gammaray_telescope
    - Migrated to multi-threading.
    - Use correct mu- stopping process.
    - Removed deprecated RO geometry.
    - Write separate files for each thread/run, if option G4STORE_DATA is active.
    - Moved ordering of commands in macro: generator action is not instantiated before run initialization.
    - Set some volumes to invisible for faster visualization.
  - hadrontherapy
    - Migrated code to support multi-threading.
    - Completely updated PhysicsLists: G4EmStandardPhysics_option4 substitutes option3 builder, as most accurate physics. Defined new physics-list, HADRONTHERAPY_1 specifically implemented for this application, defined as a collection of builders and very similar to the QGSP_BIC_HP; differs in the followings: contains G4EmStandardPhysics_option4 in place of G4EmStandardPhysics; contains the builder G4RadioactiveDecayPhysics. The defaults for the physics models are now complete and they corresponds to the HADROTHERAPY_1 apart for: G4HadronPhysicsQGSP_BIC, used in place of G4HadronPhysicsQGSP_BIC_HP; G4HadronElasticPhysics used in place of G4HadronElasticPhysics_HP Cuts messengers completely removed. Now cuts can be defined using commands '/run/setCut', 'run/setCutForAGivenParticle', etc. Multiple G4Regions can now be defined in the PhysicsList class file, to apply specific CUTs values via the command '/run/setCutForRegion [G4Region Name] [Cut value]' Defined new physics-list HADRONTHERAPY_2, containing the local implementation of a specific ion-ion inelastic hadronic physic; uses the QMD model to treat ion-ion interactions. Livermore and Penelope electromagnetic physics removed.
    - Updated input macros according to new physics lists.
    - Created LaserDrivenBeamLine, made of ESS + Quadrupoles. Added FaradayCup detector with new map of the Electric field. Added the no fringing field maps for the quadrupole system. Added field map for the energy selector system with shifted central dipoles.
    - Main file modified where UI is called: now UI is called only is no macro file is passed as argument.
    - Added code to write output files in HadrontherapySteppingAction class.
    - Removed /vis/ command call for batch mode.
    - Local definition of Step Max process.
    - Code cleanup.
  - human_phantom
    - Follow migration of MT-ready GPS code.
    - Fixed warning messages at run-time.
  - lAr_calorimeter
    - Migrated code to support multi-threading.
    - Changed interface of FCALMaterialConsultant to avoid multiple definition of materials. Fixed casting warning in FCALSteppingVerbose.
  - microbeam
    - Fixed warnings on Windows and MT-max runs.
  - microelectronics
    - Replaced use of G4UITerminal by G4UIExecutive; removed usage of flags G4UI_USE and G4VIS_USE in main().
  - nanobeam
    - Fix in CMake setup to avoid use of internal CLHEP module.
  - purging_magnet
    - Migrated code to support multi-threading.
    - Add 'const' qualifiers to methods where applicable.
  - radioprotection
    - Fixed compilation errors and warnings.
  - underground_physics
    - Migrated code to multi-threading.
    - Repaired photocathode description such that photon hits are now registered.
    - Removed scintillator energy deposits from optical photons, double counting!
    - Replaced obsolete use of G4ParticleTable::GetIon() with G4IonTable::GetIon(). Use correct mu- stopping process.
  - xray_fluorescence
    - Migrated code to multi-threading.
    - Completed migration to g4tools (removed AIDA dependency).
  - xray_telescope
    - Migrated code to multi-threading.
    - Follow migration of MT-ready GPS code.
    - Added definition of muons and short-lived.
    - Revised method book() of analysis singleton.
- basic
  - Removed G4UI_USE/G4VIS_USE conditionals from B1-B4 examples and init.mac macro, no longer needed.
  - Moved G4UIExecutive at the beginning of main() in all examples.
  - Perform run initialization in macros instead of main().
- extended
  - analysis
    - Use physics list FTFP_BERT in AnaEx01,02,03. Removed custom PhysicList class from shared.
    - Create two ntuples in AnaEx02,03 instead of one in order to demonstrate how to do this with all tools.
    - Updated for moving script in 'shared'.
    - analysis/AnaEx01
      - Moved implementation of G4AnalysisManager for hbook from extended/common/analysis in 'hbook' sub-directory.
  - biasing
    - biasing/B03
      - B03PhysicsList: replaced obsolete G4ParallelWorldScoringProcess with G4ParallelWorldProcess.
    - biasing/GB01
      - Fix in GB01BOptrChangeCrossSection, which was not properly using the new cross-section value in case of an UpdateForStep().
    - biasing/GB02
      - Update of the example to take into account changes made in the base classes, and related changes in G4BOptrForceCollision.
    - biasing/GB03
      - New example illustrating the use of generic biasing classes to implement a technique close to the "geometry importance biasing" one.
      - An extra mechanism to alleviate over-splitting is illustrated.
    - biasing/GB04
      - New example illustrating the use of generic biasing classes to create a bremsstrahlung splitting technique.
  - common
    - Moved analysis subdirectory in concrete examples.
    - Updated for changes in analysis category: ntuple columns of vectors (disabled), changes in ntuple_booking. Updated to g4tools-1.10.0.
    - Modifications to facilitate use of common directory via svn:externals: merging user classes in the top directory (include and src), added testCommon.cc for all classes altogether and added building common library.
    - Removed obsolete sub-directories with user classes and scripts.
    - Added typedefs and functions for accessing iterators over H1, H2, Ntuples.
    - Removed fPrintModulo from ExG4EventAction01 and fSetPrintModuloCmd from ExG4EventAction01Messenger, now obsolete.
  - electromagnetic
    - electromagnetic/TestEm0
      - Code formatting.
    - electromagnetic/TestEm1
      - DetectorConstruction: define heavy water vapor starting from isotopes.
      - Removed printout from second thread in TestEm1.in macro.
      - Introduced function Run::EndOfRun().
      - Removed PhysicsList::SetCuts().
      - Simplified PhysicsList and its messenger, accordingly.
      - PhysicsList: added "emlowenergy" option.
      - Set number of threads as number of cores in main().
      - PhysicsList: added G4EmStandardPhysicsSS.
      - Added option to set nThreads via UI command in main().
      Set default number of threads to 2 in input macro.
  - electromagnetic/TestEm2
    - Introduced function Run::EndOfRun().
    - Added "emlowenergy" option for EM physics.
    - Removed PhysicsList::SetCuts().
    - RunAction + Run: introduced profiles for histos 4 and 8.
    - Added option to set nThreads via UI command in main().
    Set default number of threads to 2 in input macro.
- electromagnetic/TestEm3
  - Enabled multi-threading; implemented required migration.
  - Added "emlowenergy" option for EM physics.
  - Removed PhysicsList::SetCuts().
  - PhysicsList: added G4EmStandardPhysicsSS.
  - Added option to set nThreads via UI command in main(). Set default number of threads to 2 in input macro.
- electromagnetic/TestEm4
  - HistoManager: restore "h" in front of histogram id.
  - Added option to set nThreads via UI command in main(). Set default number of threads to 2 in input macro.
  - Improved output in MT mode.
- electromagnetic/TestEm5
  - Introduced function Run::EndOfRun().
  - Added "emlowenergy" option for EM physics.
  - Removed PhysicsList::SetCuts().
  - PhysicsList, PhysicsListMessenger: removed local cuts commands.
  - Added possibility to change number on threads though 2nd parameter in command line.
  - StackingAction, HistoManager: added histograms for energy of gamma and Auger electrons per de-excitation model.
  - Set number of threads as number of cores in main(). Added possibility to change number on threads by 2nd parameter in command line.
  - PhysicsList: added G4EmStandardPhysicsSS, WVI.
- electromagnetic/TestEm6
  - Suppressed EventAction and its messenger.
  - Updated PhysicsList, DetectorConstruction and RunAction.
  - Replaced '/testem/event/printModulo' with '/run/printProgress'.
- electromagnetic/TestEm7
  - Added "emlowenergy" option for EM physics.
  - Removed SetCuts() method and corresponding UI commands, applied code guidelines.
  - Replaced obsolete use of G4ParticleTable::GetIon() with G4IonTable::GetIon().
- electromagnetic/TestEm8
  - Migrated code to support multi-threading.
  - Added "emlowenergy" option for EM physics.
  - Removed SetCuts() method and corresponding UI commands, applied code guidelines.
  - Reduced statistics in input macro.
- electromagnetic/TestEm9
  - Added "emlowenergy" option for EM physics.
  - Removed SetCuts() method and corresponding UI commands, applied code guidelines.
- electromagnetic/TestEm11
  - Introduced function Run::EndOfRun().
  - HistoManager: removed hbook.
  - Set "ToBeBroadcasted == false" for UI commands that modify physics list and detector since these should be executed only by master.
  - Removed SetCuts() method and corresponding UI commands, applied code guidelines.
  - PhysicsList: added G4EmStandardPhysicsSS.
  - Added option to set nThreads via UI command in main(). Set default number of threads to 2 in input macro.
- electromagnetic/TestEm12
  - Enabled multi-threading; implemented required migration.
  - Added "emlowenergy" and dna_option1 in physics-list.
  - Removed SetCuts() method and corresponding UI commands, applied code guiedlines.
  - PhysicsList: added G4EmStandardPhysicsSS.
  - Added option to set nThreads via UI command in main(). Set default number of threads to 2 in input macro.
- electromagnetic/TestEm13, TestEm14
  - Migrated code to support multi-threading.
  - Removed SetCuts() method and corresponding UI commands, applied code guidelines.
- electromagnetic/TestEm15
  - Removed PhysicsList::SetCuts().
- electromagnetic/TestEm16
  - Migrated code to support multi-threading.
  - Suppressed EventAction and its messenger.
  - PhysicsList: removed SetCut() method, added Synchrotron radiation to all charged particles.
- electromagnetic/TestEm17
  - Use G4EmStandardPhysics and G4EmParameters classes in PhysicsList, removed SetCuts method.
- electromagnetic/TestEm18
  - Removed PhysicsList::SetCuts().

- eventgenerator/exgps
  - Migrated to use of built-in physics list. Use QGSP_BIC physics list to avoid dependency on data.
  - Removed 'drawTracks' and 'printModulo' commands and adapted macro files to use the equivalent built-in macro commands.
  - Implemented changes needed for MT-ready GPS, substantially reducing memory footprint in nulti-threaded mode.
  - Migrated to new messenger strategy.
  - Replaced EventAction by TrackingAction.
  - Changed dimension of world volume.
  - Updated macros.
- eventgenerator/HepMC
  - Changes to comply with coding conventions.
- eventgenerator/particleGun
  - Migrated code to support multi-threading.
  - Modified plots of angles and simplified histograms.
  - Added PrimaryGeneratorAction0 class and run0.mac.
- eventgenerator/pythia/decayer6
  - Removed custom physics-list.
  - Fixed order of instantiating Vis/UI.
  - Replaced use of std::cerr with G4cerr.
  - Added common directory via svn:externals property.
- exoticphysics/channeling
  - New example showing how channeling of 400 GeV/c protons in bent Si crystal can be simulated in Geant4.
- exoticphysics/phonon
  - Moved lattice classes, particle definitions, and physics processes into toolkit.
  - Migrated code to support multi-threading.
  - Fix in CMake script to copy data in build directory.
- exoticphysics/ucn
  - New example demonstrating the functionality of UCN physics.
- field/field04
  - Porting to new optical phsyics processes API.
  - Fixed problem for process sharing.
- g3tog4
  - Moved data directory in clGeometry.
  - Added common directory via svn:externals property.
- hadronic/FissionFragment
  - New example to exercise fission fragmentation.
- hadronic/Hadr00
  - HistoManager: added histogram with cross-section per volume.
- hadronic/Hadr02
  - Applied code guidelines and code cleanup.
- hadronic/Hadr03
  - Enabled multi-threading; implemented required migration.
  - Defined a stucture for nuclear channel data.
  - Use G4HadronElasticPhysicsHP in physics-list.
  - Histograms: changed numbering scheme. Added histo of atomic mass.
  - EndOfRun: introduced optional print and UI command to control it.
  - Register RunMessenger in RunAction instead of Run.
  - PhysicsList: added G4IonElasticPhysics constructor.
  - Added option to set nThreads via UI command in main().
- hadronic/Hadr04
  - Pass primary kinematic to Run.
  - NeutronHPphysics: check for pre-existing processes.
  - Set number of threads as number of cores in main().
- hadronic/Hadr06
  - New example to survey energy deposition and particle's flux from an hadronic cascade.
- medical/dna
  - chem1
    - New example showing how to activate DNA chemistry in a 'semi infinite' homogeneous medium.
  - chem2
    - New example showing how to activate DNA chemistry in a 'semi infinite' homogeneous medium, setting minimum time step limits.
  - chem3
    - New example showing how to activate DNA chemistry in a 'semi infinite' homogeneous medium, implementing user actions.
  - dnaphysics
    - Moved from advanced module.
    - Added lines for ion in dna.mac.
    - Cleaned physics-lists and READMEs.
  - microdosimetry
    - Moved from advanced module.
    - Fixed user actions and enter flexible number of threads. Updated READMEs.
    - Select GUI+vis driver from command line.
    - Corrected check on the output file command line option.
    - Removed macro microdosimetry.mac.
    - Cleanup of command line options.
  - pdb4dna
    - New example simulating energy deposits in a target volume generated from a PDB file representing DNA geometry.
  - wholeNuclearDNA
    - Moved from advanced example 'dnageometry'.
    - Migrated to multi-threading.
    - Updated visualization setup.
    - Offering basic tools to simulate the track structure of different charge particles within a simplified geometrical model of the DNA molecule contained in a cell nucleus.
    - Select GUI+vis driver from command line.
    - Added copying macros and data files in build directory.
- medical/DICOM
  - Using G4GenericPhysicsList and removed DicomPhysicsList.
  - Removed use of std::cout and exit() in the code.
- medical/electronScattering
  - Migration to multi-threading.
  - Removed PhysicsList::SetCuts().
- medical/electronScattering2
  - Fixed memcheck errors: foil thickness now defined in Detector constructor.
  - Allow for selection of physics-list option4.
  - Follow migration of MT-ready GPS code.
  - Applied code guidelines; added G4EmLowEPPhysics.
- medical/fanoCavity[1,2]
  - Fix to proper initialisation of members in RunAction class.
- medical/GammaTherapy
  - Applied code guidelines.
- optical/LXe
  - Removed shared process pointers between threads.
  - Use implicit dimensioning for all arrays.
  - Updated UI commands to new structure.
  - Use correct mu- stopping process.
  - Added proton, neutron and pions to local Mu physics-list, needed for mu- capture at rest process.
- optical/OpNovice
  - Use implicit dimensioning for all arrays.
  - Updated UI commands to new structure.
- optical/WLS
  - Follow migration of MT-ready GPS code.
  - Use implicit dimensioning for all arrays.
- parallel/MPI
  - Added first version of G4RunMerger and G4ScorerMerger.
  - New CMake configuration.
  - Fixed bug for RNG seed distribution in MT mode. Addressing problem report #1653.
- parameterisations/gflash
  - Follow migration of MT-ready GPS code.
- persistency/gdml/G01
  - Added multiUnion.gdml sample demonstrating import and export of a Multi-Union structure.
- persistency/P01
  - Added ExP01ClassesDict to the install targets so it is copied to the right place. Addressing problem report #1502.
- persistency/P03
  - Using G4GenericPhysicsList and removed ExTGPhysicsList.
- polarisation/Pol01
  - Several updates for the unification of the example: use standard physics builder from physics_list sub-package; removed local SetCuts() method; removed AIDA histograms.
- radioactivedecay/rdecay01
  - Enabled multi-threading; implemented required migration.
- radioactivedecay/rdecay02
  - Fixed case of no elastic cross-section found for generic ions. Assigned model G4NuclNuclDiffuseElastic and cross-section G4GGNuclNuclCrossSection to generic ions in exrdmPhysListHadron. Addressing problem report #1461.
- runAndEvent
  - runAndEvent/RE01
    - Removed obsolete sample.err log-file.
  - runAndEvent/RE06
    - Removed obsolete hand-written physics list.
- visualization
  - Migrated 'userVisAction' example to multi-threading (based on basic/B1 example).