Geant4 6.0 Release Notes
The code and binary libraries for the supported systems are available
through our Source Code Web page.
Please refer to the
Geant4
User Documentation for further information about using Geant4.
Contents
- Supported and Tested Platforms
- AIDA and CLHEP
- Compiler Specific Problems
- Known Run-Time Problems
- Compilation Warnings
- Known Run-Time Warnings
- Major items for migration of user code
- Detailed list of changes and fixes
1. Supported and Tested Platforms
Official platforms:
- SUN Solaris 5.8, C++ CC-5.4 Patch 111715-02.
- Linux, gcc 2.95.2, gcc 3.2.
This configuration was tested with the RedHat 7.3 distribution,
versions of Geant4 have also been compiled successfully on other
Linux distributions, like Debian, Suse or more recent RedHat systems.
The default RedHat compiler gcc-2.96 distributed in RedHat 7.X is NOT
supported. It has been verified that it produces incorrect binaries,
therefore is not reliable. See also note below.
- Windows/2000 and CygWin Tools with: Visual C++ 6.0 Service Pack 5
More verified configurations:
- SUN Solaris 5.8, C++ CC-5.5.
- Linux, gcc 3.3.2.
- Windows/XP and CygWin Tools, .NET Visual Studio 2003 C++ 7.1
Platforms configured but not tested and not supported:
- DEC V4.0, cxx C++ V6.1-027
- HP 10.20, aCC C++ B3910B A.01.23
- SGI V6.5.5, CC 7.2.1
- AIX 4.3.2, xlC 6.0
- MacOS 10.2, gcc 2.95.2 / gcc-3.2
2. AIDA and CLHEP
Geant4 6.0 requires the installation
of CLHEP.
Tests have been performed with CLHEP-1.8.1.0.
Geant4 6.0 examples with histogramming cowork with AIDA 3
implementations. These include:
AIDA headers can be downloaded from:
http://aida.freehep.org
3. Compiler Specific Problems
- 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).
4. 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.
5. Compilation Warnings
There may be compilation warnings on some platforms. We do not believe
that any will lead to incorrect run-time behaviour.
6. Known Run-Time Warnings
The following messages can be written to error output while tracking.
We believe none give rise to incorrect behaviour.
G4PropagateInField: Warning: Particle is looping
- tracking in field will be stopped.
It has performed 1000 steps in Field while a maximum of 1000
are allowed.
7. Major items for migration of user code
Data sets
- The new data sets for low-energy EM processes G4EMLOW2.3
is required for applications making use of such processes.
Geometry
- In G4VPhysicalVolume it is no longer possible to retrieve the
pointer to the physical mother volume. The related accessor
declared obsolete since release 4.1, has been removed in this release.
To properly access information about the current physical volume or
its mother physical volume during the navigation, it is now required to
adopt touchables through the pre/post-step point.
Examples on how to do this are provided in the
FAQ page
- Inherited user-defined physical volumes will have to adapt to the
new interface by removing the method Setup(), now no longer
required.
- A revision of methods in G4Navigator has taken place, some
obsolete methods not used and available in the public interface have been
removed, others originally meant for internal use have been moved
to protected (see notes for details).
LocateGlobalPointAndSetup(p,v,history) has been renamed to
ResetHistoryAndLocate(p,v,history).
- A revision of the inclusion of header files has been done in all
geometry modules. This may require explicit inclusion of headers
in the client code.
- STEP and STEPinterface modules have been archived
and are no longer available in this release.
- Internal modules in the geometry have been reorganised. External
frameworks taking into account the internal structure of the Geant4
modules will have to be adapted to the new configuration (see
notes for the details).
Magnetic Field
- The accuracy parameters EpsilonMin and EpsilonMax
(for the relative integration accuracy of momentum, energy etc in a
sub-step) have been moved from G4PropagatorInField to
G4FieldManager, enabling different values.
Default values have changed, in particular:
- EpsilonMin to 0.001 (from 0.05) for
better energy / momentum integration.
- MaxLoopCount to 1,000 (from 10,000)
to kill looping tracks.
- In G4PropagatorInField the methods GetDeltaIntersection(),
GetDeltaOneStep() and their corresponding Set methods
including SetAccuraciesWithDeltaOneStep(), will become obsolete
in G4PropagatorInField at the next major release.
These quantities are properties of G4FieldManager.
- Electric and electromagnetic fields must have their chord finder and
equation of motion initialised directly. See the example in
examples/extended/field/field02.
Electromagnetic physics
- Standard electromagnetic processes now adopt a new design based on
a model approach for energy loss and multiple scattering.
User interfaces are maintained unmodified. However, the old process
implementations (frozen at the release 5.2 versions) are still available
as classes with "52" postfix to their name.
- The class G4ionIonisation is now assumed to be used for
simulation of the energy loss of GenericIons.
Hadronic physics
- The interface for registration of cross-sections has been changed.
Cross-sections can now be registered directly with the process as
follows:
aHadronicProcess.AddDataSet(myFavoriteDataSetPointer);
- Exception handling is enabled and used to percolate up the calling
stack and get more information as to what was the initial condition
of a particular reaction.
- A design iteration of the implementation frameworks to enable biasing,
and decouple from G4ParticleChange has been done; also in view
of future provisions of a user hook for inspection of the initial and
final states of hadronic interactions.
Run
- Some mandatory kernel functionalities of the run-manager have been
grouped in a new G4RunManagerKernel class so that advanced users who
have their own run manager can easily use key functions of the Geant4
kernel.
Visualization
- A new command, /vis/scene/endOfRunAction, has been implemented.
The default behaviour is "refresh". In the case when
endOfEventAction is "accumulate", it causes systems requiring
post-processing, such as DAWN, or file-based systems, such as DAWNFILE
and HepRep, to show the view (equivalent to /vis/viewer/update)
at the end of run and screen-based systems, such as OpenGL, to clear the
tracks. hits, etc., at the start of the next run. Usually this is the
desired behaviour.
The user will find that it is no longer needed to issue
/vis/viewer/update (or /vis/viewer/flush) at the end
of a run. To revert to the old behaviour, one should issue the command
/vis/scene/endOfRunAction accumulate.
- The OPACS graphics driver has been removed since that graphics
system has been superseded by
OpenScientist.
- A new HepRep driver has been added, producing files suitable for viewing
with the WIRED event display (or
other HepRep clients).
The previous HepRep driver that produced HepRep version 1 files
from /vis/open HepRepFile is still supported.
But a new driver producing HepRep version 2 files is now available
from /vis/open HepRepXML.
The newer HepRep format allows the WIRED event display to give you greater
control over visibility of various event and detector components.
It will also set the stage for many improvements to come in later versions
of WIRED (such as the ability to edit and save attribute changes from the
event display client and have these changes apply to subsequent Geant4
images that one reads, and the ability to adjust visibility based on cuts
on attributes such as energy and momentum).
/vis/open HepRepXML provides the following other additional
benefits over /vis/open HepRepFile:
- More compact files (by better hierarchical handling of repeated
attributes).
- Ability to save individual events directly to gzipped files.
- Ability to save multiple events to a single zip file.
For details, see the README in $G4INSTALL/source/visualization/HepRep.
HepRep examples are included in the $G4INSTALL/examples/novice/N03
and in $G4INSTALL/examples/extended/analysis/A01.
A tutorial
on HepRep and on WIRED for Geant4 users is also available.
8. Detailed list of changes and fixes
These are the main new features/fixes included in this release since the
last patched public release (for the detailed list of fixes/additions,
please refer to the related History files provided in most packages):
Configuration
- Added entry for new geometry modules, particles/utils,
processes/cuts, digits_hits and new hadronic
modules.
- Removed setup for STEP and OPACS, now archived.
- Brought Configure installation script up-to-date.
Digitization & Hits
- Imported files from directory digits+hits and changed name of
compound library to 'G4digits_hits'.
Event
- Design iteration implementing modular run-manager:
- G4EventManager now toggles the application states between
'G4State_GeomClosed' and 'G4State_EventProc'.
- New entry methods G4EventManager::ProcessOneEvent() are
introduced:
- taking HepMC event object instead of G4Event
object.
- taking G4TrackVector object.
- Added mechanism for merging more than one kind of primaries
(HepMC and G4PrimaryVertex or G4TrackVector
and G4PrimaryVertex).
- G4HepMCInterface::HepMC2G4() becomes a static service
method.
- G4HepMCInterface::CheckVertexInsideWorld() is moved to
G4VPrimaryGenerator and also becomes a static service
method.
- Changed the trackID numbering scheme for 'PostposedToNextEvent'
tracks. They now use negative trackID.
- Keep links between pre-assigned decay products and corresponding
primary particle. Due to this, proper track-ID is assigned to
G4PrimaryParticle objects of pre-assigned decays.
- Added treatment of proper decay time for preassigned decay
products.
- Correctly set in G4DynamicParticle the pointer to the
corresponding primary particle.
- Introduced G4StackChecker class, utility class to be used
from the user stacking action for enhancing the verbosity on tracks
being pushed into the stack.
- Introduced G4VUserEventInformation class. Objects of this
class can be associated by the user to G4Event.
- Introduced new classes G4VUserPrimaryVertexInformation and
G4VUserPrimaryParticleInformation, which can be associated
by the user to G4PrimaryVertex and G4PrimaryParticle
respectively.
- G4GeneralParticleSource:
- Increased the array size from 256 to 1024 for user defined
histograms.
- Bug fix: make sure the SideRefVec(1/2/3) are unit
vectors.
- G4ParticleGun, G4ParticleGunMessenger:
added protection against shooting shortlived particles.
Electromagnetic Processes (Low-energy)
- New models of Bremsstrahlung angular distribution (2BN, 2BS).
- New processes for electrons and positrons according to Penelope models.
- Improved user interface to select Bremsstrahlung angular
distribution models.
- Performance optimisation in Penelope Bremsstrahlung and minor fixes.
- Bug fixes in G4hLowEnergyIonisation and
G4AtomicDeexcitation.
Electromagnetic Processes (Standard)
- Replaced standard processes with new 'STD' processes implementing
the new design based on model approach for energy loss and multiple
scattering.
- No changes to interfaces. Old energy loss processes are frozen
at the release 5.2 versions. They are stored in classes with
"52" postfix to the name.
- Substituted G4Material by G4MaterialCutsCouple in
dEdx and CrossSection methods. Now throwing warning
for obsolete interfaces which uses G4Material instead of
G4MaterialCutsCouple.
- Added methods to define energy range for multiple-scattering table
and to change the energy range of the model.
- Added PAI model processes and minor change of interface to
G4EmFluctuationModel for PAI development.
- Updated default settings for processes.
- Tuning for tail of the angular distribution.
- Ionisation:
- The class G4ionIonisation is now assumed to be used for
simulation of the energy loss of GenericIons.
Effective charge approach is introduced to G4ionIonisation.
- Ion fluctuation models have been updated.
- Updated energy intervals for ionisation models.
- Removed forced verbose=0 for G4MuIonisation.
- Multiple-scattering:
- New Tuning of multiple scattering model
- Fixed problems for width and tails of angular distributions.
- Fixed numerical error for small stepsize in G4MscModel (z sampling).
- Bugfix in G4VMultipleScattering::AlongStepDoIt() and added
check truestep <= range in G4MscModel.
- Set highKinEnergy back to 100 TeV for multiple scattering.
- Set number of table bins to 120 for multiple scattering.
- Pair-production:
- Changed secondary particle from e- to e+ for G4MuPairProduction
to avoid problems with custom physics lists.
- Fixes in G4MuPairProductionModel:
- 2*xi in ComputeDDMicroscopicCrossSection().
- 8 integration points in ComputeDMicroscopicCrossSection().
- Energy-loss:
- Updated initialization of energy loss processes.
- Updated logic of the messenger to provide
independence on command sequence.
- Fixed cases of negative energy loss.
- Added new method DefineForRegion() to G4VEmModel.
- Updated logic of BuildPhysicsTable() to take into account
deactivated processes
- Increased verbosity for store/retrieve tables.
- Fixed wrong deletion and error in SetRangeTable().
- Fixed bug and updated printout in RetrievePhysicsTable().
- Fixed crash for case of inactivated ionisation and bremsstrahlung.
- Fixed problem of rounding of double in G4UniversalFluctuations.
- Fixed precision problems for high energy (PeV) particles.
General Processes, Parameterisation, Cuts, Decay, Optical
- Introduced optical process for wavelength shifting, G4OpWLS.
- G4OpBoundaryProcess: now adopting G4SurfaceProperty from
materials.
- New sub-category cuts: moved classes from
particles/management
- Fixed bugs in G4VRangeToEnergyConverter (and derived class).
- Revised error messages in retreiving G4ProductionCutsTable.
- Added verboseLevel in G4ProductionCutsTable.
- Use G4ExceptionSeverity for all G4Exception cases.
- G4FastTrack: use G4Navigator::CreateTouchableHistoryHandle()
instead of CreateTouchableHistory() in method
FRecordsAffineTransformation().
Geometry
- Logical reorganisation and restructure of modules:
- Added new module navigation for navigation-releated classes.
- Removed module verification and merged classes in navigation.
- Archived solids/STEP and solids/STEPinterface modules.
- Migrated calls to G4Exception to new scheme.
- Code cleanup and header inclusions review.
- Divisions
- First implementation of volume divisions for G4Box,
G4Tubs, G4Cons, G4Para, G4Trd,
G4Polycone, G4Polyhedra along the relevant axes.
- Importance biasing
- First implementation of weight-window biasing technique.
- Removed obsolete class G4ImportanceFinder.
- Management
- Moved classes to geometry/volumes:
G4AssemblyVolume, G4PVParameterised,
G4PVPlacement, G4PVReplica.
- Moved classes to new module geometry/navigation:
G4DrawVoxels.
- Imported files from geometry/volumes:
G4BlockingList, G4IdentityTrajectoryFilter,
G4VCurvedTrajectoryFilter.
- Introduced new abstract class G4VUserRegionInformation
for storing user information associated with a G4Region.
- G4VPhysicalVolume:
- Removed pointer to mother physical volume and related accessor
methods: SetMother()/GetMother().
- Removed pure virtual method Setup(G4VPhysicalVolume*),
no longer necessary. Subclasses will require modification as
well.
- G4LogicalVolume:
- Updated/fixed initialisation of data and fast-simulation manager
according to above changes.
- G4SmartVoxelHeader:
- Cleared usage of PV->Setup(), according to above changes.
- G4VPVParameterisation:
- Added G4Orb, G4Polycone and G4Polyhedra
to list of possible parameterisations by dimension.
- G4LogicalSurface:
- Modified to use generic G4SurfaceProperty.
- Navigation
- Imported classes from volumes, and management
modules:
G4AuxiliaryNavServices, G4GeometryMessenger, G4Navigator,
G4NormalNavigation, G4ParameterisedNavigation, G4PropagatorInField,
G4ReplicaNavigation, G4TransportationManager, G4VoxelNavigation,
G4DrawVoxels.
- Imported all classes from verification module.
- Cleared call to PV->Setup() according to changes in
G4VPhysicalVolume. Affected classes:
G4Navigator, G4ParameterisedNavigation, G4VoxelNavigation,
G4ReplicaNavigation, G4NormalNavigation.
- G4DrawVoxels:
- Retrieve top transformation through touchable
history in method DrawVoxels(). Removed old method
GetAbsoluteTransformation().
- G4GeomTestErrorList:
- Retrieve top transformation through touchable
history in method FindGlobalCoordinateSystem().
- G4PropagatorInField:
- Added option to turn On/Off the optimisation of using the safety
in calling G4Navigator.
- Pass safety sphere information to G4ChordFinder for
optimisation.
- Implemented move of EpsilonMin/Max to G4FieldManager.
- Added boolean argument to method LocateIntersectionPoint()
to return true if the endpoint has been recalculated.
This fixes a problem that can occasionally cause the skipping of a
volume boundary in the case when a re-integration was done near a
boundary. Changed ComputeStep() to accept above
recalculation.
- New method GetVerboseLevel(), deprecating Verbose().
- Fixed LocateIntersectionPoint() for long-standing error.
A section of the chord was not considered in use case where
a previous chord at first appeared to have an intersection,
but did not. Refined re-setting of finalSection
(Endpoint recalculation is returned only for final
section).
- Fixed ReEstimateEndPoint() which ignored return code of
AccurateAdvance() and moved to short end-point for long
requests. It now leaves the endpoint unchanged, when it cannot
improve it.
- G4Navigator - methods review:
- Made relevant methods virtual to allow specialization of
navigators:
ComputeStep(p,v), ResetHierarchyAndLocate(p,v,h), SetupHierarchy(),
LocateGlobalPointWithinVolume(p), ComputeSafety(p),
LocateGlobalPointAndUpdateTouchableHandle(p,v,t), ResetState(),
CreateTouchableHistoryHandle(), GetLocalExitNormal().
- Removed obsolete methods:
IsExitNormalValid(), GetLocalExitNormal().
- Renamed method LocateGlobalPointAndSetup(p,v,history) to
ResetHistoryAndLocate(p,v,history).
- Moved to protected methods:
GetCurrentLocalCoordinate(), ComputeLocalPoint(), ComputeLocalAxis(),
NetTranslation(), NetRotation(), EnteredDaughterVolume().
- Fixed consistency of inline/not-inline implementations of methods.
- G4TransportationManager:
- Removed initialisation of allocators for navigation levels,
now moved to "volumes" module, where they should belong, in
G4TouchableHistory.
- Solids
- Archived solids/STEP and solids/STEPinterface modules.
- Boolean solids:
- Fixes to default safety to zero in DistIn/Out(p) methods.
- G4ReflectedSolid: fixed trivial leak in constructor.
- CSG solids:
- Fixes to default safety to zero in DistIn/Out(p) methods.
- New shape G4Orb.
- G4Sphere:
- Fix in Inside() for Phi_start
(0.5 kAngTol < phi < Phi_start).
- Revision of algorithm for Phi sections in method
Inside().
- Specific solids:
- G4Polycone, G4Polyhedra:
- Added accessors to original_parameters for
G4Polycone and G4Polyhedra.
Made G4PolyconeHistorical and G4PolyhedraHistorical
classes visible in global scope.
- Added protections in constructors for invalid constructs with
no contiguous segments in Z planes as input.
- Added SetOriginalParameters() method.
- G4Trap:
- Fixed initialisation of planes in default constructor.
- Volumes
- Moved classes to geometry/management:
G4BlockingList, G4IdentityTrajectoryFilter,
G4VCurvedTrajectoryFilter.
- Moved classes to new module geometry/navigation:
G4AuxiliaryNavServices, G4GeometryMessenger, G4Navigator,
G4NormalNavigation, G4ParameterisedNavigation, G4PropagatorInField,
G4ReplicaNavigation, G4TransportationManager, G4VoxelNavigation.
- Imported files from geometry/management:
G4AssemblyVolume, G4PVParameterised, G4PVPlacement,
G4PVReplica.
- Removed implementation of method Setup() and updated
initialisation of data, according to changes in the base class
G4VPhysicalVolume. Affected classes:
G4PVPlacement, G4PVReplica.
- Added protection to placement and replica constructors for cases
where a volume is placed inside itself.
- G4TouchableHistory:
- Added initialisation of allocators for navigation levels,
moved from G4TransportationManager, where they were
introduced as workaround for solving static initialisation a
long time ago.
- G4NavigationHistory:
- Fixed redundant calls and initialisations.
- G4NavigationLevel, G4NavigationLevelRep:
- Fixed implementation of operator=() for inlining.
- G4LogicalBorderSurface, G4LogicalSkinSurface:
- Now using generic G4SurfaceProperty.
Global
- Added method ExistPhysicsTable() to G4PhysicsTable.
- G4UnitsTable: fixed units initialisation and deletion of objects
in constructors.
Graphical representations
- Introduced G4Colour <-> G4ThreeVector conversion
operators.
Hadronic Processes
- Internal restructuring of modules and physical architecture to
flatten the package hierarchy, and dissolve bloated packages:
- Moved photolepton_hadron from top-level directory
processes to hadronic/models
- Removed modules:
models/radiative_decay, models/generator/*
- New modules
:
models/binary_cascade, models/de_excitation/evaporation,
models/de_excitation/fermi_breakup, models/de_excitation/fission,
models/de_excitation/gem_evaporation, models/de_excitation/handler,
models/de_excitation/management, models/de_excitation/multifragmentation,
models/de_excitation/photon_evaporation, models/de_excitation/util,
models/im_r_matrix, models/management, models/parton_string/diffraction,
models/photolepton_hadron/muon_nuclear, models/parton_string/hadronization,
models/parton_string/management, models/parton_string/qgsm,
models/pre_equilibrium/exciton_model, models/radioactive_decay,
models/theo_high_energy, models/util
- Updated GNUmakefiles accordingly.
- Introduction of new G4Exception syntax at the top level catch of the
C++ exception roll-back.
- Cleared many compilation warnings.
- Systematic scoping of std name-space.
- cross_sections
- Bug fix in electro-nuclear cross-sections:
- y now calculated correctly
- photon cross-section integration fixed
- Electro-nuclear reactions extended beyond 50 GeV
- Added ion reaction cross-section parameterizations from
Shiver, Kox, and most prominently Shen (see physics reference
manual for details).
- Bug fix in Tripathi's formula to do with rounding of atomic mass
numbers.
- management
- Isotope wise final state generation with a A^(2/3) approximation for
the cross-section. Note: Design iteration of the cross-section classes
is scheduled to decouple from G4Element, so this can be done
more precisely.
- Catching all exception thrown in context, and forwarding to
G4Exception.
- Cross-section biasing added for gamma and electro nuclear reactions.
- Leading particle biasing added for the general case.
- Design iteration to simplify the API for cross-section registration
with hadronic processes.
- Re-implementation of the energy-range manager logic using STL.
- Model registration is now in terms of energy/nucleon for ion induced
reactions.
- Migration to a generic delete template.
- Correction in logic of element selection for final state generation
for materials with many elements.
- Added automatic verboseness in case of unphysical conditions.
- processes
- Design iteration to remove a few un-needed methods in Capture,
elastic and fission process.
- Adaption to the new framework behavior.
- stopping
- Memory leaks fixed in AntiNeutronAnnihilation and
AntiProtonAnnihilation.
- util
- Corrected electronic charge-state treatment for residual nucleus.
- Relaxing fixed constraint on the number of particles to result from a
inelastic interactions.
- Added exception classes for terminal and re-entrant exceptions.
- Added utility methods and functors for treating STL collections of
pointers, and issues relating to rounding in conversion from double
to integer.
- Added a template meta program to enable compile-time checking of
inheritance of template arguments.
- models/binary_cascade
- Added light ion reactions.
- Optimized transition between cascade and pre-equilibrium decay.
- Design iteration to enable generic action classes in the imaginary
part of the R-matrix.
- Minor fixes and corrections.
- models/cascade
- Corrections for scattering on hydrogen and Iron.
- Now applicable up to 10 GeV particle energy.
- models/chiral_inv_phase_space
- The final State interaction is used to fix the Under Mass
Shell problems.
- The robustness of the code is greatly increased, in particular for
anti-proton annihilation at rest.
- Converted static Data Base of Particle Decays to a Singleton.
This changes the rules of application of G4QCHIPSWorld in stand
alone programs.
- models/de_excitation
- Fermi breakup redesign.
- New algorithm for nuclear splitting in Fermi breakup.
- Improved sampling of energies in the micro-canonical phase space.
- Added some protections to multi fragmentation.
- Added protection to fission probability.
- Corrected algorithm in excitation handler to take into account
what can't be de-excited by Fermi breakup.
- models/high_energy
- Adapted to the new framework behavior.
- models/im_r_matrix
- Included pion induced reactions (up to 1.5 GeV).
- Included S-wave absorption for pions.
- Extended applicability for nucleon induced reactions to 8 GeV.
- models/leading_particle
- Adaption to the new framework behavior.
- models/low_energy
- Removed an internal limitation on the number of secondaries
created in inelastic scattering.
- Added protection for negative kinetic energies in elastic scattering
off hydrogen (precision problem), resulting in negative velocities.
- Adaption to the new framework behavior.
- Small improvement in the fission barrier.
- models/neutron_hp
- Added protection of interpolation schemes against invalid conditions.
- Improved sampling of the fission neutron spectrum.
- models/parton_string
- Improved meson splitting behavior in QGS model.
- models/photolepton_hadron
- New directory, imported from processes/photolepton_hadron;
technically adapted to the new framework behavior.
- models/pre_equilibrium
- Bug fix in transition probabilities.
- Several bug fixes in angular distributions.
- Modified switch condition to de-excitation.
- Fixed small memory leaks.
- models/util
- Small correction of strong resonance decay, now taking exact lower
limits for channel openness, in case of final state resonances.
- Correcting decay, so it will work correctly in the presence of
Pauli-blocking.
- Removed calculations performed for conservative programming in
inner loops.
- Introduced tracking momentum in a nucleus.
- Resolved issues related with conversion from double to integer.
Magnetic Field
- G4ChordFinder:
- Made G4ChordFinder a base class
- to enable specialised implementations
- virtual methods: FindNextChord(), PrintStatistics()
- new method AccumulateStatistics() to aid in this.
- Extended arguments of AdvanceChordLimited() and FindNextChord()
adding the current safety sphere (origin, radius), for optimisation.
- Fixed set functions which had side effect (on first fraction).
- Set new default value of Accuracy:
- Delta Chord to 0.25 mm (from 3.00 mm).
- Created new class members for parameters used in heuristics:
- fFirstFraction - for first step
- fFractionLast - fraction of last step, if redoing
- fFractionNextEstimate - confidence in step est from chord
- fMultipleRadius - for small radii of curve.
- Added new method to print statistics. Enhanced verbosity to
enable optional printing of statistics in destructor.
- Moved constructors to .cc file.
- Changed fDefaultDeltaChord to a constant member variable.
- Added new class G4ChordFinderSaf (using G4ChordFinder)
for performance optimisation, which adopts safety to create longer chords,
so enabling propagation in fewer steps.
- G4FieldManager:
- Changed default accuracy parameters to better values:
- Epsilon Min Default to 5.0e-5 from 5.0e-7
- Epsilon Max Default to 0.001 from 0.05.
- Increased default accuracy. Changed default values of:
- Delta One Step to 0.010 mm (from 0.25 mm)
- Delta Intersection to 0.001 mm (from 0.10 mm).
- Use field's DoesFieldChangesEnergy() method to set relevant member
variables.
- Added methods Get/Set Min/MaximumEpsilonStep().
- Added fEpsilonMin fEpsilonMax & default to member variables.
Now these can be tailored for different parts of a detector or setup.
- G4Field, G4ElectroMagneticField, G4MagneticField:
- Added virtual method DoesFieldChangeEnergy().
- G4ElectroMagneticField derives from G4Field and
G4MagneticField derives from G4ElectroMagneticField.
- G4MagErrorStepper and derived classes (G4ClassicalRK4,
G4SimpleRunge, G4ExplicitEuler, G4ImplicitEuler,
G4SimpleHeum):
Constructors take G4EquationOfMotion in place of a
G4Mag_EqRhs as applicable to all types of equations (not just
ones for magnetic field).
- G4EqMagElectricField now derives from G4EquationOfMotion.
Materials
- Added base class G4SurfaceProperty.
- G4OpticalSurface: now inheriting from G4SurfaceProperty.
Particles
- Moved classes related to cuts to new processes/cuts
subcategory.
- Removed obsolete cut methods.
- Added new sub-module utils.
- Fixed NULL type pointer initialisation in
G4DynamicParticle to G4PrimaryParticle.
- Fixed anti-particle PDG code for Gluon.
Run, Intercoms and Interfaces
- G4RunManager:
- Design iteration implementing modular run-manager
- Introduced G4RunManagerKernel class and simplified
G4RunManager implementation.
- Introduced PhysicsHasBeenModified() method in
G4RunManagerKernel class and related wrapper methods in
G4RunManager and G4RunMessenger.
- G4VUserPhysicsList:
- Cleanup error messages for store/retrieving physics table.
- Removed dedicated treatment of anti-proton, neutron and anti-neutron
from BuildPhysicsTable().
- Fixed typo for 'neutron'.
- Interfaces
- Archived obsolete OPACS module and cleared build setup.
- G4Xt: removed unused and commented code.
Tracking & Track
- G4TrackingManager:
- Moved invocation of PreUserTrackingAction()
after SetInitialStep(), so that geometrical infomation
is available at PreUserTrackingAction().
- G4SteppingManager:
- Fixed problem in setting pointer to the user stepping action.
- Renamed method LocateGlobalPointAndSetup(p,v,history)
to ResetHistoryAndLocate(p,v,history) according to changes
in G4Navigator.
- Fixed problem of setting default momentum direction for stoppped
particle in G4ParticleChange.
Transportation
- Introduced first implementation of weight-window biasing technique.
- Migrated G4UserSpecialCuts to model variant of EM physics.
- Adopt new G4Exception scheme and header inclusions and code
cleanup.
Visualization
- New HepRep XML driver for HepRep Version 2.
- RayTracer
- Introduced G4VRTScanner and its default concrete
implementation, G4RTSimpleScanner. It controls the
shooting order of rays.
- Added new command /vis/rayTracer/backgroundColour.
- OpenGL: cosmetic change to regularise names.
- Removed obsolete OPACS module.
- Tree: improved printing.
- Commands:
- Added command /vis/scene/endOfRunAction.
- Improved guidance for /vis/scene/notifyHandlers.
- Bug fix in /vis/scene/add/volume:
requestedDepthOfDescent now correctly propagated to
world volume.
- management
- G4VisManager:
- Improved handling of auto refresh at end of event and run.
- Removed PrintAllGraphicsSystems(), PrintInstalledGraphicsSystems()
methods.
- Bug fix in EndOfEvent().
- G4VisCommandsScene: improved endOfEventAction and
improved guidance.
- Change initialisation of G4VSceneHandler so that there is
always a clear on first drawing.
- G4VRML2SceneHandlerFunc: changed const char* pv_name
to G4String pv_name.
- Patch in G4OpenInventorSceneHandler::PreAddThis() to cope with
changes introduced in G4VPhysicalVolume where pointer to mother
physical-volume is no longer available.
- G4PhysicalVolumeModel::CalculateExtent() always searches complete
hierarchy.
- Introduced Doxygen documentation for management and OpenGL.
Environments
- Added module MOMO with Java archives for UI tools from Naruto.
Includes new version of MOMO with XML import/export abilities.
- Removed OPACS setup.
Hadronic physics-lists
- New module hadronic_lists of physics lists for hadronic physics
lists by use case.
The module can only be built and installed separately
in addition to the standard libraries installation.
Data
- Updated data-sets for low-energy electro-magnetic processes
(G4EMLOW2.3).
Examples
- Fixed pedantic compilation warnings on Linux-g++.
- Updated reference outputs.
- Removed OPACS driver from vis-managers where needed.
- advanced
- brachytherapy
- Implemented migration to cuts by region.
- Updates to geometry and sources.
- composite_calorimeter
- Removed hadronics physics-lists. Now using default setup
provided in $G4INSTALL/hadronic_lists.
- Removed GetCopyNo() and replaced it with GetReplicaNumber()
using G4TouchableHistory.
- Enabled possibility of running the simulation in HCal alone or
HCal+ECal mode with the correct B-field + a few small bug corrections.
Changed also the default stepper (in magnetic field).
- gammaray_telescope
- Updates to sensitive detectors.
- lAr_calorimeter
- Implemented migration to cuts by region.
- Fixed compilation errors if histograms disabled.
- Rich
- Fixed compilation errors and warnings.
- Tiara
- Removed hadronics physics-lists. Now using default setup
provided in hadronic_lists module.
- Use decays for all particles.
- underground_physics
- Migrated to new hadronic processes for release 6.0.
- Implemented migration to cuts by region.
- extended
- analysis/A01
- Renewed test to work with latest developments in AIDA 3.
- biasing
- Archived some obsolete files.
- Extended to included new weight-window biasing technique.
- electromagnetic/TestEm1
- General revision. Renamed classes.
- Migration to model variant of EM physics.
- Added printout of total energy deposit.
- Added process G4eBremsstrahlungCMS.
- G4NOHIST replaced by G4ANALYSIS_USE.
- electromagnetic/TestEm2
- General revision. Renamed classes.
- Migration to model variant of EM physics.
- G4NOHIST replaced by G4ANALYSIS_USE.
- electromagnetic/TestEm3
- General revision. Renamed classes.
- Migration to model variant of EM physics.
- Added estimation of the mean energy leaving each absorber.
- electromagnetic/TestEm4
- General revision. Renamed classes.
- Substituted obsolete interface to cut energy range.
- Migration to model variant of EM physics.
- G4NOHIST replaced by G4ANALYSIS_USE.
- electromagnetic/TestEm5
- General revision. Renamed classes.
- Suppressed sensitive detector and hits.
- EmPhysicsList: use SetFacRange() in multiple
scattering.
- new classes HistoManager, TrackingAction,
StackingAction in order to book and fill histograms.
- new UI command setHisto to control the binning of
histograms.
- StackingAction and its messenger: added possibility to kill
secondaries.
- DetectorConstruction::DefineMaterials() invoked in
constructor.
- Updated and renamed macros according to authors of experimental
results.
- Migration to model variant of EM physics.
- G4NOHIST replaced by G4ANALYSIS_USE.
- electromagnetic/TestEm6
- Use SetMaterial() in constructor.
- Updated all macros for /run/initialize.
- G4NOHIST replaced by G4ANALYSIS_USE.
- electromagnetic/TestEm7
- Updated hadronic physics according to new hadronics_lists module.
- Updated BinaryCascade; added light ion interactions.
- Migration to model variant of EM physics.
- G4NOHIST replaced by G4ANALYSIS_USE.
- electromagnetic/TestEm8
- Upgraded PAI model, renewed test.
- Removed obsolete classes.
- Updated histogramming to work with AIDA 3.
- electromagnetic/TestEm9
- New example implementing a crystal calorimeter with
demonstration of definition of different detector regions for cuts.
- electromagnetic/TestEm10
- Removed obsolete interfaces.
- eventgenerator
- Brought up-to-date with original novice examples.
- field
- Open geometry before clearing stores in
DetectorConstruction class.
- BlineTracer
- New plug-in module for visualization of magnetic-field lines.
- field01
- Renamed F01ElectroMagneticField into F01FieldSetup.
- Deleted forgotten inheritance from G4MagneticField.
- New output format in F01SteppingVerbose.
- Input macro: different energies, 1 track each in place
of 100 events of 1 energy.
- field02
- Revised to work with new developments in magnetic-field:
creation of chord finder for electric field is now explicit.
- Created helper class F02ElectricFieldSetup, using nearly all of
F02ElectroMagneticField, but not being a field.
- field03
- Renamed F03ElectroMagneticField into F03FieldSetup.
- geometry
- gdml
- Updated to adopt XercesC 2.x family.
- medical/DICOM
- parallel
- Brought up-to-date with original novice examples.
novice
- N01
- Cosmetics in material definitions.
- N02
- Cosmetics in material definitions.
- PhysicsList: AddProcess(Bremsstrahlung,-1,3,3) ..etc..
- N03
- Suppressed sensitive detector and hits.
- Suppressed specific code for curved trajectories.
- DetectorConstruction::DefineMaterials() invoked in
constructor.
- PhysicsList: AddProcess(Bremsstrahlung,-1,3,3) ..etc..
- Removed OPACS script from visTutor. renamed scripts 6/7/8/9 to
5/6/7/8 respectively. Added scripts to gui.mac.
- Removed extraneous flushes from visTutor/heprep.mac to
match new endOfRunAction behavior and cleaned up vis.mac.
- N04
- DetectorConstruction::DefineMaterials() invoked in constructor.
- Physics-list: updated and AddProcess(Bremsstrahlung,-1,3,3) ..etc..
- Cosmetics in material definitions.
- N05
- Added protection for negative proposed step in
ExN05MinEkineCuts.
- N06
- PhysicsList: AddProcess(Bremsstrahlung,-1,3,3) ..etc..
- DetectorConstruction: use G4SurfaceProperty.
- Cosmetics in material definitions.
- N07
- PhysicsList: AddProcess(Bremsstrahlung,-1,3,3) ..etc..