1084 lines
60 KiB
Plaintext
1084 lines
60 KiB
Plaintext
|
|
Geant4 11.1-beta-01 Release Notes
|
|
---------------------------------
|
|
|
|
30 June 2022
|
|
|
|
Migration Notes & Main New Features
|
|
-----------------------------------
|
|
|
|
o Added ability to optionally check for overlaps in parallel geometries
|
|
through the "/geometry/run/test" UI command.
|
|
o Improved computation of surface area and cubic volume in specific solids.
|
|
o Revised implementation of G4CoupledTransportation: now inheriting from
|
|
G4Transportation and removed duplicated variables and methods.
|
|
o Provided choice of the model of fluctuations with the default
|
|
G4UrbanFluctuation, alternative G4UniversalFluctuation (more accurate for
|
|
thin targets), and G4LossFluctuationDummy (no fluctuations); new UI command
|
|
defines model of fluctuations for the full setup; inside user physics lists
|
|
it is possible to configure different fluctuation models per G4Region.
|
|
o In G4UrbanMscModel, moving safety computation before step limitation
|
|
algorithms in order to save few instructions; should not affect results.
|
|
o New G4TransportationWithMsc specialised tranportation process combined with
|
|
multiple-scattering, enabled by default with G4EmStandardPhysics_option1.
|
|
May be enabled for any EM physics via the new UI command. Added also
|
|
possibility to enable internal stepping.
|
|
o In EM processes, updated methods to access cross-sections at run time.
|
|
o In G4EmStandardPhysics_option3, use options providing more accurate
|
|
simulation without loss of CPU performance; significantly improving
|
|
fanoCavity results.
|
|
o Use G4LinhardSorensenIonModel for GenericIon in physics-lists for
|
|
G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
|
|
G4EmPenelopePhysics and G4EmLivermorePhysics.
|
|
o G4EmStandardPhysics_option4: use Penelope ionisation model for e- below
|
|
100 keV.
|
|
o Set EPICS2017 cross sections to be the default for Livermore gamma processes.
|
|
o New utility class G4EmDNABuilder, providing instantiation of standard
|
|
and DNA processes/models in physics lists. Made G4EmDNAPhysics the base
|
|
class for DNA physics constructors. Optimised IRT-syn DNA model.
|
|
o Added parameters in DNA including the chemical molecules and reaction
|
|
list involved in the radiolysis.
|
|
o In G4DNA, incorporated model based on RPWBA to transport protons at
|
|
100-300 MeV and updated data structure to improve performance of the
|
|
mesoscopic model.
|
|
o Added flush() method to the fast simulation models, allowing to process the
|
|
input buffer of the fast simulation model before the end of an event;
|
|
triggered inside the event loop of G4EventManager, when the stack is empty.
|
|
o Added a new utility method to access a process via sub-type.
|
|
o New integral method for hadronic processes.
|
|
o Extended cross-sections for computation of light anti-nuclei on hydrogen.
|
|
o In G4Evaporation and G4UnstableFragmentBreakUp, completed fix about
|
|
production of unphysical fragments.
|
|
o In hadronic de_excitation, added limitation (A < 30) on decay of unphysical
|
|
fragment, allowing for removal of light unphysical states and providing
|
|
improved isotope production for the spallation fragments.
|
|
o Improved FTF fragmentation to better describe the production of strange
|
|
mesons and baryons in proton-proton interactions, as measured by the
|
|
NA61/SHINE Collaboration.
|
|
o Added option to G4HadronicParameters to control the diffraction
|
|
dissociation for nucleon projectile on target nucleus with baryon number
|
|
greater than 10: by default, both projectile and target diffraction are
|
|
switched off (but they are both active in the case of target nucleus with
|
|
baryon number below or equal to 10; if instead the flag is set to "true",
|
|
then both projectile and target diffraction are activated regardless of
|
|
the target nucleus).
|
|
o Added temporary check and protection in G4HadronicProcess against anomalous
|
|
condition leading to rare crashes recently observed with neutronHP and
|
|
fixed also rare reproducibility problems in particleHP.
|
|
o Implemented Twinkling in visualization, i.e, the rhythmic variation of
|
|
brightness of given touchables.
|
|
o Introducing 'FALLBACK' visualisation drivers for TSGQt and VTKQt and new
|
|
commands to facilitate the drawing of plots at the end of a run.
|
|
o Retired "tasking" module and merged contents in "global" and "run"
|
|
categories.
|
|
o New meshing features in visualization. Allowing for multiple meshes in
|
|
a single screen; relevant for special mesh rendering. Improved graphics
|
|
representation.
|
|
o Use standard install location for CMake installation scripts, now being
|
|
installed in $CMAKE_INSTALL_PREFIX/lib/cmake/Geant4.
|
|
o Added required configuration to be able to generate DEB/RPM packages
|
|
with CPack.
|
|
o Dataset environment variables are now optional in CMake builds.
|
|
Consistently use G4FindDataDir() in place of std::getenv() in code for
|
|
accessing data-sets.
|
|
o Added support for Intel-icpx/icx compiler.
|
|
o Preliminary configuration support for Qt5 and Qt6.
|
|
o New set of extended examples, implementing different setups showing how
|
|
to score particle fluences.
|
|
o Updated tasking system to upstream PTL version 2.3.3.
|
|
o Build option with VecGeom requires VecGeom-1.2.0 or higher.
|
|
o Requires CLHEP-2.4.5.3 for external CLHEP installation.
|
|
o New data sets: G4EMLOW-8.1, G4NDL-4.7.
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
Technical Notes
|
|
---------------
|
|
|
|
o Tested platforms:
|
|
+ Linux, gcc-8.3.1.
|
|
Tested on 64 bit architectures (Intel or AMD) with Linux CentOS8.
|
|
Versions of Geant4 have also been compiled successfully on other
|
|
Linux distributions, Ubuntu, Debian, Suse or other RedHat systems.
|
|
+ MacOS 12.4, Apple LLVM/clang-13.1.6 (Intel or Apple Silicon).
|
|
+ Windows/10 with Visual C++ 14.31 (Visual Studio 2022)
|
|
|
|
o More verified configurations:
|
|
+ Linux, with gcc-9.3/10.3/11.2/12.1, clang-10/11.
|
|
+ Linux, with Intel-icc 2022.1, Intel-icx 2022.1.
|
|
+ MacOS 11.6 and 10.15, with Apple LLVM/clang-12.
|
|
+ Windows/10 with Visual C++ 14.29 (Visual Studio 2019)
|
|
|
|
o External dependencies
|
|
+ CLHEP-2.4.5.3, suggested for external installation of the CLHEP library.
|
|
+ VecGeom-1.2.0, for optional use of the VecGeom geometry primitives.
|
|
+ PTL-2.3.3, for external installation of the PTL tasking library.
|
|
|
|
o New data sets:
|
|
+ G4EMLOW-8.1, G4NDL-4.7.
|
|
|
|
Please refer to the Geant4 User Documentation:
|
|
http://cern.ch/geant4/support/user_documentation
|
|
for further information about using Geant4.
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
List of features and fixes included in this Beta release since 11.0.p02:
|
|
|
|
o Configuration:
|
|
-------------
|
|
+ CMake:
|
|
o Added support for Intel-icpx/icx compiler and updated compilation flags
|
|
for all Intel compilers.
|
|
o Enable ToolsSG and backends based on use of external libraries (Qt, X11,
|
|
Xm, Win32). Backends made non-mutally exclusive; removed
|
|
GEANT4_USE_TOOLSSG public CMake option.
|
|
o Avoid setting LD_LIBRARY_PATH configuration on MacOS; adding paths to
|
|
DLL into PATH on Windows.
|
|
o Corrected logic error in checking whether module is already composed.
|
|
o Deprecated tags `geant4_define_module`, `geant4_global_library_target`;
|
|
decouples the source code organisation and the module/library
|
|
composition commands; implementation reduced to emitting a CMake
|
|
warning message on what to replace with.
|
|
o Updated CMake build scripts in all modules, by replacing
|
|
`geant4_global_library_target` with direct file inclusion and call to
|
|
`geant4_add_category` to define library build from source modules.
|
|
o Reorganised DLL import/export flags for single-module categories.
|
|
o Set default value of GEANT4_BUILD_BUILTIN_BACKTRACE to OFF.
|
|
o Do not use CMAKE_VERBOSE_MAKEFILE when building tests.
|
|
o Rationalized declaration and use of internal builds of required
|
|
externals CLHEP, zlib, expat, PTL and tools libraries.
|
|
o Support declaration and composition of header-only modules and libraries.
|
|
o Adding geant4_module_sources command to enable appending of
|
|
headers/sources to a module after creation.
|
|
o Providing GEANT4_BUILD_ENABLE_ASSERTIONS option to enable assert() in
|
|
all release build modes (Release, RelWithDebInfo, MinSizeRel).
|
|
o Forward `CMAKE_<LANG>_FLAGS[_<MODE>]` flags to `geant4_add_test` so that
|
|
a consistent set is used through the project.
|
|
o Removed retired "tasking" module and library from configuration files.
|
|
o Removed deprecated functions in G4DeveloperAPI and fixed typo that
|
|
prevented installation of headers.
|
|
o Allow library composition to be overriden in developer builds.
|
|
o Do not use "readlink -f" to support pre-Monterey macOS systems.
|
|
o Adding -Og to GNU/Clang default debug flags.
|
|
o Copy .clang-tidy file to build directory to assist run-clang-tidy
|
|
reporting.
|
|
o In G4ConfigurePkgConfigHelpers.cmake, geant4-config.in for geant4-config
|
|
generation: adding new flag "--features" (add vtk and qt3d features);
|
|
allow use of md5sun if openssl missing; canonicalise prefix path.
|
|
o Added options --sh and --csh to geant4-config script.
|
|
o In G4ConfigureGNUMakeHelpers.cmake for geant4.[c]sh, geant4.bat
|
|
generation: allow full path source in zsh, sh; unset local variables at
|
|
the end; introducing GEANT4_DATA_DIR, with all data-set paths relative
|
|
to this.
|
|
o Added commands for working with categories analagous to module commands.
|
|
o Preliminary configuration support for Qt5 and Qt6.
|
|
o Added required configuration to be able to generate DEB/RPM packages
|
|
with CPack.
|
|
o Use more standard install location for CMake files.
|
|
o Remove version from default installation directories.
|
|
o Rationalised interlinked PTL/TBB build options.
|
|
o G4ConfigureGNUMakeHelpers.cmake (geant4.[c]sh, geant4.bat generation):
|
|
use the environment variable GEANT4_DATA_DIR as top data directory; the
|
|
environment variables for individual dataset commented in scripts.
|
|
o Added source validation exception for G4FindDataDir generated header.
|
|
o New data set G4EMLOW-8.1 and G4NDL-4.7 with new TermalScattering data.
|
|
o Updated tag-IDs for 11.0-beta.
|
|
+ GNUMake:
|
|
o Added Linux-icx.gmk configuration for Intel OneAPI DPC++ compiler.
|
|
Updated compilation flags for Intel icc/icx compilers.
|
|
o Enable -pthread only for MT builds in other configurations.
|
|
o Retired "tasking" category and library from build.
|
|
|
|
o Analysis:
|
|
--------
|
|
+ Added UI commands for visualization: '/analysis/hn|pn/getVector'.
|
|
+ Changed namespace for g4tools code from "tools" to "toolx" for externals.
|
|
+ Use geant4_category_modules in CMake script to optionally add G4hdf5
|
|
module to category.
|
|
|
|
o Digits & Hits:
|
|
-------------
|
|
+ Canonicalise implementations of custom new() and delete() operators that
|
|
use G4Allocator. Removed un-needed/duplicated checks on static allocator
|
|
creation in member functions.
|
|
|
|
o Event:
|
|
-----
|
|
+ Added call to G4GlobalFastSimulationManager::Flush() method in the event
|
|
loop.
|
|
+ Canonicalise implementations of custom new() and delete() operators that
|
|
use G4Allocator.
|
|
|
|
o Externals:
|
|
---------
|
|
+ Rationalising externals builds to decouple them from the core
|
|
module/category definitions.
|
|
+ CLHEP:
|
|
o Synchronised with CLHEP-2.4.5.3.
|
|
+ g4tools:
|
|
o Updated to g4tools 6.0.1:
|
|
- Fixed compilation warnings on Intel compiler and Coverity defects.
|
|
- Use thread-safe version of gl2ps-1.4.2.
|
|
In gl2psPrintPostScriptPixmap(): pass greyscale, nbit in arguments
|
|
to avoid a dead code issue; in gl2psPDFgroupListInit(), fixed issue
|
|
for uninitialized pointer read; removed commented out code.
|
|
- sg/text: corrections in update_sg() due to copy-paste error.
|
|
- Moved g4tools code externals from "tools" to "toolx" module.
|
|
Concerns code related to Qt, Windows, X11, Xt, OpenGL, hdf5, expat,
|
|
mpi, zlib.
|
|
o In toolx/X11/base_session, check in show_window() that the window is
|
|
not already mapped.
|
|
+ ptl:
|
|
o Updated to upstream PTL version v2.3.3:
|
|
- New/improved support for initialization and finalization routines
|
|
in ThreadPool.
|
|
- Threading: fix in GetNumberOfPhysicalCpus(), to never return zero.
|
|
- Fixed verbose message to cerr to be protected within verbosity level.
|
|
- Fixes for C++20 compilation warnings and updates to build scripts.
|
|
- Removed outdated TiMemory implementation.
|
|
- Code formatting.
|
|
o Minor fixes for macOS/Clang and use as a subproject.
|
|
o Updated CMake install directory for PTL to match recent changes
|
|
in default install directories in Geant4.
|
|
o Use any existing value of PTL_SANITIZER_TYPE to set the cache value
|
|
to prevent override.
|
|
|
|
o Geometry:
|
|
--------
|
|
+ management:
|
|
o Get rid of heap allocations in G4BoundingEnvelope.
|
|
o G4ReflectedSolid: added GetCubicVolume(), GetSurfaceArea().
|
|
+ navigation:
|
|
o The "/geometry/run/test" UI command can now check for overlaps in
|
|
parallel worlds if "/geometry/run/check_parallel" is set to 'true'.
|
|
o G4Navigator: minor code improvements in ComputeSafety(), ComputeStep(),
|
|
and LocateGlobalPointAndSetup().
|
|
o Added constant 'kMassNavigatorId' in G4TransportationManager and make
|
|
use of it in G4SafetyHelper.
|
|
+ solids/Boolean:
|
|
o G4DisplacedSolid: added GetCubicVolume(), GetSurfaceArea().
|
|
+ solids/specific:
|
|
o G4GenericTrap: implemented calculation of volume using analytical
|
|
expression in GetCubicVolume(); in GetSurfaceArea(), improved
|
|
calculation of the area of lateral faces; removed private function
|
|
GetFaceCubicVolume(); private functions GetFaceSurfaceArea(),
|
|
GetTwistedFaceSurfaceArea() replaced with private function
|
|
GetLateralFaceArea().
|
|
o G4Ellipsoid: in LateralSurfaceArea(), enhanced calculation of the
|
|
lateral surface area.
|
|
o G4VTwistedFaceted, G4TwistedBox, G4TwistedTrd: optimised calculation
|
|
of volume and surface area.
|
|
o G4VTwistedFaceted: fCubicVolume, fSurfaceArea made protected;
|
|
GetCubicVolume() and GetSurfaceArea() no longer inlined and moved to
|
|
source.
|
|
o G4TwistedTubs: implemented GetSurfaceArea() based on analytical
|
|
expressions; added private functions GetLateralArea(), GetPhiCutArea().
|
|
o G4Hype: use analytical expression in GetCubicVolume() and
|
|
GetSurfaceArea().
|
|
o G4VTwistedFaceted: use numerical evaluation of a single integral to
|
|
calculate lateral face surface area.
|
|
o G4ExtrudedSolid, G4UExtrudedSolid: added default values for parameters
|
|
in the constructor with two z-sections. Added default constructor to
|
|
ZSection.
|
|
|
|
o Global:
|
|
------
|
|
+ Define G4lrint as std::lrint; removed unused G4lint and G4rint.
|
|
+ Imported from "Tasking" module all core interfaces that only depend on PTL.
|
|
+ Corrected G4ErrorPropagatorData destructor.
|
|
+ Commented out debug printout in G4ThreadLocalSingleton constructor.
|
|
+ Make dataset environment variables optional in CMake builds.
|
|
+ G4FindDataDir: correction for windows runtime, G4MULTITHREADED flag.
|
|
Use the environment variable GEANT4_DATA_DIR as top data dir.
|
|
+ Removed obsolete CMakeLists.txt script in "management" module.
|
|
Declare "HEPGeometry" dependencies as INTERFACE as the module is
|
|
header-only. Removed dependency on TBB which is not a direct dependency
|
|
of the global category.
|
|
+ Changed date for release 11.1-beta.
|
|
|
|
o Graphics Representations:
|
|
------------------------
|
|
+ HepPolyhedron, G4Polyhedron: added new constructors taking vertices and
|
|
faces; added derived classes HepPolyhedronTetMesh, G4PolyhedronTetMesh;
|
|
added SetVertex(), SetFacet() functions and made SetReferences() and
|
|
InvertFacets() public methods. Implemented JoinCoplanarFacets() function,
|
|
move constructor and move assignment operator.
|
|
+ Implemented faster version of HepPolyhedronTetMesh.
|
|
+ Revised HepPolyhedronEllipsoid, fixed visibility of edges in case of cut
|
|
ellipsoid.
|
|
+ G4Visible: added "user" data member 'fInfo' from G4VMarker, with access
|
|
and operator<<() functions, intended to offer the user/developer a way
|
|
of communicating information.
|
|
+ G4VisExtent: in Transform(), use 'const auto&' to avoid copying.
|
|
|
|
o Intercoms
|
|
---------
|
|
+ Applied set of clang-tidy modernize, readability and performance fixes.
|
|
|
|
o Interfaces
|
|
----------
|
|
+ G4InteractorMessenger: prevent propagation of "/gui/*" commands to workers.
|
|
+ Fixed compilation warning on Intel compiler for shadowing data.
|
|
+ Preliminary build support for Qt5 and Qt6.
|
|
+ Use geant4_module_sources to add optional sources in CMake script.
|
|
Added required G4VIS_USE_VTK_QT flag here instead of "Vtk" visualization
|
|
module. Added dependency on Qt5 Widgets to "common" sub-module CMake
|
|
script.
|
|
|
|
o Materials
|
|
---------
|
|
+ G4MaterialPropertyVector, G4OpticalMaterialProperties: organise material
|
|
property vectors in increasing order of energy.
|
|
Modified from GitHub PR#42 (https://github.com/Geant4/geant4/pull/42).
|
|
+ Corrected G4UCNMicroRoughnessHelper destructor.
|
|
+ Applied set of clang-tidy modernize, readability and performance fixes.
|
|
+ G4NistManager, G4NistMaterialBuilder, G4NistElementBuilder: use G4AutoLock
|
|
for code simplification.
|
|
+ Replaced getenv() calls for data variables with G4FindDataDir() in
|
|
G4IonStoppingData, G4MicroElecMaterialStructure and G4OpticalSurface.
|
|
+ G4Material: fixed trivial Coverity warnings.
|
|
|
|
o Parameterisations:
|
|
-----------------
|
|
+ Added flush() method to the fast simulation models. This method allows to
|
|
process the input buffer of the fast simulation model before the end of an
|
|
event. It is used when particles are grouped together before the
|
|
processing. The 'flush' is triggered inside the event loop of
|
|
G4EventManager, when the stack is empty. The fast simulation model may
|
|
add secondaries to the stack, which will then be processed by Geant4.
|
|
|
|
o Particles:
|
|
---------
|
|
+ In G4NuclieTable, replaced getenv() calls for data variables with
|
|
G4FindDataDir().
|
|
+ Minor code formatting.
|
|
|
|
o Physics Lists:
|
|
-------------
|
|
+ Constructors:
|
|
o Replaced getenv() calls for data variables with G4FindDataDir() in data
|
|
readers.
|
|
o electromagnetic:
|
|
- G4EmModelActivator: fixed mechanism to define PAI model per region.
|
|
- In G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
|
|
G4EmPenelopePhysics, G4EmStandardPhysicsSS, and G4EmLivermorePhysics
|
|
use G4LinhardSorensenIonModel for GenericIon.
|
|
- Adding possibility to enable new G4TransportationWithMsc for
|
|
multiple-scattering. Enabled by default in G4EmStandardPhysics_option1.
|
|
- G4EmBuilder: enable internal stepping in G4TransportationWithMsc
|
|
if requested.
|
|
- G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4:
|
|
adopt identical configuration for msc, muon, hadron, and ion physics.
|
|
- G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4,
|
|
G4EmStandardPhysics: selection of the model for energy loss
|
|
fluctuation is included in ionisation processes according to the type
|
|
defined in G4EmParameters.
|
|
- G4EmStandardPhysics, G4EmStandardPhysics_option3,
|
|
G4EmStandardPhysics_option4: use G4GammaGeneralProcess by default.
|
|
- G4GammaGeneralProcess: implemented new method GetCreatorProcess().
|
|
- G4EmStandardPhysics_option4: use Penelope ionisation model for e-
|
|
below 100 keV.
|
|
- G4EmBuilder: use check on process sub-type, do not substitute
|
|
G4CoupledTransportation with G4TransportationWithMsc.
|
|
- G4EmDNABuilder: new utility class, which provides instantiation of
|
|
standard and DNA processes/models; this reduces code duplication for
|
|
DNA physics, energy intervals for DNA models are defined in one place.
|
|
Added option2,3,4,6,8 configurations.
|
|
Added extra utility methods to find or to build electron processes.
|
|
- Made G4EmDNAPhysics the base class for DNA physics constructors.
|
|
Added interface to G4EmDNABuilder.
|
|
- G4EmDNABuilder, G4EmDNAPhysicsActivator: make consistent the
|
|
configuration of DNA physics on top of standard physics.
|
|
- Simplified code in G4EmDNAPhysics_option1, G4EmDNAPhysics_stationary,
|
|
G4EmDNAPhysics_option5 and G4EmDNAPhysics_stationary_option4.
|
|
- G4EmDNAPhysics_option6, G4EmDNAPhysics_option8: use "fast" option.
|
|
- G4EmDNAPhysics_option7, G4EmDNAPhysics_stationary_option6,
|
|
G4EmDNAPhysics_option3, G4EmDNAPhysics_stationary_option2: simplified
|
|
code.
|
|
- Added G4DNABrownianTransportation, SBS and IRT_syn models in
|
|
G4EmDNAChemistry_option3.
|
|
o gamma_lepto_nuclear:
|
|
- G4EmExtraPhysics, G4EmMessenger: use C++11 keywords; suppressed
|
|
broadcasting of UI commands.
|
|
o limiters:
|
|
- G4SpecialCuts: added setting of process type 'fGeneral' and sub type.
|
|
- G4MinEkineCuts: removed setting of process type 'fUserDefined'.
|
|
- Moved G4UserSpecialCuts class from "transportation" module.
|
|
+ util:
|
|
o G4PhysListUtil: added new utility method to access a process via
|
|
sub-type, simplified methods to access hadron processes.
|
|
Use dynamic_cast instead of static_cast.
|
|
|
|
o Electromagnetic Processes:
|
|
-------------------------
|
|
+ Adjoint:
|
|
o G4AdjointComptonModel, G4AdjointCSManager: use updated interface
|
|
to cross-section from G4VEmProcess.
|
|
o G4AdjointBremsstrahlungModel: use updated interface to G4EmModelManager.
|
|
+ DNA:
|
|
o Added G4DNAPolyNucleotideReactionProcess and G4VDNAHitModel classes for
|
|
DNA damage applications.
|
|
o Prefer pointer to 'const G4Material' where possible.
|
|
Removed useless 'const_cast' of G4VSensitiveDetector.
|
|
o Optimised IRT-syn model, use reaction radius and reaction type from the
|
|
reaction table.
|
|
o Deleted G4VReactionType, G4DNAReactionTypeManager, G4DNAIRT_geometries,
|
|
G4DNATotallyDiffusionControlled and G4DNAPartiallyDiffusionControlled.
|
|
o G4ITTransportation: Make PrepareState() more function-like, expect
|
|
semicolon.
|
|
o G4DNAPolyNucleotideReactionProcess: moved 'PrepareState' and 'State'
|
|
macros in source file; made PrepareState() more function-like, expect
|
|
semicolon; moved variable 'pMoleculeA' under G4VERBOSE.
|
|
o Added condition of water material for the OUTSIDE_OF_MOTHER_VOLUME
|
|
warning in G4DNAMolecularDissociation::DecayIt().
|
|
o Added protection in G4DNACPA100IonisationModel for cumulative
|
|
cross-section interpolation.
|
|
o Added flag 'OctreeFinder' in IRT_syn's Initialize() method.
|
|
o Added parameters including the chemical molecules and reaction list
|
|
involved in the radiolysis.
|
|
o Modified the macro in G4Molecule and G4ITType for linker problems on
|
|
Windows.
|
|
o Save local instances for recurrent access to particle definition in
|
|
G4DNAMillerGreenExcitationModel, G4DNARuddIonisationExtendedModel and
|
|
G4DNARuddIonisationModel.
|
|
o Revised code to use G4Pow and G4Log consistently.
|
|
o In G4DNARuddIonisationExtendedModel, do not include ions that are not
|
|
defined in G4DNAGenericIonsManager.
|
|
o Fix in G4KDTree algorithm. Addressing problem report #2235.
|
|
Minor code cleanup.
|
|
o Added G4VUserBrownianAction class, used in G4DNABrownianTransportation
|
|
and in G4DNAMolecularDissociation.
|
|
o Use int64_t for molecules width integer types.
|
|
o Added 'fResetScavenger' data member in G4SchedulerMessenger.
|
|
o Incorporation of model based on RPWBA to transport protons
|
|
at 100-300 MeV.
|
|
o Added G4DNARPWBAExcitationModel and G4DNARPWBAIonisationModel.
|
|
o Updated data structure to improve performance of the mesoscopic model.
|
|
o Change scavenging filter of the IRT beyond 1 us.
|
|
o Use thread-local flag in G4VMoleculeCounter.
|
|
o Replaced std::getenv() calls for data variables with G4FindDataDir()
|
|
in data readers.
|
|
o Corrected DNA ion definitions in G4DNARuddIonisationExtendedModel.
|
|
o Added missing headers inclusions for self-consistency.
|
|
+ Low Energy:
|
|
o G4LivermoreGammaConversionModel, G4LivermorePhotoElectricModel and
|
|
G4LivermoreGammaConversion5DModel: set Spline interpolation for EPDL97.
|
|
o Fixed use of potential uninitialised pointer in
|
|
G4AtomicDeexcitation::GenerateParticles(..).
|
|
o Replaced getenv() calls for data variables with G4FindDataDir() in data
|
|
readers.
|
|
o Removed Latin-1 characters from description in banners.
|
|
+ Muons:
|
|
o G4MuIonisation: added selection of the model for energy loss
|
|
fluctuations. Use G4MuBetheBloch model above 0.2 MeV.
|
|
o G4MuBremsstrahlungModel: moved low energy limit from 1 GeV to 100 MeV.
|
|
o G4MuPairProductionModel: moved low energy limit from 1 GeV to 850 MeV.
|
|
Some code cleanup: formatting, removed extra space lines.
|
|
+ Polarisation:
|
|
o Prefer pointer to 'const G4Material' where possible.
|
|
+ Standard:
|
|
o G4UrbanMscModel: moving safety computation before step limitation
|
|
algorithms in order to save few instructions; should not affect results.
|
|
Added two extra class members. Improved code comments.
|
|
Extended cache data with 5 variables for positrons;
|
|
removed unused headers; minor saving of instructions.
|
|
o G4eIonisation, G4hIonisation, G4ionIonisation: added selection of the
|
|
model for energy loss fluctuations.
|
|
o G4PairProductionRelModel, G4eBremsstrahlungRelModel,
|
|
G4PairProductionRelModel and G4eBremsstrahlungRelModel: added inclusion
|
|
of headers of G4Exp, G4Pow to to make translation unit self-consistent.
|
|
o In G4WentzelVIRelModel, G4WentzelOKandVIxSection,
|
|
G4LindhardSorensenIonModel and G4ICRU49NuclearStoppingModel, use
|
|
G4AutoLock.
|
|
o G4BetheHeitler5DModel: do not instantiate G4MuonPlus, G4MuonMinus inside
|
|
the model to allow usage of this class in physics lists without muons.
|
|
o G4eBremsstrahlung, G4hIonisation: improved initialisation.
|
|
o G4eBremsstrahlungRelModel, G4eBremParametrizedModel: code cosmetics.
|
|
o Run clang-tidy, use nullptr, default and auto keywords; removed unneeded
|
|
nullptr checks when deleting.
|
|
o Replaced getenv() calls for data variables with G4FindDataDir() in data
|
|
readers.
|
|
+ Utils:
|
|
o New G4TransportationWithMsc specialised tranportation process; added
|
|
related flag to G4EmParameters.
|
|
o G4EmConfigurator implemented model per region for
|
|
G4TransportationWithMsc. Updated interfaces.
|
|
o G4EmTableType: added 3d peak energy in the data structure needed for
|
|
Bremsstrahlung.
|
|
o G4VEnergyLossProcess: fill data structure for Bremsstrahlung type of
|
|
cross-section only in the master thread; do not repeat in each thread;
|
|
removed ineffective cache from run time computation of cross-section.
|
|
o G4EmParametersMessenger: improved instantion order of UI directories;
|
|
directories are created only in the master thread.
|
|
o G4EmModelManager: updated interface to Initialise() method;
|
|
removed obsolete method Update().
|
|
o G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering: use updated
|
|
method of G4EmModelManager.
|
|
o G4EmParametersMessenger: restored UI command "/process/em/integral".
|
|
o G4VEmProcess: updated methods to access cross-section at run time;
|
|
implemented new virtual method GetCrossSection(); removed unused methods.
|
|
o G4EmCalculator: use updated method from G4VEmProcess.
|
|
Fixed variable shadowing.
|
|
o G4EmUtility: a new utility class.
|
|
o G4VMultipleScattering: updated arguments for AddEmModel(..),
|
|
SetEmModel(..), and EmModel(..) methods from G4VEmModel* to
|
|
G4VMscModel*.
|
|
o G4LowEnergyEmProcessSubType: added sub-type ID (66) for DNAScavenger
|
|
process.
|
|
o G4EmTableUtil: new utility to perform common computations at
|
|
initialisation.
|
|
o G4VEmModel, G4EmCalculator, G4EmConfigurator: use G4EmUtility.
|
|
o G4VEmModel, G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering
|
|
and G4LossTableManager: use new utiity methods; updated sampling of
|
|
random elements in compounds and random isotopes; code cleanup.
|
|
o G4EmLowEParameters: change default photon database to EPICS2017.
|
|
o G4VEmProcess, G4VEnergyLossProcess: for integral method, use master
|
|
thread cross-section type and pointers directly; simplifying
|
|
initialisation.
|
|
o G4EmParameters: update flag to tri-state for enabling it.
|
|
Added extra parameter: type of fluctuation model.
|
|
o G4EmExtraParametersMessenger: fixed typo.
|
|
Addressing problem report #2492.
|
|
o G4VEnergyLossProcess: moved out common computations to G4EmTableUtil;
|
|
use G4EmDataHandler and removed unused headers/methods. Fixed trivial
|
|
Coverity warnings.
|
|
o G4VEnergyLossProcess, G4EmDataHandler: improved StorePhysicsTable(..)
|
|
method and debug printouts.
|
|
o G4EmParametersMessenger: added extra UI command to define fluctuations
|
|
model.
|
|
o Code cleanup with clang-tidy: use default constructors; nullptr, auto
|
|
and using keywords.
|
|
+ Xrays:
|
|
o Code cleanup with clang-tidy: use default constructors; nullptr and
|
|
auto keywords.
|
|
|
|
o Generic Processes:
|
|
-----------------
|
|
+ Management:
|
|
o G4VDiscreteProcess: added virtual method GetCrossSection()
|
|
needed for integral approach both in hadronics and EM modules.
|
|
Added virtual method MinPrimaryEnergy(..).
|
|
o G4VProcess: introduced new virtual method GetCreatorProcess().
|
|
+ Optical:
|
|
o Prefer pointer to 'const G4Material' where possible.
|
|
o Code cleanup with clang-tidy: use default constructors; auto keyword;
|
|
remove 'void' function argument; don't check for nullptr before delete;
|
|
use operator==() for string comparisons.
|
|
+ Parameterisation:
|
|
o Added flush() method to the fast simulation models. This method allows
|
|
to process the input buffer of the fast simulation model before the end
|
|
of an event. It is used when particles are grouped together before the
|
|
processing. The 'flush' is triggered inside the event loop of
|
|
G4EventManager, when the stack is empty. The fast simulation model may
|
|
add secondaries to the stack, which will then be processed by Geant4.
|
|
+ Solids State:
|
|
o In G4LatticeReader, replaced getenv() calls for data variables with
|
|
G4FindDataDir().
|
|
+ Transportation:
|
|
o Revised implementation of G4CoupledTransportation: now inheriting from
|
|
G4Transportation and removed duplicated variables and methods; use new
|
|
constant 'kMassNavigatorId' from G4TransportationManager.
|
|
o G4CoupledTransportation: set flags from G4Transportation: replaced
|
|
'fFirstStepInAnyVolume' with 'fFirstStepInVolume'; replaced
|
|
'fAnyGeometryLimitedStep' with 'fGeometryLimitedStep'; removed wrong
|
|
check in case of zero steps.
|
|
o G4Transportation: removed wrong check in case of zero steps; set step
|
|
status on volume boundary. Removed non-working check for any field.
|
|
o Moved G4UserSpecialCuts to "physics_lists/constructors/limiters" module.
|
|
o Removed useless 'const_cast' of G4VSensitiveDetector.
|
|
|
|
o Hadronic Processes:
|
|
------------------
|
|
+ Replaced getenv() calls for data variables with G4FindDataDir() in data
|
|
readers.
|
|
+ cross_sections
|
|
o G4CrossSectionDataStore, G4VCrossSectionDataSet: preparation for
|
|
integral method; removed unused methods.
|
|
+ management
|
|
o G4HadronicProcess: temporary check and protection against anomalous
|
|
condition leading to rare crashes recently observed with neutronHP; when a
|
|
secondary particle has a huge kinetic energy (i.e. higher than the max
|
|
energy allowed - by default 100 TeV), throw a warning exception and
|
|
neglect the particle concerned (i.e. corresponding G4Track object is not
|
|
created). Propagate the information on parent resonance (in the
|
|
FillResults() method, from G4HadSecondary to G4Track).
|
|
o G4HadronicProcess: implemented integral method.
|
|
o G4HadXSTypes, G4HadXSHelper: new helper classes.
|
|
+ models/binary_cascade
|
|
o G4GeneratorPrecompoundInterface, G4BinaryCascade: propagate the
|
|
information on parent resonance (in the ApplyYourself() method, from
|
|
G4ReactionProduct to G4HadSecondary; in other methods, from
|
|
G4KineticTrack to G4ReactionProduct).
|
|
+ models/cascade
|
|
o Fixed wrong comparison between two arrays in findCrossSection(..) for
|
|
G4CascadePPChannel, G4CascadeNPChanneland G4CascadeNNChannel.
|
|
+ models/de_excitation
|
|
o G4Evaporation, G4UnstableFragmentBreakUp: completed fix about production
|
|
of unphysical fragments; improved debug printout.
|
|
Addressing problem report #2355.
|
|
o G4EvaporationChannel, G4Evaporation: added limitation (A < 30) on decay
|
|
of unphysical fragment, allowing for removal of light unphysical states
|
|
and providing improved isotope production for the spallation fragments.
|
|
o G4EvaporationChannel, G4EvaporationProbability, G4VEmissionProbability,
|
|
G4VCoulombBarrier, G4CoulombBarrier: use new method from G4Fragment.
|
|
o G4VEvaporationChannel, G4EvaporationChannel, G4VEmissionProbability
|
|
and G4EvaporationProbability: improved inverse cross-section
|
|
parameterisation at threshold.
|
|
o G4PhotonEvaporation: fixed situation when excited fragments are created
|
|
with excitation energy not corresponding to level energies from
|
|
G4LEVELGAMMADATA. Addressing problem report #2434.
|
|
Also fixing event non-reproducibility for the case when radioactive
|
|
decay is enabled on top of any physics list.
|
|
Simplified handling of floating levels. For floating levels check if
|
|
levels with the same energy can be used for sampling transitions;
|
|
code clean-up.
|
|
o G4EvaporationProbability: reduced usage of cache.
|
|
o G4ExcitationHandler: use IsLongLived() flag from G4Fragment to decide
|
|
if de-excitation of the fragment should be stopped.
|
|
o G4VEmissionProbability: limit number of bins for numerical integration
|
|
to 50.
|
|
o G4VEmissionProbability: updated sampling of the emitted fragment energy
|
|
needed. Addressing proble report #2443.
|
|
Fixed sampling of tail of distribution; added numerical protections.
|
|
More strong limit on accuracy of integrated probability; improved debug
|
|
printout.
|
|
o G4CoulombBarrier: tuned parameters.
|
|
o G4LevelManger, G4NuclLevel: removed verbose printouts; code clean-up.
|
|
o G4NuclearLevelData: use G4AutoLock.
|
|
o Use G4BestUnit in G4DeexPrecoParameters::StreamInfo().
|
|
o Code cleanup.
|
|
+ models/em_dissociation
|
|
o G4EMDissociation: updated according to G4Fragment modifications.
|
|
+ models/inclxx
|
|
o G4INCLParticle, G4INCLEventInfo, G4INCLNucleus, G4INCLDeltaDecayChannel,
|
|
G4INCLXXInterface: set and propagate the information on parent resonance.
|
|
o G4INCLPiNElasticChannel: erase the information on parent resonance in
|
|
the case of charge exchange.
|
|
o G4INCLPiNToDeltaChannel, G4INCLPiNToOmegaChannel, G4INCLPiNToEtaChannel,
|
|
G4INCLPiNToMultiPionsChannel, G4INCLNpiToLKpiChannel,
|
|
G4INCLNpiToLK2piChannel, G4INCLNpiToNKKbChannel, G4INCLNpiToSK2piChannel,
|
|
G4INCLNpiToSKpiChannel, G4INCLNpiToSKChannel, G4INCLNpiToLKChannel,
|
|
G4INCLNpiToMissingStrangenessChannel: erase the information on parent
|
|
resonance in inelastic channels (where the nucleon and pion initial-state
|
|
objects are re-used for the final state).
|
|
+ models/lend
|
|
o Fixed potential use of pointer after free in nf_utilities/nfu_realloc(..)
|
|
function.
|
|
+ models/particle_hp
|
|
o G4ParticleHPContAngularPar: added protections against evaluations of
|
|
arrays at negative index (-1), fixing rare reproducibility problems and
|
|
rare crashes that have been recently observed.
|
|
o G4ParticleHPContEnergyAngular: fixed Coverity report. Expected no effect.
|
|
o G4ParticleHPThermalScatteringNames: updated to use new ThermalScattering
|
|
data in G4NDL-4.7.
|
|
+ models/parton_string
|
|
o Allow control of diffraction for baryon number greater than 10 in
|
|
G4FPFParameters. The option comes from G4HadronicParameters and the
|
|
default behaviour remains the same (i.e. off).
|
|
o Fixes to get isotropic distributions in annihilations at rest: in
|
|
G4DiffractiveSplitableHadron, set proper parton index.
|
|
In G4DiffractiveExcitation, in the CreateStrings() method, take into
|
|
account that strings are created in G4FTFAnnihilation; by default, the
|
|
method CreateStrings() creates a string from a wounded nucleon/hadron,
|
|
but this is not needed in the case of annihilation.
|
|
In G4FTFAnnihilation, removed splitting of hadron; fixed bugs in the
|
|
calculations of kinematical properties; set quark momenta at string ends,
|
|
to properly account for string order on rapidity.
|
|
o G4HadronBuilder: added a new argument in constructor, and a new data
|
|
member to the class. This is needed to set a special mixing of
|
|
pseudo-scalar and vector mesons for s-sbar mesons. Introduced to
|
|
describe phi-meson production in proton-proton interactions measured
|
|
by NA61/SHINE.
|
|
o G4VLongitudinalStringDecay: tuned the probability of pseudo-scalar meson
|
|
production, to describe K*0 meson production in proton-proton
|
|
interactions according to NA61/SHINE data. Introduced also a new
|
|
parameter (probability of pseudo-scalar meson production in s-sbar
|
|
mesons) to increase the phi-meson yield in proton-proton interactions.
|
|
Fixed a bug in mixing eta_prime and phi mesons in the quark systems
|
|
d-dbar, u-ubar and s-sbar.
|
|
o G4LundStringFragmentation: introduced few changes for special treatment
|
|
of the last string decay in the case of ss-q or ss-qq, ss-sbar sbar last
|
|
string decay. This improves the yield of anti-Xi hyperons in
|
|
proton-proton interactions according to the NA61/SHINE data.
|
|
o G4VSplitableHadron: changed the method Splitting() from "protected" to
|
|
"public" (needed to change the status of SplitableHadron in
|
|
G4FTFAnnihilation, to get isotropic distributions in annihilations at
|
|
rest).
|
|
+ models/radioactive_decay
|
|
o Cosmetics in G4RadioactiveDecay::StreamInfo().
|
|
+ models/theo_high_energy
|
|
o G4TheoFSGenerator: propagate the information on parent resonance (in
|
|
the ApplyYourself() method, from G4ReactionProduct to G4HadSecondary).
|
|
+ processes
|
|
o Prefer pointer to 'const G4Material' where possible.
|
|
+ util
|
|
o G4Fragment: added 'IsLongLived' flag and Get/Set methods needed for the
|
|
de-excitation module; clean-up inline methods.
|
|
Fixed computation of binding energy for hypernuclei; added
|
|
a new private method to recompute ground state mass, excitation energy
|
|
and to check consistency of input; left inlined only simple methods;
|
|
added new methods SetZAandMomentum(..) and RecomputeGroundStateMass();
|
|
improved comments and warning messages.
|
|
o G4HadronicParameters: added flags for switching on/off the integral
|
|
approach for hadron elastic and, independently, inelastic processes;
|
|
by default, it is enabled for inelastic.
|
|
Moved G4Threading header to source.
|
|
o Added option to G4HadronicParameters to control the diffraction
|
|
dissociation for nucleon projectile on target nucleus with baryon
|
|
number greater than 10: by default, both projectile and target
|
|
diffraction are switched off (but they are both active in the case
|
|
of target nucleus with baryon number below or equal to 10; if instead
|
|
the flag is set to "true", then both projectile and target diffraction
|
|
are activated regardless of the target nucleus).
|
|
o G4KineticTrack, G4HadSecondary, G4ReactionProduct, G4DecayKineticTracks,
|
|
G4DecayStrongResonances: propagate the information on parent resonance.
|
|
|
|
o Run
|
|
---
|
|
+ Imported implementations of task-based interfaces/implementations from
|
|
the "Tasking" module. See History.tasking file for History of tasking
|
|
code.
|
|
+ Added new G4DNAScavenger in PhysicsListHelper for DNA processes.
|
|
|
|
o Tasking
|
|
-------
|
|
+ Retired module. Contents merged in "global" and "Run" categories.
|
|
|
|
o Track & Tracking
|
|
----------------
|
|
+ In G4ParticleChangeForTransport, simplified UpdateStepForAlongStep(),
|
|
assuming that transportation is always the first process.
|
|
Apply proposed step length; further simplified UpdateStepForAlongStep()
|
|
method, assuming that transportation is always the first process.
|
|
+ Only set step status of 'fGeomBoundary' when on volume boundary.
|
|
+ In G4SteppingManager, refactor and simplify processing of secondaries;
|
|
use new virtual method GetCreatorProcess() when processing secondaries.
|
|
Corrected 'ProcessDefinedStep' for AtRest case.
|
|
Removed check on cuts and removed dependence of tracking from EM physics;
|
|
real implementation of ApplyCut() is done within EM physics classes.
|
|
Merged G4SteppingManager translation units.
|
|
+ G4Track: added methods to get/set information on (short-lived) parent
|
|
resonance.
|
|
|
|
o Visualization:
|
|
-------------
|
|
+ Updated build scripts and internal dependencies.
|
|
+ Preliminary build support for Qt5 and Qt6.
|
|
+ management:
|
|
o Implemented Twinkling, i.e, the rhythmic variation of brightness of
|
|
given touchables: in G4VVisCommand added Twinkle() method; exploit
|
|
twinkling in UI commands in G4VisCommandsTouchable and
|
|
G4VisCommandsViewer.
|
|
o Re-worked and rationalised special mesh rendering utilities.
|
|
The idea is that these are "standard" functions that are optional.
|
|
They are optimised for OpenGL but they also work fine for ToolsSG and
|
|
Qt3D. An attempt to draw a mesh with any other driver will result in a
|
|
warning and only the container will be drawn. Other drivers will have to
|
|
implement their own AddCompound(...G4Mesh...) function or choose to use
|
|
the standard functions or some thereof.
|
|
o Take advantage of recent developments in HepPolyhedron for rendering:
|
|
conversion of tetrahedra to enclosing polyhedron removing inner surfaces;
|
|
conversion of boxes to enclosing polyhedron removing inner surfaces.
|
|
Also take advantage of developments in G4PhysicalVolumeModel:
|
|
when a mesh has been found, an artificial node is created and added
|
|
to the PVPath whose physical volume points to the parameterisation.
|
|
It is used in G4VSceneHandler to transmit the material name so that,
|
|
for example, the Qt viewer scene tree shows items by material. In the
|
|
case of a medical phantom, the materials are usually given the name
|
|
of the organ, so users can select on them.
|
|
o G4VisCommandsViewer: "/vis/viewer/centreOn" and "centreAndZoomInOn":
|
|
only fly and twinkle if 'KernelVisitElapsedTimeSeconds < 0.1'. It is
|
|
not feasible for complex scenes; in that case go straight to requested
|
|
volume without flying and twinkling.
|
|
Introducing "/vis/viewer/resetCameraParameters" UI command, resetting
|
|
*only* the camera parameters (view direction, etc.).
|
|
o G4VSceneHandler: added utility function Draw3DRectMeshAsDots(..); for a
|
|
rectangular 3-D mesh, draw as coloured dots, one dot randomly placed in
|
|
each visible cell. Tidy Draw3DRectMeshAsDots().
|
|
Allow for multiple meshes in a single screen; relevant for special mesh
|
|
rendering. Renamed 'PseudoSceneFor3DRectMeshAsDots' to
|
|
'PseudoSceneFor3DRectMeshPositions'; serves both dots and surfaces.
|
|
Added 'Draw3DRectMeshAsSurfaces'.
|
|
Make sure dots (markers) are treated as "hidden", i.e., use the z-buffer
|
|
like other primitives (the default is "non-hidden").
|
|
Make sure dots and vertices are in local coordinate system and ask the
|
|
rendering train to transform them to world coordinates in the normal
|
|
way through BeginPrimitives(..).
|
|
Replaced 'NameAndColour' by 'NameAndVisAtts'.
|
|
Exploit move operator when creating polyhedra for Special Mesh Rendering.
|
|
Numerous improvements to comments and messaging.
|
|
o Introducing drawing of parameterised tetrahedral mesh.
|
|
G4VSceneHandler::DrawTetMeshAsDots(): default tet mesh drawing.
|
|
o Ensure X-geometry string is copied correctly to a new viewer.
|
|
o G4VisCommandsCompound: improved command guidance of "/vis/open".
|
|
o G4VisCommandsViewer: improved command guidance of "/vis/viewer/create".
|
|
o G4VisParameters: added new accessors IsWindowLocationHintX/YNegative().
|
|
o G4VisCommandsTouchable: augment "/vis/touchable/draw", added Boolean
|
|
argument: if true, draw the extent (bounding box); Default false.
|
|
In "/vis/touchable/dump", fix missing dump of vis attributes.
|
|
o G4VViewer: added data member and access method for
|
|
'KernelVisitElapsedTimeSeconds'. This is measured in ProcessView().
|
|
o In G4VisExecutive, introducing 'FALLBACK' drivers for TSGQt and VTKQt.
|
|
A FALLBACK vis driver is selected if the user chooses a UI session that
|
|
is not compatible with the requested driver. For example, if the user
|
|
has built Geant4 with Qt, the TSGQt driver will be available and be
|
|
the "default" driver, so "/vis/open TSG" will attempt to open TSGQt. But
|
|
if the user has chosen a dumb terminal session, the vis manager selects
|
|
TSGX11, for example, instead.
|
|
o Improved messaging for the case that a driver is not found in the
|
|
candidate list.
|
|
o Introduced compound command: "/vis/plot <h1|h2> <id>".
|
|
This is the first part of a programme to facilitate the drawing of
|
|
plots (if any have been registered with the analysis manager) at the
|
|
end of a run. At the moment only the ToolsSG vis driver can offer this,
|
|
so the vis manager issues appropriate messages.
|
|
Later, we hope to introduce something like "/vis/reviewPlots", which
|
|
will allow the user to view all available plots in sequence.
|
|
o G4VisManager: added access method: IsEnabled(). Register the new
|
|
commands. In EndOfEvent(), protect view checking with mutex lock
|
|
in MT mode, and deal better with the case of scene requesting no kept
|
|
events (greatly speeds plotting).
|
|
Only print list of available histograms if more than one per category.
|
|
Fixed crash in G4VisManager::GeometryHasChanged() observed in example
|
|
AnaEx01. GeometryHasChanged() is a method that is called by the run
|
|
manager. Sometimes the user chooses to delete the existing geometry
|
|
tree and ask the run manager to construct a new detector geometry.
|
|
Previously existing vis models of the geometry become invalid and the
|
|
vis manager had to pick up the new geometry.
|
|
The vis manager removes invalid models from the vis scenes and now adds
|
|
the new version of the world back in. Other types of models, trajectory
|
|
drawing, for example, if specified in the original scene, are kept in
|
|
the new version of the scene.
|
|
o G4VisCommandsSceneAdd: new command "/vis/scene/add/plotter", to add
|
|
G4PlotterModel to end-of-run list.
|
|
Adapted "/vis/scene/add/volume" UI command to new
|
|
G4PhysicalVolumesSearchScene.
|
|
o G4VisCommandsCompound: introducing "/vis/plot <h1|h2> <id>" command.
|
|
o G4Scene: redefined IsEmpty().
|
|
o G4VisCommandsViewerSet: improved messaging for
|
|
"/vis/viewer/set/lineWidth"; this simply prints a message saying
|
|
how *actually* to change line width.
|
|
o Introducing "/vis/viewer/set/specialMeshRenderingOption <dots|surfaces>"
|
|
UI command; "dots" draw one dot per mesh point; "surfaces" group mesh
|
|
points by colour and material and compute the outer surface or envelope,
|
|
removing internal shared faces. So far, only the "dots" option is
|
|
implemented for some drivers.
|
|
o Introducing "/vis/viewer/set/lineWidth" UI command, a do-nothing command
|
|
that tells how to change line width.
|
|
o Implemented "/vis/reviewPlots" UI command.
|
|
o G4PlotterManager: removed not used inclusion of <tools/xml/xml_style>.
|
|
o G4VisCommandsSceneAdd: changed the default width of axes added to the
|
|
scene with automatic length and width determination.
|
|
+ modeling:
|
|
o G4Mesh: augmented available data for 3D rectangular mesh.
|
|
Programmed for parameterised tetrahedron mesh.
|
|
Simplified algorithm: now finding 1-deep rectangular meshes such as
|
|
G4PhantomParameterisation. Added 'fpParameterisedVolume' pointer and
|
|
accessor.
|
|
o G4PhysicalVolumeModel: added 'LocalExtent' and 'GlobalExtent' to method
|
|
GetAttDefs(). In TouchableProperties, added 'fTouchableFullPVPath'.
|
|
Added modifiers; for AddCompound(mesh), provide an artificial node as
|
|
an (optional) hook for anything that might be generated.
|
|
o Migrated G4PhysicalVolumesSearchScene and G4TouchablePropertiesScene
|
|
to use 'fTouchableFullPVPath'.
|
|
o Retired G4BoundingSphereScene and G4PhysicalVolumeSearchScene.
|
|
G4BoundingSphereScene accumulated bounding spheres and often
|
|
overestimated the extent of the scene; it is now superseded by
|
|
G4BoundingExtentScene. G4BoundingExtentScene deals directly with
|
|
extents, which makes it neater and more tightly estimates the overall
|
|
extent of the scene.
|
|
o G4PhysicalVolumeSearchScene is superseded by
|
|
G4PhysicalVolumesSearchScene. G4PhysicalVolumesSearchScene finds all
|
|
occurrences of a physical volume and returns a "findings vector".
|
|
Removed last ambiguous and misleading argument in the constructor.
|
|
o G4PseudoScene: added AddCompound(const G4Mesh&) method; if special mesh
|
|
rendering is set, this catches mesh candidates (certain types of
|
|
parameterisations) and avoids descending into the parameterisations.
|
|
o G4PhysicalVolumeModel: added SetSpecialMeshRendering(true) to avoid
|
|
traversing (certain types of) parameterisations (see above).
|
|
Eliminated goto statements.
|
|
o Allow arrow proportions to be greater than 1/100. Produces more visible
|
|
arrows for field visualisation and also obeys the input parameters more
|
|
closely.
|
|
+ externals/gl2ps:
|
|
o Fixed Coverity warnings in gl2ps.
|
|
+ gMocren:
|
|
o G4GMocrenFileSceneHandler: removed redundant header inclusion.
|
|
+ OpenGL:
|
|
o G4OpenGLSceneHandler: in AddCompound(..), use base class utility
|
|
G4VSceneHandler::Draw3DRectMeshAsDots(..); for parameterised tetrahedron
|
|
mesh, call default G4VSceneHandler::DrawTetMeshAsDots(); added missing
|
|
return statement for unimplemented cases; code tidy.
|
|
o Retired display list re-use and display list limit.
|
|
o Added G4gl2ps, a class frontend to tools/gl2ps intended to be used by
|
|
OpenGL and OpenInventor; does not depend directly of OpenGL.
|
|
o Have G4OpenGLViewer use the thread safe tools/gl2ps.
|
|
o Use StandardSpecialMeshRendering(mesh).
|
|
+ OpenInventor:
|
|
o G4OpenInventorViewer: removed misleading obsolete comment regarding
|
|
kernel visit in the case of a change in vis attribute modifiers.
|
|
o G4OpenInventorQtExaminerViewer: fixed compilation warning on Intel
|
|
compiler for shadowing data.
|
|
o Have G4OpenGLOpenInventorViewer and SoGL2PSAction using the thread safe
|
|
tools/gl2ps.
|
|
+ Qt3D
|
|
o G4Qt3DViewer: re-implemented wheelEvent() for perspective projection;
|
|
now taking into account the extent of the scene.
|
|
o G4Qt3DSceneHandler:in AddCompound(..), use base class utility
|
|
G4VSceneHandler::Draw3DRectMeshAsDots(..).
|
|
o G4Qt3DSceneHandler::AddCompound(): for parameterised tetrahedron mesh,
|
|
call default G4VSceneHandler::DrawTetMeshAsDots().
|
|
o G4Qt3DSceneHandler: updated AddPrimitive(..) to current usage.
|
|
Commented out line elimination in AddPrimitive(..), as too expensive for
|
|
a large polyhedron; allow the graphics-reps utilities to optimise this.
|
|
Use StandardSpecialMeshRendering(mesh).
|
|
o Fixed compilation warnings about shadowing.
|
|
+ ToolsGS:
|
|
o G4ToolsSGViewer: reimplement wheel_rotate() for perspective projection;
|
|
now taking into account the extent of the scene.
|
|
Currently, the ToolsSG viewer cannot draw trajectories in MT mode, so
|
|
in function SwitchToMasterThread() we draw any events that have been
|
|
kept by the vis manager. It fixes an issue where plots were being drawn
|
|
twice.
|
|
o Reactivate G4ToolsSGQtGLES::IsUISessionCompatible(), paves way for
|
|
permitted instantiation of multiple TSG drivers.
|
|
o Access G4VVisCommand::G4VisManager pointer through static function
|
|
GetVisManager() to prevent DLL issues on Windows.
|
|
o G4ToolsSGSceneHandler: in AddPrimitive(), define dots as a single pixel;
|
|
Use GetMarkerSize() for circles and squares.
|
|
In AddCompound(): for parameterised tetrahedron mesh, call default
|
|
G4VSceneHandler::DrawTetMeshAsDots().
|
|
Adding warning message if plot cannot be found.
|
|
In SetPlotterHistograms(), suppressed "/control/verbose" messages for
|
|
"/analysis/*/get*" commands.
|
|
In AddPrimitive(..), comment out common line elimination, as too
|
|
expensive for a large polyhedron; allow the graphics-reps utilities to
|
|
optimise this. Use StandardSpecialMeshRendering(mesh).
|
|
o Changed namespace for g4tools code from "tools" to "toolx" for externals.
|
|
+ Vtk:
|
|
o Moved setting of G4VIS_USE_VTK_QT flag to "interfaces" module.
|
|
|
|
o Data Sets:
|
|
---------
|
|
+ G4EMLOW-8.1:
|
|
o Added DNA files for the RPWBA models.
|
|
+ G4NDL-4.7:
|
|
o Updated "ThermalScattering" component, obtained from thermal scattering
|
|
data from JEFF-3.3, and adding the ENDF/BVIII-0 materials not in
|
|
JEFF-3.3, coupled to JEFF-3.3 nuclear cross-sections.
|
|
|
|
o Examples:
|
|
--------
|
|
+ Updated reference outputs, macros, READMEs and scripts.
|
|
+ advanced/air_shower
|
|
o Define all material properties in order of increasing energy.
|
|
+ advanced/amsEcal
|
|
o Prefer pointer to 'const G4Material' where possible.
|
|
+ advanced/brachytherapy
|
|
o Migration to C++11/14/17 features.
|
|
+ advanced/ChargeExchangeMC
|
|
o CexmcHadronicProcess: disabled integral method, as not applicable to
|
|
this example.
|
|
+ advanced/eRosita
|
|
o Replaced getenv() calls for data variables with G4FindDataDir().
|
|
+ advanced/hadrontherapy
|
|
o Prefer pointer to 'const G4Material' where possible.
|
|
+ advanced/ICRP110_HumanPhantoms
|
|
o Use special mesh rendering.
|
|
o Corrected error in reading the first voxels (in x=0, y=0).
|
|
o Migration to C++11/14/17 features.
|
|
+ advanced/iort_therapy
|
|
o Simplified calls to SetProductionCut().
|
|
+ advanced/microbeam
|
|
o Moved back to original switching field value.
|
|
+ advanced/STCyclotron
|
|
o Removed no-op lines; simplified calls to SetProductionCut().
|
|
+ basic/B3
|
|
o Set new analysis file name for the second run in run2.mac to avoid
|
|
overwriting the output from the first run.
|
|
+ extended/electromagnetic/TestEm3
|
|
o Prefer pointer to 'const G4Material' where possible.
|
|
+ extended/electromagnetic/TestEm5
|
|
o Allow changing the gun position via UI command.
|
|
+ extended/electromagnetic/TestEm9
|
|
o Updated all user actions: more correct count of creator processes;
|
|
use C++11 keywords; removed not needed headers; moved ScoreNewTrack(..)
|
|
from Tracking to Stepping action class.
|
|
+ extended/electromagnetic/TestEm15
|
|
o Added description of UI commands to control G4BetheHeitler5DModel.
|
|
+ extended/eventgenerator/particleGun
|
|
o Updated reference in PrimaryGeneratorAction2.
|
|
+ extended/exoticphysics/monopole
|
|
o G4MonopoleTransportation: set step status on volume boundary.
|
|
o Removed useless 'const_cast' of G4VSensitiveDetector.
|
|
+ extended/hadronic/Hadr03
|
|
o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
|
|
+ extended/hadronic/Hadr05
|
|
o Prefer pointer to 'const G4Material' where possible.
|
|
o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
|
|
+ extended/hadronic/Hadr06
|
|
o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
|
|
+ extended/hadronic/Hadr07
|
|
o TrackingAction: print ions with zero meanLife.
|
|
o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
|
|
+ extended/hadronic/NeutronSource
|
|
o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
|
|
+ extended/hadronic/ParticleFluence
|
|
o New set of examples implementing different setups showing how to score
|
|
particle fluences (Sphere, Concentric Spheres, Layer, Calo).
|
|
+ extended/medical/dna/chem4
|
|
o Added macro commands to control chemical molecules and reactions.
|
|
o Minor correction for reaction type in macro file beam.in.
|
|
o Use thread-local flag in G4VMoleculeCounter.
|
|
+ extended/medical/dna/chem5
|
|
o Use thread-local flag in G4VMoleculeCounter.
|
|
+ extended/medical/dna/chem6
|
|
o Adding condition for only one event, to avoid potential FPE crash.
|
|
o Added PhysicsListMessenger.
|
|
o Added short chemical reaction list.
|
|
o Use thread-local flag in G4VMoleculeCounter.
|
|
o Added missing headers inclusion for self-consistency.
|
|
+ extended/medical/dna/dnaphysics
|
|
o In main(), enable visualisation only in interactive mode;
|
|
use G4RunManagerFactory.
|
|
o PhysicsList: added RadioactiveDecayPhysics.
|
|
+ extended/medical/dna/microyz
|
|
o Added UI commands for TrackerSD radius selection.
|
|
o Added missing headers inclusion for self-consistency.
|
|
+ extended/medical/dna/moleculardna
|
|
o New example showing how to simulate physics, physico-chemistry and
|
|
chemistry processes in DNA geometries, for simulating DNA damage.
|
|
+ extended/medical/dna/scavenger
|
|
o Use thread-local flag in G4VMoleculeCounter.
|
|
+ extended/medical/dna/spower
|
|
o In main(), enable visualisation only in interactive mode;
|
|
use G4RunManagerFactory.
|
|
+ extended/optical/OpNovice2
|
|
o Added new macro complexRindex.mac, using dielectric-metal surface with
|
|
the surface having a complex index of refraction.
|
|
o Added new histograms to record separately Fresnel reflection, TIR,
|
|
absorption, etc.
|
|
o Use new histos to plot spike reflection/absorption vs angle on surface
|
|
(useful for complex refractive index).
|
|
o PrimaryGeneratorMessenger: fixed command /opnovice2/gun/randomDirection.
|
|
Based on GitHub PR#33 (https://github.com/Geant4/geant4/pull/33).
|
|
o Added local SteppingVerbose to print velocity with /tracking/verbose 1.
|
|
+ extended/parallel/MPI
|
|
o Removed use of obsolete G4DeveloperAPI functions from CMake script.
|
|
o Changed namespace for g4tools code from "tools::mpi" to "toolx::mpi".
|
|
+ extended/parameterisations/Par04
|
|
o Added python training scripts.
|
|
o Added model conversion to ONNX and LWTNN to the training script.
|
|
o Fixed warnings and lwtnn macro.
|
|
o Changed visualization scripts for fast simulation.
|
|
o Added new control histograms.
|
|
o Changed extension of macros from .in to .mac.
|
|
+ extended/radioactivedecay/Activation
|
|
o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
|
|
+ extended/radioactivedecay/rdecay01
|
|
o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
|
|
|
|
----------------------------------------------------------------------------
|
|
|