
                 Geant4 4.0 Release Notes
                 ------------------------

                                                      14th December 2001

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 Analysis:
    --------
  - Removed analysis module. AIDA 2.2 or higher should now be adopted.

  o Configuration:
    -------------
  - New version of the 'Configure' script for installation.
  - architecture.gmk:
    o made Linux-g++ architecture the default G4SYSTEM.
    o removed references to STLInterface.
  - Added Linux-egcs for old Linux architectures based on egcs-1.1.2 compiler.
  - Made Linux-g++ specific to gcc-2.95.2 compiler or higher.
  - Made SUN-CC specific to CC-5.2 compiler, the default compiler on SUN
    systems. CC-4.2 is no longer supported.
  - Introduced environment variable G4VIS_NONE that, if set, no visualization
    drivers are built and no vis libraries are built.
  - Introduced environment variable G4UI_NONE that, if set, no UI
    sessions nor any UI libraries are built.
  - Re-engineered G4VIS variables: removed the need to specify environment
    variables for visualization drivers which do not need external packages
    or libraries, namely :
      G4VIS_BUILD_DAWNFILE_DRIVER
      G4VIS_BUILD_RAYTRACER_DRIVER
      G4VIS_BUILD_VRMLFILE_DRIVER
      G4VIS_BUILD_ASCIITREE_DRIVER
      G4VIS_BUILD_GAGTREE_DRIVER
    with associated G4VIS_USE environment variables:
      G4VIS_USE_DAWNFILE
      G4VIS_USE_RAYTRACER
      G4VIS_USE_VRMLFILE
      G4VIS_USE_ASCIITREE
      G4VIS_USE_GAGTREE
  - Re-engineered G4UI variables: removed the need to specify environment
    variables for UI sessions which do not need external packages or
    libraries, namely :
      G4UI_BUILD_GAG_SESSION, G4UI_BUILD_TERMINAL_SESSION
    with associated G4UI_USE environment variables:
      G4UI_USE_GAG, G4UI_USE_TCSH, G4UI_USE_TERMINAL
  - Removed references to STLInterface module in architecture.gmk
    and architecture setups. 
  - analysis.gmk: added flags to use an AIDA 2.2 compliant analysis system. 

  o Event:
    -----
  - Added a new feature for the user to increase the number of waiting stacks.
  - Added Beam option for generating accelerator beams.
  - Added check whether the primary vertex is inside of the world volume.
  - G4PrimaryParticle now stores the proper trackID.
  - G4PrimaryTransformer: now considering case where a primary is
    placed on the boundary of the world volume.
  - G4GeneralParticleSource (GPS): implemented co-ordinates rotation for
    angular distribution.
  - Bug fix in G4EventManager in case G4_STORETRAJECTORY is off. 
  - Moved set method of position and time from G4ParticleGun to
    G4VPrimaryGenerator so that G4HEPEvtInterface can accept the primary
    vertex position
  - Cleared compilation warnings on gcc-2.95.2. 
  - Fixes to comply with removal of STLInterface.

  o Electromagnetic Processes (Low-energy):
    --------------------------------------
  - Major revision of G4LowEnergyCompton, G4LowEnergyRayleigh and
    G4LowEnergyGammaConversion: re-implementation according to the design
    iteration in the data domain.
  - New version of data G4EMLOW0.5 required.
  - New classes for shell cross sections for proton-induced fluorescence. 
  - First implementation of fluorescence process.
  - Introduced PIXE in G4hLowEnergyIonisation.
  - Significant physics an performance improvement in electron processes.
  - Added method to deactivate fluorescence in ionisation if needed.
  - Added protection in G4LowEnergyPhotoElectric to avoid generation of
    photons causing negative energy balance.
  - Fixed a problem of continuity of ion effective charge.
  - Fixed energy conservation problems for small range cuts in
    G4LowEnergyIonisation.
  - Introduced changes to allow multiple cuts per material (temporary). 
  - Removed static inline methods to non inline.
  - Cleared compilation warnings on gcc-2.95.2.
  - Fixes to comply with removal of STLInterface.

  o Electromagnetic Processes (Standard):
    ------------------------------------
  - Implemented mechanism for storing and retrieving Physics Tables.
  - Implemented new function ComputeRestrictedMeandEdx() for ionisation
    processes. 
  - Implemented subcutoff delta-rays mechanism in G4VMuEnergyLoss.
  - Suppression of the production threshold in phot, compt, conv, annih
    processes.
  - Removed obsolete "integral" module. 
  - Fixed old outstanding bug in G4EnergyLossTables, responsible for
    causing negative energy deposit in some occasions. 
  - Introduced changes for reference-counted touchables.
  - Introduced changes to allow multiple cuts per material (temporary).
  - Removed static inline methods to non inline.
  - Cleared compilation warnings on gcc-2.95.2.
  - Fixes to comply with removal of STLInterface.

  o General Processes, Parameterisation, Decay, Optical:
    ---------------------------------------------------
  - management:
    o Added Set/GetProcessManager() to G4VProcess and modified 
      G4ProcessManager::AddProcess() to invoke SetProcessManager().
    o Fixed bug in copy constructor of G4ProcessManager.
  - parameterisation(s):
    o Added new classes describing X-ray transition radiation generation
      inside radiators (i.e. just along incident particle track):
      G4FoamXTRdEdx, G4GamDistrXTRdEdx, G4IrregularXTRdEdx,
      G4PlateIrrGasXTRdEdx, G4RegularXTRdEdx, G4VXTRdEdx, G4VXrayTRadModel.
    o Introduced changes in G4VClusterModel for reference-counted
      touchables.
  - optical:
    o Changed process name for G4OpRayleigh, G4OpBoundary and G4OpAbsorption.
  - Cleared compilation warnings on gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.

  o Geometry:
    --------
  - Introduced geometry/verification module for checking geometry for
    volumes overlaps.
  - Magnetic field:
    o Handling Electric Field and time-dependent fields.
    o Introduced ability to set field per volume.
    o New extended examples for field in examples/extended.
    o Added method in G4ChordFinder to erase/reset the state of the
      StepEstimate. This is unwanted internal state that was carried
      between tracks and events as a side effect.
      Calling this at the start of each track, it is now possible to
      eliminate a reported problem of non-repeatability.
    o Reduced maximum number of steps in G4MagIntegratorDriver.
    o Protected verbose warnings with G4DEBUG_FIELD flag in G4ChordFinder
      and G4MagIntegratorDriver.
    o G4FieldManager: added fFieldChangesEnergy data member and get/set
      methods.
    o Fixed interface to virtual functions in the inheritance chain of
      G4Field and subclasses.
  - Management:
    o Added definition of G4TouchableHandle.
    o Added class G4SmartVoxelStat for statistics on geometry optimisation
      of volumes through voxelisation.
    o Modified G4GeometryManager to make use of G4SmartVoxelStat when run
      in verbose mode:
      - added argument to CloseGeometry() method for verbosity
      - added ReportVoxelStats() method for reporting optimisation statistics.
    o Initialise noNodes to 1 in G4SmartVoxelHeader::BuildNodes() in case
      computed nodes for smartless happen to be zero.
  - Volumes:
    o Introduced G4GeometryMessenger associated to G4TransportationManager
      with following commands defined:
      - geometry/test/run - to start verification of geometry for overlapping
                            regions based on standard grid setup.
      - geometry/test/line_test  - to activate test along a specified
                                   direction and position user defined.
      - geometry/test/position   - to specify position for the line_test.
      - geometry/test/direction  - to specify direction for the line_test.
      - geometry/test/tolerance  - to customise test precision.
      - geometry/navigator/reset - for resetting navigation history
                                   and position.
    o Added handles for reference counting: G4GRSSolidHandle,
      G4GRSVolumeHandle, G4TouchableHistoryHandle.
    o Modified G4Navigator for reference counted touchables.
      Introduced new methods CreateTouchableHistoryHandle() and
      LocateGlobalPointAndUpdateTouchableHandle(...).
    o G4PropagatorInField:
      - Added thresholds for number of steps with get/Set methods.
      - Modified choice of subsequent step size in case of zero steps.
      - Added GetCurrentFieldManager() method.
      - Added 'maximum' epsilon value.
    o G4Navigator:
      - Fixed mirroring of the input argument for global direction into
        local variable in LocateGlobalPointAndSetup().
      - Added ResetState() method (that only reset state - not stack).
      - Added optional argument for direction to LocateGlobalPointAndSetup().
      - State is now resetted when touchable history is used to
        re-initialise it.
      - Direction in LocateGlobalPointAndSetup() methods is now used.
  - solids/Boolean:
    o Introduced first implementation of classes G4ReflectedSolid and
      G4ReflectionFactory for reflections of positioned volumes based
      on simple CSG solids.
    o Introduced G4BOOLDEBUG flag and relaxed G4Exception calls with
      warnings to G4cerr for rare occurences of anomalous conditions.
  - solids/BREPS:
    o Fix in G4BSplineCurve::Init() for initialisation of point vector. 
    o G4BREPSolidPolyhedra.cc: fixed situation when phi1 = 0 dphi1 = 2*pi
      and all RMINs = 0.0. In this case the inner planes are not created.
  - solids/CSG:
    o G4Sphere: bug fix in SurfaceNormal() for the case kNETheta.
  - solids/STEP & STEPinterface:
    o SdaiCONFIG_CONTROL_DESIGN.cc: cleaned up warnings issued on SUN-CC. 
    o dirobj.cc: restored usage of strdup() and forced non-ANSI setup.
    o Fixes for compilation on gcc-2.96.98 and gcc-3.0.2 compilers.
    o G4Axis2Placement3dCreator::CreateG4Geometry(): added check to
      attribute validity for 'direction'.
  - Cleared compilation warnings on gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.

  o Global:
    ------
  - Introduced G4ReferenceCountedHandle templated class.
  - Modified G4Exception behavior, now setting G4StateManager to
    "abort" state instead of aborting the application.
  - Removed STLinterface module:
    o renamed cstring[.h.icc] to G4String[.hh.icc].
    o renamed ctoken.h to G4Tokenizer.hh.

  o Graphics Representations:
    ------------------------
  - Added G4Scale class.
  - Added G4Polyline::transform.                       
  - Cleared compilation warnings on gcc-2.95.2 compiler.

  o Hadronic Processes:
    ------------------
  - Doppler broadening of low energy neutron cross-sections on the fly,
    enabling to simulate setups with mixed temperatures from 0K data files.
  - First release of chiral invariant phase-cpace decay.
    Usable now for electron and gamma nuclear reactions, and for pi- 
    and anti-proton absorption. Also a cascade back-end replacement for 
    string models.
  - First release of specialized models for neutron and proton scattering
    off Hydrogene, with particular focus on recoils.
  - First release of the evaporation and utilities parts of the HETC
    re-write.
  - Optimized memory usage of the neutron_hp transport code (gained an
    integer factor)
  - Maximized robustness: system tests now at O(5000) LHC event of hadronic
    energy flow; large-N tests with about a factor 100 more statistics.
  - Addition of gamma nuclar and electro nuclear reaction cross-sections.
  - Checking for tracking consistancy.
  - Added possibility to activate models for single elements/materials in
    one call
  - Now calling ResetNumberOfInteractionLengthLeft() rather than 
    ClearNumberOfInteractionLengthLeft().
  - Enabled logging in various places.
  - Fix for final state rotation from z; this can be done in general in
    the hadronic process framework layer.
  - Added G4PhotoNuclearProcess, G4PositronNuclearProcess, and
    G4ElectronNuclearProcess.
  - Optimised sampling of gaussian distributions.
  - Fixed a missing initialization of strangeness in the high energy
    models.
  - Fixed the particle production for low energy light ion reactions.
  - Bug fix for beta+ decay in radioactive decay (corrected Q-value).
  - Bug-fix in neutron induced isotope production code to allow for mixtures.
  - Bug-fix in the vector hash to allow for re-use of the hash tables.
  - Getting rid of the strstream portability problem between SUN and Linux.
  - Some conservative programming in the sampling vector, to allow for
    binary re-use of the hash.
  - Minor bug fix on gamma distributions in very special cases (yields and
    integral energy was correct, but distribution had a slight bias before).
  - Fix on elastic scattering final states: getting rid of a bias that was
    there for a particular data representation. Affects Xenon.
  - Fix for inelastic n->b+m*gamma channel; for the case of 4 gammas in the
    final state, the mass of the recoil was of by one under certain condition.
    (Mildly relevant for activation when simulating earth.)
  - Fix in Names finding for scattering off Hydrogen.
  - New calculation for compound radius in coulomb barrier calculation.
  - Reduced default vector size.
  - Added delete structs to the vectors.
  - Getting rid of the E-11ev gamma problem, and a few memory leaks
    introduced in the STL transition.
  - Templated qgs models with the type of participants to enable heavy ion
    collision simulation; heavy ion participants still to be fixed for
    impact of fermi momentum.
  - qgs model now also for kaons.
  - Enabled 'meson' splitting for incident gammas in quark gluon string
    model.
  - First tuning of pomeron trajectory and vertex parameters for incident
    gammas, assuming vector meson dominance; based on total reaction
    cross-section only; further improvement scheduled.
  - Fixed minimum mass constraint on string fragmentation in the
    presence of zeitgleiche multiple and multi pomoron exchange, and
    diffractive collisions.
  - Design iteration on string fragmentation.
  - Traced an elusing charge non-conservation to isotopic composition of
    Hydrogene, which is taken care of internally.
  - Bug-fix for splitting Omega- into partons.
  - Added transformation in pre-equilibrium decay.
  - Enabled tracing of colour, spin and iso-spin in the parton.
  - Some improvement on folding two resonance collision cross-section.
  - Cleared most compilation warnings and minor fixes for gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.

  o Materials:
    ---------
  - G4Isotope, G4Element, G4Material: IndexInTable is now obtained
    dynamically via GetIndex().
  - Added new function G4Materials::SetChemicalFormula().
  - Fixed problems erasing when deleting Isotope, Element or Material objects.
  - Fixed memory leak in G4SandiaTable::ComputeMatSandiaMatrix(),
    for deletion of temporary vectors Z, tmp1, tmp2.
  - Moved definitions of G4IsotopeVector and G4ElementVector
    G4ElementTable and G4MaterialTable to the appropriate headers.
  - Removed static inline methods to non-inline.
  - Cleared compilation warnings on gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.

  o Particles:
    ---------
  - Introduced G4NeutronBetaDecayChannel and added to G4Neutron.
  - Allow MassDifference in case of nucleon decay.
  - Fixed bug in copy constructor of G4DecayProduct.
  - Introduced changes to allow multiple cuts per material (temporary). 
  - Removed static inline methods to non-inlined.
  - Cleared compilation warnings and minor fixed for gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.

  o Persistency:
    -----------
  - Fixes to comply with removal of STLInterface.
  - Fixed porting problems on gcc-2.95.2.

  o Run, Intercoms and Interfaces
    -----------------------------
  - run:
    o Added new feature allowing to increase the number of waiting stacks.
    o Added Set/GetApplyCuts methods in G4VUserPhysicsList.
    o Added /run/particle/applyCuts command in G4UserPhysicsListMessenger.
    o Added GetVersionString() method to G4RunManager.
    o Added rndmSaveThisRun() and rndmSaveThisEvent() methods to G4RunManager.
    o Added /random/ commands to G4RunMessenger.
    o Fixed bugs in G4VUserPhysicsList.
  - intercoms:
    o Introduced feature for suppressing the program abortion due to
      G4Exception.
    o Introduced "Shell variables" for UI command handling. Added
      class G4UIaliasList.
    o Introduced loop execution of a macro file, recursive expansion of
      aliased  variables, and some other new features in G4UImanager and
      related classes.
      New commands: /control/shell, /control/foreach, /control/loop,
                    /control/createHTML.
    o Added G4VGraphicsScene::AddPrimitive(const G4Scale&).
    o Added G4VisManager::Draw(const G4Scale&,...).
    o Modified G4UIbatch to display (G4cerr) the error message.
      Comment lines are now displayed only for verbose level=2. 
    o Included correction for string parameter starting with a space.
    o Fixed parsing of quoted (") tokens.
    o Fixed a problem for commands with doubled slash.
  - interfaces:
    o Re-engineered G4UI variables:
      changed GNUmakefile so that GAG, TERMINAL and TCSH built by default.
      Nothing built if G4UI_NONE is set.
    o G4VInteractorManager::RemoveDispatcher : change the remove logic in
      order to fix a disfunctionning with vis/OpenInventor driver.
  - Cleared compilation warnings on gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.

  o Tracking & Track:
    ----------------
  - track:
    o Fixed bug for velocity in method G4Step::UpdateTrack().
    o Implemented assignment operator for G4ParticleChangeForRadDecay.
    o Fixed bug in assignment operator of G4Track.
    o Removed static inline methods to non inline.
  - tracking:
    o Added protection for tracks placed outside the world volume
      at the initial point.
    o Correction to the use the touchable Handle for secondary tracks,
      when it is available. Now the direction is used in locating a particle
      (primary or secondary) in SetInitialStep(). This is in order to assist
      in starting particles that are on/near-to boundaries in the correct
      volume. 
  - Introduced changes for reference-counted touchables mechanism.
  - Cleared compilation warnings on gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.

  o Transportation:
    --------------
  - Motivated by the use case of an Electric Field, in order to achieve
    reasonable accuracy in time integration, and to enable fields that
    vary with the global time:
    o G4Transportation now try obtaining the delta_time from G4FieldTrack.
  - Introduced changes to G4Transportation for reference-counted touchables.
    Added methods GetFreeTouchable() and SetTheOtherTouchableFree().
  - Added protection in G4Transportation::AlongStepGPIL for messaging
    "ResestStepEstimate" of G4ChordFinder for the case there is no global
    field.

  o Visualization:
    -------------
  - Introduced new HepRep graphics driver.
  - Removed the need to specify environment variables for visualization
    drivers which do not need external packages or libraries.
  - Removed old-style commands. 
  - Added commands:
    o /vis/scene/add/scale
    o /vis/viewer/flush = refresh + update.
    o /vis/viewer/set/upThetaPhi and upVector.
    o refresh|flush option to /vis/scene/notifyHandlers.
  - Moved /vis/viewer/lights and viewpoint to /vis/viewer/set.
  - Added G4ScaleModel.
  - Added G4VModel::SetExtent(const G4VisExtent&).
  - Added G4VisManager::Draw(const G4Scale&,...).
  - Added template graphics system XXX.
  - Re-implemented verbosity control.  Output statements wherever possible
    are controlled by the verbosity in a simple graded message scheme.
  - Improved auto-refreshing.
  - Force rebuild of graphics "stores" (graphical databases) and,
    if auto-refresh is true, refresh of all views
    (/vis/scene/notifyHandlers) after an addition to scene.
  - Eliminated view parameters from G4VisManager.
    Paramenters can be copied from one view to another with:
    /vis/viewer/set/all 
  - Updated G4RTJpegMaker for porting Windows systems. 
  - OpenInventor : move HEPVis/SoWindow under vis/OpenInventor/G4SoWindow
    to prepare HEPVis/6.0. (HEPVis/SoWindow will disappear from HEPVis/6.0).
  - Fixed crash in optimised mode: added Initialise() to viewers so 
    that windows are opened after viewers are fully constructed. 
  - Corrected mistake which could cause crash if user specified a
    non-existent scene handler in /vis/sceneHandler/remove. 
  - Fix for replica rotation matrix. It Fixes observed crashes in replica
    tracking with visualisation.
  - Fixed bug in G4VSceneHandler::AddPrimitive(const G4Scale&).
  - Fixed bug in G4VisManager::EndOfEvent.
  - Added README.quick, a quick installation guide.
  - Improved verbosity guidance and READMEs.
  - Cleared compilation warnings on gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.

  o G4toG4 Tool:
    -----------
  - Implemented reflection of CSG solids through G4ReflectionFactory
    class and G4ReflectedSolid. Added G3G4_NO_REFLECTION flag to exclude
    it if needed for cases not yet covered.
  - Added limited support for MANY volumes through adoption of boolean solids.
  - Changed G3Division::CreatePVReplica() to return a G4PhysicalVolumesPair.
  - Cleared compilation warnings on gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.

  o Examples:
    --------
  - Novice:
    o updated visualization macros.
    o updated vis-managers.
  - Extended:
    o new electromagnetic example "TestEm10" for exercising
      specific parameterisation models.    
    o new examples for electro-magnetic field: field01, field02, field03.
    o updated vis-managers.
  - Advanced:
    o underground_physics: new example for simulation of an underground
      dark matter experiment.
    o xray_fluorescence: new simulation setup for the study the elemental
      composition of a planet through the measurement of the X-rays emitted.
    o new improved versions of existing advanced applications.
  - Cleared most compilation warnings on gcc-2.95.2 compiler.
  - Fixes to comply with removal of STLInterface.
  - Updated reference outputs.

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

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

  o  Geant4 4.0 is based on STL and can be installed with strict
     ISO/ANSI C++ compliant setup or not. See notes below.

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. ANAPHE 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 distribution, but
      versions of Geant4 have also been compiled successfully on more recent
      RedHat, Debian and Suse distributions.
  o NT 4.0 (Service Pack 4) or Windows-2000 and Cygnus Tools b20 with:
      Visual C++ 6.0 Service Pack 5

Platforms also tested but giving rise to some problems - see below:

  o DEC V4.0, cxx C++ V6.1-027.

Platforms configured but not tested and not supported:
  o HP 10.20, aCC C++ B3910B A.01.23
  o SGI V6.5.5, CC 7.2.1 with ObjectSpace
  o AIX 4.3.2, xlC compiler with ObjectSpace


2. ANAPHE and CLHEP
-------------------

Geant4 4.0 requires the installation of CLHEP. 

See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.7.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.0 coworks with ANAPHE 3.6.5 and components included therein:
  Objectivity 6.1.3
  HepODBMS 0.3.3.1
  CLHEP 1.7.0.0

For more information about ANAPHE, see:  http://cern.ch/anaphe


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

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

   Windows/2000, Linux, DEC and SUN.

NOTES:

- Platform specific setup:
  o DEC:   Native STL is required for ISO/ANSI setup.
  o SUN:   Native STL is required for ISO/ANSI setup (CC 5.2 only).
  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
--------------

 Platform
 --------

 Persistency in Geant4 4.0 release is tested on the following
 platforms:

 G4SYSTEM       OS        C++ compiler   HepODBMS    Objectivity
 ---------  -----------   ------------   ---------   -----------
 SUN-CC     SunOS 5.7     CC 5.2         0.3.3.1     6.1.3 (*)
 Linux-g++  RedHat 6.1    gcc-2.95.2     0.3.3.1     6.1.3 (#)

 (*) HepODBMS header files must be prepared with "ooddlx -noline"
     option. See below.
 (#) See g4odbms_setup[.sh.csh] in example PersistentEx01 in
     'geant4/examples/extended/persistency' for example setup scripts.

 Known Problems
 --------------

 - There are several warning messages on some platforms during the
   installation of the libraries and the compilation of the examples.
   Most of them can be safely ignored.  It is annoying but hard to get
   rid of them due to various reasons.

 - If you are using Solaris7 CC compiler 5.2 (SUN-CC) with the original 
   release version, persistent header files has to be generated by 
   ooddlx with "-noline" option due to a bug in C++ compiler.
   This workaround applies not only to Geant4 Persistency category but
   also to HepODBMS, and the user defined ddl files as well.
   This is the default for SUN-CC configuration for Geant4 GNUmakefiles.
   When this option is turned on, it removes the "#line" directive of
   the file name and the line number of the original .ddl file.  As a
   consequences, C++ compiler no longer "tells" the correct file name
   and the line number of the .ddl file if compiler error occurs.  When
   you design a persistent object with Geant4 GNUmakefiles and get the
   compiler errors, try to identify the problem by first looking into
   the header file generated by ooddlx, and then locate the source of
   the problem by looking into the .ddl file.
   A patch to the compiler is released from SUN, and you may remove this
   option by commenting out the line:

     G4DDLX_FLAGS += -noline

   in the file $G4INSTALL/config/sys/SUN-CC.gmk.

   You can check the SUN-CC patch by the following command:

   % what `which CC` | grep RELEASE


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

  o DEC V4.0, cxx C++ V6.1-027.

    - We have found cases of mis-compilation of min and max templates
      on DEC.  We have traced those which cause serious malfunction
      but there is no guarantee that there are no other cases.
      Detailed inspection of assembler output suggests that this
      problem might not be confined to min and max.  This has been
      reported to DEC/Compaq.  We understand a new version 6.2 of the
      compiler is now available.  However we cannot guarantee correct
      execution of Geant4 on DEC with the current version of the
      compiler.
    - A bug in cin.getline() system function causes an anomalous
      behavior when running in interactive-mode on DEC-cxx 6.1 in
      ISO/ANSI mode. We tested the bug has been fixed in more recent
      versions of the compiler.


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. 
