
                 Geant4 1.0 Release Notes
                 ------------------------

                                                     7th December 1999

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

  o Electromagnetic Processes:
    - Multiple scattering: fine tuning and fixes for low energy e-;
       inclusion of nuclear size effect for high energy (e+,e- > 100 MeV,
       hadrons > 1 GeV);
    - IonisationPlus: improved code and testing, for electrons and hadrons.
    - LowEnergy: implemented hadron and ion ionisation; minor fixes in
       photo electric process. 
    - Xrays: fixes in Cerenkov process.
    - Created new examples in examples/extended/electromagnetic.

  o Geometry:
    - Field: minor fixes, more access to user parameters and clearer warnings; 
    - CSG/Booleans: fixes and more detailed unit tests;
    - BREPS/STEP: fix to the NIST STEP reader for complex surfaces;
    - Volumes: first implementation for visualization of voxels;
    - Transportation: added protection for zero step in field.

  o Globals:
    - STLInterface:
       major modifications for removing all references to Rogue Wave classes;
       removed wrappers for hash dictionaries; reorganised classes/files.
    - management:
       introduced 'g4std' wrappers and keywords for migration to the ISO/ANSI
       C++ standard and usage of the std namespace; fixed minor bug in
       G4PhysicsVector.

  o Hadronic Processes:
    - new isotope-production models for neutron induced production and
       corresponding design updates in hadronic/management;
    - additional string model for proton induced reactions;
    - design iteration on multi-fragmentation;
    - memory usage optimization in the neutron transport.
    NOTE: an updated set of neutron data files is now required.
    
  o Particles:
    - introduced dynamical electric charge in G4DynamicParticle to allow
       change of charge for ions;
    - introduced new G4IsotopeTable to manage excitation energy, lifetime,
       and decay modes for isotopes;
    - corrected identifier for isotopes Promethium and Prasceodym;
    - corrected spelling for file-names and keyword "barion" to "baryon".
    
  o Persistency:
    - added association of HitsCollection and PrimaryVertex to G4PEvent;
       added persistency of Boolean solid types; fixes for ODMG compliance;
       added G4PPRimaryParticle;
    - added new examples in examples/extended/persistency.

  o Visualization:
    - introduced visualization of *components* of a boolean solid.
      Visualisation of the *result* of the boolean operation will be
      available in a future release;
    - introduced new commands (use help <command name> for more information):
      /vis/scene/add/logicalVolume
      /vis/viewer/update
    - improvements to FukuiRenderer (DAWN):
      made destination directory of g4.prim and g4.eps customizable
      with the environmental variable G4DAWNFILE_DEST_DIR; auto
      incrementation of output file names is now supported;
    - removed ray tracing, pending re-implementation.

Notes: 

  o  Geant4 1.0 is based on STL. All direct references to Rogue Wave have
     been removed from the code. See notes below.

  o  The code released in Geant4 1.0 is not ISO/ANSI C++ compliant.
       A future minor release or patch will be provided that
       will include the ability to choose between using namespaces in
       ISO/ANSI mode or using traditional style "includes".

This code and some binary libraries are available through our "Source
Code" Web page:
- see our <A href="http://wwwinfo.cern.ch/asd/geant4/geant4.html">Geant4
  Home Page</A>.

Please refer to <A
href="http://wwwinfo.cern.ch/asd/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Updates to the documentation for Geant4 1.0 are still in preparation and are
expected to be published within three weeks.


Contents
--------

  1. Supported and Tested Platforms
  2. CLHEP 1.4
  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.6, C++ 4.2 patch 104631-04.
  o HP 10.20, aCC C++ B3910B A.01.18  or  A.01.21
  o Linux 2.0.35, gcc C++ egcs-2.91.66 (egcs 1.1.2).
      This configuration was tested in the RedHat 5.1 distribution, but
      versions of Geant4 have also been compiled successfully on RedHat 6.1,
      Debian and Suse distributions.

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

  o DEC V4.0, cxx C++ V6.1-027.
  o NT 4.0 with Service Pack 4 and Cygnus Tools b20 with:
      Visual C++ 6.0 Service Pack 2

