
                 Geant4 9.5 - patch-02 Release Notes
                 -----------------------------------

                                                              22 October 2012

List of fixes included in this public patch since the public release 9.5.p01:

  o Environments
    ------------
    + G4Py:
      o Updated scripts for use of internal CLHEP module.
      o Added necessary updates for 9.5.p01. Addressing problem report #1317.
      o Fixed logics in configuration script for specifying Python include
        path. Addressing problem report #1316.
      o Fixes in pyG4VisManager: added static statement for GetVerbosity() and
        fixed GetConcreteInstance() returning an insufficient class pointer.
        Addressing problem report #1318.

  o Digits_Hits:
    -----------
    + G4VScoringMesh: avoid updating size and segment in command-line scoring
      and print warning when SetSize() or SetNumberOfSegments is called more
      then once.

  o Error Propagation:
    -----------------
    + Fixes in G4ErrorTrackLengthTarget and G4VErrorLimitProcess to solve
      memory leak. Addressing problem report #1284.
    + Fixed variable name (partType -> partName) in G4ErrorFreeTrajState
      and delete code not needed in G4ErrorPhysicsList.
    + Explicitly use inclusion of headers for system of units and physical
      constants and fixed spurious cases of hidden variables.

  o Event:
    -----
    + Correction for orthogonalization of rotation matrix in
      G4SPSPosDistribution::GenerateRotationMatrices() method.
      Addressing problem report #1299.

  o Geometry:
    --------
    + biasing:
    + divisions:
    + management:
      o Fixed trivial cases of variable shadowing.
    + navigation:
      o G4Navigator: added method GetGlobalExitNormal() to be used in place
        of GetLocalExitNormal() by optical processes, to address problem
        report #1300. Compute normals also for replicas.
        Moved internal methods GetSavedState() and RestoreSavedState() to
        protected.
      o G4PropagatorInField, G4VIntersectionLocator: corrected two arguments
        of IntersectChord() to be const references instead of copy (fix for
        CPU performance).
      o G4Navigator, G4MultiNavigator and G4ErrorPropagationNavigator:
        use 'true' as default value for state keeping.
      o Fixed trivial cases of variable shadowing.
    + solids/Boolean:
      o G4SubtractionSolid: refined protection for potential cases of
        infinite loop in DistanceToIn(p,v); return computed distance instead
        of zero and provide more descriptive information when issuing warning.
    + solids/BREPS:
      o Fixed trivial cases of variable shadowing.
    + solids/CSG:
      o G4Para::SurfaceNormal(): fixed calculation of sin(alpha) from
        cosine and tangent.
      o G4Torus: revised values of delta, to account for precision loss
        in calculating radius 'pt'. Reordered a few computation for better
        FP accuracy.
    + volumes:
      o Corrected GNUMakefile for spurious inclusion path.

  o Global:
    ------
    + G4PhysicsVector: added GetMaxEnergy() inlined method; indicate inline
      methods in header file by explicitly adding inline keyword; added inline
      method Value() and private method ComputeValue() in order to have inline
      access to the value for the case of multiple calls with the the same
      energy value.
    + Correction to G4PhysicsOrderedFreeVector to fix ordering of elements.
    + G4UnitsTable: added call to BuildUnitsTable() from static accessor to
      guarantee proper initialization of units in static calls.
      Modified warnings in cout to be compliant with G4Exception syntax.
    + Implemented workaround to aid for templated symbols of
      G4ReferenceCountedHandle to be properly imported/exported
      for DLL build on Windows systems based on CMake.
      Addressing problem report #1329.
    + Fixed trivial cases of variable shadowing.
    + Updated date and version for 9.5.p02.

  o Intercoms:
    ---------
    + Fixed trivial cases of variable shadowing.

  o Interfaces:
    ----------
    + Fix in G4UIWin32 to make it work on Win64; replaced [Get|Set]WindowLong()
      with [Get|Set]WindowLongPtr() and GWL_USERDATA by GWLP_USERDATA.

  o Particles:
    ---------
    + Fixed bug in decay table for k_star-.
    + Modified G4eDecayProduct to use std::vector instead of fixed size array,
      removing limitation of number of daughters.

  o Persistency:
    -----------
    + ASCII:
      o Fixed case of conversion from size_t to G4int in G4tgrUtils in
        function AreWordsEquivalent(), detected on win64 system.
    + GDML:
      o Proper handling of constant material properties.
      o Fixed trivial cases of variable shadowing.

  o Electromagnetic Processes:
    -------------------------
    + Standard:
      o G4eplusAnnihilation: fixed weight propagation for annihilation at rest.
      o G4IonFluctuations: use simplified algorithm for very small steps to
        avoid infinite loop in tracking of very low energy (~10 eV) ions.
        Addressing problem report #1345.
      o G4UrbanMscModel90: added protection against very low step limit to
        avoid infinite loop in tracking of very low energy (~10 eV) ions.
        Addressing problem report #1345.
      o G4UrbanMscModel92: use more loose protection against large angle
        scattering (1000 -> 10000).
      o Added missing reference to G4UrbanMscModel92 files in CMake script.
    + Utils:
      o Fixed weight propagation from primary to secondaries in G4VEmProcess.

  o Hadronic Processes:
    ------------------
    + cross_sections:
      o G4HadronCrossSections: use cache of previous cross-section and G4Pow
        to save some CPU time.
    + management:
      o G4HadronicProcess: avoid cross-section computation in PostStepDoIt
        for neutral hadrons (minor improvement in CPU time).
    + models/binary_cascade:
      o Fixed case of use of Lorentz vector explicit contructor in
        G4BinaryCascade.
    + models/CHIPS:
      o Fix to linear table update for quasi-elastic cross-sections, also
        responsible for event non-reproducibility.
      o Fixed bug in ElectroNuclearReaction. Addressing problem report #1354.
      o Fixed cases of use of Lorentz vector explicit contructor in
        G4QFragmentation and G4Quasmon.
    + models/de_excitation:
      o G4DiscreteGammaTransition: fixed algorithm of selection of discrete
        transition; restore transition to the ground state in gamma+C12
        reaction. Addressing problem report #1338.
    + models/lend:
      o Fixed GNUmakefile for use of internal expat library, if explicitely
        chosen.
      o Fixed trivial cases of variable shadowing.
    + models/neutron_hp:
      o Fixed case of use of Lorentz vector explicit contructor in
        G4NeutronHPCaptureFS.
    + models/parton_string/hadronization:
      o Removed unnecessary assertions in G4ExcitedStringDecay and removed
        debug printouts.
      o Made copy ctor, =, == , and != operators private without
        implementation in G4LundStringFragmentation and G4QGSMFragmentation, 
        fixing coverity warnings.
    + models/qmd:
      o Fixed compilation warning on win64 in G4QMDMeanField.
    + models/quasi_elastic
      o Bug fix in G4QuasiElRatios affecting the initialisation of table.
        Bug fix fixing wrong initialization of linear table and influencing
        event reproducibility.
    + processes:
      o G4WHadronElasticProcess: fixed time and weight of recoil nuclear.
      o Fixed trivial cases of variable shadowing.
    + stopping:
      o G4PiMinusAbsorptionBertini: if Bertini fails to interact projectile,
        return untouched projectile track as G4ParticleChange, so process
        manager can decay it.

  o Generic Processes:
    -----------------
    + Biasing:
      o Fixed trivial cases of variable shadowing.
    + Cuts:
      o Fixed compilation warning in G4VRangeToEnergyConverter
        if G4_NO_VERBOSE set.
      o Fixed trivial cases of variable shadowing.
    + Optical:
      o Adopt call to GlobalExitNormal() from G4Navigator in G4OpBoundaryProcess
        for proper extrapolation of normals on boundaries.
        Addressing problem report #1300.
      o Fixed Coverity defects and cases of variable shadowing.
    + Transportation:
      o G4Transportation: corrected issues with initilisation of data members
        reported by Coverity.
      o Explicitly use inclusion of headers for system of units and physical
        constants and fixed cases of variable shadowing.

  o Track:
    -----
    + Fixed bug in copy constructor of G4VUUserTrackInformation.
      Addressing problem report #1346.

  o Visualization:
    -------------
    + OpenGL: fix in G4OpenGLWin32Viewer to make it work on Win64; replaced
      [Get|Set]WindowLong() with [Get|Set]WindowLongPtr() and GWL_USERDATA by
      GWLP_USERDATA.

  o Examples:
    --------
    + Updated reference outputs.
    + advanced/composite_calorimeter:
      o Fixed crashes due to high global times converted to integers values.
        Addressing problem report #1337.
    + advanced/human_phantom:
      o Make destructor virtual in G4BasePhantomBuilder.
    + extended/electromagnetic/TestEm7
      o Fixed compilation problems on Mac for c2_functions.
      o Fixed case of division by zero at initialisation in
        G4ScreenedNuclearRecoil
    + extended/field/field04
      o Renamed global allocator for F04Trajectory to not clash with one
        defined in the kernel. Fixes compilation problem on Windows.
    + extended/persistency/gdml/G01:
      o Added missing unit in opticalsurfaces.gdml.
    + extended/persistency/P01:
      o Fixes in GNUMakefile and CMake scripts.
      o Removed unnecessary G4Exception from the code.
      o Added root macro to read the hits.
      o Removed debug printout; small fix in the iterator type.
    + examples/novice/N07:
      o Added protection within G4VERBOSE in ExN07SteppingVerbose.

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

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

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

The code and rebuilt binary libraries for release 9.5.p02 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.
