# Geant4 8.2 Release Notes

Geant4 8.2 Release Notes

December 15th, 2006

The code and binary libraries for the supported systems are available through our Source Code Web page.

Please refer to the Geant4 User Documentation for further information about using Geant4.

## Contents

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

## 1. Supported and Tested Platforms

Official platforms:

- SUN Solaris 5.8, C++ CC-5.5.
- Linux, gcc 3.2.3 or gcc 3.4.5.
  This configuration was tested on 32 bits architectures (Intel) and 64 bits architectures (AMD) with the Scientific Linux CERN 3 (SLC3) distribution (based on RedHat Linux Enterprise 3) and Scientific Linux CERN 4 (SLC4) distribution (based on RedHat Linux Enterprise 4). Versions of Geant4 have also been compiled successfully on other Linux distributions, like Debian, Suse or other RedHat systems.
- Windows/XP and CygWin Tools with: Visual C++ 7.1 .NET

More verified configurations:

- SUN Solaris 5.8, C++ CC-5.4 Patch 111715-02
- Linux, gcc-4.1.1
- Linux, Intel-icc 9.1
- MacOS 10.4, gcc-4.0.1
- Windows/XP and CygWin Tools with: Visual C++ 8.0 (Visual Studio 2005)

Platforms configured but not tested and not supported:

- AIX 4.3.2, xlC 6.0
- DEC V4.0, cxx C++ V6.1-027
- HP 10.20, aCC C++ B3910B A.01.23
- SGI V6.5.5, CC 7.2.1

## 2. CLHEP and AIDA

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

Geant4 8.2 examples with histogramming cowork with analysis tools compliant to AIDA 3.2.1 interfaces.
AIDA headers can be downloaded from: http://aida.freehep.org

## 3. Items for migration of the user code

Listed here is some relevant information on developments included in this release, some of which may require minor migrations for advanced uses of features in Geant4 in order to upgrade from release 8.1 to release 8.2. Note that a full re-installation of libraries (or a full recompilation) and a recompilation of user applications is anyhow required.

Standard Electromagnetic physics

Some improvements were introduced to multiple scattering, which provide improved results for large angle scattering; better particle transport near geometry boundaries and less cut dependence for sampling calorimeters (see details in Physics Reference Manual).
A new class `G4hMultipleScattering` has been created to provide faster simulation of hadron transport. This class uses the same multiple scattering model configured to reduce step limitation. It is used for hadrons and ions in most physics lists.
A new module polarization is introduced for simulation of circular polarized beams of `e+-` and `gamma`.
The change in response of calorimeters, due to the revision of the multiple scattering process (in its default configuration) is expected to be less than 1%. Larger differences are seen in the revised configuration, which does not apply most step limitations for electons and that is used in the QGSP_EMV physics list.

Hadronic physics

Reviewed coherent elastic scattering processes: data tables are now computed on-flight and the G4ELASTIC data set is no longer necessary.
New data sets are required for this release, see details below.

Physics Lists

The physics list module has been moved inside the `source` tree; as such it is now built as part of the kernel libraries by default. The number of libraries has been reduced to two; it is now possible to use them together with shared libraries (or DLL on Windows) and global libraries.

## 4. Known Run-Time Problems and Limitations

For a complete list of outstanding run-time problems and to submit any problem you may find running this version of Geant4, please refer to the Geant4 Problem Reporting System.

## 5. Compilation Warnings

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

## 6. Known Run-Time Warnings

The following message can be written to error output while tracking. We believe it does not give rise to incorrect behaviour.

        G4PropagateInField: Warning: Particle is looping
        -  tracking in field will be stopped.
           It has performed 1000 steps in Field while a maximum of 1000
           are allowed.

## 7. Geant4 Software License

A Software License applies to the Geant4 code. The details and the list of copyright holders is available at http://cern.ch/geant4/license and also in a text file `LICENSE` distributed with the source code.

## 8. Detailed list of changes and fixes

These are the main new features/fixes included in this release since the last patched public release (for the detailed list of fixes/additions, please refer to the related History files provided in most packages):

