Geant4 2.0 Release Notes ------------------------ 30th June 2000 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: ------------------------- - internal reorganisation of the EnergyLoss classes. Introduced one level of abstraction through the G4VEnergyLoss class for muons, electrons and hadrons. - introduced new functionalities for the energy loss fluctuation model, and bug fixes. - removed *Plus* process classes and merged to standard processes: optimized generation of delta rays near the geometrical boudaries is now performed as the default. - bug fixed in the multiple scattering. - bugs fixed in G4eIonisation and G4hIonisation. - absolute min gamma energy fixed to 10 keV in G4eBremsstrahlung. - bugs fixed in G4MuIonisation and G4MuPairProduction. Updated Physics Reference Manual for muon processes. - Added new models of Transition Radiation radiators in processes/parametrisation. o Electromagnetic Processes, Low-energy : ------------------------------------- - fixes in G4LowEnergyBremsstrahlung for continuous energy loss. - modifications for integration of cross sections, corrections of fluorescence transition probabilities to take into account non-radiative transitions. o General Processes, Parameterisation, Decay : ------------------------------------------ - introduced new set of models for X-ray transition radiation parameterisation. - implemented full migration to STL for processes/parameterisation and processes/management modules. - added process registration into ProcessTable in copy constructor. - fixed registration of "shortlived" particles for G4Decay. o Geometry: -------- - magneticfield: o corrected helical steppers. o fix in G4LineSection to prevent divisions by 0 and sqrt(<0). o modified method for finding new trial step in G4ChordFinder. - management: o design change in G4VSolid for visualization utilities: changed pure virtual method G4VSolid::GetExtent() to virtual. Added default implementation based on CalculateExtent(). - BREPS solids: o Decoupled BREPS module from the STEP Reader; o Memory leak fixes and some code cleanup. - CSG and specific solids: o created new module solids/specific and moved therein all non-CSG shapes previously placed in solids/CSG. o Added new shape in solids/specific: G4EllipticalTube. o Fixed bug in G4PolyhedraSide::Normal(...). This fixes a problem observed in G4Polyhedra::SurfaceNormal. Fixes in G4Hype. o Fixed typo in method name in G4Polyhedra.: changed GetNumSIde() to GetNumSide(). o Added more diagnostics in G4Cons, G4Sphere and G4Torus in function DistanceToOut(p,v,...). o Fix in DistanceToIn(p,v) for G4Box and G4Trd to return zero distance in case computed value is less than 0.5*kCarTolerance. o Added safety against call from outside in DistanceToOut(p) o Fix to G4Tubs::DistanceToOut(p,v,...) in computation of xi, yi for (sphi>=-0.5*kCarTolerance). o Added more diagnostics in case of invalid enum for DistanceToOut. o Added new alternative functions SolveBiQuadratic/CubicNew in G4Torus. - solids/Boolean: o Implemented CreatePolyhedron method. o G4DisplacedSolid: reversed implementation of GetFrameRotation and GetObjectRotation, removing inappropriate invertion. o G4DisplacedSolid::GetConstituentMovedSolid() made const. o Fixed bug in G4SubtractionSolid::DistanceToOut(p,v,...). validNorm flag was uncorrectly set to true. - STEP: o Upgraded NIST STEP Reader to SCL (STEP Class Library) 3.2; o Implemented porting on supported platforms/compilers and ISO-ANSI C++ compliance. - STEP Interface module: o Implemented porting to support the new NIST STEP Reader; o Reduced inter-class dependencies by reorganising include statements. o Improved overall diagnostics and fixed internal memory-leaks; o Added protections for NULL pointers generated by missing geometry creators. o Implemented temporary solution for association of placements with manifolded solids for advanced BREP shape representations. - volumes: o introduced kCarTolerance for check over taken step length and TruePathLength in G4PropagatorInField::ComputeStep(). o fixes in G4ReplicaNavigation::ComputeStep() for zero-step length loops observed when point is on boundary. o Globals and Config: ------------------ - Added class G4PhysicsLnVector implementing a physics vector with natural logarithmic scale for energy/momentum bins. - Added string identifier to G4UserLimits. - Defined G4complex type as complex type of doubles. - Fixes to STLInterface wrappers: fixed initialization of base STL vector in default constructor of vector collections. - Changed implementation of G4Integrator to a template class. - Config: implemented modular setup. Now system specific configurations are grouped in separated files $G4SYSTEM.gmk and placed in the new directory config/sys. o Graphics Representations: ------------------------ - Added HepPolyhedron class and re-implemented G4Polyhedron using this new class (which will become part of CLHEP). - Added boolean processor for boolean operations of HepPolyhedron objects. o Hadronic Processes: ------------------ - management: allowing ion interactions in G4HadronInelasticProcess. - cross_sections: added new classes for ion-ion reactions, and for ion reactions on Hydrogen. - processes: added new process for ion induced reactions. - models/isotope_production: added model for proton induced isotope production, validity range is the proton spallation energy range (to use this, an update of the G4NDL library is required). - models/neutron_hp: enabled production of residual nuclei for some inelastic final states. - models/generator/de_excitation: design iteration to allow re-use of root-finding algorithms. - models/generator/quark_gluon_string: added gamma annihilation cross-sections and anti-nucleaon-nucleon annihilation. Bug fixes in AntiSigma SU(12) wafe-function. Extended G4SPBaryon. - models/generator/string_fragmentation: extended G4VLongitudinalStringDecay to allow string excitation dependent parameters. - models/generator/util: bug fixes and added functionality in G4KineticTrack. - models/radiative_decay: added model for simulating the decay of radio-active nuclei and isomeric states. Validity range is the range of materials available from ENSDF as of May 2000. To use this model a data set is provided in geant4/data/RadiativeDecay and the environment variable G4RADIOACTIVEDATA must be set. - fixes for memory leaks observed at event loop. NOTE: the consistent data sets for photon evaporation and radio-active decay (derived from the same version of the ENSDF data) are provided from Web in the source download area. A previous version of photon evaporation data is also provided. o Interfaces: ---------- - Introduced new G4UITerminal (G4UItcsh) with UNIX-like shell (currently fully tested only on Linux-g++ and SUN-CC systems). o Particles: --------- - Full migration to STL performed. - Removed G4RhoPlus, G4RhoZero, and G4RhoMinus classes. Added "rho0" in G4ShortLivedConstructor. - Fixes in G4IsotopeTable and G4NucleiProperties classes. - Introduced ParticleSubType property in ParticleDefinition. - Added GetAtomicNumber() and GetAtomicMass() methods to G4VIon, G4Proton, and G4Neutron. - Added G4VDecayChannel::GetAngularMomentum() method. o Tracking & Track: ---------------- - Added thePolarizationChange in G4ParticleChangeForTransportation. - Added cashing mechanism of pointer to material in G4StepPoint. to extract material information from parametrized volumes. - GetTouchable/SetTouchable methods have been changed to handle "const" pointers. - Introduced G4VUserTrackInformation class and associated to G4Track. - Fixed problem in deleting touchable in G4SteppingManager. o Visualization: ------------- - Introduced first implementation of the G4RayTracer. With G4RayTracer all solids types supported in Geant4 can be visualised. - Added commands /vis/viewer/update, /vis/viewer/reset. - Added "compound" commands: /vis/open, /vis/drawVolume. - Added ability to visualise boolean solids through G4Polyhedron objects. - Added G4LogicalVolumeModel::DescribeSolid(), which explicitly adds components of composite solids as white forced-wireframe objects. - OPACS: o G4GoSceneHandler: correct polyhedron wire-frame in order to remove some edges. o G4WoViewer: changed camera name checking so that a viewer created by the GUI (Wo) could be hooked. o G4GoSceneHandler: changed circle rendering. - Bug fix in G4PhysicalVolumeModel for replicas. Notes: o Geant4 2.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. Updates to the documentation for Geant4 2.0 are expected to be published as usual within three weeks from the release date. Contents -------- 1. Supported and Tested Platforms 2. LHC++ and CLHEP 1.5 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.23 o Linux 2.2.12-20, gcc C++ 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 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 SUN Solaris 5.6, C++ 5.0 patches 107357-07, 107311-09. Platforms configured but not yet tested (a patch will follow, if needed): 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. LHC++ and CLHEP 1.5 ---------------------- Geant4 2.0 requires the installation of CLHEP 1.5. See CLHEP 1.5 (http://cern.ch/clhep/INSTALLATION/clhep.html). 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 those compilers (for example, DEC). Note that the installation of the "Hist" package in CLHEP for histogramming is now disabled by default. If you wish to install CLHEP with the "Hist" package, you need to edit the CLHEP installation scripts and add the corresponding entry. Geant4 2.0 coworks with LHC++ 2.0.0 and components included therein: Objectivity 5.2.1 ObjectSpace 2.1 HepODBMS 0.3.1.3 CLHEP 1.5.0.0 3. The Standard Template Library -------------------------------- The following versions of STL have been tested: ObjectSpace STL on DEC, HP and SUN. See ObjectSpace (http://www.objectspace.com). "Native" STL on: Linux, HP, DEC and SUN. 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: either ObjectSpace or native STL can be 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.0 only). o Linux: native STL is required (non ISO/ANSI setup). o NT: Native STL and ISO/ANSI setup required. In the interest of stability, a significant part of the code in Geant4 2.0 still makes use of the "STL Interface" wrapper classes, used for allowing the migration from Rogue Wave Tools.h++ container library. For these the emphasis has remained on correct behaviour, rather than performance. 4. Persistency -------------- - Platforms Persistency in Geant4 2.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.4 5.2.1 Linux-g++ Linux RH6.1 egcs 1.1.2 0.3.1.1 5.2.1 - Known Problems There are many 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. For the detail of the warning messages, please refer to the release note of Geant4 1.0. 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. o SUN Solaris 5.6, C++ 5.0 patches 107357-07, 107311-09. Due to a compiler bug, some code in Geant4 cannot be compiled in optimised mode, patches are available from SUN (107357-09, 107311-10) which are claimed to fix this problem, we have not been able to test them yet. Tests have been performed only by using the debuggable version of the libraries. 6. Known Run-Time Problems and Limitations ------------------------------------------ - In the "high energy" hadronic model, a problem of energy non conservation has been observed. A fix for it is currently under test and will be available soon in a public patch. - In multiple scattering, the nuclear size correction maybe not well adapted for electrons. A fix will come soon. - The parametrisation of the total cross section for electron bremsstrahlung will be reviewed in order to allow generation of gamma below 10 keV. 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.