Platforms configured but not tested and not supported:
  o SGI V6.5.5, CC 7.2.1 with ObjectSpace
  o AIX 4.3.2, xlC compiler with ObjectSpace

2. CLHEP 1.4
------------

Geant4 1.0 requires the installation of CLHEP 1.4. 

See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP 1.4</A>.  

The following platform specific instructions apply:

  DEC: Do *not* use the compiler option "-std strict_ansi".

  NT: After configure, edit the file config/CLHEP-x86-cygnus-win32
      and comment out "#define HEP-USE-STD 1".



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

The following versions of STL have been tested:

   ObjectSpace STL on
          DEC, HP, NT and SUN.

          See <A href="http://www.objectspace.com/">ObjectSpace</A>.

   "Native" STL on: Linux, HP.

This is selected at installation/compile time by the environment variable
G4USE_OSPACE in the case of the former - see documentation.

NOTES:
- Be aware that by default, the installation scripts will expect to use
  the native STL implementation. You must set the G4USE_OSPACE variable
  in the environment in order to select the ObjectSpace implementation.

- Platform specific setup:
  o DEC:   ObjectSpace is required.
  o HP:    either ObjectSpace or native STL can be used.  In order to use
           native STL you must also set the environment variable 
           G4NO_STD_NAMESPACE.   
  o SUN:   ObjectSpace is required.
  o Linux: native STL is required.
  o NT:    ObjectSpace is required.
           Support for native STL and ISO/ANSI installation will be added
	   soon (future patch or minor release).

- A future minor release or patch will allow ISO/ANSI compliant installations.
  Their characteristics will be:
  o DEC:  Native STL will be used 
  o HP:   The setup for native STL will trigger by default the ISO/ANSI 
          installation (set G4NO_STD_NAMESPACE in the environment to avoid it.)
  o SUN:  Support for CC 5.0 compiler and native STL (ISO/ANSI installation)
  o NT:   Support for native STL and ISO/ANSI installation 
  The modifications to support these installations will be tested soon.
  They will be made available in a patch or minor release.

Geant4 1.0 is the first release requiring the Standard Template Library.
In the interest of stability, a significant part of the code still makes use
of the "STL Interface" wrapper classes.  For these the emphasis has remained
on correct behaviour, rather than performance.  The size of libraries and
executables can appear considerably larger than the previous Rogue-Wave based
versions. 

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

- Platforms

  Persistency in Geant4 1.0 release has been tested on the following
  platforms/software versions:

  G4SYSTEM       OS        C++ compiler   HepODBMS   Objectivity
  ---------  -----------   ------------   ---------  -----------
   SUN-CC    SunOS 5.6      CC 4.2         0.3.1.0      5.2
   HP-aCC    HP-UX 10.20    aCC A.01.18    0.3.0.1      5.1.2
  Linux-g++  Linux  RH5.1   egcs 1.1.2     0.3.0.1      5.1.2
           
  A patch to run persistency examples on DEC-cxx will be released
  later, pending a fix to HepODBMS library.

