
                 Geant4 10.0 - patch-04 Release Notes
                 ------------------------------------

                                                            6 March 2015

List of fixes included in this public patch since the public release 10.0.p03:

  o Geometry:
    --------
    + navigation:
      o 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.
      o Added protection in G4ReplicaNavigation::DistanceToOutRad() for
        potential rare cases of negative value to sqrt() in equation
        calculation for rmin/rmax intersection.
      o 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'. Revised implementation of ComputeStep(),
        to avoid calling G4Navigator::ComputeSafety().
        Addresses problem report #1679.
    + solids/CSG:
      o Fixed typo in copy-ctor and assignment operator for G4Tubs and G4OTubs.
      o Fix in temporary class G4OTubs to include symbol in library in any case.
    + solids/specific:
      o Fixed triangularisation method AddGeneralPOlygoneFacets() in
        G4ExtrudedSolid by avoiding flat triangles. Added warning message to
        G4TriangularFacet constructor if Area is 0; i.e., case of flat triangle.
        Addressing problem report #1703.
      o Added special DistanceAway() method for Inside() in order to fix
        precision problem in calculation of DistanceToSide() in G4PolyconeSide.
      o Fix in SetOriginalParameters() for G4Polycone and G4Polyhedra, in case
        of presence of 'rings' structures. Addressing problem report #1705.
      o Use canonical form for operator=() in G4PolyconeHistorical and
        G4PolyhedraHistorical.
    + solids/usolids:
      o UPolycone: correction in Capacity() for iteration over the number of
        sections and in SurfaceArea() in 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.
        Fix in InsideSection() for points(0,0,z).
        Fix in SetOriginalParameters(), in case of presence of 'rings'
        structures constructed by (r,z) corners.
        Use canonical form for operator=(). Code cleanup and formatting.
      o Added special DistanceAway() method for Inside() in order to fix
        precision problem in calculation of DistanceToSide() in UPolyconeSide.
      o Fixed typo in copy-ctor and assignment operator for UTubs.
      o UPolyhedra: moved Extent() from protected to public.
      o UTet: fixed approximation in Extent().
      o Minor fixes of errors reported by Coverity and unit tests in
        UTubs,UCons, UTet.
      o Removed useless 'inline' specification for pure virtual function
        StreamInfo() in VUSolid base class.
      o Renamed ExceptionSeverity struct to UExceptionSeverity in UUtils to
        avoid possible clashes with external libraries.
    + volumes:
      o Avoid post-increment in G4NavigationLevelRep::AddAReference().

  o Generic Processes:
    -----------------
    + Management:
      o Fixed logic in G4ProcessManager::SetProcessOrderingToSecond() to make
        sure the process is always set before the process that has ordering
        index 1.
    + Transportation:
      o G4Transportation, G4CoupledTransportation: in AlongStepGetPIL(),
        initialize restMass with G4DynamicParticle (as is used in DoIt()),
        not with G4ParticleDefinition. Resolves inconsistent kinematics
        when dynamic mass is measurably different from "PDG" mass.

  o Global:
    ------
    + 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.
    + Added missing G4GLOB_DLL specification for DLL import/export to
      G4CacheDetails specialization of cache reference for double.
    + Updated date and version for 10.0.p04.

  o Persistency:
    -----------
    + gdml:
      o Fixed typo in G4GDMLWriteSolids::BooleanWrite() for the case of
        repeated displacements of the reference solid in the same Boolean
        operation (issue reported by ATLAS).
      o 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).

  o Physics Lists:
    -------------
    + constructors/hadron_inelastic:
      o Added protection in destructors to avoid double deletes. 
    + constructors/limiters:
      o Fix in G4ParallelWorldProcess to correctly use method
        SetProcessOrderingToSecond().
    + lists:
      o INCLXXPhysicsListHelper: avoid use of G4NeutronTrackingCut
        for *_HP physics-lists.

  o Processes - Hadronic:
    --------------------
    + management:
      o G4HadronicProcess::CheckResult(): added check for dynamic mass 
        to correspond to PDG mass within ~10%.
    + models/cascade:
      o G4CascadeInterface: fixed possible infinite-loop condition where
        (nTries >= maxTries) and momentum balance fails.
    + stopping:
      o G4HadronStoppingProcess, G4MuonMinusBoundDecay: fixed time of muon 
        nuclear capture secondaries. Addressing problem report #1695.

  o Examples:
    --------
    + Updated reference outputs.


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

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

  o  This patch should be applied on top of release 10.0 or 10.0.p01/2/3.
  o  Technical notes distributed for release 10.0 are also applicable and
     valid for this patch.

The code and rebuilt binary libraries for release 10.0.p04 are available
through our "Download" Web page:
   http://cern.ch/geant4/support/download.shtml

Please refer to the Geant4 User Documentation:
   http://cern.ch/geant4/support/userdocuments.shtml
for further information about using Geant4.
