
                 Geant4 4.1 Release Notes
                 ------------------------

                                                      28th June 2002

These are the main new features/fixes included in this release since the
last public release (for the detailed list of fixes/additions, please refer
to the related History files):

  o Configuration:
    -------------
    - Added Darwin-g++.gmk configuration file for MacOS-X systems running
      with GNU g++ compiler.
    - Removed obsolete SUN-CC4.gmk configuration file.

  o Event:
    -----
    - Introduced new G4TrajectoryContainer class aggregating STL vector.
    - Added TransferOneStackedTrack() method to G4StackManager.

  o Electromagnetic Processes (Low-energy):
    --------------------------------------
    - New more complete and detailed data files (G4LOWEN1.1 data set).
    - Extended parameterisation of e- ionisation (24 parameters per each
      atomic shell) in order to have better fit to EEDL data.
    - Bug fixes in e- bremsstruhlung process.
    - Fixes and updates to parameterisation of the cross section in
      photo-electric effect.
    - Updates to polarised Compton process.
    - Provided simulation of ionisation for GenericIons.
    - Fixes in simulation of fluctuations of energy loss.
    - Fixes in simulation of hadron induced fluorescence.
    - Provided simulation of Auger electrons production.
    - Fixes to the angular distribution in Rayleigh scattering 
      (G4LowEnergyRayleigh process).
    - Added UI control on the threshold to produce fluorescence photons 
      and Auger electrons as secondaries.
  
  o Electromagnetic Processes (Standard):
    ------------------------------------
    - New classes (G4VXTRenergyLoss, G4GammaXTRadiator and G4RegularXTRadiator)
      for the description of X-ray transition radiation as continuous process.
    - New electromagnetic process G4GammaConversionToMuons for gamma conversion
      into muon pairs.
    - G4MultipleScattering: new parametrisation for angle distribution. 
      Modified boundary algorithm and some other minor fixes. Improvements
      and performance optimisation.
    - Fixes to hadron ionisation/energy-loss processes for delta-electron
      spectra of GenericIons.
    - G4eIonisation: fixed access to energy cuts in BuildLossTables.
    - Modifications in G4PAIxSection allowing to get additional information on
      transverse and longitudinal excitations at atomic frequences.
    - Bug fix in G4GammaConversion::DoIt() for e+e- angular distribution.
    - G4ComptonScattering: set LowestEnergyLimit to 1*keV.
    - G4PhotoElectricEffect:
      o keep only Sandia crossSections, removed call to BuildPhysicsTables.
        Simplified public interface.     
      o generate theta angle of the photoelectron from Sauter-Gravila
        distribution.
    - G4Scintillation, G4Cerenkov: tracks are suspended only in 'fAlive' state.
    - G4VMuEnergyLoss: bug fix in number of subcutoff delta.

  o General Processes, Parameterisation, Decay, Optical:
    ---------------------------------------------------
    - Added method G4VProcess::GetCurrentInteractionLength().
    - Fixed bug in G4VProcess::PostStepDoIt() when MeanFreePath is DBL_MAX.

  o Geometry:
    --------
    - Introduced optional 3D geometry optimisation for parameterised volumes.
    - Introduced ability to optionally disable optimisation of hierarchies of
      geometry volume placements, through G4LogicalVolume.
    - Enhanced reflection of volumes to cover all CSG and CSG-like solids.
    - First release of module for importance biasing.
    - Enhanced behavior for destructors of volumes/solids stores.
      o Added locking mechanism for preventing conflicts when destroying
        stores and deregistering pointers.
      o Added Clean() static method to volumes/solids stores to explicitely
        delete pointed objects in the stores and clear all entries. 
    - G4GeometryMessenger: added new commands to exploit more 
      features of the G4GeomTestVolume class for detecting geometry overlaps. 
    - G4Tubs: restored original "vertices" algorithm for
      CalculateExtent() which was temporarly disabled.
    - G4Sphere: bug fixed in Inside() for treatment of point p on z-axis.
    - G4BREPSolidPCone: added sanity check of delta phi section value
      and exception is thrown saying about this unsupported feature if
      delta phi is less than 2*PI. 
    - G4AssemblyVolume:
      o Fixed inconsistent handling of input rotation matrices.
      o Corrected handling of cases when pointer to rotation matrix is zero.
      o Moved accessors to assembly counters to public.
      o Added support for user definable count base for generated physical
        volumes.
    - Implemented G4EllipticalTube::CreatePolyhedron().
    - Fix in G4Navigator for problem concerning ExitNormal with photons.

  o Global:
    ------
    - G4String: use G4std::string instead of internal type 'std_string' 
      in signatures of public methods. No functional or interface changes. 
    - G4DataVector: initialise to zero values in collection for contructor
      taking capacity.
    - Added more verbosity to G4Exception.
    - Introduced temporary patches for porting on gcc-3.1 compiler.

  o Hadronic Processes:
    ------------------
    - General code cleanup for removal of warnings.
    - cross_sections:
      o Included the high Q2 part of the cross-section into electro and
        photo nuclear reaction cross-sections, and into the equivalent
        photon production.
      o New class for calculating projectile fragment cross-sections in
        ion ion reactions. Implements Physical Review C61, 034607 (2000).
        based on EPAX Version 2, with the kind permission of the authors.
    - management:
      o Included recoil charge state treatement in HadronicProcess.
      o Bug-fix affecting energy conservation for anti-protons in hydrogene.
    - models/chiral_inv_phase_space: 
      o Included Q2!=0 for gamma and electro nuclear reactions.
      o Using quark-gluon string model now to simulate reactions with large
        energy transfers.
      o Added protection for reactions at threshold.
    - models/coherent_elastic:
      o Improvement for coulomb effects.
      o Correction of array sizes; slightly extends the applicability.
    - models/high_energy:
      o Fix for a long standing problem in phi symmetry traced to the Cross
        method of G4HEVector.
    - models/leading_particle:
      o New package, steming from a partial re-implementation of the MARS
        code. Valid for energies below 5 Gev for proton/neutron/pi+-,
        K+-/gamma/anti_proton
        The code is intrinsically leading particle biased, hence applicable
        for radiation background simulations.
	Typical application of this would be in the ESA MOLASSIS application.
    - models/low_energy:
      o Correction for randomization of fermi motion (1 in 1000 effect).
      o Better treatement for anti-nucleons through accounting of
        annihilation energy.
      o Various cross-sections in the accounting of nucleons.
      o Improved pi-0 to charged pion rations used in low energy models.
      o Improved treatement of Lorentz transformation, getting rid of the
        1 in 100 phi=0 peak for nucleons.
    - models/neutron_hp:
      o Resolved a problem in the effective luminosity correction
        in the doppler broadening on the fly. Removes a bias in capture time
        on termal neutrons in hydrogen (was off by 10%).
    - models/radiative_decay:
      o Fixed problem with sort, leading to erroneous behavior.
    - models/generator/de_excitation:
      o Moving the catching of low energy gammas.
      o Adding a complete set of fresh evaporation code, that is more or
        less equivalent to the GEM evaporation models. It produces fragments
        up to Na25. Currently at beta level. G4Evaporation::SetGEMChannel()
        method should be used to activate this.
    - models/generator/high_energy:
      o Included direct strong resonance decay in case of scattering off
        hydrogen, hence removing this boundary use-case from the cascade
        interface specifications.
    - models/generator/management:
      o Added utility interface for nucleus and nuclear density functions,
        for the use of cascade codes.  
    - models/generator/pre_equilibrium:
      o Fixed error in the low energy proton distributions
      o Improvements in the level density.
      o Bug fixed in angular distributions (theta).
      o Small bug fixed in the equilibrium exciton number.
      o Migration to new pairing corrections.
    - models/generator/quark_gluon_string:
      o Design iteration to enable specialization of participants
        in string excitation.
      o Added gamma nuclear reactions by adding specialised participants for
        this; based on single nucleon participant model, and mesonic structure;
        assuming vector meson dominance in the reactions and splitting.
    - models/generator/util:
      o Added utility for the decay of strong resonances.
      o Added consts to enforce few design considerations.

  o Magnetic Field:
    --------------
    - Fix in G4MagIntegratorDriver to update the field track for small steps.
    - Fixed LinearStep in G4MagHelicalStepper (expected unit direction).
    - Changed maximum number of steps in driver from 500/order to 250/order.
    - Fix in G4MagHelicalStepper::LinearStep().
    - G4ChordFinder: corrected behaviour for very small or large step changes.

  o Materials:
    ---------
    - G4Material: removed check of the ideal gas state equation.

  o Particles:
    ---------
    - Added G4TauLeptonicDecayChannel for tau leptonic decay.
    - Fixed a bug in G4NeutronBetaDecayChannel.

  o Run, Intercoms and Interfaces
    -----------------------------
    - Introduced new class G4UIGainServer, socket extension for G4UIGAG.
    - Adopt limit to the number of stored command strings.
    - Cleared naive usage of G4String type arguments from most UI classes.
    - Modified G4RunManager to re-open geometry when G4 changes to QUIT state.
    - Use "virtual" inheritance for G4VModularPhysicsList.
    - Fixed pedantic warnings.

  o Tracking & Track:
    ----------------
    - G4TrackingManager: implemented EventAborted() method.

  o Transportation:
    --------------
    - Added new classes for management of biasing transportation and scoring.

  o Visualization:
    -------------
    - Prevent copying of autoRefresh status with /vis/viewer/set/all command.
    - Corrected out of date advice about /vis/set/culling, etc.
    - Deprecated /vis/viewer/set/autoRefresh command.
    - Workaround for pseudo-parallel/orthogonal projection in Ray Tracer.
    - Updated OpenGL to compile on Windows (G4VIS_BUILD_OPENGLWIN32_DRIVER).
    - Bug fixes in G4VRMLXFileSceneHandlerFunc class.
    - Fixed pedantic warnings.

  o Examples:
    --------
  - Novice:
    o Added G4Scintillation process to example N06.
  - Extended:
    o Created 8 new examples for importance biasing and scoring.
    o Created 2 new examples demonstrating event-level parallellism.
    o Introduced first version of example for importing GDML geometries.
    o Introduced first version of CMS tool for debugging geometries overlaps.
    o Added example showing import of STEP CAD geometries.
    o Created 2 new examples showing usage of HepMC event generator.
    o Added new EM example TestEm6 for G4GammaConversionToMuons process.
    o Migrated EM examples to use AIDA 2.2 for histogramming.
  - Advanced:
    o Updated examples to recent development and usage of histogramming
      features in AIDA 2.2.
  - Updated reference outputs.

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

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

