Import Geant4 4.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:39:52 +02:00
parent 921d3b1cda
commit 330b82b769
4524 changed files with 178689 additions and 43575 deletions
+102
View File
@@ -0,0 +1,102 @@
Geant4 4.0 - patch-01 Release Notes
-----------------------------------
31st January 2002
List of fixes included in this public patch to release 4.0:
o Event:
-----
- G4PrimaryTransformer: removed check whether the primary vertex is
inside the world volume. The check has been moved to G4SteppingManager.
o Geometry:
--------
- Magnetic field:
o Activated G4DEBUG_FIELD in GNUmakefile.
o G4MagHelicalStepper.cc: renamed local variables "*Momentum*"
to "*Velocity*".
- Management:
o G4AffineTransform.icc: fixed trivial compilation warning for gcc-2.95.2.
- Volumes:
o G4AuxiliaryNavServices: critical fix, to only consider whether a
'ray' (Point,Direction) is on the surface (it was erroneously also
checking for those inside volumes). This erroneous condition occurred
frequently in the new usage of Locate with Direction to initialise a
step.
o G4Navigator: reset blocked volume when locating 'within volume',
after ensuring that it does not get called when ComputeSafety() is at
a boundary. Fixes cases of longstanding 'Point P is Inside' errors.
o Activated mechanism in GNUmakefile for allowing compilation with
G4DEBUG_FIELD or G4DEBUG_NAVIGATION flags.
- solids/Boolean:
o Moved all verbosity mode warnings to G4BOOLDEBUG.
o Activated G4BOOLDEBUG mechanism in GNUmakefile.
- solids/BREPS:
o G4BREPSolidPCone: bugfix for problem report #320.
Fixed missing use-case in constructor when RMAX and RMIN have been
changed for 2 consecutive equal z-values. Now it creates correctly
2 planar surfaces as expected.
Added private method ComputePlanarSurface() gained
by refactoring of some part of the code in the constructor.
o G4FPlane: fixed first constructor adding new argument for setting
explicitly the sense of a surface if required.
Fixed G4FPlane::Intersect() method which incorrectly ignored a special
case of a hit on surface point with ray direction opposite to surface
normal.
- solids/CSG:
o G4Sphere.cc: fixed a problem with tolerances in the case of large Radius.
o Moved all verbosity mode warnings to G4CSGDEBUG.
o Activated G4CSGDEBUG mechanism in GNUmakefile.
o Global:
------
- G4strstreambuf: plugged memory leak in destructor for buffer deletion.
Temporary fix to G4strstream::overflow(c) for GNU gcc-3.X compilers
(also problem report #342), which require returning of character 'c' in
case of buffer flushing for <CR>.
- Replaced 'NULL' with '0' in G4Allocator.hh, G4strstreambuf.icc
and G4Timer.cc.
- Removed obsolete inline definitions in g4std/wrappers/DEC-cxx/cmath.
o Materials:
---------
- Fixed G4MaterialPropertyVector::AddElement() to consider ordering
of elements.
o Track & Tracking:
----------------
- track:
o G4Track: corrected initialization of fStepLength in constructors.
Fixed bug in assignment operator for fStepLength.
- tracking:
o G4SteppingManager:
- fix safe comparison between floating numbers
- added check for primary track outside of the world
- bug fix for particles below threshold to avoid double steps
o Visualization:
-------------
- Corrected handling for already open file in HepRepXMLWriter.
o Examples:
--------
- Novice: syncronised files with CVS HEAD. No functional changes to code.
----------------------------------------------------------------------------
Technical Notes
---------------
o Technical notes distributed for release 4.0 are also applicable and valid
for this patch.
The code and rebuilt binary libraries for release 4.0 are available through
our "Source Code" Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
+157
View File
@@ -0,0 +1,157 @@
Geant4 4.0 - patch-02 Release Notes
-----------------------------------
28th February 2002
List of fixes included in this public patch to release 4.0, to be added on
top of patch-01:
o Config:
------
- liblist.c: added flags __CYGWIN__ and __CYGWIN32__ for triggering proper
parsing algorithm on Windows systems, also on most recent versions of
Cygwin.
- WIN32-VC.gmk: use g77 instead of f77 as default fortran compiler.
- sys/HP-aCC.gmk: removed include path to
global/management/include/std/wrappers, which was unused and not
necessary.
o Decay processes:
---------------
- Removed a physics table from G4Decay.
o Electromagnetic processes:
-------------------------
- Fixed bug in G4Ve(h)EnergyLoss, G4VMuEnergyLoss:
o Adopt MinDeltaCut in-range instead of in-energy !
- G4VEnergyLoss:
o Set subSecFlag to false. NO default subcutoff generation.
o Set finalRange to 1mm as default (the actual value is computed in
G4VeEnergyLoss, G4VhEnergyLoss and G4VMuEnergyLoss).
o Event:
-----
- Optimised implementation of SetNewValue() in G4ParticleGunMessenger and
G4GeneralParticleSourceMessenger to allow porting on WIN32-VC for optimised
compilation.
o Geometry:
--------
- Management:
o G4GeometryManager.cc: fixed handling of ios manipulators and precision
to reset to their original state in G4GeometryManager::ReportVoxelStats().
Fixes problem report #343.
- Volumes:
o G4GeometryMessenger.cc: fixed local variable name not to clash with
class data member.
- solids/Boolean:
o G4ReflectionFactory.cc: fixed bug causing repetition of daughter volumes.
o G4ReflectedSolid[.hh.cc]:
- Defined new methods Set/GetTransform3D() and Set/GetDirectTransform3D()
for defining/accessing the reflected transformation.
o Moved utility methods for G4AffineTransform to protected.
- solids/BREPS:
o Bug fixes to G4BREPSolidPolyhedra:
- Added enhancement allowing to define RMIN and RMAX to be zero with the
exception of forbidden two consecutive zero RMAX values.
- Refactoring in constructor gained two new private methods for creation
of trapezoidal and triangular side planes of G4BREPSolidPolyhedra.
- Rewritten code for delta phi >= 2*PI case with full classification of
possible cases.
- Fixed sense of end planes.
- Fixed delta phi < 2*PI case where some old code remained after bug
fix #266.
- Added new private method for creation of planar surfaces gained
after code refactoring in constructor.
- Fixed bug for problem report #354 by adding the code handling the
cases where user supplies for the same z-section different RMIN or
RMAX values.
- Added more preconditions checks
- Added code forbidding "teeth" in polyhedra.
o G4ConvexHull.hh: moved initialisation of 'next' to constructor's body.
- solids/CSG:
o G4Sphere.cc: bug-fix in Inside() function. Fixes problem report #216.
o G4Para.cc: fixed bug in G4Para::Inside() in calculation of xt,
according to problem report #357.
- solids/STEPinterface:
o G4RepresentationRelationshipCreator.cc: fixed unsafe usage of
'<' operator.
o Hadronic processes:
------------------
o Fixes in pre-equilibrium and de-excitation generator models.
o Fixed bug in doppler broadening in neutron-transport model:
- Fixed sign error in calculation of effective luminosity.
o Stopping: trivial bug-fix in pi-absorption at rest.
o Util:
- Trivial bug-fix, affecting K-absorption at rest.
- G4Nucleus: moved definition of constructors/destructor from header to
source implementation file. Unresolved symbols were detected at link
time on SUN-CC for static constants used to initialise members in
inline constructors.
o CHIPS model: fixed accuracy problem.
o Optimised implementation in G4Fancy3DNucleus.cc to allow porting on
WIN32-VC for optimised compilation.
o Interfaces:
----------
- Fixed for odd behavior of G4UIcsh in Windows systems.
o Materials:
---------
- Optimised implementation of GetIndex() for fIndexTable in G4Material,
G4Element and G4Isotope.
o Particles:
---------
- Fixed bug in the decay table for G4KaonMinus.
o Track & Tracking:
----------------
- track:
o Added G4Track::CopyTrackInfo().
o Optimised G4ParticleChange::AddSecondary() to properly use touchable
handles.
o Fixed a bug of changing parent weight in
G4ParticleChange::UpdateStepForAlongStep().
o Optimised implementation in G4Track::GetVelocity().
- tracking:
o G4SteppingManager2.cc:
- fix for extra steps when the ApplyCuts flag is set
- G4SteppingManager.hh: changed scope for 'SizeOfSelectedDoItVector'
to allow porting on WIN-VC compiler.
o Fix in G4SteppingManager::SetInitialStep() for applyCuts.
o Visualization:
-------------
- HepRep: added check for missing hierarchy layers in HepRepXMLWriter.
- Bug fix in modeling: removed Begin/EndPrimitives from G4HitsModel and
G4TrajectoriesModel. This was causing nested calls to Begin/EndPrimitives
(and thus to glNewList/EndList in OpenGL stored mode), since the
trajectories and hits Draw methods themselves have Begin/EndPrimitives.
o Examples:
--------
- extended/electromagnetic/testem1,3,4,5:
o Improvements in PrimaryGenerator and macros
- novice/N03:
o New macros for tutorials/exercises.
----------------------------------------------------------------------------
Technical Notes
---------------
o This patch should be applied on top of "patch-01" for release 4.0.
o Technical notes distributed for release 4.0 are also applicable and
valid for this patch.
The code and rebuilt binary libraries for release 4.0 are available through
our "Source Code" Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
+385
View File
@@ -0,0 +1,385 @@
Geant4 4.1 Release Notes
------------------------
28th June 2002
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 Configuration:
-------------
- Added Darwin-g++.gmk configuration file for MacOS-X systems running
with GNU g++ compiler.
- Removed obsolete SUN-CC4.gmk configuration file.
o Event:
-----
- Introduced new G4TrajectoryContainer class aggregating STL vector.
- Added TransferOneStackedTrack() method to G4StackManager.
o Electromagnetic Processes (Low-energy):
--------------------------------------
- New more complete and detailed data files (G4LOWEN1.1 data set).
- Extended parameterisation of e- ionisation (24 parameters per each
atomic shell) in order to have better fit to EEDL data.
- Bug fixes in e- bremsstruhlung process.
- Fixes and updates to parameterisation of the cross section in
photo-electric effect.
- Updates to polarised Compton process.
- Provided simulation of ionisation for GenericIons.
- Fixes in simulation of fluctuations of energy loss.
- Fixes in simulation of hadron induced fluorescence.
- Provided simulation of Auger electrons production.
- Fixes to the angular distribution in Rayleigh scattering
(G4LowEnergyRayleigh process).
- Added UI control on the threshold to produce fluorescence photons
and Auger electrons as secondaries.
o Electromagnetic Processes (Standard):
------------------------------------
- New classes (G4VXTRenergyLoss, G4GammaXTRadiator and G4RegularXTRadiator)
for the description of X-ray transition radiation as continuous process.
- New electromagnetic process G4GammaConversionToMuons for gamma conversion
into muon pairs.
- G4MultipleScattering: new parametrisation for angle distribution.
Modified boundary algorithm and some other minor fixes. Improvements
and performance optimisation.
- Fixes to hadron ionisation/energy-loss processes for delta-electron
spectra of GenericIons.
- G4eIonisation: fixed access to energy cuts in BuildLossTables.
- Modifications in G4PAIxSection allowing to get additional information on
transverse and longitudinal excitations at atomic frequences.
- Bug fix in G4GammaConversion::DoIt() for e+e- angular distribution.
- G4ComptonScattering: set LowestEnergyLimit to 1*keV.
- G4PhotoElectricEffect:
o keep only Sandia crossSections, removed call to BuildPhysicsTables.
Simplified public interface.
o generate theta angle of the photoelectron from Sauter-Gravila
distribution.
- G4Scintillation, G4Cerenkov: tracks are suspended only in 'fAlive' state.
- G4VMuEnergyLoss: bug fix in number of subcutoff delta.
o General Processes, Parameterisation, Decay, Optical:
---------------------------------------------------
- Added method G4VProcess::GetCurrentInteractionLength().
- Fixed bug in G4VProcess::PostStepDoIt() when MeanFreePath is DBL_MAX.
o Geometry:
--------
- Introduced optional 3D geometry optimisation for parameterised volumes.
- Introduced ability to optionally disable optimisation of hierarchies of
geometry volume placements, through G4LogicalVolume.
- Enhanced reflection of volumes to cover all CSG and CSG-like solids.
- First release of module for importance biasing.
- Enhanced behavior for destructors of volumes/solids stores.
o Added locking mechanism for preventing conflicts when destroying
stores and deregistering pointers.
o Added Clean() static method to volumes/solids stores to explicitely
delete pointed objects in the stores and clear all entries.
- G4GeometryMessenger: added new commands to exploit more
features of the G4GeomTestVolume class for detecting geometry overlaps.
- G4Tubs: restored original "vertices" algorithm for
CalculateExtent() which was temporarly disabled.
- G4Sphere: bug fixed in Inside() for treatment of point p on z-axis.
- G4BREPSolidPCone: added sanity check of delta phi section value
and exception is thrown saying about this unsupported feature if
delta phi is less than 2*PI.
- G4AssemblyVolume:
o Fixed inconsistent handling of input rotation matrices.
o Corrected handling of cases when pointer to rotation matrix is zero.
o Moved accessors to assembly counters to public.
o Added support for user definable count base for generated physical
volumes.
- Implemented G4EllipticalTube::CreatePolyhedron().
- Fix in G4Navigator for problem concerning ExitNormal with photons.
o Global:
------
- G4String: use G4std::string instead of internal type 'std_string'
in signatures of public methods. No functional or interface changes.
- G4DataVector: initialise to zero values in collection for contructor
taking capacity.
- Added more verbosity to G4Exception.
- Introduced temporary patches for porting on gcc-3.1 compiler.
o Hadronic Processes:
------------------
- General code cleanup for removal of warnings.
- cross_sections:
o Included the high Q2 part of the cross-section into electro and
photo nuclear reaction cross-sections, and into the equivalent
photon production.
o New class for calculating projectile fragment cross-sections in
ion ion reactions. Implements Physical Review C61, 034607 (2000).
based on EPAX Version 2, with the kind permission of the authors.
- management:
o Included recoil charge state treatement in HadronicProcess.
o Bug-fix affecting energy conservation for anti-protons in hydrogene.
- models/chiral_inv_phase_space:
o Included Q2!=0 for gamma and electro nuclear reactions.
o Using quark-gluon string model now to simulate reactions with large
energy transfers.
o Added protection for reactions at threshold.
- models/coherent_elastic:
o Improvement for coulomb effects.
o Correction of array sizes; slightly extends the applicability.
- models/high_energy:
o Fix for a long standing problem in phi symmetry traced to the Cross
method of G4HEVector.
- models/leading_particle:
o New package, steming from a partial re-implementation of the MARS
code. Valid for energies below 5 Gev for proton/neutron/pi+-,
K+-/gamma/anti_proton
The code is intrinsically leading particle biased, hence applicable
for radiation background simulations.
Typical application of this would be in the ESA MOLASSIS application.
- models/low_energy:
o Correction for randomization of fermi motion (1 in 1000 effect).
o Better treatement for anti-nucleons through accounting of
annihilation energy.
o Various cross-sections in the accounting of nucleons.
o Improved pi-0 to charged pion rations used in low energy models.
o Improved treatement of Lorentz transformation, getting rid of the
1 in 100 phi=0 peak for nucleons.
- models/neutron_hp:
o Resolved a problem in the effective luminosity correction
in the doppler broadening on the fly. Removes a bias in capture time
on termal neutrons in hydrogen (was off by 10%).
- models/radiative_decay:
o Fixed problem with sort, leading to erroneous behavior.
- models/generator/de_excitation:
o Moving the catching of low energy gammas.
o Adding a complete set of fresh evaporation code, that is more or
less equivalent to the GEM evaporation models. It produces fragments
up to Na25. Currently at beta level. G4Evaporation::SetGEMChannel()
method should be used to activate this.
- models/generator/high_energy:
o Included direct strong resonance decay in case of scattering off
hydrogen, hence removing this boundary use-case from the cascade
interface specifications.
- models/generator/management:
o Added utility interface for nucleus and nuclear density functions,
for the use of cascade codes.
- models/generator/pre_equilibrium:
o Fixed error in the low energy proton distributions
o Improvements in the level density.
o Bug fixed in angular distributions (theta).
o Small bug fixed in the equilibrium exciton number.
o Migration to new pairing corrections.
- models/generator/quark_gluon_string:
o Design iteration to enable specialization of participants
in string excitation.
o Added gamma nuclear reactions by adding specialised participants for
this; based on single nucleon participant model, and mesonic structure;
assuming vector meson dominance in the reactions and splitting.
- models/generator/util:
o Added utility for the decay of strong resonances.
o Added consts to enforce few design considerations.
o Magnetic Field:
--------------
- Fix in G4MagIntegratorDriver to update the field track for small steps.
- Fixed LinearStep in G4MagHelicalStepper (expected unit direction).
- Changed maximum number of steps in driver from 500/order to 250/order.
- Fix in G4MagHelicalStepper::LinearStep().
- G4ChordFinder: corrected behaviour for very small or large step changes.
o Materials:
---------
- G4Material: removed check of the ideal gas state equation.
o Particles:
---------
- Added G4TauLeptonicDecayChannel for tau leptonic decay.
- Fixed a bug in G4NeutronBetaDecayChannel.
o Run, Intercoms and Interfaces
-----------------------------
- Introduced new class G4UIGainServer, socket extension for G4UIGAG.
- Adopt limit to the number of stored command strings.
- Cleared naive usage of G4String type arguments from most UI classes.
- Modified G4RunManager to re-open geometry when G4 changes to QUIT state.
- Use "virtual" inheritance for G4VModularPhysicsList.
- Fixed pedantic warnings.
o Tracking & Track:
----------------
- G4TrackingManager: implemented EventAborted() method.
o Transportation:
--------------
- Added new classes for management of biasing transportation and scoring.
o Visualization:
-------------
- Prevent copying of autoRefresh status with /vis/viewer/set/all command.
- Corrected out of date advice about /vis/set/culling, etc.
- Deprecated /vis/viewer/set/autoRefresh command.
- Workaround for pseudo-parallel/orthogonal projection in Ray Tracer.
- Updated OpenGL to compile on Windows (G4VIS_BUILD_OPENGLWIN32_DRIVER).
- Bug fixes in G4VRMLXFileSceneHandlerFunc class.
- Fixed pedantic warnings.
o Examples:
--------
- Novice:
o Added G4Scintillation process to example N06.
- Extended:
o Created 8 new examples for importance biasing and scoring.
o Created 2 new examples demonstrating event-level parallellism.
o Introduced first version of example for importing GDML geometries.
o Introduced first version of CMS tool for debugging geometries overlaps.
o Added example showing import of STEP CAD geometries.
o Created 2 new examples showing usage of HepMC event generator.
o Added new EM example TestEm6 for G4GammaConversionToMuons process.
o Migrated EM examples to use AIDA 2.2 for histogramming.
- Advanced:
o Updated examples to recent development and usage of histogramming
features in AIDA 2.2.
- Updated reference outputs.
----------------------------------------------------------------------------
Technical Notes
---------------
The code and some binary libraries are available through our "Source Code"
Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Contents
--------
1. Supported and Tested Platforms
2. AIDA 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 and 7.2 distributions,
versions of Geant4 have also been compiled successfully on other Linux
distributions, like Debian or Suse.
The default RedHat compiler gcc-2.96 ditributed in RedHat 7.X is NOT
supported. It has been verified that it produces incorrect binaries,
therefore is not reliable. See also note below.
o Windows-2000 and CygWin Tools with: Visual C++ 6.0 Service Pack 5
Platforms configured but not tested and not supported:
o DEC V4.0, cxx C++ V6.1-027 with/without ObjectSpace STL
o HP 10.20, aCC C++ B3910B A.01.23 with/without ObjectSpace STL
o SGI V6.5.5, CC 7.2.1 with ObjectSpace STL
o AIX 4.3.2, xlC compiler with ObjectSpace STL
o MacOS 10.1, gcc 2.92.2
2. AIDA and CLHEP
-----------------
Geant4 4.1 requires the installation of CLHEP.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP</A>. Tests have been performed with CLHEP 1.7.5.0. However, first
level porting has also been verified on CLHEP 1.8.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.1 examples with histogramming cowork with AIDA 2.2 implementations.
These include:
- ANAPHE 4.0.4 and components included therein:
Objectivity 6.1.3
HepODBMS 0.3.3.1
CLHEP 1.7.5.0
(see: <A href="http://cern.ch/anaphe">ANAPHE</A>)
- JAS 2.2.5
(see: <A href="http://jas.freehep.org">JAS</A>)
- Open Scientist v8
(see: <A href="http://www.lal.in2p3.fr/OpenScientist/v8/welcome.html">Open Scientist</A>)
AIDA headers can be downloaded from:
<A href="http://aida.freehep.org">AIDA</A>
3. The Standard Template Library
--------------------------------
Native versions of STL have been tested on the following platforms:
Windows/2000, Linux, and SUN.
NOTES:
- Platform specific setup:
o SUN: Native STL is required for ISO/ANSI setup.
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
--------------
See release notes for Geant4 4.0.
5. Compiler Specific Problems
-----------------------------
o Linux Red Hat 7.X, gcc-2.96.
- The default compiler distributed by Red Hat since release 7.0 is
NOT supported and not considered reliable for running a Geant4-based
application. In more than one test case, binaries produced by gcc-2.96
have shown incorrect behavior, either due to wrong order of
initialisation of static data in memory or to bugs in the system
iostream classes, problems which apparently have all been solved in
more recent versions of the compiler (3.X series).
For information, gcc-2.96 is a compiler that has never been
officially released, nor supported by the GNU team itself and is not
considered reliable by the authors (for more information, see also
http://gcc.gnu.org/gcc-2.96.html).
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://wwwinfo.cern.ch/asd/cgi-bin/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.