### Configuration

- `Configure` script:
  - Updated settings for new data sets.
  - Fixed issues of caching values for paths to CLHEP and external libraries. Added setting of LD_LIBRARY_PATH in `env.[c]sh` generated scripts.
  - Fixed issue on MacOS for `-ldlibs` option to the `Configure` script: added .dylib search in `liblist.c` for list of libraries. Addressing problem report #885.
- Use variables defined at architecture level for calls to system function in scripts, to avoid ambiguity of paths in CygWin environment in Windows.
- `binmake.gmk`: added electromagnetic/polarisation module and new physics_lists module.

### Digitazation & Hits

- Introduced new class `G4PSCellCharge`, a primitive scorer class for scoring cell charge; the cell charge is defined as the sum of deposited charge in the cell.

### Electromagnetic Processes (High-energy and Standard)

- Standard
  - `G4MultipleScattering`:
    - Set default `skin=1` only for e+-, for all other particles default `skin=0`.
  - `G4hMultipleScattering`:
    - New class which by default has step limitation only near geometry boundary with `FacRange=0.2`; meant to be used for hadrons/ions.
  - `G4UrbanMscModel`:
    - Fixed initialisation in `ComputeTruePathLengthLimit()`, fixed `stepmin=1.e-6*mm`.
    - Fixed problem of genreation of NaN inside method `SampleCosineTheta()`.
      `theta0` parameter for `SampleCosineTheta()` is computed in a public function `ComputeTheta0()`.
    - Adopting new approach for accessing geometrical safety, according to recent developments for parallel navigation.
    - No `z` sampling in `ComputeGeomPathLength()` by default.
    - Step limitation algorithm has been modified:
      - Minimum steplimit in 8.1: `tlimitmin = max(lambda/25, 5 nanometer)`
        Now: `tlimitmin = max(lambda/25, 1.01*stepmin)`
        where `stepmin ~ lambda elastic`.
      - Introduced possibility to have extreme small step(s) before boundary crossing (feature not active by default); it can be activated by setting the data member `skin` to a non-negative value; `steplimit = stepmin`, if the distance to the boundary (in the original direction) is smaller than `skin*stepmin`. The parameter `skin` is set to 1 by default.
      - The step restriction is weaker for particles with higher energy, i.e., bigger effective `facrange` value is used in this case; in 8.0/8.1 this scaling depended on `Tkin`, in the new version the scaling depends on `lambda`, giving smaller material dependence.
    - Angular distribution has been changed:
      - Single/plural scattering for `step <= stepmin` (in this case `t = z` + no lateral displacement).
      - Parameter `theta0` has been (sligtly) modified.
      - The tail of the distribution has been modified, now the parameter describing the tail is material (i.e. `Z`) dependent.
  - `G4CoulombScatteringModel`:
    - Using inheritance from `G4eCoulombScatteringModel` class.
  - `G4eCoulombScatteringModel`:
    - Set total elastic cross section const below `1 keV`.
    - Screening parameter computation is now done in inline function.
    - Set default low limit on scattering angle to zero.
    - Fixed cross section and sampling of final state.
  - `G4BraggIonModel`:
    - Reduced lowest energy for parameterisation to `0.25 keV`.
  - `G4eeToTwoGammaModel`:
    - Introduced new member `theGamma`.
  - `G4eplusAnnihilation52`:
    - Added extra protection against zero energy in PostStep.
  - Added deprecation warning to all processes 52 and 71 type.
  - Included changes required for new processes/models with polarization.
- Muons
  - Added deprecation warning to all processes 52 and 71 type.
- HighEnergy
  - Added new classes `G4mplIonisation` and `G4mplIonisationModel`, implementing ionisation for a classical magnetic monopole.
  - `G4hhIonisation`: added `maxKinEnergy` class member (set to `100 TeV`).
- Polarisation
  - New polarisation library for simulation of circular polarized beams of `e+-` and `gamma`, including following processes and models: `e+e-` annihilation, bremsstrahlung, compton scattering, ionisation and `e+e-` pair production.
