
                 Geant4 9.1 - patch-03 Release Notes
                 -----------------------------------

                                                            12 September 2008

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

  o Configuration:
    -------------
    + architecture.gmk: removed obsoled DOM library from GDMLIBS; resolving
      run-time problems on Windows systems.
    + liblist.c: removed C++ style comments; resolving compilation problems
      on legacy SUN-CC compiler.

  o Digits_Hits:
    -----------
    + Fixed a bug in G4ScoringBox for the use of G4PVDivision
      and G4VScoreWriter for indexing scheme in GetIndex() method.

  o Event:
    -----
    + Provided accessors to G4SPSAngDistribution.
      Addressing problem report #1013.
    + Cleared gcc-4.3.0 compilation warnings in G4SPSEneDistribution.

  o G3toG4:
    ------
    + GNUmakefile: workaround for renewing Fortran objects in 'lib' target
      before re-build of libraries.

  o Geometry:
    --------
    + divisions:
      o Corrected initialisation for 'fnReplicas' and 'fwidth' data members
        in CheckAndSetParameters(), to make use of precomputed values retrieved
        from concrete parameterisations; simplified method signature.
      o Corrected error print-out in CheckNDivAndWidth() method in
        G4VDivisionParameterisation class.
    + management:
      o G4LogicalVolume, G4LogicalVolumeStore: corrected logic for the deletion
        of the root-region volumes, adding locking mechanism and automatically
        de-registering the world default root-region.
        Simplified Clean() method in the store, by removing unused and
        unnecessary default flag for logical-volumes notification.
      o Reinstated update of materials in G4Region::RemoveRootLogicalVolume()
        to correct handling individual removal of root-region volumes and
        restore proper setup state.
      o G4Region: changed condition inside ScanVolumeTree() to check for the
        existence of a valid material-scanner pointer to apply the material
        scan instead of using the flag for nested structures.
      o G4GeometryManager: do not apply optimisation on the current volume if
        it has been defined as a regular structure.
        Addresses problem report #990.
      o G4VSolid: promote copy-constructor and assignment operator to public
        to cope with specific use-case in ATLAS (see problem report #1023).
    + navigation:
      o G4PropagatorInField: correction to LocateIntersectionPoint() algorithm
        to ensure that endpoints are not further apart in space than on the
        curve due to different errors in the integration.
        Resolves rare error conditions in ATLAS production.
    + solids/CSG:
      o G4Sphere: fixed bug in DistanceToOut(p, v, ...) for normal 'fSTheta'
        greater than 90*deg, and use of tangent giving negative value.
        Fixed calculation of roots in DistanceToOut(p,v,...) for theta-conical
        surface interserctions and for sTheta<=90 degree intersection.
        Addresses issue reported when running PET application with optical
        photons about mis-computation of distance on half-sphere constructs,
        and later also reported in problem report #1022.
      o G4Tubs: fix in DistanceToIn(p,v, ...) in case of point on surface with
        very small tangent direction; now returning kInfinity and no longer
        zero. It fixes rare observed cases of zero value returned by both
        DistanceToIn() and DistanceToOut(), causing stuck tracks with zero
        step length. 
    + solids/specific:
      o G4ExtrudedSolid: fix in polygon decomposition; systematically use
        half kCarTolerance instead of kCarTolerance; added solid name in the
        error messages coming from fatal exceptions.
        Added missing 'std' namespace to standard mathematical function calls.
      o G4Paraboloid: revised DistanceToOut(p,v,...) in answer to problem
        report #1015. Fixed precision problem when solving quadratic equation;
        apply comparison with kCarTolerance and not with zero; fixed logic
        problem in algorithm for points on surface and direction inside,
        relative to directions along Z, (0,0,Vz).
      o G4VFacet: corrected increment of indeces in operator==().
        Addressing problem report #1024.

  o Global:
    ------
    + Corrected signature of G4SwapPtr() to use reference of pointers as
      arguments.
    + Changed date for patch-03 to release 9.1.

  o Interfaces:
    ----------
    + Replaced calls to exit() with G4Exception wherever applicable.

  o Materials:
    ---------
    + G4Element: extended printout of errors and warnings; added more safe
      check of consistency between Z and A in construction.
    + G4Material: improved errors printout.

  o Hadronic Processes:
    ------------------
    + models/coherent_elastic:
      o G4HadronElastic: added protection inside LElastic algorithm against
        cases of t>tmax (outside kinematically allowed 4-momentum transfer).
    + models/lll_fission:
      o Replaced usage of exit() with G4Exception in G4fissionerr.
    + models/high_energy:
      o In G4HEInelastic: fixed bug in HighEnergyCascading() and
        MediumEnergyCascading() for momentum sampling, responsible for
        oscillatory behavior in spectrum.
        In TuningOfHighEnergyCascade(), removed abnormally high pt secondaries
        due to incident strange particles by prohibiting the assignment of
        leading particle to anything that goes backward in the CM frame. 
        Replaced usage of exit() with G4Exception in Factorial() method.
        In NBodyPhaseSpace(), removed error message "total mass > total energy"
        and replaced with message only when verbosity is > 1.
    + models/parton_string/diffraction:
      o Fixed compilation warnings for unused variables in G4FTFModel.
    + models/pre_equilibrium:
      o Fixed cases of floating point overflow when using pre-compound in
        combination with binary-cascade; reviewed algorithm in method
        G4PreCompoundEmission::rho().
    + util:
      o G4ReactionDynamics::GenerateXandPt(): fixed bug in momentum bin
        responsible for causing oscillatory behavior in spectrum.
        Replaced usage of exit() with G4Exception. 

  o Generic Processes:
    -----------------
    + Management:
      o Fixed un-necessary double deletion/creation of vector in operator=()
        in G4ProcessVector.
      o Fixed compilation warning on messenger. 

  o Run:
    ---
    + G4RunManagerKernel: avoid deletion of default root-region which is now
      taken care by the geometry stores. It resolves the ambiguity of explicitly
      avoiding the de-registration and deletion of the default root-region by
      the stores and eliminates the limitation of forcing the world logical
      volume being the first registered in the logical-volumes store.
    + Invoke G4Particle::DeleteAllParticles() in the destructor of
      G4VUserPhysicsList to clear memory leak at application closure.

  o Tracking:
    --------
    + Fix in G4SteppingManager to properly update 'fTouchableHandle' data
      member. Addresses problem report #1009.

  o Examples:
    --------
    + advanced/air_shower:
      o Adjusted range of optical properties tables in DetectorConstruction;
        Added check of optical photon energy in PrimaryGeneratorAction;
        Cerenkov process attached to all applicable particles;
        Modified Visualisation.mac and UltraMacro.mac macros.
      o Corrected a parameter in the DetectorConstruction to fix a
        segmentation due to a non correct definition of the refraction index
        of the Quartz.
      o Implemented access to private data members of DetectorConstruction
        through accessors.
      o Fixed a compilation warning in AnalysisManager. 
    + advanced/brachytherapy:
      o Fixed compilation warning in AnalysisManager. Fixed bad type assignment.
      o Activated generation of histogram files for output.
    + advanced/gammaray_telescope:
      o Fixed problems in compilation.
    + advanced/lAr_calorimeter:
      o Fixed compilation warning in AnalysisManager.
    + advanced/Rich:
      o Fixed compilation errors and removed warnings.
    + advanced/Tiara:
      o Fixed compilation errors.
    + extended/exoticphysics/monopole:
      o Fixed compilation warnings.
    + extended/medical/DICOM:
      o Bug fix in DicomNestedPhantomParameterisation in calculating the cell
        copy-number; now fixing the material assignments.
      o Set default cut to 1 mm to reduce physics content and enhance tracking
        performance.
      o Corrected direction and position of primary particles to better
        traverse the DICOM voxels.

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

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

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

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