Geant4 10.0 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.4.7.
Tested on 64 bit architectures (Intel or AMD) with
Scientific Linux CERN 6 (SLC6) (based on Red Hat Linux Enterprise 6.
- MacOSX 10.8 with gcc-4.2.1 and clang-3.3
- Windows7 with Visual C++ 11.0 (Visual Studio 2012)
More verified configurations (64 bits):
- Linux, gcc-4.7.2, gcc-4.8.2
- Linux, Intel-icc 14.0
- MacOSX 10.9 with gcc-4.2.1 and clang-3.3
- Windows7 with Visual C++ 9.0, 10.0, 12.0
Note: Windows platforms are supported/verified only for the sequential mode.
Multi-threading capability of this release does not support Windows.
2. Supported CLHEP version
This release of Geant4 has been verified with
CLHEP, release 2.1.4.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 in order to upgrade from
release 9.x series to this release.
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.
General
- Multi-threading:
- This release includes support for multi-threaded Geant4 applications.
Parallelism is achieved at the event level, with events dispatched to
different threads. To use multi-threading it is necessary to build
and install Geant4 with the option of multi-threading ability activated.
- The default build of Geant4 is sequential.
- Existing (or new sequential)
applications can be built and run without code changes, on either a
sequential and a multi-threading capable installation of Geant4 - provided, of course,
that mandatory changes are made to address other migration issues.
- To enable event level-paralellism first configure a build of Geant4 using the cmake switch
GEANT4_BUILD_MULTITHREADED=ON (default is OFF); then build the Geant4 libraries and
instantiate a G4MTRunManager (or a user-derived class) in place of G4RunManager
in the relevant function of the program (e.g. the main function).
- Migrating applications to Multi-threading:
- The steps required to migrate an existing application to multi-threading is
summerized in the
TWiki migration page.
- Migrated examples for demonstrating use of multi-threading are:
- basic: B1, B2 , B3, B4, B5;
- extended: AnaEx01, B02, B03, GB01, GB02, TestEm1, TestEm2, TestEm4,
TestEm5, TestEm11, exgps, Hadr00, Hadr04, Hadr05, DICOM,
electronScattering2, field01, field02, field03, field04,
LXe, OpNovice, wls, gflash, Par01, P03, RE01, RE02, RE03,
RE04, RE05, RE06;
- advanced: air_shower, brachytherapy, dnaphysics, gammaknife,
human_phantom, microbeam, microdosimetry, nanobeam,
radioprotection.
- Even if Geant4 library is compiled with multi-thread support, legacy sequential
application can run.
- Removed from Geant4 headers the implicit inclusions of SystemOfUnits and PhysicalConstants headers of CLHEP .
This may trigger compilation errors in user's code. This will require making the user
code self-consistent, by explicitly including these missing headers files.
- Introduced checks for variable/parameters shadowing. Compilation warnings
may show up in user code in case it is also compiled using the Geant4 build setup, or using the same compiler flags.
- The old GNUMake build system is no longer supported. It is strongly
recommended to adopt CMake for the installation.
Geometry
- Archived GeomTest* classes for overlaps checking through grid/cylinder
lines. UI commands are replaced with calls to built-in overlaps checking
based on random points located in surface. User's scripts relying on old
UI commands may require migration accordingly.
- The G4Polycone solid no longer supports the case in which
either the outer or the inner surface has more than one cone or tube
section over a finite interval of Z values. These shapes must use the
new class G4GenericPolycone instead. The general constructor
of G4Polycone, which uses a series of vertices, includes a
check whether the vertices are monotonic along Z for its inner and
outer surfaces, and issues an error if not.
- Removed deprecated BREPs module and obsolete classes G4VCellScorer and
G4VCellScorerStore.
Electromagnetic and optical physics
- A single G4UrbanMscModel class provides the improved tuning of the Urban
multiple-scattering model. It replaces all previous variants of
the Urban model (Urban90, 93, 95 and 96), which have been removed.
- G4MuElec* processes and models for microdosimetry in silicon have
been renamed as G4MicroElec* processes and models.
- Instead of G4PAIPhotonModel of ionisation, it is recommended to use
G4PAIPhotModel.
Hadronic physics
- The CHIPS package, the parameterized (Gheisha-like) models LEP/HEP
and the isotope_production module have been removed.
- GetIon() and FindIon() methods are removed from G4ParticleTable
class. These methods have moved to G4IonTable class with some
enhancements.
Physics Lists
- Physics lists based on the CHIPS package (e.g. CHIPS, QGSC_BERT)
or on the parameterized (Gheisha-like) models LEP/HEP (e.g. LHEP)
have been removed.
- Physics lists that used LEP in a restricted energy range have been
retained but revised: LEP has now been replaced by Fritiof and/or
Bertini models.
Typical of this case was the use of LEP modesl to bridge the gap
between QGS and the intra-nuclear cascade model, in particular
over the region of 9.5-25 GeV in QGSP_BERT which was replaced
by use of the FTF/Fritiof model.
Data Sets
This release introduces new data set versions.
Please see the corresponding details in
Section 10 of this document.
- New data set versions: G4EMLOW-6.35, G4NDL-4.4, G4NEUTRONXS-1.4,
G4RadioactiveDecay-4.0, G4PhotonEvaporation-3.0, G4ABLA-3.0,
G4ENSDFSTATE-1.0.
4. New Developments and Capabilities
General
- Geant4 Version 10.0 supports (optional) event-level parallelism.
In a multi-threaded application, at the end of first kernel initialization,
worker threads are started and initialized. These worker threads are
responsible for simulating events.
- Event each thread is tasked is in first_come_first_served basis,
so that event numbers each thread has are not sequential, and order of
finished events are not sequential.
- The objects that consume the largest fraction of memory
(geometry and Electromagnetic physics tables) are shared among threads, while
all other objects (in particular user-action and sensitive detectors) are thread-private.
- If the user employs built-in command-based scorers or makes use of g4tools histogramming
facitlities, the reduction of results is performed automatically at the end of a run.
To accumulate user-specified quantities, the user has to implement his/her own Run
class derived from G4Run base class to implement the reduction.
- More information:
- Geant4 multi-threading capabilities are based on POSIX standards
(pthreads) and on Thread Local Storage (TLS) extension.
- Several aspects of threading model can be customized by user.
This includes the possibility to use an external library or package
(e.g. TBB) to achieve paralelization. See the
examples/extended/parallel directory and its content.
- A dedicated
Twiki page contains up-to-date information of multi-threading with
Geant4 including links to relevant documentation.
Geometry
- A new module for geometrical primitives, whose classes
are imported from the
AIDA Unified Solids Library,
is available.
It includes alternative implementations for several shapes, aiming to
provide CPU speed improvement in most cases. The shapes currently included are:
Box, Cons, GenericPolycone, Orb, Polycone, Polyhedra, Sphere, Tet, Trd,
Tubs.
- This module can be used in two modes. The first mode is available in a standard
installation; a USolid can be used as an alternative implementation of a shape,
using a different name. This provides the opportunity to test the implementations
one by one, e.g. G4UPolycone which has shown significant speedup.
- In the second mode they can replace the default implementations of the
corresponding solids - this requires a special build and must be enabled
at configuration/build time, by adopting the dedicated compiler flag
G4GEOM_USE_USOLIDS.
Materials
- The NIST material Manager and related classes always
create an isotope vector for each element, using natural abundances.
Electromagnetic physics
- The model of electron-positron pair production by muons and hadrons
has been updated to use more detailed grid in tabulation of differential
cross-sections.
- The PAI and PAI-photon models were cleaned up and can be used for very
low (down to zero) cut values.
- A new angular generator model is added G4DeltaAngle which
may be optionally used by any ionisation model. It is used by default by PAI models.
- Magnetic monopole ionisation models were upgraded to be applicable
for non-relativistic case for any material.
Hadronic physics
- The Fritiof (FTF) model has been retuned, based on an enlarged set of
thin-target data, and the modelling of nucleon-nucleon diffraction
has been improved.
The Fritiof model can now handle nucleus-nucleus collisions.
- The Bertini-like (BERT) model has been improved, in particular
in the two-body angular distributions and in multibody phase space,
and it can handle muon capture.
- Long-lived meta-stable isotopes (isomers) are now produced
in hadronic interactions. By default, only isomers with half-lives
above 1 microsecond are considered. However, an enlarged set of
isomers can be activated by setting the environmental variable
G4ENSDFSTATEDATA to point to the new (optional) data set of
nuclei properties from the Evaluated Nuclear Structure Data File,
G4ENSDFSTATE-1.0.
- The isomers that are produced can be decayed by activating the
RadioactiveDecay module (which is not used by default in physics
lists, with the only exception of Shielding).
- The new data libraries G4PhotonEvaporation-3.0 and G4RadioactiveDecay-4.0
are required.
- The neutron high-precision (HP) model is now capable of reading
compressed data files, and this allowed to reduced significantly
the size of the G4NDL library.
- A new verbosity control allows the
suppression of warning messages.
- A new fission fragments generator (Wendt) has been introduced.
Phonon Physics
- A new minimal framework for low-temperature
phonon physics has been introduced, with acoustic phonon particle types
(
G4PhononLong, G4PhononTransSlow, G4PhononTransFast
),
container classes for lattice dynamical constants, and processes for
propagation and scattering of phonons, and anharmonic downconversion.
- The associated example
(
examples/extended/exoticphysics/phonons
has been migrated to
use the new toolkit classes.
Generic Biasing
- A new biasing capability has been introduced to allow physics-based biasing
--process interaction occurence biasing, process final state production biasing--
and non-physics-based biasing --e.g. splitting, killing-- to be handled through
a set of common classes:
G4VBiasingOperator, G4VBiasingOperation
.
- The
G4VBiasingOperation
class is to represent an 'atomic' biasing
operation (occurence biasing, final state biasing, splitting, killing, etc.).
- The
G4VBiasingOperator
class is to pilot the biasing, it selects
the biasing operations to be applied in the current step.
A biasing operator
may also delegate the biasing operation choices to an other operator.
- Biasing operations are applied by a third class
G4BiasingProcessInterface
which provides the interface between the tracking and the biasing. It collects the
biasing operations to be applied from the current biasing operator.
It can act as a wrapper class, controlling an underneath physics process on top
of which it applies the biasing operations selected by the operator; it provides
the statistical weight computation for the case of the occurence biasing.
It can also be free of physics process, in what case it collects and applies
non-physics-based biasing operations.
- A biasing operator is attached to a
G4LogicalVolume
inside which,
and only inside which, it is active. Outside, the standard tracking goes.
- Two examples have been created:
examples/extended/biasing/GB01
shows how to bias process cross-sections,
examples/extended/biasing/GB02
shows how to use an MNCP-like
'force collision' operator implemented within the present scheme (this 'force collision'
consists of a track entering a volume which is cloned, one copy making a forced
collision inside the volume, the other copy flying though with no interaction).
Physics Lists
- In all physics lists, the neutron capture process has been
significantly improved, both for the cross section (replacing
Gheisha with G4NeutronCaptureXS) and the final-state modelling
(now using G4NeutronRadCapture instead of G4LCapture).
This affects the response and lateral width of hadronic showers
in tungsten-based simplified calorimeters.
- The more accurate inelastic cross section G4NeutronInelasticXS is used
for the simulation of low-energy neutrons (i.e. below 20 MeV) in all
physics lists which do not contain the precise neutronHP models.
This replaces the Barashenkov cross-sections. The NeutronXS cross-sections
are average in bins of kinetic energy derived from neutronHP data.
They are meant as an approximated, fast approach similar to the
multi-group approach of other Monte Carlo radiation transport tools.
- The fission process has been removed in physics lists without
the precise neutronHP models. For the HP-based physics
lists, the parameterized model G4LFission is kept and used only
above 19.9 MeV.
- Fritiof and/or Bertini models are now used in all physics lists
to replace the parameterized (Gheisha-like) model LEP/HEP,
which were used in several physics lists. This is neccesary
for the QGS-based physics lists,
since the QGS model has not been extended to as low energies (currently
it is used above 12 GeV) as the FTF model (which can be used above 3 GeV).
- Three new physics lists (all making use of the intranuclear cascade
INCLXX) have been introduced: QGSP_INCLXX_HP, FTFP_INCLXX,
FTFP_INCLXX_HP.
- All the six electromagnetic variants of the physics lists:
_EMV, _EMX, _EMY, _EMZ, _LIV, _PEN
are available only by using the physics list factory
G4PhysListFactory. This option can be specified as part of the physics
list name. As before, the name string must be either an argument of a
particular method of the factory, or else provided in the environmental
variable PHYSLIST.
- The following obsolete physics lists have been removed:
CHIPS, CHIPS_HP, QGSC_BERT, QGSC_CHIPS, QGSP_BERT_CHIPS, LHEP, LHEP_EMV,
QGSP, QGSP_QEL, QGSP_BERT_TRV, QGSP_BERT_95, QGSP_BERT_95XS,
QGSP_FTFP_BERT_95, QGSP_FTFP_BERT_95XS.
Visualization and Interfaces
- Visualization now supports multi-threading with basically the same feel as
in sequential mode. Note however that if your application includes special
visualization behaviors involving direct C++ calls to specific visualization
draw methods, these parts of your visualization will only appear in sequential mode.
- Added command to display magnentic field: /vis/scene/add/magneticField.
For details, see the command guidance.
5. Expected effects on physics and computing performance
Electromagnetic physics
- About 5% speedup is expected mainly due to migration from
std::log, std::exp to G4Log and G4Exp functions.
Hadronic physics
- Simulated hadronic showers with the recommended physics list
FTFP_BERT remain similar to those obtained with Geant4 9.6,
except for tungsten-based calorimeters, where the energy response
becomes lower, and lateral shape narrower, mainly due to the
improved simulation of neutron capture.
- Slight (few percent) CPU improvement for the simulation of
hadronic showers with FTFP_BERT physics list with respect
to Geant4 9.6.
- Possible larger variations (for both observables and CPU speed)
for the simulation of hadronic showers with other physics lists
(e.g. QGSP_BIC) with respect to Geant4 9.6, mainly due to the
replacement of parameterized (Gheisha-like) model LEP/HEP with
Fritiof and/or Bertini models.
Sequential application with multi-threaded Geant4 library
- If a Sequential application is linked with the Geant4 library
that is compiled in multi-threaded mode, a small performance
overhead (~1%) may be observed.
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:
- Added 'multithreaded' component to indicate if Geant4 is built with
multithreading. If requested, and the build is multithreaded, append
the -DG4MULTITHREADED compile definitions.
Added build option GEANT4_BUILD_MULTITHREADED set to OFF by default.
Use -pthread flag for clang and gcc compilers.
- Added patch for self-location to C-shell template generation.
Addressing problem report
#1399.
- Enabled option GEANT4_USE_SYSTEM_ZLIB to locate system zlib if
requested and otherwise use internal version.
Addressing probem report
#1322.
- Added build mode dependent compiler definition to the build of each
target in the form GEANT4_DEVELOPER_[CONFIG] where [CONFIG] is the
uppercased build mode. Addressing problem report
#1353.
- Added build option GEANT4_BUILD_TPMALLOC (defaults to OFF) which can
be enabled on UNIX platforms to optionally allow through LD_PRELOAD
the use of tpmalloc in place on system malloc in multi-threaded mode.
Modality currently disabled.
- Corrected output of "--has-feature" for CLHEP feature.
Addressing problem report
#1477.
- Added FindTBB.cmake module for Intel Threading-Building-Blocks library.
- Fix in FindROOT.cmake script to remove "/usr/include" from list of
include directories passed to rootcint when generating dictionaries.
Workaround for a bug experienced in rootcint.
- Set variables GEANT4_USE_BUILTIN_{CLHEP,EXPAT,ZLIB} when the builtin
versions of these packages are used. This is to assist the generation
of Geant4Config.cmake using simple expansion variables.
- Tidy up layout in scripts and removed obsolete files and documentation.
- Removed GEANT4_INSTALL_EXAMPLES option. Always install 'example' directory.
- Suppress error messages from FindAIDA module for informative options.
Addressing problem report
#1485.
- Corrected check for clang version. Fixes problem with being unable to
change C++ Standard for clang when using latest version.
- Disabled granular libraries build model issue fatal error if
GEANT4_BUILD_GRANULAR_LIBS variable is set.
- Added FindXvfb checking if fake X server Xvfb is installed in system.
- When building in multithreaded mode on a UNIX system, added verification
check for support of thread local storage.
- Implemented new export function for datasets.
Added new '--datasets' argument to print out space separated dataset
name, envvar name and path, with information for each dataset on a
separate line. Implemented new --check-datasets and --install-datasets
tasks; the former checks that the known datasets are installed in the
configured location, reporting status; the latter is a stub for
implementing post-install download and unpack of datasets.
- Fixed bug in configuration of binary directory PATH which resulted in
G4INCLUDE being overwritten.
- Added support for use of experimental USolids module through the compiler
flag G4GEOM_USE_USOLIDS. Marked as advanced option.
- Fixes in geant4-config.in to add core compiler flags to cflags and
added support for export of multithreading variables.
Implemented post-install of datasets. Supplying the --install-data flag
will perform a download and install of all datasets to the configured data
directory.
- Fix bug in checking of status of Xmu include path and library variables
that resulted in no error being emitted if these were not found.
- Added FindTBB to exported modules.
- Added section for support of Wt and new FindWt.cmake module.
- Provided scripts for support of Qt5 external libraries.
- Set compilation flags for MT mode on Intel compiler to
"-ftls-model=initial-exec -pthread" as for GNU and Clang.
- Updated references to data libraries version for 10.0.
- GNUMake:
- No longer supported, only for development/testing use.
Analysis
- Added file compression in Root manager. Added use of zlib needed for
compression.
- Extended analysis managers for handling more than one ntuple.
Updated manager classes updated for MT; added data members and functions
for mergings histograms (Root, Xml) from worker to master:
void AddH1Vector(std::vector& h1Vector);
void AddH2Vector(std::vector& h2Vector);
These functions are automatically called on Worker::Write().
Added ThreadId to ntuple file names when processing on workers.
Introduced managers per object types (H1, H2, Ntuple, File) and
re-implemented G4VAnalysisManager as a composite of the objects managers;
removed enum G4VAnalysisManager::ObjectType and replaced related methods
with methods per object type.
- Fix in G4RootAnalysisManager::WriteOnAscii().
Addressing problem report
#1473.
- Improved handling of files: empty files are now removed in CloseFile().
Moved generation of file name in G4VAnalysisManager.
- Fixed deleting fNtuple in G4RootNtupleDescription (the ntuple is deleted
with Root file). Fixed the problem in Root files clean-up.
- Introduced subdirectories: csv, g4tools, hntools, management, root, xml.
Updated build scripts accordingly.
- Adapted to use new interface with namespace for functions in G4Threading.
- Added possibility to define logarithmic binning for H1 and H2.
- Reorganized messenger classes per objects: they are now associated
with the public interface (G4VAnalysisManager).
- Fixed incorrect setting of the list of free blocks in the Root file.
Addressing problem report
#1523.
- Fixed saving binScheme in H2 information.
- Adapted to new namespace interface from G4Threading.
Use thread Id (now available) in generating file names instead
of thread Pid.
- Do not call WriteH1[2]() when no histograms are defined. This allows to
run application which uses only ntuples without a master instance of the
analysis manager.
- Removed static G4AnalysisManager::Create(bool) function; the master/worker
is now identified automatically.
- Reimplemented G4AnalysisManagerState::IsMT() with use of G4Threading
functions.
- Removed virtual declaration for GetH1, GetH2, GetNtuple functions
in manager classes (to follow NVI pattern).
- Updated histogramming tools to g4tools-1.7.0.
Digitization & Hits
- Added Merge() methods to G4ScoringManager and G4VScoringMesh, needed
for multi-threading.
- Changed method names in G4VScoringMesh and derived classes.
- Added missing options in command-based scorers in G4ScoreQuantityMessenger
and G4ScoreQuantityMessengerQCmd.
- Added protoype cloning mechanism for sensitive-detectors, needed for
multi-threaded mode.
- The pointer is now overwritten if a detector of same name is registered
to G4SDManager. Issuing warning from G4SDStructure whene same detector name
is used, if verbose level is set to 1 or higher..
- Issuing warning message if G4VReadOutGeometry is used. Readout geometry
is no longer supported in version 10.0.
- Replaced deprecated calls to G4Sphere accessor methods in scorer classes.
Electromagnetic Processes
Adjoint:
- G4AdjointPhotoElectricModel: use G4PEEffectFluoModel instead of
obsolete G4PEEffectModel.
- Modifications for limitation of convergence peak.
- G4AdjointBremsstrahlungModel: biased the gamma->e.- reverse brem CS
by factor 100.
- G4AdjointComptonModel: biased the CS by a factor 0.1.
- G4ContinuousGainOfEnergy: changed interface to G4VEmFluctuation.
- G4AdjointhMultipleScattering: use G4UrbanMscModel instead of Urban95.
DNA:
- Promoted to thread-global storage following classes:
G4DNAGenericIonManager, G4DNAMolecularMaterial and
G4DNAMolecularReactionTable.
- G4DNASmoluchowskiReactionModel: enhanced exception description.
- G4ITTrackingInteractivity: added Initialize() method to simplify
initialization of daughter classes.
- G4DNAChemistryManager: added AddEmptyLineInOuputFile() method.
- Added G4KDMap utility class.
- Requires new data-set G4EMLOW version 6.35.
- Added G4DNAIons. Adapted G4DNAGenericIonsManager to use of G4DNAIons.
- Fix in G4VITProcess to not override SubtractNumberOfInteractionLengthLeft()
method from G4VProcess, as no longer a virtual methood since release 9.6.
- Enhanced G4DNAChemistryManager to be the main interface exposed to user.
- Removed G4VERBOSE testing in G4DNABrownianTransportation::BuildPhysicsTable().
- Improved MT compatibility.
High Energy
- G4mplIonisationModel, G4mplIonisationWithDeltaModel: changed interface
to G4VEmFluctuations.
- G4hPairProductionModel: substituted SetCurrentElement() by SetElement()
to avoid clash with the base class method.
- G4hBremsstrahlung: use inheritence of G4MuBremsstrahlung; removed
unused headers.
- G4hPairProduction: use inheritence of G4MuPairProduction; removed
unused headers; lowestEnergy limit should not be lower than 8*mass
because in that case the model is not applicable.
- G4hPairProductionModel: do not call obsolete SetElement() method;
use G4Log and G4Exp.
- G4hBremsstrahlungModel: use G4Log.
- G4mplIonisationModel, G4mplIonisationWithDeltaModel: fixed electron
gas ionisation part; before models were working correctly for
very heavy monopoles in Silicon and not accurate for other media.
Low Energy
- G4IonDEDXHandler, G4LivermoreGammaConversionModel,
G4IonParametrisedLossModel, G4PenelopeBremsstrahlungAngular: moved
call to SetSpline(true) to be always after vector is filled; only in
that case Spline interpolation is enabled, according to the most
recent version of G4PhysicsVector.
- G4LowEPComptonModel: fixed numerical problem detected with FPE.
Withdrawn dependency on G4HadTmpUtil.
- Fixed Mi shell cross-section computation in G4teoCrossSection.
- G4AtomicDeexcitation is cloned from G4UAtomicDeexcitation.
- Added protection for MT mode in G4PenelopeRaylModel.
- G4LivermoreRayleighModel, G4LivermoreGammaConversionModel,
G4LivermorePhotoElectricModel: migration to MT. Sharing of internal tables
between threads; added two new methods InitialiseLocal() and
InitialiseForElement().
- Migrated G4LivermoreComptonModel and G4LivermoreBremsstrahlungModel to MT.
Migrated to MT Penelope Bremsstrahlung and e+ annihilation.models; the
angular generator of Penelope Bremsstrahlung is kept thread-local.
Migrated to MT Penelope Compton asnd Ionisation models and related
helper classes (including Penelope PIXE).
Migrated to MT G4PenelopePhotoElectricModel, G4PenelopeRayleighModel
and G4PenelopeGammaConversionModel.
Enforce const for G4PenelopeBremsstrahlungFS methods used by the workers.
- G4IonDEDXScalingICRU73: removed GetIon() for reference Fe and Ar, but use
G4IonTable::GetIonMass() instead to prevent unnecessary instantiation of
ion objects for individual threads.
- Improved CPU performances of G4PenelopePhotoElectricModel.
- G4LivermoreComptonModel, G4LivermoreGammaConversionModel,
G4RayleighAngularGenerator: use G4Log, G4Exp.
- Fixed Exception on G4PenelopeOscillatorManager for specific materials.
- Adopt G4Cache in G4PenelopeBremsstrahlungFS, to better dynamic allocation
in a MT-mode. Avoid deletion of physics-vectors in destruction of Livermore
and Penelope models.
- G4LivermoreGammaConversionModel, G4LivermoreRayleighModel,
G4LivermorePhotoElectricModel, G4LivermoreComptonModel: more accurate read
of data from file at run time. Do not upload data in SampleSecondaries()
method in G4LivermorePhotoElectricModel, instead kill the gamma.
- Added G4MicroElec* processes and models in replacement of G4MuElec*.
- Fixed Coverity defects.
Muons
- G4MuPairProductionModel: extended grid of differential cross-section
tables (from 8 to 40 points in muon energy);
Added check on max energy to reduce number of bins in muon energy.
Providing different initialisation for master and worker threads,
sharing element selectors. Added protection and warning message
if 'p1=p2' in SampleSecondaries().
Changed signature of the method MinPrimaryEnergy().
Replaced calls to pow() with G4Pow.
Reimplemented sampling table as G4ElementData with 2D-tables per
atomic number; rewritten sampling algorithm, data fully shared
between threads. Fixed bining to 1000 for internal sampling table.
Perform common initialisation
of internal variables for all threads; fixes remaining cases of event
non-reproducibility in MT mode.
Merged SetElement() and MaxSecondaryEnergy() methods into one
MaxSecondaryEnergyForElement() to improve performance and event
reproducibility.
Fixed problem with the end of the spectra by cleanup initialisation of
sampling table.
- G4MuMultipleScattering: G4UrbanMscModel is now the default.
- G4MuBremsstrahlungModel: removed 'partialSubSigma' data structure,
use G4ElementSelectors instead; providing different initialisation for
master and worker threads sharing element selectors.
- G4MuBremsstrahlungModel: Reduced 'minThreshold' from 1 keV to 0.9 keV to avoid extra warning
printout.
Fix to avoid unnecessary repeated initialisation of element selectors
if model is shared between particle and anti-particle.
- G4MuPairProductionModel, G4MuBremsstrahlungModel: added
MinPrimaryEnergy() method implementation (all cross-section tables
will start from the reaction threshold).
- G4MuBremsstrahlung: changed signature of method MinPrimaryEnergy().
- G4MuPairProduction: removed unused headers; lowestEnergy limit
should not be lower than 8*mass because the model is not applicable.
Improved initialisation printout.
- G4MuBremsstrahlungModel, G4EnergyLossForExtrapolator, G4MuBetheBlochModel:
use G4Log and G4Exp.
- G4EnergyLossForExtrapolator: substitute G4eBremsstrahlungModel with
G4SeltzerBergerModel. Use cut DBL_MAX to avoid creation of
G4EmSelectors in lazy initialisation.
- G4MuBremsstrahlungModel: set lowest energy to 1 GeV.
Polarisation
- G4ePolarizedBremsstrahlungModel: substitute G4eBremsstrahlungModel with
G4SeltzerBergerModel.
- Corrected destrucor for G4ePolarizedIonisation, G4PolarizedCompton and
G4eplusPolarizedAnnihilation.
Standard
- G4ModifiedTsai, G4PairProductionRelModel, G4WentzelOKandVIxSection,
G4WentzelVIRelXSection: removed obsolete methods and headers.
- G4WentzelVIModel: more clean logic of sampling for single scattering
mode.
- G4UrbanMscModel: copied from G4UrbanMscModel96 and make become default
for G4eMultipleScattering and G4hMultipleScattering.
Modified format of warning about big scatterings.
Modification in SampleCosineTheta() to provide higher stability versus step size.
Modified to use G4Pow.
- Removed obsolete models: G4UrbanMscModel90, G4UrbanMscModel92, G4UrbanMscModel93,
G4UrbanMscModel95, G4UrbanMscModel96, G4eBremsstrahlungModel and
G4PEEffectModel.
- G4PEEffectFluoModel: changed interface to SandiaTable allowing
materials to be shared between threads. Use const pointers to access
Sandia table array; changed access to G4SandiaTable in
ComputeCrossSectionPerAtom() by using pointer of G4MaterialCutsCouple
(before static method was used).
- G4SeltzerBergerModel, G4PAIxSection, G4PAIySection,
G4GoudsmitSaundersonTable, G4GoudsmitSaundersonMscModel: removed
end-line in printout from G4ExceptionDescription.
- G4SeltzerBergerModel: increased 'elowlimit' in method
SamplingSecondaries() from 10 to 20 keV in order to fix problem of
majoranta exceeded in heavy media. Reduced limit on number of warning
printouts. Changed interface to use read-only G4Physics2DVector.
- Fixes issue of zero step length for eIoni, eBrem and annihilation in
flight. Added new geometrical limit 0.01 nm to allow scattering in very
small steps. Use G4Pow in compute transport cross section.
- G4eplusAnnihilation: use G4VParticleChange interface to add
secondary track for more clean weight update; cleanup headers.
- G4eCoulombScatteringModel, G4hCoulombScatteringModel,
G4eSingleCoulombScatteringModel: use G4IonTable::GetIon() instead
of G4ParticleTable interface to create a recoil ion.
- G4KleinNishinaModel: added protection and warning against possible
energy non-conservation due to inconsistency in shell energies.
- G4PEEffectFluoModelL use binding energy from G4LEDATA and not from
G4AtomicShell class in the case when fluoresence is enabled in order
to provide energy balance.
- G4PEEffectFluoModel, G4KleinNishinaModel: correction to ensure energy
conservation when fluorescence is on.
- G4WaterStopping: enable Spline after vector with data is filled,
according to last G4PhysicsVector modifications.
- G4eCoulombScatteringModel: do not use ElementSelectors for ions.
- G4hIonisation: added special treatment for ions.
- G4ScreeningMottCrossSection: fixed numerical problem for very small
scattering angles.
- G4PAIModel, G4PAIySection: fixed initialisation.
Added G4SandiaTable as a class member in G4PAIModel.
G4PAIPhotonModel: added extra methods.
- G4BohrFluctuations, G4IonFluctuations, G4PAIModel, G4PAIPhotonModel,
G4UniversalFluctuation: changed interface to G4VEmFluctuation; in
SampleFluctuations() G4Material pointer is substituted by
G4MaterialCutsCouple pointer.
- G4PAIModel: corrected usage of indexes.
- G4IonFluctuations, G4UniversalFluctuations: use G4Pow for log(), exp(),
pow() in run time methods; expected slightly improve CPU performance.
- G4PAIModelData: new class to handle PAI internal data.
- G4PAIModel: data handling extracted to G4PAIModelData, data class may be
shared between threads. Code cleanup.
- G4BetheBlochModel, G4BraggIonModel: returned back method MinEnergyCut()
in order to protect from cases reported in problem report
#1481.
- G4BetheHeitlerModel, G4KleinNishinaCompton, G4KleinNishinaModel,
G4PairProductionRelModel, G4eBremParametrizedModel: implemented
InitialiseLocal() method in order to share element selectors between threads.
- G4DeltaAngle: angular generator for delta-electrons taking into account
electron motion. Use it in G4PAIModel.
- G4SeltzerBergerModel: sanity check for MT mode when loading data.
- G4BraggModel, G4BraggIonModel, G4BetheBlochModel, G4MollerBhabhaModel:
added possibility to use an angular generator.
- Added new classes G4DeltaAngleFreeScat, G4PAIPhotModel and G4PAIPhotData.
- G4ESTARStopping: added reading from G4LEDATA. Added ESTAR stopping power
data.
- G4WentzelVIModel: added GetWVICrossSection() access method.
- General cleanup of many classes: use G4Log and G4Exp.
Replaced use of std::pow(x,y) with G4Exp(G4Log(x)*y).
Moved 'static const' data initialisations to source to simplify MT setup.
Significant speedup of initialisation and some speedup at run time.
- G4IonCoulombScatteringModel, G4eCoulombScatteringModel,
G4eSingleCoulombScatteringModel, G4hCoulombScatteringModel: if primary
particle is below low-energy threshold and is killed add its energy to
energy deposition and not to recoil energy; no effect on ordinary
simulation results.
- Avoid deletion of physics-vector at destruction in G4ASTARStopping,
G4ESTARStopping, G4PSTARStopping, G4PAIModelData, G4PAIPhotData,
G4PAIModelData, G4PAIPhotData, G4PAIPhotonModel.
- G4eBremsstrahlungRelModel, G4eCoulombScatteringModel: implemented
MinPrimaryEnergy() method needed to set low-energy limit for cross-section
tables.
- G4PAIxSection, G4PAIySection: fixed problem of division by zero.
Utils
- G4VMultipleScattering: reduced geometrical limit from 1 um to 0.01 um;
fixed list of models per multiple-scattering process for ions.
- Removed obsolete classes G4VEnergyLoss, G4VBremAngularDistribution.
- G4VEmProcess, G4VMultipleScattering: removed obsolete methods
SetModel() and Model(). Removed calls to obsolete methods in
G4LossTableManager.
- G4VEmProcess: fixed CrossSectionPerVolume() method, use extra 'tablePrim'
for high energy if this table is defined.
- G4ionEffectiveCharge: static array become "const G4double".
- G4LossTableManager, G4EmModelManager: removed end-line from description
of exceptions.
- G4VEnergyLossProcess, G4VEmProcess: clean up filling of secondary
particles to particle change; use AddSecondary() from G4VParticleChange
in all cases; little performance improvement expected.
Density factor correction array is assigned to a process in
BuildPhysicsTable() instead of PreparePhysicsTable() in order to get
correct pointers in worker threads.
- G4VEnergyLossProcess: avoid unnecessary deletion of tables between
runs. Fixed CrossSectionPerVolume() method.
Make ion initialisation assuming that each ion may have an individual
process. Do not destroy old tables in worker thread for the new run.
Added local cache inside GetRangeForLoss() method.
- G4VEmModel: added extra methods needed for MT: InitialiseLocal(),
InitialiseForMaterial(), InitialiseForElement(), GetElementSelectors().
Take into account reaction threshold when initialising
G4EmElementSelectors; set smallest number of bins to 3 (was 5) and
fixed initialisation. Fixed SetCrossSectionTable() method.
- G4VEnergyLossProcess, G4VEmProcess, G4VEmModel, G4VMscModel: introduced
cache for indexes in tables to restore CPU performance after change
made to G4PhysicsVector, now read-only.
- G4EmCalculator: added call to InitialiseForMaterial() to give
possibility to a model to read data in any thread.
- G4LossTableBuilder: optimized number of bins for tables built for
models.
- G4LossTableManager: added new method to provide correct copy and setup
process parameters in MT mode. Optimisation for MT mode; do not insert
concrete ions into particle/energy loss process map, only G4GenericIon
is inserted; added LocalPhysicsTables() method to copy pointers of
G4PhysicsTables from master to local threads.
- G4LossTableManager, G4VEnergyLossProcess, G4VMultipleScattering,
G4VEmModel, G4VMscModel: implemented copy of transport cross-sections
tables from master to worker threads; implemented a possibility to copy
element selectors from master to worker threads (model may use or not
this feature).
- G4VEmFluctuationModel changed interface in SampleFluctuations() method;
G4Material pointer is substituted by G4MaterialCutsCouple pointer.
Change required by PAI model
Changed interface to G4VEmFluctuationModel in G4VEnergyLossProcess.
- G4EmModelManager: check MinEnergyCut() method.
Addressing probkem report
#1481.
- G4VEmProcess, G4LossTableManager: added master/worker initialisation
to discrete processes.
- G4VEnergyLossProcess, G4VMultipleScattering: use GetMasterProcess()
method in PreparePhysicsTable() and BuildPhysicsTable() methods.
- G4VEmAngularDistribution: added extra virtual method
SampleDirectionForShell().
- G4VMultipleScattering: increased lowestLimit from 1 eV to 10 eV.
Added Get/Set methods for this parameter. Urban multiple-scattering model
cannot handle low-energy e- below 10 eV.
- G4EmModelManager: fixed control on cut value per G4Region, the problem was
observed when PAI model is used in a some region with very low cut.
- G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation: added model ID
for secondary tracks (allows to user code to distingwish secondary gamma
and electrons generated by atomic de-excitation model).
- G4VEmModel: added extra flag 'useAngularGenerator' and Get/Set methods.
Added extra method SelectRandomAtomNumber().
Fixed bug in Fano-Cavity test: element selectors are created even if cut
value is high.
- G4EnergyLossMessenger, G4EmProcessOptions: added UI command and interface
to set verbose level for worker thread.
- New class G4AngleDirect, dummy angular generator.
- G4ionEffectiveCharge: use G4Log, G4Exp, G4Pow.
- Adopt G4ThreadLocalSingleton in definition of G4LossTableManager.
Avoid deletion of physics-vector at destruction in G4VEmProcess,
G4VEnergyLossProcess and G4VEmModel.
- G4VEmProcess, G4VEnergyLossProcess: fixed bug in GPIL computation when a
particle enters a volume in which current EM model has different activation
energy range than in previous region (due to this bug interation happens
on the boundary of G4Region in microdosimetry advanced example).
- G4VEmModel: improved definition of min and max energy for element selectors.
- Fixed Coverity defects.
Xrays
- G4Scintillation: for consistency, give the 'YieldRatio' priority in
cases when the 'ExcitationRatio' is both 0.0 or 1.0.
Fixed bug in 'ScintillationYieldByParticleType' mode to correctly
produce photons for nonlinear scintillators, accounting for variable
particle step size in the scintillator (dependent on tracking and
production cuts) and attempting to best simulate photon density along
the particle track.
Fixed incorrect call to GetMaxValue() with GetMaxEnergy().
- G4Cerenkov, G4Scintillation: added BuildPhysicsTable() method which is
doing initialisation as before but at the moment when material list is
fully defined; it is assumed that the list of materials is not changed
for the next runs.
- G4VXTRenergyLoss, G4StrawTubeXTRadiator: use const declaration to
array of G4SandiaTable values.
- G4SynchrotronRadiation: added interface to G4VEmAngularDistribution
and use G4DipBustGenerator by default.
Error Propagation
- Adapted code to implemented changes for split-class mechanism of base
class G4VUserPhysicsList (needed for multi-threading).
- G4ErrorPhysicsList: remove inclusion of unnecessary header.
Event
- G4ParticleGunMessenger: added UI command 'ionLvlCmd' so that particle
gun can shoot ions with integer isomer level. Added 'ionL' command to
G4GeneralParticleSourceMessenger.
- G4ParticleGunMessenger: /gun/particle commands now consults to the particle
table for all available particles except general ions.
- Fix the way of detecting improper process manager.
Fix incorrect initialization in G4ParticleGunMessenger class for
/gun/ionL command.
- Remove G4ParticleTable::GetIon() and use G4IonTable::GetIon() instead.
- Modified adjoint classes to migrate to the new RMC schema where reverse
and forward trackings of equivalent adjoint and forward primaries are
processed in same events, in preparation for the migration to MT mode.
Externals
- Updated CLHEP module to version 2.1.4.1:
- Added RandGaussZiggurat and RandExpZiggurat distributions.
- Added new units for Radioactivity: kilo/mega/gigabecquerel,
milli/microcurie.
- Added internal zlib module, moved from visualization/externals.
Updated package to zlib-1.2.7, now shipping the full library including
the reader. Adapted package structure, code and CMake scripts.
- Added 'tpmalloc' and 'memoryprotection' utility modules (currently
disabled).
General Processes
- Biasing
- New directory structure to introduce generic biasing framework classes:
biasing/management, biasing/generic, biasing/importance.
- Previously existing 'importance' classes are moved to biasing/importance,
except G4VProcessPlacer and G4ProcessPlacer moved to biasing/management.
- Contents:
- biasing/management:
- G4VBiasingOperation, G4VBiasingOperator and G4VBiasingInteractionLaw,
for biasing modeling,
- and satellite classes G4BiasingAppliedCase, G4BiasingOperationManager,
G4BiasingTrackData, G4BiasingTrackDataStore.
- biasing/generic:
- G4BiasingProcessInterface, G4ParticleChangeForNothing,
G4ParticleChangeForOccurenceBiasing, for biasing-tracking interface.
- Concrete implementations of biasing modeling classes :
G4VBiasingOperator : G4BOptrForceCollision ;
G4VBiasingOperation : G4BOptnChangeCrossSection, G4BOptnCloning,
G4BOptnForceCommonTruncatedExp, G4BOptnForceFreeFlight, G4BOptrForceCollision ;
G4VBiasingInteractionLaw : G4InteractionLawPhysical, G4ILawTruncatedExp,
G4ILawCommonTruncatedExp, G4ILawForceFreeFlight.
- G4BiasingHelper: utility class to help setting G4BiasingProcessInterface
instances properly in a G4ProcessManager. Used in particular by
limiters/G4GenericBiasingPhysics physics constructor.
- biasing/importance:
- collects previously existing 'importance' classes in old substructure-less
biasing directory except for
- G4VProcessPlacer and G4ProcessPlacer moved to biasing/management.
- Migrated geometrical importance biasing to work in MT mode.
- Cuts
- Modified G4RToEConvFor* classes removing unnecessary static
declarations for local variables and moved to be simple members
of the class.
- Fixed all loops for G4PhysicsLogVector: upper index is nbins+1.
Stop calling Reset() from its destructor (now controlled in
run-manager).
- Fix bug in G4ProductionCuts copy constructor.
- Management
- Added shadow master-thread pointer to G4VProcess and modifiers methods.
required for new design of sharing of tables (EM & HAD) for
multi-threading.
Added worker initialization virtual method for multi-threading.
- Remove unused and obsolete intermediate layer classes
G4IVContinuousDiscreteProcess and G4IVRestDiscreteProcess.
- Now G4VProcess::SubtractNumberOfInteractionLengthLeft() is inlined.
- Corrected name for G4Upsilon meson.
- Added process type for phonon processes to G4ProcessType.
- Optical
- Added capability of simulating the transmission of a dichronic filter;
in this first implementation, the photon is either reflected or
transmitted without changing direction. Also requierd to supply a 2D
data file with the format and properly set the environment variable
G4DICHROICDATA to point to the dichroic.data file.
- Fix for WLS photons to have a longer wavelength than the photon being
absorbed/shifted. Addressing report from G4Hypernews Forum #509.
- G4OpWLS and G4OpRayleigh: added BuildPhysicsTable() method which is
doing as before but at the moment when material list is fully defined.
- Fixes in made G4OpBoundaryProcess to work properly with parallel worlds.
- G4OpBoundaryProcess now invokes the ProcessHit() method of the sensitive
detector associated with the PostStepPoint volume when optical photons are
detected at the entrance boundary.
- Fixed assignment of status for Dichroic.
- Fixed Coverity defects in G4OpBoundaryProcess.
- Phonon
- New module containing processes for phonon propagation and interaction
in materials: G4LatticeManager, G4LatticeReader, G4PhononDownconversion,
G4PhononPolarization, G4PhononReflection, G4PhononScattering,
G4PhononTrackMap, G4VPhononProcess.
- Scoring
- Removed unnecessary printout.
- Transportation
- Adapted G4Transportation and G4CoupledTransportation to use
G4ChargeState for charge/spin/magnetic moment, and to message the
equation of motion directly with it.
- Initialize missing data members in G4CoupledTransportation constructor
Addresses issue identified by Coverity.
Geometry
- Removed deprecated BREPs module.
- Removed obsolete classes G4VCellScorer and G4VCellScorerStore.
- Removed references to NURBS from all solids.
- Biasing
- Adapted to support running in MT-mode. G4IStore and G4WeightWindowStore
are now shared singletons; added Clear(), SetWorldVolume() and
SetParallelWorldVolume() methods.
- Divisions
- Adaptation to splitted G4Polycone into G4GenericPolycone.
- Added G4Ellipsoid among solids enabled for parameterisation.
- Magnetic field
- Introduced new class G4ChargeState to hold charge, spin, magnetic
moment. Changed the signature of SetChargeMomentumMass() in
G4EquationOfMotion to take G4ChargeState as first argument.
- Revised number of field components (to allow up to 24).
18 are required for new applications (B, E, Gravity, B-gradients).
- Deleted SetChargeMomentumMass*() from G4ChordFinder,
G4PropagatorInField and G4MagInt_Driver.
- Prevent case of division by zero and shortcut spin tracking for
spin==0 particles in G4Mag_SpinEqRhs, G4EqEMFieldWithSpin and
G4EqEMFieldWithEDM.
- First implementation of cloning mechanism, needed for multi-threaded
mode.
- Added new G4RepleteEofM class, EofM that includes force due to B, E,
and gravity field as well as mu*grad(B) and spin tracking.
- Fixed and improved HelixMixed Stepper: corrected the default stepper for
small steps to be ClassicalRK4. Added Angle-threshold parameter (default
remains 0.33 radians). Added more Steppers, including G4NystromRK4.
Revised Id numbers of steppers, to make the best more visible.
- Management
- Added splitter class G4GeomSplitter for MT splitting mechanism.
- Added geomwdef.hh header including definition of G4GEOM_DLL flag for
import/export of symbols for Windows DLL build.
- Added method UseWorkspace() to G4GeomSplitter for handling of thread-local
allocated memory in geometry.
- Minor cleanup to G4LogicalVolume and G4VPhysicalVolume: moved description
of helper classes to bottom of headers, and macros to .icc files; revised
source code to use Get/Set methods in place of 'macros' for MT.
- G4LogicalVolume: added AssignFieldManager() method and new methods for
handling workspace data.
- Fix to G4VSolid::EstimateCubicVolume() to make proper use of specified
accuracy. Addressing problem report
#1493.
- Added parameter to specify maximum number of overlap errors to report
in G4VPhysicalVolume::CheckOverlaps().
- Added methods G4VPhysicalVolume::VolumeType() and
G4LogicalVolume::CharacteriseDaughters() to be used by G4Navigator.
- Added G4Ellipsoid among solids enabled for parameterisation.
- Navigation
- Archived GeomTest* classes for overlaps checking through grid/cylinder
lines. UI commands are replaced with calls to built-in overlaps checking
based on random points located in surface. Defined commands are:
- /geometry/test/tolerance [double] [unit]
-- to define tolerance by which overlaps should not be reported.
Default is '0'.
- /geometry/test/verbosity [bool]
-- to set verbosity mode. Default is 'true'.
- /geometry/test/resolution [int]
-- to establish the number of points on surface to be generated
and checked for each volume. Default is '10000'.
- /geometry/test/recursion_start [int]
-- to set the starting depth level in the volumes tree from where
checking overlaps. Default is level '0'.
- /geometry/test/recursion_depth [int]
-- to set the total depth in the volume tree for checking overlaps.
Default is '-1', which means checking the whole tree.
- /geometry/test/maximum_errors [int]
-- to fix the threshold for maximum number of errors to report
for overlaps from a volume.
- /geometry/test/run
-- to start overlaps checking recursively through the volumes tree.
- G4Navigator: added new helper object G4VoxelSafety owned by a navigator
instance, to avoid including header it is stored as pointer.
Resolving an issue with multi-threading.
Made copy-ctor and assignment operator private, as not supposed to be
copied or cloned.
- G4MultiNavigator: fixed use of enum as Boolean in GetGlobalExitNormal().
- G4VoxelSafety: corrected calculation of edges of voxels.
Identified when point's coordinate is beyond the range of voxels.
Made new safety (from G4VoxelSafety) the default in G4Navigator.
- G4PropagatorInField: deleted SetChargeMomentumMass() method.
- G4SafetyHelper: added protection against storing 'fake' safety.
- Rationalised implementation of VolumeType() and CharacteriseDaughters()
in G4Navigator, to use implementation now provided in G4VPhysicalVolume
and G4LogicalVolume respectively.
- Added G4Ellipsoid among solids enabled for parameterisation in
G4PhantomParameterisation.
- Added new messenger class G4GlobalMagFieldMessenger defining UI commands
for creating/deleting the global uniform magnetic field and
activating/inactivating it according to the set field value.
- Relaxed condition for reported move in G4PathFinder::Locate() to exclude
reports for intentional pushes.
- Solids (CSG)
- Corrected sanity check for wrong/small dimensions in G4Box constructor.
- Correctly initialise fSPhi to zero in G4Sphere constructor.
- Moved function-scoped 'static const' values for half-tolerances to private
data members of classes, to overcome false-positive race-conditions defects
reported by Valgrind in MT mode.
- Added switch mechanism for USolids (box, cons, orb, sphere, trd, tubs).
Added related G4U* wrappers for enabling use of USolids implementation.
Defined temporary class G4OTubs to be used internally by G4CutTubs,
in provision to have UCutTubs in the USolids library.
- Solids (Specific)
- Fixed import/export of static symbols for WIN32 DLLs build.
- Fix in G4SurfaceVoxelizer affecting tessellated-solid (and extruded-solid)
for incorerct computation of DistanceToIn(p,v) for points outside, when
optimisation is active.
- Fix in G4TessellatedSolid::DistanceToIn(p,v) for specific cases where points
are located near surface.
- Enabled G4Ellipsoid for parameterisation.
- Created G4SolidsWorkspace and G4SolidsWorkspacePool classes, to create,
initialize and destroy per-thread state of polyCone and polyHedra Sides.
- Split G4Polycone to now treat only polycones with increasing Z-sections.
Introduced new class G4GenericPolycone for polycones with decreasing
Z-sections.
- Extended method SetOriginalParameters() in G4Polycone in order to handle
all possible cases of conversion of generic polycone to polycone with
(Rmin,Rmaz,Z) parameters. Addressing problem report
#1462.
- Fixed conversion of generic construct for G4Polyhedra.
Fix for in G4Polyhedra::SetOriginalParameters().
- Moved G4PolyconeHistorical and G4PolyhedraHistorical to separate
translation units.
- Added switch mechanism for USolids (generic-polycone, polycone,
polyhedra, tet).
Added related G4U* wrappers for enabling use of USolids implementation.
- Move function-scoped 'static const' values for half-tolerances to private
data members of classes, to overcome false-positive race-conditions defects
reported by Valgrind in MT mode.
- Solids (USolids)
- Imported classes from the
AIDA Unified Solids Library
Enabled by adopying compiler flag G4GEOM_USE_USOLIDS.
Shapes provided: Ubox, Ucons, UGenericPolycone, UOrb, UPolycone, UPolyhedra,
USphere, UTet, UTrd, UTubs. Includes bridge class G4USolid.
- Volumes
- Added parameter to specify maximum number of overlap errors to report.
Adapted code in CheckOverlaps() in G4PVPlacement and G4PVParameterised
to take into account the threshold.
- Added new classes G4GeometryWorkspace and G4GeometryWorkspacePool, to
create and manage thread-local data and keep workspace objects
respectively.
Separated functionality for Solids (PCone/PHedra Sides) from
G4GeometryWorkspace into separate class G4SolidsWorkspace in
solids/specific.
Global
- Introduced G4Log and G4Exp headers for fast log and exp; converted from
the VDT library.
Make them matching to std::exp and std::log on Windows plaatform.
Adopt them within G4Pow and G4Poisson. Expected slight performance boost.
- G4PhysicsVector, G4Physics2DVector: modified to become read-only classes;
removed use of cache and related classes.
Modified signature of methods accordingly.
- G4PhysicsVector: make FindBin() method public, added method FindLinearEnergy()
for sampling of energy for vectors with cumulative probability function.
- Fix in G4PhysicsVector::FindBinLocation() to add extra checks for Log/Lin
vectors to avoid rare cases when bin is computed incorrectly due to limited
numerical precision of computations.
The method is now inlined and not virtual; using table type different
algorithms to compute bin number; using G4Log.
- Removed FindBinLocation method from G4PhysicsLogVector, G4PhysicsLinearVector,
G4PhysicsOrderedFreeVector, G4LPhysicsFreeVector, G4PhysicsFreeVector and
G4PhysicsLnVector.
- G4Physics2DVector: make FindBinLocationX() and FindBinLocationY()
methods public, added method FindLinearX for() sampling of energy for 2D
cumulative probability functions; added new inline method Value() with
different signature.
- G4Pow: added new methods logX() and expA(); improved accuracy of
logA(), A13(), log10A() and powA(): now all these methods provide
accuracy better than 0.1% for any value of argument.
Added post-const qualifier to all methods.
- Introduced G4AllocatorList class to store pointers of all G4Allocator
objects for each thread so that they can all be cleanly deleted at
program termination. Added G4AllocatorBase base class defining virtual
destructor and virtual utility methods for G4Allocator.
- Added call to clear() in G4PhysicsTable::clearAndDestroy().
- G4StatDouble: added new method add(G4StatDouble*) to be used in MT mode.
- G4ConvergenceTester: tuning format of output result.
- Added 'safe' inclusion of from G4Threading.hh, in new
header windefs.hh. Simplified setup for import/export flags on Windows.
- Added first version of stack backtrace in G4FPEDetection when FPE
exception is detected (Linux only).
- Added new classes implementing platform independent threading
G4AutoLock and G4Threading.
Added IsWorkerThread(), G4GetNumberOfCores() and G4GetThreadId() global
helper functions.
- New G4Cache classes for handling thread-private data members in shared
objects.
- Added G4ThreadPrivateSingleton class for thread-private singleton
handling and G4AutoDelete namespace with utility function for
simplified garbage-collection.
- Generalised flags for MacOS multi-threaded mode.
- Added new cout streaming for MT: on file and with header at each line
with optional buffering.
- G4MTcoutDestination now has a capability of printing out only for
the selected thread to make the display readable.
- Code cleanup for HEPRandom module and new introduced MT classes.
Added G4heprandom sub-library to the build system.
- Corrected MT defects identified by DRD: protected G4MTcoutDestination;
corrected check of already-locked condition for G4AutoLock; protected
creation of shared resource in G4MTHepRandom.
Add namespace 'G4Threading' to functions defined in G4Threading unit.
- New class G4PhysicsModelCatalog to be used by physics models and G4Track.
- Enable MT mode for MacOSX with gcc >= 4.7.
- Update date of release for 10.0.
Graphical Representations
- Introducing G4VVisManager::IgnoreStateChanges() virtual method.
This method should be invoked by a class that has its own event loop,
such as the RayTracer, material scanner, etc. If the argument is true,
the following state changes among 'Idle', 'GeomClosed' and 'EventProc' are
ignored. The same method with false should be invoked once such an
event loop is over.
- Added dummy += operator to G4Colour.
- Added GetExtent() method in G4VGraphicsScene.
Hadronic Processes
- Removed deprecated CHIPS classes and modules.
- Removed obsolete models 'isotope_production', 'high_energy' and 'low_energy'.
- Renamed model 'lll_fission' to 'fission'.
- Cross sections
- Fixed old outstanding bugs in G4ChipsProtonInelasticXS and
G4ChipsNeutronInelasticXS.
- G4HadronCrossSection: fix in IsApplicable() method, return false
if particle is not in the list and not G4HadronicException.
- Use GetNaturalAbundanceFlag() for elements in G4CrossSectionDataStore.
Fixed logic to compute cross-section for not natural isotopes.
- G4NeutronCaptureXS, G4NeutronInelasticXS: set 'IsIsoApplicable' to
"true". Cleaned up isotope data retrieve.
- Adapted mechansim of cross-section factories to work with MT
applications. Factory registry is now a class on its own and it is
shared among threads. TLS CrossSectionDataSetRegistry accesses the
shared resource to get the cross-sections. Cross-sections data sets
can be created now per-thread or shared.
- Fixed access to ions via the G4IonTable class and GetIon() method.
- G4BGGNucleonInelasticXS: reduced number of operation in the
CoulombFactor method. Use G4Pow to compute Coulomb correction factor
(some CPU improvement). Added threashold of 1 millibarn; if
cross-section is less, it is set to zero.
- G4BGGNucleonElasticXS: added Coulomb barrier for protons (as in
G4BGGNucleonInelasticXS); for Hydrogen target added linear
approximation between SAID data and PDG data: SAID upper energy
3.3 GeV, PDG low energy 5 GeV.
- Made verbose level modifiers in G4VCrossSectionDataSet into virtual
functions.
- Use G4Exception instead of G4HadronicException for flagging incorrect
use/setting of SAID data set.
- Major clean up and restructuring in G4ElectroNuclearCrossSection
and G4PhotoNuclearCrossSection. Calculation is now done for average N.
Replacing 'per isotope' methods by 'per element'.
Adopting cross-section factory.
- G4ComponentSAIDTotalXS, G4NeutronElasticXS, G4UPiNuclearCrossSection:
avoid deletion of physics-vectors at destruction.
- Fixed Coverity defects.
- Management
- Added material in G4HadronicProcessStore::GetCrossSectionPerAtom().
Improved dump text in processes summary.
- Added dump method in G4EnergyRangeManager.
- Models Management:
- Reduced limit for "fatal" energy non-conservation from (10% && 5 GeV)
to (2% && 1 GeV).
- Made verbose level modifiers in G4HadronicInteraction into virtual
functions.
- Removed obsolete classes G4VIsotopeProduction and G4IsoParticleChange.
- Stopping
- G4MuonMinusCaptureAtRest: fix to access ions via G4IonTable class
and GetIon() method.
- Replaced native PreCompound model with Bertini in G4MuonMinusCapture.
- Removed deprecated stopping classes.
- Fixed Coverity defects.
- Utility
- Added family of "phase space" generator functions, intended to replace
model-specific redundancies. G4HadDecayGenerator provides a simple
interface, with algorithm selection handled via constructor argument.
- Protect LorentzContraction for at Rest nucleus.
- Fixed warning in G4NuclearShellModelDensity.
- ABLA
- Restored ABLA model to work in conjuction with INCL++.
Fixed case of segmentation-fault on the production of exotic fragments.
- Requires G4ABLA-3.0 data set, controlled by G4ABLADATA flag for path.
- Bertini Cascade
- Added new cross-section data to G4CascadeT1GamNChannel.
- Introduced muon-capture handling, with new particle types and
three-body muon-dibaryon interactions.
- Introduced multi-body final state momentum distribution classes and
factory, modelled on the two-body angular distribution system.
- Added detailed two-body final state angular distributions for (gamma,p)
and (gamma,n) reactions, using tables of numerical integrals to sample
cos(theta).
- Added detailed two-body final state angular distributions for
pp->pp, nn->nn, and np->np, using numerically integrated SAID
cross-sections and pp scattering data. For pp, below 2.75 GeV SAID
calculations were used with Coulomb interactions turned off.
- New interface for momentum and angular distribution generators,
subclasses of new class G4VHadDecayAlgorithm in "models/util" module.
- G4TwoBodyAngularDist: added interface to access three-body
distributions, used in G4CascadeFinalStateAlgorithm.
- G4CascadeChannelTables: implemented global Print() function which dumps
all tables registered in map. Converted class to thread-local
singleton.
- G4ElementaryParticleCollider: allow direct grouping by initial
state. Replaced kinematics generation, except for pion-dibaryon
absorption, with G4CascadeFinalStateGenerator. Simplified
implementation of collide() method.
- G4IntraNucleiCascader: added exciton and trapped-decay info to history.
- G4InuclSpecialFunctions: added new randomInuclPowers() function to
compute power expansion of random value for momentum and cos(theta)
distributions.
- G4NucleiModel: Added function to select random point along
particle's trajectory, weighted according to nuclear density and
cross-sections, use with incident photons at initial step to
nucleus. Fixed rare cases of non-reproducibility in
generateParticleFate(). Fixed access to ions via the G4IonTable
class.
- Reorganised de-excitation modules to use G4Fragment throughout process.
Only final ground-state nucleus will be instantiated as a G4InuclNuclei
object. This should substantially reduce the load on G4IonTable in multi-
thread operations.
- G4CascadeDeexciteBase: new concrete subclass of G4VCascadeDeexcitation.
Takes over "operational" support from G4CascadeColliderBase, including
explosion() functions, local copy of G4CascadeCheckBalance, and
conservation checking functions. Provides utilities to extract common
data from input G4Fragment for all modules, and to construct a G4Fragment.
- Improved encapsulation of pion and muon absorption through dibaryons.
- G4CascadeCheckBalance: added interface to take G4Fragment initial state.
G4InuclCollider: use G4Fragment interface to de-excitation modules.
- G4CascadeParameters: added new flag to perform internal conservation checks.
Use such run-time flag in G4CascadeColliderBase to conditionally instantiate
CheckBalance. G4EquilibriumEvaporator: removed turning-off of conservation
checks after fission.
- G4CascadeParameters, G4CascadeParamMessenger: added new environment
variable, G4CASCADE_USE_PHASESPACE, and associated functions, to switch
between multiparameter and Kopylov N-body generators.
- G4CascadeFinalStateAlgorithm: added Kopylov N-body phase space generation,
with function code copied from G4HadPhaseSpaceKopylov.
- Added use of "Id" and "Name" keywords where missing.
- Moved local statics to file scope to avoid thread collisions.
Fixes for thread safety in G4InuclSpecialFunctions,
G4*EquilibriumEvaporator and paraMaker.
- G4InuclParticleNames: provide particle identification functions,
equivalent to those in G4InuclElementaryParticle, for direct use of
type codes.
G4InuclElementaryParticle: replaced identification functions with calls
through to new G4InuclParticleNames functions.
- G4CascadeInterface: replacing "Z=1" with "Z==1" in Boolean ternary
operation. Addressing problem report
#1513.
- Replaced usage of std::log, std::exp, and std::pow with G4Log, G4Exp
and G4Pow functions with faster polynomial implementations respectively.
- G4EquilibriumEvaporator, G4NucleiModel: fixed to avoid race condition
in MT mode.
- Removed obsolete directories 'evaporation' and 'utils'.
- Fixes for coverity defects.
- Binary Cascade
- Implemented interface to Precompound model for nucleus-nucleus
interactions at high (> 2GeV/N).
- Use of simplified G4GeneratorPrecompoundInterface::Propagate() for
hadron-nucleus interactions and adoption of PropagateNuclNucl() for
simulation of nucleus-nucleus interactions.
- G4RKFieldIntegrator: make static array in fuction a const array.
- Revised signature of method SetChargeMomentumMass() for fields in
G4KM_NucleonEqRhs and G4KM_OpticalEqRhs). Made these virtual methods
non-inline.
- Added cloning of Dummy Field, required for multi-threading.
- G4BinaryCascade, G4BinaryLightIonCascade: fixed infinite exception
output by removing G4Fragment.SetParticleDefinition() for ions.
Ion definition is not used inside G4Fragment class.
- G4BinaryCascade: fixed typo. Addressing problem report
#1511.
- De-excitation
- G4StatMF, G4StatMFMicroCanonical, G4StatMFMicroManager,
G4StatMFMicroPartition: use integer Z and A.
- G4VEvaporationChannel: added virtual method GetLifeTime().
- G4StatMFParameters, G4FermiFragmentsPool, G4PairingCorrection,
G4ShellCorrection are now singletons initialised once and shared
between threads.
Made G4Cameron*Corrections and G4Cook*Corrections classes
no longer singleton but simple utility classes keeping static data
which is initialised once.
Modified G4EvaporationLevelDensityParameter and G4FissionBarrier
accordingly.
- G4PhotonEvaporation: correctly propagate time limit to discrete
de-excitation. Changed time limit to 1 microsecond to be coherent with
the isomere table.
- G4ExcitationHandler: use new methods from particle category to
find isomere via level index. Added check if an ion exist in isotope
table.
- G4ExcitationHandler: fixed typo in SetMaxAForFermiBreakUp() method.
- G4WilsonAblationModel: fixed typo and added warning that the model
is not well validated.
- G4ContinuumGammaTransition: use G4UniformRand and a simple algorithm
to sample continuous gamma transition instead of G4RandGeneralTmp;
changed number of bins for sampling to 100 instead of 200
Deleted redundant class G4RandGeneralTmp.
- G4NeutronRadCapture: added isomere production according to the updated
MT interface; added time propagation (correct time for delaied capture).
- Use G4Log and G4Exp instead of standard math functions.
- Fixes for compilation issues detected on Windows/VC18
from Visual-Studio 12.
- G4NeutronRadCapture, G4ExcitationHandler: changed max isomer level
number to 8 (before was 9) due to limitations of PDG encoding.
- Fixes for Coverity defects.
- Elastic scattering
- G4NuclNuclDiffuseElastic: moved long methods from inline to source.
- Fixed access to ions via the G4IonTable class and GetIon() method
in G4DiffuseElastic and G4NuclNuclDiffuseElastic.
- Electromagnetic dissociation
- Fixed memory leak of products from G4ExcitationHandler.
- Fission
- New module directory copy of 'lll_fission' with addition of the LEP
fission class, G4LFission.
- High Energy Theoretical
- Added interface for manipulation of nucleus-nucleus interactions.
- Fixed access to ions via the G4IonTable class and GetIon() method
in G4QuasiElasticChannel.
- Removed deprecated G4ProjectileDiffractiveChannel class.
- Im_r_matrix
- Fixes for multi-threading: make static arrays const to avoid having
these thread-local.
- Fixes for coverity defects.
- INCLXX
- Updated to INCL++ v5.1.14: relies on pre-compound for reactions below
1 MeV (configurable via the G4INCLXXInterfaceMessenger);
use pre-compound only for incident nucleons.
- Several adjustments in the nucleus-nucleus sector.
Fixed critical bug which involved light targets. Some code refactoring.
- Experimental support for neutron skins.
- Experimental support for fuzzy r-p correlations.
- Debug output controlled by G4INCL_DEBUG_VERBOSITY environment variable.
- Rely on BIC for pion-nucleon and nucleon-nucleon reactions.
- Fix crash for light targets.
- Replaced defines in G4INCLLogger by adding prefix "INCL_" to avoid
clashes with specific macros defined in Windows system.
Adapted code accordingly.
- Adapted some of the MT modifications and some code refactoring.
- Fixed crash in very low-energy (~1 MeV) p+He4 reactions and in
light-ion-induced reactions.
- Largely reduced memory churn. Get rid of calls to
G4ParticleTable::GetIonTable() and GetIon().
- Prepare the G4INCLXXInterface to handle different de-excitation models
through the SetDeExcitation() method.
- Resample interaction if four-momentum conservation is violated.
- Fixed bug in forced pion emission at the end of cascade and in
phase-space decay of exotic clusters.
- Several other minor fixes and code refactoring.
- Lend
- Changed default evaluation from endl99 to ENDF.B-VII.0.
- G4LENDManager: made sensitive to isomer level of isotope in material.
- Fixed Coverity defects in G4LENDManager, G4LENDModel and
G4LENDCrossSection.
- Lepto-nuclear
- Adapted to use GetElementCrossSection() from
G4PhotoNuclearCrossSection.
- Removed redundant check for cross-section greater than zero.
Removed unused variables.
- Neutron High Precision
- Modified code to allow for reading compressed data files.
Adapted build setup to use zlib library.
- Deleted deprecated HP or low-energy parameterization models and data
sets.
- G4NeutronHPFinalState: added capability to disable adjustment of final
state photons in capture. Addressing problem report
#1279.
- Added package-wise verbose level control. Allow for suppression of
warning messages from G4NeutronHPName through verbosity level.
- Removed call to BuildPhysicsTable() from constructor in G4Neutron*Data
classes.
- Added capability to register user prepared thermal scattering file.
- Enable use of single temperature data file.
- New implementation of fission fragments generator.
- Fixed problem on Wendt model and various compilation warnings.
- Fixed problem on Windows platform to echo environment variable.
- Made data arrays 'const' in place of thread-local in
G4NeutronHPFastLegendre and its source files.
- Fix for extrapolation problem.
- Change call to G4ParticleTable::GetParticleTable()->GetIon() to
G4IonTable::GetIonTable()->GetIon(), according to recent intrerface.
- Requires new data set G4NDL-4.4.
- Parton-String
- Improved interface for manipulation of nucleus-nucleus interactions.
Lowered low energy limit of FTF model. Expected no problem with high
energy interactions. Simulation of anti-nuclei can be affected.
Fixed energy-momentum non-conservation in AA-interactions.
- Added implementation of nucl-nucl interaction simulation.
- Improved annihilation at rest simulation.
- Fixed bug in Reggeon cascading.
- Fixed cases of division by zero in G4FTFAnnihilation and
G4FTFParameters.
- New parameterizations of FTF process cross-sections.
Returning 10% of Delta-isobar probability.
Reaching better description of experimental data on hP, hA interactions.
Results of FTF become close to QGSM, especially for heavy targets.
- Replaced use of CLHEP::RandFlat with G4RandFlat in G4DiffractiveExcitation.
- Fixed two bugs in the index manipulation of the BaryonWeight
4-dimensional vector in G4LundStringFragmentation.
- Code clean-up and formatting.
- Pre-equilibrium
- G4HETCFragment, G4LowEIonFragmentation, G4GNASHTransitions: use
integer Z and A.
- G4PreCompoundParameters: make it as a normal class not singleton.
- G4GNASHTransitions: more accurate definition of static data.
- G4PreCompoundModel: fixed logic of "soft-cutoff" option.
- Use G4Log and G4Exp instead of standard math functions in
G4PreCompoundModel, G4PreCompoundEmission and G4PreCompoundProton.
- QMD Reaction
- Change call to G4ParticleTable::GetParticleTable()->GetIon() to
G4IonTable::GetIonTable()->GetIon(), according to recent intrerface.
- Fixed double deletion problem on G4QMDCollision.
- Fixed most Coverity defects.
- Radioactive Decay
- G4RIsotopeTable: fix in checking if DB files have been loaded
(accessing map without protection).
- G4RadioactiveDecay: moved initialisation of Isotope table from
constructor to BuildPhysicsTable() method.
Initialise Isotope table only for master.
Fixed memory leak by adding deletion of the IsotopeTable to destructor.
Removed setting of nuclear decay tables to G4ParticleDefinition and
replaced with local decay table map to fix issues with multi-threading.
Remove IsLoaded() method and data member, now redundant.
Move registry of isotope table from BuildPhysicsTable()
to constructor (fixing problem of missing secondaries for MT).
Fix in LoadDecayTable() to read data file only once in MT mode.
Search internal library of decay tables in GetDecayTable(), using name
of ion, not integer key (fixing "level 9" problem).
Fix end-point energy loaded into decay channel for beta+ decay in
LoadDecayTable(); subtract 2 electron masses.
Fix in GetMeanFreePath() for a problem preventing isomers from decaying
in flight, replacing GetPDGStable() with lifetime == -1 as test for
nuclide stability. Also cleaned up calculation of pathlength.
- G4NuclearDecayChannel: use integer metastable state levels instead of
energy values. Where only energy is known search for nearest integer level.
Added protection in DecayIt() in loop to search for isomer levels.
Issue fatal exception for zero pointers when daughter ions are not found.
Added an electron mass to the parent nucleus in case of electron capture.
This fixes the G4GeneralPhaseSpaceDecay::Pmx() mass deficit warning.
Allow explicit decay of IT channels in DecayIt() and send residual
nucleus to final state for tracking.
In the case of IT, get excitation energy from parent nucleus, not daughter;
remove subtraction of gamma energy from variable 'daughterExcitation'.
Cleaned out unused print-outs.
- Fixed bugs causing decay chains to stop prematurely.
- Requiring new data set RadioactiveDecay.4.0.
Intercoms
- Fix in G4UIcmdWith3VectorAndUnit and G4UIcmdWithADoubleAndUnit.
to check and reject incorrect unit which can be given in input.
Addressing problem report
#1535.
- Introducing '/control/cout/' command category for handling thread-local
printing on cout/cerr and '/control/cout/ignoreThreadsExcept' to select
thread for which enabling printout on cout.
- Modified G4UImanager, G4UIcommandTree and G4UIcommand classes to make such
that all UI commands defined in the worker thread are visible by the
G4UImanager of the master thread, so that undefined command or wrong
parameters given in input are correctly detected.
- Added 'IgnoreCmdNotFound' into G4UImanager required for multi-threading.
This option is set bu default to thread-local G4UImanager objects.
Added flags for commands to be broadcasted to thread-local UI mamaners.
By default, all UI commands are broadcasted to worker threads at the
moment such worker threads start local event-loop.
- A UI command directory may be specified as such that all commands in that
directory and all descendant directories should not be broadcased to
worker threads. This setting must be made by the argument of G4UIdirectory
constructor and cannot be changed. Each individual command may still be
set to be broadcasted by accessing to G4UIcommand::SetToBeBroadcasted()
method individually.
G4UImessenger constructor with command directory now may take a Boolean
flag of not-to-be-broadcasted.
- Fixed problem with G4GenericMessenger where SetUnit() and SetRange()
were not working together. Fixed variable shadowing in G4AnyType header.
Introduced two methods for declaring a method that has a unit; required
to have G4GenericMessenger working in MT mode.
Interfaces
- G4UIQt: added some tooltips. Set fix size font in output.
- Coverity fixes to G4UIQt, G4Qt, G4Xt.
- Improvements to Wt driver configuration.
- Added cmake configuration for Wt and Qt5 in "common" and "basic" modules.
- Removed deprecated G4UIXaw driver class.
- Added first implementation of G4Wt and G4UIWt for handling
Wt (web based interfaces).
- G4UIQt: fix SecondaryLoop for Qt, now processing events until exitPause=true.
Added a field to memorise the last open directory on Icon->Open
In ReceveiveG4Cerr() now displaying an alert box only if it will aborting
or quitting the program; sll G4err messages are now in red; when entering
a command, if this command is multiple line it will now take it in account
as multiple commands.
Improved OGL window resizing by opening to a bigger size, changing strech
factors and others little effects. Changed the name of the file-selector
on the open/save Icon. Fixed potential problem on the ToolBar.
Minor improvements to interface: minimised border size; OpenGL windows
size changing when app size changes.
Removed QWidget unuseful argument for G4QtTabWidget. Fixes for support of Qt5.
Fix for a non UTF8 character; addressing problem report
#1487.
- G4VBasicShell: added information in ExecuteCommand() when command not found.
Materials
- G4NistManager, G4NistMaterialBuilder, G4NistElementBuilder: always
create isotope vector with natural abundances.
- G4NistMaterialBuilder, G4IonisParamMat: updated NIST material parameters:
replaced AddElementByWeightFraction() by AddElementByAtomCount();
commented out ill-defined material G4_GLUCOSE; fixed density and atom
composition of G4_POLYCHLOROSTYRENE, G4_POLYVINYL_BUTYRAL and
G4_TERPHENYL. Minor cleanup of chemical formula names.
- G4NistElementBuilder: added post-const qualifier to all access/print
methods.
- G4NistMaterialBuilder: added post-const qualifier to all access/print
methods. Added formatting of printout.
Addressing problem report
#1423.
- G4NistManager: throw G4Exception in case G4NistManager is instantiated
in a worker thread.
- G4Element: do not recompute Aeff and Neff (effective material
parameters will not be changed). Some code cleanup.
- G4ElementData: added array of 2D-tables.
- G4Material, G4IonisParamMat: made classes thread safe, such that
objects are shared between all threads.
G4SandiaTable: changed signature of GetSandiaCofPerAtom() to make
it thread safe.
- G4Material: issue warning if new added material has duplicate name.
- G4IonisParamMat: fixed density effect parameterisation.
- G4SandiaTable, G4StaticSandiaData: added data for water.
- New classes G4LatticeLogical, G4LatticePhysical for logical (physics info)
and physical (oriented) crystal lattices. Ported from exoticphysics/phonons
example.
- Partially fix for Coverity errors in G4OpticalSurface.
Added dichroic filter surface.
Particles
- Simplified implementation for IsIon() and IsAntiIon() in G4IonTable.
Modified G4IonTable::FindIon() to remove use of 'EnergyTolerance'.
causing issues for event reproducibility and fixed a bug for light ions.
- Added Isomer Level to G4Ions:
Modified G4IsotopeMagneticMomentTable to deal with isomer level.
- G4IonTable: modified GetIon() and CreateIon() to remove string
comparisons; compare excited energy with precion of 0.1 keV; set
excitation energy consistently with mass and AtomicMass.
CreateIon() now can be used in Pre_init state.
Modified GetIon() methods with isomer level.
- Modified element name for Z>111.
- Fixed bugs in G4MuonPlus and leptons for setting magnetic moment.
Updated magnetic moment for proton and charged leptons.
- Fixed problem of using ProcessManager in G4ParticleDefinition and in
using 'thePDGMass'.
- Added splitter class G4PDefSplitter for MT splitting mechanism for
G4ParticleDefinition.
Added G4ParticleDefinition::SetMasterProcessManager() method needed
for MT.
- Fixed name and class name for Upsilon meson.
- Simplified use of allocator for G4DynamicParticle.
- Fixed bug in G4ParticlePropertyTable::SetParticleProperty().
Addressing problem report
#1506.
- Removed ShortLivedDictionary in G4ParticleTable.
Added method GetIon(Z,A,level).
- Added warning message if a process manager is to be registered to
a particle during the event loop.
- G4ParticleTable: update thread-local dictionaries when a particle
is created during event loop.
Particle table and ion table in the master thread are properly updated
even if a particle is instantiated during event loop.
- Unified naming convention of isomers and general excited nuclides; they
always appear with excitation energy in unit of keV.
- New G4NuclideTable class: ground state and some isomer levels are pre-loaded from
this table before the first beamOn, while other excited states are created
during the tracking time as needed.
Allowing to read a data file if needed for additional states through
environment variable G4ENDFDATA for path.
- Fix to G4IonTable so that it properly uses isomer levels defined by
G4NuclideTable even if other physics processes may set their own isomer
tables. Protect G4IonTable against rare cases when only the excited states
are preloaded while the ground state with non-zero epsilon energy is
created on the fly.
- All generic ions share the object ID with GenericIon so that TLS
pointers to G4ProcessManager are not created for them.
- Added isomer level to G4IsonTable::GetNucleusMass().
- Added G4ParticleDefinition::IsGeneralIon() method.
- Added DNA particles for setting 'isGeneralIon' flag in G4Ions constructor.
- Fix in G4ExcitedBaryonConstructor::GetCharge() and in
G4ExcitedMesonConstructor::GetCharge() to replace G4ThreadLocal
specification with 'static const' for local variable; also fixing
compilation error in MT mode on the icc compiler.
- Corrected energy tolerance for G4IonTable::FindIon(Z,A,E).
- Fix in G4NeutronBetaDecayChannel, addressing problem report
#1532.
- Added new G4Phonon{Long,TransSlow,TransFast} particles to bosons.
These will not be built as part of G4BosonConstructor; user physics lists
must create them explicitly.
- Fixed Coverity defects.
Persistency
- ascii:
- Corrected typo in G4tgrPlaceParameterisation::operator<<().
Addressing problem report
#1504.
- Added support for G4GenericPolycone.
- Replaced deprecated calls to solids accessor methods.
- Corrected typo in G4tgrUtils::WordIsUnit().
- Removed handling of deprecated BREPS solids.
- gdml:
- Added 'generic' Polycone and Polyhedra to GDML Reader and Writer.
Splitted definition of Polycone to ordinary and generic.
- Added 'generic' Polycone and Polyhedra to the schema.
Added support for parameterisation of 'genericPolyone' and 'genericPolyhedra'.
GDML schema updated to version 3.1.0.
- Added G4Ellipsoid among solids enabled for parameterisation in
G4GDMLParameterisation.
- Added parameterisation for Ellipsoid to readear/writer and schema.
- Fix in G4GDMLReadParamvol::ParametersRead() for reading parameterised
Sphere, Orb, Torus and Para.
Added support for parameterisation of 'genericPolyone' and
'genericPolyhedra'.
- Replaced deprecated calls to G4Sphere accessor methods.
Physics lists
- Major restructure of the module, with submodules: builders (now only
keeping hadronic builders), constructors (now keeping only hadronic
constructors), lists (keeping only physics-lists) and util (keeping
utility classes).
- Adaptation for MT with new G4VUserPhysicsList API, needed to share
physics-list objects between threads.
- Cleanup of obsolete physics lists and associated builders
and physics constructors.
- Builders:
- Added new builders: G4FTFPPionBuilder, G4FTFPKaonBuilder,
G4QGSBinaryPionBuilder and G4QGSBinaryKaonBuilder.
- Removed LHEPStopping* builders and G4StoppingHadronBuilder in LHEP
physics list. Replaced obsolete stopping processes with builder in LBE.
- Introduced Boolean parameter to G4NeutronBuilder constructor to switch on
fission process. The default is fission off, but for the HP-based physics
lists it is activated.
- Modified INCLXX proton and neutron builders to use PreCompound below
2 MeV. Using G4NeutronInelasticXS.
- Removed G4LEPPiKBuilder, G4LEPPionBuilder, G4LEPNeutronBuilder,
G4LEPProtonBuilder and G4MiscBuilder.
- Coverity fixes.
- Constructors:
- electromagnetic:
- Use Get/Set methods to access master process manager pointer for
G4ParticleDefinition in EmDNA constructor.
- In all constructors use G4UrbanMscModel instead of Urban93 or Urban95.
- ions:
- Replaced LEP with FTFP in G4IonBinaryCascadePhysics,
G4IonINCLXXPhysics and G4IonQMDPhysics.
- hadron_elastic
- G4HadronDElasticPhysics: DiffuseElastic model active above 10 MeV,
LHEP model active below 10.1 MeV.
- Create G4IonElasticPhysics Elastic Scattering for GenericIon.
- G4HadronHElasticPhysics: code cleanup.
- hadron_inelastic:
- Replaced LEP with FTFP+BERT in all inelastic physics constructors.
Fixed quasi-elastic treatment (on for QGS; off for FTF).
- Replaced LEP neutron capture (Gheisha cross-section and G4LCapture model)
with G4NeutronCaptureXS (cross-section) and G4NeutronRadCapture (model)
in all physics lists.
- Removed LEP fission (Gheisha cross-section and G4LFission model) in
all physics lists which do not make use of neutron_HP.
For the HP-based physics lists, used LEP fission only above 19.9 MeV.
- Use G4NeutronInelasticXS for neutrons in the following physics lists
(besides QBBC and FTFP_BERT_TRV which already use it): FTFP_BERT, FTF_BIC,
QGSP_FTFP_BERT, QGSP_BERT, QGSP_BIC, QGS_BIC.
- Improved use of kaon cross-sections in G4HadronPhysicsShielding.
- Fixed possible null-pointer dereferencing in HadronPhysicsINCLXX.
- limiters:
- Introducing G4ParallelWorldPhysics; adapted to work for layered mass
geometry.
- Added G4GenericBiasingPhysics, G4ImportanceBiasing and
G4WeightWindowBiasing constructors.
- In G4StepLimiterPhysics, objects of G4StepLimiter and
G4UserSpecialCuts are now instantiated in ConstructProcess() method
so that these process objects are thread-local.
- Lists:
- PhysListFactory: fix for problem report
#1458.
Corrected printout of available physics-lists. Clean up of the code.
- LBE physics list: replaced LEP/HEP with FTFP+BERT.
- Added new INCL++-based physics-lists: QGSP_INCLXX_HP, FTFP_INCLXX and
FTFP_INCLXX_HP, based on the new INCLXXPhysicsListHelper class.
- LBE: use G4UrbanMscModel instead on Urban93.
- Make the *_HP variants of the INCLXX-based physics list use ElasticHP.
- Activate production of fission fragments in Shielding PhysicsList.
- Set proton cut value to 0 for producing low energy recoil nucleus.
- Use G4IonElasticPhysics for Elastic Scattering of GenericIon.
- LBE: deleted stoppingPhysics in the destructor (fixes Coverity defect).
- Removed CHIPS-based lists and configurations.
Run
- New functionalities for MT:
- Introducing G4MTRunManager, G4MTRunManagerKernel,
G4WorkerRunManager and G4WorkerRunManagerKernel for multi-threading
mode. Enabled MT mode for multiple runs in a job.
- Set default number of threads to 2 in MT mode.
Added Get/SetNumberOfThreads() methods.
Introduced new UI command /run/numberOfThreads.
- Updated APIs for users: introduced and enabled class
G4VUserActionInitialization.
- Make G4VUserDetectorConstruction::ConstructSDandField() be invoked from
G4WorkerRunManager for multi-threaded mode and from G4RunManager for
sequential mode. Introduced SetSensitiveDetector() method.
- Added G4VUserParallelWorld::ConstructSD() for the use-case of defining
sensitive detector in a parallel world.
G4RunManager and G4WorkerRunManager are modified accordingly.
- Added 'isMaster' Boolean flag to G4UserRunAction. It is set to true
for the user run action object assigned to G4MTRunManager.
- Added G4WorkerRunManager::MergePartialResults() re-factor reduction of
local results into global. By default, it takes care of reduction of scores in built-in
command-based scorers and user-defined Run.
Derived class cen re-implement reduction.
- Number of events processed on each thread varies based on the
availability of each thread; the array of random number seeds and
event-ID are centrally managed by G4MTRunManager.
- Introducing G4MTRunManager::SetEventModulo() and correspondng
/run/eventModulo command to specify the number of events to be sent to a
worker thread at one time and set the random number seeds.
- Activating new interfaces for worker thread G4VProcess initialization
in G4VUserPhysicsList for [Prepare,Build]PhysicsTable().
- G4WorkerRunManager invokes G4VVisManager::SetUpForAThread() method
so that G4VisManager will get noticed at the end of event of each
worker thread.
- Introduced G4FORCENUMBEROFTHREADS shell variable to force the number
of threads regardless of G4MTRunManager::SetNumberOfThreads() or
corresponding UI command.
- Added new method G4RunManager::ReinitializeGeometry() to correctly handle
rebuild of geometry from scratch in users code for MT. Can optionally wipe
out solids and volumes geometry stores.
- Threads use new cout streaming, controllable by UI commands in
/control/cout commands set.
- Handling of ions:
- Added explicit initialization of all ions and isomers needed for
MT.
- All generic ions share the object ID with GenericIon so that TLS
pointers to G4ProcessManager are not created for them.
- Random Number Generation:
- Random engine is "cloned" in worker threads from master thread one.
- New UI command /random/saveEachEventFlag: if true save random seed for
each event in a file with unique name: runXXXevtYYY.rndm.
Workers write out random files in files with G4WorkerXX
postfix.
- Other changes (non MT related):
- Fixed bug in PhysicsListHelper for DNABrownianTransportation.
- Removed obsolete UI commands, including obsolete UI commands for
random number handling.
- Modified G4PhysicsListHelper::AddTransportation()
that would prevent to add the G4Transportation to 'Molecules'.
- Enabling possibility for user to alternate G4UserRunAction objects.
- Introducing /run/printProgress command. Changed print-out for
/run/printProgress command.Fixed guidance text in G4RunMessenger.
- Modified adjoint classes to migrate to the new RMC schema where reverse
and forward trackings of equivalent adjoint and forward primaries are
processed in same events. This in for the migration to MT mode.
Track & Tracking
- Added protection against null pointer for the process manager of
secondaries in case secondaries are generated at zero kinetic energy.
- New class G4AdjointTrackingAction and modified G4AdjointSteppingAction
in order to treat the reverse tracking of an adjoint particle and tracking
of its equivalent forward particle in the same event. This is required
for the migration of ReverseMC to MT mode.
- G4TrackingMessenger: moved invokation with G4TransportationManager
from G4VisCommandsSceneAdd to this messenger; G4TransportationManager is
now thread-local, and G4VisCommandsSceneAdd cannot access to it.
- G4SteppingManager: 'fTouchableHistory' data member is rest to zero in the
destructor to avoid cases of double-deletion in MT mode.
- G4TrackingManager: added handling for StoreTrajectory().
- Moved constructor and destructor of G4VelocityTable singleton to private.
- Removed 'i_mode' parameter from DrawTrajectory().
Visualization
- General:
- Support multi-threading. Events are kept until end of run, then drawn.
Drawing from user code is explicitly ignored.
- Added command to display magnentic field: /vis/scene/add/magneticField.
For details, see the command guidance.
- /vis/scene/add/date: changed positioning.
- Fixed many minor defects reported by Coverity and PVS code-checking tools.
- Replaced deprecated calls to solids accessor methods.
- Removed NURBS code and references to i_mode (a long-since deprecated way
to control trajectory hits drawing).
- Management
- G4VViewer: added new virtual function GetPrivateVisAttributesModifiers()
so that privately accumulated vis attributes modifiers may be
concatenated with the standard vis attributes modifiers for commands
such as /vis/viewer/set/all and /vis/viewer/save.
- G4VisManager: added missing push_back for /vis/touchable/;
addressing problem report
#1503.
- Removed check on fpSceneHandler->GetModel() in method DispatchToModel()
of G4VisManager; addressing problem report
#1499.
- In /vis/touchable/set/colour and several other commands parameter
guidance may be called only once. So instances of multiple calls to
parameter guidance have been eliminated.
Any extended information that was in parameter guidance has been moved
to command guidance. This fixes a problem whereby guidance information
was being lost and fixes a crash in the GAG interface.
- HepRep
- Fixed problem report
#1322
for zlib move.
- OpenGL
- Fixes to lay groundwork for eventually support of Wt (but not supported yet).
- Fixed text position in Qt.
- Externals
- Moved G4zlib package to source/externals.
Environments
- G4Py:
- Added support for CMake build (experimental). Suppression of warnings.
- MOMO:
- Updated MOMO.jar (GPE disactivated, EnvPanel update) and sources.
Updated on-line Help document.
Data sets
- New low-energy data set version, G4EMLOW.6.35:
- Added cumulated diff cross-section files for Born ionisation.
- Corrected UNIX file permissions.
- Updated data for Compton cross-section and Livermore Bremsstrahlung.
- Added ESTAR data for electron stopping and ranges.
- Updated data for MicroElec processes.
- New neutron data set version with thermal cross sections, G4NDL.4.4:
- Providing compressed data for Elastic, Inelastic, Capture, Fission
and ThermalScattering.
- Thermal-neutron data is distributed together with standard data.
- Corrected 74W182 and 90Th232, for inconsistency of inelastic
cross-sections with final state data.
- New data set version G4NEUTRONXS-1.4 for evaluated neutron cross section data
on natural composition of elements:
- Evaluated cross section data derived from new G4NDL set.
- New data set version for radioactive-decay processes, G4RadioactiveDecay.4.0:
- Fixed files with duplicate entries for nuclear level and lifetime.
- Added missing decay information for excited states to: z47.a100,
z60.a133.
- Corrected half-life and added missing decay information to: z20.a48.
- Corrected BetaMinus level 73.92 to 78.92 for z90.a234.
- Recomputed from latest ENSDF: z41.a100.
- Removed BetaPlus and added Alpha decays in z100.a250.
- Update to ENSDF 2012 version.
- New data set version PhotonEvaporation.3.0 for nuclear de-excitation data:
- Update to August-2012 version of ENSDF.
- Correction to README.
- New data set G4ABLA-3.0:
- Data set for INCL/ABLA hadroni models, including:
- flalpha.dat - alpha ground state deformation
- frldm.dat - ground state shell corr. frldm for a spherical g.s.
- vgsld.dat - difference between deformed g.s. and ldm value
- pace2.dat - default mass for A, Z nucleus.
- New data set G4ENSDFSTATE-1.0:
- Optional data set for properties of nuclei state from
Evaluated Nuclear Structure Data File.
Examples
- Updated reference outputs and scripts
- Updates to apply new coding conventions.
- Fixed compilation warning on clang32 for unused data members.
- Updated examples to new interface changes and common tools.
- advanced
- air_shower
- Migrated to enable use of multi-threading.
- Added G4Ellipsoid among solids enabled for parameterisation.
- amsEcal
- Changed to port to new G4VUserPhysicsList split-class mechanism.
- brachytherapy
- Migrated to enable use of multi-threading.
- Introduced modular Physics List.
- Substituted G4ParticleGun with G4GeneralParticleSource.
- Introduced Radioactive Decay. Energy spectrum of gamma deriving
from radioactive decay.
- Now possible to switch among brachy sources.
- Fix bug in BrachySteppingAction (replace = with ==).
Use G4ParticleDefinition instead of string.
- composite_calorimeter
- Corrected search of AIDA tools. Addressing problem report
#1491.
- dnageometry
- New example implementing a setup of a realistic nucleus model of a cell,
including chromosomes, in combination with Geant4-DNA physics.
- dnaphysics
- Migrated to enable use of multi-threading.
- Changed default water definition.
- Removed unused electron capture process.
- Changed process naming scheme.
- gammaknife
- Migrated to enable use of multi-threading.
- gammaray_telescope
- Updated physics list: removed inelastic models for hyperons and
anti-hyperons (only EM and decay left); use FTFP model down to zero
energy for anti-p and anti-n (Bertini cascade not available); use
FTFP+BERT for d,t and alphas.
- Removed dependency from HEP and LEP models.
- hadrontherapy
- Included class for average LET computations.
- Removed dependency from HEP and LEP models.
- Renamed hadronic physics class.
- human_phantom
- Migrated to enable use of multi-threading.
- Testes and Genitalia modelling added for MIRD model.
- G4HumanPhantomPhysicsList is derived from G4VModularPhysics.
- Substituted G4ParticleGun with G4GeneralParticleSource.
- iort_therapy
- Removed G4HadronQElasticPhysics, and replaced G4QStoppingPhysics.
Updated for renamed physics builders.
- lAr_calorimeter
- medical_linac
- Removed obsolete G4HadronQElasticPhysics.
- Fixed compilation erros on VC++12.
- microbeam
- Migrated to enable use of multi-threading.
- Removed comparisons of strings in MicrobeamSteppingAction.
- Added G4Ellipsoid among solids enabled for parameterisation.
- microdosimetry
- Updated multiple-scattering model.
- microdoelectronics
- New example simulating tracks of a 5 MeV proton in silicon,
exercising new G4MicroElec* processes and models.
- nanobeam
- Migrated to enable use of multi-threading.
- Changed selection of volumes in SteppingAction using names.
- Updated CMake script to make explicit required use of external CLHEP.
- purging_magnet
- Explicitly use G4CsvAnalysisManager to be compliant with restructure of
analysis module.
- radioprotection
- Replaced oroginal REMSIM example with characterisation of novel diamond
detector for radiation protection, using microdosimetric approach.
- Migrated to enable use of multi-threading.
- underground_physics
- In DMXMinEkineCuts, migrated calculation of the range from
G4EnergyLossTable (obsolete class) to G4LossTableManager.
- Removed dependency from HEP and LEP models.
- xray_fluorescence
- Fixed compilation erros on VC++12.
- basic
- Migrated to enable use of multi-threading.
- Fixes to GUI macros.
- basic/B1
- Removed B1EventInformation for keeping maximum simplicity.
- Use /run/printProgress. Cleanup in EventAction.
- basic/B2
- Replaced magnetic field classes (B2MagneticField, B2FieldMessenger)
with use of new G4GlobalMagFieldMessenger class.
- Added G4Ellipsoid among solids enabled for parameterisation in B2b.
- basic/B3
- B3PrimaryGeneratorAction: changed G4ParticleTable::GetIon() to
G4IonTable::GetIon(), as the former method became obsolete.
- basic/B4
- Fixed EndOfRunAction() to get the printed histogram
statistics correctly.
- basic/B5
- New example, copy of original extended/analysis/A01 example.
- Replaced messenger classes with use of G4GenericMessenger.
- Changed magnetic tube material to G4_Air (was G4_Galactic)
Resolves issue of low-energy electrons spinning forever in vacuum.
- Changed step limit size to 1 m (more sutable for demonstration
of the smooth trajectory visualization option).
- extended
- Renamed example 'analysis/A01' to 'basic/B5'.
- Removed obsolete 'geometry/olap' example.
- analysis
- Example N03Con replaced with B1Con.
- Removed use of G4AnalysisManager::Create(isMaster).
Added G4RunManager::ReinitializeGeoemtry() in set methods
that change geometry. Removed Update method and UI command in shared
DetectorConstruction.
- analysis/AnaEx01
- Migrated to enable use of multi-threading.
- Updated setup for added classes in Hbook analysis code.
- biasing
- Removed references to obsolete G4CellScorer classes and code cleanup.
- biasing/B01
- Replaced B01PhysicsList with FTFP_BERT as part of LHEP removal.
- biasing/B02
- Migrated to enable use of multi-threading.
- Removed dependency from LEP models.
- biasing/B03
- New example derived from B02 but adopting modular physics-lists.
- Migrated to enable use of multi-threading.
- biasing/GB01
- New example illustrating how to bias process cross-sections.
- biasing/GB02
- New example illustrating how to make a force collision biasing in a way
that is essentially similar to the approach in MCNP.
- biasing/ReverseMC01
- Slight modifications into the main in order to migrate to the new RMC
tracking schema where reverse tracking and forward tracking of adjoint and
forward equivalent particles are processed in the same events.
- Migrated to use g4tools.
- common
- When building materials with NistManager do not set isotopes argument
(was set to false), as all materials have to be built from isotopes.
- common/analysis
- Extended the manager class for handling more than one ntuple.
- Refactoring ExG4Hbook manager class following changes in analysis module.
- Implemented functions for user defined/logarithmic binning for H1
and H2; in case of H2 an exception is (not available in HBOOK).
- electromagnetic
- In HistoManager: use new analysis manager method SetH1Activation().
- Updated setup for added classes in Hbook analysis code.
- PhysListEmStandard: use default G4UrbanMscModel.
- electromagnetic/TestEm0
- Use G4SeltzerBergerModel instead of obsolete G4eBremsstrahlungModel.
- DirectAccess: use G4PEEffectFluoModel instead of obsolete
G4PEEffectModel.
- electromagnetic/TestEm1
- Migrated to enable use of multi-threading.
- PhysicsList::AddDecay(): use G4PhysicsListHelper.
- Make use of G4GlobalMagFieldMessenger.
- Removed HBOOK tools.
- electromagnetic/TestEm2
- Migrated to enable use of multi-threading.
- electromagnetic/TestEm4
- Migrated to enable use of multi-threading.
- Removed HBOOK tools. Removed EventActionMessenger.
- electromagnetic/TestEm5
- Migrated to enable use of multi-threading.
- Make use of G4GlobalMagFieldMessenger.
- Removed HBOOK tools. Removed EventActionMessenger.
- electromagnetic/TestEm6
- PhysicsList: restored G4GammaConversionToMuons.
- Added cross section factor to gamma->mu+mu- process to TestEm6.in macro.
- electromagnetic/TestEm7
- PhysListEmStandardSS, PhysListEmStandardNR: updated according to
Option4 physics list models and parameters.
- PhysListEmStandardNR: use G4UrbanMscModel instead of G4UrbanMscModel95.
- Removed use of obsolete class G4HadronQElasticPhysics.
- electromagnetic/TestEm8
- Stacking action and its messenger are added allowing to kill
secondary electrons inside GasDetector region and add this
energy to total energy deposit (option by default off).
- PhysicsList: substituted obsolete G4PAIPhotonMOdel with G4PAIPhotModel.
- HistoManager: added histogram for energy deposition in units
of ADC counts; added extra UI command "/testem/setEnergyPerChannel".
- electromagnetic/TestEm11
- PhysListEmStandard: use default G4UrbanMscModel.
- Make use of G4GlobalMagFieldMessenger.
- Removed EventActionMessenger.
- electromagnetic/TestEm12
- PhysListEmStandard: use default G4UrbanMscModel.
- PhysListEmStandardWVI and PhysListEmStandardSS: reduced low-energy
threashold for the single scattering model to 10 eV.
- electromagnetic/TestEm14
- PhysicsList: restored G4GammaConversionToMuons.
- electromagnetic/TestEm15
- Updated name of muon-nuclear process from "muNucl" to "muonNuclear".
- HistoManager, RunAction: make theoretical histogram back.
- electromagnetic/TestEm17
- Updated name of muon-nuclear process from "muNucl" to "muonNuclear".
- HistoManager, RunAction: make theoretical histogram back.
- eventgenerator/HepMC
- Added G4Ellipsoid among solids enabled for parameterisation in HepMCEx01.
- eventgenerator/particleGun
- Simplified histograms management.
- eventgenerator/pythia/decayer6
- Fixed use of particle iterator in P6DExtDecayerPhysics.
- Fixed compilation warnings for shadowed variables.
- eventgenerator/exgps
- Migrated to enable use of multi-threading.
- Migrated to use g4tools.
- exoticphysics/monopole
- G4MonopolePhysics: fixed warning at initialisation.
- G4MonopoleTransportation: use 'verboseLevel' variable from base class.
- G4MonopoleTransportation, G4MonopoleEquation: adapted to use
G4ChargeState to pass Magnetic & Electric Charge.
- exoticphysics/phonon
- Removed particles, lattice classes, and processes, now all in new
library module. Eliminated use of G4VUserTrackInfo, creating a
singleton (thread-local) map between tracks and wavevectors, for
use by the stacking action and by processes.
- Fixed printout in XLogicalLattice.
- field
- Migrated examples to enable use of multi-threading.
- field/field05
- Changed GetFieldValue() signature and added F05SteppingVerbose to
print global time.
- field/field06
- Fix for uninitialized variables in F06PrimaryGeneratorAction.
- hadronic/Hadr00
- Migrated to enable use of multi-threading.
- hadronic/Hadr01
- Migrated to enable use of multi-threading.
- PhysicsList: removed CHIPS and LHEP builders.
Migrated to new structure of physics_lists.
- hadronic/Hadr02
- Replaced LEP capture with G4NeutronRadCapture.
- Migrated to cross-sections extracted from CHIPS.
- Disabled energy/momentum check.
- hadronic/Hadr03
- DetectorConstruction: add function MaterialWithSingleIsotope().
Suppressed natural abundance flag. Improved material definition.
- DetectorMessenger: added command to set an isotope.
- PhysicsList: QGSP_BERT_HP replaced by FTFP_BERT_HP.
Re-enabled G4HadronPhysicsINCLXX.
Migrated to new physics_lists directory structure and classes.
- RunAction: compute crossSection per atom.
Added material in GetCrossSectionPerAtom().
- Use G4RunManager::ReinitializeGeometry() to trigger geo
rebuild. Remove UI command to update geometry.
- In HistoManager: use new analysis manager method SetH1Activation().
- hadronic/Hadr04
- New example focussed on neutronHP physics, especially neutron transport,
including thermal scattering.
- hadronic/Hadr05
- New example derived from Hadr00 demonstrating the usage of
G4GenericPhysicsList to build the concrete physics list at the run time.
- medical/DICOM
- Migrated to enable use of multi-threading.
- Fix in DicomHandler for problems when using DCM files other than
those provided in the examples.
- Added DicomPhantomZSliceMerged class to handle inconsistencies in
DCM file meta-data.
- Extended DicomPhantomZSliceHeader class to hold density and material ID
data and the printing of data to files instead of DicomHandler.
- Added more anonymous DICOM files and adapted configuration scripts.
- Replaced LEP model for alphas by extending Binary cascade to zero energy.
- Added G4Ellipsoid to solids enabled for parameterisation in
DicomNestedPhantomParameterisation.
- medical/electronScattering
- In HistoManager: use new analysis manager method SetH1Activation().
- medical/electronScattering2
- Migrated to enable use of multi-threading.
- PhysListEmStandard: removed G4UrbanMscModel95; use default model.
- medical/fanoCavity[1,2]
- PhysListEmStandard_option3: use G4UrbanMscModel instead of Urban95.
- In HistoManager: use new analysis manager method SetH1Activation().
- medical/GammaTherapy
- When building materials with NistManager do not set isotopes argument
(was set to false), as all materials have to be built from isotopes.
- optical/LXe
- Fixed overlap in geometry. Fixed data initialisation.
- Migrated to enable use of multi-threading.
- optical/OpNovice
- New example, copy of the original novice example N06.
- Migrated to enable use of multi-threading.
- optical/WLS
- Migrated to enable use of multi-threading.
- parallel
- Moved ParN02, ParN04 and info in a new TopC directory,
New directory TBB.
- parallel/TBB
- New module with example derived from original basic/B2b
demonstrating how to interface a simple application with the Intel
Threading Building Blocks library (TBB), and organise MT event-level
parallelism as TBB tasks.
- parameterisations
- Added G4Ellipsoid among solids enabled for parameterisation.
- parameterisations/gflash
- Removed ExGflashMaterialManager class; now using NIST manager.
- Migrated to enable use of multi-threading.
- Fixed event action destructor in case fNevent == 0.
- Changed /gps/centre 0 0 0 to /gps/pos/centre 0 0 0 to
clear gps deprecating command message in test.mac.
- parameterisations/Par01
- New example, extracted as copy of novice/N05.
- Migrated to enable use of multi-threading.
- persistency/gdml/G01
- Added test case for 'genericPolycone' and 'genericPolyhedra'.
- persistency/P01
- Added G4Ellipsoid among solids for parameterisation.
- persistency/P03
- Migrated to enable use of multi-threading.
- polarisation/Pol01
- radioactivedecay/rdecay01
- In PhysicsList set the half life threshold of the
G4RadioactiveDecay to nanosecond.
- TrackingAction: suppress AbortEvent() for single decay mode.
- DetectorConstruction: set 'fWorldSize' to 2 um.
- In HistoManager: use new analysis manager method SetH1Activation().
- radioactivedecay/rdecay02
- Migration to new physics_lists directory structure.
- exrdmPhysicsList: use standard constructors for EM physics, removed
local low-energy EM physics. Use standard constructors for hadronic
builders instead of obsolete.
Replaced G4LElastic and G4LCapture with G4HadronElastic and
G4NeutronRadCapture.
- runAndEvent
- Migrated examples to enable use of multi-threading.
- runAndEvent/RE01
- Replaced obsolete class G4QStoppingPhysics with G4StoppingPhysics.
- Added G4Ellipsoid among solids enabled for parameterisation.
- runAndEvent/RE02
- Replaced G4AntiProtonAnnihiliationAtRest with
G4AntiProtonAbsorptionFritiof.
- Added G4Ellipsoid among solids enabled for parameterisation.
- runAndEvent/RE04
- Added G4Ellipsoid among solids enabled for parameterisation.
- runAndEvent/RE05
- New example, extracted as copy of novice/N04.
- Updated pythia_main.f and data file. Number of events in event data
is 100; increased digits for PDG code of HEPEVT.
- Readout geometry is disabled, as no longer supported.
Migrated to parallel world that descibes the readout geometry.
- runAndEvent/RE06
- New example, extracted as copy of novice/N07.
- visualization
- Replaced physics list QGSP_BIC_EMY with FTFP_BERT.
- novice
- Archived module. Old novice examples are now mapped as follows:
- N01 - removed
- N02 - basic/B2
- N03 - basic/B4
- N04 - extended/runAndEvent/RE05
- N05 - extended/parameterisations/Par01
- N06 - extended/optical/OpNovice
- N07 - extended/runAndEvent/RE06