- Utils
  - `G4EnergyLossMessenger`: added commands `binsDEDX` and `binsLambda`.
  - `G4VEmProcess`: added public function `SetModel()`.
  - `G4VEmModel`: added member `currentElement` and protected accessors.
  - `G4LossTableManager`: added method `GetEnergyLossProcess()`.
  - `G4EmCalculator`: added computation of smoothing factor for `dedx` of hadrons and ions. Changed the threshold of `1 keV` to `10 keV` to access low-energy ionisation.

### Electromagnetic Processes (Low-energy)

- New data set G4EMLOW-4.1 with new Auger data.
- Bug fixes in `G4FluoData` class.
- Developments and fixes for atomic deexcitation.
- Cosmetics on code formatting for DNA processes.

### Event

- First implementation of flat_sampling (biasing) for multiple sources in GPS.
- Added flag in `G4Event` to keep the particular event object until the end of the current run. Added method to `G4EventManager` to control the above flag and related UI command in `G4EvManMessenger`.
- Corrected initialization in G4PSEneDistribution.

### General Processes: Parameterisation, Scoring, Transportation

- Parameterisation
  - Introduced new classes to handle multiple navigation in parallel geometries (Beta release):
    - `G4FastSimulationManagerProcess81`: new process which will replace the current default one `G4FastSimulationManagerProcess` in a future release. This class can handle either navigator for tracking or for fast parameterisation.
    - `G4GFSManager81`: class that gathers the future code to become the default at next major release in the `G4GlobalFastSimulationManager` class.
  - `G4FastSimulationManager`: adapted to new scheme. Still has old code for backward compatibilty.
  - `G4FastSimulationMessenger`: new command `/param/showSetup`, useful to show the fast simulation setup (region, models, processes, etc...). It is only valid for geometry closed state.
  - `G4GlobalFastSimulationManager`: limited number of warning messages printed.
  - `G4FastSimulationManagerProcess`: minor bug fix.
- Scoring
  - New module with classes for handling scoring and geometrical biasing in parallel geometries using multiple navigation (Beta release). Will replace corresponding classes in `transportation` and `digits_hits` modules in future releases.
- Transportation
  - Introduced new class to handle multiple navigation in parallel geometries (Beta release):
    - `G4CoupledTransportation`: revised version of `G4Transportation`, for use in 'coupled' parallel navigation in different geometries. Likely to replace `G4Transportation` in future major release.
  - Added new classes `G4NeutronKiller` and `G4NeutronKillerMessenger` to allow for easy disabling simulation of unwanted neutrons; useful to improve CPU performance. Two parameters are provided: low energy threshold for neutron kinetic energy (default 0), and time limit for neutron track (default DBL_MAX); these parameters can be changed via accessors in the code or through UI commands in the provided messenger: `/physics_engine/neutron/energyCut` and `/physics_engine/neutron/timeLimit`. If a neutron track is killed no energy deposition is added to the step.

### Geometry

- Magnetic field
  - `G4FieldTrack`:
    - Implemented missing definition for `GetCharge()` method.
    - Corrected `const` qualifier for accessors in the subclass.
    - Some code cleanup.
- Management
  - Added `GetSurfaceArea()` method to `G4VSolid` for approximated computation of the surfare area of a shape.
  - Corrected deregistration and deletion of world default region, now happening through `G4RunManagerKernel`. Minor cleanup in the implementation of the other stores.
  - Fix in `G4ReflectedSolid::CreatePolyhedron()` for case of component that does not have a `G4Polyhedron` representation.
