
                 Geant4 9.3 - patch-02 Release Notes
                 -----------------------------------

                                                              17 September 2010

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

  o Configuration:
    -------------
    + Configure script: 
      o Updated internal scripts for Configure: protected echos on
        LD_LIBRARY_PATH so that output from use of Configure post-install
        is clean. Also addressing problem report #1139.
      o Fixed selection of XERCESCROOT path for Windows.
      o Added quoting of uname in Qt.U to prevent Power Mac problems.
      o Added removal of quotes from make version string to handle non-English
        language systems.
    + Simplified QTLIBPATH setup in Linux-g++.gmk.
    + Increased stack size on WIN32-VC setup (i.e. 8MB as on Linux), adding
      the option to LDFLAGS.

  o Digits+Hits:
    -----------
    + Added missing virtual destructor to G4VScoringMesh and removed
      unnecessary virtual qualifiers to G4ScoringBox.

  o Event:
    -----
    + Improved logic in G4PrimaryTransformer. Addressing problem report #1101.
    + Fixed compilation warning in G4SmartTrackStack issued with gcc 4.5.0.
    + Removed obsolete CLHEP_HepMC option from G4EventManager class.
    + Fixed electron mass correction for ions in G4PrimaryTransformer.

  o Geometry:
    --------
    + biasing:
      o G4IStore: corrected use of internal cell-importance iterator to avoid
        invalidation in methods GetImportance().
      o Corrected mispelled name for GetLowerWeight() method in classes
        G4WeightWindowStore and G4VWeightWindowStore. Fixed use of internal
        cell-importance iterator in G4WeightWindowStore::GetLowerWeight() to
        avoid cases of invalidation.
      o Fixed initialization of data in copy-constructor for G4GeometryCell.
    + divisions:
      o Improved logic in G4PVDivision constructors and in method
        G4PVDivisionFactory::CreatePVDivision() in case of invalid construct.
      o Properly initialise Boolean flag 'bDivInTrap' in G4VParameterisationTrd
        constructor.
      o G4ParameterisationTrd: disabled unreachable error message in method
        G4ParameterisationTrdX::CheckParametersValidity().
      o Removed uninitialised member in G4ParameterisationTrdX and correction
        in method ComputeSolid().
      o Get rid of unnecessary virtual specification for leaf classes in the
        hierarchy.
    + magneticfield:
      o Fixed cases of possible memory corruption in G4RKG3_Stepper.
      o Fixed case of unused array data member in G4ExactHelixStepper.
      o Removed useless code never executed in G4ConstRK4::Stepper().
      o Fixed initialization in constructor and fixed passing of time in
        G4NystromRK4.
      o Added dummy initialization of data members in constructors.
    + management:
      o Fixed compilation errors for code within G4GEOMETRY_VOXELDEBUG flag
        in G4GeometryManager and G4SmartVoxelHeader.
      o Added printout of voxel limits in G4SmartVoxelHeader::Buildnodes().
      o G4LogicalSurface: made virtual destructor and constructors not inline.
      o G4SmartVoxelHeader: fixed potential case of invalid iterator in
        deletion of test slices in BuildVoxelsWithinLimits().
      o G4GeometryManager: restore cout precision after printing voxel
        statistics.
      o Added dummy initialization of data members in constructors.
    + navigation:
      o Fix in G4GeomTestSegment::FindSomePoints(), to address problem
        report #980.
      o Fixed array out of bound error in G4MultipleNavigator and G4PathFinder
        constructors.
      o Fixed cout precision restoring where applicable.
      o Replaced use of DBL_MAX for distances with kInfinity in
        G4MultiNavigator and G4Navigator internals.
      o Added dummy initialisation of data members in constructors.
    + solids/BREPS:
      o Fixed possible leaks in G4BREPSolid::IsConvex() method,
        G4ToroidalSurface destructor, G4BezierSurface::ClipSurface() method
        and G4OsloMatrix construction.
      o Corrected possible dereferencing of null pointer in method
        G4BREPSolidSphere::DistanceToOut().
      o Corrected deletion of internal data in G4BSplineCurve::Project() method.
      o G4Assembly: corrected case of invalid iterator in destructor.
      o G4Hyperbola: corrected signature to internal Init() function to avoid
        parameter passed by value.
      o G4BSplineCurve: corrected initialization of null pointer in Project().
      o G4CompositeCurve, G4SurfaceBoundary: corrected cases of invalid
        iterator.
      o Some code cleanup in G4ConicalSurface, GCylindricalSurface and
        G4SpericalSurface.
      o Added dummy initialisation of static data where applicable.
    + solids/CSG:
      o G4Torus: fix in DistanceToOut(p,v,...) to address problem report #1081.
        Fixed call to internal method for finding roots, to avoid copy
        of sdt::vector() by parameters. Some cleanup to avoid unnecessary
        protected section and virtual table.
      o Fixed condition in G4Tubs::Inside(p) for point on surface.
      o Corrected use of std::fabs() in place of std::abs() in G4Tubs, G4Cons,
        G4Sphere and G4Torus. Use pre-computed half-tolerance constants in
        G4Torus.
      o Improved initialisation logic in several constructors.
      o Corrected cases of not-restored cout precision where applicable.
    + solids/specific:
      o Fix in G4TriangularFacet and G4TessellatedSolid to correct treatment
        of optical photon transport related to internal reflection at surface.
        Addresses problem report #1103.
      o G4ExtrudedSolid: eliminated requirement for clockwise ordering of
        polygon vertices. Added a check for vertices ordering; if vertices
        are defined anti-clockwise their ordering is reverted.
        Fix in polygon facet triangularization for consequent concave vertices.
      o Fixed deletion of internal arrays in CreatePolyhedron() for G4Polycone
        and G4Polyhedra.
      o G4EllipticalTube: extended implementation of SurfaceNormal(p) in
        agreement with canonical form.
      o Fixed cases of division by zero in G4VTwistSurface and G4TwistBoxSide.
      o Use INT_MAX as initialisation for max limits in G4SolidExtentList.
      o Fixed potential case of dereferencing null pointer in methods
        G4EllipticalTube::DistanceToOut(p,v), G4VCSGfaceted::DistanceToIn(p,v)
        and G4VCSGfaceted::DistanceToOut(p,v).
      o Fixed unecessary object copy as argument in method
        G4PolyhedraSide::IntersectSidePlane().
      o Replaced calls to std::abs() with std::fabs() where suitable.
      o Added dummy initialization of data members where applicable.
    + volumes:
      o Added Reset() method to G4ReflectionFactory for clearing maps of
        constituent and reflected volumes.

  o Global:
    ------
    + More safe numerical computation of A13() and logA() methods in G4Pow.
    + Added INT_MAX and INT_MIN portability macros in templates.hh.
    + Fixed cases of invalidated iterator in G4StateManager.
    + Added dummy initialization of data members in constructors.
    + Changed date for patch-02 to release 9.3.

  o Interfaces:
    ----------
    + Fixed call to contructor QKeySequence() in G4UIQt:AddButton() to
      allow for porting on gcc-4.5.0. Addresses problem report #1127.

  o Particles:
    ---------
    + Fixed logic bug in G4ExcitedMesonConstructor::Add3PiMode().
    + G4MuonRadiativeDecayChannelWithSpin: corrected sign error.

  o Persistency:
    -----------
    + Corrected dump of division axis in GDML writer.
    + Fixed printout of unit in G4GDMLWriteStructure for replicas and
      divisions, in the case of angles.
    + Added missing virtual destructor to G4tgbDetectorBuilder in ASCII module.
      Fixed signature for std::map in G4tgrVolumeMgr header.
    + Fixed recursive header inclusion in G4PersistencyCenter class in 'mctruth'
      module, and added dummy initialization of data members in constructors.

  o Low-energy Electromagnetic Processes:
    ------------------------------------
    + Fixed bugs in G4AtomicDeexcitation and G4AugerTransition to cure crash
      on Windows.
    + Corrected return value case in method GetPhotoElectronDirection() in
      G4PhotoElectricAngularGeneratorSauterGavrila.
      Addressing problem report #1120.

  o Standard Electromagnetic Processes:
    ----------------------------------
    + Adjoint:
      o G4AdjointAlongStepWeightCorrection: get rid of call to non-Standard
        isnan(), replaced by explicit validity test.
      o G4AdjointhMultipleScattering: removed unused header.
    + Polarisation:
      o Fix in G4ePolarizedIonisation to use default vector size of
        G4VEnergyLossProcess and avoid size mismatch in G4LossTableBuilder.
    + Standard:
      o G4eBremsstrahlungModel: fix in SelectRandomAtom() method.
        Addressing problem report #1115.
      o Fixed G4_O data in G4ASTARStopping.
        Fixed G4_Pt and G4_PROPANE data in G4PSTARStopping.

  o Hadronic Processes:
    ------------------
    + models/cascade:
      o Fix for long-standing problem of energy non conservation in pion-nuclear
        reaction on very light nuclei (in particular He) in G4CascadeInterface.
        The workaround re-samples the interaction in the rare case when an
        unphysical final state with baryon number violation is generated.
    + models/CHIPS:
      o Fix in G4ChiralInvariantPhaseSpace to catch previously un-handled
        exceptions produced when a 'chipolino' pseudo-particle is produced by
        the model and thrown by Q4QEnvironment::Fragment; handles the case in
        which Q4QEnvironment returns a 90000000 fragment, and converts it to
        a gamma. Addressing problem report #1138.
      o Bug fix in G4QNucleus::ChoosePosition() for looping.
      o Fix in fragmentation module for run-time warning on Windows.
    + models/de_excitation:
      o Fixed numerical problem (division by zero) in G4GEMProbability.
    + models/neutron_hp:
      o Added safety for zero length cross-section table in
        G4NeutronHPFissionData. Addressing problem report #1118.
      o Add safety for negative value in G4NeutronHPInelasticCompFS.
      o Added model name in constructor of G4NeutronHPThermalScattering.
        Addressing problem report #1116.
      o Modified sampling in G4NeutronHPInelasticCompFS.
      o Fix bug about incidence energy in G4NeutronHPEnAngCorrelation.
    + models/parton_string/hadronization
      o Improved Lund string fragmentation.
      o Fixed inconsistency between LightFragmentationTest and Lund
        fragmentation.
      o Fixed problems of energy non-conservation in FTF.
    + models/photolepton_hadron/muon_nuclear:
      o G4MuNuclearInteraction: properly clear hadronic tracks PostStepDoIt().
    + models/util:
      o G4Fancy3DNucleus: added missing std:: to call to sort() algorithm.

  o Generic Processes:
    -----------------
    + Biasing:
      o G4WeightWindowProcess: corrected call to method GetLowerWeight() in
        G4WeightWindowStore, after correction of mispelled name.
    + Optical:
      o Fix for backpainted surfaces to avoid applying twice reflectivity.
        Addressing problem report #1114.
      o Fixed sampling of 'theFacetNormal' for 'polishedbackpainted' material
        in G4OpBoundaryProcess::DielectricDielectric() method. Address problem
        reported on Hypernews Optical Processes Forum, thread #334.
      o Refashioned code in the case of type 'dielectric_dielect'.
    + Transportation:
      o Fix to G4Transportation to properly update the step flag which
        identifies the last step in a volume (applies for linear steps only,
        i.e. no field). Partially addressing problem report #1032.

  o Run:
    ---
    + Corrected printing of number of events processed on run abortion.
    + Fixed definition of path for Windows in G4RunManager for random seeds
      directory: use '\' instead of '/' and suitable system command.
    + Use "const G4String&" as arguments and return value wherever applicable
      in G4RunManager and G4RunManagerKernel.
    + Added dummy initialisation of data members in constructors.
    + Use canonical form for exceptions in G4RunManager and added dummy return
      statements; same in G4VUserPhysicsList.

  o Examples:
    --------
    + Migrated physics-lists to use particle-based multiple-scattering
      wherever necessary, and updated reference outputs.
    + advanced/human_phantom:
      o Added missing includes, causing compilation error.
      o Migrated physics-lists.
      o Corrected commands in some macros.
    + extended/geometry/olap:
      o Fixed compilation error for setting of kRadTolerance.
      o Removed inclusion of obsolete G4ParticleWithCuts header.
    + extended/persistency/gdml/G03:
      o Corrected selection of G4UItcsh in main(), to fix problem on Windows.

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

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

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

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