The code and some binary libraries are available through our "Source Code"
Web page:
- see our Geant4 Home Page (http://cern.ch/geant4).

Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.


Contents
--------

  1. Supported and Tested Platforms
  2. AIDA and CLHEP
  3. The Standard Template Library (STL)
  4. Persistency
  5. Compiler Specific Problems
  6. Known Run-Time Problems
  7. Compilation Warnings
  8. Known Run-Time Warnings


1. Supported and Tested Platforms
---------------------------------

  o SUN Solaris 5.7, C++ 5.2 Patch 109508-03.
  o Linux, gcc 2.95.2, egcs-2.91.66 (egcs 1.1.2).
      This configuration was tested with the RedHat 6.1 and 7.2 distributions,
      versions of Geant4 have also been compiled successfully on other Linux
      distributions, like Debian or Suse.
      The default RedHat compiler gcc-2.96 ditributed in RedHat 7.X is NOT
      supported. It has been verified that it produces incorrect binaries,
      therefore is not reliable. See also note below.
  o Windows-2000 and CygWin Tools with: Visual C++ 6.0 Service Pack 5

Platforms configured but not tested and not supported:
  o DEC V4.0, cxx C++ V6.1-027 with/without ObjectSpace STL
  o HP 10.20, aCC C++ B3910B A.01.23 with/without ObjectSpace STL
  o SGI V6.5.5, CC 7.2.1 with ObjectSpace STL
  o AIX 4.3.2, xlC compiler with ObjectSpace STL
  o MacOS 10.1, gcc 2.92.2

2. AIDA and CLHEP
-----------------

Geant4 4.1 requires the installation of CLHEP. 

See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.7.5.0. However, first
level porting has also been verified on CLHEP 1.8.0.0.

By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
if the compiler is capable. You need to explicitly disable CLHEP settings in
case you wish non-ISO/ANSI setup on specific compilers.

Geant4 4.1 examples with histogramming cowork with AIDA 2.2 implementations.
These include:
- ANAPHE 4.0.4 and components included therein:
    Objectivity 6.1.3
    HepODBMS 0.3.3.1
    CLHEP 1.7.5.0
  (see: http://cern.ch/anaphe)
- JAS 2.2.5 
  (see: http://jas.freehep.org)
- Open Scientist v8
  (see: http://www.lal.in2p3.fr/OpenScientist/v8/welcome.html)

AIDA headers can be downloaded from:  http://aida.freehep.org


3. The Standard Template Library
--------------------------------

Native versions of STL have been tested on the following platforms:

   Windows/2000, Linux, and SUN.

NOTES:

- Platform specific setup:
  o SUN:   Native STL is required for ISO/ANSI setup.
  o Linux: Native STL is required (non ISO/ANSI setup for egcs compiler only).
  o W2000: Native STL and ISO/ANSI setup required (VC++ 6.0).


4. Persistency
--------------

  See release notes for Geant4 4.0.


5. Compiler Specific Problems
-----------------------------

  o Linux Red Hat 7.X, gcc-2.96.

    - The default compiler distributed by Red Hat since release 7.0 is
      NOT supported and not considered reliable for running a Geant4-based
      application. In more than one test case, binaries produced by gcc-2.96
      have shown incorrect behavior, either due to wrong order of
      initialisation of static data in memory or to bugs in the system
      iostream classes, problems which apparently have all been solved in
      more recent versions of the compiler (3.X series).
      For information, gcc-2.96 is a compiler that has never been
      officially released, nor supported by the GNU team itself and is not
      considered reliable by the authors (for more information, see also
      http://gcc.gnu.org/gcc-2.96.html).


6. Known Run-Time Problems and Limitations
------------------------------------------

For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:

    http://cern.ch/geant4/problemreport


7. Compilation Warnings
-----------------------

There are compilation warnings on some platforms.  We do not believe
that any will lead to incorrect run-time behaviour, but we are working
on reducing them.


8. Known Run-Time Warnings
--------------------------

The following messages can be written to error output while tracking.
We believe none give rise to incorrect behaviour.

  o G4PropagateInField: Warning: Particle is looping 
    -  tracking in field will be stopped. 
       It has performed 10000 steps in Field while a maximum of 10000
       are allowed. 
