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 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 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. 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 CLHEP 1.4 (http://cern.ch/clhep/INSTALLATION/clhep.html). 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 ObjectSpace (http://www.objectspace.com). "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 is a problem The type of member vector::start_ is pointer The type of member vector::finish_ is pointer The type of member vector::end_of_storage_ is pointer The type of member vector::alloc_ is a problem The type of member allocator::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