
                 Geant4 10.1 - patch-03 Release Notes
                 ------------------------------------

                                                            5 February 2016

List of fixes included in this public patch since the public release 10.1.p02:

  o Configuration:
    -------------
    + CMake:
      o Updated Apple Clang detection to work on Xcode-7.
      o Always use libc++ with Apple Clang so that std-supporting library is
        used for C++11 mode on older Mac systems where libstdc++ is the default.
      o Updated std-flag setting rules.
    + GNUMake:
      o Updated X11 settings in MacOS platform.
      o Added settings for C++ standards in platform specific scripts.

  o Analysis:
    --------
    + Fixed G4Analysis::Tokenize() which was failing when processsing a string
      containing opening double quota without a closing one.
    + Fixed handling ntuples created in MT mode on master thread
      This fixes the problem reported in hypernews (#459) and the problem
      of deleting non-empty Root file containing only ntuples.

  o Geometry:
    --------
    + divisions:
      o Fix for use of rotation matrix in G4VDivisionParameterisation in
        MT-mode; use thread-local pointer for rotation matrix as member of the
        class G4VDivisionParameterisation and set it to suto-delete.
        Removed unnecessary thread-local verbose flag.
        Addressing problem reports #1743 and #1758.
      o Set as unsupported divisions of polycone and polyhedra in MT-mode.
    + magneticfield:
      o Added check in G4ChordFinder against number of iterations in
        FindNextChord(), to identify potential cases of lack of convergence.
      o Better diagnostics text in case of errors in G4FieldTrack and
        G4UniformMagField.
      o Added explanation comment in G4MagHelicalSteper.
    + navigation:
      o G4MultiLevelLocator::EstimateIntersectionPoint(): fix for logic error
        in keeping consistent candidate intersection. Copes with case that a
        candidate intersection is not found in the next segment (typically in
        the 'second half' part).
        Ensure that splitting of step (new level/depth) advances the required
        length, used when adding a new level/depth.
        Revised condition of 'while' loop which ensures that a new candidate
        intersection exists. Corrected the resetting of 'first_section' flag.
        Replaced fatal error for exceeding max steps with warning and signal
        'looping' for too many steps; G4PropagatorInField detects this
        condition, and identifies it as a 'Looping Particle' which is then
        flagged; the calling class (Transportation, PathFinder) is expected
        to stop the tracking of this particle after a few of these steps.
        Addressing issue seen by ALICE (non-finishing of step due to poor
        advances).
      o G4VIntersectionLocator: added new logging methods & revised interfaces.
      o G4NavigationLogger: added method to report issue with normal that 
        is the result of applying a rotation.
      o G4NormalNavigation, G4VoxelNavigation: added check of rotated exit
        normal.
      o Relaxed condition for zero or almost-zero steps in G4ReplicaNavigation
        and G4Navigator, to allow for faster progression in case of stuck tracks
        in 3D scoring meshes. Addressing old problem report #1432.
      o Fix in G4ReplicaNavigation::ComputeStep() for correct setting of copyNo
        for particle entering. Fixes issue of negative copyNo observed in nested
        replica setups. Addressing problem report #1634.
      o Moved check for overlaps in G4Navigator::ComputeStep() within G4VERBOSE.
        Addressing problem report #1811.
    + solids/Boolean:
      o Checked for potential never-ending loops. Replaced while-do loop with
        bounded for-loop in G4IntersectionSolid::DistanceToIn(p,v).
        Also addressing problem report #1821.
    + solids/CSG:
      o Introduced check in G4Sphere::DistanceToIn(p,v) for concave Theta and
        point located on the origin. Also make proper use of radial tolerance in
        DistanceToOut(p,v).
      o Fixed Coverity defect in G4CutTubs::GetMaxMinZ().
    + solids/specific:
      o Added specialised implementation for GetCubicVolume() in
        G4TessellatedSolid. Added debug printouts withing G4SPECSDEBUG for
        DistanceToIn/Out(p,v) to identify potential wrong responses.
      o Removed redundant condition in G4Polyhedra and G4polycone
        SetOriginalParameters() method.
      o Minor code cleanup in G4SurfaceVoxelizer.
      o Checked for potential never-ending loops.
    + volumes:
      o Enabled paramerisation by solid type in G4GeometryWorkspace in MT-mode.
        Assumes solids being parameterised are declared thread-local in the
        user's parameterisation class and allocated just once.

  o Global:
    ------
    + Tune radial tolerance to same value as for Cartesian tolerance in
      G4GeometryTolerance.
    + Corrected conditions for proper treatment of gcc-5 in tls.hh and
      G4Threading.hh.
    + Removed unused and buggy operator=(const G4String&) in G4SubString.
      Added string length check in G4String::operator==().
      Added missing 'inline' specification to functions in G4String.
    + Force use of G4MT wrappers for Intel-icc compiler for random numbers.
    + Updated date and version for 10.1.p03.

  o Materials:
    ---------
    + G4NistElementBuilder: fixed typo in printout.
      Addressing problem report #1786.

  o Parameterisations:
    -----------------
    + gflash: fix for Zeff wrongly computed as ( W1*Z2 ) + ( W2*Z1 ), with Z1
      and Z2 swapped. Addressing problem report #1719.

  o Particles:
    ---------
    + Fixed wrong argument order CreateIon(A,Z,LL,0.0) in G4IonTable to
      CreateIon(Z,A,LL,0.0).
    + Fixed setting of mass in decay parent particle.
      Addressing problem report #1820.

  o Persistency:
    -----------
    + GDML:
      o Use relaxed precision constant for matrix to angle formula evaluation
        in G4GDMLWriteDefine, to allow for proper treatment of singularities.
        Fixes issues of misplaced volumes in exported geometries of complex
        detectors.
      o Rectify rotation matrices in reading and writing GDML files to reduce
        spurious roundoff errors in stored values.

  o Physics Lists
    -------------
    + constructors/limiters:
      o G4ParallelWorldPhysics: fixed process order index for
        G4ParallelWorldProcess to 9900 to make sure it is registered
        prior to G4OpBoundaryProcess.

  o Processes - Electromagnetic:
    ---------------------------
    + xrays:
      o G4VTransitionRadiation, G4VXTRenergyLoss: fixed process sub-type.

  o Processes - Generic:
    -------------------
    + scoring:
      o G4ParallelWorldProcess: fixed processType from 'fParameterized'
        to 'fParallel' and set processSubType to 491.
      o Fixed Coverity defects.

  o Processes - Hadronic:
    --------------------
    + cross_sections:
      o G4NeutronInelasticXS, G4NeutronCaptureXS: fixed isotope cross-sections
        including retrieve, data management, isotope x-section and isotope
        selection. Fixed Coverity defects.
    + models/cascade:
      o G4CascadeCoalescence: added explicit inclusion of
        G4InuclElementaryParticle header to address compiler error from Cray
        (as reported in Configuration Hypernews Forum #1764).
    + models/coherent_elastic:
      o G4DiffuseElastic: bug-fix in BuildAngleTable() to improve the angle
        bin accuracy at high energies.
    + models/im_r_matrix:
      o Fixed compiler warning in clang-3.6.

  o Run:
    ---
    + G4PhysicsListHelper: add entry for G4ParallelWorldProcess.
    + G4RunManager, G4WorkerRunManager: fixed process order index of
      G4ParallelWorldProcess to 9900 to make sure it is registered
      prior to G4OpBoundaryProcess.

  o Tracking:
    --------
    + G4SteppingManager: fix to properly set 'OriginTouchableHandle' for the
      primary track. Addressing problem report #1773.

  o Examples:
    --------
    + Updated reference outputs.
    + basic/B4:
      o Restored the third parameter in G4UIsession construction, which was
        lost when moving G4UIExecutive at the beginning of main().
        Addressing problem report #1802.

 ----------------------------------------------------------------------------

                             Technical Notes
                             --------------- 

  o  This patch should be applied on top of release 10.1, 10.1.p01 or 10.1.p02.
  o  Technical notes distributed for release 10.1 are also applicable and
     valid for this patch.

The code and rebuilt binary libraries for release 10.1.p03 are available
through our "Download" Web page.

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