3405 lines
172 KiB
HTML
3405 lines
172 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>Geant4 11.0 Release Notes</TITLE>
|
|
</HEAD>
|
|
<BODY BGCOLOR='F0F0F0'>
|
|
|
|
<P> </P>
|
|
<BR>
|
|
<P> </P>
|
|
|
|
<P ALIGN="Center">
|
|
<FONT SIZE="+4" COLOR="#238E23">
|
|
<B>Geant4 11.0 Release Notes</B>
|
|
</FONT>
|
|
|
|
<TABLE WIDTH="100%">
|
|
<TR><TD ALIGN="Right">
|
|
<FONT SIZE="-1" COLOR="#5C3317">
|
|
<B><I>December 10<SUP>th</SUP>, 2021</I></B>
|
|
</FONT>
|
|
</TD></TR>
|
|
</TABLE>
|
|
|
|
<BR><BR>
|
|
<HR ALIGN="Center" SIZE="7%">
|
|
<P>
|
|
The code and binary libraries for the supported systems are available
|
|
through our <A TARGET="ext" HREF="http://cern.ch/geant4/support/download">Source
|
|
Code Web page</A>.
|
|
</P>
|
|
<P>
|
|
<I>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. </I>
|
|
</P>
|
|
<P>
|
|
Please refer to the
|
|
<A TARGET="ext" HREF="http://cern.ch/geant4/support/user_documentation">Geant4
|
|
User Documentation</A> for further information about using Geant4.
|
|
</P>
|
|
|
|
<H2><I>Contents</I></H2>
|
|
<OL>
|
|
<LI><A HREF="#1.">Supported and Tested Platforms</A></LI>
|
|
<LI><A HREF="#2.">Supported CLHEP and VecGeom versions</A></LI>
|
|
<LI><A HREF="#3.">Items for migration of the user code</A></LI>
|
|
<LI><A HREF="#4.">New Developments and Capabilities</A></LI>
|
|
<LI><A HREF="#5.">Expected effects on physics and performance</A></LI>
|
|
<LI><A HREF="#6.">Known Run-Time Problems and Limitations</A></LI>
|
|
<LI><A HREF="#7.">Compilation Warnings</A></LI>
|
|
<LI><A HREF="#8.">Geant4 Software License</A></LI>
|
|
<LI><A HREF="#9.">Detailed list of changes and fixes</A></LI>
|
|
<LI><A HREF="#10.">Appendix</A></LI>
|
|
</OL>
|
|
|
|
<P> </P>
|
|
<A NAME="1."></a>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>1. Supported and Tested Platforms</H2>
|
|
|
|
Platforms:
|
|
<UL>
|
|
<LI>Linux, gcc-8.3.1.<BR>
|
|
Tested on 64 bit architectures (Intel or AMD) with
|
|
CERN CentOS Linux 8 (CC8) (based on CentOS Linux 8).</LI>
|
|
<LI>macOS 12.01 Monterey with Apple LLVM/Clang-13.<BR>
|
|
Tested on 64 bit architectures (Intel or Apple Silicon).</LI>
|
|
<LI>Windows-10 with Visual C++ 14.29 (Visual Studio 2019).</LI>
|
|
</UL>
|
|
|
|
More verified and tested configurations (64 bits):
|
|
<UL>
|
|
<LI>Linux, gcc-9.3/10.2/11.2, clang-9/10/11</LI>
|
|
<LI>Linux, Intel-icc 2021.4</LI>
|
|
<LI>macOS 10.15 Catalina with Apple LLVM/Clang-12</LI>
|
|
<LI>macOS 11.6 Big Sur with Apple LLVM/Clang-12</LI>
|
|
</UL>
|
|
|
|
<P> </P>
|
|
<A NAME="2."></A>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>2. Supported CLHEP and VecGeom versions</H2>
|
|
|
|
This release of Geant4 requires and has been verified with
|
|
<A TARGET="ext" HREF="http://cern.ch/clhep/">CLHEP</A>, release <B>2.4.5.1</B>.
|
|
Use of a different CLHEP version may cause incorrect simulation results.<BR>
|
|
NOTE: an internal module of the relevant CLHEP classes is provided and can be
|
|
used as alternative to an external CLHEP library installation.<BR>
|
|
A configuration option allows a Geant4 installation to use the
|
|
<A HREF="https://gitlab.cern.ch/VecGeom/VecGeom/">VecGeom Library</A>
|
|
primitives, to replace the original Geant4 solids. VecGeom version
|
|
<B>1.1.18</B> is required when using such configuration.
|
|
|
|
<P> </P>
|
|
<A NAME="3."></A>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>3. Items for migration of the user code</H2>
|
|
|
|
Listed here is some relevant information on developments included in 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.
|
|
|
|
<P> </P>
|
|
<B>General</B>
|
|
<P> </P>
|
|
<UL>
|
|
<LI>Simplified G4String interfaces and implementation with C++11/17.
|
|
Removed obsolete/std::string synonym member functions and deprecated
|
|
non-std::string member functions, replacing with new free functions in
|
|
G4StrUtil namespace. Might require user code adaptation where G4String
|
|
functions are explicitly used; for details see
|
|
<A HREF="#string-migration-notes">Section 10</A> of this document.</LI>
|
|
<LI>Major update the G4PhysicsVector and related classes; introduced new public
|
|
access methods; removed obsolete unused methods; introduced possibility to
|
|
use different Spline methods.</LI>
|
|
<LI>Removed deprecated classes G4LPhysicsFreeVector and G4PhysicsLnVector;
|
|
redirect G4PhysicsOrderedFreeVector to G4PhysicsFreeVector.</LI>
|
|
<LI>New version of G4PhysicsModelCatalog, the catalog of physics models.
|
|
Introduced a modelID (a unique integer for each physics model, with close
|
|
values for similar/related physics models), besides an index (the position
|
|
in a vector) and the name (string) of the model. The main difference with
|
|
respect to the previous version is that the three identifiers of each
|
|
physics model - modelID, index and name - must stay constant and the same
|
|
for all applications, physics lists and future versions of Geant4.</LI>
|
|
<LI>C++17 is the minimum ISO C++ Standard required to compile Geant4 and all
|
|
applications using it.</LI>
|
|
<LI>Multithreading support is now enabled in the build of Geant4 by default.</LI>
|
|
<LI>CMake 3.16 is the minimum version required to build Geant4.</LI>
|
|
</UL>
|
|
|
|
<B>Analysis</B>
|
|
<UL>
|
|
<LI>Major revision in analysis classes. Migration to G4ThreadLocalSingleton
|
|
in all specific analysis manager and reader classes. The singleton instances
|
|
are now deleted by the Geant4 kernel; their explicit deletion in client code
|
|
has to be removed.</LI>
|
|
<LI>New G4AnalysisReader.hh header, defining G4AnalysisManager as
|
|
G4GenericAnalysisManager; G4GenericAnalysisManager can handle all supported
|
|
file formats, so file names should be provided with an extension (.csv,
|
|
.hdf5, .root or .xml). To continue using file names without extensions,
|
|
users can set the default file type using the new function
|
|
SetDefaultFileType(...). Output specific headers have been removed.</LI>
|
|
<LI>Also removed g4analysis.hh header with the G4Analysis::MasterInstance()
|
|
factory method.</LI>
|
|
<LI>Added new G4VAnalysisReader public function CloseFiles() to be called by
|
|
user before the end of program and its implementation for all readers.</LI>
|
|
</UL>
|
|
|
|
<P> </P>
|
|
<B>Geometry, Fields and Transportation</B>
|
|
<P> </P>
|
|
<UL>
|
|
<LI>Removed deprecated accessors in G4Sphere and G4Tubs.</LI>
|
|
<LI>G4[Partial]PhantomParameterisation: renamed Get/SetNoVoxel*() accessors
|
|
to Get/SetNoVoxels*() for coherence. Might imply user code migration.</LI>
|
|
</UL>
|
|
|
|
<P> </P>
|
|
<B>Electromagnetic and optical physics</B>
|
|
<P> </P>
|
|
<UL>
|
|
<LI>G4EmProcessOptions class has been removed. Adaptation of custom user made
|
|
physics-lists may be required.</LI>
|
|
<LI>Removed deprecated material properties for G4Scintillation. Now
|
|
the "enhanced" time constants of version 10.7 are the only way to specify
|
|
scintillation properties.</LI>
|
|
<LI>Added protection against typos in material property names. To create a
|
|
user-defined material property (or material constant property), add the
|
|
<TT>createNewKey=true</TT> argument to <TT>Add(Const)Property()</TT>.</LI>
|
|
<LI>Removed redundant optical UI commands.</LI>
|
|
</UL>
|
|
|
|
<P> </P>
|
|
<B>Hadronic physics configuration</B>
|
|
<P> </P>
|
|
<UL>
|
|
<LI>Constructors for inelastic processes have changed signature, as well
|
|
as for elastic and inelastic cross-sections.<BR>
|
|
This affects the internal configuration in physics-lists.
|
|
See the details in <A HREF="#hadronic-migration-notes">Section 10</A>
|
|
of this document, for the required adaptations in <I>custom</I>
|
|
physics-lists.</LI>
|
|
<LI>Deprecated environmental variables used in NeutronHP, ParticleHP and
|
|
Radioactive Decay have been removed: they have been replaced by equivalent
|
|
UI commands (already introduced in previous versions).</LI>
|
|
</UL>
|
|
|
|
<P> </P>
|
|
<B>Visualization and Modeling</B>
|
|
<P> </P>
|
|
<UL>
|
|
<LI>As of this release, the recommended and supported Open Inventor driver
|
|
will be the Qt-based one (OIQt viewer option). The Xt/Xm drivers (OIX,
|
|
OIXE) are still available but are deprecated and will be removed in the
|
|
next release.</LI>
|
|
<LI>Qt drivers require the Qt-5 platform. Qt-6 is not yet supported.</LI>
|
|
<LI>The G4VModel interface has been simplified. Responsibility for transformation
|
|
and extent has been delegated to individual models. For example, there is no
|
|
longer a method G4VModel::GetTransformedExtent(), the concrete model is
|
|
required to maintain the extent depending on the transformation (if any) and
|
|
a simple GetExtent() returns the current extent.</LI>
|
|
</UL>
|
|
|
|
<P> </P>
|
|
<B>Data Sets</B>
|
|
<P> </P>
|
|
<UL>
|
|
<LI>This release introduces new data set versions.
|
|
Please see the corresponding details in
|
|
<A href="#data-notes">Section 9</A> of this document.
|
|
<UL>
|
|
<LI>New data set versions: <TT>G4EMLOW-8.0, G4PARTICLEXS-4.0</TT>.</LI>
|
|
<LI>In order to use <TT>ParticleHP</TT> for charged particles
|
|
(protons, deuterons, tritons, He3 and alphas), an optional data
|
|
set <TT>G4TENDL-1.4</TT> is required, and can be optionally
|
|
downloaded in addition.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="4."></A>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>4. New Developments and Capabilities </H2>
|
|
|
|
<B>General</B>
|
|
<UL>
|
|
<LI>Tasking system, based on PTL (Parallel Tasking Library) v2.0.0, is set
|
|
as default parallelism scheme for multi-threading. A dedicated run manager
|
|
(G4TaskRunManager) and factory (G4RunManagerFactory) are provided,
|
|
enabling use of tasks for the event loop.
|
|
The tasking system is fully compatible with Intel TBB, which can be
|
|
selected if GEANT4_USE_TBB=ON is specified when configuring CMake. The
|
|
default behavior for tasking is to submit the tasks to an internal
|
|
thread-pool and task-queue.</LI>
|
|
<LI>New G4SteppingVerboseWithUnits class, an alternative to G4SteppingVerbose
|
|
with printout of proper units. Simplified way of defining a user-specific
|
|
stepping verbose, that is now common to all sequential, MT and tasking
|
|
modes.</LI>
|
|
<LI>Introducing G4VTrackingManager, an interface for custom tracking
|
|
managers specialized for one or a small number of particle types.
|
|
Custom tracking manager is used in G4VUserPhysicsList, if registered.
|
|
G4EventManager hands over tracks to custom tracking manager, if registered
|
|
for the particle.</LI>
|
|
<LI>Added new Ranlux++ engine to the list of supported random engines.</LI>
|
|
<LI>G4String provides a new <TT>G4StrUtil</TT> namespace with functions for
|
|
simple string manipulation, including left/right stripping, case
|
|
conversion, and searching.</LI>
|
|
</UL>
|
|
|
|
<B>Analysis</B>
|
|
<UL>
|
|
<LI>New public functions G4VAnalysisManager::Reset() and Clear() allowing
|
|
resetting and deleting all allocated analysis objects and clearing
|
|
their collections.</LI>
|
|
<LI>Added support for n-tuple columns of string vectors via new public
|
|
functions in G4VAnalysisManager and G4VAnalysisReader</LI>
|
|
<LI>Implemented support for file system directories with Csv output. The
|
|
histogram and n-tuple files are saved in directories, if their names are
|
|
set and if the directories exist in the file system.</LI>
|
|
</UL>
|
|
|
|
<B>Digitization, Hits & Scoring</B>
|
|
<UL>
|
|
<LI>Extended cylindrical scoring mesh to tube and tube segment.</LI>
|
|
</UL>
|
|
|
|
<B>Geometry and Field</B>
|
|
<UL>
|
|
<LI>Added maps for faster search based on name in solids, regions and
|
|
volumes stores.</LI>
|
|
<LI>Enabled use of alternative G4VoxelNavigation class, allowing the possibility
|
|
to use alternative navigation algorithms for voxelised/optimised geometries.</LI>
|
|
<LI>Added new example demonstrating interface with VecGeom navigator (Beta).</LI>
|
|
</UL>
|
|
|
|
<B>Materials</B>
|
|
<UL>
|
|
<LI>Revised and updated G4Exceptions in G4Material, now providing more complete
|
|
information and better diagnostics.</LI>
|
|
<LI>Updated G4Material: use const pointers to G4Elements where needed.</LI>
|
|
<LI>New class G4OpticalMaterialProperties, a store for optical material properties
|
|
and allow use of predefined optical material properties.</LI>
|
|
<LI>In G4MaterialPropertiesTable, the use of <TT>std::vector</TT> for material
|
|
properties and material const properties, rather than <TT>std::map</TT>,
|
|
eliminates the need to find the map entry.</LI>
|
|
</UL>
|
|
|
|
<B>Electromagnetic physics</B>
|
|
<UL>
|
|
<LI>General code cleanup in EM modules; removed obsolete models and processes,
|
|
removed G4EmProcessOptions class.</LI>
|
|
<LI>Updates to G4GammaGeneralProcess: exclude gamma-nuclear from the 2<SUP>nd</SUP>
|
|
energy area.</LI>
|
|
<LI>Fixed model per region definition for all base processes G4VEmProcess,
|
|
G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
|
|
for energy loss processes but left G4VSubCutProducer interface.</LI>
|
|
<LI>Updated EM integral approach by introduction of a cross-section shape type
|
|
including cross-section shape with 2 maxima.</LI>
|
|
<LI>Reviewed EM part of G4PhysicsModelCatalog to adopt new numbering convention.
|
|
Created new enum for low-energy electromagnetic process sub-types.</LI>
|
|
<LI>Updated G4UrbanMscModel to not apply energy correction at small steps
|
|
below 1% of a particle range.</LI>
|
|
<LI>G4VEmFluctuationModel: changed interface; both cut value and max energy
|
|
transfer are parameters of main methods.</LI>
|
|
<LI>In G4UniversalFluctuation, substantially simplified sampling algorithm
|
|
for faster computation.</LI>
|
|
<LI>Updated Livermore models to use EPICS2017 data.</LI>
|
|
<LI>Included new PIXE data libraries following ANSTO recommendations.</LI>
|
|
<LI>New data structure for ICRU73 and ICRU90 ion stopping power data shared
|
|
between threads and used in G4LinhardSorensenIonModel.</LI>
|
|
<LI>Implement and use base material approach only if base materials are defined,
|
|
this should bring a minor speedup of the code and little reduction of memory.</LI>
|
|
<LI>Enable synchrotron radiation only for electrons, positrons, muons, protons,
|
|
and anti-protons.</LI>
|
|
<LI>Introducing quantum entanglement of e+ annihilation. Currently implemented
|
|
only in G4eplusAnnihilation and G4LivermorePolarizedComptonModel.</LI>
|
|
<LI>New class G4OpticalMaterialProperties, a store for optical material
|
|
properties and allow use of predefined optical material properties.</LI>
|
|
<LI>Added new IRT-syn model for DNA.</LI>
|
|
</UL>
|
|
|
|
<B>Hadronic physics</B>
|
|
<UL>
|
|
<LI>General code clean-up in hadronic processes and models; removed obsolete
|
|
and deprecated classes; removed obsolete "rpg" model.</LI>
|
|
<LI>Introduced a new threshold parameter in radioactive-decay for analogue mode
|
|
to kill very long radioactive decays at rest of nuclides happening later
|
|
than such threshold.</LI>
|
|
<LI>Introduced six light hypernuclei and their corresponding antiparticles
|
|
(for the time being, only electromagnetic interactions of these particles
|
|
are available, but switched off by default).</LI>
|
|
<LI>Extended the interface of hadronic models for projectile hypernuclei and
|
|
anti-hypernuclei (but not yet hadronic physics for these particles).</LI>
|
|
<LI>Added implementation of hypercluster emission in INCLXX.</LI>
|
|
<LI>Extended interface of the Fritiof (FTF) string model to get the number of
|
|
projectile/target spectator nucleons, number of nucleon-nucleon collisions
|
|
and impact parameter (see example <TT>Hadr09</TT>).</LI>
|
|
</UL>
|
|
|
|
<B>Physics Lists</B>
|
|
<UL>
|
|
<LI>Updated physics lists to use a uniform approach for verbosity.</LI>
|
|
<LI>Electromagnetic physics for light hypernuclei (switched off by default)
|
|
can be enabled on top of any Physics Lists via C++ interface
|
|
(<TT>G4HadronicParameters::Instance()->SetEnableHyperNuclei(true)</TT>).</LI>
|
|
<LI>ANSTO data option for atomic de-excitation can be enabled on top of any
|
|
physics lists using C++ interface or better via UI command.</LI>
|
|
<LI>EPICS2017 parameterisations for Livermore gamma processes can be enabled.</LI>
|
|
<LI>Positron anihilation to the tau pair can be enabled.</LI>
|
|
<LI>LinhardSorensenIonModel is available with G4EmStandardPhysicsWVI
|
|
constructor.</LI>
|
|
</UL>
|
|
|
|
<B>Visualization and Interfaces</B>
|
|
<UL>
|
|
<LI>New ToolsSG (TSG) visualisation package based on g4tools, providing four
|
|
new (mutually exclusive) visualisation drivers: TOOLSSG_X11_GLES,
|
|
TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.</LI>
|
|
<LI>New VtkQt and VtkNative visualisation drivers.</LI>
|
|
<LI>Introducing in-app plotting with visualization and related UI command.</LI>
|
|
<LI>Introducing G4Mesh, a light class that encapsulates and validates
|
|
visualisation of a nested parameterisation.</LI>
|
|
<LI>Extended G4UIWin32 driver with new features.</LI>
|
|
<LI>Revised all visualisation models, to have G4PhysicalVolumeModel taking
|
|
care of the transformation of any primitives that it generates.</LI>
|
|
<LI>Removed obsolete network visualisation options for VRML driver
|
|
and FukuiRenderer driver.</LI>
|
|
<LI>Removed obsolete GAG/Gain/MOMO and HepRep(WIRED) modules/driver.</LI>
|
|
<LI>Removed deprecated functions in visualization.</LI>
|
|
</UL>
|
|
|
|
<B>Examples</B>
|
|
<UL>
|
|
<LI><B>CaTS</B> - New application implementing a flexible and extendable
|
|
framework for the simulation of calorimeter and tracking detectors.
|
|
It also demonstrates how to use
|
|
<A HREF="https://bitbucket.org/simoncblyth/opticks.git">Opticks</A>
|
|
for the creation and propagation of optical photons.</LI>
|
|
<LI><B>pythia/py8decayer</B> - New example demonstrating how to outfit
|
|
Pythia8-based decay features to those resonances in Geant4 where decay
|
|
tables are not implemented by default. In addition, it shows how to
|
|
replace existing Geant4 decay tables to such resonances as <TT>tau+/-</TT>
|
|
or <TT>B+/-</TT> with the Pythia8-based ones.</LI>
|
|
<LI><B>geometry/VecGeomNavigation</B> - New example demonstrating integration
|
|
of VecGeom navigation, based on the prototype package G4VecGeomNav, being
|
|
integrated in the example at build time.</LI>
|
|
<LI><B>hadronic/Hadr05</B> - New example demonstrating how to collect energy
|
|
deposition in a sampling calorimeter and how to survey energy flow.</LI>
|
|
<LI><B>hadronic/Hadr10</B> - New hadronic example aimed to exercise the decay
|
|
of tau leptons, as well as charmed and bottom hadrons.</LI>
|
|
<LI><B>parameterisations/Par04</B> - New example demonstrating how to use the
|
|
Machine Learning (ML) inference to create energy deposits as a fast
|
|
simulation model using ONNX runtime and LWTNN libraries.</LI>
|
|
<LI><B>runAndEvent/RE07</B> - New example demonstrating how to register
|
|
specialized tracking managers for a particle or a set of particles.</LI>
|
|
</LI><LI><B>dna/AuNP</B> - New example simulating the track-structure of electrons
|
|
in microscopic gold volume. Also simulating that in liquid water
|
|
medium surrounding the gold volume.</LI>
|
|
<LI><B>dna/scavenger</B> - New example showing how to activate the scavenging
|
|
process in chemistry using the deterministic treatment of the IRT
|
|
model.</LI>
|
|
<LI><B>visualization/movies</B> - New example illustrating how to make a movie
|
|
with <TT>/vis/viewer/save</TT> and <TT>/vis/viewer/interpolate</TT> UI
|
|
commands.</LI>
|
|
</UL>
|
|
|
|
<A NAME="5."></A>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>5. Expected effects on physics and computing performance</H2>
|
|
|
|
<B>Geometry</B>
|
|
<UL>
|
|
<LI>Use G4Allocator to dynamically allocate nodes and proxies for the voxels
|
|
optimisation structure. Should help reducing memory fragmentation.</LI>
|
|
</UL>
|
|
|
|
<B>Electromagnetic physics</B>
|
|
<UL>
|
|
<LI>Expected few % speed-up for EM simulations. Stable results for calorimeters
|
|
compared with the previous versions 10.6 or 10.7.</LI>
|
|
</UL>
|
|
|
|
<B>Hadronic physics</B>
|
|
<UL>
|
|
<LI>Stable results with respect to version 10.7 are expected in general for
|
|
all hadronic physics observables, in particular for hadronic showers
|
|
in calorimeters.</LI></LI>
|
|
</UL>
|
|
|
|
<P> </P>
|
|
<A NAME="6."></A>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>6. Known Run-Time Problems and Limitations</H2>
|
|
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
|
|
<A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem
|
|
Reporting System</A>.
|
|
|
|
<P> </P>
|
|
<A NAME="7."></A>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>7. Compilation Warnings</H2>
|
|
|
|
There may be a few compilation warnings on some platforms.
|
|
We do not believe that any of these lead to incorrect run-time behaviour.
|
|
|
|
<P> </P>
|
|
<A NAME="8."></A>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>8. Geant4 Software License</H2>
|
|
|
|
A Software License applies to the Geant4 code.
|
|
Users must accept this license in order to use it.<BR>
|
|
The details and the list of copyright holders is available at
|
|
<A href="http://cern.ch/geant4/license">http://cern.ch/geant4/license</A>
|
|
and also in the text file <TT>LICENSE</TT> distributed with the source code.
|
|
|
|
<P> </P>
|
|
<A NAME="9."></A>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>9. Detailed list of changes and fixes</H2>
|
|
|
|
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):
|
|
|
|
<P> </P>
|
|
|
|
<A NAME="conf-notes">
|
|
<H3><I>Configuration</I></H3></A>
|
|
<UL>
|
|
<LI><U>CMake</U>
|
|
<UL>
|
|
<LI>Updated minimum required CMake version to 3.16, with 3.16 to 3.21
|
|
as confirmed working range.</LI>
|
|
<LI>Updated default build settings, GEANT4_BUILD_MULTITHREADED is now
|
|
set ON by default.</LI>
|
|
<LI>Updated default build settings, GEANT4_BUILD_BUILTIN_BACKTRACE is now
|
|
set ON by default.</LI>
|
|
<LI>Deprecated use of GEANT4_BUILD_CXXSTD in favour of CMAKE_CXX_STANDARD
|
|
to choose C++ Standard to compile against.</LI>
|
|
<LI>Requiring C++17 as minimum standard to compile Geant4.</LI>
|
|
<LI>Added support for compilation against C++23 with CMake 3.20 and newer
|
|
(note that Geant4 is not yet tested or supported using C++23).</LI>
|
|
<LI>Removed obsolete -stdlib flag for AppleClang.</LI>
|
|
<LI>Added preliminary support for sanitizer builds with advanced option
|
|
GEANT4_BUILD_SANITIZER to allow selection of one of address, thread,
|
|
or undefined sanitizer. The default is no sanitization.
|
|
Adds appropriate flags to CMAKE_CXX_FLAGS.</LI>
|
|
<LI>Removed settings of deprecated PHP_AS_HP environmental variable.</LI>
|
|
<LI>Removed obsolete GEANT4_USE_SYSTEM_CLHEP_GRANULAR option.</LI>
|
|
<LI>Updated CLHEP minimum required version to 2.4.5.1.</LI>
|
|
<LI>Updated VecGeom minimum required version to 1.1.18 for optional
|
|
build with VecGeom solids.</LI>
|
|
<LI>Updated builtin PTL module to version v2.0.0.</LI>
|
|
<LI>Added GEANT4_USE_PTL_LOCKS option to configure builtin PTL with mutex
|
|
locking in task subqueues.</LI>
|
|
<LI>Added GEANT4_USE_TOOLSSG option for enabling new ToolsSG visualisation
|
|
driver and selecting the backend (X11, Motif, Qt, or Windows).</LI>
|
|
<LI>Added GEANT4_USE_VTK advanced option for enabling new experimental
|
|
VTK based visualisation driver.</LI>
|
|
<LI>Removed all references to obsolete Wt visualisation driver and
|
|
dependencies.</LI>
|
|
<LI>Removed obsolete options for VRML and FukuiRenderer network/sockets
|
|
visualisation drivers.</LI>
|
|
<LI>Added FindPythia8.cmake script for use in examples.</LI>
|
|
<LI>Removed obsolete FindAIDA.cmake module, no longer used in examples.</LI>
|
|
<LI>Added geant4.bat, geant4-config.cmd prototypes for setting up
|
|
environment variables and querying a Geant4 install on Windows.</LI>
|
|
<LI>Added XercesC library directory to Linux LD_LIBRARY_PATH for GNUmake.</LI>
|
|
<LI>Updated CPack source packaging, including standardisation of naming
|
|
following open source conventions and use XZ compression instead of
|
|
BZIP.</LI>
|
|
<LI>Updated data-sets versions.</LI>
|
|
</UL></LI>
|
|
<LI><U>GNUMake</U>
|
|
<UL>
|
|
<LI>Moved default to C++17 Standard.</LI>
|
|
<LI>Updated compiler/link flags for migration of g4tools to externals
|
|
category.</LI>
|
|
<LI>Added comctl32.lib to UI32LIBS for WIN32-VC configuration.</LI>
|
|
<LI>Updated default Qt5 include paths for Linux targets.</LI>
|
|
<LI>binmake.gmk: removed include path to "rpg" hadronic model, now retired.
|
|
Removed include paths to <TT>hadronic/models/management</TT>
|
|
and <TT>hadronic/models/util</TT> modules, now retired.</LI>
|
|
<LI>Removed obsolete network visualisation options for VRML driver
|
|
and FukuiRenderer driver.</LI>
|
|
<LI>Removed obsolete GAG/Gain configuration.</LI>
|
|
<LI>Removed no longer needed link to libXi in all configurations.</LI>
|
|
<LI>Check for existence of lib64 directory for Xerces-C on Linux.</LI>
|
|
<LI>Add 'c' flag to ar to suppress diagnostics going to stderr.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="ana-notes">
|
|
<H3><I>Analysis</I></H3></A>
|
|
<UL>
|
|
<LI>Migration to G4ThreadLocalSingleton in all specific analysis manager
|
|
and reader classes. The singleton instances are now deleted by the Geant4
|
|
kernel; their explicit deletion in client code has to be removed.</LI>
|
|
<LI>Added public function G4VAnalysisManager::Clear() that deletes all allocated
|
|
analysis objects and clears their collections. This function should be used
|
|
as a replacement for deleting the analysis manager in the applications that
|
|
allocate the analysis data in begin of run and deleted the analysis manager
|
|
in end of run.</LI>
|
|
<LI>Added public function G4VAnalysisManager::Reset(), needed when calling files
|
|
are closed without reset by calling CloseFile(false) from the analysis
|
|
manager, see <TT>basic/exampleB5</TT> with interactive plotting.</LI>
|
|
<LI>Added support for n-tuple columns of string vectors via new public
|
|
functions in G4VAnalysisManager and G4VAnalysisReader.
|
|
Added support for Xml, Hdf5 output types: added helper code for Xml
|
|
reader, no update needed for Hdf5.</LI>
|
|
<LI>Implemented support for file system directories with Csv output
|
|
as proposed in
|
|
<A HREF="https://github.com/Geant4/geant4/pull/32">GitHub PR #32</A>.</LI>
|
|
<LI>Fixed reading objects from files with directories (Root, Hdf5).</LI>
|
|
<LI>Implemented missing WriteOnAscii() for h2,h3,p1,p2.</LI>
|
|
<LI>Added new G4ToolsAnalysisManager::IsEmpty() function.
|
|
<LI>Added new G4VAnalysisReader public function CloseFiles() to be called by
|
|
user before the end of program and its implementation for all readers.</LI>
|
|
<LI>Replaced the explicit Write[Hn|Pn] functions in the analysis managers
|
|
by a common implementation in G4ToolsAnalysisManager::WriteImpl() and
|
|
Merge() using the new Hn file manager classes introduced for the generic
|
|
file manager. The same code is now used for writing histograms/profiles
|
|
by specific analysis managers and the generic analysis manager.</LI>
|
|
<LI>Replaced the explicit Read[Hn|Pn] functions in the analysis readers
|
|
by a common implementation in G4ToolsAnalysisReader using the newly
|
|
introduced Hn file manager classes for reading.</LI>
|
|
<LI>Separated Hn/Pn object file handling from output specific analysis readers
|
|
in Hn file manager classes for reading (G4XHnRFileManager).</LI>
|
|
<LI>Separated ReadNtuple functions from the analysis readers in
|
|
the RNtuple manager classes.</LI>
|
|
<LI>Added G4ToolsAnalysisMessenger that implements "get" commands
|
|
<TT>/analysis/hn|pn/get id</TT>.</LI>
|
|
<LI>Reimplemented utility functions GetBaseName(), GetExtension() using
|
|
<TT>filesystem</TT> library.</LI>
|
|
<LI>Removed 'isMaster' argument from managers/reders constructors, and retrieve
|
|
this info from G4Threading where needed.</LI>
|
|
<LI>Simplified calls to G4Exceptions: added G4Analysis::Warn() and changed the
|
|
calls to G4Exception in all analysis classes (except accumulables); reduced
|
|
exception classification to: Analysis_F001 (Fatal exceptions) and
|
|
Analysis_W001 (Warnings).</LI>
|
|
<LI>Simplified verbosity messages, plus more simplifications in warning calls.</LI>
|
|
<LI>Use fonts from tools in G4PlotManager.</LI>
|
|
<LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>Removed CMake -DTOOLS_USE_EXPAT definition, no longer needed.</LI>
|
|
<LI>Removed <TT>default</TT> in switch for GetMergeFunction() to prevent
|
|
accidental fall through on Windows.</LI>
|
|
<LI>Code clean-up: review of static data members; changed <TT>static const</TT>
|
|
to <TT>static constexpr</TT> where possible or <TT>inline static const</TT>
|
|
otherwise (for G4String); declare static data members inline and moved
|
|
their initialization in header file. Removed redundant includes and
|
|
consistency fixes. Moved data members initialization in header files;
|
|
added deleted default constructor where appropriate; added <TT>explicit</TT>
|
|
keyword to one argument constructors where missing and removed from
|
|
constructors with more than 1 parameters; use brace data members
|
|
initialization everywhere. Replaced some constants with <TT>constexpr</TT>.
|
|
Replaced G4Analysis::make_unique with <TT>std::make_unique</TT>.
|
|
Using more shared pointers. Using <TT>[[maybe_unused]]</TT> where
|
|
appropriate. Fixed Coverity issues.</LI>
|
|
<LI>Applied clang-tidy performance fixes: use of <TT>const auto&</TT>,
|
|
<TT>std::move</TT> where appropriate; revisited passing by
|
|
<TT>std::shared_ptr</TT>. Use <TT>make_unique, nullptr, auto,
|
|
emplace_back, using</TT>; use of <TT>default</TT> for disabled constructors
|
|
and destructors and <TT>delete</TT> for private member functions not
|
|
implemented.</LI>
|
|
<LI>Removed deprecated g4csv.hh, g4hdf5.hh, g4root.hh, g4xml.hh headers.</LI>
|
|
<LI>Reduced output specific type definitions in g4xyz_defs.hh to ntuple end
|
|
rntuple types.</LI>
|
|
<LI>Removed g4analysis.hh with the G4Analysis::MasterInstance() factory method.</LI>
|
|
<LI>Removed the default value ("root") for the default file type in
|
|
G4GenericAnalysisManager; the default must be set by user if using fileNames
|
|
without extensions.</LI>
|
|
<LI>Moved g4tools to externals category. Moved "fonts" directory and install
|
|
logic to g4tools package in externals, as prime interface to Freetype.</LI>
|
|
<LI>Fix in G4MPIToolsManager: do not call Receive() twice.</LI>
|
|
<LI>Fixed compilation errors in G4CsvAnalysisReader and G4XmlAnalysisReader
|
|
occurring with C++20 enabled.</LI>
|
|
<LI>Fixed evaluation of result of deleting empty file in G4RootAnalysisManager,
|
|
causing wrong warnings.</LI>
|
|
<LI>Minor fixes: do not issue same log messages from generic analysis manager
|
|
and generic file manager; do not call SetIsEmpty() twice in Hdf5.</LI>
|
|
<LI>Fixed G4*RFileManager destructors.</LI>
|
|
<LI>Implemented handling directories in Generic analysis manager.</LI>
|
|
</UL>
|
|
|
|
<A NAME="digits-notes">
|
|
<H3><I>Digitization & Hits</I></H3></A>
|
|
<UL>
|
|
<LI>Extending cylindrical scoring mesh to tube and tube segment.
|
|
Fixed indexing of cylindrical scoring mesh commands;
|
|
addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2418">#2418</A>.</LI>
|
|
<LI>Make sure probe commands are not unnecessarily broadcasted to the worker
|
|
threads.</LI>
|
|
<LI>Updated G4TScoreHistFiller according to changes in the analysis category;
|
|
removed deletion of the analysis manager, now done by the Geant4 kernel.</LI>
|
|
<LI>G4VScoringMesh: corrected warning messages when the size or number of
|
|
bins have already been set but tried to change.</LI>
|
|
<LI>Updated G4TScoreNtupleWriter according to changes in the analysis category;
|
|
removed deletion of the analysis manager, now done by the Geant4 kernel.
|
|
Added default type and its setter.</LI>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
|
|
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>Code formatting.</LI>
|
|
</UL>
|
|
|
|
<A NAME="emstd-notes">
|
|
<H3><I>Electromagnetic Processes</I></H3></A>
|
|
<UL>
|
|
<LI><B>Adjoint</B>:
|
|
<UL>
|
|
<LI>General code cleanup: applied clang-format style guidelines;
|
|
applied C++11 codewords to method declarations (virtual, override,
|
|
explicit); deleted unused variables and methods; started naming class
|
|
member variables with <TT>f</TT>; use <TT>nullptr</TT> instead of
|
|
<TT>0</TT>; removed unused headers; use constexpr for numbers.
|
|
Use <TT>virtual</TT> and <TT>override</TT> methods consistently; member
|
|
variables start with <TT>f</TT>; shorten long names; removed
|
|
unused variables; make class variables local where appropriate; order
|
|
declarations of class variables; define class variables; removed unused
|
|
functions; marked copy/assignment operators as <TT>delete</TT>; added
|
|
ProcessDescriptions; removed ChangeHistory from top of code;
|
|
use <TT>CLHEP::twopi</TT> instead of hardcoded value; removed more unused
|
|
headers.</LI>
|
|
<LI>G4AdjointForcedInteractionForGamma: improved forced interaction for
|
|
gamma reverse tracking in thick shielding.</LI>
|
|
<LI>G4AdjointhIonisationModel: updated weight correction to limit
|
|
dependence of proton dose results on cut in range.</LI>
|
|
<LI>G4ContinuousGainOfEnergy: use updated signature for ion ionisation.</LI>
|
|
<LI>G4AdjointCSManager: updated interfaces to G4PhysicsVector.</LI>
|
|
<LI>Fixed coverity warnings in G4AdjointCSManager and G4VEMAdjointModel.</LI>
|
|
<LI>Free resources in destructors.</LI>
|
|
</UL></LI>
|
|
<LI><B>DNA</B>:
|
|
<UL>
|
|
<LI>Added IRT-syn model.</LI>
|
|
<LI>Added new models: G4DNADiracRMatrixExcitationModel,
|
|
G4DNAQuinnPlasmonExcitationModel, G4DNARelativisticIonisationModel and
|
|
G4DNAPlasmonExcitation.</LI>
|
|
<LI>Added G4VDNAMolecularGeometry, a virtual class for DNA geometry.</LI>
|
|
<LI>Added new mesoscopic model for DNA chemistry.</LI>
|
|
<LI>Updates in G4DNAIRT, G4DNAIRTMoleculeEncounterStepper,
|
|
G4ITModelProcessor, G4Scheduler and G4DNAMolecularReactionTable
|
|
classes, and fixed sub-modules dependencies.</LI>
|
|
<LI>Modified G4DNAELSEPAElasticModel for gold material.</LI>
|
|
<LI>G4DNAElectronHoleRecombination: dissociation channel of electron-hole
|
|
recombination moved to G4EmDNAChemistry, _option1, _option2, _option3.</LI>
|
|
<LI>G4DNAWaterDissociationDisplacer: added the fragment displacement for
|
|
new dissociation channel.</LI>
|
|
<LI>Replaced hardwired process-sub-types with enum values introduced in the
|
|
new class G4LowEnergyEmProcessSubType.</LI>
|
|
<LI>Updated PrintGeneratorInformation() method signature in G4DNABornAngle
|
|
and G4DNARuddAngle.</LI>
|
|
<LI>G4DNABohrExcitationModel2, G4DNABohrIonisationModel2, G4VLEPSModel:
|
|
updated interfaces to G4PhysicsVector.</LI>
|
|
<LI>Fixed initialization error in G4DNAELSEPAElasticModel.</LI>
|
|
<LI>Fixed compilation error in G4ITMultiNavigator when compiling with C++20
|
|
enabled.</LI>
|
|
<LI>Fixed dependency on g4tools, now moved to externals module.</LI>
|
|
</UL></LI>
|
|
<LI><B>High Energy</B>
|
|
<UL>
|
|
<LI>G4eeToHadrons: updated integral type.</LI>
|
|
<LI>Code clenup: clean-up of interfaces; removed unused headers;
|
|
improved initialisation.</LI>
|
|
<LI>G4hBremsstrahlungModel: added header.</LI>
|
|
<LI>G4hhIonisation: removed G4BohrFluctuations.</LI>
|
|
<LI>G4AnnihiToMuPair: return DBL_MAX if below threshold energy; keep pointer
|
|
to G4LossTableManager for correct de-registration in the MT mode; added
|
|
option of tau+tau- pair production; optimized computation of
|
|
cross-sections in compounds; added process sub-type via enumerator.</LI>
|
|
<LI>G4mplIonisationModel, G4mplIonisationWithDeltaModel: updated according to
|
|
change of G4VEmFluctuationModel signature.</LI>
|
|
</UL></LI>
|
|
<LI><B>Low Energy</B>
|
|
<UL>
|
|
<LI>Updated Livermore models to use EPICS2017 data.</LI>
|
|
<LI>Included new PIXE data libraries following ANSTO recommendations.
|
|
Added new classes to model the ANSTO ECPSSR cross-sections for protons
|
|
and alpha particles. Added option to activate the ANSTO fluorescence
|
|
radiation yield (<TT>Z < 93</TT>).</LI>
|
|
<LI>G4LivermorePolarizedComptonModel: added quantum entanglement of e+
|
|
annihilation. If the photons have been "tagged" as "quantum-entangled",
|
|
for example by G4eplusAnnihilation for annihilation into 2 photons, they
|
|
are "analysed" if and only if both photons suffer Compton scattering.
|
|
Theoretical predictions from: Pryce and Ward, Nature N.4065 (1947) p.435,
|
|
and Snyder et al, Physical Review 73 (1948) p.440. Experimental
|
|
validation in: "Photon quantum entanglement in the MeV regime and its
|
|
application in PET imaging", D. Watts, J. Allison et al., Nature
|
|
Communications (2021)12:2646.
|
|
The implementation of entanglement is described in extensive comments
|
|
in G4LivermorePolarizedComptonModel source.</LI>
|
|
<LI>Migrated Spline treatment for all physics vectors.</LI>
|
|
<LI>G4LivermorePolarizedRayleighModel: read data from $G4LEDATA/livermore
|
|
directory. Code clean-up.</LI>
|
|
<LI>Removed unused classes G4LivermoreGammaConversionModelRC and
|
|
G4LivermoreComptonModifiedModel.</LI>
|
|
<LI>Convert G4LPhysicsFreeVector into G4PhysicsFreeVector.</LI>
|
|
<LI>Removed obsolete unused classes G4BremsstrahlungCrossSectionHandler,
|
|
G4BremsstrahlungParameters, G4eBremsstrahlungSpectrum, G4hSRIM2000p,
|
|
G4PhotoElectricAngularGeneratorSimple, G4MicroElecInelastic_new,
|
|
G4LivermorePolarizedPhotoElectricModel and
|
|
G4LivermorePolarizedPhotoElectricGDModel.</LI>
|
|
<LI>G4MicroElecLOPhononModel: removed debug printout; rename member of
|
|
class.</LI>
|
|
<LI>G4MicroElecSurface: replaced hardwired process-sub-type 25 with (already
|
|
existing) <TT>fSurfaceReflection</TT>.</LI>
|
|
<LI>G4MicroElecElastic, G4MicroElecLOPhononScattering, G4MicroElecInelastic:
|
|
replaced hardwired process-sub-types 51 and 53 with new enum values
|
|
<TT>fLowEnergyElastic</TT> and <TT>fLowEnergyIonisation</TT>.</LI>
|
|
<LI>Improved management of array in G4PenelopeGammaConversionModel.</LI>
|
|
<LI>Replaced std::map with static arrays in the G4Penelope models for
|
|
performance improvements.</LI>
|
|
<LI>Removed obsolete PrintInfo() methods and self defined process SubType.</LI>
|
|
<LI>G4IonParametrisedLossModel: use updated signature for ion ionisation.</LI>
|
|
<LI>Updated PrintGeneratorInformation() method signature for few angular
|
|
generators.</LI>
|
|
<LI>G4PenelopeBremsstrahlungAngular, G4PenelopeBremsstrahlungFS,
|
|
G4PenelopeCrossSection, G4JAEAElasticScatteringModel,
|
|
G4JAEAPolarizedElasticScatteringModel: use optimal methods of
|
|
G4PhysicsVector.</LI>
|
|
<LI>G4LivermorePolarizedComptonModel: migrated to the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
<LI>G4AugerData: removed dead code.</LI>
|
|
<LI>G4VCrossSectionHandler, G4eIonisationParameters: use const pointers to
|
|
G4Element.</LI>
|
|
<LI>General code cleanup: use G4 types; cleanup of headers and Penelope
|
|
models.</LI>
|
|
</UL></LI>
|
|
<LI><B>Muons</B>
|
|
<UL>
|
|
<LI>General code clean-up: use C++11 keywords, improved comments, format
|
|
files.</LI>
|
|
<LI>G4EnergyLossForExtrapolator, G4ErrorEnergyLoss, G4TablesForExtrapolator:
|
|
provide thread-safe initialisation of internal tables; guarantee
|
|
initialisation only once; size of tables depend only on number of
|
|
materials.</LI>
|
|
<LI>G4MuIonisation: removed obsolete G4BohrFluctuations header.</LI>
|
|
<LI>G4MuPairProduction, G4ePairProduction, G4MuBremsstrahlung: disabled
|
|
Spline interpolation by default.</LI>
|
|
<LI>G4MuPairProduction, G4MuBremsstrahlung, G4MuBremsstrahlungModel:
|
|
improved initialisation.</LI>
|
|
<LI>Updated PrintGeneratorInformation() method signature in G4ModifiedMephi.</LI>
|
|
</UL></LI>
|
|
<LI><B>Pii</B>
|
|
<UL>
|
|
<LI>Use const pointer to G4Element according to recent changes in materials.</LI>
|
|
</UL></LI>
|
|
<LI><B>Polarisation</B>
|
|
<UL>
|
|
<LI>General code cleanup: name classes in logical manner; improved comments;
|
|
added ProcessDescription; ordered #includes and removed unused; disabled
|
|
copy and assignment operators with <TT>delete</TT>; increased C++11 keyword
|
|
usage, especially <TT>override</TT>, <TT>explicit</TT>; renamed (most)
|
|
class variables to start with <TT>f</TT>; make SCRN arrays the correct size;
|
|
use <TT>constexpr</TT> for numbers; applied clang-format style; use
|
|
G4ExceptionDescription; avoid implicit conversions between G4StokesVector
|
|
and G4ThreeVector.</LI>
|
|
<LI>G4PolarizedIonisationBhabhaXS: removed incorrect G4Exception.</LI>
|
|
<LI>G4PolarizedAnnihilation, G4ePolarizedIonisation: improved initialisation
|
|
of assymetry tables.</LI>
|
|
<LI>G4PolarizedAnnihilation, G4PolarizedCompton: updated use of the Spline
|
|
flag.</LI>
|
|
</UL>
|
|
<LI><B>Standard</B>
|
|
<UL>
|
|
<LI>G4eplusAnnihilation: introducing Quantum Entanglement. This is activated
|
|
by UI command <TT>/process/em/QuantumEntanglement</TT>. For e+e- -> gamma
|
|
gamma, the gammas are "tagged" here and must be "analysed" in a Compton
|
|
scattering process - see, for example, G4LivermorePolarizedComptonModel.
|
|
Otherwise entanglement has no effect even if activated.
|
|
Instantiate clipboard only if Quantum Entanglement is requested.</LI>
|
|
<LI>G4PAIModelData, G4eplusTo2GammaOKVIModel: corrected initialisation of
|
|
physics vectors.</LI>
|
|
<LI>G4LindhardSorensenData: updated definition of Spline flag.</LI>
|
|
<LI>G4CoulombScattering, G4eBremsstrahlung, G4eplusAnnihilation: updated set
|
|
of flags for Spline and the integral approach.</LI>
|
|
<LI>Removed obsolete classes G4BohrFluctuations and
|
|
G4HeatedKleinNishinaCompton.</LI>
|
|
<LI>G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel,
|
|
G4ICRU73QOModel, G4AtimaIonIonisationModel: changed interface to ion
|
|
ionisation corrections.</LI>
|
|
<LI>G4BraggModel, G4BraggIonModel: set lowest energy to <TT>0.25 keV</TT>;
|
|
added protection to limit cut value by the lowest energy.</LI>
|
|
<LI>G4BraggIonModel, G4BetheBlochModel, G4ionIonisation clean-up. Improved
|
|
implementation of corrections to ion stopping powers: do not apply
|
|
corrections at the last step of an ion; do not apply corrections to
|
|
alpha.Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2440">#2440</A>.</LI>
|
|
<LI>G4PairProductionRelModel: reduced upper limit of parameterisation
|
|
cross-section from 80 to 30 <TT>GeV</TT>.</LI>
|
|
<LI>G4LindhardSorensenIonModel: use G4BraggIonModel, G4BetheBlochModel and
|
|
G4IonICRU73Data, do not apply corrections at the last step of an ion.</LI>
|
|
<LI>G4IonICRU73Data: new data structure for ion ionisation data.</LI>
|
|
<LI>G4LinhardSorensenIonModel, G4ICRU73QOModel: added protection to limit cut
|
|
value by the lowest energy.</LI>
|
|
<LI>G4eplusAnnihilation: migrated to the new version of G4PhysicsModelCatalog.</LI>
|
|
<LI>G4PAIModelData: use optimal methods to access G4PhysicsVector.</LI>
|
|
<LI>G4UniversalFluctuation, G4IonFluctuations, G4AtimaFluctuations, G4PAIModel,
|
|
G4PAIPhotModel: updated according to new G4VEmFluctuationModel signature.
|
|
Minor optimisation and code clean-up in G4UniversalFluctuation.</LI>
|
|
<LI>G4UrbanMscModel: do not apply energy correction at small steps below 1% of
|
|
a particle range. Use random arrays instead of flat() method to speedup the
|
|
code; use more const variables.</LI>
|
|
<LI>G4UniversalFluctuation: substantially simplified sampling algorithm,
|
|
smaller number of parameters, faster computations; results are in
|
|
statistical agreement with the previous version of the code.</LI>
|
|
<LI>G4PEEffectFluoModel: optimised cross-section computation with reciprocals
|
|
and Horners scheme.</LI>
|
|
<LI>G4BraggIonModel: fixed computation of dedx for alpha if
|
|
ICRU90 data are used. Improved method signatures and code cleanup.</LI>
|
|
<LI>G4hIonisation, G4ionIonisation: He3 dedx derived from alpha dedx;
|
|
pi, K, proton, pbar, GenericIon have their own dedx and other tables;
|
|
other hadrons derived from K, protons, pbar; ions derived from GenericIon.</LI>
|
|
<LI>G4ionIonisation: use G4WaterStopping with Spline enabled.
|
|
Minor code clean-up.</LI>
|
|
<LI>G4ASTARStopping: improved method signatures.</LI>
|
|
<LI>G4BetheBlochModel, G4ESTARStopping, G4AtimaEnergyLossModel,
|
|
G4LindhardSorensenIonModel: fixed Coverity warnings by initialising all
|
|
variables in class constructors.</LI>
|
|
<LI>Removed obsolete G4alphaIonisation class.</LI>
|
|
<LI>Code clean-up of ionisation, energy loss processes and models.</LI>
|
|
<LI>Clean-up of gamma processes.</LI>
|
|
<LI>Requires data-set G4EMLOW-8.0.</LI>
|
|
</UL></LI>
|
|
<LI><B>Utils</B>
|
|
<UL>
|
|
<LI>G4VEmProcess, G4VEnergyLossProcess, G4EmTableType, G4EmBiasingManager,
|
|
G4LossTableManager: updated integral approach by introduction of a
|
|
cross-section shape type and different actions depending on the type;
|
|
added cache for cross-section and range; removed unused methods;
|
|
attempt to reduce number of <TT>if</TT> operators at run time; integral
|
|
and Spline flags are set to each process individually and not via
|
|
G4EmParameters class.</LI>
|
|
<LI>G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering,
|
|
G4LossTableBuilder, G4VEmModel, G4VMscModel, G4LossTableManager:
|
|
implement and use base material approach only if base materials are defined,
|
|
this should bring a minor speedup of the code and little reduction of memory;
|
|
fixed problems for the case when materials are changed between runs.</LI>
|
|
<LI>G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation, G4LossTableBuilder:
|
|
implemented updated numbering scheme for secondary particle production;
|
|
deprecated duplicate printout of processes and models; moved list of EM
|
|
parameters printout before printout on processes; improved code format.</LI>
|
|
<LI>G4VMultipleScattering: fixed problem observed by CMS for specific
|
|
physics list.</LI>
|
|
<LI>G4EmCorrections, G4VEmProcess: updated use of the Spline flag.</LI>
|
|
<LI>G4EmCorrections: do not use Spline in various internal vectors, as
|
|
correction values are small and smooth. Cleanup of ion correction
|
|
computations.</LI>
|
|
<LI>G4EmCorrections, G4LossTableBuilder: substitute use of deprecated
|
|
G4LPhysicsFreeVector by G4PhysicsFreeVector.</LI>
|
|
<LI>G4VEmProcess, G4VEnergyLossProcess, G4EmDataHandler: updated method
|
|
RetrievePhysicsTable().</LI>
|
|
<LI>G4TableType: added extra enumerator for type of cross-section shape.</LI>
|
|
<LI>G4EmProcessSubType: added new type for annihilation to tau pair.</LI>
|
|
<LI>G4LowEnergyEmProcessSubType: added new enum values, corresponding
|
|
to numerical values used in G4PhysicsListHelper.</LI>
|
|
<LI>G4LowEnergyEmProcessSubType: created new enum for low-energy
|
|
electromagnetic process sub-types.</LI>
|
|
<LI>G4EmElementSelector: change computation for upper energy limit, fixing
|
|
occasional crashes in some applications.</LI>
|
|
<LI>G4EmParameters: added ANSTO options for the atomic de-excitation; removed
|
|
obsolete AugerCascade() method.</LI>
|
|
<LI>G4EmParameters, G4EmParametersMessenger: removed obsolete methods; added
|
|
protection agains duplicate printout.</LI>
|
|
<LI>G4EmLowEParameters, G4EmLowEParametersMessenger: added ANSTO flag and UI
|
|
commands.</LI>
|
|
<LI>G4OpticalParameters: removed deprecated function declarations.</LI>
|
|
<LI>G4OpticalParameters, G4OpticalParametersMessenger: removed deprecated
|
|
optical commands and parameters. Replaced CreateDir() with new
|
|
G4UIdirectory(). Apply clang-format style guidelines.</LI>
|
|
<LI>G4VMultipleScattering: removed obsolete unused methods; reduced number
|
|
of operations at run time, use <TT>isIon</TT> flag for scaling of energy
|
|
limits for all particles with mass <TT>>1 GeV</TT>.</LI>
|
|
<LI>G4VEmModel removed "virtual" keyword for ComputeDEDX() method.</LI>
|
|
<LI>G4EmCalculator: fixed computation of dedx for He3 and alpha.
|
|
In G4VEnergyLossProcess, exclude ion corrections only from d, t, alpha.
|
|
Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2440">#2440</A>.</LI>
|
|
<LI>G4ionEffectiveCharge: return back limit on effective charge from
|
|
0.5 to 1 as used in previous releases.</LI>
|
|
<LI>G4VEmAngularDistribution: added virtual method
|
|
PrintGeneratorInformation().</LI>
|
|
<LI>Fixed model per region definition for all base processes G4VEmProcess,
|
|
G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
|
|
for energy loss processes; clean-up of parameters classes.</LI>
|
|
<LI>G4VEmModel, G4VEnergyLossProcess, G4EmCalculator: optimised signature
|
|
of the CorrectionsAlongStep() method; use more constant variables;
|
|
minor code optimisation.</LI>
|
|
<LI>G4VEmProcess, G4VEnergyLossProcess: fixed computation of cross-section
|
|
and range if base material approach is used.</LI>
|
|
<LI>G4VEmFluctuationModel: changed interface; both cut value and max energy
|
|
transfer are parameters of main methods.
|
|
Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2390">#2390</A>.</LI>
|
|
<LI>G4VEnergyLossProcess, G4EmModelManager: adopted above interface change.</LI>
|
|
<LI>G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation: migrated
|
|
to the new version of G4PhysicsModelCatalog.</LI>
|
|
<LI>G4LossTableBuilder: base material flag may be disabled.
|
|
Use updated interface to G4PhysicsVector.</LI>
|
|
<LI>G4EmElementSelector: change computation for corner cases.</LI>
|
|
<LI>G4EmParametersMessenger: correct default value for 'GeomFactor'.</LI>
|
|
<LI>Changed ANSTO parameters in UI interface commands.</LI>
|
|
<LI>Removed obsolete G4EmProcessOptions class.</LI>
|
|
<LI>G4LossTableBuilder: fixed debug printout.</LI>
|
|
<LI>G4VMscModel: improved printout.</LI>
|
|
<LI>G4VEnergyLossProcess: code cleanup for ions.</LI>
|
|
<LI>General code cleanup; removed obsolete methods and members;
|
|
reorganized class members.</LI>
|
|
</UL>
|
|
<LI><B>Xrays</B>
|
|
<UL>
|
|
<LI>General code cleanup: removed commented out code; added
|
|
ProcessDescription() and DumpInfo(); organized order of headers,
|
|
removed and added as needed; use <TT>constexpr</TT> for numbers; replaced
|
|
G4PhysicsOrderedFreeVector with G4PhysicsFreeVector.</LI>
|
|
<LI>G4Cerenkov, G4Scintillation, G4SynchrotronRadiation, G4ForwardXrayTR,
|
|
G4SynchrotronRadiationInMat, G4VXTRenergyLoss: set the creator model ID
|
|
for the secondaries, using the new version of G4PhysicsModelCatalog.</LI>
|
|
<LI>G4Cerenkov, G4Scintillation: update G4OpticalParameters when process
|
|
parameters updated directly. Addresses problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2425">#2425</A>.</LI>
|
|
<LI>G4Cerenkov: do not use obsolete methods to access G4PhysicsVector data.</LI>
|
|
<LI>G4Scintillation: removed deprecated optical commands.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="errprop-notes">
|
|
<H3><I>Error Propagation</I></H3></A>
|
|
<UL>
|
|
<LI>Code formatting.</LI>
|
|
</UL>
|
|
|
|
<A NAME="event-notes">
|
|
<H3><I>Event</I></H3></A>
|
|
<UL>
|
|
<LI>G4EventManager: hand over track to custom tracking manager, if registered
|
|
for the particle; moved StackTracks() to be public.</LI>
|
|
<LI>Use existing facility to find physical volume in store, rather than
|
|
looping through in G4SPSPosDistribution::ConfineSourceToVolume().</LI>
|
|
<LI>Use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector
|
|
in G4AdjointPrimaryGenerator, G4SPSAngDistribution, G4SPSEneDistribution,
|
|
and G4SPSRandomGenerator.</LI>
|
|
<LI>G4SPSEneDistribution: use more efficient access to G4PhysicsVector.</LI>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
|
|
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
</UL>
|
|
|
|
<A NAME="externals-notes">
|
|
<H3><I>Externals</I></H3></A>
|
|
<UL>
|
|
<LI><U>CLHEP</U>:
|
|
<UL>
|
|
<LI>Updated to CLHEP version 2.4.5.1.</LI>
|
|
<LI>Added units: <TT>minute</TT>, <TT>hour</TT>, <TT>day</TT>, <TT>year</TT>
|
|
and <TT>millielectronvolt</TT>.
|
|
Added constants: <TT>Bohr_magneton</TT> and <TT>nuclear_magneton</TT>.</LI>
|
|
<LI>Added new random engine RANLUX++ and related helper classes.
|
|
RANLUX++ is an extension of RANLUX and uses the equivalent LCG to
|
|
offer a much higher luxury level at better performance. It inherits
|
|
the excellent statistical properties and passes the full BigCrush.</LI>
|
|
<LI>Fixed seeding in Ranlux64Engine.</LI>
|
|
<LI>Fixed trivial compilation warnings on gcc-11 in Random headers.</LI>
|
|
</UL></LI>
|
|
<LI><U>G4tools</U>:
|
|
<UL>
|
|
<LI>Moved from analysis module and updated to version 5.6.0:
|
|
<UL>
|
|
<LI>Added "Windowing" code needed for G4/vis/tools_sg.</LI>
|
|
<LI>Added code to write/read a column of vectors of strings for n-tuple.</LI>
|
|
<LI>Handling of embedded fonts.</LI>
|
|
<LI>Fixed compilation warnings on gcc-11.</LI>
|
|
<LI>See History_tools for the complete list of modifications.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><U>PTL</U>:
|
|
<UL>
|
|
<LI>Updated PTL to version v2.0.0.</LI>
|
|
<LI>Replaced raw pointers to tasks with
|
|
shared_ptrs for memory management improvements.</LI>
|
|
<LI>Removed PTL custom task allocator classes.</LI>
|
|
<LI>Fixed warnings about TBB task scheduler init.</LI>
|
|
<LI>Fixed compilation warnings when C++20 Standard enabled.</LI>
|
|
<LI>Improved thread safety.</LI>
|
|
<LI>Fixed some memory issues.</LI>
|
|
<LI>Fix to TaskRunManager::Terminate() + <TT>nullptr</TT> to m_thread_pool
|
|
responsible for segmentation-fault when ui/vis initialised, but not
|
|
run manager.</LI>
|
|
<LI>Make PTL cmake options available in configuration, including:
|
|
PTL_USE_SANITIZER and PTL_USE_LOCKS, but hidden from clients building
|
|
Geant4; relevant Geant4 options forwarded to PTL: TBB, sanitizer, locks.</LI>
|
|
<LI>Use CMAKE_CXX_STANDARD in place of GEANT4_BUILD_CXXSTD in CMake
|
|
configuration. Also, updated minimum CMake version requirements.</LI>
|
|
</UL></LI>
|
|
<LI><U>ZLIB</U>:
|
|
<UL>
|
|
<LI>Removed formatting options from build.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="g3tog4-notes">
|
|
<H3><I>G3toG4</I></H3></A>
|
|
<UL>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
|
|
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>Fixed compilation error in G3EleTable when C++20 is enabled.</LI>
|
|
</UL>
|
|
|
|
<A NAME="gen-notes">
|
|
<H3><I>General Processes</I></H3></A>
|
|
<UL>
|
|
<LI><B>Biasing</B>
|
|
<UL>
|
|
<LI>G4BOptrForceCollision: migrated to the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
<LI><B>Cuts</B>
|
|
<UL>
|
|
<LI>G4VRangeToEnergyConverter, G4RToEConvForPositron, G4RToEConvForElectron,
|
|
G4RToEConvForGamma, G4RToEConvForProton: simplified the design; do not use
|
|
G4PhysicsTable and G4PhysicsVector but convert range cut to production
|
|
threshold directly; expected memory reduction for big detectors and some
|
|
speed-up of initialisation.</LI>
|
|
<LI>G4PhysicsTableHelper: updated interface to Retrieve() method.
|
|
Fixed minor Coverity report. Fixed Coverity warning due to index type;
|
|
removed G4ThreadLocal variable; substituted old cerr with G4Exception
|
|
(old printouts are kept); removed inclusion of unused headers.</LI>
|
|
<LI>G4MCCIndexConversionTable: changed inline functions, only one return is
|
|
left instead of two.</LI>
|
|
</UL></LI>
|
|
<LI><B>Management</B>
|
|
<UL>
|
|
<LI>Introducing classes for implementation of quantum entanglement:
|
|
G4EntanglementAuxInfo, G4VEntanglementClipBoard and
|
|
G4eplusAnnihilationEntanglementClipBoard.
|
|
Currently, entanglement is implemented only in G4eplusAnnihilation
|
|
and G4LivermorePolarizedComptonModel.</LI>
|
|
<LI>New class G4NoProcess, representing an empty process not assigned to any
|
|
particle, and used only in G4SteppingManager::InvokeAtRestDoItProcs()
|
|
for stable ions at rest, in order to avoid that radioactive decay appears
|
|
as process defining their last step. Note that the method IsApplicable(),
|
|
retunrs false, as this process should not be set to any particle.</LI>
|
|
</UL></LI>
|
|
<LI><B>Optical</B>
|
|
<UL>
|
|
<LI>G4OpBoundaryProcess: fixed initialisation of some local variables.
|
|
Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2364">#2364</A>.</LI>
|
|
<LI>G4OpBoundaryProcess: renamed internal variables; make comparison to
|
|
<TT>nullptr</TT> explicit; removed unneeded intermediate variable;
|
|
refactored Davis LUT calculation. On StepTooSmall, propose velocity
|
|
corresponding to material of post-step point. Addresses problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2438">#2438</A>.</LI>
|
|
<LI>In all process classes, update G4OpticalParameters when process parameters
|
|
updated directly. Addresses problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2425">#2425</A>.</LI>
|
|
<LI>G4OpRayleigh, G4OpWLS, G4OpWLS2: use G4PhysicsFreeVector instead
|
|
of deprecated G4PhysicsOrderedFreeVector.</LI>
|
|
</UL></LI>
|
|
<LI><B>Solid state</B>
|
|
<UL>
|
|
<LI>G4Channeling, G4ChannelingOptrChangeCrossSection: migrated to the
|
|
new version of G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
<LI><B>Transportation</B>
|
|
<UL>
|
|
<LI>Enable setting of smooth curved trajectories to particle-change in
|
|
G4CoupledTransportation::AlongStepDoIt(), which was commented out by
|
|
mistake. Based on discussion in Geant4 Forum thread #4271.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="geo-notes">
|
|
<H3><I>Geometry</I></H3></A>
|
|
<UL>
|
|
<LI><B>Biasing</B>
|
|
<UL>
|
|
<LI>Added missing include of G4Threading header for G4Mutex for
|
|
self-consistency in G4ImportanceAlgorithm header.</LI>
|
|
</UL></LI>
|
|
<LI><B>Management</B>
|
|
<UL>
|
|
<LI>Added map for faster search based on name in G4SolidStore,
|
|
G4RegionStore, G4logicalVolumeStore and G4PhysicalVolumeStore.
|
|
Pointers to elements are stored in the map as buckets, grouping
|
|
elements with same name.</LI>
|
|
<LI>Use G4Allocator to dynamically allocate nodes and proxies for the voxels
|
|
optimisation structure. Should help reducing memory fragmentation.</LI>
|
|
<LI>G4UAdapter: added operator<<() to fix clash between similar methods
|
|
for G4VSolid and VecGeom UnplacedVolume.</LI>
|
|
<LI>Make operator<<() for G4VSolid a free function.</LI>
|
|
<LI>Basic clang-tidy review of code.</LI>
|
|
</UL></LI>
|
|
<LI><B>Navigation</B>
|
|
<UL>
|
|
<LI>G4Navigator: enabled use of alternative G4VoxelNavigation class.
|
|
Adds call to virtual method in ComputeStep(), LocateGlobalPointAndSetup()
|
|
for voxelised volumes. Controlled by ALTERNATIVE_VOXEL_NAV flag, turned
|
|
on by default.
|
|
Deleted experimental obsolete method RecheckDistanceToCurrentBoundary(),
|
|
also removed in G4SafetyHelper and G4PathFinder.
|
|
Cleaned up ComputeSafety().</LI>
|
|
<LI>G4VoxelNavigation: simplify code of <TT>check</TT> mode tests to avoid 2nd
|
|
code path. Added comments about method arguments.</LI>
|
|
<LI>G4NavigationLogger: soften check of step vs distance (using tolerance).</LI>
|
|
<LI>G4[Partial]PhantomParameterisation: renamed Get/SetNoVoxel*() accessors
|
|
to Get/SetNoVoxels*() for coherence. Migrated code in G4RegularNavigation
|
|
accordingly. NOTE: might imply user code migration.</LI>
|
|
</UL></LI>
|
|
<LI><B>Solids (Boolean)</B>
|
|
<UL>
|
|
<LI>In G4UnionSolid and G4SubtractionSolid, revised GetCubicVolume() method
|
|
to use cubic volume of constituent volume(s) and an intersection solid,
|
|
for more accurate measurement.</LI>
|
|
</UL></LI>
|
|
<LI><B>Solids (CSG)</B>
|
|
<UL>
|
|
<LI>G4Trap, G4Para and wrappers: added accessors to retrieve/calculate
|
|
original values for alpha, theta, phi.</LI>
|
|
<LI>Revision of G4UTrap wrapper: list of accessors and modifiers made
|
|
consistent with G4Trap; implemented check of parameters similar to
|
|
G4Trap.</LI>
|
|
<LI>Corrected typo in G4UPara::GetXHalfLength(). Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2446">#2446</A>.</LI>
|
|
<LI>Removed deprecated accessors in G4Sphere and G4Tubs.</LI>
|
|
</UL></LI>
|
|
<LI><B>Solids (Specific)</B>
|
|
<UL>
|
|
<LI>Simplified implementation of CreatePolyhedron() in G4Polyhedra,
|
|
G4Polycone, G4GenericPolycone and related wrappers.
|
|
<LI>In G4TesselatedSolid, implemented GetFacetIndex(p) and CheckStructure().
|
|
Optimised code in SetExtremeFacets(): shuffle of vertices and checking
|
|
of six extreme vertices.
|
|
<LI>In G4Tet, added <TT>degeneracyFlag</TT> to the list of parameters in
|
|
SetVertices(). Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2427">#2427</A>.
|
|
<LI>G4Tet: improved calculation of bounding box. Added SetBoundingLimits()</LI>
|
|
<LI>Added missing accessor in G4UTet. Added CheckDegeneracy(), SetVertices()
|
|
and SetBoundingLimits()</LI>
|
|
<LI>G4TwistedTubs: more accurate calculation of the bounding box in
|
|
BoundingLimits() and GetExtent(), fixing measured performance
|
|
penalty. Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2450">#2450</A>.</LI>
|
|
<LI>G4TwistedTubs, G4VTwistedFaceted: fixed GetCubicVolume().</LI>
|
|
</UL></LI>
|
|
<LI><B>Volumes</B>
|
|
<UL>
|
|
<LI>G4PVPlacement::CheckOverlaps(): more precise estimation of overlap size,
|
|
improved check for encapsulation of volume by another volume.</LI>
|
|
<LI>G4ReflectionFactory: added Clean() method for clearing the internal
|
|
maps on user request and removed problematic Reset() function.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="glob-notes">
|
|
<H3><I>Global</I></H3></A>
|
|
<UL>
|
|
<LI>Removed deprecated classes G4LPhysicsFreeVector and G4PhysicsLnVector.
|
|
Redirect G4PhysicsOrderedFreeVector to G4PhysicsFreeVector.</LI>
|
|
<LI>G4PhysicsVector, G4PhysicsFreeVector, G4PhysicsLogVector,
|
|
G4PhysicsLinearVector: major update: introduced new public access methods;
|
|
removed obsolete unused methods; introduced possibility to use different
|
|
Spline methods; do not fill second derivative vector if Spline not enabled;
|
|
improved control on input data; reduced number of calls to min/max; attempt
|
|
to optimise run time code G4PhysicsTable, improved use of the vector type.</LI>
|
|
<LI>G4PhysicsVector, G4PhysicsTable, G4PhysicsFreeVector: removed obsolete
|
|
methods SetSpline(); T_G4PhysicsFreeVector type set to be default;
|
|
improved comments and printouts.</LI>
|
|
<LI>G4PhysicsVector: optimisation in G4PhysicsVector::Interpolation().
|
|
Fix in G4PhysicsVector::GetMinEnergy(). Minor code formatting.</LI>
|
|
<LI>G4PhysicsVectorType: added enumeration of Spline type; use namespace.</LI>
|
|
<LI>G4PhysicsFreeVector, G4PhysicsLogVector, G4PhysicsLinearFreeVector:
|
|
in each constructor added extra Boolean parameter for enabling Spline;
|
|
needed for later removal of the SetSpline() method, required for
|
|
re-organisation of the code using templates.</LI>
|
|
<LI>G4PhysicsFreeVector: added to all constructors control on continuous
|
|
increase energy in the energy vector. Added accessor to allow user query
|
|
for use or not of Spline interpolation.</LI>
|
|
<LI>G4PhysicsModelCatalog: new version of the catalog of physics models.
|
|
Introduced a modelID (a unique integer for each physics model, with close
|
|
values for similar/related physics models), besides an index (the position
|
|
in a vector) and the name (string) of the model. The main difference with
|
|
respect to the previous version is that the three identifiers of each
|
|
physics model - modelID, index and name - must stay constant and the same
|
|
for all applications, physics lists and future versions of Geant4.</LI>
|
|
<LI>Simplified G4String interfaces and implementation with C++11/17.
|
|
Removed obsolete/<TT>std::string</TT> synonym member functions from G4String:
|
|
hash()/stlhash(), data(), replace(), index(), isNull(), first()/last(),
|
|
append()/prepend() and call operators.
|
|
Deprecated non-<TT>std::string</TT> member functions, replacing with new free
|
|
functions in G4StrUtil namespace.</LI>
|
|
<LI>G4ConvergenceTester: fixed potential thread contention likely
|
|
responsible for crashes in ThreadSafe-Scorers example, observed in
|
|
system testing. Some code cleanup.</LI>
|
|
<LI>Updated G4SIUnits and G4PhysicalConstants to include new symbols
|
|
(<TT>minute, hour, day, year</TT> and <TT>millielectronvolt</TT>)
|
|
and new constants (<TT>Bohr_magneton</TT> and <TT>nuclear_magneton</TT>),
|
|
based on CLHEP-2.4.4.2.</LI>
|
|
<LI>G4UnitsTable: added unit definitions for Velocity and Momentum.</LI>
|
|
<LI>G4BestUnit: print <TT>eV</TT> instead of <TT>meV</TT> for zero energy.</LI>
|
|
<LI>G4BackTrace: move from deprecated sigignore() to signal().</LI>
|
|
<LI>New G4Filesystem header to support transparent use of C++ filesystem
|
|
whether it is in <TT>std::</TT> or <TT>std::experimental</TT> namespaces.</LI>
|
|
<LI>G4ThreadLocalSingleton: added way to explicitly call Clear() for all
|
|
TLS singletons.</LI>
|
|
<LI>Reworked G4Backtrace to use fewer dynamic memory allocations when
|
|
printing backtrace in order to avoid overflowing the signal stack.</LI>
|
|
<LI>Modernised CMake script.</LI>
|
|
<LI>Updated date of release for 11.0.</LI>
|
|
</UL>
|
|
|
|
<A NAME="greps-notes">
|
|
<H3><I>Graphical Representations</I></H3></A>
|
|
<UL>
|
|
<LI>Added G4Plotter class, a kind of "high level" primitive to capture plots
|
|
(tools::histo:h1d, h2d for the moment) and the style of a plotter.
|
|
Style description is done by handling named lists of (parameter,value).
|
|
It is sufficently generic to be usable by various implementations of a
|
|
plotter. It is assumed that a plotter manages a grid of "regions" to
|
|
visualize various histograms in a same representation/view/viewport.
|
|
Updated G4VGraphicsScene accordingly.</LI>
|
|
<LI>Reviewed HepPolyhedronPgon, HepPolyhedronPcon classes given by rz-contour.</LI>
|
|
<LI>HepPolyhedron: added TriangulatePolygon() and RotateContourAroundZ().
|
|
Fixed calculation of number of faces in a polyhedron object in method
|
|
RotateContourAroundZ(). In some cases, 'Nfaces' was computed incorrectly,
|
|
resulting in more memory being allocated than required; this did not
|
|
create problems for rendering, but used to generate warning messages
|
|
in some cases.</LI>
|
|
<LI>BooleanProcessor: redundant std::move(polyhedron) replaced with
|
|
HepPolyhedron(polyhedron), it fixes complation warnings with C++20.</LI>
|
|
<LI>Removed deprecated G4VisAttributes::Invisible.</LI>
|
|
<LI>Added G4Colour::operator<(), useful for making a set or map based on
|
|
G4colour as a key.</LI>
|
|
<LI>G4VGraphicsScene: introduced new pure virtual function
|
|
AddCompound(const G4Mesh&).</LI>
|
|
<LI>G4VisAttributes: improved message in SetForceNumberOfCloudPoints().</LI>
|
|
<LI>Revised visualisation models according to <TT>visualization/modeling</TT>
|
|
module. Adapted code according to visualisation models revision.</LI>
|
|
<LI>Removed G4Scale; <TT>/vis/scene/add/scale</TT> is reimplemented with
|
|
G4CallBackModel.</LI>
|
|
<LI>Add G4VMarker::operator==().</LI>
|
|
<LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>Modernised CMake script.</LI>
|
|
</UL>
|
|
|
|
<A NAME="had-notes">
|
|
<H3><I>Hadronic Processes</I></H3></A>
|
|
<UL>
|
|
<LI>Removed deprecated 'rpg' model.</LI>
|
|
<LI>Merged 'models/management' module in 'management'.</LI>
|
|
<LI>Merged 'models/util' module in 'util'.</LI>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
|
|
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI><B>Cross Sections</B>
|
|
<UL>
|
|
<LI>G4MuNeutrinoNucleusTotXsc: new arrays for XS_eq and XS_in, now XS_tot
|
|
is a sum of XS_qe and XS_in with A, Z and A-Z factors.</LI>
|
|
<LI>G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS,
|
|
G4ParticleInelasticXS, GammaNuclearXS : in the method BuildPhysicsTable(),
|
|
replaced loop over material-cut-couple with a direct loop over all
|
|
elements; partially move initialisation of local variables to headers.</LI>
|
|
<LI>G4MuNeutrinoNucleusTotXsc: access and calculation of
|
|
fQEratio(Z,A) = XS_qe/XS_tot.</LI>
|
|
<LI>Removed the following obsolete classes:
|
|
G4IonsKoxCrossSection, G4IonsSihverCrossSection,
|
|
G4TripathiCrossSection, G4TripathiLightCrossSection,
|
|
G4IonProtonCrossSection, G4GeneralSpaceNNCrossSection,
|
|
G4ProtonInelasticCrossSection G4NeutronInelasticCrossSection,
|
|
G4PiNuclearCrossSection, G4CrossSectionPairGG,
|
|
G4FastPathHadronicCrossSection, G4HadronCaptureDataSet,
|
|
G4HadronFissionDataSet, G4HadronElasticDataSet, G4HadronInelasticDataSet,
|
|
G4HadronCrossSections, G4TripathiCrossSection, G4TripathiLightCrossSection.</LI>
|
|
<LI>G4HadronXSDataTable, G4ComponentSAIDTotalXS: updated creation and
|
|
handling of G4PhysicsVector.</LI>
|
|
<LI>G4UPiNuclearCrossSection, G4ComponentSAIDTotalXS: substituted use of
|
|
deprecated G4LPhysicsFreeVector by G4PhysicsFreeVector.</LI>
|
|
<LI>G4UPiNuclearCrossSection: disabled Spline interpolation.</LI>
|
|
<LI>G4IsotopeList: extended list of isotopes to cover all data for
|
|
neutrons, protons, and gamma.</LI>
|
|
<LI>G4GammaNuclearXS: new version of the code, based on IAEA/PD-2019.
|
|
Improved isotope cross-section.
|
|
Co-working with new data set G4PARTICLEXS-4.0.</LI>
|
|
<LI>G4IsotopeList: extended from Zmax=92 to Zmax=94; do not use zero
|
|
values for 'amin' and 'amax' for all Z; this is needed for
|
|
migration to the new dataset G4PARTICLEXS4.0.</LI>
|
|
<LI>G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS,
|
|
G4ParticleInelasticXS, GammaNuclearXS: instead of check (amin[Z]==0)
|
|
use the check (amin[Z]==amax[Z]).</LI>
|
|
<LI>G4ElNuclearSFcs: e-A cross-section according to structure function
|
|
approach by corrections of CHIPS cross-sections.</LI>
|
|
<LI>G4CrossSectionDataSetRegistry: improved debug printout and not use
|
|
CrossSectionFactory for XS.</LI>
|
|
<LI>Clean-up access to data.</LI>
|
|
<LI>Code cleanup.</LI>
|
|
</UL></LI>
|
|
<LI><B>Management</B>
|
|
<UL>
|
|
<LI>G4HadronicProcess: made public the method GetHadronicInteraction().
|
|
This can be useful for users to access at run-time some information
|
|
available from a hadronic final-state model.
|
|
Removed unused private member variable; updated the
|
|
call to G4Track for setting the model creator ID.</LI>
|
|
<LI>G4HadronInelasticProcess: added a new method to return the particle
|
|
definition (useful in practice to distinguish between baryons and
|
|
antibaryons, or between hadrons and ions).
|
|
Removed old and unused header file corresponding to the Gheisha
|
|
inelastic cross-section (that has been deleted).</LI>
|
|
<LI>G4HadronicProcessType: added a new enum value (fEMDissociation = 310)
|
|
for EM dissociation process.</LI>
|
|
<LI>G4HadronicProcessStore: fixed TLS usage. Fixed loops in Clean().
|
|
Fixed memory leak at exit.</LI>
|
|
<LI>G4HadronicEPTestMessenger: removed deprecated commands.</LI>
|
|
<LI>Removed unused class G4VCrossSectionBase.</LI>
|
|
</UL></LI>
|
|
<LI><B>Processes</B>
|
|
<UL>
|
|
<LI>Added G4HadronInelasticProcess class from hadronic/management module.</LI>
|
|
<LI>Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess, as it is
|
|
applied only for neutron projectile.</LI>
|
|
<LI>Removed use of deleted header file G4HadronicDeprecate.</LI>
|
|
<LI>G4HadronCaptureProcess: removed old and unused header file
|
|
corresponding to the Gheisha capture cross-section (that has been
|
|
deleted).</LI>
|
|
<LI>G4HadronFissionProcess: replaced Gheisha fission cross-section
|
|
(that has been deleted) with G4ZeroXS (which is a zero cross-section
|
|
everywhere).</LI>
|
|
<LI>Set creator model ID for the secondaries, using the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
<LI>G4HadronElasticProcess, G4NeutrinoElectronProcess,
|
|
G4ElNeutrinoNucleusProcess, G4MuNeutrinoNucleusProcess: removed
|
|
old and unused header file corresponding to the Gheisha elastic
|
|
cross-section (that has been deleted).</LI>
|
|
<LI>Removed the following deprecated inelastic processes:
|
|
G4AlphaInelasticProcess, G4AntiAlphaInelasticProcess
|
|
G4AntiDeuteronInelasticProcess, G4DeuteronInelasticProcess,
|
|
G4AntiHe3InelasticProcess, G4He3InelasticProcess,
|
|
G4AntiLambdaInelasticProcess, G4LambdaInelasticProcess,
|
|
G4AntiNeutronInelasticProcess, G4NeutronInelasticProcess,
|
|
G4AntiOmegaMinusInelasticProcess, G4OmegaMinusInelasticProcess,
|
|
G4AntiProtonInelasticProcess, G4ProtonInelasticProcess,
|
|
G4AntiSigmaMinusInelasticProcess, G4SigmaMinusInelasticProcess,
|
|
G4AntiSigmaPlusInelasticProcess, G4SigmaPlusInelasticProcess,
|
|
G4AntiTritonInelasticProcess, G4TritonInelasticProcess,
|
|
G4AntiXiMinusInelasticProcess, G4XiMinusInelasticProcess,
|
|
G4AntiXiZeroInelasticProcess, G4XiZeroInelasticProcess,
|
|
G4IonInelasticProcess, G4KaonMinusInelasticProcess,
|
|
G4KaonPlusInelasticProcess, G4KaonZeroLInelasticProcess,
|
|
G4KaonZeroSInelasticProcess, G4PionMinusInelasticProcess,
|
|
G4PionPlusInelasticProcess, G4PhotoCaptureProcess,
|
|
G4PhotoFissionProcess, G4PhotoNuclearProcess.</LI>
|
|
</UL></LI>
|
|
<LI><B>Stopping</B>
|
|
<UL>
|
|
<LI>G4MuonicAtomDecay, G4HadronStoppingProcess: migrated to the new version
|
|
of G4PhysicsModelCatalog.</LI>
|
|
<LI>G4ElementSelector, G4HadronStoppingProcess: use const pointer to
|
|
G4Element.</LI>
|
|
<LI>Removed obsolete classes: G4AntiNeutronAnnihilationAtRest,
|
|
G4AntiSigmaPlusAbsorptionFritiof, G4SigmaMinusAbsorptionBertini,
|
|
G4AntiProtonAbsorptionFritiof, G4KaonMinusAbsorptionBertini,
|
|
G4PiMinusAbsorptionBertini.</LI>
|
|
</UL></LI>
|
|
<LI><B>Utilities</B>
|
|
<UL>
|
|
<LI>G4Fragment, G4KineticTrack, G4HadSecondary, G4ReactionProduct: introduced
|
|
consistent naming of the Set/Get methods for the creator model ID.</LI>
|
|
<LI>G4DecayKineticTracks, G4KineticTrack, G4DecayStrongResonances:
|
|
propagate correctly the information regarding the creator model ID.</LI>
|
|
<LI>G4Nucleus: rewritten method GetBiasedThermalNucleus() according to the
|
|
sampling of the Velocity of the Target nucleus (SVT) algorithm.
|
|
Use const pointer to G4Element</LI>
|
|
<LI>G4Nucleon, G4Nucleus, G4V3DNucleus, G4Fancy3DNucleus, G4Fragment:
|
|
extended for hypernuclei and anti-hypernuclei.</LI>
|
|
<LI>Removed unused classes: G4LightMedia, G4IsoResult, G4HadronicDeprecate,
|
|
G4GHEKinematicsVector, G4HadReentrentException, G4HadSignalHandler,
|
|
DumpFrame.</LI>
|
|
<LI>G4HadronicParameters: added hyper-nuclei flag.</LI>
|
|
</UL></LI>
|
|
<LI><B>Abla</B>
|
|
<UL>
|
|
<LI>G4AblaInterface: set the model creator ID using the new version
|
|
of G4PhysicsModelCatalog.</LI>
|
|
<LI>G4Abla: updated for hypernuclei. Delete array variables with array
|
|
delete, as suggested by Coverity.</LI>
|
|
</UL></LI>
|
|
<LI><B>Abrasion</B>
|
|
<UL>
|
|
<LI>G4WilsonAbrasionModel: migrated to the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
<LI><B>Bertini Cascade</B>
|
|
<UL>
|
|
<LI>Fixed TLS usage in G4CascadeChannelTables and G4CascadeParameters.</LI>
|
|
<LI>G4CascadeInterface: set the creator model ID for the secondaries
|
|
produced by Bertini model using the new version of G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
<LI><B>Binary Cascade</B>
|
|
<UL>
|
|
<LI>G4BinaryCascade, G4BinaryLightIonReaction: migrated to the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
<LI>G4GeneratorPrecompoundInterface: extended the method PropagateNuclNucl()
|
|
to deal with projectile hypernuclei and anti-hypernuclei. Propagated the
|
|
creator model ID information.</LI>
|
|
</UL></LI>
|
|
<LI><B>De-excitation</B>
|
|
<UL>
|
|
<LI>G4DeexPrecoParameters, G4ExcitationHandler: migrated to the new version
|
|
of G4PhysicsModelCatalog.</LI>
|
|
<LI>Set creator model ID for secondaries, using the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
<LI>G4DeexPrecoParameters: fixed propagation of verbosity level between
|
|
components of the de-excitation module.</LI>
|
|
<LI>Removed obsolete and not used model G4ParaFissionModel, this
|
|
fixes also circular dependences inside the de-excitation module.</LI>
|
|
<LI>G4PhotonEvaporation: fixed Coverity defect warning.</LI>
|
|
</UL></LI>
|
|
<LI><B>Elastic scattering</B>
|
|
<UL>
|
|
<LI>G4ChargeExchangeProcess: replaced Gheisha elastic cross-section
|
|
(that has been deleted) with G4ComponentGGHadronNucleusXsc.</LI>
|
|
<LI>G4LEHadronProtonElastic, G4ChargeExchangeProcess: removed unused
|
|
headers.</LI>
|
|
<LI>Set the creator model ID for the secondaries created, using the new
|
|
version of G4PhysicsModelCatalog.</LI>
|
|
<LI>G4QuasiElRatios: initialize the logarithmic table 'lastLRatio',
|
|
as suggested by Coverity.</LI>
|
|
</UL></LI>
|
|
<LI><B>Electromagnetic Dissociation</B>
|
|
<UL>
|
|
<LI>G4EMDissociation: set the creator model ID for secondaries created
|
|
by projectile and target diffraction, using the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
<LI><B>Fission</B>
|
|
<UL>
|
|
<LI>G4LFission, G4FissionLibrary : set creator model ID for the secondaries,
|
|
using the new version of G4PhysicsModelCatalog.</LI>
|
|
<LI>G4LFission: removed unused headers.</LI>
|
|
</UL></LI>
|
|
<LI><B>Gamma-nuclear</B>
|
|
<UL>
|
|
<LI>G4LENDorBERTModel: set creator model ID for the secondaries, using
|
|
the new version of G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
<LI><B>im_r_matrix</B>
|
|
<UL>
|
|
<LI>G4XnpElasticLowE, G4XNNElasticLowE, G4XnpTotalLowE: substituted use of
|
|
deprecated G4PhysicsLnVector with G4PhysicsLogVector; no functional
|
|
changes.</LI>
|
|
</UL></LI>
|
|
<LI><B>INCLXX</B>
|
|
<UL>
|
|
<LI>Added implementation of hypercluster emission.</LI>
|
|
<LI>G4INCLXXInterface: extended to projectile hypernuclei.</LI>
|
|
<LI>G4INCLNuclearPotentialIsospin: improved nuclear potential for Lambda
|
|
particles.</LI>
|
|
<LI>G4INCLXXInterface: set creator model ID for secondaries, using the
|
|
new version of G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
<LI><B>Lend</B>
|
|
<UL>
|
|
<LI>Set creator model ID for secondaries, using the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
<LI><B>Lepto-nuclear</B>
|
|
<UL>
|
|
<LI>G4NeutrinoNucleusModel: calculation of fQEratioA(Z,A,Enu) depending of
|
|
QE ratios for nucleons. Added accessors for XS_qe/XS_tot(A), fQEratioA
|
|
class member.</LI>
|
|
<LI>Bug fixed in G4NeutrinoNucleusModel, updated calls for QE ratio of
|
|
muon/electron (anti-)neutrino.</LI>
|
|
<LI>Set creator model ID for secondaries, using the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
<LI><B>Particle High Precision</B>
|
|
<UL>
|
|
<LI>G4ParticleHPElementData, G4ParticleHPBGGNucleonInelasticXS: removed
|
|
old and unused header files corresponding to Gheisha cross-sections
|
|
(that have been deleted). Code cleanup.</LI>
|
|
<LI>G4ParticleHPManager: removed deprecated environmental variables.</LI>
|
|
<LI>G4ParticleHPData, G4ParticleHPJENDLHEData: replaced use of deprecated
|
|
G4LPhysicsFreeVector with G4PhysicsFreeVector.</LI>
|
|
<LI>G4ParticleHPThermalScattering, G4ParticleHPElastic: corrected the
|
|
original treatment of the temperature interpolation when computing the
|
|
neutron final state, with the temperature interpolation performed
|
|
stochastically now.</LI>
|
|
<LI>G4ParticleHPThermalScatteringNames: extended the list of materials
|
|
which can have thermal data libraries.</LI>
|
|
<LI>Set creator model ID for secondaries, using the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
<LI>Updated build scripts according to new dependencies.
|
|
Clean-up of old directories no longer present.</LI>
|
|
</UL></LI>
|
|
<LI><B>Parton-String</B>
|
|
<UL>
|
|
<LI>Interface extension in G4FTFModel and G4FTFParticipants to provide the
|
|
following information: number of projectile spectator nucleons, number
|
|
of target spectator nucleons, number of nucleon-nucleon collisions and
|
|
impact parameter. In the latter case, there is also the possibility,
|
|
switched off by default, to set the range from which to sample the
|
|
square of the impact parameter.</LI>
|
|
<LI>Extended G4FTFModel for projectile hypernuclei and anti-hypernuclei.</LI>
|
|
<LI>G4VParticipants, G4VPartonStringModel: extended for projectile
|
|
hypernuclei and anti-hypernuclei.</LI>
|
|
<LI>G4FTFParameters, G4QGSParticipants: improved initialization in
|
|
constructors, as suggested by Coverity.</LI>
|
|
</UL></LI>
|
|
<LI><B>Pre-equilibrium</B>
|
|
<UL>
|
|
<LI>G4PreCompoundModel, G4LowEGammaNuclearModel: migrated to the new version
|
|
of G4PhysicsModelCatalog.</LI>
|
|
<LI>G4PreCompoundEmission, G4LowEIonFragmentation: set creator model ID
|
|
for secondaries, using the new version of G4PhysicsModelCatalog.</LI>
|
|
<LI>G4LowEIonFragmentation: fixed minor memory leak at exit.</LI>
|
|
<LI>G4PreCompoundModel: removed obsolete methods; improved code format;
|
|
fixed minor memory leak at exit.</LI>
|
|
<LI>G4PreCompound* classes: improved formats and added C++11 keywords.</LI>
|
|
<LI>G4LowEIonFragmentation: fixed Coverity defect warning for memory leak
|
|
and code cleanup.</LI>
|
|
</UL></LI>
|
|
<LI><B>QMD</B>
|
|
<UL>
|
|
<LI>G4QMDReaction: replaced G4IonsShenCrossSection (that has been deleted)
|
|
with G4ComponentGGNuclNuclXsc. Replaced GetIsoCrossSection() with
|
|
GetElementCrossSection(). Migrated to the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
<LI>G4QMDNucleus::CalEnergyAndAngularMomentumInCM(): fix to move constant 'hbc'
|
|
outside of sqrt() in angular momentum calculation.</LI>
|
|
</UL></LI>
|
|
<LI><B>Radioactive Decay</B>
|
|
<UL>
|
|
<LI>G4RadioactiveDecay, G4RadioactiveDecayMessenger: introduced
|
|
a new parameter for analogue mode to kill very long radioactive decays
|
|
at rest of nuclides happening later than this threshold parameter.
|
|
Its default value (10^27 ns) corresponds to more than twice the age of
|
|
the universe. The value of the threshold can be changed via a new UI
|
|
command, e.g. to set it to 1000 years:
|
|
<TT>/process/had/rdm/thresholdForVeryLongDecayTime 3.1536e+10 second</TT>.
|
|
This kind of cut has been introduced in order to avoid to account
|
|
energy depositions happening after many billions of years in ordinary
|
|
materials used in calorimetry, in particular Tungsten and Lead - via
|
|
their natural unstable, but very long lived, isotopes, such as
|
|
W183, W180 and Pb204. Note that the cut is not on the average, mean
|
|
lifetime, but on the actual sampled global decay time.</LI>
|
|
<LI>G4RadioactiveDecay: updated printout of parameters according to recent
|
|
modifications in atomic de-excitation module.</LI>
|
|
<LI>Use existing facility to find logical volume in store, rather than
|
|
looping through in G4RadioactiveDecayBase::Select/DeselectAVolume().</LI>
|
|
<LI>Migrated to the new approach of creator model ID, using the new version
|
|
of G4PhysicsModelCatalog.</LI>
|
|
<LI>Improved branching ratio consistency in radioactive decays, by replacing
|
|
hardwired radioactive-decay-mode numbers with corresponding enum values.
|
|
Based on
|
|
<A HREF="https://github.com/Geant4/geant4/pull/26">Github PR #26</A>.</LI>
|
|
<LI>Use proper enum interface for G4String::strip().</LI>
|
|
<LI>Removed obsolete classes G4RadioactiveDecayBase and
|
|
G4RadioactiveDecayBaseMessenger.</LI>
|
|
<LI>Removed deprecated UI commands in messengers.</LI>
|
|
<LI>Updated build scripts and header includes.</LI>
|
|
</UL></LI>
|
|
<LI><B>Theo_High_Energy</B>
|
|
<UL>
|
|
<LI>G4TheoFSGenerator: added accessors for the corresponding modifier
|
|
methods already existing. This can be useful for users to access
|
|
at run-time some information available from a hadronic final-state
|
|
model.</LI>
|
|
<LI>Set creator model ID for the secondaries, using the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="interc-notes">
|
|
<H3><I>Intercoms</I></H3></A>
|
|
<UL>
|
|
<LI>G4UImanager: set <TT>LastCommandOutputTreated=false</TT> only for master
|
|
thread. Avoids inadvertent "highlighting" in G4UIQt on worker threads.
|
|
Added access methods to individual UI command.</LI>
|
|
<LI>G4UIparameter: in CandidateCheck(), when candidate not found, print list
|
|
of candidates.</LI>
|
|
<LI>G4UIcommand: added command-type identifier.
|
|
Added option to sort command/directory names in alphabetic order.</LI>
|
|
<LI>G4UIcommandTree, G4UIdirectory, G4GenericMessenger: improved output HTML
|
|
file layout.
|
|
<LI>Fixed leak in G4ProfilerMessenger.</LI>
|
|
<LI>G4GenericMessenger: added G4ThreeVector type without unit to function
|
|
DeclareProperty(). Removed unnecessary duplication of G4UIdirectory objects.</LI>
|
|
<LI>G4UIcontrolMessenger: protected some control commands not to be broadcasted
|
|
to worker threads.</LI>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of
|
|
synonyms. Use new <TT>std::string</TT> compliant G4String interfaces.
|
|
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>Modernised CMake script.</LI>
|
|
</UL>
|
|
|
|
<A NAME="interf-notes">
|
|
<H3><I>Interfaces</I></H3></A>
|
|
<UL>
|
|
<LI>Modified G4UIExecutive::SelectSessionByFile() to ensure that in Windows
|
|
the Win32 OpenGL driver is selected as the second choice by default.
|
|
Based on <A HREF="https://github.com/Geant4/geant4/pull/20">GitHub PR #20</A>.</LI>
|
|
<LI>Extended G4UIWin32 driver with new features, based on contribution
|
|
proposed in <A HREF="https://github.com/Geant4/geant4/pull/23">GitHub PR #23</A>.</LI>
|
|
<LI>Added verbose setting in G4UIExecutive. Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2402">#2402</A>.</LI>
|
|
<LI>Fixed HTML links in Qt UI Start page.</LI>
|
|
<LI>G4UIQt: deal properly with creation and deletion of viewer properties.
|
|
Added "exit" icon and extension selection.
|
|
Fixed "Viewer Properties" window opened at Startup; "viewer" window must
|
|
be constructed with setVisible(false).</LI>
|
|
<LI>G4InteractorMessenger: allow use of exit icon by user.</LI>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
|
|
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>Use proper enum interface for G4String::strip() and don't discard its
|
|
return value.</LI>
|
|
<LI>Added context for VtkQt visualisation driver.</LI>
|
|
<LI>Retired G4UI/G4INTY_... preprocessor symbols in toolkit build,
|
|
only required by obsolete GNUmake system.</LI>
|
|
<LI>Removed obsolete Wt code from source and use in G4UIexecutive.</LI>
|
|
<LI>Removed no longer supported GAG/Gain UI classes and settings.</LI>
|
|
<LI>Fixed compilation warnings when C++20 Standard enabled.</LI>
|
|
</UL>
|
|
|
|
<A NAME="materials-notes">
|
|
<H3><I>Materials</I></H3></A>
|
|
<UL>
|
|
<LI>G4Material: revised and updated G4Exceptions, now providing complete
|
|
information and more precise diagnostics.</LI>
|
|
<LI>G4MaterialPropertiesTable: removed deprecated optical material properties.
|
|
Recalculate GROUPVEL if RINDEX is modified.
|
|
Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2313">#2313</A>.
|
|
<LI>In G4MaterialPropertiesTable, added new AddProperty() method to allow use of
|
|
predefined optical material properties.
|
|
Added <TT>spline</TT> argument to method, which creates
|
|
G4MaterialPropertyVector.
|
|
Use <TT>std::vector</TT> for material properties and material const properties,
|
|
rather than <TT>std::map</TT>. Use Boolean flag with material const property to
|
|
indicate whether it is defined; renaming of variables: first letter lower case,
|
|
class variables start with <TT>f</TT>; removed iterators to material property
|
|
vectors (use C++11 iteration). Fix AddConstProperty() with new key; fix
|
|
RemoveConstProperty; make exception codes unique.
|
|
Return nullptr when GetProperty() called for non-existent property; fixed
|
|
error in GetMatConstPropNames(). Return const refs to vectors for
|
|
material[const]props and names. Renamed Get[Const]PropertyMap() to
|
|
Get[Const]Properties(). Fixed error with ConstPropertyExists().
|
|
Throw FatalException if asked for index of non-existent property (addressing
|
|
Coverity defect).</LI>
|
|
<LI>G4ExtDEDXTable, G4IonStoppingData: corrected initialisation of spline
|
|
flag.</LI>
|
|
<LI>G4NistMaterialBuilder: removed unused argument <TT>isotopes</TT> from all
|
|
methods where NIST materials are built.</LI>
|
|
<LI>G4NistManager: adopt modifications in method signatures of
|
|
G4NistMaterialBuilder but keep own method signatures unchanged.</LI>
|
|
<LI>New class G4OpticalMaterialProperties, a store for optical material
|
|
properties.</LI>
|
|
<LI>G4MaterialPropertiesTable: added 'createNewKey' to AddProperty();
|
|
merged .icc into .cc; removed deprecated methods; applied clang-format.</LI>
|
|
<LI>G4MaterialPropertyVector: use G4PhysicsFreeVector instead of
|
|
obsolete G4PhysicsOrderedFreeVector.</LI>
|
|
<LI>G4IonStoppingData, G4ICRU90StoppingData, G4ExtDEDXTable,
|
|
G4VIonDEDXTable: substituted G4LPhysicsFreeVector by G4PhysicsFreeVector.
|
|
<LI>G4Material, G4Element, G4Isotope, G4IonisParamElm,
|
|
G4IonisParamMat, G4NistMaterialBuilder, G4NistMessenger,
|
|
G4SandiaTable: minor clean-up.</LI>
|
|
<LI>G4ElementVector: use const pointer to G4Element. Define operator<<();
|
|
take const references to avoid needless copy construction.</LI>
|
|
<LI>G4ElementData: reduced length of internal arrays from 108 to 99, max number
|
|
99 is used by G4LivermorePhotoElectricModel, hadronic models use 93.
|
|
Use G4int in method signature instead of size_t; improved initialisation.
|
|
Provide more safe destruction at the end of run.</LI>
|
|
<LI>G4Material: fixed Coverity report on non-initialized arrays;
|
|
use const pointers to G4Elements where needed; added warnings if there is
|
|
a mixture of definition of elements by number of atoms and mass fraction;
|
|
reduced code duplication and reduced number of new/delete for the case when
|
|
materials are added to a material.</LI>
|
|
<LI>G4ExtendedMaterial: removed useless dependence on G4PhysicsModelCatalog,
|
|
and improved comment.</LI>
|
|
<LI>G4DensityEffectData: minor clean-up.</LI>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.</LI>
|
|
<LI>Modernised CMake script.</LI>
|
|
</UL>
|
|
|
|
<A NAME="parameterisations-notes">
|
|
<H3><I>Parameterisations</I></H3></A>
|
|
<UL>
|
|
<LI>GFLASH:
|
|
<UL>
|
|
<LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="part-notes">
|
|
<H3><I>Particles</I></H3></A>
|
|
<UL>
|
|
<LI>Introduced six light hypernuclei and their corresponding antiparticles:
|
|
G4HyperTriton, G4AntiHyperTriton, G4HyperAlpha, G4AntiHyperAlpha, G4HyperH4,
|
|
G4AntiHyperH4, G4DoubleHyperH4, G4AntiDoubleHyperH4, G4HyperHe5,
|
|
G4AntiHyperHe5, G4DoubleHyperDoubleNeutron, G4AntiDoubleHyperDoubleNeutron.
|
|
The following simplifying assumptions have been made:
|
|
(a) No hyper-deuteron, no hyper-He3; (b) the masses of these hyperons have
|
|
been computed using the existing method
|
|
G4HyperNucleiProperties::GetNuclearMass(); (c) the lifetimes are all assumed
|
|
to be the same as the Lambda's lifetime; (d) the decays are obtained from the
|
|
two decays of the (anti-)Lambda (with the same branching ratios as for a free
|
|
Lambda), assuming, whenever possible, that 50% of the emitted (anti-)nucleon
|
|
will be captured by the (anti-)nucleus where the decay of the (anti-)Lambda
|
|
occurs. In the case of double-hyperon, only one of the two Lambdas
|
|
is assumed to decay.</LI>
|
|
<LI>G4IonConstructor: added hyper-nuclei.</LI>
|
|
<LI>Added a few methods in G4ParticleDefinition, useful for dealing with
|
|
hypernuclei and anti-hypernuclei.</LI>
|
|
<LI>Extended the max number of decay secondaries, from 4 to 5, in the classes
|
|
G4VDecayChannel and G4PhaseSpaceDecayChannel, needed for a decay channel of
|
|
G4DoubleHyperDoubleNeutron.</LI>
|
|
<LI>Store custom tracking manager per particle definition.</LI>
|
|
<LI>Fixed retrieval of selected particle in G4ParticlePropertyMessenger,
|
|
which was failing.</LI>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
|
|
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>G4ParticleTable: fixed case for potential null pointer dereferencing in
|
|
FindParticle(). Based on
|
|
<A HREF="https://github.com/Geant4/geant4/pull/30">GitHub PR #30</A>.</LI>
|
|
<LI>Fixed compilation error in G4IonTable occurring if C++20 enabled.</LI>
|
|
<LI>Fixed shadowing compilation warning in G4Triton.</LI>
|
|
</UL>
|
|
|
|
<A NAME="pers-notes">
|
|
<H3><I>Persistency</I></H3></A>
|
|
<UL>
|
|
<LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>ASCII:
|
|
<UL>
|
|
<LI>Added support for G4MultiUnion and G4ScaledSolid. Based on
|
|
<A HREF="https://github.com/Geant4/geant4/pull/28">GitHub PR #28</A>.</LI>
|
|
<LI>G4tgbVolume: corrected missing conversion degree-radian for Polycone.</LI>
|
|
<LI>G4tgbMaterialSimple,G4tgrMaterial: changed STP_Temperature to
|
|
NTP_Temperature to be consistent with NIST materials.</LI>
|
|
<LI>G4tgbGeometryDumper: fixed access to G4Elements according to changes
|
|
done in materials.</LI>
|
|
</UL></LI>
|
|
<LI>GDML:
|
|
<UL>
|
|
<LI>G4GDMLParser: scan for all possible logical volumes with same name in
|
|
ImportRegions() and set them as root logical volumes.
|
|
Issue notification warning in case more than one logical volume with
|
|
same name is found, to be set a root logical volume for a region.</LI>
|
|
<LI>G4GDMLRead: added missing update to internal maps for solids and volumes
|
|
stores, after stripping of names execution. Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2403">#2403</A>.</LI>
|
|
<LI>G4GDMLWriteMaterials, G4GDMLWriteSolids: G4MaterialProperties table now
|
|
returns references to vectors, rather than maps that had to be allocated
|
|
on the heap. Adjust code to iterate over the vectors.</LI>
|
|
<LI>G4GDMLWriteMaterials: use G4PhysicsFreeVector instead of deprecated
|
|
G4PhysicsOrderedFreeVector.</LI>
|
|
<LI>G4GDMLReadMaterials, G4GDMLReadSolids: added parameter
|
|
<TT>createNewKey=true</TT> to call to
|
|
G4Material[Const]PropertiesTable::AddProperty().</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="lst-notes">
|
|
<H3><I>Physics lists</I></H3></A>
|
|
<UL>
|
|
<LI>Removed dependencies on <TT>hadronic/model/util</TT> and
|
|
<TT>hadronic/model/management</TT> modules now retired.</LI>
|
|
<LI><B>Builders</B>:
|
|
<UL>
|
|
<LI>Replaced G4HadronCaptureProcess with G4NeutronCaptureProcess
|
|
and G4HadronFissionProcess with G4NeutronFissionProcess in builders.</LI>
|
|
<LI>Replaced particle-specific hadronic inelastic processes (that have
|
|
been deleted) with G4HadronInelasticProcess.</LI>
|
|
<LI>G4PrecoNeutronBuilder, G4PrecoProtonBuilder, G4INCLXXNeutronBuilder,
|
|
G4QGSBinaryKaonBuilder: replaced obsoleted cross-sections
|
|
(that have been deleted) with better ones.</LI>
|
|
<LI>G4BinaryDeuteronBuilder, G4BinaryTritonBuilder, G4BinaryHe3Builder,
|
|
G4BinaryAlphaBuilder: removed unused header files.</LI>
|
|
<LI>G4QGSPNeutronBuilder: use G4NeutronInelasticXS cross-section.</LI>
|
|
<LI>G4HadronicBuilder: properly initialise the vector mode, as suggested
|
|
by Coverity.</LI>
|
|
</UL></LI>
|
|
<LI><B>Constructors</B>:
|
|
<UL>
|
|
<LI><U>decay</U>
|
|
<UL>
|
|
<LI>G4RadioactiveDecayPhysics: use SetAuger() method instead of the
|
|
obsolete SetAugerCascade().</LI>
|
|
</UL></LI>
|
|
<LI><U>electromagnetic</U>:
|
|
<UL>
|
|
<LI>Updated all standard EM physics lists:
|
|
removed local member <TT>verbose</TT>
|
|
and use uniform approach for verbosity via G4EmParameters; instantiate
|
|
NIEL process only if parameter MaxNIELEnergy is above zero; include
|
|
gamma linear polarization model to Opt0, Opt3, Opt4, SS, and
|
|
Livermore physics constructors if the parameter EnablePolarisation
|
|
is "true"; G4EmLivermorePolarizedPhysics fully inheriting from
|
|
G4EmLivermorePhysics.</LI>
|
|
<LI>G4GammaGeneralProcess: updated interface in the Retrieve() method.
|
|
Use base material approach.</LI>
|
|
<LI>G4EmDNAPhysics: updated configuration of standard physics for gamma
|
|
and positrons according to Opt3; updated particle list by addition
|
|
of G4Alpha; simplified ConstructProcess() method using
|
|
G4PhysicsListHelper.</LI>
|
|
<LI>Updated G4EmLowEPPhysics physics model configuration
|
|
See https://arxiv.org/abs/2102.02721 for details.</LI>
|
|
<LI>G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd energy area,
|
|
because cross-section is zero; in the 4th energy interval include in
|
|
the vector value of 1 - p instead of p, where p is the cumulative
|
|
probability of a sub-process. Make some methods/fields visible for
|
|
derived classes.</LI>
|
|
<LI>G4EmStandardPhysicsWVI: making this experimantal configuration
|
|
compatible for CPU performance with Opt3 (it was similar to SS).
|
|
Use similar options as in Opt3, for ions use
|
|
G4LinhardSorensenIonModel.</LI>
|
|
<LI>G4EmModelActivator: updated according to the current Opt3 and Opt4
|
|
configurations.</LI>
|
|
<LI>G4EmDNAChemistry, _option1, _option2, _option3
|
|
added dissociation channel for electron-hole recombination.</LI>
|
|
<LI>G4EmDNAChemistry_option3: changed pre-chemical model.</LI>
|
|
<LI>DNA PhysicsLists: use SeEmModel() with correct signature.</LI>
|
|
<LI>G4OpticalPhysicsList: removed deprecated optical commands.</LI>
|
|
<LI>G4EmLivermorePolarizedPhysics: removed unused header.</LI>
|
|
<LI>G4EmLivermorePhysics: use G4LivermorePolarizedComptonModel if
|
|
polarisation is enabled.</LI>
|
|
<LI>Removed obsolete G4EmLEPTSPhysics, and code cleanup in G4EmDNAPhysics
|
|
and G4EmDNAPhysics_stationary.</LI>
|
|
<LI>G4EmLivermorePhysics, G4EmPenelopePhysics_option1,
|
|
G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
|
|
G4EmLowEPhysics, G4EmStandardPhysicsSS: instantiate G4ePairProduction
|
|
process after ionisation and bremsstrahlung; does not change physics
|
|
but helps to have clearer debug printouts.</LI>
|
|
<LI>G4EmBuilder: use more optimal order of instantiation of processes;
|
|
not affecting any result but useful for debugging.
|
|
Added hyper-nuclei EM physics; in all DNA physics-lists,
|
|
use SetAuger() instead of SetAugerCascade().</LI>
|
|
<LI>G4OpticalPhysics: applied clang-format style guidelines.</LI>
|
|
</UL></LI>
|
|
<LI><U>gamma_lepto_nuclear</U>:
|
|
<UL>
|
|
<LI>G4EmExtraPhysics, G4BertiniElectroNuclearBuilder,
|
|
G4LENDBertiniGammaElectroNuclearBuilder: replaced G4PhotoNuclearProcess
|
|
(now deleted) with G4HadronInelasticProcess.</LI>
|
|
<LI>G4EmExtraPhysics: added option for positron annihilation to tau
|
|
pair.</LI>
|
|
<LI>Enable updated G4GammaNuclearXS by default in G4EmExtraPhysics for
|
|
more detailed tests.</LI>
|
|
</UL></LI>
|
|
<LI><U>hadron_elastic</U>:
|
|
<UL>
|
|
<LI>G4HadronDElasticPhysics, G4HadronHElasticPhysics: use inheritance
|
|
from G4HadronElasticPhysics; use G4HadProcesses, G4PhysListUtil and
|
|
G4HadParticles; implement cross-section factor.</LI>
|
|
<LI>G4HadronHElasticPhysics: fixed problem of fully overlapping energy
|
|
transition between G4HadronElastic and G4ChipsElasticModel, using
|
|
now G4ChipsElasticModel only for Hydrogen element above
|
|
<TT>10 MeV</TT>.</LI>
|
|
<LI>G4ChargeExchangePhysics: set explicitly the elastic cross-sections
|
|
according to the hadron type, given that the universal Gheisha
|
|
elastic cross-section has been now deleted.</LI>
|
|
<LI>In all constructors, use verbosity level from G4HadronicParameters.</LI>
|
|
</UL></LI>
|
|
<LI><U>hadron_inelastic</U>:
|
|
<UL>
|
|
<LI>In all constructors: printouts are controlled by verbosity level of
|
|
G4HadronicParameters class; 'verboseLevel' member in base class is
|
|
not used; G4HadronicParameters singleton is initialized in all class
|
|
constructors; if the verbosity level is defined in class constructor,
|
|
it is propagated to G4HadronicParameters (user may change this level
|
|
using UI command before physics is initialized); check versus nullptr
|
|
is added in several places.</LI>
|
|
<LI>Removed unused header files, and replaced when needed
|
|
G4HadronCaptureProcess with G4NeutronCaptureProcess.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>Lists</B>:
|
|
<UL>
|
|
<LI>Replaced particle-specific hadronic inelastic processes
|
|
(that have been deleted) with G4HadronInelasticProcess in LBE.
|
|
Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess.</LI>
|
|
<LI>In all physics-lists, protected banners by verbosity level.</LI>
|
|
<LI>G4PhysListFactory: added verbosity level to constructor and propagated
|
|
to constructed lists.</LI>
|
|
<LI>Mirror changes to G4PhysListFactory constructor signature (taking a
|
|
default verbosity argument) in the G4PhysListFactoryAlt constructor.</LI>
|
|
<LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
</UL></LI>
|
|
<LI><B>Util</B>:
|
|
<UL>
|
|
<LI>G4HadParticles: added hyper-nuclei.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="readout-notes">
|
|
<H3><I>Readout</I></H3></A>
|
|
<UL>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.</LI>
|
|
</UL>
|
|
|
|
<A NAME="run-notes">
|
|
<H3><I>Run</I></H3></A>
|
|
<UL>
|
|
<LI>Optimised access to volumes and regions stores.</LI>
|
|
<LI>Minor C++11 review in use of iterators, initialisers, etc...</LI>
|
|
<LI>Removed obsolete ResetCuts() method in G4VUserPhysicsList.</LI>
|
|
<LI>Added new Ranlux++ engine to the list of supported random engines in
|
|
G4UserWorkerThreadInitialization. Requires CLHEP-2.4.5.1.</LI>
|
|
<LI>Added new G4DNAStaticMoleculeReactionProcess in PhysicsListHelper
|
|
for DNA processes.</LI>
|
|
<LI>Removed call to physicsList->TerminateWorker() in G4WorkerRunManager
|
|
as this appears to cause errors at termination.</LI>
|
|
<LI>G4VUserPhysicsList: invoke new static initialization of G4PhysicsModelCatalog
|
|
in Construct(). Use custom tracking manager if registered.</LI>
|
|
<LI>G4PhysicsListHelper: replaced hardwired numerical process types and
|
|
sub-types with corresponding enum values.</LI>
|
|
<LI>G4VPhysicsConstructor: fixed initialisation of hadronic parameters
|
|
avoiding uncontrolled override of verbosityLevel.</LI>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
|
|
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>General code cleanup and formatting.</LI>
|
|
</UL>
|
|
|
|
<A NAME="tasking-notes">
|
|
<H3><I>Tasking</I></H3></A>
|
|
<UL>
|
|
<LI>Updated to PTL v2.0.0 with shared_ptr usage. Included some minor API
|
|
changes to direct async usage.</LI>
|
|
<LI>Fixes to TBB task-group usage.</LI>
|
|
<LI>Fix for G4FORCENUMBEROFTHREADS flag lookup.</LI>
|
|
<LI>G4RunManagerFactory: set default run manager type to be Tasking.</LI>
|
|
<LI>Added new Ranlux++ engine to the list of supported random engines in
|
|
G4UserTaskThreadInitialization. Requires CLHEP-2.4.5.1.</LI>
|
|
<LI>G4TaskRunManager: check for valid threadPool pointer in method
|
|
RequestWorkersProcessCommandsStack() to fix occasional segmentation
|
|
fault at exit.</LI>
|
|
</UL>
|
|
|
|
<A NAME="track-notes">
|
|
<H3><I>Track & Tracking</I></H3></A>
|
|
<UL>
|
|
<LI>Introducing G4VTrackingManager, an interface for custom tracking
|
|
managers specialized for one or a small number of particle types.</LI>
|
|
<LI>G4SteppingManager: added a pointer to a G4NoProcess instance, and used it
|
|
in InvokeAtRestDoItProcs() to flag a stable ion at rest. This avoids the
|
|
otherwise confusing information that radioactive decay is the process
|
|
defining the last step of a stable ion at rest.</LI>
|
|
<LI>Correction to G4Track::operator=() to copy also touchable-handles.
|
|
This fixes a crash originated when running importance sampling in the
|
|
G4EventManager when the track got assigned the origin touchable handler
|
|
from its own touchable handle; the touchable handler was sometimes not
|
|
set.</LI>
|
|
<LI>G4Track: migrated to the new version of G4PhysicsModelCatalog.
|
|
Get material property using index rather than string.</LI>
|
|
<LI>G4Step: avoid accessing G4Track data via long pointer chains.</LI>
|
|
<LI>Adjusted printout format in DumpInfo() for G4VParticleChange
|
|
and G4ParticleChange.</LI>
|
|
<LI>Introducing G4SteppingVerboseWithUnits, an alternative to
|
|
G4SteppingVerbose with printout of proper units and extended features.
|
|
Added explicit virtual keyword for virtual methods and destructor in
|
|
G4SteppingVerbose.</LI>
|
|
<LI>G4SteppingVerbose: fixed bug that wrongly put the <TT>Forced</TT> label
|
|
in the print-out information of non-forced processes, and vice-versa,
|
|
omitting it for real forced processes. Issue which was causing confusing
|
|
and misleading print-out.</LI>
|
|
<LI>G4ParticleChangeForMSC, G4ParticleChangeForTransport: disable <TT>debugFlag</TT>
|
|
which was left enabled by mistake.</LI>
|
|
<LI>G4RichTrajectory: migrated to the new version of G4PhysicsModelCatalog.</LI>
|
|
<LI>Export protected static symbols in G4VSteppingVerbose for DLL builds
|
|
on Windows.</LI>
|
|
<LI>G4SteppingVerbose, G4SteppingManager: added a switch to instantiate
|
|
G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Simplified way of defining a user-specific stepping verbose, that
|
|
is now common to all sequential, MT and tasking modes.</LI>
|
|
<LI>Avoid unnecessary indirections when checking for regional stepping
|
|
action by reusing the value of current volume in stepping manager.</LI>
|
|
<LI>Use existing facility to find logical volume in store, rather than
|
|
looping through in G4AdjointCrossSurfChecker.</LI>
|
|
<LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
</UL>
|
|
|
|
<A NAME="vis-notes">
|
|
<H3><I>Visualization</I></H3></A>
|
|
<UL>
|
|
<LI><B>General</B>
|
|
<UL>
|
|
<LI>Revised vis models. See notes for "modeling" above for more details.
|
|
Consequent changes: AddPrimitive(const G4Scale&) has been removed from
|
|
all scene handlers.</LI>
|
|
<LI>Introduced a Vtk driver.</LI>
|
|
<LI>Introduced ToolsSG drivers.</LI>
|
|
<LI>Introduced in-app plotting; available only with ToolsSG drivers at
|
|
present.</LI>
|
|
<LI>Introduced "special mesh rendering" for G4VNestedParameterisation for
|
|
fast rendering of meshes typically used for medical phantoms.</LI>
|
|
<LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>Retired G4VIS_*, G4UI/G4INTY_* preprocessor symbols in toolkit build,
|
|
only required by obsolete GNUmake system.</LI>
|
|
<LI>Removed unused XXX module.</LI>
|
|
</UL></LI>
|
|
<LI><B>Management</B>
|
|
<UL>
|
|
<LI>Added UI commands for "Special Mesh Rendering":
|
|
<TT>/vis/viewer/set/specialMeshRendering</TT> and
|
|
<TT>/vis/viewer/set/specialMeshVolumes</TT>
|
|
Only available with OpenGL drivers at present.</LI>
|
|
<LI>Implemented a default AddCompound(const G4Mesh&) method: just draws the
|
|
"container" volume and prints a G4Exception with guidance.</LI>
|
|
<LI>Added AddPrimitive(const G4Plotter&) and <TT>/vis/plotter/</TT> UI
|
|
command.</LI>
|
|
<LI>Draw(const G4Scale&) has been removed from G4VisManager;
|
|
<TT>/vis/scene/add/scale</TT> reimplemented with G4CallBackModel; all
|
|
commands using G4CallBackModel follow interface change.</LI>
|
|
<LI>Added new data members to view parameters.</LI>
|
|
<LI>Exploit C++17 to parse saved files in <TT>/vis/viewer/interpolate</TT>.</LI>
|
|
<LI>Introducing <TT>/vis/scene/add/localAxes</TT> and
|
|
<TT>/vis/touchable/localAxes</TT> UI commands.</LI>
|
|
<LI>G4Scene: removed misleading warning message. Allow multiple models
|
|
for the same name, but different parameters, to be added without warning.</LI>
|
|
<LI>G4VSceneHandler: use C++17 <TT>[[fallthrough]]</TT> instead in switch
|
|
statement. Added code for drawing the extents of models in a scene for
|
|
debugging.</LI>
|
|
<LI>Removed deprecated G4VisManager::SetUserAction().
|
|
Use RegisterRunDurationUserVisAction or similar instead.
|
|
These functions represent quite an advanced use of visualisation
|
|
and are rarely used.</LI>
|
|
<LI>Sort <TT>/vis/*</TT> UI commands in alphabetical order.</LI>
|
|
<LI><TT>/vis/set/extentForField</TT>, <TT>/vis/scene/add/electricField</TT> and
|
|
<TT>magneticField</TT>: improved guidance to take note of change to
|
|
G4VFieldModel, namely that the number of data points is now calculated
|
|
on the basis of the extent, which can be set as above.</LI>
|
|
<LI>Interrupt macro (<TT>vis.mac</TT>) if graphics system invalid/unavailable.
|
|
Issues "Batch is interrupted" and avoids long litany of further errors.</LI>
|
|
<LI>G4VViewer: trap request to set touchable of a physical volume no longer
|
|
in the physical volume store and issue message.</LI>
|
|
<LI><TT>/vis/scene/add/volume</TT> (and <TT>/vis/drawVolume</TT>): exploit
|
|
G4PhysicalVolumesSearchScene to streamline geometry tree searches.
|
|
Avoid calculating extent of a temporary physical volume when not
|
|
necessary.
|
|
The above does introduce a change of behaviour for the case that a user
|
|
names the volume(s) requested, e.g., <TT>/vis/drawVolume Shape1</TT>.
|
|
The user will not normally see any difference - but it does avoid
|
|
extravagant computation in some circumstances.</LI>
|
|
<LI>G4VVisCommand, G4VisCommandsSceneHandler and G4VisCommandsViewer: preserve
|
|
view parameters of any existing viewer and use them in the creation of a
|
|
new viewer. So, if the user requests a new viewer of the same or a new
|
|
graphics system, the upcoming view will inherit the view parameters of
|
|
the previously existing viewer. The idea is that it makes the response a
|
|
UI command <TT>/vis/viewer/open</TT> (or <TT>/vis/viewer/create</TT>) more
|
|
natural. The first <TT>/vis/open</TT> is not affected.</LI>
|
|
<LI>In G4VisCommansCompound, with <TT>/vis/drawTree</TT>, invoke
|
|
<TT>/vis/viewer/reset</TT> to ensure culling is off, so that all
|
|
volumes are printed.</LI>
|
|
<LI>G4VisCommandsCompound, G4VisCommandOpen, G4VisCommandSceneHandlerCreate:
|
|
improved reporting of unrecognised graphics system.</LI>
|
|
<LI>G4VisCommandsTouchable: modified according to changes in
|
|
G4PhysicalVolumeModel.</LI>
|
|
<LI>G4VisCommandsSet, G4VisCommandsTouchable and G4VisCommandsViewer:
|
|
added comment of explanation where using G4PhysicalVolumesSearchScene.</LI>
|
|
<LI>Use existing facility to find logical volume in store, rather than
|
|
looping through in G4VisCommandSceneAddLogicalVolume::SetNewValue().</LI>
|
|
<LI>G4VisCommands: replaced <TT>/vis/ogl/printEPS</TT> with
|
|
<TT>/vis/ogl/export</TT> in guidance.</LI>
|
|
<LI>G4VisCommandsScene: implemented <TT>/vis/scene/removeModel</TT>.</LI>
|
|
<LI>G4ViewParameters: added Special Mesh Rendering parameters to
|
|
<TT>/vis/viewer/save</TT>.</LI>
|
|
<LI>G4VVisCommandGeometrySet: recalculate extent of any physical volume model
|
|
in run duration lists after any <TT>/vis/geometry</TT> command (the scene's
|
|
extent might have been changed by the command).</LI>
|
|
<LI>Introducing GetColour(const G4Visible&).</LI>
|
|
<LI>Protect pointers in G4VisManager::GeometryHasChanged().</LI>
|
|
<LI>Fixed Windows static issue in G4VVisCommand.</LI>
|
|
<LI>G4VisManager: fixed cout destination for UI manager during deletion.</LI>
|
|
<LI>G4VisExecutive: removed obsolete VRML1 and network VRML2 drivers
|
|
Removed obsolete network FukuiRenderer driver.
|
|
Removed deprecated Wt driver.</LI>
|
|
<LI>G4ViewParameters: fixed Coverity warning.</LI>
|
|
<LI>Improved warning messages.</LI>
|
|
</UL></LI>
|
|
<LI><B>Modeling:</B>
|
|
<UL>
|
|
<LI>Revised vis models: over time, models have sprouted some inconsistencies.
|
|
This is an attempt to rationalise them. The most significant model, used
|
|
in all applications to draw the detector, is G4PhysicaVolumeModel. To
|
|
handle all the options, G4PhysicalVolumeModel takes care of the
|
|
transformation of any primitives that it generates. It ignores the
|
|
transformation available in the base class, G4VModel. This revision
|
|
brings all models in line with this policy.
|
|
At the same time, we remove G4Scale and G4ScaleModel. G4Scale is an
|
|
anomaly. It is not a "primitive" (obviously), but somehow, from the long
|
|
distant past, it was implemented as though it was. These classes have been
|
|
removed and <TT>/vis/scene/add/scale</TT> reimplemented with
|
|
G4CallBackModel.</LI>
|
|
<LI>Introducing new primitive G4Plotter.</LI>
|
|
<LI>G4PhysicalVolumeModel: make CalculateExtent() a public function.
|
|
Fixed bug in calculation of extent. In Validate(), avoid crash if
|
|
volume no longer in physical volume store; improved warning message.</LI>
|
|
<LI>Introducing G4Mesh, a light class that encapsulates and validates a
|
|
nested parameterisation, called a "mesh". If a valid mesh cannot be
|
|
created out of a G4VPhysicalVolume, it will have a type "invalid".
|
|
The overhead of an invalid attempt is expected to be small, all the
|
|
same it should only be invoked if the user specifies mesh rendering.</LI>
|
|
<LI>G4ModelingParameters: added new data members and access functions.</LI>
|
|
<LI>G4PhysicalVolumeModel: added code for special mesh rendering, under
|
|
control of user flag. If flag is set by the above commands, and if a
|
|
volume is a "mesh" (a container for a nested parameterisation), invoke
|
|
new method AddCompound(const G4Mesh&).</LI>
|
|
<LI>G4PhysicalVolumeModel: moved fFullPVPath.push_back earlier, addressing
|
|
a bug in visualisation of touchables.</LI>
|
|
<LI>Improved G4VModel; make SetTransform() virtual.</LI>
|
|
<LI>G4ArrowModel, G4AxesModel and G4TextModel: implement SetTransform().</LI>
|
|
<LI>Take care to apply to original model. For example, if SetTransform() is
|
|
called more than once it must apply to the original.</LI>
|
|
<LI>G4PhysicalVolumeModel: for the resultant of clipping, set the
|
|
visualisation attributes of the original.</LI>
|
|
<LI>G4VFieldModel: Change concept of choice of data points: this model
|
|
simply checked that a data point was within the extent.
|
|
Now it uses the extent to determine the datapoint spacing.
|
|
Note: if <TT>fExtentForField</TT> is null, the used extent is that of the
|
|
current scene; otherwise it uses that supplied by the user.</LI>
|
|
<LI>G4PhysicalVolumesSearchScene: allow user to limit the depth of descent
|
|
during a geometry tree search.</LI>
|
|
<LI>G4PhysicalVolumeModel: if opacity (alpha) == 0 (completely transparent),
|
|
treat same as pVisAttribs->IsVisible().
|
|
G4PhysicalVolumeModel: simplified validation.</LI>
|
|
<LI>As a result of Coverity warnings, improved G4PhysicalVolumeModel: clean up
|
|
in case of found G4Mesh; hold current transform as object, not as a
|
|
pointer.</LI>
|
|
<LI>G4TouchablePropertiesScene: modified according to changes in
|
|
G4PhysicalVolumeModel.</LI>
|
|
<LI>Added G4Exception in default implementation of
|
|
G4PseudoScene::ProcessVolume().</LI>
|
|
</UL></LI>
|
|
<LI><B>FukuiRenderer</B>
|
|
<UL>
|
|
<LI>Removed obsolete network FukuiRenderer driver.</LI>
|
|
</UL></LI>
|
|
<LI><B>gMocren</B>
|
|
<UL>
|
|
<LI>Use updated renamed method GetNoVoxels() in G4PhantomParameterisation
|
|
instead of GetNoVoxel(), now removed.</LI>
|
|
</UL></LI>
|
|
<LI><B>HepRep</B>
|
|
<UL>
|
|
<LI>Fixed compilation error in G4HepRepSceneHandler when C++20 is enabled.</LI>
|
|
<LI>Removed obsolete HepRep(WIRED) driver and associated files.</LI>
|
|
</UL></LI>
|
|
<LI><B>OpenGL</B>
|
|
<UL>
|
|
<LI>G4OpenGLImmediateQtViewer and G4OpenGLStoredQtViewer: set jpg as default
|
|
export format for Qt viewers, for use with <TT>/vis/ogl/export</TT>; jpg
|
|
is only available for Qt viewers, pdf is the default for other OpenGL
|
|
viewers.</LI>
|
|
<LI>Make better use of G4VSceneHandler::AddPrimitive().</LI>
|
|
<LI>Fix in G4OpenGLViewer for C++20 warnings.</LI>
|
|
<LI>Fixed text alignment issue with a fudge factor in
|
|
G4OpenGLQtViewer::DrawText().</LI>
|
|
<LI>Fix in G4OpenGLViewer for C++20 warnings.</LI>
|
|
<LI>Specialise fudge factor for __APPLE__. It seems only Mac has this
|
|
problem. Maybe it's to do with the retina display. Maybe Qt keeps
|
|
it's own pixel size.</LI>
|
|
<LI>G4OpenGLViewerMessenger: removed <TT>/vis/ogl/printEPS</TT> command, now
|
|
covered by the more versatile <TT>/vis/ogl/export</TT>. Rationalised image
|
|
exporting.</LI>
|
|
<LI>G4OpenGLSceneHandler: use C++17 <TT>[[fallthrough]]</TT> in switch
|
|
statements.</LI>
|
|
<LI>G4OpenGLViewer: subsume the code in printEPS into exportImage.</LI>
|
|
<LI>G4OpenGLXmViewer::print_callback: call exportImage instead of printEPS.</LI>
|
|
<LI>G4OpenGLStoredSceneHandler, G4OpenGLViewerMessenger: increase the default
|
|
display list limit to 10 million. The default OpenGL display list limit
|
|
was 50,000, an archaic value from the days when memory was much more
|
|
limited than is typical today. The number can be changed with
|
|
<TT>/vis/ogl/displayListLimit</TT>, either to increase it further or
|
|
lower it, subject to a lower limit of 10000.</LI>
|
|
<LI>In FinishView() and ShowView() of X/Xm viewers, comment out glXWaitGL().
|
|
Wait for effects of all previous OpenGL commands to be propagated
|
|
before progressing.</LI>
|
|
<LI>G4OpenGLSceneHandler: disable backface culling.</LI>
|
|
<LI>G4OpenGLStoredViewer and G4OpenGLStoredQtViewer: suppress kernel visit
|
|
(no longer needed) for cutaway drawing.
|
|
Note 1: Section and Cutaway can reveal back-facing faces. If backface
|
|
culling is implemented, the image can look strange because the back-facing
|
|
faces are not there. As described above, we have disabled (commented out)
|
|
backface culling. It seems not to affect performance.
|
|
Note 2: In G4OpenGLStored(Qt)Viewer::CompareForKernelVisit() we decide if a
|
|
"kernel visit" (which involves a reconstruction of the graphical database
|
|
from the kernel) is required on a change of view parameters. Simple
|
|
rotating and zooming does not require a kernel visit, but more sophisticated
|
|
parameters may. In G4OpenGLSceneHandler we implement cutaways using
|
|
OpenGL cut planes, so now we have disabled backface culling, we do NOT need
|
|
to visit the kernel. This is the change that makes a huge speed up when
|
|
a user requests cutaways.</LI>
|
|
<LI>G4OpenGLQtViewer: use 'modelShortName' instead of 'modelDescription'.</LI>
|
|
<LI>Fixed compilation error in G4OpenGLXmConvenienceRoutines when C++20 is
|
|
enabled.</LI>
|
|
<LI>Implemented WindowProc() function in G4OpenGLWin32Viewer for the Win32
|
|
OpenGL driver (function that was commented out). It is now possible to
|
|
change the Zoom and the orientation using the mouse (like in the Qt
|
|
driver). Based on contribution in
|
|
<A HREF="https://github.com/Geant4/geant4/pull/20">GitHub PR #20</A>.</LI>
|
|
<LI>Implemented AddCompound(const G4Mesh&) method: turns nested
|
|
parameterisations into polymarkers of dots - much improved speed.</LI>
|
|
<LI>Enable extended WIN32 window in G4OpenGLWin32Viewer.
|
|
Based on contribution in
|
|
<A HREF="https://github.com/Geant4/geant4/pull/23">GitHub PR #23</A>.</LI>
|
|
<LI>G4OpenGLQtViewer::addNonPVSceneTreeElement(): special case for markers,
|
|
use Info() if non-empty name appearing in Qt's scene tree. This allows
|
|
the user to design markers, e.g., a list of points, and give them a name
|
|
that relates to the providence of the points, e.g., a particular
|
|
material or geometry component.</LI>
|
|
<LI>Removed deprecated Wt driver.</LI>
|
|
<LI>G4OpenGLStoredQtViewer: moved <TT>fViewId<0</TT> check to top of
|
|
constructor to pick up errors in base class construction.</LI>
|
|
<LI>Removed deprecated <TT>/vis/ogl/set/</TT> commands.</LI>
|
|
<LI>All commands connected with a time window. Use equivalent
|
|
<TT>/vis/viewer/set/timeWindow</TT> commands.</LI>
|
|
<LI><TT>/vis/ogl/set/eventsDrawInterval [N]</TT> is replaced by
|
|
<TT>/vis/ogl/flushAt NthPrimitive [N]</TT>.</LI>
|
|
<LI>Fix in G4OpenGLStoredXmViewer destructor.</LI>
|
|
<LI>G4OpenGLWin32Viewer: fixed occasional crash with G4UIWin32 when
|
|
creating viewer from UI command: avoid indirect call to DrawView()
|
|
while still within CreateMainWindow().</LI>
|
|
<LI>Comment out makeCurrent() in G4OpenGLImmediate/StoredQtViewer
|
|
to prevent red-button crash.</LI>
|
|
</UL></LI>
|
|
<LI><B>OpenInventor</B>
|
|
<UL>
|
|
<LI>G4OpenInventorQtExaminerViewer: for tabbed viewer in UIQt, added a
|
|
Detach button to move the viewer to its own dedicated and resizable
|
|
window on the desktop. Added event handler for mouse wheel to fix the
|
|
non-intuitive behavior. Mouse-wheel-forward now zooms/dollys in.
|
|
Added viewer button to enable the "axis cross" (3d axes) feedback
|
|
mechanism.</LI>
|
|
<LI>G4OpenInventorViewer: upgraded the group node sensor to process camera
|
|
movements, thus eliminating the need for the camera sensor. The node
|
|
sensor receives all camera notifications and is immune to changes in
|
|
the camera type.</LI>
|
|
<LI>Force kernel visit if special mesh rendering parameters change.</LI>
|
|
<LI>Code cleanup of OpenInventorQt classes.</LI>
|
|
</UL></LI>
|
|
<LI><B>Qt3D</B>
|
|
<UL>
|
|
<LI>Improve overall protection of debug output with debug flags.
|
|
Moved debug code to G4Qt3DUtils header.</LI>
|
|
<LI>Force kernel visit if special mesh rendering parameters change.</LI>
|
|
<LI>Include some trial code (commented out) for text output.</LI>
|
|
<LI>Fixed problem of drawing from the vis sub-thread.
|
|
Added G4Qt3DViewer::MovingToVisSubThread() and MovingToMasterThread().</LI>
|
|
<LI>G4Qt3DSceneHandler: raise G4Exception if no available node.
|
|
Introduced AddCompound(const G4Mesh&) method.</LI>
|
|
<LI>G4Qt3DViewer: protect against illegal call to show(); it may only be
|
|
called from the master thread.</LI>
|
|
<LI>Revert to black background.</LI>
|
|
</UL></LI>
|
|
<LI><B>Raytracer</B>
|
|
<UL>
|
|
<LI>Make RayTracerX viewers "auto refresh". This means the ray tracer will
|
|
start tracing immediately on opening (<TT>/vis/open RayTracerX</TT>) and
|
|
on any change of view parameters. Only affecting RayTracerX; plain
|
|
RayTracer is not affected. It is possible to switch this feature off
|
|
with <TT>/vis/viewer/set/auto-refresh false</TT>.</LI>
|
|
<LI>Removed instantiation of G4The(MT)RayTracer from G4RayTracer.
|
|
G4RayTracer is/should be a "pure factory". Its job is to instantiate
|
|
a scene handler or viewer on request. G4The(MT)RayTracer should/need
|
|
only be instantiated when the viewer is instantiated.</LI>
|
|
<LI>Make better use of G4VSceneHandler::AddPrimitive().</LI>
|
|
</UL></LI>
|
|
<LI><B>ToolsSG</B>
|
|
<UL>
|
|
<LI>Introducing ToolsSG (TSG) drivers based on externals/g4tools.
|
|
Supports in-app plotting.</LI>
|
|
<LI>Providing four new (mutually exclusive) vis drivers: TOOLSSG_X11_GLES,
|
|
TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.</LI>
|
|
</UL></LI>
|
|
<LI><B>Tree</B>
|
|
<UL>
|
|
<LI>Updated according to changes in G4PhysicalVolumeModel.</LI>
|
|
<LI>Make better use of G4VSceneHandler::AddPrimitive().</LI>
|
|
</UL></LI>
|
|
<LI><B>VRML</B>
|
|
<UL>
|
|
<LI>Removed obsolete VRML1 and network VRML2 drivers.</LI>
|
|
<LI>VRML*FILE drivers: introduced environment variables G4VRMLFILE_HEADER
|
|
and G4VRMLFILE_FILE_NAME to allow the user to change the defaults. Also
|
|
improve messaging to inform the user of this possibility.</LI>
|
|
</UL></LI>
|
|
<LI><B>Vtk</B>
|
|
<UL>
|
|
<LI>New VtkQt and VtkNative visualisation drivers.</LI>
|
|
</UL></LI>
|
|
<LI><B>Externals</B>
|
|
<UL>
|
|
<LI>Migrated gl2ps to version 1.4.2.
|
|
Allow use of non-APPLE OpenGL on APPLE.
|
|
To use this, build with macro GL2PS_USE_GL_GL_H.</LI>
|
|
<LI>Fixed issues with GL when building X11 and Qt.
|
|
GL libs should be included only once.</LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<A NAME="env-notes">
|
|
<H3><I>Environments</I></H3></A>
|
|
<UL>
|
|
<LI>G4Py:
|
|
<UL>
|
|
<LI>Use exact version of Python for boost.python module. Based on
|
|
<A HREF="https://github.com/Geant4/geant4/pull/31">GitHub PR #31</A>.</LI>
|
|
<LI>Export binding for G4ElementVector, according to updates to G4ElementTable.</LI>
|
|
<LI>Removed obsolete VRML1 driver settings.</LI>
|
|
<LI>Removed setup for obsolete HepRep(WIRED) driver.</LI>
|
|
<LI>In TestEm0, use default EM physics in place of obsolete
|
|
G4EmProcessOptions.</LI>
|
|
</UL></LI>
|
|
<LI>zmq:
|
|
<UL>
|
|
<LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
</UL></LI>
|
|
<LI>Removed obsolete MOMO module.</LI>
|
|
</UL>
|
|
|
|
<A NAME="data-notes">
|
|
<H3><I>Data sets</I></H3></A>
|
|
<UL>
|
|
<LI>New low-energy data set version, <B>G4EMLOW-8.0</B>:
|
|
<UL>
|
|
<LI>Removed tabs in option4 cross-section files.</LI>
|
|
<LI>Added new cross sections for electron transportation in gold
|
|
within Geant4-DNA.</LI>
|
|
<LI>Added directories <TT>Elastic</TT>, <TT>Inelastic</TT> and
|
|
<TT>Structure</TT> for microelec models.</LI>
|
|
<LI>Fixed problem in file sigmadiff_cumulated_ionisation_e_RBEBV_Z79.dat.</LI>
|
|
<LI>Added ANSTO atomic de-excitation data.</LI>
|
|
<LI>Added updated epics2017 data.</LI>
|
|
<LI>Removed some unused data.</LI>
|
|
</UL></LI>
|
|
<LI>New data files for evaluated cross-sections <B>G4PARTICLEXS-4.0</B>:
|
|
<UL>
|
|
<LI>Extended data for all isotopes for neutron, proton and light ion
|
|
cross-sections. New dataset for gamma incident based on IAEA/PD-2019
|
|
both for elements and isotopes.</LI>
|
|
</UL></LI>
|
|
<LI>New optional data set version for incident protons,
|
|
<B>G4TENDL-1.4</B>:
|
|
<UL>
|
|
<LI>New version based mainly on TENDL-2019 (previous one was from TENDL-2014).
|
|
<LI>Isotopes not coming from TENDL-2019:
|
|
<UL>
|
|
<LI>Files in ENDF/B-VIII.0 (check the complete list in the README files of
|
|
each subdirectory: Proton, Deuteron ...).</LI>
|
|
<LI>The 5 isotopes in the JENDL/DEU-2020 data library, for incident
|
|
deuterons on Li-6, Li-7, Be-9, C-12 and C-13.</LI>
|
|
<LI>p+C-13, which is based on TENDL-2014, because ENDF/B-VII.1 proton file
|
|
(adopted by TENDL-2019) only provides radiative capture final state.</LI>
|
|
</UL></LI>
|
|
<LI>File corresponding to p+Be9, coming from ENDF/B-VIII.0 has been modified
|
|
to avoid case of G4Exception in Geant4.</LI>
|
|
<LI>Update README files in Proton, Deuteron, Triton, He3 and Alpha
|
|
directories.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
|
|
<A NAME="ex-notes">
|
|
<H3><I>Examples</I></H3></A>
|
|
<UL>
|
|
<LI>Updated reference outputs, macros, READMEs and scripts.</LI>
|
|
<LI>Fixes for Doxygen documentation and coding guidelines.</LI>
|
|
<LI>Replaced deprecated G4VisAttributes::Invisible by
|
|
G4VisAttributes::GetInvisible().</LI>
|
|
<LI>Migration to new G4AnalysisManager.hh header and define the
|
|
default output file type for analysis.</LI>
|
|
<LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
|
|
Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
|
|
<LI>Bump required CMake version range to <TT>3.16...3.21</TT>.</LI>
|
|
<LI><B><U>advanced</U></B>
|
|
<UL>
|
|
<LI><B>air_shower</B>
|
|
<UL>
|
|
<LI>Removed UltraAnalysisManager class, using default commands.</LI>
|
|
<LI>Updated code to use C++11 features.</LI>
|
|
</UL></LI>
|
|
<LI><B>amsEcal</B>
|
|
<UL>
|
|
<LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
|
|
</UL></LI>
|
|
<LI><B>brachytherapy</B>
|
|
<UL>
|
|
<LI>Code cleanup: use C++11 keywords and patterns.</LI>
|
|
<LI>Removed BrachyMaterial class; materials implemented now using NIST
|
|
material manager.</LI>
|
|
<LI>Removed SetCuts() from the local PhysicsList.</LI>
|
|
</UL></LI>
|
|
<LI><B>CaTS</B>
|
|
<UL>
|
|
<LI>New application implementing a flexible and extendable framework for
|
|
the simulation of calorimeter and tracking detectors.
|
|
It also demonstrates how to use
|
|
<A HREF="https://bitbucket.org/simoncblyth/opticks.git">Opticks</A>
|
|
for the creation and propagation of optical photons.</LI>
|
|
</UL></LI>
|
|
<LI><B>composite_calorimeter</B>
|
|
<UL>
|
|
<LI>Migrated to multi-threading, using G4RunManagerFactory.</LI>
|
|
<LI>Introduced the action initializer.</LI>
|
|
<LI>Split the definition of the sensitive part of the detector
|
|
from the detector construction itself. A new method,
|
|
sensitiveHandling(), has been introduced in the base class CCalG4Able.</LI>
|
|
<LI>Made the following three classes thread-local singletons: CCalSDList,
|
|
CCalSensAssign and CCalSensitiveDetectors.</LI>
|
|
<LI>Multi-threaded use of the G4AnalysisManager in the run action with the
|
|
merging of histograms and ntuple of all working threads at the end of
|
|
the run.</LI>
|
|
</UL></LI>
|
|
<LI><B>doiPET</B>
|
|
<UL>
|
|
<LI>Migrated to use G4RunManagerFactory.</LI>
|
|
<LI>Analysis now done with G4Analysis.</LI>
|
|
<LI>Link to reference data and analysis scripts provided to let users
|
|
compare simulation results to reference data.</LI>
|
|
<LI>Added some controls to prepare DOI-look-up table.</LI>
|
|
If DOI look-up table is provided as a file, then it will use it.
|
|
If look-up table is not provided, the program will prepare the look-up
|
|
table based on the information provided by the user (no. of crystals,
|
|
etc).</LI>
|
|
<LI>In performing Anger Logic calculation, the interaction position is
|
|
mapped to the center of the crystal before 2D position error is added
|
|
to model photomultiplier tube (PMT) error.</LI>
|
|
<LI>A C++ analysis program is provided to calculate the sensitivity of the
|
|
scanner for a line source.</LI>
|
|
<LI>Fixed compilation warnings for unused private variables in
|
|
doiPETDetectorConstruction and doiPETEventAction. Removed tabs.</LI>
|
|
<LI>Removed unused header.</LI>
|
|
</UL></LI>
|
|
<LI><B>eRosita</B>
|
|
<UL>
|
|
<LI>Migration of code to multithreading.</LI>
|
|
</UL></LI>
|
|
<LI><B>gammaknife</B>
|
|
<UL>
|
|
<LI>Delete runManager at the end of the run.</LI>
|
|
</UL></LI>
|
|
<LI><B>gammaray_telescope</B>
|
|
<UL>
|
|
<LI>Fixed interactive mode.</LI>
|
|
<LI>GammaRayTelHadronPhysics: replaced G4HadronCaptureProcess with
|
|
G4NeutronCaptureProcess, and G4HadronFissionProcess with
|
|
G4NeutronFissionProcess.
|
|
Replaced stopping processes that have been deleted.
|
|
Replaced old pion inelastic cross-sections (that have been deleted)
|
|
with G4BGGPionInelasticXS.</LI>
|
|
<LI>GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced
|
|
G4PhotoNuclearProcess (that has been deleted) with
|
|
G4HadronInelasticProcess.</LI>
|
|
<LI>Minor change in the GammaRayTelRunAction::OpenFile() method to allow
|
|
filenames longer than the hardcoded 25 character limit.</LI>
|
|
<LI>Removed dependency on G4EmProcessOptions.</LI>
|
|
<LI>Removed SetCuts() from the local PhysicsList.</LI>
|
|
<LI>Removed obsolete input macros and use EM option-4 in physics_opt4.mac.</LI>
|
|
<LI>Removed obsolete classes.</LI>
|
|
</UL></LI>
|
|
<LI><B>gorad</B>
|
|
<UL>
|
|
<LI>Protect explicit inclusion of G4UIQt header.</LI>
|
|
<LI>Fixed potential shadowing compilation warnings in GRInitialization.</LI>
|
|
</UL></LI>
|
|
<LI><B>hadrontherapy</B>
|
|
<UL>
|
|
<LI>Modified HadrontherapyLet for file generation.</LI>
|
|
<LI>Removed dependency on G4EmProcessOptions.</LI>
|
|
<LI>Geometry modification in CarbonBeamLine.</LI>
|
|
<LI>Removed unncessary G4AutoDelete of StepProcessMax in physics list.</LI>
|
|
<LI>Minor changes in macro files.</LI>
|
|
</UL></LI>
|
|
<LI><B>HGCal_testbeam</B>
|
|
<UL>
|
|
<LI>SiliconPixelHit, SiPMHit: fixed problem in handling of NIEL energy
|
|
deposition.</LI>
|
|
<LI>CMSHadronPhysicsFTFP_BERT: added class from CMS.</LI>
|
|
<LI>Removed obsolete class CMSEmStandardPhysicsHcal.</LI>
|
|
<LI>FTFPCMS_BERT_EMM: use correct combination of physics constructors.</LI>
|
|
<LI>Removed use of obsolete RanecuEngine. Updated CMS EM physics.</LI>
|
|
<LI>Fixed compilation warning for unused private member in
|
|
PrimaryGeneratorAction.</LI>
|
|
</UL></LI>
|
|
<LI><B>ICRP110_HumanPhantoms</B>
|
|
<UL>
|
|
<LI>Introduced ICRP110PhantomVisAction. Updated vis.mac which shows
|
|
how to activate it.</LI>
|
|
<LI>Revised implementation of bone material.</LI>
|
|
<LI>Fix in UserScorerWriter to avoid potential division by zero.</LI>
|
|
<LI>Updated OrganMasses.dat; the Dose is now calculated averaged over the
|
|
entire mass of the organ, and not only in the voxels of the organ where
|
|
there is edep recorded.</LI>
|
|
<LI>Use <TT>/vis/viewer/set/specialMeshRendering</TT>. Draw the full
|
|
phantom. In ColourMap.dat, all materials (except air) are now opaque.</LI>
|
|
<LI>General code cleanup.</LI>
|
|
</UL></LI>
|
|
<LI><B>iort_therapy</B>
|
|
<UL>
|
|
<LI>Removed dependency on G4EmProcessOptions.</LI>
|
|
<LI>Removed SetCuts() from the local PhysicsList.</LI>
|
|
<LI>Set cuts per region in ConstructProcess(). RegionStore is not available
|
|
when accessed from the constructor of the Physics List.</LI>
|
|
</UL></LI>
|
|
<LI><B>lAr_calorimenter</B>
|
|
<UL>
|
|
<LI>Migrated to use G4RunManagerFactory.</LI>
|
|
</UL></LI>
|
|
<LI><B>microbeam</B>
|
|
<UL>
|
|
<LI>Added initialisation of data in the
|
|
constructor of the RunAction class.</LI>
|
|
<LI>Use explicit constructors and <TT>override</TT> instead of
|
|
<TT>virtual</TT> in derived classes. Use G4 types in
|
|
DetectorConstruction.</LI>
|
|
<LI>In main() do not initialize run and number of threads, let
|
|
these be done in macro microbeam.mac.</LI>
|
|
<LI>DetectorConstruction: use <TT>CLHEP::twopi</TT>. Avoid having
|
|
<TT>fField</TT> pointer as class member, use G4AutoDelete
|
|
registration instead.</LI>
|
|
<LI>CellParameterisation: initilize all data members.</LI>
|
|
</UL></LI>
|
|
<LI><B>microelectronics</B>
|
|
<UL>
|
|
<LI>Updated PhysicsList to new EM settings.</LI>
|
|
<LI>Updated analysis script plot.C.</LI>
|
|
</UL></LI>
|
|
<LI><B>purging_magnet</B>
|
|
<UL>
|
|
<LI>Migrated to use G4RunManagerFactory.</LI>
|
|
<LI>Updated physics list to use Modular physics list, with
|
|
G4EmStandardPhysics_option4.</LI>
|
|
</UL></LI>
|
|
<LI><B>radioprotection</B>
|
|
<UL>
|
|
<LI>Added the Bridge silicon microdosimeter and a macro to perform
|
|
microdosimetric calculations. Analysis macros run with Root6.</LI>
|
|
</UL></LI>
|
|
<LI><B>STCyclotron</B>
|
|
<UL>
|
|
<LI>STCyclotronSensitiveTarget: remove deprecated include.</LI>
|
|
<LI>Use new CLHEP units for <TT>minute, hour, day, year</TT> in
|
|
STCyclotronPhysicsList.</LI>
|
|
</UL></LI>
|
|
<LI><B>underground_physics</B>
|
|
<UL>
|
|
<LI>In DMXParticleSource::ConfineSourceToVolume(), use existing
|
|
facility to faster find physical volme in store, rather than looping
|
|
through. Some code cleanup.</LI>
|
|
<LI>DMXPhysicsList: replaced G4HadronCaptureProcess with
|
|
G4NeutronCaptureProcess. Replaced stopping processes that have been
|
|
deleted. Removed header files of old and unused pion inelastic
|
|
cross-sections (that have been deleted). Replaced particle-specific
|
|
inelastic processes (that have been deleted) with
|
|
G4HadronInelasticProcess.</LI>
|
|
<LI>Replaced deprecated optical commands & parameters with new ones.</LI>
|
|
</UL></LI>
|
|
<LI><B>xray_fluorescence</B>
|
|
<UL>
|
|
<LI>Migrated to use G4RunManagerFactory.</LI>
|
|
<LI>Removed dependency on G4EmProcessOptions.</LI>
|
|
<LI>Removed SetCuts() from the local PhysicsList.</LI>
|
|
<LI>Updated for changes in the analysis category.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B><U>basic</U></B>
|
|
<UL>
|
|
<LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Use <TT>nullptr</TT> instead of <TT>0</TT>.</LI>
|
|
<LI>Cleaned trailing whitespaces from all files.</LI>
|
|
<LI>Introduced namespace instead of a class names prefix.</LI>
|
|
<LI>Declare overriding functions <TT>override</TT> (and removed
|
|
<TT>virtual</TT> keyword).</LI>
|
|
<LI><B>B4</B>
|
|
<UL>
|
|
<LI>Removed macros/visTutor. A movies tutorial is now in extended example
|
|
visualization/movies. Remove visTutor menu in all gui.mac files.</LI>
|
|
</UL></LI>
|
|
<LI><B>B5</B>
|
|
<UL>
|
|
<LI>Added input script plotter.mac to use new plotter commands.</LI>
|
|
<LI>Added analysisManager->Reset() in begin of run, as resetting
|
|
was disabled for plotting in end of run.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B><U>extended</U></B>
|
|
<UL>
|
|
<LI><B>analysis</B>
|
|
<UL>
|
|
<LI>Removed AnaEx03 with the AIDA implementation.</LI>
|
|
<LI><B>AnaEx01</B>
|
|
<UL>
|
|
<LI>Define analysis manager configuration and create histograms
|
|
only once.</LI>
|
|
<LI>Always close analysis files in EndOfRunAction.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>biasing</B>
|
|
<UL>
|
|
<LI><B>B03</B>
|
|
<UL>
|
|
<LI>B03PhysicsList: replaced G4HadronCaptureProcess with
|
|
G4NeutronCaptureProcess, and G4HadronFissionProcess with
|
|
G4NeutronFissionProcess. Replaced old ion cross-sections (that have
|
|
been deleted) with better ones. Use G4HadronInelasticProcess for
|
|
inelastic processes (the particle-specific inelastic processes have
|
|
been deleted).</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>electromagnetic</B>
|
|
<UL>
|
|
<LI><B>TestEm0</B>
|
|
<UL>
|
|
<LI>Updated PhysListEmStandard.</LI>
|
|
<LI>DetectorConstruction: print only used material.</LI>
|
|
<LI>RunAction: improved output format.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm1</B>
|
|
<UL>
|
|
<LI>Migrated main() to use G4RunManagerFactory and
|
|
G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Updated PhysListEmStandard.</LI>
|
|
<LI>DetectorConstruction: do not print materials table.</LI>
|
|
<LI>StepMax: code formatting.</LI>
|
|
<LI>Added macro stepMax.mac.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm2</B>
|
|
<UL>
|
|
<LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Removed obsolete PhysList5DEmStandard. 5D model is a part of
|
|
Opt4 and other physics configurations.</LI>
|
|
<LI>Updated PhysListEmStandard.</LI>
|
|
<LI>DetectorConstruction: do not print materials table.</LI>
|
|
<LI>StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger:
|
|
revert, to make command <TT>/testem/stepMax</TT> working in
|
|
interactive mode.</LI>
|
|
<LI>SteppingVerbose: set precision via data member; modified process
|
|
name.</LI>
|
|
<LI>Use G4RunManagerFactory in main().</LI>
|
|
<LI>Added macro stepMax.mac.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm3</B>
|
|
<UL>
|
|
<LI>Updated PhysListEmStandard.</LI>
|
|
<LI>StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger:
|
|
revert, to make command <TT>/testem/stepMax</TT> working in
|
|
interactive mode.</LI>
|
|
<LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Added macro stepMax.mac.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm4</B>
|
|
<UL>
|
|
<LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm5</B>
|
|
<UL>
|
|
<LI>Updated PhysListEmStandard.</LI>
|
|
<LI>Migrated to G4SteppingVerboseWithUnits.</LI>
|
|
<LI>TrackingAction: fixed bug for filling histos 6 and 7.
|
|
Fixed bug for histo of vertex position.</LI>
|
|
<LI>StackingAction: migrated to the new version of
|
|
G4PhysicsModelCatalog.</LI>
|
|
<LI>StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger:
|
|
revert, to make command <TT>/testem/stepMax</TT> working in
|
|
interactive mode.</LI>
|
|
<LI>Use G4RunManagerFactory in main().</LI>
|
|
<LI>Fixed inconsistency of target/world size defined by a user
|
|
Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2379">#2379</A>.</LI>
|
|
<LI>DetectorConstruction: if any geometry size is changed then
|
|
recompute all geometry parameters.</LI>
|
|
<LI>PrimaryGeneratorAction: reinitialise beam position for each
|
|
new run.</LI>
|
|
<LI>Included new macro pixe_ANSTO.mac to show how to activate
|
|
the ANSTO PIXE data libraries. Use ANSTO radiation yields
|
|
instead of EADL.</LI>
|
|
<LI>StackingAction: use new modelID scheme.</LI>
|
|
<LI>Removed obsolete PhysListEm5DPhysics and PhysListEm19DPhysics,
|
|
as these models are now part of regular physics constructors.</LI>
|
|
<LI>Added macros stepMax.mac and subcut.mac.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm6</B>
|
|
<UL>
|
|
<LI>Migrated to use G4RunManagerFactory.</LI>
|
|
<LI>Migrated to G4SteppingVerboseWithUnits.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm7</B>
|
|
<UL>
|
|
<LI>Migrated to G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Removed use of obsolete RanecuEngine.
|
|
Updated PhysListEmPhysicsNR.</LI>
|
|
<LI>Migrated to use G4RunManagerFactory in main().</LI>
|
|
<LI>Improved macro files for ion ionisation.</LI>
|
|
<LI>Fix to build with C++20 Standard enabled.</LI>
|
|
<LI>c2_function.hh: fixed compilation warning.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm8</B>
|
|
<UL>
|
|
<LI>Added printout of random numbers.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm9</B>
|
|
<UL>
|
|
<LI>Replaced local Physics List by clone of the default EM standard;
|
|
recover analysis of process calls for the case of gamma general
|
|
process; improved macro files. Removed unused header.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm11</B>
|
|
<UL>
|
|
<LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Updated PhysListEmStandard.</LI>
|
|
<LI>DetectorConstruction: print only used material.</LI>
|
|
<LI>RunAction: dump G4EmParameters.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm12, 13, 14</B>
|
|
<UL>
|
|
<LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Updated PhysListEmStandard.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm15</B>
|
|
<UL>
|
|
<LI>Migrated to G4SteppingVerboseWithUnits.</LI>
|
|
<LI>PhysicsList: removed PhysList5DStandard, as 5D model is now part of
|
|
Opt4 EM physics in standard constructors.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm16</B>
|
|
<UL>
|
|
<LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
|
|
</UL></LI>
|
|
<LI><B>TestEm17, 18</B>
|
|
<UL>
|
|
<LI>Migrated to G4SteppingVerboseWithUnits.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>eventgenerator</B>
|
|
<UL>
|
|
<LI><B>exgps</B>
|
|
<UL>
|
|
<LI>Tidy up CTests definition file and build configuration.</LI>
|
|
</UL></LI>
|
|
<LI><B>particleGun</B>
|
|
<UL>
|
|
<LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
|
|
Removed SteppingVerbose class.</LI>
|
|
</UL></LI>
|
|
<LI><B>pythia/py8decayer</B>
|
|
<UL>
|
|
<LI>New example demonstrating how to outfit Pythia8-based decay features
|
|
to those resonances in Geant4 where decay tables are not implemented
|
|
by default. In addition, it shows how to replace existing
|
|
Geant4 decay tables to such resonances as tau+/- or B+/- with
|
|
the Pythia8-based ones.</LI>
|
|
</UL></LI>
|
|
<LI><B>userPrimaryGenerator</B>
|
|
<UL>
|
|
<LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>exoticphysics</B>
|
|
<UL>
|
|
<LI><B>channeling</B>
|
|
<UL>
|
|
<LI>Removed local option4 physics configuration.</LI>
|
|
</UL></LI>
|
|
<LI><B>phonon</B>
|
|
<UL>
|
|
<LI>Download CrystalMap files and fixed build issues.</LI>
|
|
</UL></LI>
|
|
<LI><B>saxs</B>
|
|
<UL>
|
|
<LI>Fixed using G4Analysis: add call to CloseFile().</LI>
|
|
<LI>Cleanup of PhysicsList.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>geometry</B>
|
|
<UL>
|
|
<LI><B>transforms</B>
|
|
<UL>
|
|
<LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Added cleaning of the reflection factory.</LI>
|
|
</UL></LI>
|
|
<LI><B>VecGeomNavigation</B>
|
|
<UL>
|
|
<LI>New example demonstrating integration of VecGeom navigation, based
|
|
on the prototype package G4VecGeomNav, being integrated in the
|
|
example at build time.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>hadronic</B>
|
|
<UL>
|
|
<LI><B>FissionFragment</B>
|
|
<UL>
|
|
<LI>Fixed CMake build script to define target properly.</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr01</B>
|
|
<UL>
|
|
<LI>PhysicsList: removed unused header file.</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr02</B>
|
|
<UL>
|
|
<LI>CRMCNeutronBuilder, HIJINGNeutronBuilder, UrQMDNeutronBuilder:
|
|
replaced G4HadronCaptureProcess with G4NeutronCaptureProcess, and
|
|
G4HadronFissionProcess with G4NeutronFissionProcess.</LI>
|
|
<LI>IonUrQMDPhysics: replaced old ion cross-sections (that have been
|
|
deleted) with G4ComponentGGNuclNuclXsc.</LI>
|
|
<LI>Replaced particle-specific inelastic processes (that have been
|
|
deleted) with G4HadronInelasticProcess.</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr03</B>
|
|
<UL>
|
|
<LI>PhysicsList: added GammaNuclearPhysicsLEND.</LI>
|
|
<LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
|
|
G4PhotoNuclearProcess (that has been deleted) with
|
|
G4HadronInelasticProcess.</LI>
|
|
<LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
|
|
Removed SteppingVerbose class.</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr04</B>
|
|
<UL>
|
|
<LI>NeutronHPphysics: replaced G4HadronCaptureProcess with
|
|
G4NeutronCaptureProcess, and G4HadronFissionProcess with
|
|
G4NeutronFissionProcess. Replaced G4NeutronInelasticProcess (that
|
|
has been deleted) with G4HadronInelasticProcess.
|
|
Use G4GenericMessenger instead of NeutronHPMessenger.</LI>
|
|
<LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
|
|
Removed SteppingVerbose class.</LI>
|
|
<LI>Added protection in RunAction::CountProcesses().</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr05</B>
|
|
<UL>
|
|
<LI>New example demonstrating how to collect energy deposition in a
|
|
sampling calorimeter and how to survey energy flow.</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr06</B>
|
|
<UL>
|
|
<LI>TrackingAction: count secondary particles with meanLife > 0.
|
|
Print meanLife. Added TrackingMessenger with 2 commands.</LI>
|
|
<LI>PhysicsList: added GammaNuclearPhysicsLEND.
|
|
Use new CLHEP units for <TT>minute, hour, day, year</TT> and
|
|
<TT>millielectronvolt</TT>.</LI>
|
|
<LI>Updated ElectromagneticPhysics.</LI>
|
|
<LI>Suppressed command <TT>/process/list</TT> in several macros.</LI>
|
|
<LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
|
|
G4PhotoNuclearProcess (that has been deleted) with
|
|
G4HadronInelasticProcess.</LI>
|
|
<LI>DetectorConstruction: updated <TT>fWorldSize</TT> for
|
|
SetRadius().</LI>
|
|
<LI>Migrated main() to G4RunManagerFactory and
|
|
G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Enable ParticleHP settings in main().</LI>
|
|
<LI>Stepping verbose initialisation.</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr07</B>
|
|
<UL>
|
|
<LI>TrackingAction: count secondary particles with meanLife > 0.
|
|
Print meanLife.</LI>
|
|
<LI>PhysicsList: added GammaNuclearPhysicsLEND.
|
|
Use new CLHEP units for <TT>minute, hour, day, year</TT> and
|
|
<TT>millielectronvolt</TT>.</LI>
|
|
<LI>Updated ElectromagneticPhysics.</LI>
|
|
<LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
|
|
G4PhotoNuclearProcess (that has been deleted) with
|
|
G4HadronInelasticProcess.</LI>
|
|
<LI>Migrated main() to G4RunManagerFactory and
|
|
G4SteppingVerboseWithUnits.
|
|
Enable ParticleHP settings in main().</LI>
|
|
<LI>HadronElasticPhysicsHP: use G4GenericMessenger.</LI>
|
|
<LI>RadioactiveDecayPhysics: do not change 'ThresholdOfHalfLife'.</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr08</B>
|
|
<UL>
|
|
<LI>BiasingOperation: replaced Gheisha inelastic cross-section (that
|
|
has been deleted) with better cross-sections.
|
|
Replaced particle-specific inelastic processes (that have been
|
|
deleted) with G4HadronInelasticProcess.</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr09</B>
|
|
<UL>
|
|
<LI>HadronicGenerator: migrated per-particle inelastic processes
|
|
(that have been deleted) to G4HadronInelasticProcess.
|
|
Extended interface and functionality; used new methods
|
|
available in the FTF model.</LI>
|
|
</UL></LI>
|
|
<LI><B>Hadr10</B>
|
|
<UL>
|
|
<LI>New hadronic example aimed to exercise the decay of tau leptons,
|
|
as well as charmed and bottom hadrons.</LI>
|
|
</UL></LI>
|
|
<LI><B>NeutronSource</B>
|
|
<UL>
|
|
<LI>TrackingAction: count secondary particles with meanLife > 0.
|
|
Print meanLife.</LI>
|
|
<LI>PhysicsList: added GammaNuclearPhysicsLEND.
|
|
Use new CLHEP units for <TT>minute, hour, day, year</TT> and
|
|
<TT>millielectronvolt</TT>.</LI>
|
|
<LI>Updated ElectromagneticPhysics.</LI>
|
|
<LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
|
|
G4PhotoNuclearProcess (that has been deleted) with
|
|
G4HadronInelasticProcess.</LI>
|
|
<LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
|
|
Removed SteppingVerbose class.</LI>
|
|
<LI>RadioactiveDecayPhysics: new constructor, include G4Radioactivation
|
|
process, inactivate atomic de-excitation.</LI>
|
|
<LI>Added protection in RunAction::CountProcesses().</LI>
|
|
<LI>TrackingAction, RunAction: added a comment for excited states.</LI>
|
|
<LI>HadronElasticPhysicsHP: use G4GenericMessenger.</LI>
|
|
<LI>RadioactiveDecayPhysics: do not change 'ThresholdOfHalfLife'.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>medical/DICOM</B>
|
|
<UL>
|
|
<LI>Use updated renamed method GetNoVoxels() in G4PhantomParameterisation
|
|
instead of GetNoVoxel(), now removed.</LI>
|
|
<LI>In vis.mac, changed <TT>/vis/ogl/set/eventsDrawInterval</TT> to
|
|
<TT>/vis/ogl/flushAt NthPrimitive</TT>.</LI>
|
|
</UL></LI>
|
|
<LI><B>medical/dna</B>
|
|
<UL>
|
|
<LI><B>AuNP</B>:
|
|
<UL>
|
|
<LI>New example simulating the track-structure of electrons in
|
|
microscopic gold volume. Also simulating that in liquid water
|
|
medium surrounding the gold volume.</LI>
|
|
</UL></LI>
|
|
<LI><B>chem2</B>:
|
|
<UL>
|
|
<LI>In vis.mac, changed <TT>/vis/ogl/set/eventsDrawInterval</TT> to
|
|
<TT>/vis/ogl/flushAt NthPrimitive</TT>.</LI>
|
|
</UL></LI>
|
|
<LI><B>chem3</B>:
|
|
<UL>
|
|
<LI>In vis.mac, changed <TT>/vis/ogl/set/</TT> to
|
|
<TT>/vis/viewer/set/timeWindow/</TT>.</LI>
|
|
<LI>Replaced '/vis/ogl/printEPS' with <TT>/vis/ogl/export</TT>
|
|
in relevant macros.</LI>
|
|
</UL></LI>
|
|
<LI><B>chem6</B>:
|
|
<UL>
|
|
<LI>Deleted limit time step.</LI>
|
|
<LI>Reduced number of incident particles.</LI>
|
|
</UL></LI>
|
|
<LI><B>dnadamage1</B>:
|
|
<UL>
|
|
<LI>Fixes in analysis macros.</LI>
|
|
<LI>Fixed SSD file typos.</LI>
|
|
</UL></LI>
|
|
<LI><B>neuron</B>:
|
|
<UL>
|
|
<LI>In vis.mac, changed <TT>/vis/ogl/set/</TT> to
|
|
<TT>/vis/viewer/set/timeWindow/</TT>.</LI>
|
|
</UL></LI>
|
|
<LI><B>microdosimetry</B>:
|
|
<UL>
|
|
<LI>Updated PhysicsList to use updated SetEmModel() method.
|
|
Removed thread unsafe SetCuts() method; use SetEmModel(..) for
|
|
multiple scattering.</LI>
|
|
</UL></LI>
|
|
<LI><B>scavenger</B>:
|
|
<UL>
|
|
<LI>New example showing how to activate the scavenging process
|
|
in chemistry using the deterministic treatment of the IRT
|
|
model.</LI>
|
|
</UL></LI>
|
|
<LI><B>splitting</B>:
|
|
<UL>
|
|
<LI>Updated PhysicsList to recent EM settings.</LI>
|
|
</UL></LI>
|
|
<LI><B>svalue</B>:
|
|
<UL>
|
|
<LI>PhysicsList: removed unused header. Radioactive decay is defined via
|
|
standard radioactive physics builder.</LI>
|
|
<LI>Do not allow change of geometry between runs, only materials may be
|
|
changed.</LI>
|
|
<LI>Removed all warning in test run.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>medical/electroscattering</B>
|
|
<UL>
|
|
<LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
|
|
<LI>Removed obsolete random number generator.</LI>
|
|
<LI>PhysicsList: use physics constructors from physics_list library;
|
|
added G4EmStandardPhysics_option4; removed local EM physics
|
|
constructors.</LI>
|
|
</UL></LI>
|
|
<LI><B>medical/electroscattering2</B>
|
|
<UL>
|
|
<LI>Removed warning. Cosmetic modifications in PhysicsList.</LI>
|
|
</UL></LI>
|
|
<LI><B>medical/fanoCavity, 2</B>
|
|
<UL>
|
|
<LI>Updated PhysicsList to recent EM settings.</LI>
|
|
<LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
|
|
</UL></LI>
|
|
<LI><B>optical</B>
|
|
<UL>
|
|
<LI><B>LXe</B>
|
|
<UL>
|
|
<LI>Get some refractive indices from new G4OpticalMaterialParameters
|
|
file.</LI>
|
|
<LI>Excercise creating material property table element by element.</LI>
|
|
<LI>Replaced deprecated optical commands and parameters with new
|
|
ones.</LI>
|
|
</UL></LI>
|
|
<LI><B>OpNovice</B>
|
|
<UL>
|
|
<LI>Excercise creating material property table element by element.</LI>
|
|
<LI>Replaced deprecated optical commands and parameters with new ones.</LI>
|
|
<LI>Fixed incorrect material property name.</LI>
|
|
<LI>Added option to define detector via a GDML file.</LI>
|
|
<LI>Added outer world volume to avoid surfaces including world volume.</LI>
|
|
Addressing problem report
|
|
<A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2373">#2373</A>.</LI>
|
|
<LI>DetectorConstruction: use modified interface to
|
|
G4MaterialPropertiesTable with Spline flag.</LI>
|
|
<LI>Code cleanup; renamed class variables to start with <TT>f</TT>.</LI>
|
|
<LI>OpNoviceDetectorConstruction: added tests of user-defined material
|
|
properties; add one material property using C-style arrays (as a
|
|
test).</LI>
|
|
</UL></LI>
|
|
<LI><B>OpNovice2</B>
|
|
<UL>
|
|
<LI>DetectorConstruction: use modified interface to
|
|
G4MaterialPropertiesTable with Spline flag.</LI>
|
|
<LI>Replaced deprecated optical commands and parameters with new ones.</LI>
|
|
</UL></LI>
|
|
<LI><B>wls</B>
|
|
<UL>
|
|
<LI>WLSMaterials: use correct material property names.</LI>
|
|
<LI>WLSPrimaryGeneratorAction: use G4PhysicsFreeVector instead of
|
|
deprecated G4PhysicsOrderedFreeVector.</LI>
|
|
<LI>Added visualisation attributes.</LI>
|
|
<LI>Fixed bug preventing cladding being built.</LI>
|
|
<LI>Fixed counting of detector hits.</LI>
|
|
<LI>Added histograms.</LI>
|
|
<LI>Use G4OpBoundaryProcess::invokeSD() rather than
|
|
ProcessHits_boundary() call in SteppingAction.</LI>
|
|
<LI>Remove StringToRotation; removed Sr90.mac; added electron.mac.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>parallel</B>
|
|
<UL>
|
|
<LI><B>MPI</B>
|
|
<UL>
|
|
<LI>Updated analysis classes for recent changes in analysis.</LI>
|
|
<LI>More updates in g4mpi for changes in G4String.</LI>
|
|
</UL></LI>
|
|
<LI><B>ThreadsafeScorers</B>
|
|
<UL>
|
|
<LI>TSPhysicsList: removed obsolete header G4EmProcessOptions; removed
|
|
method SetCuts() to avoid data race, use the one from the base class;
|
|
removed singleton pattern from this class as not needed.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>parameterisations</B>
|
|
<UL>
|
|
<LI><B>gflash</B>
|
|
<UL>
|
|
<LI>clang-tidy and clang-format on code.</LI>
|
|
<LI>test.mac run twice with and without gflash.</LI>
|
|
</UL></LI>
|
|
<LI><B>Par04</B>
|
|
<UL>
|
|
<LI>New example demonstrating how to use the Machine Learning (ML)
|
|
inference to create energy deposits as a fast simulation model
|
|
using ONNX runtime and LWTNN libraries.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>polarisation</B>
|
|
<UL>
|
|
<LI><B>Pol01</B>
|
|
<UL>
|
|
<LI>Cleanup of Physics List; use renamed polarized processes.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>radioactivedecay</B>
|
|
<UL>
|
|
<LI><B>Activation</B>
|
|
<UL>
|
|
<LI>TrackingAction: count secondary particles with meanLife > 0.
|
|
Take weight into account.</LI>
|
|
<LI>PhysicsList: added GammaNuclearPhysicsLEND.
|
|
Use new CLHEP units for <TT>minute, hour, day, year</TT> and
|
|
<TT>millielectronvolt</TT>.</LI>
|
|
<LI>Updated ElectromagneticPhysics.</LI>
|
|
<LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
|
|
G4PhotoNuclearProcess (that has been deleted) with
|
|
G4HadronInelasticProcess.</LI>
|
|
<LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
|
|
Removed SteppingVerbose class.</LI>
|
|
<LI>ElectromagneticPhysics: updated EM parameters.</LI>
|
|
<LI>RadioactiveDecayPhysics: new constructor, include G4Radioactivation
|
|
process, inactivate atomic de-excitation.</LI>
|
|
<LI>Added protection in RunAction::CountProcesses().</LI>
|
|
<LI>TrackingAction, RunAction: added a comment for excited states.</LI>
|
|
<LI>HadronElasticPhysicsHP: use G4GenericMessenger.</LI>
|
|
<LI>RadioactiveDecayPhysics: do not change 'ThresholdOfHalfLife'.</LI>
|
|
</UL></LI>
|
|
<LI><B>rdecay01, 02</B>
|
|
<UL>
|
|
<LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
|
|
Removed SteppingVerbose class.</LI>
|
|
<LI>Use new CLHEP units for <TT>minute, hour, day, year</TT> and
|
|
<TT>millielectronvolt</TT> in PhysicsList.</LI>
|
|
<LI>Added protection in RunAction::CountProcesses().</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>runAndEvent</B>
|
|
<UL>
|
|
<LI><B>RE05, 06</B>
|
|
<UL>
|
|
<LI>Migration to the new SteppingVerbose.</LI>
|
|
</UL></LI>
|
|
<LI><B>RE07</B>
|
|
<UL>
|
|
<LI>New example demonstrating how to register specialized tracking
|
|
managers for a particle or a set of particles.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
<LI><B>visualization</B>
|
|
<UL>
|
|
<LI><B>movies</B>
|
|
<UL>
|
|
<LI>New example illustrating how to make a movie with
|
|
<TT>/vis/viewer/save</TT> and <TT>/vis/viewer/interpolate</TT>.
|
|
It also includes the "visTutor" macros
|
|
previously included in example "basic" B4.
|
|
See README for further information.</LI>
|
|
</UL></LI>
|
|
</UL></LI>
|
|
</UL>
|
|
</UL>
|
|
|
|
<P> </P>
|
|
<A NAME="10."></a>
|
|
<HR>
|
|
|
|
<!-- ============================================== -->
|
|
|
|
<H2>10. Appendix</H2>
|
|
|
|
<A NAME="string-migration-notes">
|
|
<H3>A1 - <I>Changes required for advanced use of G4String</I></H3></A>
|
|
<UL>
|
|
<LI>G4String now has identical constructors to <TT>std::string</TT>.
|
|
Replace use of the single <TT>char</TT> argument constructor
|
|
(explicitly or implicitly):
|
|
<PRE>
|
|
// G4String x('a');
|
|
G4String x(1, 'a');
|
|
</PRE></LI>
|
|
<LI>G4String no longer provides call operators for element or substring
|
|
access. The subscript operator or <TT>substr</TT> member functions
|
|
should be used instead:
|
|
<PRE>
|
|
// char x = aG4String(42);
|
|
char x = aG4String[42];
|
|
|
|
// G4String s = aG4String(3,14);
|
|
G4String s = aG4String.substr(3, 14);
|
|
</PRE></LI>
|
|
<LI>Replace use of <TT>G4String::index</TT> with <TT>G4String::find</TT>
|
|
(interface as <TT>std::string::find</TT>):
|
|
<PRE>
|
|
// auto i = aG4String.index("arg");
|
|
auto i = aG4String.find("arg");
|
|
</PRE></LI>
|
|
<LI>Replace use of <TT>G4String::isNull</TT> with <TT>G4String::empty</TT>
|
|
(interface as <TT>std::string::empty</TT>):
|
|
<PRE>
|
|
// bool c = aG4String.isNull();
|
|
bool c = aG4String.empty();
|
|
</PRE></LI>
|
|
<LI>Replace use of <TT>G4String::first</TT> with <TT>G4String::find</TT>,
|
|
<TT>G4String::last</TT> with <TT>G4String::rfind</TT>
|
|
(as <TT>`std::string::find</TT>, <TT>std::string::rfind</TT> interfaces):
|
|
<PRE>
|
|
// auto f = aG4String.first('x');
|
|
auto f = aG4String.find('x');
|
|
|
|
// auto l = aG4String.last('y');
|
|
auto l = aG4String.rfind('y');
|
|
</PRE></LI>
|
|
<LI>Replace use of <TT>G4String::prepend</TT> with <TT>G4String::insert</TT>
|
|
(as <TT>std::string::insert</TT> interface):
|
|
<PRE>
|
|
// aG4String.prepend("foo");
|
|
aG4String.insert(0, "foo");
|
|
</PRE></LI>
|
|
<LI>G4String still allows implicit conversion to <TT>const char*></TT> but this
|
|
behaviour should be regarded as deprecated. User code should prefer to use
|
|
explicit conversion via the <TT>c_str</TT> member function when passing to
|
|
functions expecting <TT>const char*</TT>, or to take string arguments
|
|
by <TT>G4String</TT> or <TT>std::string_view</TT> as appropriate.</LI>
|
|
<P></P>
|
|
<LI>The following members functions are retained but marked as deprecated,
|
|
and with the recommended member or free function replacements in the
|
|
<TT>G4StrUtil</TT> namespace:
|
|
<PRE>
|
|
// G4int i = aG4String.compareTo(anotherString);
|
|
G4int i = aG4String.compare(...); // replacement: std::string::compare
|
|
|
|
// G4int i = aG4String.compareTo(anotherString, G4String::ignoreCase);
|
|
G4int i = G4StrUtil::icompare(aG4String, anotherString);
|
|
|
|
// aG4String.readLine(anIStream);
|
|
std::getline(anIStream, aG4String);
|
|
|
|
// aG4String.remove(42);
|
|
aG4String.erase(42); // interface as std::string::erase
|
|
|
|
// aG4String.contains("char or string");
|
|
G4StrUtil::contains(aG4String, "char or string"); // interface as C++23 std::string::contains
|
|
|
|
//G4String c = aG4String.strip(...);
|
|
G4String c = G4StrUtil::rstrip_copy(aG4String); // see also G4StrUtil::{rstrip,lstrip,lstrip_copy,strip,strip_copy}
|
|
|
|
// aG4String.toLower();
|
|
G4StrUtil::to_lower(aG4String); // see also G4StrUtil::to_lower_copy
|
|
|
|
// aG4String.toUpper();
|
|
G4StrUtil::to_upper(aG4String); // see also G4StrUtil::to_upper_copy
|
|
</PRE></LI>
|
|
</UL>
|
|
|
|
<A NAME="hadronic-migration-notes">
|
|
<H3>A2 - <I>Hadronic changes required by <U>user-made</U> physics lists</I></H3></A>
|
|
<UL>
|
|
<LI><U>For hadronic processes</U>
|
|
<UL>
|
|
<LI>Replace G4XxxInelasticProcess with:
|
|
<PRE>
|
|
G4HadronInelasticProcess* xxxInelasticProcess = new G4HadronInelasticProcess( "xxxInelastic", G4Xxx::Definition() );
|
|
</PRE>
|
|
where <TT>xxx</TT> can be either:
|
|
<PRE>
|
|
"PionPlus", "PionMinus", "KaonPlus", "KaonMinus",
|
|
"KaonZeroS", "KaonZeroL", "Proton", "AntiProton",
|
|
"Neutron", "AntiNeutron", "Deuteron", "Triton", "Alpha"
|
|
</PRE>
|
|
for example:
|
|
<PRE>
|
|
G4KaonZeroLInelasticProcess* theInelasticProcess = new G4KaonZeroLInelasticProcess( "inelastic" );
|
|
</PRE>
|
|
has been replaced by:
|
|
<PRE>
|
|
G4HadronInelasticProcess* theInelasticProcess = new G4HadronInelasticProcess( "inelastic", G4KaonZeroLong::Definition() );
|
|
</PRE></LI>
|
|
<LI>For photon inelastic processes, use:
|
|
<PRE>
|
|
G4HadronInelasticProcess* photonNuclear = new G4HadronInelasticProcess( "photonNuclear", G4Gamma::Definition() );<BR>
|
|
photonNuclear->AddDataSet( new G4PhotoNuclearCrossSection );
|
|
|
|
G4HadronicProcess* photonCapture = new G4HadronicProcess( "photonNuclear", fCapture );
|
|
G4HadronicProcess* photonFission = new G4HadronicProcess( "photonFission", fFission );
|
|
</PRE></LI>
|
|
</UL></LI>
|
|
<LI><U>For hadronic cross-sections</U>
|
|
<UL>
|
|
<LI>For INELASTIC, the following cross-sections should be used:
|
|
<PRE>
|
|
G4VCrossSectionDataSet* protonInelasticXS = new G4BGGNucleonInelasticXS( G4Proton::Definition() );
|
|
|
|
G4VCrossSectionDataSet* neutronInelasticXS = new G4NeutronInelasticXS;
|
|
// a valid alternative could be:
|
|
// G4VCrossSectionDataSet* neutronInelasticXS = new G4BGGNucleonInelasticXS( G4Neutron::Definition() );
|
|
|
|
G4VCrossSectionDataSet* pionPlusInelasticXS = new G4BGGPionInelasticXS( G4PionPlus::Definition() );
|
|
G4VCrossSectionDataSet* pionMinusInelasticXS = new G4BGGPionInelasticXS( G4PionMinus::Definition() );
|
|
|
|
// For kaons, hyperons and anti-hyperons
|
|
G4VCrossSectionDataSet* ggHadInelasticXS = new G4CrossSectionInelastic( new G4ComponentGGHadronNucleusXsc );
|
|
|
|
// For deuteron, triton, He3, alpha and generic ions
|
|
G4VCrossSectionDataSet* ionInelasticXS = new G4CrossSectionInelastic( new G4ComponentGGNuclNuclXsc );
|
|
|
|
// For anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3 and anti_alpha
|
|
G4VCrossSectionDataSet* antibaryonInelasticXS = new G4CrossSectionInelastic( new G4ComponentAntiNuclNuclearXS );
|
|
</PRE></LI>
|
|
<LI>For ELASTIC:
|
|
<PRE>
|
|
G4VCrossSectionDataSet* protonElasticXS = new G4BGGNucleonElasticXS( G4Proton::Definition() );
|
|
|
|
G4VCrossSectionDataSet* neutronElasticXS = new G4NeutronElasticXS;
|
|
// a valid alternative could be:
|
|
// G4VCrossSectionDataSet* neutronElasticXS = new G4BGGNucleonElasticXS( G4Neutron::Definition() );
|
|
|
|
G4VCrossSectionDataSet* pionPlusElasticXS = new G4BGGPionElasticXS( G4PionPlus::Definition() );
|
|
G4VCrossSectionDataSet* pionMinusElasticXS = new G4BGGPionElasticXS( G4PionMinus::Definition() );
|
|
|
|
// For kaons, hyperons and anti-hyperons
|
|
G4VCrossSectionDataSet* ggHadElasticXS = new G4CrossSectionElastic( new G4ComponentGGHadronNucleusXsc );
|
|
|
|
// For deuteron, triton, He3, alpha and generic ions
|
|
G4VCrossSectionDataSet* ggIonElasticXS = new G4CrossSectionElastic( new G4ComponentGGNuclNuclXsc );
|
|
|
|
// For anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3 and anti_alpha
|
|
G4VCrossSectionDataSet* antibaryonElasticXS = new G4CrossSectionElastic( new G4ComponentAntiNuclNuclearXS );
|
|
</PRE></LI>
|
|
<LI>For (neutron) CAPTURE:
|
|
<PRE>
|
|
G4VCrossSectionDataSet* neutronCaptureXS = new G4NeutronCaptureXS;
|
|
</PRE></LI>
|
|
<LI>For FISSION, use HP. Elsewhere:
|
|
<PRE>
|
|
G4VCrossSectionDataSet* neutronFissionXS = new G4ZeroXS;
|
|
G4VCrossSectionDataSet* photoFissionXS = new G4ZeroXS;
|
|
</PRE></LI>
|
|
</UL></LI>
|
|
<LI><U>For stopping (at rest inelastic processes)</U>
|
|
<UL>
|
|
<LI>For pi-, replace G4PiMinusAbsorptionBertini with:
|
|
<PRE>
|
|
G4HadronStoppingProcess* piMinusAbsorption = new G4HadronicAbsorptionBertini( G4PionMinus::Definition() );
|
|
</PRE></LI>
|
|
<LI>For K-, replace G4KaonMinusAbsorptionBertini with:
|
|
<PRE>
|
|
G4HadronStoppingProcess* kMinusAbsorption = new G4HadronicAbsorptionBertini( G4KaonMinus::Definition() );
|
|
</PRE></LI>
|
|
<LI>For anti_proton, replace G4AntiProtonAbsorptionFritiof with:
|
|
<PRE>
|
|
G4HadronStoppingProcess* antiProtonAbsorption = new G4HadronicAbsorptionFritiof( G4AntiProton::Definition() );
|
|
</PRE>
|
|
No replacement for G4AntiNeutronAnnihilationAtRest, just remove it.</LI>
|
|
<LI>For Sigma-, replace G4SigmaMinusAbsorptionBertini with:
|
|
<PRE>
|
|
G4HadronStoppingProcess* sigmaMinusAbsorption = new G4HadronicAbsorptionBertini( G4SigmaMinus::Definition() );
|
|
</PRE></LI>
|
|
<LI>For anti-Sigma+, replace G4AntiSigmaPlusAbsorptionFritiof with:
|
|
<PRE>
|
|
G4HadronStoppingProcess* antiSigmaPlusAbsorption = new G4HadronicAbsorptionFritiof( G4AntiSigmaPlus::Definition() );
|
|
</PRE></LI>
|
|
</UL></LI>
|
|
</UL>
|
|
|
|
<HR>
|
|
|
|
</BODY>
|
|
</HTML>
|