- Navigation
  - Introduced new classes for handling multiple geometries (Beta release):
    - `G4PathFinder`: class responsible of determining the correct path taking into account response from multiple navigators attached to user-defined parallel geometries. It ensures that tracking in a magnetic field sees these parallel geometries at each trial step, and that the earliest boundary limits the step.
    - `G4SafetyHelper`: helper class for physics processes which require knowledge of the geometrical safety, and the step size for the 'mass' geometry.
    - `G4MultiNavigator`: utility class for polling the navigators of several geometries to identify the next boundary.
  - `G4Navigator`:
    - Added inline methods `EnteredDaughterVolume()` and `ExitedMotherVolume()` to allow for verification of a point entering a daughter volume or exiting the mother volume. Moved related data members to protected.
    - Made `LocateGlobalPointAndSetup()` method virtual. Moved to non virtual and inline `LocateGlobalPointAndUpdateTouchableHandle()` method.
    - Moved `fHistory` data member to protected to allow for more complete subclassing.
  - `G4TransportationManager`:
    - Added methods to access the list of the registered worlds.
    - Added new method `SetWorldForTracking()` to enable change of world from the RunManager.
  - `G4PropagatorInField`:
    - Introduced fix in `LocateIntersectionPoint()`, to subdivide in case it cannot find intersection point quickly.
- Solids
  - Implemented specific computation of surface area for CSG solids and included caching mechanism for the computed value.
  - Boolean:
    - `G4IntersectionSolid`, `G4SubtractionSolid`, `G4UnionSolid`: fixed `CreatePolyhedron()` for case of component that does not have a `G4Polyhedron` representation.
  - Specific:
    - Implemented `CreatePolyhedron()` for `G4Polyhedra` and `G4Polycone`.
    - Added concrete implementation of `GetSurfaceArea()` in `G4Tet`.
- Volumes
  - Use direct rotation/translation instead of frame rotation/translation in concrete `CheckOverlaps()` method of `G4PVPlacement` and `G4PVParameterised` volumes.
    Fixes a problem reported for wrong transformation associated to overlap-check in displaced boolean solids, but also asymmetrical placements.

### Global

- New class `G4SliceTimer` with implementation derived from `G4Timer` for the computation of slice time intervals.
- Fixed incorrect behavior of `G4StateManager`, so that now it changes the state -after- asked to all the `G4VStateDependent` classes.
- `G4UnitsTable`:
  - Removed `mum`; `um` should be used instead.
  - Added `ClearUnitsTable()` method to `G4UnitDefinition` to allow for proper deallocation of units from the run-manager.
- Added signal handler for debugging FPE signals and catching NaNs in applications. Works only on Linux with gcc compiler.

### Graphical Representations

- `G4VisAttributes`:
  - Changed `GetAttValues()` to `CreateAttValues()`. It creates an expendable copy on the heap, thus following the behaviour of `CreateAttValues()` in trajectories, hits, etc. This achieves consistency of behaviour and user expectation; the user is responsible for deletion after use.
  - Added time range and `ForceLineSegmentsPerCircle` attribute.
- `G4VGraphicsScene`: removed `Establish`/`DecommissionSpecials`.
- `G4Visible`:
  - Added `fAllocatedVisAttributes` to prevent memory leak.
  - Fixed copy constructor and assignment operator for deep copies.
- `G4VVisManager`: added `FilterHit()` method.
- Made `G4VFilter::Accept()` method `const`.
- New utility class `G4AttHolder` to hold `G4AttValues` and their corresponding `G4AttDef` map.
- `G4AttCheck`:
  - Added bool to the list of allowed G4AttValue value types and added `Density` to the list of units categories.
  - Fixes for dimensionless "Physics" attributes.
  - Added store key to printing in `operator<<()`.
  - Improved error checking.
- `G4AttDefStore`: added `GetStoreKey()` method.
- Bug fix in `HepPolyhedronEllipticalCone` causing wrong visualization of `G4EllipticalCone` solids.

### Hadronic Processes

- Cross sections
  - Changed scaling of interpolated pion cross sections from `Z^(2/3)` to `A^(3/4)`. Will slightly increase interpolated cross section values.
  - Use constant ion cross section above <YY>10 GeV/A in `G4IonsShenCrossSection`. This extends range of validity to `1TeV/A`.
  - In `G4GlauberGribovCrossSection`, calculating coherent elastic scattering for protons and neutrons on nuclei down to `0.3 GeV`.
- High Precision Neutrons
  - New data set G4NDL-3.10, containing cross sections and models below `4eV` based on thermal neutron scattering files from the evaluated nuclear data files ENDF/B-VI, Release2.
  - New cross section data files added from JENDL database. Will allow extended validity of HP neutrons up to `3 GeV` in next release.