- Known Problems

  1) The following warning messages appear on some platforms during the
     installation of the libraries and the compilation of the example
     files. The message comes from the parser of the Objectivity
     preprocessor. It can be ignored.

  -------------------------------------------------------------------------
  "/opt/SUNWspro/SC4.2/include/CC/generic.h", line 29: warning: omission of
            explicit type is nonstandard ("int" assumed)
    extern genericerror(int, char*);
           ^
  "/opt/SUNWspro/SC4.2/include/CC/iostream.h", line 781: warning: integer
            conversion resulted in a change of sign
          unsafe_istream& wignore(int=1, wchar_t=WEOF);
                                                 ^
  "/opt/SUNWspro/SC4.2/include/CC/iostream.h", line 962: warning: integer
            conversion resulted in a change of sign
          istream& wignore(int=1, wchar_t=WEOF);
  -------------------------------------------------------------------------

  2) The following warning messages appear during the installation of the
     library. This is due to a design choice of the persitent object
     and it can be safely ignored.

  -------------------------------------------------------------------------
  warning: persistent-capable class member type is a problem
            The type of base class vector<G4VPhysicalVolume * > is a problem
            The type of member vector<G4VPhysicalVolume * >::start_ is pointer
            The type of member vector<G4VPhysicalVolume * >::finish_ is pointer
            The type of member vector<G4VPhysicalVolume * >::end_of_storage_
                      is pointer
            The type of member vector<G4VPhysicalVolume * >::alloc_ is a
                      problem
            The type of member allocator<G4VPhysicalVolume * >::impl_ is
                      pointer
        G4VPhysVolRefVArray  transPhysVolPtrs;
                                             ^
  -------------------------------------------------------------------------

  3) The following warning messages appears during the installation of the
     libraries and the compilation of the example files.  Dependency
     file is used to solve the GNUmake dependencies inside the Geant4
     categories and it can be safely ignored.

  -------------------------------------------------------------------------
  In file included from /afs/cern.ch/sw/lhcxx/specific/@sys/HepODBMS/0.3.1.0/
  include/HepODBMS/odbms/HepODBMS.h:75,
                 from include/G4PersistentTypes.hh:21,
                 from include/G4VPersistentSubMan.hh:34,
                 from src/G4VPersistentSubMan.cc:16:
  /afs/cern.ch/sw/lhcxx/specific/sun/Objectivity/5.2/include/oo.h:57:
  warning: No include path in which to find generic.h
  -------------------------------------------------------------------------

  4) The following error messages appear at the end of the library
     installation, and it can be safely ignored.

  -------------------------------------------------------------------------
  installing schema header files ...
  cp: cannot access /afs/cern.ch/sw/geant4/stt/ref+/AIX-xlC/debug/persistency/
  STL/tmp/SUN-CC/G4pglobal/*.hh
    schema header file does not exist, so ignore the error message...
  -------------------------------------------------------------------------

  5) The following warning message appears at the runtime of the persistency
     examples, which is generated by HepDbApplication in HepODBMS.
     It can be ignored.

  -------------------------------------------------------------------------
  Opening federated database OO_FD_BOOT.
  WARNING: g4example: Could not find naming root directory:
  Naming will be disabled.
  -------------------------------------------------------------------------


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.

  o NT

      - Due to limitations of the VC++ optimiser, testing was done using
        the debuggable version only.
      - g3tog4 has not been ported to NT.
      - During the making of dependency files during compilation there
          are repeated warnings ("Strstrea.h not found") - this is an
          artifact of using g++ for this purpose.
      - Ignore linker warnings: "conflicts with use of other libs".
      - Ignore linker errors: "unresolved external symbol
          __imp__MessageBoxA@16". 


6. Known Run-Time Problems
--------------------------

  o Reading STEP files on DEC with optimised libraries causes a Memory
    fault - but see notes on DEC above.
  o In rare cases heavy ions appear not to be properly stopped and killed
    in tracking, therefore Geant4 sticks making many small steps. This
    behaviour has been observed on SUN and is under investigation.
  o On WindowsNT, a problem can occur reading the data files associated with 
    the environment variable G4LEVELGAMMADATA.  (Usually the value 
    for this variable is  $G4INSTALL/geant4/data/PhotonEvaporation .)
    A correction that resolves this anomalous behaviour will be issued 
    soon, in a patch.


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 G4PropagatorInField::LocateIntersectionPoint: Warning: Integration
      inaccuracy requires an adjustment in the step's endpoint Two
      mid-points are further apart than their curve length difference:
      Dist = xxx curve length = yyy
  o Warning in G4Navigator::ComputeStep: The Step's starting point has
      moved...
  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. 

For very high energy muons (ex. 1 TeV) warnings of this kind might be
generated:

  o G4ParticleChange::CheckIt  : the Momentum Change is not unit vector !!
    Difference:  1e-09
    G4ParticleChange::CheckIt 
