Geant4 3.2 Release Notes ------------------------ 29th June 2001 These are the main new features/fixes included in this release since release 3.1 (for the detailed list of fixes/additions, please refer to the related History files): o Configuration: ------------- - Added G4VIS_BUILD_ASCIITREE_DRIVER, G4VIS_USE_ASCIITREE and G4VIS_BUILD_GAGTREE_DRIVER, G4VIS_USE_GAGTREE variables to activate module for ascii/GAG hierachycal tree of geometry volumes. - Introduced changes for persistency: common.gmk is now split in three, one general, and one for specific for transient and persistent each. Dependencies now much better handled in persistency. - Removed G4_NO_CBRT flag from WIN32-VC.gmk, no more needed. o Event: ----- - Fixes to cowork with STL vector migration of 'geometry'. o Electromagnetic Processes (Low-energy): -------------------------------------- - Migration to STL vector. Removed references to RW wrappers. - Fixed pedantic warnings detected on Linux ANSI setup. - Added new process for polarised Compton scattering. - Bug fix in anti-proton ionisation. o Electromagnetic Processes (Standard): ------------------------------------ - Fixed pedantic warnings detected on Linux ANSI setup. o General Processes, Parameterisation, Decay, Optical: --------------------------------------------------- - Fixed pedantic warnings detected on Linux ANSI setup. o Geometry: -------- - Migrated code to native STL vector. Removed all references to Rogue-Wave wrappers. - Management: o Adopt explicit initialisation for 'minExtents' and 'maxExtents' in G4SmartVoxelHeader::BuildNodes(...). - Boolean solids: o Fix in G4IntersectionSolid::DistanceToIn(p,v) resolving bug observed in problem report #153. - BREPS solids: o Fixes to allow -ansi compilation on Linux-g++, gcc-2.95-2 compiler: - G4Ray: changed usage of hypot(x,y) to sqrt(x*x+y*y). - G4Hyperbola: changed usage of atanh(x) to 0.5*log((1+x)/(1-x)). o G4ProjectedSurface: corrected initialisation of temporary G4Point3D objects, to use the correct CLHEP constructor. - CSG solids: o Added G4CSGDEBUG preprocessor flag to discriminate for debug verbosity specific to CSG solids. Included in G4Exception of DistanceToOut() for "point p is outside" in G4Box, G4Cons, G4Tubs. o G4Trap: fixed memory leak in CalculateExtent() for creation of vertices in case of finite rotation. - Magnetic Field: o Updated G4Mag_SpinEqRhs for correction to spin tracking. o Fixed G4FieldManager constructors to give default values to delta parameters. - STEP reader: - Fix for porting on Linux-g++ 2.95-2 -ansi: removed usage of strdup() in dirobj.cc; replaced with existing solution for __O3DB__. - Volumes: o G4AuxiliaryNavServices::CheckPointOnSurface(): added additional check to resolve endless looping of G4Navigator in case the track is passing through a point, edge or surface shared by two solids. Fixes problem report #185. o Fixes in G4ReplicaNavigation for bug reports #253 and #254: - in VoxelLocate(...), treated particular case of rotational symmetry with extent over 360 degrees. - in DistanceToOutPhi(...), fix to correctly handle cases where the starting point is on boundary of replicas and direction is along boundary. o Enabled the use of different field managers for different parts of the detector. This first implementation allows a volume that has a field manager to override the global one. - Note: All field managers currently must refer to fields in global coordinates. - New ability: setting of the delta accuracy parameters differently in different volumes (even while maintaining the same field as the global one). o Added new parameter to G4PropagatorInField 'fEpsilonMin' which is the minimal relative accuracy for MF driving. o Global: ------ - Added contructor to G4DataVector with additional argument for initialising values of collection. - Removed definition of cbrt() in globals.hh to allow ANSI compilation on Linux-g++ architecture with compiler gcc-2.95-2. - Defined 'str_size' as G4std::string::size_type and replaced usage of 'size_t' in G4String and G4SubString. Fixes problem report #40. o Graphics Representations: ------------------------ - Fixes in HepPolyhedron: o Extended implementation to cover unforeseen earlier situation during preselection of faces without intersection. o Made GetNumberOfRotationSteps() static and public. o Added GetSurfaceArea() and GetVolume(). - Fixed warnings about possible use of uninitialized variables. - Migrated to STL vector. Removed references to RW wrappers. - Bug fix in BooleanProcessor to address problem report #153. o Hadronic Processes: ------------------ - Migration to STL vector of the pre-compound and evaporation codes and removal of most warnings detected by Linux ANSI pedantic setup. - Management: o Fixes memory leak in G4InelasticInteraction: systematic search for leaks - energy scan 50MeV-10GeV. - High energy model: o Energy- OR Momentum- conservation, can be chosen by the user. o Added production of Evaporation particles. o Better description of experimental data, mainly in Strange Particle Production. o Cleared compilation warnings on Linux-g++. o Minor bug-fix in G4HEPionMinusInelastic. o Introduced temporary workaround in G4HEInelastic for high energy problem (number of particles created in one event larger than allocation). o Missing initialization of strangeness corrected, removing energy non-conservation in rare cases. - Generator models: o Upgrade of angular distributions and fission yields in pre-compound and evaporation models. o Defined local cbrt() in G4FermiMomentum, to allow porting on gcc-2.95-2 ANSI setup. o De-excitation: interface adjustment in G4ParaFissionModel. o Kinetic model: fixed exceptional condition for inelastic scattering off Hydrogene. No recoil required. - Radiative-decay model: o Fixes to cowork with STL vector migration of 'geometry'. - Low energy neutron transport model: o New code revision: requires new set of data, G4NDL3.0 or later. o Includes also an upgrade of the doppler broadening. Allows for running on 0K data, and doing exact doppler broadening on the fly (according to the temperature specified in G4Material), with good performance up to about 5000K. o Bug fix in G4NeutronHPInelasticCompFS to get the correct Q-value for Lithium (the bug was introduced in recent development). - Utilities: o Fixed memory leak in G4ReactionDynamics: systematic search for leaks - energy scan verification 50MeV-10GeV. o Fixed bug in nuclear reactions for light ions. o Materials: --------- - Fixed pedantic warnings detected on Linux ANSI setup. - Fix to explicitly initialise to zero values of G4DataVector used to fill sandia-matrix. o Particles: --------- - Added a0(980), f0(400-1200), f0(980). - Fixed bugs in G4ParticleDefinition::GetPDGIsospin(). - Fixed element name in G4IonTable. - Fixed PDG encoding for excited Lambdas. - Added special treatment for Lamdas in G4PDGCodeChecker. - Fixed pedantic warnings detected on Linux ANSI setup. o Persistency: ----------- - Removed useless declaration of typedef G4ThreeVectorList. - Adapted to new config setup. - Changed usage of NULL to 0. o Run and Intercoms: ----------------- - Added binary mode for G4VUserPhysicsList::Retrieve/StorePhysicsTable(). - Added G4VUserPhysicsList::RetrieveCutValues and related. - Added G4VUserPhysicsList::Set/ResetStoredInAscii() to switch on ascii mode for Retrieve/StorePhysicsTable(). - Added 'setStoredInAscii' command in G4UserPhysicsList. o Tracking & Track: ---------------- - Migration to STL vector. Removed references to RW wrappers. - Moved G4TrackingMessenger* messenger to the class scope in G4TrackingManager. - Fixed problem of vertex information loss for suspended tracks. Fixes problem report #240. - Fix to G4SteppingManager to explicitly initialise values in STL collections members of the class. o Transportation: -------------- - Correction for 'spin-update' to G4Transportation: to avoid overwrite of the spin value for photons and other non-charged particles (and for charged particles in zero field). o Visualization: ------------- - Added two new commands: /vis/scene/add/text /vis/scene/add/axes - Improvements in /vis/scene/add/volume. - Added /vis/drawTree. - Introduced first version of G4ASCIITree to dump geometry hierarchy to standard output as ASCII stream. This requires two new environment variables: G4VIS_BUILD_ASCIITREE_DRIVER and G4VIS_USE_ASCIITREE. - Introduced first version of G4GAGTree to dump geometry hierarchy to GAG GUI system. This requires two new environment variables: G4VIS_BUILD_GAGTREE_DRIVER and G4VIS_USE_GAGTREE. - Migration to STL vector. Removed references to RW wrappers. - Removed OS dependence from the DAWN-network driver. * gethostname() removed * removed G4SocketConfig.hh and G4SocketMacro.hh. NOTE: now "setenv G4DAWN_HOST_NAME hostname" is mandatory to use the DAWN-network driver. o G4toG4 Tool: ----------- - Fix in GNUmakefile: G4MAKESHLIB replaced with G4LIB_BUILD_SHARED to allow building of shared library according to the new mechanism. - Fix in G3toG4BuildTree for a case of the placement a volume in cloned mothers. G3toG4BuildTree() has been split in two methods G3toG4BuildLVTree() and G3toG4BuildPVTree(), the first creating logical volumes only, the second performing placements afterwards. - Cleared pedantic warnings detected on Linux-g++ with ISO/ANSI setup. o Examples: -------- - exampleN03: updated visualization macros in visTutor: o Commands /vis/set/XXX's are replaced with /vis/viewer/set/XXX o Commands /vis/camera/XXX's are replaced with /vis/viewer/XXX except for /vis/camera/spin. o Added exN03Tree0.mac for ASCII DTREE and exN03Tree1.mac for GAG DTREE - Migrated novice/N05 to STL vector. - Added new interactive commands in extended/electromagnetic/TestEm5. - Updated examples: o extended/analysis/AnaEx01 o extended/persistency/PersistentEx01 and PersistentEx02 o advanced/xray_telescope Notes: o Geant4 3.2 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. Updates to the documentation for Geant4 3.2 are expected to be published as usual within three weeks from the release date. 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.6/5.7, C++ 4.2 Patch 104631-04, C++ 5.2 Patch 109508-03. o HP 10.20, aCC C++ B3910B A.01.23 o Linux 2.2.17-7, gcc C++ egcs-2.91.66 (egcs 1.1.2), gcc 2.95-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 with Service Pack 4 or Windows-2000 and Cygnus Tools b20 with: Visual C++ 6.0 Service Pack 2 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 SGI V6.5.5, CC 7.2.1 with ObjectSpace o AIX 4.3.2, xlC compiler with ObjectSpace 2. ANAPHE and CLHEP ------------------- Geant4 3.2 requires the installation of CLHEP. See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html). Tests have been performed with CLHEP 1.6.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 3.2 coworks with ANAPHE 3.6.0 and components included therein: Objectivity 6.1 ObjectSpace 2.1 HepODBMS 0.3.2.9 CLHEP 1.6.0.0 For more information about ANAPHE, see: http://cern.ch/anaphe 3. The Standard Template Library -------------------------------- The following versions of STL have been tested: ObjectSpace STL on SUN (CC 4.2). See ObjectSpace (http://www.objectspace.com). "Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.2). 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 in non ISO/ANSI setup. Native STL is required for ISO/ANSI setup. o HP: Native STL is used (non ISO/ANSI setup). o SUN: ObjectSpace is required in non ISO/ANSI setup (CC 4.2). Native STL is required for ISO/ANSI setup (CC 5.2 only). o Linux: Native STL is required (non ISO/ANSI setup). o NT: Native STL and ISO/ANSI setup required. 4. Persistency -------------- Platform -------- Persistency in Geant4 3.2 release is tested on the following platforms: G4SYSTEM OS C++ compiler HepODBMS Objectivity --------- ----------- ------------ --------- ----------- SUN-CC SunOS 5.6 CC 4.2 0.3.1.4 5.2.1 SUN-CC5 SunOS 5.7 CC 5.2 0.3.2.10(*) 6.1.3 (*) Linux-g++ RedHat 6.1 egcs-2.91.66 0.3.1.4 5.2.1 Linux-g++ RedHat 6.1 egcs-2.95.2 0.3.2.3 (#) 6.0 (#) (*) HepODBMS header files must be prepared with "ooddlx -noline" option. See below. (#) Setup scripts for HepODBMS and Objectivity has been changed on CERN AFS. 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. - A warning message "Could not find naming root directory" appears at runtime of the persistency examples. It is generaged by HepDbApplication in HepODBMS. It can be ignored. - On Solaris7 (SUN-CC5), persistent header files has to be generated by ooddlx with "-noline" option to work around 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 option 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. Try to identify the compiler error 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 expected from SUN. 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.