- Elastic scattering
  - New CHIPS `G4QElastic` process introduced. Uses improved fits to cross section data, correct kinematics. Currently to be used with proton and neutron projectiles only.
  - Extended coherent elastic scattering (`G4ElasticHadrNucleusHE`) down to `0.4 GeV`.
    Completed review and update of the class: data tables are computed on-flight, G4ELASTICDATA data set is no longer used. The model is applicable for all nuclei, except deuteron, triton, He3, and A>238.
- Radioactive decay
  - Added capability of handling decay emission of proton or neutron for decays of He5 (alpha+n) and Li5 (alpha+p). Addressing problem report #852.
  - New updated data set: RadioactiveDecay 3.1.
- Stopping
  - Reviewed kinematics in mu-stopping (`G4MuonMinusCaptureAtRest`), special treatment of stopping in H and He media. Addressing problem report.
  - `G4MuMinusCaptureCascade`: clean up of interfaces; improved kinematics in muon decay sampling.
- Utils
  - In `G4ReactionDynamics::AddBlackTrackParticles()`, corrected cases of division by zero.
  - Changed text layout in `G4HadronicWhiteBoard`, to conform with standard `G4Exception` text.

### Intercoms

- Extended `G4UImanager::Loop()` and `/control/loop` UI command to handle negative increments.

### Materials

- Added methods to access vector of names of NIST elements and materials.
- Added methods `GetAtomicMass()`, `AddIsotopeMass()`, returning atom mass and nuclear mass in Geant4 units.
- Added `GetTotalBindingEnergy()` method to `G4AtomicShells`.
- Added `Get/SetNaturalAbundancesFlag()`.

### Particles

- Updated mass/width/encoding of particles to match with PDG2006:
- Introduced PDG encoding for nuclei.
- Added `G4Exception` warning if sum of daughter mass exceeds parent mass in `G4PhaseSpaceDecayChannel`.
- Modified `GetMass()` and `GetCharge()` of `G4PrimaryParticle` to return PDG mass and charge if users do not specify them.
- Optimized implementation of `G4IonTable::IsLightIon()` method.

### Persistency

- Protected with flag G4LIB_USE_HEPMC code which explicitly uses HepMC classes, to allow for porting to CLHEP 1.9.3.X or 2.0.3.X releases.
- Added setup for retrieving HepMC in case G4LIB_USE_HEPMC is set and the HEPMC_DIR path defined in the environment.

### Run

- Handling multiple navigation in parallel geometries (Beta release):
  - `G4VUserParallelWorld`: new abstract base class for the generation of the user's parallel world. The user must create the new parallel world by retrieving it from the provided `GetWorld()` protected method, and fill it inside through the `Construct()` method. The constructor takes a unique name of the parallel world, which is used to set the name of the world physical volume of the new parallel world.
  - Added mechanism for detecting presence of parallel world registered and allow for switching of transportation in `G4VUserPhysicsList`.
- `G4Run` object is now kept until the beginning of the next run, so that the user can have an access to the valid `G4Run` pointer during the `Idle` state after the run. Events can be kept un-deleted, stored in `G4Run`, and persist until the deletion of the `G4Run` objects.
- Added call to the FPE handler in constructor of `G4RunManagerKernel`.
- In destructor of `G4RunManagerKernel`, allow for proper deletion of default region and deallocation of units from the `G4UnitsTable`.

### Track and Tracking

- Track
  - Moved `G4TrackVector` class from tracking module.
  - Added secondary vector to `G4Step`.
  - Added methods for setting polarization and modifying weight for `G4ParticleChangeForGamma` and `G4ParticleChangeForLoss`.
  - New methods `IsFirst/LastStepInVolume()` in `G4Step`, with accessors and modifiers in `G4Step` and `G4VParticleChange`.
  - Revised method `UpdateStepForPostStep()`.
