Geant4 9.6 Release Notes
The code and binary libraries for the supported systems are available
through our Source
Code Web page.
We are grateful for the efforts of Geant4 users who have provided
detailed feedback or comprehensive reports of issues.
We thank in particular those who have contributed corrections,
improvements or developments included in this release.
Please refer to the
Geant4
User Documentation for further information about using Geant4.
Contents
- Supported and Tested Platforms
- Supported CLHEP version
- Items for migration of the user code
- New Developments and Capabilities
- Expected effects on physics and performance
- Known Run-Time Problems and Limitations
- Compilation Warnings
- Geant4 Software License
- Detailed list of changes and fixes
1. Supported and Tested Platforms
Officially tested platforms:
- Linux, gcc-4.1.2 and gcc-4.3.x.
Tested on 64 bit architectures (Intel or AMD) with
Scientific Linux CERN 5 (SLC5) (based on Red Hat Linux Enterprise 5).
- MacOSX 10.8 with gcc-4.2.1 and clang-3.1
- Windows7 with Visual C++ 10.0 (Visual Studio 2010)
More verified configurations (64 bits):
- Linux, gcc-4.7.2
- Linux, Intel-icc 13.0
- AIX 5.3, 6.1, xlC 10.1
- MacOSX 10.7 with gcc-4.2.1
- Windows/XP with Visual C++ 9.0 (Visual Studio 2008)
Platforms configured but neither tested nor supported:
- DEC V4.0, cxx C++ V6.1-027
- HP 10.20, aCC C++ B3910B A.01.23
- MacOSX 10.4, gcc-3.3
- MacOSX 10.5, gcc-4.0.1
- MacOSX 10.6, gcc-4.2.1
- SGI V6.5.5, CC 7.2.1
- SUN Solaris 5.8, C++ CC-5.5.
2. Supported CLHEP version
This release of Geant4 has been verified with
CLHEP, release 2.1.3.1.
Use of a different CLHEP version may cause incorrect simulation results.
NOTE: an internal module of the relevant CLHEP classes is provided and can be
used as alternative to an external CLHEP library installation.
3. Items for migration of the user code
Listed here is some relevant information on developments included in this
release, some of which may require migrations (mainly for users of advanced
Geant4 features) in order to upgrade from release 9.5 to release 9.6.
Note that for all users a full re-installation of libraries (or a full
re-compilation) and a re-compilation of user applications is required.
Electromagnetic and optical physics
- EM physics (both standard and low-energy) now require
the G4EMLOW data files (version 6.32 is needed).
- Obsolete methods Get/SetModel() have been removed from
optical processes, requiring an update (i.e. removal of such calls) for
those custom physics lists and physics configurations in which optical
boundary process is
defined.
Hadronic physics
- Hadronic physics now require new G4SAIDDATA data files.
Physics Lists
- Physics lists which depend on the CHIPS package or on the parameterized
(Gheisha-like) models (LEP/HEP) are deprecated and will be removed in
Geant4 10.
Data Sets
This release introduces new data set versions.
Please see the corresponding details in
Section 10 of this document.
- New data set versions: G4EMLOW6.32, G4NDL4.2, G4NEUTRONXS1.2,
RadioactiveDecay3.6, G4SAIDDATA1.1.
4. New Developments and Capabilities
General
- Full event reproducibility is provided in simulations with most physics
lists; this allows to restart a simulation from an intermediate event
and obtain exactly the same results, if the user specifies or restores
the status of the pseudo random generator at the beginning of the event.
This strict event reproducibility is achieved in all physics models, with
two exceptions:
CHIPS stopping and neutron HP. This means that event reproducibility is
valid for the majority of the physics lists, including FTFP_BERT,
QGSP_BERT and QGSP_FTFP_BERT.
Geometry
- A new optimized implementation of G4TessellatedSolid provides
substantial CPU performance boost and reduced memory
footprint. Scaling of CPU time with increased complexity (number of facets)
of the shapes being defined or imported.
Materials
- For all elements, a vector of G4Isotopes is always created using abundance
values from NIST (in previous Geant4 versions, the vector of isotopes was
created only for NIST materials). As a result it is no longer needed to
define natural composition of isotopes in the user code.
Electromagnetic physics
- WentzelVI multiple scattering model is used by default in all EM physics
lists. For electrons and positrons the WentzelVI model is used only above
100 MeV.
This was done to provide more accurate simulation both small and large
angles of high energy charged particles.
- Sampling of multiple scattering is performed AlongStep, before the
sampling of energy loss (previously multiple scattering was sampled
PostStep, after the energy loss). The physics performance is unchanged.
- New processes for microdosimetry in Silicon for electrons, protons and
ions (G4MuElecElastic, G4MuElecInelastic) and corresponding models
(G4MuElecElasticModel, G4MuElecInelasticModel).
- New Compton scattering model (G4LowEPComptonModel) along with specific
Physics builder (G4EmLowEPPhysics).
- New builder selects the most accurate models now available for each
process; this is G4EmStandardPhysics_option4. Models from both standard
and low-energy options are used.
Hadronic physics
- Hadronic processes now trigger re-sampling of the interaction if
energy/momentum non-conservation limits are exceeded. A warning message
is printed if this occurs.
- New hadron stopping models G4PiMinusAbsorptionBertini,
G4KaonMinusAbsorptionBertini, G4SigmaMinusAbsorptionBertini,
G4AntiProtonAbsorptionFritiof, and G4AntiSigmaPlusAbsorptionFritiof
are added.
- New total cross section sets based on SAID data-base are added.
(They are used for proton, neutron and pion cross-sections on hydrogen
in majority of physics lists.)
- A new option in the nuclear de-excitation module allows
to ignore Doppler broadening for long lived meta-stable isotopes and
provide instead decay at rest. This new feature is activated by the
environment variable
G4AddTimeLimitToPhotonEvaporation
. If
this environment variable is set the momentum balance of the
de-excitation is broken and energy balance is respected.
- A new electro-nuclear interaction model, G4ElectroVDNuclearModel,
was created. It is based on the CHIPS total cross sections, with final
state modeling using the Bertini cascade and FTFP.
- The INCL cascade model (INCL++) was updated and can now handle
heavy-ion collisions.
- HTML files describing hadronic processes, models and cross-sections can
be printed by invoking the ProcessDescription(), ModelDescription()
and CrossSectionDescription() methods, respectively.
Physics Lists
- The model of multiple scattering for electrons and positrons is changed
in all physics lists for HEP applications. Introduced the WentzelVI
model for multiple scattering of e+ and e- above 100 MeV. Below 100 MeV
the Urban95 model is used in the main physics lists (whereas Urban93
is used in EMV or EMX).
- Relativistic gamma conversion model in used in all physics
constructors above 80 GeV.
- New EM physics constructor G4EmStandardPhysics_option4 selects the
most accurate models for each EM process. It combines models from
standard and low-energy sub-packages.
- New model for lepton-nuclear interactions using Bertini and
Fritiof/Pre-compound has been introduced in most physics list.
Only LHEP- and CHIPS-based physics lists still use the
(deprecated) CHIPS model for handling lepton-nuclear interactions.
- Introduced Bertini model for
nuclear capture at rest of pi-, K-, Sigma-, Xi- and Omega- in most
physics lists.
Also use Fritiof/Pre-compound model for anti-proton, anti-Sigma+
and light anti-nucleus capture at rest in the same physics lists.
Only LHEP- and CHIPS-based physics lists are still using the
(deprecated) CHIPS model for handling nuclear capture at rest.
- CHIPS elastic and inelastic cross-sections for protons, neutrons, pions,
kaons, hyperons and anti-baryons have been extracted and moved to the
default module. They can now be selected individually for use in physics
lists.
- Barashenkov-Glauber-Gribov nucleon-nucleus inelastic cross sections
are now used in most physics lists instead of Axen-Wellisch
proton-nucleus and Laidlaw-Wellisch neutron-nucleus inelastic
cross sections.
- Glauber-Gribov nucleus-nucleus inelastic cross sections are now used
in most physics lists instead of Shen (which in turn replaced Tripathi)
cross sections.
- The new physics list FTFP_BERT_HP has been created: it is similar to
FTFP_BERT, but using HP for low-energy neutrons.
- Four new physics lists have been created: QGSP_BERT_95,
QGSP_FTFP_BERT_95, QGSP_BERT_95XS and QGSP_FTFP_BERT_95XS.
The "95" variants have the same physics models and cross sections
as QGSP_BERT and QGSP_FTFP_BERT, respectively, in Geant4 version 9.5.
The "95XS" variants have the same cross sections as QGSP_BERT and
QGSP_FTFP_BERT, respectively, in Geant4 version 9.5, whereas the
physics models are the same as in Geant4 version 9.6.
These physics lists, which have been created for "backward compatibility"
with the production physics lists used by the experiments, are
deprecated and will be removed in Geant4 10.
FTFP_BERT remains the recommended physics list for high-energy
applications.
Visualization and Interfaces
- /vis/set/colour, lineWidth, textColour, textLayout - new commands to set
view details.
- /vis/scene/add/arrow, arrow2D, line, line2D, logo2D, text2D, date,
frame - new commands to add content to views.
- /vis/scene/activateModel - new command to control trajectory and hit
modeling.
- /vis/viewer/save, copyViewFrom - new commands to save view parameters
and copy them from one view to another.
- Improved OpenGL rendering speed through major re-design of scene and
transient processing. Use new command /vis/ogl/set/eventsDrawInterval
to get even more speed when accumulating multiple events.
- /vis/scene/add/userAction now supports multiple user vis actions.
Where previously one could only have a single user vis action, one can
now register any number of such actions. Each action gets a specific name,
and each can be assigned to any selected scene.
- Added Event ID to trajectory attributes so that in scenes that contain
more than one event, one can tell which trajectory came from which event.
- Improved Qt interface and viewer.
- Improved handling of text.
- Added new OpenInventor option: /vis/open OIXE (in addition to the
previous option, /vis/open OIX). Provides many new capabilities such
as ability to set viewpoints and to fly along a trajectory path.
This is an excellent viewer selection for accelerator studies or other
situations in which it can otherwise be difficult to set appropriate
views.
5. Expected effects on physics and computing performance
Electromagnetic physics
- Compared with Geant4 9.5.p02 a minor speedup of simulation of EM showers
(2-3%) in calorimeters is expected, also about factor 2 speedup of EM
initialisation.
Hadronic physics
- The main change on hadronic showers in Geant4 9.6 is their lateral
profile: showers are wider in Iron and Copper, and narrower in
heavier absorbers, like Tungsten and Lead.
- Similar CPU speed for simulation of hadronic showers as in
Geant4 9.5.p02.
6. Known Run-Time Problems and Limitations
For a complete list of outstanding run-time problems and to submit any
problem you may find while running this version of Geant4, please refer
to the
Geant4 Problem
Reporting System.
7. Compilation Warnings
There may be a few compilation warnings on some platforms.
We do not believe that any of these lead to incorrect run-time behaviour.
8. Geant4 Software License
A Software License applies to the Geant4 code.
Users must accept this license in order to use it. The details and the list of
copyright holders is available at
http://cern.ch/geant4/license
and also in the text file LICENSE distributed with the source code.
9. Detailed list of changes and fixes
These are the main new features/fixes included in this release since the
last patched public release (for more detailed lists of fixes/additions,
please refer to the corresponding History files provided in most packages):
Configuration
- CMake:
- Complete rewrite of data installation with support for
CMake >= 2.6.4 and custom physics data install location.
Downloaded data bundles are also verified using MD5 hashes.
- Added support for Clang detection (CMake > 2.8.1).
- Implemented C++ Standard detection and flag configuration for GNU,
Clang and Intel compilers; added user option to select C++ Standard
to build against, if the compiler supports this.
The default is always c++98/'ansi' (C++98 plus the '03 addenda).
Addressing problem report
#1351.
- New API for managing data to allow reuse of existing datasets and
not install data at build time if required. Addressing problem report
#1285.
- Correct shell variable name in export of commands to scripts.
Addressing problem report
#1387.
- Added support for G3ToG4 library. Added CLHEP library to link line
using output from clhep-config. Addressing problem reports
#1290
and #1328.
- Fix to use BASH_VERSION instead of non-POSIX compliant check.
Addressing problem report
#1306.
- Enable use of C-shell scripts inside other scripts. Protect changes
to the environment if self location fails.
Addressing problem report
#1268.
- Removed extraneous quotes around resolved include paths.
Addresses problem report
#1357.
- Removed optimization flags from "TestRelease" build mode on all
platforms. Removed obsolete "TestReleaseDebug" build mode.
Addresses problem report
#1263.
- Removed find of Inventor debug libraries and added find for of SoXt
headers. Addresses problem report
#1320.
- Added -limf library in CMAKE_EXE_LINKER_FLAGS for icc compiler.
- Allow choice between internal and system expat library on non-Win32
platforms. Choosing system expat requires it to have been found.
- Check that X11 Xpm library has been found when Inventor driver is
activated, and issue FATAL_ERROR if it is not located.
- On Windows setup, add MD flag to Release style build modes (RELEASE,
MINSIZEREL and RELWITHDEBINFO); add MDd flag to Debug style build
modes (DEBUG, TESTRELEASE, MAINTAINER).
- Tidy up module inclusions to provide minor, but noticeable, speed up
in CMake configuration time.
- Use 'header guard' variable to prevent module being loaded multiple
times.
- Improved description of workaround for sourcing Cshell scripts
non-interactively.
- Fixed problem on Windows, for the case that a space appears in the
install prefix.
- Removed use of STATUS in error messages so all errors go to stderr
when validating source files.
- Added FindHepMC, FindPythia6 and FindAIDA modules.
- Updated version of data sets: G4EMLOW.6.32, G4NDL.4.2,
G4NEUTRONXS.1.2, RadioactiveDecay.3.6, PhotonEvaporation.2.3 and
G4SAIDDATA.1.1. Removed obsolete ABLA dataset.
Updated the required version of CLHEP to 2.1.3.1.
- Removed obsolete files geant4-env.[c]sh.in.
- Updated references to data libraries version for 9.6.
- GNUMake:
- Updated paths for X11 in X11FLAGS on Darwin targets, for porting on
MacOSX 10.8 (Mountain Lion).
- Exclude "setup" and "clean_setup" targets from dependencies step.
- Replaced "photolepton_hadron" module with "lepto_nuclear".
Removed path to hadronic INCL package.
Analysis
- Updated histogramming tools to g4tools-1.4.3.
- Adding defs include files per manager type; GetNtuple() function
to specific managers; GetType() function to
G4VAnalysisManager.
- Increased granularity of verbose levels (now 3 levels are available).
- Made creating directories optional. Added locks for functions which
define directory names, setting Ids etc. so that these parameters cannot
be changed once they were used. Changed return type for the functions
with locks to G4bool.
- Adding an additional information to the analysis objects: units,
activation, ascii output.
- Implemented a possibility to book histograms/ntuples before opening a
file.
- Adding a messenger class allowing to configure file and directories
names, verbosity level and histogram parameters interactively.
- Fixes in memory management: delete file before opening a new one (all);
delete ntuple before closing a file (csv, xml).
- Added possibility to fill h1, h2 with values with automatically applied
function (e.g. log10, exp). Added getters for many h1, h2 attributes;
Added ScaleH1(), ScaleH2() methods. Added SetH2Title() in all managers.
- Added setters/getters for histogram axis titles and commands for setting
histogram title and axis titles.
- Pass units via a name instead of value.
- Fixed warning in G4RootAnalysisManager when trying to fill inactivated
histogram.
- Adding function G4VAnalysisManager::SetActivation(..)
for setting activation to all histograms of one type.
Adding commands to handle and activate/inactivate 1D, 2D histograms.
- Fixed GetH1[2]Width: return the correct value also when histogram is
inactive.
- Splitting verbose level 1 in 2 levels and shifting the upper levels.
- Fixed cases of variable shadowing.
Digitization & Hits
- Support 'weighted'/'dividedByArea' options in flatCurrent
and flatFlux command-line scorers.
- Use 'const G4String&' as argument instead of plain copy of
strings in G4ScoringManager, G4VScoreWriter and
G4VScoringMesh.
- Explicitly include headers for system of units and physical constants.
- Fixed cases of variable shadowing.
Electromagnetic Processes
- Fixed cases of variable shadowing and Coverity defects.
- Explicitly include headers for system of units and physical constants.
Adjoint:
- G4AdjointBremsstrahlungModel: changed to use G4SeltzerBergerModel
as forward model by default.
- Corrected differential cross-section expression in G4VEmAdjointModel.
- Get the weight from PostStepPoint rather than from Track when
correcting the step in along stepping actions of
G4ContinuousGainOfEnergy and G4AdjointAlongStepWeightCorrection.
This is needed for a correct propagation of weight correction in
different along step actions.
- G4AdjointMultipleScattering: commented out obsolete call.
DNA:
- Bug fix in G4DNAChemistryManager::CreateSolvatedElectron() concerning
the final position of the solvated electron using Sanche
thermalization.
- Updated source of cross-section file for elastic scattering.
Updated electron elastic scattering low limit.
- Removed G4Water* classes in 'utils' module.
- Improved management of information in G4ITStepProcessor.
- Added products of dissociative attachments (as a molecular decay).
- Added exception in molecular decay, in case no decay channel is
proposed in input.
- Added possibility of calling G4ITStepManager::EndTracking()
from UserReactionAction::EndProcessing().
- Added new classes G4DNAMolecularMaterial, G4DNADamages and
G4ITTrackingInteractivity.
Modified all models to use G4DNAMolecularMaterial.
Added G4DNASecondOrderReaction prototype class.
- Switched to use of SetEmModel() and EmModel() in all processes
classes.
- Fixed semantic warning related to forward declaration of
G4ITNavigator_Lock. Modified molecule's name.
- Renamed G4DNADiffustionControlledModel to G4DNASmoluchowskiReactionModel.
Updated G4ITNavigator to new interface of
ReplicaNavigation::ComputeStep().
- Force kinetic energy to zero for real killings in models.
- Fixed uninitialised variable in Ionisation Models (Born, Rudd,
RuddExtended) and some optimisation.
- Minor fixes for porting on AIX; mainly on use of const signature
for objects in maps.
High Energy
- G4mplIonisation, G4mplIonisationModel, G4mplIonisationWithDeltaModel:
extended energy range of dEdx and other tables for monopoles with large
mass, required for interpolation of dEdx for super-heavy monopoles.
Low Energy
- New processes and models for microdosimetry in Si for electrons,
protons and ions. Details can be found in: "Inelastic cross-sections
of low energy electrons in silicon for the simulation of heavy ion
tracks with the Geant4-DNA toolkit", NSS Conf. Record 2010, p80-85;
"Geant4 physics processes for microdosimetry simulation: very low
energy electromagnetic models for electrons in Si", NIM B, vol. 288,
pp. 66 - 73, 2012; "Geant4 physics processes for microdosimetry
simulation: very low energy electromagnetic models for protons and
heavy ions in Si", NIM B, vol. 287, pp. 124 - 129, 2012.
- Added new Compton model G4MUComptonModel.
- G4LivermorePhotoElectricModel and G4LivermoreGammaConversionModel:
migration to G4PhysicsVector and G4ElementData data structures.
- Removed obsolete Penelope v2001 models and related helper classes.
- Make a consistent use of G4Element::GetA() and GetAtomicMassAmu()
in Penelope models.
- Removed dependency on obsolete G4AtomicDeexcitation in
G4PenelopeIonisationModel.
- Decoupled calculation of Penelope ionisation cross-sections from the
Ionisation model. Preparatory step for a future Penelope-specific
atomic de-excitation model.
- Minor design iteration for G4VhShellCrossSection base class, in order
to carry also the information about G4Material. Also preparatory step
for a future Penelope-specific fluorescence model.
- Made G4PenelopeBremsstrahlungAngular derived from the basic interface
G4VEmAngularDistribution. Makes angular generator usable by any other
model via the interface.
- Renamed G4PenelopeIonisationCrossSection to
G4PenelopeIonisationXSHandler (the name will be reserved for a
different class).
- Made G4PenelopeCrossSection able to return both absolute and
normalized values of the shell cross sections. It will be used for
Penelope-PIXE.
- Penelope-based cross-section model for electron PIXE registered in
G4UAtomicDeexcitation. Added warning messages to Penelope models to
verify the proper activation of fluorescence.
- Updated G4PenelopeOscillatorManager to accomodate the calculation of
PIXE cross-sections. First implementation of Penelope-specific PIXE
cross-sections.
- Corrected G4PenelopeBremsstrahlungFS to avoid anomaly in the gamma-ray
spectrum close to the cut.
- G4RayleighScattering: build physics table above 100 keV,
Substituted calls to methods Model(), SetModel() with
EmModel(), SetEmModel()
- Migration to the common SampleDirection() interface in
G4VEmAngularDistribution for Livermore and Penelope models.
- Introduced new class G4RayleighAngularGenerator.
- G4Generator2BS: fixed sampling according to the original paper.
- G4PhotoElectricAngularGeneratorPolarized: added protection against
possible infinite loop.
- Added protection against cos(theta) < -1 to avoid numerical problems
in G4PhotoElectricAngularGeneratorPolarized, G4Generator2BN,
G4Generator2BS, G4RayleighAngularGenerator.
Fixed exception printout in G4LivermoreRayleighModel.
- Updated MuElec classes to widen the energy range of application.
- Fix in G4MuElecInelasticModel for usage of iterators at boundary of
vectors.
- Minor fixes for porting on AIX; mainly on use of const signature for
objects in maps.
Muons
- G4MuMultipleScattering: use G4UrbanMscModel95 as a default.
Substituted calls to methods Model(), SetModel() with
EmModel(), SetEmModel().
- G4MuBremsstrahlung, G4MuIonisation, G4MuPairProduction: secondary
particle type defined in constructors and not in Initialise() method,
this is needed for correct initialisation at G4_PreInit.
- G4MuBremsstrahlungModel, G4MuPairProductionModel: reduce number of
computations of log() of the same argument, no change in results.
Polarisation
- G4PolarizedPhotoElectricEffect, G4PolarizedPEEffectModel: substituted
calls to methods Model(), SetModel() with EmModel(), SetEmModel().
Standard
- Single and multiple scattering:
- G4CoulombScattering, G4NuclearStopping, G4eMultipleScattering,
G4hMultipleScattering, G4ComptonScattering: substituted methods
Model(), SetModel() with EmModel(), SetEmModel().
- G4CoulombScattering: added method MinPrimaryEnergy()
allowing to define
low edge of physics table when Coulomb scattering is combined with
multiple or single scattering;
modified initialisation allowing easier addition
of a custom model; improved list of options/flags in constructor
to reduce size of cross-section tables; do not allow
anymore to change polar angle limit after first initialisation;
fixed initialisation for the case when polar angle limit
is below pi.
- For all multiple scattering models:
sampling of scattering moved from PostStep to AlongStep;
implemented StartTracking() method allowing to ensure
reproducibility of simulation moved cross-section table from
process to model; fixed event non-reproducibility for
the case where more than one model is configured for
a particle for different energies; removed method GetLambda();
added protection to stop sample scattering if energy is below
1 eV.
- G4hMultipleScattering: use G4UrbanMscModel95 as a default.
- G4UrbanMscModel95: improved fix for cases of abnormal tail using
results of single scattering model for tuning (protection against
very large angles is retained);
added protection into GetTrueStepLength method (true length cannot
exceed physics path length.
- G4UrbanMscModel96: new version of the Urban model.
- G4WentzelVIModel: added "no scattering" check inside
SampleScattering().
- G4WentzelOKandVIxSection: revert to 9.5 version,
as giving better fit
with MuScat experimental data; make special case only for Hydrogen.
- G4GoudsmitSaundersonMscModel: fixed FPE bug; fixed inconsistency -
lateral displacement is not anymore sampled for plural scattering;
improved method of definition of screening parameter.
- G4ScreeningMottCrossSection, G4eSingleCoulombScatteringModel:
updated version of electron scattering code based on analytical
approximation of the Mott cross-section by means of Hose
coefficients. Added new
class G4MottCoefficients.
- Bremsstrahlung models:
- G4SeltzerBergerModel: fixed minor problem of sampling for
positrons;
made internal data structure static to be used by both e+ and e-
models providing some memory reduction; use simplified computation
of majorant valid for data with more detailed grid;
added SetBicubicInterpolationFlag() method, activating more
accurate parameterisation of 2D data for energy spectrum;
for the cut on gamma energy below 5% below primary electron
energy use extra factor 1.2 to
max value of the cross-section when sampling gamma energy (reduced
number of cases when differential cross-section exceeds estimated
maximum of the cross-section).
- G4eBremsstrahlungRelModel: fixed use of screening function;
switched full screening off; use G4DipBustGenerator for angular
distribution.
- Angular generators:
- Migrated all angular generators to G4VEmAngularDistribution
interface and use SampleDirection() method in models which
are using this interface (bremsstrahlung and photoelectric).
- G4SauterGavrilaAngularDistribution extracted from G4PEEffectModel,
changed limit gamma factor from 5 to 30 (no angular sampling above
~15 MeV instead of 2.5 MeV).
- G4DipBustGenerator, G4SauterGavrilaAngularDistribution: added
protection to angular sampling theta < pi, and optimise computation
for ultra-relativistic particles.
- G4DipBustGenerator: fixed model description.
- G4ModifiedTsai: improved sampling of bremsstrahlung in backward
hemisphere.
- G4UniversalFluctuation, G4IonFluctuations: improved sampling
for "thick" absorber.
- G4GammaConversion: use relativistic model above 80 GeV in
order to have more accurate
cross-sections plus LPM effect at very high energy.
- G4ComptonScattering: build two cross-section tables, below and
above 1 MeV using different technique for interpolation.
- G4PhotoElectricEffect: build cross-section table above 200 keV.
- G4KleinNishinaModel: added simplified PDF function and fixed infinite
loop. Fixed computation of electron energy.
- G4BetheBlochModel, G4BraggIonModel, G4BraggModel: defined flag 'isIon'
for all nucleus except deuteron, triton and special DNA ions.
- G4eBremsstrahlung, G4eIonisation, G4hIonisation, G4ionIonisation:
secondary particle type defined in constructors and not in
Initialise() method, this is needed for correct initialisation
at G4_PreInit.
- G4NuclearStopping: added check of upper energy limit and ion energy
to speedup computations.
- G4ICRU49NuclearStoppingModel: reduced upper limit for protons from
100 MeV to 1 MeV (for CPU performance)
- G4XrayRayleighModel: update of cross-sections and angular
distribution.
- Added deprecation warning to obsolete methods and classes.
Utils
- Fixed issues with event-reordering reproducibility related to EM models. Added StartTracking() method in G4VEmProcess which calls corresponding methods in each registered model.
- G4LossTableManager: added a check and protection against double
registration of the same process; this allows the use of the same
EM energy-loss process for different particle types;
added methods MinKinEnergy() and MaxKinEnergy()
- G4LossTableBuilder: added method BuildTableForModel() to enable the
building of the physics-table for a model.
- G4EmModelManager: extended printout if cross-section table is built
for the model; improved printout of model energy limits.
- Process and model abstract classes:
- G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering:
optimisation of time methods called at each step;
updated tracking parameters and
flags in PostStepGetPhysicalInteractionLength(),
print process/model information for the
same list of particles.
- G4VEnergyLossProcess, G4VMultipleScattering, G4VEmModel: added
implementation of StartTracking() method; moved initialisation
of a new track inside this method; defined flag 'isIon' for all
nucleus except deuteron, triton and
special DNA ions (fixing event non-reproducibility for ions).
- G4VMultipleScatteringProcess, G4VMscModel: sampling scattering is
moved from PostStep to AlongStep.
- G4VMultipleScattering: removed transport cross-section table (it
is assigned to msc models); simplified
AlongStepGetPhysicalInteractionLength() method; added
protection against zero kinetic energy into PostStepDoIt();
optimised initialisation and reduced number of checks at run time;
added more accurate protection against case
when true length exceeds physics step limit;
Fixed case of event non-reproducibility for ions; added protection,
do not sample scattering if range exceed true step length is less than
'minGeom' parameter (1e-6 mm); define ion multiple scattering in
constructor; improved printout at initialisation.
- G4VEmProcess: added extra option allowing to build two different
tables for low-energy and high-energy using different interpolation
method; this was needed in order to combined different models for multiple scattering. Changed initialisation for ions.
- G4VEmModel: added virtual method Value(), by default computing
cross-section; added inline methods HighEnergyActivationLimit(),
LowEnergyActivationLimit(), ForceBuildTableFlag(),
ForceBuildTable().
- G4VMscModel: critical fix for stopping particles, based
on ATLAS report on extremely small steps of low-energy ions.
Computes true path length even if multiple-scattering
model is inactive.
Builds table for all particles except when
the same instance of the multiple-scattering process is shared by many different nuclei - the case when it is registered for G4GenericIon.
Added building of transport cross-section table and new
method GetTransportCrossSection() to be used at run-time; added method
GetTransportMeanFreePath(); added GetDEDX() method.
- G4VEmAngularDistribution added methods
SampleDirection() and Initialise().
- G4EmCalculator: modified method to access a process to take into
account that the same process may be used by different particle types;
added new methods ActiveForParticle(), FindEnLossProcess(),
FindDiscreteProcess() and FindMscProcess(); fixed method FindRegion();
improved model selection for multiple-scattering processes;
added ComputeGammaAttenuationLength() method.
- G4EmCorrections: fixed event reproducibility violation due to cashing
of 'IonHighOrderCorrections' with a vector depending
on the ion charge.
- G4VAtomDeexcitation: fixed logic of activation of de-excitation per
region and for all geometries; updated initialization for the case
when de-excitation is not used. Added computation of sum of energies
of de-excitation gamma and electron produced AlongStep; use logical OR
instead of AND for de-excitation flags; fixed de-excitation AlongStep
by substitution which limited de-ecitation from ion ionisation;
corrected activation of de-excitation for the
case when specific de-excitation regions are not defined;
use G4lring method to extract integer Z.
- G4ElectronIonPair: use inverse FanoFactor to simplify formula.
Cleanup implementation of sampling of number of ions.
- Added deprecation warning to obsolete methods and classes.
- Biasing:
- Fixed Bremsstrahlung splitting to sample gamma secondaries.
- G4VEnergyLossProcess: fix for forced biasing, now forcing if step==1.
Also required change in G4VEmProcess. Addressing problem report
#1314.
- Set weight consistently for forced interaction and cross-section
biasing in G4VEmProcess and G4VEnergyLossProcess.
- G4EmBiasingManager: added check on number of PostStep secondaries;
if multiple secondaries disables both splitting and Russian roulette.
This does not affect delta-electron and Bremsstrahlung secondary
biasing.
Cleanup the code; do not modify ParticleChange when applying
Russian-Roulette (minor CPU save). Moved RussianRoulette()
method to inline; added range cut option.
- G4EnergyLossMessenger: allow to apply biasing UI commands only in
Idle state.
Xrays
- Updated G4VXTRenergyLoss and regular XTR radiators/models
for more accurate angular distribution of XTR.
- Modified G4SynchrotronRadiation and
G4SynchrotronRadiationInMat to
provide more realistic angular distribution for secondary SR gammas
according to simplified dipole busted approach.
- Removed warning in G4Cerenkov constructor.
Error Propagation
- Fix in G4ErrorRunManagerHelper to correct check for G4ErrorPhysicsList.
- Fixed cases of variable shadowing.
Event
- G4StackTrack, G4StackedTrack: modified to use a std::vector
by value instead of a double linked list. Measured speedup of ~35% in
simple test program.
- G4SmartTrackStack: optimized tuning for the parameters (4-5% persistent
reduction in total execution time in complex setups).
Fix to not use particle definition pointers and use PDG code instead.
Enabled by default the use of G4SmartTrackStack (-DG4_USESMARTSTACK).
- G4StackManager: moved some inlined methods from header to implementation
to fix issue with Windows DLLs. Also, removed inline keyword from
G4EventManager::AbortEvent() to prevent incorrect inlining for VC++ if
G4SmartTrackStack is used.
- G4TrajectoryContainer: added private copy constructor and assignment
operator in attempt to fix Coverity warnings.
- Added deprecation warning messages to G4CellScorer and G4CellScorerStore
classes which will be dropped starting from next major release.
- Fixed cases of variable shadowing.
- Explicitly use inclusion of headers for system of units and physical
constants.
Externals
- Updated CLHEP module to version 2.1.3.1:
- Random: use a template to get rid of the warnings in Ranlux64Engine.
- Vector, Geometry, Random: changed names of internal variables
to avoid shadowing of variable.
- Evaluator: fixed a problem with unary +/- and exponentials in
Evaluator class.
- Vector, Evaluator, Random, Geometry: use explicit std:: for
math functions.
- Made explicit the HepLorentzVector(double) constructor.
G3toG4
- Fixed cases of variable shadowing.
- Explicitly use inclusion of headers for system of units and physical
constants.
General Processes
- Fixes for Coverity defects and variable shadowing.
- Explicitly use inclusion of headers for system of units and physical
constants.
- management
- Added GetTotalNumberOfInteractionLengthTraversed() method to
G4VProcess.
- Move virtual inlined methods to source.
- Optical
- Removed unnecessary methods Get/SetModel() from
G4OpBoundaryProcess.
- Scoring
- Introducing "HyperStep" G4Step object owned by G4ParallelWorldProcess,
which may own touchables in pre- and post-step points belonging to
different worlds.
- Adapt to modifications in G4RegularNavigationHelper which is now a
canonical singleton accessed through call to Instance(). Step lengths are
accessed by GetStepLengths(). Avoiding inline functions to access
G4RegularNavigationHelper. Addressed run-time errors on Windows when
using DLLs.
Geometry
- Explicitly include headers for system of units and physical
constants.
- Fixed cases of variable shadowing.
- Biasing
- Added deprecation warning messages to G4VCellScorer and
G4VCellScorerStore classes which will be dropped starting from next
major release.
- Magnetic field
- G4QuadrupoleMagField: allow displaced origin and rotation.
- Management
- Added base materials in G4Region::ScanVolumeTree() to the list
of region materials, when applicable.
- Navigation
- Extended G4ReplicaNavigation to calculate Exit Normal. Now calculates
it at each 'depth', and eventually also for daughters.
Gives additional information in case of 'Out-of-Volume' exception.
- G4SafetyHelper: introduced check of length for relocation method
LocateGlobalPointWithinVolume() to check move against safety.
- G4VoxelSafety: introduced first optimisations in this method, using distance to voxels to trim search tree. The search uses the distance to voxels and the current and previous depths. Includes use of equivalent nodes. It is currently not used in production - it is a first release at the 'beta' level.
- G4VoxelNavigation: added simple check in ComputeSafety()
call whether point is inside current volume.
- G4RegularNavigationHelper: transform it to singleton created upon first use, instead of static
utility class. Make vector of Step Lengths a
data member. Adapted G4RegularNavigation to the
singleton. Fixes run-time errors on
Windows DLLs.
- G4ErrorPropagationNavigator: cosmetic change to improve readability
of initialisation of a double.
- Solids (Boolean)
- G4BooleanSolid: added 'AreaRatio' data member and
method GetAreaRatio() to store the ratio of surface areas of
SolidA to SolidA+SolidB.
The ratio is used in GetPointOnSurface() to better approximate
uniform coverage of points. Uniformity cannot be guaranteed in all
cases. One exception is when constituent solids have shared surfaces.
- Solids (BREPs)
- Added deprecation warning for BREPs module, planned for removal from
next major release.
- Solids (CSG)
- Modified GetPointOnSurface() methods for solids using polar
coordinate parameterizations, to generate more uniform distributions,
using a function in G4CSGSolid to generate correct radial
coordinate.
- Solids (Specific)
- New rewrite of G4TessellatedSolid resulting in reduced memory footprint
by 50% and large speedup; for number of facets in the thousands the speedup factor observed is tens or more. Adopted to ad-hoc voxelization of the surface
for fast retrieval of intersected facets.
Measured a factor of thousands speedup when number of facets is of the
order of order of a hundred thousand. New classes introduced, G4SurfBits and
G4SurfaceVoxelizer.
- Modified GetPointOnSurface() to throw sqrt(r)
uniformly for disk surfaces, in G4Paraboloid, G4Polycone
and G4TwistedTubs.
- Volumes
- Fix in G4EnhancedVecAllocator for porting on AIX.
Global
- Introduced G4StatDouble class in HEPNumerics module, a class providing
simple "one variable statistics" capability; adapted from the original
code included in the GRAS tool.
- Use 'const G4String&' as arguments in G4coutdestination instead
of plain string copy to reduce memory churn.
- Removed unnecessary string data member in G4PhysicsVector to reduce
memory footprint. Removed related Get/SetComment() methods.
- Added header for thread local storage defines.
- G4Physics2DVector: added bicubic interpolation option.
No effect on results if option is not active.
- Added GetClockTime() function to G4Timer to print the clock time.
- Use explicit inclusion of headers for system of units and physical
constants. Fixed cases of variable shadowing.
- Update date of release for 9.6.
Graphical Representations
- G4VVisManager: Added Begin/End Draw(2D), optional methods for
bracketing Draw() methods to improve drawing speed.
- G4Colour: in operator<<(), added colour name if in colour map.
Added colour brown.
- G4Text: added operator<<(...,G4Text::Layout), for producing meaningful
text instead of the integer value of the enumerator.
- Change G4Exception ID in G4NURBS and HepPolyhedron.
- G4VisExtent: cached radius and centre for improved efficiency.
- G4DimensionedType: fixed clang compilation warning. Moved "Helper class"
HasName and utility function GetUnitValue() to source.
- Explicitly use inclusion of headers for system of units and physical
constants.
- Fixed cases of variable shadowing and Coverity defects.
Hadronic Processes
- Removed obsolete "incl" module for INCL model; now replaced by INCL++.
- Renamed 'photonlepton_hadron/muon_nuclear' model to 'lepto_nuclear'
- Fixed cases of variable shadowing and Coverity defects.
- Explicitly use inclusion of headers for system of units and physical
constants.
- Cross sections
- G4CrossSectionDataStore: introduced cash for material and element
cross-sections in order to save CPU; cross-section for material
is not recomputed if material, primary particle and kinetic
energy are the same; cross-section for element is not recomputed
if material, element, primary particle and kinetic energy are the
same; G4Nucleus is updated using new method SetIsotope().
Take into account that all elements should have isotopes.
- G4VCrossSectionDataSet: added virtual method SelectIsotope() which is
used for element wise cross-sections, allowing for the data-set to use
isotope wise cross-sections when isotope is selected; by default the
old method is used based on isotope abundance; no change of results
expected.
- G4HadronNucleonXsc: updated p,n,pi-,pi+ cross-sections on p,n.
Added new method GetCoulombBarrier().
- G4GGNuclNuclCrossSection, G4GlauberGribovCrossSection: updated to get
total and inelastic cross-sections from G4HadronNucleonXsc.
- G4BGGNucleonInelastic, G4BGGNucleonElastic: use SAID data for
scattering
off hydrogen below 1.3 GeV for neutrons and below 2 GeV for protons.
G4BGGPionInelastic, G4BGGPionElastic: use SAID data for scattering
off hydrogen below 2.6 GeV.
- G4GGNuclNuclCrossSection: updated to get nucleus radii of light
elements p, d, t, He3, He4, Li7 and Be9.
Fixed condition and setting minimum kinetic energy in to 0.
- New classes G4ComponentGGNuclNuclXsc based on G4GGNuclNuclCrossSection
(Glauber-Gribov for ion-ion cross section) and G4ComponentBarNucleonNucleusXsc
based on G4NucleonNuclearCrossSection (Barashenkov cross section); implemented
component interface.
- Added elastic and inelastic cross-sections extracted from CHIPS.
Make GetExchangeT() method public to be used in coherent_elastic.
- Extended functionality of G4CrossSectionDataSetRegistry to allow
sharing of cross-sections sets. Make exception in method
GetCrossSectionDataSet() optional.
- New class G4ComponentSAIDTotalXS for SAID cross-sections.
- Use new cross-sections factory for CHIPS elastic and inelastic
cross-sections. Removed unnecessary statics in CHIPS cross-sections
and fixed case of double-deletion.
Removed G4ChipsBaseXS class.
- G4NeutronCaptureXS: use G4ElementData for isotope x-sections.
Implemented isotope selection based on isotope cross-section.
- G4ComponentSAIDTotalXS: fixed cross section computation.
- Added factory mechanism for G4GlauberGribovCrossSection,
G4NucleonNuclearCrossSection and G4GGNuclNuclCrossSection.
- Make two methods in CHIPS cross-sections public for the use in
quasi-elastic module.
- New data-set G4SAIDDATA1.1 controlled by path variable G4SAIDXSDATA
is now required.
- Management
- Added method to address energy non-conservation; if check finds
violation of energy conservation, re-sample the interaction.
- Limits are set in
G4HadronicInteraction, and may be overridden per model; LEP and HEP
override defaults, as these do not include the recoil nucleus in the
final state.
- Failure of E/p conservation is signalled only if both checks,
absolute and relative, fail. Thus violations which either a) are
just smaller in absolute value than the value threshold or b) are
just a smaller fraction than the threshold fraction (but not both)
will not fail.
- Added check for momentum conservation, reusing limits for energy.
- Added check for charge and baryon number conservation; active only
if limit is less than DBL_MAX.
- G4HadronicProcess
- Moved some data members to protected to be used in
derived classes; removed unused code.
- Changed logic of definition of time for secondary particles
inside method FillResults().
- Moved to use method ResetNumberOfInteractionLengthLeft() and
GetTotalNumberOfInteractionLengthTraversed() from G4VProcess.
- Dropped the check cross-section in PostStepDoIt() in the case of
neutral particles, in order to improve CPU performance.
Now check only for charged particles.
- Improved quick check and full check for case of electro-nuclear.
Copes with case that both primary survives and secondaries are
created.
- Fixed problem of flushing stdout/stderr for energy checking
printout.
- Removed GetTargetDefinition(); instead added GetTargetIsotope().
- Added catch of G4HadronicException inside BuildPhysicsTable()
method.
- Added full printout about hadronic exception inside G4Exception
body; addressing problem report
#1377.
- G4HadronicProcessStore: added functions GetCrossSectionPerAtom(),
GetTargetDefinition() and GetCrossSectionPerVolume().
Added e+ and mu+ to level-1 reporting.
- Added printing of model descriptions to html files.
- Moved isotope production infrastructure from process to model level;
now done only for LEP models. Updated G4HadronicProcess accordingly.
- G4IsoParticleChange: moved to models/management module.
- G4HadronicProcessType: added 'fLeptonAtRest'.
- Models:
- Moved G4InelasticInteraction class to 'low_energy' model.
- G4IsoParticleChange: moved from main 'management' module.
- G4VIsotopeProduction: replace G4Track argument in GetIsotope() with
G4HadProjectile.
- G4VHighEnergyGenerator: added virtual method
PartonStringModelDescription().
- G4VIntraNuclearTransportModel, G4VPreCompoundModel: cleanup for
object construction/deletion.
- Provide method and default values for checking of "catastrophic"
energy non-conservation. Current default is a deviation larger than
150 MeV and at least 10% of the kinetic energy of the primary.
Set default limit for energy non-conservation to 5 GeV;
- Added G4VIntraNuclearTransportModel::Description() method, printing
a descriptive message before throwing a G4Exception.
- Modified G4VHighEnergyGenerator: added ModelDescripion() to interface;
made private the copy-constructor and the =, ==, and != operators, which are not
implemented.
- G4VIntraNuclearTransportModel: added PropagateModelDescription()
method.
- G4HadronicInteractionRegistry: added method FindModel() allowing to
access G4HadronicInteraction by name.
- Processes
- G4*HadronElasticProcess: replaced use of "aParticleChange" with
"theTotalResult", and drop callback to
G4VDiscreteProcess::PostStepDoIt().
- G4HadronElasticProcess: use cut for recoil as energy threshold to
produce recoil ion. Added deprecation warning for obsolete method.
- Marked as obsolete G4WHadronElasticProcess class.
- Stopping
- Removed class G4FTFCaptureAtRest and replaced with the new classes
G4HadronicAbsorptionFritiof, G4AntiProtonAbsorptionFritiof
and G4AntiSigmaPlusAbsorptionFritiof.
Modified initialisation of de-excitation; fixed
potential cases of double deletion of objects; added registration
in G4HadronicProcessStore and added sub-type definition.
Included annihilation of anti_sigma+.
- Added new classes G4MuonMinusBoundDecay, G4ElementSelector,
G4EmCaptureCascade, G4MuMinusCapturePrecompound,
G4HadronStoppingProcess, G4MuonMinusCapture, providing general
stopping process.
- New class G4HadronicAbsorptionBertini inheriting from
G4HadronStoppingProcess, registering Bertini as the model.
G4PiMinusAbsorptionBertini as subclass of G4HadronicAbsorptionBertini,
G4KaonMinusAbsorptionBertini and G4SigmaMinusAbsorptionBertini new
subclasses of G4HadronicAbsorptionBertini.
- G4MuonMinusBoundDecay, G4StopElementSelector: added data
for muon capture rate in Hydrogen and He4 from recent experimental
data.
- G4HadronicAbsorptionBertini: drop list of "allowed" hadrons, so Bertini
can take care of any negative hadron thrown at it.
Use Bertini's IsApplicable() function to decide whether incident
projectile is suitable for absorption or not.
- Flag deprecated classes in the 9.6 release, to be removed for next
major release; added warnings to constructors. Stopping hadrons are
now handled by Bertini and Fritiof models, and muon capture by the more
complex process with atomic cascade effects.
- Added nuclear capture at rest of anti-nuclei with FTFP in
G4HadronicAbsorptionFritiof.
- G4HadronicAbsorptionFritiof, G4MuMinusCapturePrecompound,
G4MuMinusBoundDecay, G4EmCaptureCascade: fixed memory leak;
reuse G4PreCompoundModel instead from the store of creation of
a new one.
- G4HadronStoppingProcess: defined two argument constructor with defaults
used G4HadronicProcessType in the constructor.
- Replaced replicated code blocks for deprecation messages with new
G4HadronicDeprecate macro from 'utils' module.
- Utility
- G4HadProjectile: added methods SetGlobalTime(), SetBoundEnergy() and
GetBoundEnergy() needed for general stopping process; always set time
to zero at construction or initialisation, so hadronic interaction is
starting from zero local time.
Added Initialise() method allowing to update the projectile and not
instantiate it for any new interaction. Inlined all get methods.
Added protection to kinetic energy computation.
- G4Nucleus: added methods GetIsotope(), SetIsotope().
- Added macro function G4HadronicDeprecate to generate deprecation
messages.
- Fix for porting on AIX in G4ReactionProduct header.
- Models:
- G4Fragment: added flag of stable fragment and Get/Set methods.
- Binary Cascade
- G4BinaryCascade: when propagating secondaries from HE model,
do not modify initial energy for Fermi level.
- G4BinaryCascade, G4BinaryLightIonReaction and
G4GeneratorPrecompoundInterface: reuse already instantiated
pre-compound model, if existing.
- Added description in G4BinaryLightIonReaction.
- Fixed minor leak in G4GeneratorPrecompoundInterface.
- Code cleanup & splitting of long methods.
- Fix charge/baryon number violation for Propagate() interface in
G4RKPropagtion. Added method to optionally check baryon/charge
conservation. Added model descriptions also for Propagate().
- Bertini Cascade
- Developed and improved ability of Bertini cascade to handle
photo-nuclear and elector-nuclear interactions and the interactions
of stopping particles.
- G4CascadeInterface: check for no-interaction in retryInelasticProton(),
both in return value and in debugging report.
Added new function for dumping configuration.
- G4CascadeChannelTables: added "om*pro" and "om*neu" to LoadTables().
- G4CascadeCheckBalance: lower verbosity level for energy-conservation
reports, change violation rules to allow relative OR absolute passing,
consistent with new process-level checks. Added reporting of
strangeness conservation.
- G4CascadeCoalescence: fixed bug for clear at start of event of the list
of clusters already considered; entries from previous events prevented
formation of valid clusters. Also improved diagnostic messages.
- G4CascadeCollisionOutput: added calculations of net strangeness.
- G4CascadeKminusPChannel: modified two-body cross-section values in
zero-energy bin, to reflect stopping data.
- G4CascadeOmegaMinusPChannel, G4CascadeOmegaMinusNChannel: New classes
containing partial cross-sections for omega- p and omega- n reactions.
- G4CascadeParameters: new singleton container class to hold and
evaluate any developer-configured environment variables. Default
values for parameters are provided. Three new flags are also
defined: G4CASCADE_VERBOSE (pre-set verbosity in G4CascadeInterface
constructor), G4CASCADE_USE_PRECOMPOUND (select use of
PreCompoundModel in G4CascadeInterface constructor),
G4NUCMODEL_USE_BEST (re-set all defaults for nuclear model with
physical units).
- G4CascadeParamMessenger: new class to define UI macro commands for
setting G4CascadeParameters (string) values, as an alternative to
environment variables.
- G4CascadeParticle: added public accessor for cumulative path length.
- G4CascadePPChannel, G4CascadeNPChannel, G4CascadeNNChannel: new
final-state tables implemented as subclass of templated base (rather
than 'typedef'). Overrides findCrossSection() function to apply
analytic (parametrized) function from Stepanov for projectiles below
10 MeV, with maximum cross-section at zero-bin value. Use
Stepanov's cross section values up to 420 MeV.
- G4CascadeSigmaMinusPChannel: changed zero-bin cross-sections for
Lambda-n and Sigma0-n, based on data from M. Goossens et al.
measurements of Sigma- capture.
- Removed G4CascadeT1NNChannel class and split into separate pp, pn
and nn files (see G4CascadePPChannel, etc.).
- G4Dineutron, G4Diproton, G4UnboundPN: added protection against warning
messages issued from G4ParticleTable::Remove().
- G4ElementaryParticleCollider: added angular distributions for elastic
and inelastic 2-body final states of gamma p and gamma n reactions.
Allow photons to be absorbed via dibaryon (quasideuteron) excitation.
In generateSCMfinalState(), defer "particles.resize()" action until
after final-state properties have been validated. In case no final
state can be generated, this ensures that the failure propagates
back up the calling chain, instead of simply looping forever.
- G4ExitonConfiguration: added empty() function to test exciton state,
reduced printout to single line.
- G4Fissioner: removed static in local vectors in method collide(), to
ensure event reproducibility.
- G4IntraNucleiCascader: specify mass when decaying trapped particle.
This fixes reproducibility violations when hyperons are forced to
decay inside the nucleus.
- G4InuclNuclei: report non-empty exciton configuration in print().
- Added additional diagnostic messages in G4NonEquilibriumEvaporator and
G4EquilibriumEvaporator.
- G4NucleiModel: New function isProjectile() identifies incident
particle at start of cascade. Return zero from getPotential() for
photons in cascade. Added binned spectrum for photons in
absorptionCrossSection(). Added scale factor for gamma absorption.
Allow photons to be absorbed via dibaryon (quasideuteron) excitation.
Simplified and encapsulated path-length computations.
- G4PreCompoundDeexcitation: avoid double deletion of pre-compound
model and excitation handler.
- Chiral Invariant Phase Space (CHIPS)
- New tuning for stopping in CHIPS. Added re-scattering to allow for
wider energy resolution.
- Fixed charge non-conservation problem and memory leak in
G4QFreeScattering.
- Bug fixes for E/M violation with (dE)^2+(dp)^2>.5 MeV^2.
- Split G4QInelastic into G4QInelastic and G4QNGamma classes for use
with the CHIPS_HP physics-list.
- Fix to hadron elastic and inelastic interfaces to correct the use of
the base class G4VCrossSectionDataSet.
- Fix for quasi-elastic duplication in G4QInelastic (for p & n).
- Fixed warning in G4QPDGCode.
- Added deprecation warning message to constructors for removal in next
major release.
- De-excitation
- G4ExcitationHandler: propagate G4VPhotonEvaporation pointer to
G4Evaporation and do not delete it; this allows usage of the same
gamma evaporation object inside G4Evaporation class and
G4ExcitationHandler; added access methods to de-excitation components.
- G4VEvaporationFactory, G4Evaporation, G4EvaporationGEMFactory,
G4EvaporationFactory, G4EvaporationDefaultGEMFactory: correct deletion
of decay channels after run and simplified constructors.
- G4Evaporation: cleanup logic of initialisation and setup options;
always define photon evaporation channel as first; removed obsolete
constructor.
- G4PhotonEvaporation: added check for environment variable
G4AddTimeLimitToPhotonEvaporation, if it is defined a time
limit 1.e10-16 is compared with the nuclear level life time allows to
identify and sample narrow gamma lines or use relativistic kinematics
which will result in Doppler broadening for other nuclear lines; this
option has a side effect for energy-momentum non-conservation.
- New classes G4PromptPhotonEvaporation, G4LevelManager, G4NucLevel, and
G4LevelReader implementing new photon-evaporation model.
- Elastic scattering
- G4ElasticHadrNucleusHE: fixed reproducibility violation due to caching
of cross-sections based on the target element, whereas they depend also
on the isotope. Rather than using the first isotope encountered for an
element, the natural average is used.
- Added G4ChipsElasticModel class to use the extracted CHIPS
cross-section classes from main 'cross_sections' module.
- Adopt factory mechanism for CHIPS cross-sections.
- Initialisation of subtype field for G4ChargeExchangeProcess.
- Electromagnetic dissociation
- Fixed double deletion of cross-section in G4EMDissociation destructor.
Addressing problem report
#1339.
- G4EMDissociation: added prototype for copy constructor.
- High Energy
- Relaxed limits on check for "catastrophic" energy non-conservation,
allow for deviation by the mass of heavy nucleus.
- Fixed compilation warnings from MacOSX 10.8.
- Replaced MAXFLOAT with DBL_MAX in G4HEInelastic.
- Added deprecation warnings to constructors of model classes.
- High Energy Theoretical
- Added ModelDescription() interface.
- Im_r_matrix
- Incorporate new data from extended nucleon-nucleon elastic scattering
data (SAID evaluation). These double-differential elastic
cross-sections now cover energies up to 5 GeV.
- Fixed reproducibility violation in G4CollisionComposite.
- Added Print() method to G4CollisionInitialState.
- INCLXX
- Updated to INCL++ v5.1.8: can now handle heavy-ion collisions.
Conserves energy using masses from the Geant4 tables down to the keV
level. Fixed a bug mostly affecting reactions around 200 MeV.
Refactored the configuration part of the interface in a separate
G4INCLXXInterfaceConfig singleton.
Interface returns an empty G4HadFinalState if no inelastic event
can be produced.
- Realistic densities for deuterons; can now be used for very light
systems (e.g. p+alpha).
- INCL++ refuses to handle reactions between nuclei with A>18.
Those reactions are handled by binary-cascade.
- Major speed improvement in cluster coalescence; gained about a factor
of 2 in 1-GeV p+208Pb. Fixed some bugs in reactions induced by
composite particles.
- Only one model instance for all processes.
- Messenger interface now creates commands in /process/had/inclxx,
for consistency with Bertini model.
- Better (iterative) determination of the remnant recoil at the end
of the cascade. Isospin-dependent back-to-spectator.
- Minor bug for negative incident pions: integration over impact-parameter
distribution was incomplete.
- Cache nuclear-density objects for better performance.
- Fixed sampling of the impact-parameter distribution for nucleon-induced
reactions and incoming kinetic energies below ~40 MeV.
- Always apply numerical solutions (used to lead to some minor violations
of energy conservation).
- Do nothing if the projectile is below the Coulomb barrier.
- Bug fix to void collisions with A=1 targets.
- Bug fix: de-excitation products should not be boosted using the
pre-fragment velocity.
- Fixed bug in forced compound nucleus (emission of di-protons or
di-neutrons). Fixed a bug affecting the choice of the
accurate-projectile mode.
- Isotope Production
- Change GetIsotope() interface argument to use G4HadProjectile
instead of G4Track.
- Added deprecation warnings for removal in next major release.
- Lend
- Fix for porting on AIX in statusMessageReporting source code.
- Lepto-nuclear
- Renamed module from 'photolepton-hadron'.
- Added new model G4ElectroVDNuclearModel. Removed classes
G4LeptonHadronProcess and G4LeptonHadronInteractionModel.
- Changed name of G4VDMuonNuclearModel to G4MuonVDNuclearModel to
avoid any confusion with virtual class names.
For gammas below 10 GeV use Bertini cascade to interact gammas directly
with nucleus. Above 10 GeV, treat gamma as pi0 and use FTFP model.
Fixed negative KE bug in CalculateHadronicVertex().
Fixed case of NaN value for pion momentum at low gamma energies.
- lll_fission
- Fixed uninitialised variables.
- Low Energy
- Moved G4InelasticInteraction class to this module from 'management'.
- In ApplyYourself() method of all G4LEXXXInelastic classes, added call
to DoIsotopeCounting(), conditional upon isotope production mode being
turned on.
- Relaxed limits on check for "catastrophic" energy non-conservation
(for G4LCapture, G4LFission and G4LElastic). This allows for deviation
by the mass of heavy nucleus. Accounts for lack of recoil nucleus.
- Added deprecation warnings for removal in next major release.
- Neutron High Precision
- Added protection of huge E/p breakdown caused by a miss match between
cross-section data set and model.
Added final momentum check in G4NeutronHPInelasticBaseFS.
Added method to loosen check for bad energy violation and allow for
big differences when G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE is set.
- Removed unnecessary debug output produced by G4NeutronHPCapture.
- Use QI values for limiting the products energies in
G4NeutronHPInelasticCompFS.
- Added isotropic emission in CM system.
- Added non LIN-LIN interpolation and 2D interpolation.
- Added capability to produce fission fragments for those currently
neglected, based on ENDF nfy data; enabled by setting environment
variable G4NEUTRONHP_PRODUCE_FISSION_FRAGMENTS.
- G4NeutronHPFission: added method to loosen check for bad energy
violation to allow for a violation of order of nuclear mass (250GeV).
- Added excited isomer index and methods in G4NeutronHPFinalState and
G4NeutronHPDataUsed. Updated relevant sources accordingly.
- Migrated 'frameFlag' (MF6 LCT) = 3, used for several ENDF/B-VII.1
files previously in use only for energies beyond 20 MeV.
- Added G4NeutronHPBGGNucleonInelasticXS class to be used in Shielding
physics-list.
- Added G4NeutronHPManager and G4NeutronHPReactionWhiteBoard classes.
- Set A and Z of the reaction into "targetNucleus" from HadronicProcess.
- Enable to handle cross sections of dynamically generated G4Elements.
Enable to handle final states of dynamically generated G4Elements.
- Fix in G4NeutronHPContAngularPar::Sample() when dealing with outgoing
angles. Addresses problem report
#1366.
Fixed potential floating point error.
- Fix in returning unchanged final states in G4NeutronHPChannelList.
- Fix for porting on AIX in G4NeutronHPVector header.
- Requires new data set G4NDL-4.2.
- Parton-String
- Improved diffraction dissociation of p/pi/k-mesons.
Fit of exp. data on p/pi/k + H.
Good results are obtained for h+A interactions.
- Tuning of FTF parameters: Wdelta 0.25 -> 0.05, Dcor 0.4 -> 0.3,
E* 75 -> 100 MeV.
- Introduced new energy dependence for diffraction cross-sections.
- Improved quark exchange algorithm. Strings with large masses
are now allowed to save their masses.
- Increased Pt transfer in excitation up to 0.3 GeV/c.
- Changed string mass sampling for baryon like strings.
- Safer implementation of the static pointer for cross-sections.
- Bug-fixes in PutOnMassShell() and high energy anti-baryons in FTF
model. Fixed bug for K-minus interactions.
- Modified G4FTFParameters to use new G4ChipsComponentXS from main
'cross_sections' module; made G4ChipsComponentXS static to avoid
multiple instantiations.
Removed old interface G4ComponentCHIPShadronNuclearXS.
- Implemented improved diffraction dissociation.
- Added ModelDescription() to FTF and QGS.
- Probabilities of s-sbar quark pairs and qq-qqbar diquark pairs are
changed in G4LundStringFragmentation to describe the NA49 data.
- Pre-equilibrium
- G4VPreCompoundFragment: fixed rare bug for abnormal fragments by
moving computation of Z^(1/3) after consistency check.
- G4PreCompoundModel: deal correctly with instantiation and deletion of
G4ExcitationHandler in constructor and destructor.
Prepared to use factory approach.
- Added Description() method in G4PreCompoundModel printing the
description from the Physics Reference Manual.
- QMD Reaction
- Added model name to G4QMDReaction.
- Quasi Elastic
- Moved classes to use common cross-sections.
- Radioactive Decay
- G4RadioactiveDecay: added computation of activation.
Added 'isInitialised' flag to reduce initialisation printout.
Removed internal PhysicsVector of mean free path and implemented
same algorithm as in G4Decay,
Modified BuildPhysicsTable() method: added Spline, added initialisation
of atomic de-excitation (needed for the case when radioactive decay is
used standalone).
Set a flag 'isAllVolumesMode' to ensure that when the geometry is
changed, the 'AllVolume' mode is still considered.
Added call to LoadedNuclei.push_back() in LoadDecayTable() also for
the case where user data files are used.
Addressing problem report
#1324.
- Changed length of input characters to 100 in G4RIsotopeTable
to fix infinite loop when excitation energy is non-zero.
- G4RIsotopeTable: added reading of user data files in order to take
into account the life time.
Use evaporation nuclear level data in G4RIsotope::GetMeanLifeTime()
for getting the mean life of an exited nuclei, when it is not provided
in the radioactive decay database.
Reset print message to verbose level 1 to avoid
systematic printing for some decays.
- G4BetaDecayCorrections: fix in constructor for a bug on beta+ decay.
In FermiFunction(), fix for discontinuity in electron screening energy.
- Requiring new data set RadioactiveDecay.3.5.
Intercoms
- First version of G4GenericMessenger class. Added related G4AnyType and
G4AnyMethod utility classes.
- Code reviewed to use 'const G4String&' argument.
- G4UImanager: added macro path feature with /control/macroPath command.
- Added shortcut way for defining UImacro commands in G4UImessenger.
- Fix on executing a macro file containing Windows return codes.
Interfaces
- G4UIQt: changed name of viewer components. Set Cout as default
ToolBox widget at startup; moved Cout widget out of toolbar.
Updated GUI window. Added /vis/scene/add and /vis/viewer
parameters widgets.
Reviewed implementation to be able to call widget dialog box for
parameters outside view/scene tab stack component.
A menu/icon with a command without parameter will open a parameter dialog
box. Added warning when creating new menu if command not found.
Moved icon creation in a generic method AddIcon().
Icons are provided in a icons.mac file.
Put name of the application in the title bar.
Corrected "File" menu; addressing problem report
#1391.
Fixed 'add' button; addressing problem report
#1389.
Moved command line on the right widget.
Added "save" command to "save" icon through /vis/viewer/save.
Fixed issue for ColorDialog in Qt < 4.5.
Addressing problem report
#1365.
- G4UIQt/G4VInteractiveSession/G4InteractorMessenger: added new command
/gui/addIcon to be able to add an icon on the toolbar
Removed "Scene" and "viewer" components.
- G4VUIshell, G4UItcsh, G4VBasicShell, G4UIterminal: improved swimming
among command directories with ".", "..".
- G4UIExecutive: introduced string-driven-selection of UI session.
Introduced run-time session selection scheme and moved inline code to source.
Re-ordered printing of available sessions. Removed Win32 session from best
guess. Fixed case-insensitivity in .g4session, with some modifications.
- G4UItcsh: changed command completion, now dynamically optimize path.
- Changed GetCommandLine() in G4UIshell to GetCommandLineString() to avoid
conflicts on Windows.
- Code reviewed to use 'const G4String&' argument.
- G4InteractorMessenger: allow "addIcon" command to have omittable
parameters.
- G4UIGAG, G4UIGainServer, G4UIQt, G4VBasicShell: fixed compilation
warnings on gcc-4.7.
- Deprecated G4UIXaw driver.
Materials
- G4Element, G4Isotope, G4NistManager, G4NistMaterialBuilder,
G4NistElement, G4NistElementBuilder: added/reviewed methods GetA(),
GetAtomicMassAmu().
- G4Element: added construction of isotope-vector for all elements;
if user does not create isotopes, then vector of isotopes with natural
abundances is created automatically using NIST data.
In all cases the sum of isotope abundances is normalized to unity.
- G4Material: added map for composite materials built via AddMaterial().
When constructing material from the base one use mean excitation energy
from base material and not recompute from scratch.
- G4NistMaterialBuilder: build H2O via atom count and not mass fraction.
Added G4_THYMINE, G4_CYTOSINE and G4_URACIL; for G4_ADENINE and G4_GUANINE
use combination by atom numbers and not by mass fraction.
- G4IonisParamMat: more safe computation of element index and
identification of Hydrogen and Helium.
- Added method ConstructNewIdealGasMaterial() in G4NistManager and
G4NistMaterialBuilder.
- G4SandiaTable: avoid use of std::pow() from all functions and use instead
precomputed values in static array; some CPU performance improvement
expected.
- Explicitly use inclusion of headers for system of units and physical
constants.
- Fixed cases of variable shadowing and Coverity defects.
- G4AtomicShell: reorder shells descending in energy (before, shells
were ordered by quantum numbers and for high Z atoms low-energy outer
shells had lower indexes than shells with higher quantum numbers).
- Updated G4ElementData and simplified code.
Particles
- Fixed problem in G4PhaseSpaceDecayChannel, where dynamic mass was cached
in the object and used in following decays. Fixed problem in constructor.
Fixed assignment operator of G4DecayProducts.
- Added protection to call G4ParticleRemoveAllParticles in 'readyToUse'
state.
- Added protection to call 'Clear' for G4IonTable and G4ShortlivedTable
in 'readyToUse' state.
- Added protection to call 'Remove' for G4ParticleTable and related tables
in 'readyToUse' state.
- Added protection to call destructor of G4ParticleDefinition in
'readyToUse' state.
- Explicitly use inclusion of headers for system of units and physical
constants.
- Fixed cases of variable shadowing.
Persistency
- Minor fix for porting on AIX to G4tgrVolumeMgr in ascii module.
- Fixed cases of variable shadowing.
- Explicitly use inclusion of headers for system of units and physical
constants.
Physics lists
- New physics lists and builders:
- Added new FTFP_BERT_HP physics list, combining HP data-driven treatment
for neutrons.
- Added new CHIPS_HP physics list, which combined CHIPS models with
the HP data-driven treatment for low-energy neutrons.
- Instrumented EM and hadronic constructors to register factories.
- Physics lists qualification changes (supported/experimental/unsupported):
- Marked supported: FTFP_BERT_HP.
- Marked experimental: QGSP_INCLXX.
- Marked unsupported: LHEP, LHEP_EMV, CHIPS, CHIPS_HP, QGSC_BERT,
QGSC_CHIPS, QGSP_BERT_CHIPS, QGSP_BERT_NOLEP, QGSP_BERT_TRV, QGSP_QEL,
QGSP_BERT_95, QGSP_BERT_95XS, QGSP_FTFP_BERT_95, QGSP_FTFP_BERT_95XS.
- EM physics builders and options:
- In all EM builders use the same instances of the Bremsstrahlung and
e+/e- pair production processes for each particle/antiparticle pair.
As a result, mu+ and mu- share one instance of each process. Pi+
and pi- share a different instance of each process. The same occurs
for K+ and K-, and for proton and antiproton.
Expect reduction of memory required for physics tables and
initialisation time for EM physics.
- In all EM builders use WentzelVI multiple scattering model for e+-
above 100 MeV; build transport mean free path for He3 and He4, do not
build for all other ions and heavy hadrons.
- New builder G4EmStandardPhysics_option, combining standard and
low-energy physics configuration as best combination.
Added "opt4" to G4PhysListFactory.
- Modified method of instantiation of multiple scattering: the same
process instance is used by mu+ and mu-;
Note: different instances are still used for pi+, pi-, K+, K-, proton
and antiprotons. Separate processes are needed to enable the different
internal transport cross-section tables.
For all others particles one (extra) process instance is used and no table
is built.
- Use the WentzelVI model for e+ and e- above 100 MeV in all standard
builders for HEP use cases (Opt0, Opt1, Opt2). This is coupled with
single Coulomb scattering using G4eCoulombScattering models.
Below 100 MeV the G4UrbanMscModel95 model is retained.
This addresses the issue of unphysical large angle scatters of GeV
electrons reported by Atlas.
- Substituted obsolete method SetModel() by SetEmModel().
- G4EmExtraPhysics: changed name of class G4VDMuonNuclearModel
to G4MuonVDNuclearModel.
- New physics builder G4EmLowEPPhysics to take into account renamed
Monash U. Compton model. Removed obsolete G4EmLivermoreMUPhysics
builder.
- Changed G4WaterExcitation to G4DNAWaterExcitation in
G4EmDNAPhysicsChemistry. Updated builders for G4DNA.
- Added new Physics constructor G4EmLivermoreMUPhysics.
- Remove use of SetModel() for optical physics, according to changes to
optical process.
- G4EmPenelopePhysics, G4EmStandardPhysics_option3, G4EmLivermorePhysics,
G4EmPenelopePolarizedPhysics: added upper limit 1 MeV for nuclear stopping
for CPU performance
- G4EmStandardPhysics, G4EmStandardPhysics_option1: use WentzelVI for pions
and kaons
G4EmStandardPhysics_option2: added Rayleigh scattering.
G4EmStandardPhysics_option3, G4EmLivermorePhysics, G4EmPenelopePhysics:
added nuclear stopping for protons and antiprotons, removed upper energy
limit for Rayleigh.
- Updated G4EmDNAPhysicsChemistry; molecule's names changed.
Renamed G4DNADiffusionControlledModel to
G4DNASmoluchowskiReactionModel.
- Hadronic builders:
- New builders using Bertini and Fritiof for lepton-nuclear.
Migrated most of the physics lists to use these new builders
and the new cross-sections extracted from CHIPS.
- Using new functionality of cross-sections registry to allow
sharing of cross section data-sets.
Migrated the Elastic and DElastic builders, and most of the
physics lists to use factory mechanism for the new cross-sections
extracted from CHIPS.
- Updates the INCLXX builders for compatibility with the latest INCL++
developments. Updated QGSP_INCLXX physics list to treat light-ion-induced
collisions with INCL++.
- Reduced number of objects deleted in hadronic builders to avoid cases
of double deletion.
- Renamed G4IonFTFPBinaryCascadePhysics as G4IonPhysics
(while the original G4IonPhysics has been renamed as
G4IonLHEPPhysics).
Migrated G4IonPhysics and G4IonBinaryCascadePhysics to use
Glauber-Gribov nucleus-nucleus inelastic cross sections.
- G4VHadronPhysics: include name of the hadron in the name of the process.
- Added proper treatment of light anti-ions in G4HadronQElasticPhysics.
- Removed obsolete class G4HadronInelasticQLHEP.
- Improve creation of cascade to avoid one instantiation of Pre-compound in
FTFP{Proton,Neutron,PiK,AntiBarion} builders.
- Substituted use of G4WHadronElasticPhysics by G4HadronElasticPhysics in
all elastic builders.
- G4HadronInelasticQBBC: reuse G4PreCompoundModel if it is already
instantiated.
- Removed INCL builders and obsolete physics list QGSP_INCL_ABLA.
- Updates to lists:
- Use Bertini model for pi-, K-, Sigma-, Xi- and Omega- for nuclear
capture at rest in most physics lists. In addition use the FTF and
Pre-compound models
for antiproton, anti-Sigma+ and light anti-nucleus capture at rest
in the same physics lists.
- Added four new physics lists: QGSP_BERT_95, QGSP_BERT_95XS,
QGSP_FTFP_BERT_95 and QGSP_FTFP_BERT_95XS.
- Added nuclear capture at rest of anti-nuclei with Fritiof/Pre-compound.
- Fix to use correct classes for Bertini gamma/electro-nuclear.
- HadronPhysicsShielding: fixed problem in neutron cross-section for
inelastic reaction below 20MeV.
- Replaced G4QandFTFStoppingPhysics with the new class
G4BertiniAndFritiofStoppingPhysics.
- Replaced G4IonBinaryCascadePhysics with G4IonPhysics in some lists.
- Changed default physics for stopping, lepto-nuclear, and ion.
Only LHEP- and CHIPS-based physics lists keep using exactly the same
physics as before, whereas all other physics lists migrate to the new
default. Deprecated the physics lists that will be removed in next
major release.
- Consistent treatment of _EMV, _EMX, and _EMY physics lists.
- Added new factory class G4PhysListFactory implementing new automatic
registration mechanism; added registry singleton class
G4PhysicsConstructorRegistry and implemented generic physics list class
G4GenericPhysicsList.
- Moved #includes from .hh to .cc to reduce compile dependencies.
- Explicitly use inclusion of headers for system of units and physical
constants.
- Fixed cases of variable shadowing and Coverity defects.
Run
- Offering more granular public methods of G4RunManager, to enable external
frameworks with own event loop to execute each individual event without
copying context of base class methods of G4RunManager.
- Destructor of G4RunManager now sets G4State_Quit in
addition to G4RunManagerKernel.
- Added new subType process numbers for DNA processes.
- Moved constructors and destructor for G4VPhysicsConstructor base class
to source.
- Fixed cases of variable shadowing.
Track & Tracking
- Modified way of handling parent weight in AlongStep in accumulated way
(same as for other properties).
Fixed treatment of weights in G4ParticleChange.
Addressing problem report
#1283.
- Fixed bug in G4ParticleChange::AddSecondary(), where the local time
of the parent was incorrectly used. Addressing problem report
#1305.
Added global time check for secondaries in G4VParticleChange.
- Modified output messages for CheckIt() and CheckSecondary().
Added G4Exception in G4ParticleChangeForRadDecay::AddSecondary().
- Fix in G4VelocityTable::Interpolation().
- G4ParticleChangeForMSC: allow for modification of position and direction
along step.
- Explicitly use inclusion of headers for system of units and physical
constants.
- Fixed cases of variable shadowing and Coverity defects.
Visualization
- General:
- Added commands (see help system or user guide for details):
- /vis/scene/activateModel
- /vis/viewer/copyViewFrom
- /vis/set/colour
- /vis/set/lineWidth
- /vis/set/textColour
- /vis/set/textLayout
- /vis/scene/add/arrow
- /vis/scene/add/arrow2D
- /vis/scene/add/line
- /vis/scene/add/line2D
- /vis/scene/add/logo2D
- /vis/scene/add/text2D
- /vis/scene/add/date
- /vis/scene/add/frame
- /vis/viewer/save
- Improved commands:
- /vis/scene/add/axes - default size is now computed automatically,
limit width to length/50.
- /vis/scene/add/logo - default size is now computed automatically.
- /vis/scene/add/scale - default size is now computed automatically.
- Extended G4VisManager to support multiple user vis actions.
Where previously one could only have a single user vis action, one can
now register any number of such actions. Each action gets a specific
name, and each can be assigned to any selected scenes.
See the help system or user guide for details:
/vis/scene/add/userAction.
- Added Event ID to trajectory attributes so that in scenes that contain
more than one event, one can tell which trajectory came from which
event.
- Removed creation date from EPS files (so that one can more easily use
diff to tell that two files have the same graphics).
- Implemented 'BeginDraw/EndDraw' and 'BeginDraw2D/EndDraw2D'.
This forces all thus-bracketed Draw messages to have the same
transformation. If an attempt to change the transformation is detected,
a fatal exception is raised.
- Migrated drivers to use G4VScenehandler::fObjectTransformation.
- Added G4VViewer::RefreshView().
- Added an extra refresh for auto-refresh viewers at end of run.
- G4VisManager::EndOfEvent(): removed unwarranted DrawView()
that was causing duplicate copy of the geometry to be drawn.
- Marker size bug fix.
- Fixed Ubuntu warnings about ignoring return value of system call.
- Removed several instances of code duplication,
unnecessary screen refreshing, incorrect buffer switching
(necessitating extra refreshing), variable shadowing, etc.
- Removed #ifdef G4VIS... from header files.
- Protected against use of 2D primitives in viewers that can not handle
these.
- Improved handling of parallel worlds (some worlds had been missing from redraws).
- Added SetBaseFullPVPath(). The base full path is the full path of the
top physical volume (actually the full path of the mother of the top
physical volume), so that even if a user issues
'/vis/drawVolume sub-detector', the full path includes the base full
path, i.e., the full path up to the world volume.
- G4ModelingParameters: added VisAttributesModifiers, enums and a nested
class for communicating a modification to the vis attributes for a
specific touchable defined by PVNameCopyNoPath, to be used by new
commands set, '/vis/touchable/set/...'.
- Brought stray print statement under control of verbosity.
Addressing problem report
#1310.
- Fukui Rendeder (DAWN)
- OpenGL
- Improved rendering speed through major re-design of scene and transient
processing.
- Added command /vis/ogl/set/eventsDrawInterval to specify how frequently
image should update when accumulating multiple events. Defaults to 1,
meaning to refresh after every event.
- Improved Qt interface and viewer:
- Introduced Qt tree ("Scene" panel in G4UIQt session).
- Added search widget in scene tree.
- Added depth-of-geometry slider.
- Double-click to change color/transparency.
- Record changes to colour and visibility of touchables so that they
may be transmitted to other viewers.
- Attempting to instantiate a Qt viewer when there is no Qt UI
session used to cause a crash since the viewer requires the Qt UI
session. We now protect against this, creating an alternate OpenGL
viewer when a Qt viewer would not be appropriate.
- Allow instantiation of a Qt viewer in batch - no window is opened,
but one can create a scene, change view parameters and
'/vis/ogl/printEPS' to get an EPS file in batch.
- Improved handling of text in all X viewers:
- Volumes drawn in surface mode now hide 3D text when appropriate.
- Implemented text layout and offset.
- Fixed cases where text was missing.
- Corrected treatment of colour for transient objects.
- Corrected treatment of transparency in OpenGL stored mode
for trajectories that pass through or behind transparent persistent
objects (detector components).
- Fixed bug such that hidden markers can now be handled on-the-fly,
i.e., without having to rebuild the display lists.
- Fixed Qt batch mode printEPS. Addressing problem report
#1368.
- Fixed problem on Linux at startup. Addressing problem report
#1385.
- OpenInventor
- New option: /vis/open OIXE (in addition to the previous option,
/vis/open OIX):
- OIXE opens a G4OpenInventorXtExaminerViewer, an optional
replacement for the standard SoXtExaminerViewer.
- Provides many new capabilities such as ability
to set viewpoints and to fly along a trajectory path.
- This is an excellent viewer selection for accelerator studies or
other situations in which it can otherwise be difficult to set
appropriate views.
- See help system or user guide for details.
- Currently requires the Coin3D implementation of Inventor.
- Fixed libXpm linking problem.
Environments
- G4Py:
- Updated configure script for CMake build.
- Updated Geant4 interface according to latest changes to kernel.
- Explicitly including units and constants headers.
- Updated documentations in Markdown format.
- Minor updates for examples.
Data sets
- New low-energy data set, G4EMLOW.6.32:
- Updated high granularity electron elastic cross-section data.
- Updated data for Goudsmith-Sounderson model.
- Removed unused files for obsolete Penelope01 models from the
module Penelope.
- Added new cross-section data files for microdosimetry models in Si,
for electrons, protons, and ions.
- Added updated Bremsstrahlung data files with extended grid from NIST
(as in Penelope2008); added probabilities of scattering off electrons
from S. M. Seltzer and M. J. Berger, Atom. Data and Nucl. Data Tables
35 (1986) 345-418.
- Added new ionisation cross-section data for incident protons and alphas
from the work of A. Taborda et al.
- Updated data for Seltzer-Berger Bremsstrahlung model obtained from
Geant4 Penelope dataset.
- Updated icru73 ion stopping data with PASS code computations (main
difference for Iron ions - Bragg peak is lower by about 10%).
- Added optimized data files for Livermore gamma processes.
- Added optimized muelec files.
- New neutron data set with thermal cross sections, G4NDL.4.2:
- Most data is converted from ENDF/B-VII.r1 with processing by
NJOY-99.u364 with reconstruction tolerance of 0.001.
Following isotopes are exception: Cl35 (same as v.4.0), MT600,
4Be7, 25Mn55, 33As74, 39Y90, 40Zr90, 40Zr91, 40Zr92, 40Zr93, 40Zr94,
40Zr95, 40Zr96, 69Tm168, 69Tm169, 69Tm170, 74W180, 74W182, 74W183,
74W184, 74W186, 90Th232, 91Pa231 and 91Pa232.
- New independent and cumulative fission product yield data within
Fission/FF module, originating from ENDF/B-VII.1 neutron fis.yields
sub-library.
- Fixed problems in following isotopes: 44Ru105, 60Nd146, 63Eu152
and 92U238.
- Separated thermal data from main data set distribution.
- New data set G4NEUTRONXS-1.2 for evaluated neutron cross section data
on natural composition of elements:
- Evaluated cross section data derived from new G4NDL set.
- New data set for radioactive-decay processes, G4RadioactiveDecay.3.6:
- Added new files containing the forbidden Beta decay information for all
nuclei known to have such decays in the ENSDF database.
- Updated format of files exceeding 100 characters length.
Addressing problem report
#1336.
- New data set for evaluated SAID data-base, G4SAIDDATA1.1:
- New data set PhotonEvaporation.2.3 for nuclear de-excitation data:
- Corrected internal conversion coefficients for Cs133, Pa234, and TH231,
according to ENSDF. Updated files z90.a231, z91.a234 and z55.a133.
Examples
- Updated reference outputs; added CMake scripts where missing.
- Migrated to new g4tools histogramming system, where needed.
- Updates to apply new coding conventions and fixed variable shadowing.
- Added Doxygen documentation and comments. Updated README files
- advanced
- air_shower
- Removed use of SetModel() for optical physics,
according to changes to optical process.
- ChargeExchangeMC
- Added "File" menu in gui.mac. Addressing problem report
#1395.
- Added icons.mac. Fixed compilation errors.
- composite_calorimeter
- dnaphysics
- Added messenger for material change.
- Updated SteppingAction class.
- Added more histogram variables.
- gammaknife
- New example application to simulate an advanced device for
Stereotactic Radiosurgery.
- gammaray_telescope
- Changed logic of UI/GUI instantiation in the main(), to avoid
problems when running in batch mode.
- Fixed warnings due to two G4Regions without their own cut.
Change physics list from QGSP_BIC to FTFP_BERT, to fix deprecation
warnings for LEP models.
- hadrontherapy
- Remove IAEA detector and related files. Added Carbon beam line.
Added GPS. Migrated to the new stopping physics.
Renamed executable.
- Replaced INCL with INCLXX in physics-list.
- Included generic command for visualization vis/open OGL in input
macro files where needed.
- Fixed compilation warning on gcc-4.7.
- iort_therapy
- Migrated to the new stopping physics.
- Included generic command for visualization vis/open OGL in input
macro files where needed.
- Fixed compilation warning on gcc-4.7.
- lAr_calorimeter
- Use of PhyListFactory instead of explicit instantiation of physics
lists.
- Added icons.mac.
- medical_linac
- Fixed compilation warnings and cleanup of unused files.
- Cleared unnecessary calls to 'this'.
- Added batch.mac to run without graphics.
- Fixed compilation warnings on gcc-4.7 and clang.
- microbeam
- Added description of composition of cell.
- Updated composition of cell cytoplasm.
- microdosimetry
- Added TrackingAction, counting N secondaries created in/outside
"target" region.
- G4ElectronCapture: clean up killing captured electron.
Updated physics list for usage of SetEmModel() method.
- nanobeam
- Switched to touchables.
- Renamed executable.
- underground_physics
- Removed obsolete call to G4OpBoundaryProcess::SetModel().
- xray_fluorescence
- Fixed compilation warnings on clang.
- basic
- B1: Use QBBC physics list instead of QGSP_BIC_EMY, which becomes
obsolete.
- B4: replaced messenger classes with use of G4GenericMessenger.
- extended
- analysis
- Restructuring of AnaEx01, AnaEx02, AnaEx03 examples for use of
shared classes; shared classes are now in a new directory,
'shared'.
- common
- Updated scripts for copying shared files.
- Added functions to customize the HBOOK IDs by user.
- Added setting locks introduced in the base class.
- Fixed handling of directories for both histograms and ntuple.
- Added GetNtuple() function to specific managers.
Increased granularity of verbose levels
(now 3 levels are available).
- Making creating directories optional.
- common/analysis
- Adding additional information to analysis objects:
units, activation option.
- Make possible to book histograms/ntuple before opening a file.
- Using new bN::configure functions in SetHN(..).
- Messages from Fill() functions only in verbose level 3.
- Fixes in memory management.
- Added possibility to fill h1, h2 with values with automatically
applied function. Pass units via a name instead of value.
- Added functions for accessing h1, h2 by name.
- Splitting verbose level 1 in 2 levels and shifting the upper
levels.
- Fixed GetH1[2]Width: return the correct value also when histogram
is inactive.
- electromagnetic/TestEm0
- Updated PhysListEmStandard for GenericIon.
Use G4UrbanMscModel96.
- PhysicsList: added G4EmStandardPhysics_option4
Added more units for cross sections.
- electromagnetic/TestEm1
- New histograms for "total energy deposit", "energy of charged
secondaries at creation", "energy of neutral secondaries at
creation".
- Use NIST materials in DetectorConstruction::SetMaterial().
- Added StackingAction class.
- PhysListEmStandard: use G4UrbanMscModel96.
- PhysicsList: added G4EmStandardPhysics_option4.
Added radioactive-decay and associated input macro.
- Avoid to save random number per event.
- electromagnetic/TestEm2,
electromagnetic/TestEm3
- Added PhysListEmStandardWVI. Use G4UrbanMscModel96.
Added Em physics option4.
- Added statistics on number of charged and neutral steps.
- electromagnetic/TestEm4
- Avoid to save random number per event.
- electromagnetic/TestEm5
- PhysListEmStandardSSM: added alternative single scattering models.
- PhysListEmStandardWVI, PhysListEmStandardSS: more correct process
order and WVI model.
- Use G4UrbanMscModel96. Added Em physics option4.
- Code cleanup and added protections against division by zero.
- Avoid to save random number per event.
- Added fluo.mac input macro. Fix in pixe.mac.
- electromagnetic/TestEm7
- PhysListEmStandard, PhysListEmStandardSS: more correct process order.
- Use G4UrbanMscModel96. Added Em physics option4.
- c2_functions: fixed compilation problems on gcc-4.7.
- Added extra test case for low-energy ions.
- electromagnetic/TestEm8
- DetectorConstruction: added gas of ALICE TPC and macro testALICE.mac.
- TargetSD: added zero-energy steps to histograms and step counters.
- Added Em physics option4 to PhysicsList and decreased limit on cuts.
- Fixed initialization in PrimaryGeneratorAction.
- electromagnetic/TestEm9
- Migrated to the new stopping and ion physics.
- Added Em physics option4 to PhysicsList and decreased limit on cuts.
- electromagnetic/TestEm10
- Em10RunAction: fixed case of write outside boundaries of C-array.
Cleanup initialisation.
- Optimized rewrite of SteppingAction.
- electromagnetic/TestEm11
- Modified StepMax mechanism; added command /testem/StepMax.
- PhysListEmStandard, PhysListEmStandardSS: more correct process order.
- Use G4UrbanMscModel96. Added Em physics option4.
Decreased limit on cuts.
- New results in sandia/EGSnrc: e- 50 MeV, 150 MeV in Water.
- electromagnetic/TestEm12
- Modified StepMax mechanism; added command /testem/StepMax.
- PhysListEmStandard, PhysListEmStandardSS: more correct process order.
- Use G4UrbanMscModel96. Added Em physics option4.
Decreased limit on cuts.
- Printing correction in StepMaxMessenger.
- electromagnetic/TestEm15
- Printing corrections in RunAction::EndOfRunAction().
- Added emstandard_opt3 in PhysicsList to allow muMsc WVI model.
Use G4UrbanMscModel96.
- SteppingAction: set process name to 'muMsc'.
- Added input macro muon.mac.
- electromagnetic/TestEm16
- Added Rayleigh scattering in PhysicsList.
- electromagnetic/TestEm17
- MuNuclearBuilder: use G4MuonNuclearProcess instead of
G4MuNuclearInteraction.
- electromagnetic/TestEm18
- Printing corrections in RunAction::EndOfRunAction().
- eventgenerator/HepMC
- Migration to "new" G4Exception scheme.
- Fixed building Pythia6 in HepMCEx01 so that it works without
CERNLIB.
- eventgenerator/pythia/decayer6
- Introduced use of classes from 'common' module.
- Introduced a physics builder for adding the external decayer to
an existing physics list.
- Updated pythia6_decayer.in macro: added initialization
(now required); added call to /pythia6Decayer/verbose.
- Limited G4Pythia6Decayer verbose levels to 0, 1.
- eventgenerator/exgps
- Renamed exGPS.cc to exgps.cc to match exactly with directory name.
- exoticphysics/phonon
- New example demonstrates how phonon propagation in cryogenic
crystals can be simulated.
- field/field04
- Reverse order of checking thePostLV and thePreLV, to fix
run-time crash on Windows.
- Removed use of SetModel() for optical physics,
according to changes to optical process.
- field/field06
- New example exercising capability of tracking massive particles
in a gravity field.
- geometry/g3tog4
- Removed cltog4 example, duplication of clGeometry.
- Restructured clGeometry for use of classes from common.
Changed gun particle position & direction in test macros to
get particles to go through volumes inside HALL.
- geometry/transforms
- Simplified version, limited to geometry functionalities.
Renamed classes, updated input macros.
- hadronic/Hadr00
- Use FTFP_BERT as default in physics-list.
- Renamed main file to match exactly with directory name.
- hadronic/Hadr01
- PhysicsList: fixed bug for absence of elastic scattering.
- Added G4EmUserPhysics builder. Use FTFP_BERT as default
in physics-list.
- Renamed main file to match exactly with directory name.
- hadronic/Hadr02
- Added first implementation of UrQMD interface.
- Renamed main file to match exactly with directory name.
- Migrated to the new stopping physics.
- hadronic/Hadr03
- New example demonstrating how to compute total cross-section
from the direct evaluation of the mean free path.
- medical/DICOM
- Corrections in materials Z/A. Addressing problem report
#1287.
- Assign return value for fread() and fscanf() calls in DicomHandler.
Fixes compilation warnings on Ubuntu.
- medical/electronScattering
- PhysListEmStandardWVI, PhysListEmStandardSS: more correct process
order and fixed initialisation.
- medical/electronScattering2
- PhysListEmStandardWVI, PhysListEmStandardSS: more correct process
order and fixed initialisation.
- Corrected area calculation in ElectronRun.
- medical/fanoCavity[1,2]
- PhysListEmStandard_WVI: more safe initialisation method.
- medical/GammaTherapy
- Migrated to the new stopping physics.
- optical/LXe, WLS
- Removed use of SetModel() for optical physics,
according to changes to optical process.
- parallel/MPI
- Migrated to CMake build with change of directory structure.
- Migrated to new G4Exception signature.
- Fixed infinite-loop of slaves when a macro does not exists.
- Added support for execution of macro with /control/macroPath.
- Added best guess of selection of a UI shell.
- radioactivedecay/rdecay01
- PhysicsList: use G4PhysicsHelper. Added atomic de-excitation.
- RunAction : added protections against division by zero.
- fullChain.mac: added example of command /grdm/nucleusLimits.
New macro electronicCapture.mac.
Added macros Cf238.mac and No252.mac to demonstrate UserRadData
and UserEvapData files respectively.
- Removed initialisation of de-excitation in PhysicsLists, to be
compliant with changes in kernel processes.
- radioactivedecay/rdecay02
- Added ntuple RDecayProducts registering Z,A,time,energy, PID,weight
of each radioactive decay product
- Changed macro UserRadDataCf238Test.mac and UserRadData_z82.a210 to
check that the mean life time given is properly taken into account
in the code.
- Merged modifications for the activation computation.
- Migrated to the new stopping physics.
- runAndEvent/RE01, RE02
- Fixed elastic physics for ions in physics-list.
- Renamed main file to match exactly with directory name.
- runAndEvent/RE03
- Corrected signature of
RE03UserScoreWriter::DumpQuantityToFile() to
according to changes done in 'digits_hits' module.
- visualization
- Corrected vis user action extent.
- novice
- N03
- N06
- Set '/tracking/verbose 3' in input macros to also test timing of
optical photons.
- Removed use of SetModel() for optical physics, according to
recent changes to optical process.