- Tracking
  - Secondary vector is now owned by `G4Step` and G4TrackVector class has been moved in the track module.
  - Fix in `G4SteppingVerbose` for `ForceCondition`.
  - Fixed "double-deletion" problem in the destructor of `G4SteppingManager`.
  - Added new method `TrackBanner()` in `G4TrackingManager`; moved all hard-coded verbosity to this method. Modified `G4SteppingManager` to invoke this new method.
  - Fix in `G4SteppingManager` for the treatment of trajectory update. Modified trajectory classes accordingly.
  - Augmented `/tracking/storeTrajectory` command. Now taking integer parameter:
    0 : Don't Store trajectories. !=0 : Store trajectories.
    1 : Choose G4Trajectory as default.
    2 : Choose G4SmoothTrajectory as default.
    3 : Choose G4RichTrajectory as default.
  - In all trajectories:
    - Added protection to points container pointer in destructor.
    - Made `G4AttDef` descriptions more concise.
    - `G4RichTrajectory`: bug fix, created `G4AttValues` for user-defined creator process.
    - `G4VTrajectory`: improved `ShowTrajectory()` implementation.

### Visualization

- Overall
  - Expanded previous trajectory-modeling abilities (`drawByCharge`, `drawByParticleType`, `drawByOriginVolume`) to now allow drawing by arbitrary attributes. Allows, for example, "color by momentum range".
    See commands such as `/vis/modeling/trajectories/create/drawByAttribute`
  - Expanded previous trajectory and hit filtering abilities (`filterByCharge`, `filterByParticleType`, `filterByOriginVolume`) to now allow filtering by arbitrary attributes. Allows, for example, filter out all trajectories from particles with momentum below a specified cutoff.
    See commands such as `/vis/filtering/trajectories/create/attributeFilter`
  - Added trajectory time-slicing. Makes it possible to create movies that show time-development of events. Currently supported only in OpenGL viewers.
    See detailed commands under OpenGL below.
  - Added facility for easy interactive selection of whether trajectory should be simple, rich or smooth.
    See new parameters "rich" and "smooth" in command `/vis/scene/add/trajectories`
  - Transients are no longer lost when you change the view or change viewers (for example from OpenGL to DAWN).
  - Implemented commands to complement the new "event keeping" facilities in the kernel. Visualization can display any event that has been specified should be kept. Event keeping is also automatically activated when there is a visualization that accumulates multiple events into one visualization, so that it is possible to later go back and visualize the individual accumulated events one at a time.
    See command `/vis/reviewKeptEvents`
  - Added command to clear transients from current viewer.
    See command `/vis/viewer/clearTransients`
  - Added ability in `G4VisAttributes` to force the number of line segments used to represent a circle (the given volume will use this value rather than any value set from the interactive command `/vis/viewer/set/lineSegmentsPerCircle`).
    Specify as `G4VisAttributes::SetForceLineSegmentsPerCircle`
  - Added command to control line width.
    See command `/vis/viewer/set/globalLineWidthScale`
  - Added ability to specify clipping/cutaway planes for the view (currently works only in OpenGL since uses OpenGL clip plane capabilities, but may eventually be extended to other viewers).
    See commands:
    `/vis/viewer/addCutawayPlane`
    `/vis/viewer/changeCutawayPlane`
    `/vis/viewer/clearCutawayPlanes`
  - Added command to create exploded-view.
    See command `/vis/viewer/set/explodeFactor`
  - Implemented visualization of parallel worlds. Commands that add volumes understand the names of the various worlds.
- OpenGL
  - Added facility to have OpenGL write to an EPS file.
    See command `/vis/oglx/printEPS`
  - Added ability to create movies that show time-development of events.
    Controlled by commands such as `/vis/modeling/trajectories/drawByCharge-0/default/setTimeSliceInterval 0.1 ns`
    and new OpenGL commands:
    `/vis/ogl/set/startTime and endTime`
    `/vis/ogl/set/fade`
    `/vis/ogl/set/displayHeadTime`
    `/vis/ogl/set/displayLightFront`
    See detailed HowTo.
    Also see Application Developers Guide, Section 8.10, Making a Movie.
- OpenInventor
  - Added ability to show attributes upon picking of solids, trajectories and hits.
- RayTracer
  - Deprecated `/vis/rayTracer/backgroundColour`.
    Instead use command `/vis/viewer/set/background`
- HepRepFile
  - Corrected handling of Hits that come via AddSolids.
  - Improved handling of trajectory points.
- ASCIITree
  - Added printing of material name.

### Environments

- Python environment:
  - Added MacOSX support.
  - More exposed methods.
  - Added physics list module.
  - Added GUI examples using wxPython.
  - Implemented `G4ExceptionHandler` as translation to Python exceptions.
  - Removed obsolete method GetObjectRotation() from G4VPhysicalVolume wrapper.
  - Fixed namespace problem in pyG4Material.
  - Replaced `SetVerbosity()` method with `SetVerboseLevel()` in pyG4VisManager.
  - Added messenger for `ExN03geom`.

### Physics lists

- Moved physics lists into source tree. Removed external tree. Simplified directory and library structure.
- Deleted two "_GN" lists which were added in release 8.1 by mistake.
- Added warning for physics lists now obsolete: LHEP: _HP, _BIC, BIC_HP, _PRECO, QGSP_HP.
- Added neutron tracking cut to QGSP and FTF lists without _HP extension.
- Added lists QGSC_EMV, QGSC_EFLOW, QGSP_BIC_HP and QGSP_QEL (i.e QGSP with CHIPS elastic).
- Fix to initialise activation flag in `G4HadronQElasticPhysics` constructor.
- `G4HadronElasticPhysics`: configure neutrons separately from other hadrons.
- `G4HadronProcessStore`: implemented computation of cross sections.
- Added possibility to use Glauber-Gribov cross-sections in QBBC.
- Updated versions numbers.

### Data sets

- New data set for low-energy electromagnetic processes: G4EMLOW 4.1:
  - Updated Auger data set.
- New data set for high-precision neutron processes: G4NDL 3.10:
  - New Thermal Scattering files:
    H in H2O. Source: H2O (thermal) from ENDF/B-VI Tape 118
    Graphite. Source: graphite thermal file from lanl for release 2
    Polyethylene. Source: Poly (thermal) from ENDF/B-VI Tape 118.
  - New JENDL_HE files:
    Elastic and Inelastic cross section from "JENDL High Energy File 2004" for H(1), C(12,13), O(16), Mg(24,25,26), Al(27), Si(28,29,30), K(39,41), Ca(40,42,43,44,46,48), Fe(54,56,57,58), Cu(63,65), Zn(64,66,67,68,70).
- New data set for radioactive decay processes: RadioactiveDecay 3.1.
- Archived data set for high energy elastic scattering processes, no longer necessary.

### Examples

- Updated reference outputs.
- Modified where necessary the setup for accessing physics lists after the inclusion of Physics Lists as kernel libraries.
- advanced
  - air_shower
    - Removed invocation of `Visualisation.mac` in `main()` if `argc==1`.
  - brachytherapy
    - Removed `/vis/scene/transientsAction none` command (no longer available).
    - Physics list cleaned. The cut is fixed to a value lower than the `1 keV` limit.
  - human_phantom
    - New example implementing anthropomorphic phantoms (male and female) based on MIRD/ORNL model with geometry description derived from GDML persistent files.
  - microbeam
    - Replaced `G4MultipleScattering` process for alphas by new `G4hMultipleScattering` implementation.
    - Removed obsolete vis-manager classes. Now using `G4VisExecutive`.
  - raredecay_calorimetry
    - Removed obsolete vis-manager classes. Now using `G4VisExecutive`.
- extended
  - analysis/A01
    - Removed unused attributes from hit classes.
    - Fixed limits on histogram and changed "Bookkeeping" to "Physics" in `G4AttDefs`.
    - Removed tracking action. Use `/vis/scene/add/trajectories rich` command, etc.
    - Invoke `G4UIterminal(new G4UItcsh)` if G4UI_USE_TCSH set.
  - Removed old PhysicsLists '52' and '71' in "electromagnetic" examples.
  - electromagnetic/TestEm0
    - Added interface to NIST materials.
    - Correction in `DetectorConstruction::SetMaterial()`.
  - electromagnetic/TestEm3
    - Fixed names of standard EM builders.
  - electromagnetic/TestEm5
    - Added interface to NIST materials.
    - Added "standardSS" physics (single scattering instead of multiple).
    - `StackingAction`: more options for `killSecondaries`.
  - electromagnetic/TestEm7
    - Added NIST materials.
    - Fixed cout for the case when range exceeds width of the absorber.
    - Renamed standard options: "G4standard", "G4standard_fast".
    - Added Livermore and Penelope options.
  - electromagnetic/TestEm8
    - Updated `DetectorConstruction` and `PhysListEmModelPai`.
  - electromagnetic/TestEm9
    - Added PhysListEmPenelope and PhysListEmLivermore.
    - Added EM components from physics_lists subpackage and use hadronic components from physics_lists subpackage.
    - Fixed names of standard EM builders.
  - electromagnetic/TestEm11
    - Replaced `G4_WATER` with `Water`.
    - Reinstate 'hLowEnergyIonisation' in Livermore physics list.
  - electromagnetic/TestEm14
    - Compute `mass_energy_transfer` coefficient.
  - electromagnetic/TestEm17
    - Fix in `ConstructParticles()`. Addresses problem report #893.
  - eventgenerator/HepMC
    - Added new example `MCTruth` showing handling of MC truth information through the HepMC package.
    - Archived examples copies using CLHEP/HepMC.
    - Fixed a bug in `HepMCEx01/ExN04CalorimeterSD`.
    - Corrected `GNUmakefiles` for `HepMCEx01` and `HepMCEx02`.
    - Migrated to use new trajectory modeling commands in vis macros.
  - gdml
    - Set schema location to LCG release area in `test.gdml`.
  - hadronic/Hadr01
    - Included tracking cut for neutrons.
    - Added option to define beam position by user.
    - Added `PhysList` and directory for histograms definition via environment variable and fixed setup for AIDA.
  - parallel/ParN04
    - Fixed bug in ExN04CalorimeterSD derived from N04 example.
  - polarisation/Pol01
    - New example for polarised EM processes.
  - runAndEvent
    - RE01: fixed bug in `CalorimeterSD::ProcessHits()` concerning the transformation for vector and rotation matrix of the calorimater cell of readout geometry
    - RE02: reimplemented the geometry using `G4VNestedParameterization`. Modified scorers accordingly.
  - visualization
    - perspective: improved command guidance.
- novice
  - N02
    - Improved `vis.mac` to vis best practice.
  - N03
    - Migrated to use new trajectory modeling commands:
      `vis.mac`: added new trajectory commands and helpful comments.
      `ExN03EventActionMessenger`: removed `/N03/event/drawTracks` command.
      `ExN03EventAction`: removed `SetDrawFlag()` and code for drawing trajectories in `EndOfEventAction()`.
    - Added `exN03Vis12.mac` and `exN03Vis13.mac` in `visTutor`: demonstration of time slicing.
  - N04
    - Fixed bug in `ExN04CalorimeterSD::ProcessHits()` concerning the transformation vector and rotation matrix of the calorimater cell of readoout geometry.
    - Migrated to use new trajectory modeling commands in vis macros.
    - Changed attribute name Type to `HitType`. Added `HitType` attribute to all hit classes. Added hits attributes for picking.
    - Made material world and readout world top volumes invisible. and removed `forcedWireframe` from tracker and caloLayer.
    - Set readout geometry name.
  - N05
    - Reimplemented example to follow the new parallel geometry scheme (Beta version for parallel navigation). Added class `ExN05ParallelWorldForPion` and removed ghosts in `DetectorConstruction`.
    - Archived XXXCuts classes, as they are not of primary need.
    - Fixed bug in `ExN05CalorimeterSD` which was originated from example N04.
  - N06
    - Migrated to use new trajectory modeling commands in vis macros.
  - N07
    - Added timing measurement for each region and for `e+/e-`.