diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 4ca7e998542..00000000000
--- a/.gitignore
+++ /dev/null
@@ -1,337 +0,0 @@
-# 1. Specific Geant4 ignores
-#======================================================================
-# i. Subprojects that may be cloned for testing
-#======================================================================
-/benchmarks/
-/verification/
-
-#======================================================================
-# ii. Formatting
-#======================================================================
-
-# ignore any hidden clang-format files
-*/.clang-format
-/format-original.txt
-/format-modified.txt
-
-#!/GitUtilities/geant4-clang-format
-
-# 2. System temporaries
-#======================================================================
-# i. Linux
-#======================================================================
-*~
-
-# temporary files which can be created if a process still has a handle open of a deleted file
-.fuse_hidden*
-
-# KDE directory preferences
-.directory
-
-# Linux trash folder which might appear on any partition or disk
-.Trash-*
-
-# .nfs files are created when an open file is removed but is still being accessed
-.nfs*
-
-#======================================================================
-# ii. macOS
-#======================================================================
-# General
-.DS_Store
-.AppleDouble
-.LSOverride
-
-# Icon must end with two \r
-Icon
-
-
-# Thumbnails
-._*
-
-# Files that might appear in the root of a volume
-.DocumentRevisions-V100
-.fseventsd
-.Spotlight-V100
-.TemporaryItems
-.Trashes
-.VolumeIcon.icns
-.com.apple.timemachine.donotpresent
-
-# Directories potentially created on remote AFP share
-.AppleDB
-.AppleDesktop
-Network Trash Folder
-Temporary Items
-.apdisk
-
-#======================================================================
-# iii. Windows
-#======================================================================
-# Windows thumbnail cache files
-Thumbs.db
-ehthumbs.db
-ehthumbs_vista.db
-
-# Dump file
-*.stackdump
-
-# Folder config file
-[Dd]esktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Windows Installer files
-*.cab
-*.msi
-*.msix
-*.msm
-*.msp
-
-# Windows shortcuts
-*.lnk
-
-
-3. Text Editor/IDE
-#======================================================================
-1. Eclipse
-#======================================================================
-.metadata
-bin/
-tmp/
-*.tmp
-*.bak
-*.swp
-*~.nib
-local.properties
-.settings/
-.loadpath
-.recommenders
-
-# External tool builders
-.externalToolBuilders/
-
-# Locally stored "Eclipse launch configurations"
-*.launch
-
-# PyDev specific (Python IDE for Eclipse)
-*.pydevproject
-
-# CDT-specific (C/C++ Development Tooling)
-.cproject
-
-# CDT- autotools
-.autotools
-
-# Java annotation processor (APT)
-.factorypath
-
-# PDT-specific (PHP Development Tools)
-.buildpath
-
-# sbteclipse plugin
-.target
-
-# Tern plugin
-.tern-project
-
-# TeXlipse plugin
-.texlipse
-
-# STS (Spring Tool Suite)
-.springBeans
-
-# Code Recommenders
-.recommenders/
-
-# Annotation Processing
-.apt_generated/
-
-# Scala IDE specific (Scala & Java development for Eclipse)
-.cache-main
-.scala_dependencies
-.worksheet
-
-# VSCode
-.vscode
-
-# QtCreator
-CMakeLists.txt.user
-
-#======================================================================
-# ii. Emacs
-#======================================================================
-# -*- mode: gitignore; -*-
-*~
-\#*\#
-/.emacs.desktop
-/.emacs.desktop.lock
-*.elc
-auto-save-list
-tramp
-.\#*
-
-# Org-mode
-.org-id-locations
-*_archive
-
-# flymake-mode
-*_flymake.*
-
-# eshell files
-/eshell/history
-/eshell/lastdir
-
-# elpa packages
-/elpa/
-
-# reftex files
-*.rel
-
-# AUCTeX auto folder
-/auto/
-
-# cask packages
-.cask/
-dist/
-
-# Flycheck
-flycheck_*.el
-
-# server auth directory
-/server/
-
-# projectiles files
-.projectile
-
-# directory configuration
-.dir-locals.el
-
-#======================================================================
-# iii. KDevelop
-#======================================================================
-*.kdev4
-.kdev4/
-
-#======================================================================
-# iv. Kate
-#======================================================================
-.*.kate-swp
-.swp.*
-
-#======================================================================
-# v. Vim
-#======================================================================
-[._]*.s[a-v][a-z]
-[._]*.sw[a-p]
-[._]s[a-rt-v][a-z]
-[._]ss[a-gi-z]
-[._]sw[a-p]
-
-# Session
-Session.vim
-
-# Temporary
-.netrwhist
-*~
-# Auto-generated tag files
-tags
-# Persistent undo
-[._]*.un~
-
-#======================================================================
-# vi. VisualStudio/Code
-#======================================================================
-.vscode*
-
-#======================================================================
-# vii. Xcode
-#======================================================================
-## Build generated
-build/
-DerivedData/
-
-## Various settings
-*.pbxuser
-!default.pbxuser
-*.mode1v3
-!default.mode1v3
-*.mode2v3
-!default.mode2v3
-*.perspectivev3
-!default.perspectivev3
-xcuserdata/
-
-## Other
-*.moved-aside
-*.xccheckout
-*.xcscmblueprint
-
-#======================================================================
-# viii. QtCreator
-#======================================================================
-CMakeLists.txt.user
-
-#=====================================================================
-# CLion
-#=====================================================================
-.idea*
-cmake-build*
-
-4. Development/Build Generated
-#======================================================================
-# i. CMake
-#======================================================================
-CMakeCache.txt
-CMakeFiles
-CMakeScripts
-Testing
-Makefile
-cmake_install.cmake
-install_manifest.txt
-compile_commands.json
-CTestTestfile.cmake
-
-#======================================================================
-# ii. C/C++
-#======================================================================
-# Prerequisites
-*.d
-
-# Compiled Object files
-*.slo
-*.lo
-*.o
-*.obj
-
-# Precompiled Headers
-*.gch
-*.pch
-
-# Compiled Dynamic libraries
-*.so
-*.dylib
-*.dll
-
-# Fortran module files
-*.mod
-*.smod
-
-# Compiled Static libraries
-*.lai
-*.la
-*.a
-*.lib
-
-# Executables
-*.exe
-a.out
-*.app
-
-# Debug files
-*.dSYM/
-*.su
-*.idb
-*.pdb
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 50796f4d41d..f21028a744a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,7 +16,7 @@ endif()
#-----------------------------------------------------------------------
# - Define CMake requirements and override make rules as needed
#
-cmake_minimum_required(VERSION 3.16...3.24)
+cmake_minimum_required(VERSION 3.16...3.27)
# - Make overrides for default flags, so they appear in interfaces
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/G4MakeRules_cxx.cmake)
diff --git a/ReleaseNotes/Patch.11.1-3.txt b/ReleaseNotes/Patch.11.1-3.txt
new file mode 100644
index 00000000000..9dc35ea7cfb
--- /dev/null
+++ b/ReleaseNotes/Patch.11.1-3.txt
@@ -0,0 +1,77 @@
+
+ Geant4 11.1 - patch-03 Release Notes
+ ------------------------------------
+
+ 10 November 2023
+
+List of fixes included in this public patch since the public release 11.1.2:
+
+ o Configuration:
+ -------------
+ + CMake
+ o Export non-cache variables to Geant4PackageCache to support CMake>=3.27.
+ Addresses problem report #2556.
+
+ o Externals:
+ ---------
+ + CLHEP
+ o Added missing shootArray() implementation in RandPoissonQ.
+ + G4tools
+ o Updated to version 6.1.1; fixed compilation warnings on Intel/icx
+ compiler and clang-15.
+ + PTL
+ o Disabled optimization of ThreadPool::execute_thread() on Apple/Intel
+ builds. Addressing problem report #2564.
+
+ o Global:
+ ------
+ + Updated date and version for 11.1.3.
+
+ o Intercoms:
+ ---------
+ + Added missing converter LtoS() in G4UImessenger.
+
+ o Physics Lists:
+ -------------
+ + constructors/decay
+ o G4RadioactiveDecayPhysics: replaced G4RadioactiveDecay with
+ G4Radioactivation to allow running also in biasing mode.
+
+ o Processes - Electromagnetic:
+ ---------------------------
+ + dna
+ o Use std::erfc() to avoid precision loss.
+ Fix imported from GitHub PR#58 (https://github.com/Geant4/geant4/pull/58).
+ o Removed unused header inclusion.
+ + low energy
+ o Fix for (rare) infinite loops in G4PenelopeComptonModel.
+ Reported in GitHub PR#61 (https://github.com/Geant4/geant4/pull/61).
+ + utils
+ o In G4TransportationWithMsc, always update momentum direction.
+ o Fixed computation of Birks saturation for compounds in G4EmSaturation.
+ Addressing problem report #2572.
+ + xrays
+ o Added protection against potential infinite loops in G4Cerenkov.
+ Addressing problem report #2555.
+
+ o Examples:
+ --------
+ + extended/parameterisations/Par04
+ o Bump tensorflow to 2.11.1.
+ Fixes GitHub PR#55 (https://github.com/Geant4/geant4/pull/55)
+ and GitHub PR#60 (https://github.com/Geant4/geant4/pull/60).
+
+ ----------------------------------------------------------------------------
+
+ Technical Notes
+ ---------------
+
+ o This patch should be applied on top of release 11.1 series.
+ o Technical notes distributed for release 11.1 are also applicable and
+ valid for this patch.
+
+The code and rebuilt binary libraries for release 11.1.3 are available
+through the Geant4 "Download" Web page.
+
+Please refer to the Geant4 User Documentation for further information about
+using Geant4.
diff --git a/ReleaseNotes/ReleaseNotes.11.2.html b/ReleaseNotes/ReleaseNotes.11.2.html
new file mode 100644
index 00000000000..eaf4530acd9
--- /dev/null
+++ b/ReleaseNotes/ReleaseNotes.11.2.html
@@ -0,0 +1,2746 @@
+
+
+Geant4 11.2 Release Notes
+
+
+
+
+
+
+
+
+
+Geant4 11.2 Release Notes
+
+
+
+
+
+December 8th, 2023
+
+
+
+
+
+
+
+The code and binary libraries for the supported systems are available
+through our Source
+Code Web page.
+
+
+We are grateful for the efforts of Geant4 users who have provided
+ detailed feedback or comprehensive reports of issues.
+ We thank in particular those who have contributed corrections,
+ improvements or developments included in this release.
+
Windows/10 with Visual C++ 14.29 (Visual Studio 2019)
+
+
+
+
+
+
+
+
+
2. Supported CLHEP, VecGeom and PTL versions
+
+This release of Geant4 has been verified with
+CLHEP, release 2.4.7.1.
+Use of a different CLHEP version may cause incorrect simulation results.
+NOTE: an internal module of the relevant CLHEP classes is provided and can be
+used as alternative to an external CLHEP library installation.
+A configuration option allows a Geant4 installation to use the
+VecGeom Library
+primitives, to replace the original Geant4 solids.
+VecGeom version 2.0.0-rc2 or 1.2.6 have been tested when using
+such configuration.
+PTL version 2.3.3 is required for external installation of the
+PTL tasking library.
+CMake 3.16 is the minimum version required to build Geant4.
+
+
+
+
+
+
+
+
3. Items for migration of the user code
+
+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.
+
+
+General
+
+
+
Added support for declaring headers of a source code module private.
+ Headers declared private are not installed. Partial refactoring of
+ modules.
+
Removed deprecated GNUmake scripts for libraries build.
+
+
+
+Geometry, Fields and Transportation
+
+
+
The inheritance level for G4TouchableHistory has been removed, simplifying
+ touchables handling. G4VTouchable is now a simple typedef of
+ G4TouchableHistory, therefore forward declarations of G4VTouchable
+ in the code will have to be promoted to concrete inclusion of the
+ related header file.
+
Unused concrete touchable types G4GRSSolid and G4GRSVolume have been
+ retired and are no longer available.
+
+
+
+Electromagnetic and optical physics
+
+
+
G4NeutrinoPhysics constructor is now added.
+
New dataset G4EMLOW-8.5 is required and should be used.
+
+
+
+Hadronic physics
+
+
+
The default value of the time threshold for radioactive decays of ions -
+ above which these decays are ignored - has been changed, from
+ 10^27 ns (i.e. about twice the age of the universe) to
+ 1 year. For applications where radioactive decays of ions do
+ play an important role, it is recommended to increase the default time
+ threshold of these decays to a very high value, e.g. 1.0e+60 years.
+ This can be done in either one of the following three ways:
+
+
Via UI command, e.g.
+ /process/had/rdm/thresholdForVeryLongDecayTime 1.0e+60 year,
+ (command to be used after /run/initialization);
+
Via C++ interface, e.g.
+ G4HadronicParameters::Instance()->SetTimeThresholdForRadioactiveDecay( 1.0e+60*CLHEP::year )
+ (to be placed in the main program before run initialization);
+
Via the second parameter of the constructor of the class
+ G4RadioactiveDecay (for analogue mode only) or G4Radioactivation
+ (for both analogue or biased mode), e.g.
+ G4RadioactiveDecay( "RadioactiveDecay", 1.0e+60*CLHEP::year )
+ or G4Radioactivation( "Radioactivation", 1.0e+60*CLHEP::year )
+ (this is for custom physics lists, before run initialization).
+
+ In the examples, the first method is adopted.
+
Renamed classes for capture from G4ParticleHPCapture to G4NeutronHPCapture.
+ Removed unused G4NeutronHP*.hh headers for elastic and inelastic.
+
+
+
+Persistency
+
+
The build of the persistency library, G4Persistency, has been split into
+ G4mctruth, G4geomtext and (optional) G4gdml libraries.
+
+
+
+Visualization and Modeling
+
+
+
In order to allow support of Qt6, OGL is temporarily diverted to TSG by default.
+ If VTK is requested, due to compatibility issues, all other drivers that use OpenGL
+ - GLES "toolssg" drivers and all OpenGL drivers - are not registered automatically
+ by G4VisExecutive.
+
+
+
+Data Sets
+
+
+
This release introduces new data set versions.
+ Please see the corresponding details in
+ Section 9 of this document.
+
+
New data set versions: G4EMLOW-8.5, G4ABLA-3.3,
+ G4INCL-1.2.
+
In order to use ParticleHP for charged particles
+ (protons, deuterons, tritons, He3 and alphas), an optional data
+ set G4TENDL-1.4 is required, and can be optionally
+ downloaded in addition.
+
+
+
+
+
+
+
+
+
4. New Developments and Capabilities
+
+General
+
+
First implementation of G4SubEvent and related mechanism for registration
+ and merging in a run.
+
Reviewed/simplified stream buffer and I/O classes.
+
+
+Analysis
+
+
Added new G4AnalysisManager functions for deleting selected histograms,
+ profiles and n-tuples, with related UI commands.
+
G4AnalysisManager functions GetNof[Hn|Pn|Ntuple]s() can be called
+ with a new, optional, Boolean argument onlyIfExist.
+
Added UI commands for creating n-tuple.
+
+
+Geometry & Field
+
+
New Quantum State Simulation (QSS) integration method, an alternative
+ method of integration offering built-in interpolation capability and
+ enabling faster finding of the intersection of the trajectory with
+ surfaces.
+
Added new G4VNavigation common navigation interface class and streamlined
+ code in navigation classes to use the new common interface.
+
Added new G4SafetyCalculator class, auxiliary to G4Navigator; used in
+ G4Navigator in ComputeSafety() to avoid saving/restoring
+ state.
+
+
+Materials
+
+
New G4ElementDataRegistry management class for shared data per element in
+ materials.
+
In G4MaterialPropertiesTable, improved building of vectors of material
+ property names.
+
In G4NistMaterialBuilder, all liquid materials are marked as
+ kLiquid.
+
+
+Electromagnetic physics
+
+
Fixed single scattering per region, active inside the region
+ and disabled outside.
+
Removed most calls to environment variables in electromagnetic physics
+ classes
+
In G4UrbanMscModel, reduced number of re-computations of safety.
+
Reviewed initialisation of static data in G4SeltzerBergerModel and
+ G4eBremsstrahlungRelModel classes.
+
In G4LivermorePhotoElectricModel, updated initialisation of static tables
+ for thread safety and setting of shell cross-sections.
+
New process G4XrayReflection to describe X-ray surface scattering based
+ on data provided in G4EMLOW-8.5.
+
New class G4MicroElecCapture for better estimation of the non ionizing
+ energy deposition.
+
Rewritten G4DNARuddIonisationExtendedModel G4DNA model, applicable for
+ scaled energy interval from 100 eV to 100 MeV.
+
+
+Hadronic physics
+
+
Introduced a new, alternative set of parameters for the Fritiof (FTF) string
+ model, meant to overcome the problem of too optimistic (i.e. narrow) pion
+ shower energy resolutions in ATLAS calorimeters with respect to test-beam
+ data. This new FTF tune is enabled only in the reference physics list
+ FTFP_BERT_ATL.
+
In G4RadioactiveDecay, changed default threshold for the time beyond
+ which radioactive decays are ignored, from twice the age of the
+ Universe to one year. The code has also been reviewed to use only one
+ table of radioactive decay channels and streamlined code for thread
+ safety.
+
Major extension of the INCLXX model to handle antiproton annihilation
+ at rest and in-flight. All INCLXX-based physics lists now use INCLXX for
+ the antiproton annihilation at rest.
+ Note that, for the time being, for in-flight antiproton annihilation, FTFP
+ is still used in all physics lists.
+
Implemented an accurate modeling of elastic resonant scattering in heavy
+ nuclei by the use of the Doppler Broadening Rejection Correction (DBRC)
+ algorithm. By default, this treatment is not activated; it can be switched
+ on via the UI command: /process/had/particle_hp/use_DBRC true.
+
Implemented interface allowing the coupling between Binary Cascade (BIC)
+ and ABLA, i.e. using BIC for the cascade and then ABLA for the nuclear
+ de-excitation.
+
Extended Bertini model to allow the use of ABLA as alternative post-cascade
+ nuclear de-excitation (the default de-excitation remains unchanged).
+
New cross-section class G4ChargeExchangeXS for charge exchange process.
+
Reviewed and updated the fermi_breakup model.
+
Safer initialisation of static data in hadronic cross-section classes.
+ Added new HP cross-section classes.
+
Added classes for QMD model optimised for light ions, recommended
+ for medical applications.
+
+
+Particles
+
+
Particle properties have been updated according to PDG-2023.
+
+
+Persistency
+
+
Added possibility to set alternative grammar for schema validation
+ while reading a GDML file.
+
+
+Physics Lists
+
+
New physics list QGSP_BIC_HPT, similar to QGSP_BIC_HP, but with
+ special treatment of elastic scattering of thermal neutrons activated.
+
Added new physics lists to the physics factory, for HPT variants
+ (i.e. with special treatment of elastic scattering of thermal neutrons)
+ of physics lists with HP already present (FTFP_BERT_HPT,
+ QGSP_BERT_HPT, QGSP_BIC_HPT, QGSP_BIC_AllHPT, FTFP_INCLXX_HPT,
+ QGSP_INCLXX_HPT, Shielding_HPT, and ShieldingM_HPT).
+
Introduced new physics list names to the physics factory, Shielding_HP and
+ ShieldingM_HP, as alias of, respectively, Shielding and ShieldingM.
+
Used in the FTFP_BERT_ATL physics list a new, specific, FTF tune meant to
+ overcome the problem of too optimistic (i.e. narrow) pion shower energy
+ resolutions in ATLAS calorimeters with respect to test-beam data.
+ Note: for all other reference physics lists (e.g. FTFP_BERT), the default
+ set of FTF parameters is applied; in order to enable the new tune in these
+ physics lists, one can use, before initialization, either the UI command:
+ /process/had/models/ftf/selectTuneByName energy-resolution-tune2023-v0
+ or through C++ interface:
+ G4FTFTunings::Instance()->SetTuneApplicabilityState(4, 1).
+
In INCLXX-based reference physics lists (e.g. FTFP_INCLXX, QGSP_INCLXX, etc.),
+ INCLXX is used for antiproton annihilation at rest (instead of FTFP as
+ before).
+ Note: in order to use INCLXX for antiproton annihilation at rest in other
+ physics lists, one need to modify the source code of the physics list by
+ replacing the class G4StoppingPhysics with G4StoppingPhysicsWithINCLXX.
+
Added new physics constructor for neutrino physics, G4NeutrinoPhysics,
+ and its messenger. New constructors G4ChargeExchangePhysics and
+ G4NeutrinoPhysics may be added on top of any modular Physics List.
+ Both constructors have messengers with UI commands allowing to configure
+ these new physics processes.
+
Added a Boolean parameter to the Shielding physics list constructor
+ which allows to use the new G4LightIonQMD model instead of the default
+ QMD model.
+ Note: the new model G4LightIonQMD provides more precise modelling than
+ QMD for medical applications; for other applications, e.g. shielding,
+ physics validation is needed to compare the two models.
+
New physics list QBBC_ABLA, behaving as QBBC, but using the ABLA model
+ for nuclear de-excitation, instead of precompound/de-excitation,
+ for charged pions and nucleons projectiles.
+ This is for testing, not yet recommended for physics studies.
+
+
+Processes - General
+
+
New submodule channeling, implementing fast-simulation channeling
+ model in oriented crystals with Baier Katkov method for the calculation of
+ radiation probability, radiation point and parameters of photon production
+ as well as spectrum accumulation.
+
+
+Visualization and Interfaces
+
+
First version of the TSG_[QT,X11,XT,WINDOWS]_ZB sub drivers, allowing for
+ interactive 3D rendering bypassing native graphics systems.
+
TSGQt driver temporarily enabled by default with OGL driver choice,
+ to allow support of Qt6.
+
Updated and extended Vtk visualization driver with new features and
+ fixes.
+
Supporting first implementation of a no-frills GUI-side scene tree
+ in the Qt GUI.
+
Implemented a more flexible way of choosing a graphics system for
+ visualisation, preserving the existing behaviour in all aspects.
+
Implemented generic cutaways in visualization. Clips, sections and
+ cutaways will now be available to *all* viewers (OpenGL still uses
+ OpenGL clip planes. Use another driver, e.g., TSG, to get "generic
+ cutaways").
+
Enabled first-level support for Qt6.
+ Fixed minimum supported version for Qt5 to be 5.9.
+
In G4UIQt, implemented right-click pop-up menu for touchables in new
+ scene tree.
+
+
+Examples
+
+
New Geant4-FLUKA interface and two hadronic examples, providing access to
+ FLUKA-Cern hadron-nucleus inelastic physics.
+
New advanced example xray_TESdetector of the application of Geant4
+ in a space environment. It represents an x-ray detector derived from the
+ X-IFU, the X-ray spectrometer designed and developed by the European Space
+ Agency (ESA) for use on the ATHENA telescope
+
New advanced example xray_SiliconPoreOptics, demonstrating an
+ application of Geant4 in space environment. The geometry represents a
+ single reflective pore used to simulate on a smaller scale the effect
+ of the millions of pores forming the mirror of the ATHENA Silicon Pore
+ Optics (SPO).
+
New extended example radiobiology, realized for dosimetric and
+ radiobiological applications of proton and ion beams.
+
New advanced example dsbandrepair, a Geant4-DNA application for
+ evaluating the early radiation-induced DNA damage.
+
New Geant4-DNA example UHDR showing how to activate the mesoscopic
+ model in chemistry. It allows to simulate chemical reactions longtime
+ (beyond 1 us) of post-irradiation.
+
New Geant4-DNA example dnadamage2 providing scoring of plasmid DNA
+ strand breaks using the IRT method.
+
New extended Vtk specific example demonstrating new features only available
+ in the VTK viewer.
+
+
+
+
+
+
+
+
5. Expected effects on physics and computing performance
+
+Electromagnetic physics
+
+
Consistent with measurements obtained in Geant4 11.1 series.
+
+
+Hadronic physics
+
+
The hadronic showers remain the same as in Geant4 11.1 series.
+
Physics results of HP-based physics lists are expected to remain unchanged
+ (i.e. the same as Geant4 11.1 series), regardless several technical code
+ improvements; the only exception is when using QGSP_BERT_HP, for which
+ there might be some changes in the physics results (validation is still
+ on-going).
+
+
+PTL threading library
+
+
The PTL::ThreadPool::execute_thread() member function is compiled
+ unoptimised on Intel-based macOS systems to avoid GPFLT errors (see Bugzilla
+ ticket #2564).
+ No significant performance degradation is observed or expected.
+
+
+
+
+
+
+
+
+
6. Known Run-Time Problems and Limitations
+For a complete list of outstanding run-time problems and to submit any
+problem you may find while running this version of Geant4, please refer
+to the
+Geant4 Problem
+Reporting System.
+
+
+
+
+
+
+
+
7. Compilation Warnings
+
+There may be a few compilation warnings on some platforms.
+We do not believe that any of these lead to incorrect run-time behaviour.
+
+
+
+
+
+
+
+
8. Geant4 Software License
+
+A Software License applies to the Geant4 code.
+Users must accept this license in order to use it.
+The details and the list of copyright holders is available at
+http://cern.ch/geant4/license
+and also in the text file LICENSE distributed with the source code.
+
+
+
+
+
+
+
+
9. Detailed list of changes and fixes
+
+These are the main new features/fixes included in this release since the
+last patched public release (for more detailed lists of fixes/additions,
+please refer to the corresponding History files provided in most packages):
+
+
Added support for declaring headers of a source code module private.
+ Headers declared private are not installed; geant4_module_check reports
+ an inconsistency if a private header is used non-privately.
+
Updated Qt MOC application for G4UI implementation in place of
+ G4UIbasic/G4UIcommon.
+
Streamlined VTK cmake components.
+
No longer link to QtPrintSupport, which is not used in the
+ toolkit.
+
Prefix ZLIB/EXPAT variables with "G4" to prevent clash with VTK's
+ own internal find of these packages.
+
Export QT_VERSION value to GNUmake setup script.
+
Support finding and use of Qt6 on request for beta testing.
+ Fixed minimum supported version for Qt5; requiring Qt5 >= 5.9 if Qt5
+ support is selected.
+ Find and refind Qt6OpenGLWidgets module in Qt6 for use by Qt/OpenGL
+ consumers. Find and refind Qt6OpenGLWidgets module in Qt6 for use
+ by Qt/OpenGL consumers.
+
Handling TOOLSSG_[X11,XT,WINDOWS,QT]_ZB vis drivers.
+
Export VTK_DIR and QtX_DIR to package cache to assist in refinding
+ both.
+
Updated VTK module dependencies for geometry IO and updated module
+ init.
+
Added new capabilities to geant4_module_check.py script: given a
+ module, print list of modules that depend on it; print all modules
+ sorted in descending order of the number of modules using them;
+ show which headers from linked modules are included by a module in
+ its usage requirements output.
+
Updated configuration scripts for splitting of G4persistency
+ library.
+
Removed setting of -D flags in Geant4Config to enable visualisation
+ drivers. Libraries now export compile definitions for what they
+ support to move to a use on link model.
+
Removed obsolete and confusing GEANT4_BUILD_TESTS option and
+ configuration.
+
Make linking a source code module to a final Geant4 library a
+ cmake-time error.
+
Allow source code modules to have an AUTOMOC property and promote
+ this to consuming target to remove hardcoding of Qt-using
+ modules.
+
Use FindPython in place of deprecated FindPythonInterp in
+ FindStatTest.
+
Print md5sum in coreutils format for compatibility with busybox.
+
Bump minimum VecGeom version to 1.2.6.
+
New data sets G4EMLOW-8.5, G4ABLA-3.3, and
+ G4INCL-1.2.
+
Updated tag-IDs for 11.2.
+
+
GNUMake
+
+
Removed deprecated GNUmake scripts for libraries build.
+
Updated UI/interfaces include paths to reflect new organization.
+
Updated system scripts for Qt settings: removed Qt4 and added Qt6.
+
Updated scripts for splitting of the G4persistency library.
+
No longer link to QtPrintSupport, which is not used in the
+ toolkit.
Added new G4AnalysisManager functions for deleting selected
+ histograms, profiles and n-tuples, with related UI commands:
+ /analysis/[hn|pn]/delete id [keepSetting].
+
Added GetNtuple() functions in G4GenericAnalysisManager,
+ that in difference from output specific managers, returns n-tuple
+ booking, that is common to all output types.
+
Added UI commands for creating n-tuple:
+ /analysis/ntuple/create name title,
+ /analysis/ntuple/create[I|F|D|S]Column name and
+ /analysis/ntuple/finish.
+
Added clearing of file data in DeleteEmptyFiles(). This
+ prevents from deleting non-empty files created/filled in previous
+ runs but not used in new runs.
+
Internal changes:
+
+
Moved 'CompressionLevel' data/functions members from
+ G4AnalysisManagerState to G4BaseFileManager to make it available
+ in helper classes which do not have access to state. Compression
+ level (default 1) is now used also when writing a Root histogram
+ in an extra file and writing Hdf5 n-tuples.
+
Postpone creating G4HnMessenger after G4THnMessenger to get better
+ command ordering in the 'help' tree.
+
Moved setAxisLog command from G4THnMessenger to G4HnMessenger
+ as it applies to function defined in its associated class.
+
Moved kMaxDim constant from G4THnMessenger in
+ G4AnalysisUtilities as needed also at other places.
+
Moved kDimN constants from G4VAnalysisManger in
+ G4AnalysisUtilities and replaced all hard-wired literals '1', '2'
+ and '3' with these.
+
Moved Set/GetDefaultFileType() methods and UI command in
+ G4VAnalysisManager and G4AnalysisMessenger (from
+ G4GenericAnalysisManager/Messenger). This allows to support omitting
+ file extension also when setting file names to
+ histograms/profiles.
+
Removed G4GenericAnalysisMessenger.
+
Supressed warning from 'CreateTFile' when file is already
+ existing.
+
Changed verbosity level for "merge" information from 1 to 2.
+
Added warnings about failure in *HnFileManager::WriteExtra
+ where missing.
+
Use forward declarations for templated classes where suitable.
+
Use "G4" prefixed version of EXPAT/ZLIB CMake variables.
+
+
Fixes:
+
+
Do not create setAxis* commands for idim = 4.
+
Fixed implementation of set commands per dimension:
+ /analysis/hn|pn/setX|Y|Z. Addressing issue
+ reported in Geant4 forum.
Reorganised multiple material model of PTB. G4VDNAModel plays like a
+ data layer for multiple material models. The concrete models are
+ independent of G4DNAModelInterface.
+
G4DNARuddIonisationExtendedModel: rewrite of the model, applicable for
+ scaled energy interval from 100 eV to 100 MeV. If for an ion data is
+ not available, proton cross-section and effective charge are used,
+ sampling of delta-electron is done using the two regions regression
+ method. Sharing data between threads.
Introduced G4DNAMaterialManager to handle available DNA materials
+ and keep DNA cross-section data shared across threads.
+
Replaced string to material index and some code cleanup in PTB
+ models.
+
Added material pointer members for each concrete PTB models.
+
Code cleanup in G4DNAModelInterface for the model combination of
+ different materials.
+
Added PTB model data to G4DNAMaterialManager singleton.
+ Updated RegisterModel() function with new structure.
+
Added DNA cross-section to dna_option6.
+
Use analytical method for DNA material in option6, water is unchanged.
+ Minor correction for DNA material in option6.
+
Added time structure (pulsed beam) to water radiolysis
+ (G4VUserPulseInfo).
+
Corrected initial values of G4DNAEventScheduler.
+
Corrected 'fastercode' section for dna opt6.
+
Use analytical method for DNA material in option6, water is unchanged.
+ Minor correction for DNA material in option6.
+
Modified DNA cross-section file name, according to new data set.
+
In navigation classes, removed references to G4TouchableHistoryHandle,
+ which is now deprecated. Removed references to unused G4GRSSolid and
+ G4GRSVolume.
+
Applied core clang-tidy fixes, constructor/destructor modernization,
+ readability and logic for conditionals/Booleans.
+
Fixed Coverity defects for uninitialised scalar variables.
+
Fixed compilation warnings on macOS/XCode for implicit type
+ conversions.
+
Use G4FindDataDir to access data libraries in place of raw
+ getenv().
+
+
High Energy
+
+
G4GammaConversionToMuons, G4AnnihiToMuPair: removed
+ using namespace std and applied cling-tidy base fixes.
+
+
Low Energy
+
+
In G4LivermorePhotoElectricModel and G4LivermoreRayleighModel removed
+ calls to environment variables and use G4EmParameters method instead.
+ Added lock for reading data on the fly; minor code formatting.
+
G4LivermoreGammaConversionModel, G4LivermoreGammaConversion5DModel:
+ fixed Spline interpolation by calling FillSecondDerivatives().
+
G4LivermorePhotoElectricModel: updated initialisation of static tables
+ and setting of shell cross-sections. Use logarithmic search of bin for
+ free vectors, updated use of G4ElementData.
+ ore accurate check on atomic number Z to fix Coverity reports.
+
In G4LivermoreBremsstrahlungModel, do not setup LPM flag.
+
G4LowEWentzelVIModel: updated according to Coulomb scattering
+ models.
+
Use access to G4LEDATA via G4EmParameters for G4LivermoreComptonModel,
+ G4LivermoreGammaConversion5DModel and
+ G4LivermoreGammaConversionModel.
+
New class G4MicroElecCapture for better estimation of the non ionizing
+ energy deposition.
+
Simplification of weakly bound electrons treatment in
+ G4MicroElecInelasticModel_new, handled now similarly to core electrons
+ with limitEnergy equivalent to binding energy.
+ Updated SampleSecondaries(), and
+ RandomizeEjectedElectronEnergyFromCumulatedDcs().
+ Changed implementation of Interpolate() method to avoid
+ division by zero identified by Coverity.
+ Fixed potential problem at destruction.
+
G4MicroElecMaterialStructure: modification in GetLimitEnergy()
+ function to account for the changes in the treatment of weakly bound
+ electrons.
G4MicroElecCapture, G4MicroElecSurface: fixed compilation warnings for
+ implicit type conversions on XCode. Minor code cleanup (removed tabs,
+ formatting, use of nullptr...).
+
Fixed trivial reported Coverity defects in G4MicroElecLOPhononModel
+ and G4MicroElecSurface.
+
Minor code cleanup in G4MicroElecLOPhononModel.
+
Use G4FindDataDir to access data libraries in place of raw
+ getenv().
+
Applied clang-tidy and clang-format to Livermore code.
+
+
Muons
+
+
G4MuonToMuonPairProductionModel: updated usage of G4ElementData.
+
G4MuPairProductionModel, G4MuonToMuonPairProductionModel: updated
+ usage of G4ElementData; do not use IsMaster() to fill
+ sampling table; use only 5 2-D tables for sampling; code clean-up.
+
G4MuBremsstrahlungModel: moved filling of static data to constructor.
+
G4TablesForExtrapolator: define particle type when constructing muon
+ models. Do not delete intermediate G4VEmModels
+ created for initialisation.
+
+
Pii
+
+
Fixed few reported Coverity defects.
+
+
Standard
+
+
G4UrbanMscModel: check IsLocked() method before definition of lateral
+ displacement algorithm and positron correction; code optimisations and
+ formatting. Reduced number of re-computations of safety.
+ Tuned step limit parameterisation for the case of enabled optional
+ algorithm of lateral displacement. Default tracking unaffected.
+ Rewritten optional method SampleDisplacementNew(); this
+ method is not used so far in any EM physics configurations by default
+ but may be enabled via UI command and/or C++ interface.
+
G4ASTARStopping, G4PSTARStopping, G4IonICRU73Data: use logarithmic
+ search of bin for free vectors.
+
G4CoulombScattering: added SetCombined() method allowing the user to
+ configure the process; improved code formatting and initialisation.
+ Added constructor with changed signature, which uses flag
+ isCombined instead of process name.
+ Added extra constructor to address all existing cases;
+ for pure single scattering, integral method type is changed and Spline
+ interpolation is used. Addressing problem report
+ #2530.
+
In G4VEmModel, do not delete G4ElementData; do not define LPM
+ flag.
+
Code cleanup in G4PAI* classes.
+
Removed use of std::getenv() from model classes, use G4EmParameters
+ instead.
+
G4eCoulombScatterinModel: improved initialisation and code
+ formatting.
+
G4BraggIonModel inherits from G4Bragg model; fixed stopping power
+ of heavy ions at moderate energies.
+
G4BraggModel, G4BraggIonModel: use proton stopping data for for all
+ ions except alpha; make data-sets pointers static.
+ Addressing problem report
+ #2532.
+
In G4BetheBlochModel, G4BraggIonModel and G4BraggModel, updating
+ effective charge of an ion at each step of simulation or at each call
+ to G4EmCalculator.
+
G4LindhardSorensenIonModel: use G4BraggModel for preliminary
+ computation of DEDX at initialisation for G4GenericIon instead of
+ G4BraggIonModel, which fixes a problem of low-energy ion tracking
+ recently introduced.
+
G4BetheHeitlerModel, G4PairProductionRelModel,
+ G4eBremsstrahlungRelModel, G4SeltzerBergerModel: reorganized
+ initialisation. Initialisation of static element data is performed
+ only once for the first object independently on how many objects of
+ this kind is created in a thread.
+ Fixes to Initialise() method, to have thread safe check if
+ a model is the first instance of the class; set lock and perform
+ initilisation of all static data.
+ Results of simulation are identical. Addressing problem report
+ #2543.
+
G4eBremsstrahlung, G4SeltzerBergerModel: avoid changing LPM flag at
+ initialisation; avoid repeating base class initialisation; improved
+ comments in code.
+
G4SeltzerBergerModel: use inheritance from G4VEmModel instead of
+ G4eBremsstrahlungRelModel; use 'applyOnce' approach to initialise
+ static data; code formatting.
+
G4eBremsstrahlungRelModel: use LPM flag from G4EmParameters and
+ improved comments in code. Use 'applyOnce' approach to initialise
+ static data. Fix for potential division by zero; use G4Pow.
+
G4WaterStopping, G4hIonisation: code clean-up.
+
G4ionIonisation: do not use G4WaterStopping; code clean-up.
+
Updated hadron/ion ionisation models; initialise stopping power data
+ once: PSTAR and ICRU90 in G4BraggModel, ASTAR in G4BraggIonModel,
+ ICRU73 and ICRU90 ion (Z>2) data in G4LindHardSorensenIonModel.
+
Use "G4" prefixed version of EXPAT/ZLIB CMake variables.
+
Requires data-set G4EMLOW-8.5.
+
+
Utils
+
+
G4EmParameters: added extra member and access method to
+ G4LEDATA path allowing checking of the environment variable
+ for the EM data only once. Added Get/Set method for a new integer
+ number used for logarithmic bin search in free vector.
+
G4EmParametersMessanger: added UI command
+ /process/em/nForFreeVector.
+ Also fixed UI command /process/eloss/setFluctModel, by
+ changing "eloss" to "eLoss".
+
G4VEnergyLossProcess: make more straightforward computation of ion
+ effective charge.
G4LossTableBuilder: define logarithmic search method for inverse range
+ table.
+
G4VEmModel: trigger computation of ion effective charge for
+ G4EmCalculator. Use LPM flag from G4EmParameters. Added warning
+ about use of obsolete method SetLPMFlag().
+ Use std::size_t in all places. Fixed memory leak at exit.
+
G4ionEffectiveCharge: minor optimisation.
+
G4VEnergyLossProcess, G4VEmProcess, G4VMultipleScattering: use flag of
+ master thread from G4LossTableManager.
+
G4VEnergyLossProcess: added extra protection excluding negative range;
+ renamed class member; changed condition to stop low-energy ion, use
+ kinetic energy and not scaled energy.
+ Added extra protection for the case of negative range of low-energy
+ particles. Addressing problem report
+ #2542.
+
G4LossTableManager: reserve memory for internal vectors; simplified
+ destructor; move a part of initialisation of class members to
+ header. Apply modified interface to G4LossTableBuilder.
+
G4EmCorrections: use const to variables where possible;
+ reduced number of if statements, replaced isMaster
+ flag with new flag isInitializer; use CLHEP prefix.
+ Code formatting; removed lock of threads, use flag from
+ G4LossTableManager instead.
+
G4EmSaturation: fixed possible incorrect calculatioon of effective
+ charge of a material. Addressing problem report
+ #2572.
+
Added SingleScattering option to G4TransportationWithMsc.
+
Improved printout in G4EmCalculator.
+
G4OpticalParameters: set default verbosity to 1.
+ Removed unused scintillation declarations.
+
+
Xrays
+
+
First implementation of new process G4XrayReflection, using data
+ from G4EMLOW-8.5.
+
G4Scintillation: verbosity of 0 silences run-time warnings.
+ Allow different decay time constants for different particles, with
+ particle-dependent scintillation. Improved an error message.
+
G4GaussXTRadiator: fixed issue by renaming virtual function to prevent
+ clash between base and inherited classes.
Addressing to the new track status fSuspendAndWait.
+
In G4GeneralParticleSource, fixed ListSource command which was
+ failing to list the correct energy of the sources since they need to be
+ accessed as a monoenergetic source distribution, rather than the particle
+ energy.
G4ImportanceProcess: added protection against potential null pointer
+ on world boundary in PostStepDoIt(). Addressing problem report
+ #1991.
+
Removed forward declarations to G4VTouchable.
+
+
Cuts
+
+
G4ProductionCutsTable: added method SetEnergyCutVector()
+ requested by ALICE; added method CreateCoupleTables()
+ separated from UpdateCoupleTable(), needed to prepare
+ class data.
+
+
Optical
+
+
G4OpBoundaryProcess: verbosity of 0 silences run-time warnings.
+
+
Parameterisation
+
+
In G4FastTrack, removed references to G4TouchableHistoryHandle,
+ which is now deprecated.
+
Define G4GlobalFastSimulationManager as a G4ThreadLocalSingleton
+ to avoid undeleted allocated object at exit.
+
Applied standard and extended clang-tidy fixes.
+ Applied standard clang-format-ing.
+
Mark empty/obsolete functions as deprecated.
+
Normal order accessors and docstrings.
+
+
Scoring
+
+
Make G4EnergySplitter a private implementation detail of the module.
+ Make dependency to 'intercoms' private.
+ Fixed Coverity reported defect in SplitEnergyInVolumes().
+
Removed unnecessary forward declarations of G4VTouchable.
+
Applied core clang-tidy/format fixes.
+
+
Transportation
+
+
In G4TransportationParameters, added a method to set both warning and
+ important energies; added method to report lock errors.
+ Improved reporting of inconsistent changes of 'warning' & 'important'
+ energies (not only enforce warning_E < important_E but also
+ warn about violations).
Use G4AutoLock in G4IStore and G4ImportanceAlgorithm instead of static
+ mutex data member.
+
+
Magnetic Field
+
+
Added new Quantum State Simulation (QSS) integration method, an
+ alternative method of integration which creates approximation functions
+ for each coordinate (x,p), changing the interpolation polynomials when
+ the deviation from exact solution is larger than a threshold value.
+ Offers built-in interpolation capability, enabling faster finding of
+ the intersection of the trajectory with surfaces.
+ Currently restricted to using only with a pure magnetic field.
+
+
Management
+
+
Removed inheritance level for G4TouchableHistory and making
+ G4VTouchable a simple typdef of G4TouchableHistory, therefore no
+ longer acting as base class.
+
Imported G4NavigationHistory, G4NavigationHistoryPool,
+ G4NavigationLevel and G4NavigationLevelRep classes and translation
+ units from volumes module.
+
Made G4TouchableHistoryHandle a typedef of G4TouchableHandle.
+
+
Navigation
+
+
Added new G4VNavigation common navigation interface class.
+ Updated existing navigators to make use of the new common
+ interface.
+
Added RelocateWithinVolume() method to G4VoxelNavigation
+ and to G4ParameterisedNavigation.
+
In G4Navigator, removed references to unused classes G4GRSSolid and
+ G4GRSVolume; use G4TouchableHandle in place of G4TouchableHistoryHandle
+ which is now deprecated. Same in G4MultiNavigator, G4DrawVoxels and
+ G4VIntersectionLocator.
+ Some code cleanup in G4Navigator and code formatting.
+
Added new G4SafetyCalculator class, auxiliary to G4Navigator; used in
+ G4Navigator in ComputeSafety() to avoid saving/restoring
+ state.
+
Removed use of forward declarations to G4VTouchable in phantom
+ parameterisation classes.
+
G4PropagatorInField: added parameters for big steps.
+ New parameter fMaxStepSizeMultiplier, needed to reduce costly
+ unnecessary integration in QSS; new parameter fMinBigDistance
+ used as minimum distance in case of long steps.
+ Updated default values:
+ fLargestAcceptableStep = 100*meter ( from
+ 1000*meter );
+ fMaxStepSizeMultiplier = 0.1 ( from 100 ).
+
Fixed /geometry/test/check_parallel UI command in
+ G4GeometryMessenger.
Define distinct statistics value in G4BooleanSolid for area and
+ cubic volume.
+
In G4MultiUnion, fixed problem with downcast in external Boolean
+ processor, which could result in incorrect nullptr.
+
Reduced internal statistics for calculation of cubic volume in
+ G4UnionSolid and G4SubtractionSolid.
+
+
Solids (Specific)
+
+
Use const iterator in
+ G4Voxelizer::GetPointVoxel().
+
Fixed use of index in G4Tet::GetPointOnSurface().
+
Fixed bounding box calculation in
+ G4VTwistedFaceted::BoundingLimits().
+
+
Volumes
+
+
Moved to management the following classes and translation
+ units: G4NavigationHistory, G4NavigationHistoryPool, G4NavigationLevel
+ and G4NavigationLevelRep.
+
Removed unused classes G4GRSSolid and G4GRSVolume.
Removed public interface to G4strstreambuf: G4strstreambuf becomes a
+ private implementation detail of G4ios.
+ Minimized coupling among G4cout/G4strstreambuf/G4coutDestination.
+
Added G4debug output stream for logging messages at lower priority than
+ G4cout. If used with the Qt GUI, G4debug output is highlighted.
+
G4PhysicsModelCatalog: added the new INCLXX model of antiproton
+ annihilation at rest.
+
G4PhysicsVector, G4PhysicsFreeVector, G4PhysicsLogVector and
+ G4PhysicsLinearVector: added extra method to support optional logarithmic
+ search for bin in free vector needed for particleHP module update.
+ Code formatting.
+
Fixed memory leak in G4StatAnalysis::GetCpuClock(): do not
+ allocate local variable on the heap.
+
Fixed memory leak in G4Type[Recursive]Mutex and simplified code by
+ removing unused function parameter.
+
Added new IgnoreTheIssue enum entry in G4ExceptionSeverity.
+
Added G4VERSION_REFERENCE_TAG macro to distinguish release/development
+ versions and cycle of the latter.
+
Fixed compilation error on macOS Apple Silicon when enabling FPE_DEBUG.
+ No guarantee on the correctness of signal handling on this platform.
+ Addressing problem report
+ #2571.
+
Removed obsolete and no longer used G4SIunits header.
Supporting first implementation of a no-frills GUI-side scene tree.
+ Added G4SceneTreeItem class, an aggregate of data members that represent
+ properties of objects in the scene (G4Scene). Its data members are
+ low-level types, so that it can be used across categories, avoiding
+ coupling.
+
Added centre calculation to HepPolyhedron for use in visualization
+ systems.
+
G4VisAttributes: trap under-limit requested number of line segments per
+ circle for polyhedral representation of circular surfaces.
+ An under-limit request sets number to minimum (3).
Removed calls to environment variable G4PARTICLEXSDATA, use
+ G4HadronicParameters access method instead.
+
In G4CrossSectionDataStore, reduced number of calls to environment
+ variables, which are done only to print output for documentation.
+ Removed remaining calls to getenv() and use
+ G4HadronicParameters instead. Fixed printing problem in
+ DumpPhysicsTable().
+
G4ParticleInelasticXS: make upper energy limit for light ions the
+ same as in FTFP_BERT.
+
G4ElNeutrinoNucleusTotXsc: uncommented methods for interface with
+ G4ElNeutrinoNucleusProcess.
+
G4GammaNuclearXS: general code clean-up; instantiate data only once
+ for all instances of this cross-section class; upload data for all
+ elements before the first run; simplified computation of isotope
+ cross-section; added extra public method
+ LowEnergyCrossSection().
+ More accurate usage of cache; simplified
+ GetIsoCrosssection() and SelectIsotope()
+ methods.
+
G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS,
+ G4GammaNuclearXS, G4ParticleInelasticXS: use same approach to fill
+ static data: do not unlock initialisation inside
+ BuildPhycsTable() method until initialisation is done;
+ minor code formatting.
+
G4NeutronCaptureXS, G4NeutronInelasticXS, G4ParticleInelasticXS: use
+ GetComponentByID() instead of GetComponentByIndex(),
+ allowing to reduce memory for isotope data.
+
G4NeutronCaptureXS, G4NeutronInelasticXS, G4GammaNuclearXS and
+ G4ParticleInelasticXS: use std::once_flag and
+ std::call_once() to initialize static data.
+
G4ChargeExchangeXS: new cross-section class for charge exchange
+ process. Fill out the content of implementing the charge exchange
+ process. Providing setter method for the factor multiplying the
+ cross-section (NA64 request). Added parameterisation of cross-section
+ of eta_prime, omega(982), and f2(1270) mesons; added low energy limit,
+ below which cross-section is set to zero.
G4IsotopeList: extended arrays to be applicable both for
+ G4PARTICLEXSDATA and G4PARTICLEHPDATA.
+
Fixed compilation warnings for implicit type conversions on
+ macOS/XCode>=14.1.
+
+
Management
+
+
G4HadronicProcess: removed usage of "DebugFlag" and "RandomFile".
+ Replaced access to environment variables with call to
+ G4HadronicParameters. Reduced the number of warnings concerning
+ kaon0 and anti_kaon0 (transformed in kaon0S and kaon0L) to maximum
+ one warning per thread. Added extra G4Exception for the case where a
+ worker cannot share initialisation with the master thread.
+ Addressing problem report
+ #2528.
+ Improved diagnostics.
+
G4HadronicProcessStore: avoid checking of environment variables, call
+ G4HadronicParameters instead. Removed extra not needed empty lines
+ from information printout. Added printouts for neutrino processes.
+
G4HadronicProcess, G4HadronicProcessStore, G4HadXSHelper: fixed
+ memory leak at exit.
+
G4HadronicProcessType: added new types for neutrino interactions.
+
+
Processes
+
+
G4NeutronGeneralProcess: added two access methods, an extra set method
+ and removed possible variable shadowing.
+
G4HadronElasticProcess, G4NeutronGeneralProcess: fixed problems
+ identified by Coverity.
G4ElNeutrinoNucleusProcess: updated process name to be
+ el-neutrino-nucleus.
+
New process G4NuVacOscProcess for 3-flavour neutrino oscillation in
+ vacuum.
+
G4NuVacOscProcess, G4ElNeutrinoNucleusProcess,
+ G4MuNeutrinoNucleusProcess, G4TauNeutrinoNucleusProcess,
+ G4NeutrinoElectronProcess: use sub-types of neutrino interactions;
+ avoid destruction of internal cross-section;
+ removed unused class members and methods.
+
G4TauNeutrinoNucleusProcess: cleanup of constructor and destructor to
+ fix Coverity warning.
+
+
Stopping
+
+
G4HadronicAbsorptionINCLXX: new class to handle annihilation at rest by
+ INCLXX; for the time being, only for antiproton.
+ Reduced maximum energy from 10 GeV to 200 MeV.
+
+
Utilities
+
+
G4HadronicParameters: introduced the neutron kinetic energy threshold
+ for applying the SVT (Sampling of the Velocity of the Target)
+ algorithm. This is needed to have a consistent value in methods
+ GetBiasedThermalNucleus() in G4Nucleus and
+ G4ParticleHPElasticFS respectively, to avoid circular dependency
+ with particle_hp module.
+ Removed two obsolete environment variables and access methods; added
+ flag for charge exchange.
+ Added class members defined via environment variable and access methods
+ for these members, this allows to remove the majority of calls to
+ std::getenv().
+ Added two strings and extra methods to access environment variables
+ used in G4HadronicProcessStore. These variables are not used in
+ ordinary runs but are checked in each thread and for each particle.
+ With this update these variables will be checked only once.
+ Added G4Exception for the case, when environment variable
+ G4PARTICLEXSDATA is not defined.
+ Added extra Boolean method for accessing debug flag for Binary Cascade,
+ which may be defined via environment variable
+ G4BINARY_CASCADE_DEBUG.
+ Introduced methods to get and set the time threshold of radioactive
+ decays (i.e. radioactive decays that happen later than this value are
+ ignored), offering a C++ interface to set this parameter.
+ Added getters and setters of recommended energy limits in physics lists
+ for the intranuclear cascade model INCLXX, for pbar
+ interactions.
+
G4Nucleus: in the method GetBiasedThermalNucleus(), get the
+ neutron kinetic energy threshold for applying the SVT algorithm from
+ G4HadronicParameter in method DoKinematicsOfThermalNucleus(),
+ and corrected the way to pass the last parameter, by reference instead
+ of by value.
+ Split the method GetBiasedThermalNucleus() into two parts, by
+ introducing a new public method,
+ DoKinematicsOfThermalNucleus(),
+ which is used also by G4ParticleHPElasticFS to implement the DBRC
+ algorithm.
+
+
Abla
+
+
G4AblaInterface: implemented method ApplyYourself() to allow the
+ coupling between Binary Cascade (BIC) and ABLA, i.e. using BIC for the
+ cascade and then ABLA for the nuclear de-excitation.
+
+
Bertini Cascade
+
+
Extended Bertini model to allow the use of ABLA as alternative
+ post-cascade nuclear de-excitation (the default de-excitation remains
+ unchanged).
+ There are two ways to set ABLA as de-excitation for Bertini: via C++
+ interface, by calling G4CascadeInterface::useAblaDeexcitation(),
+ and via environmental variable, by setting
+ G4CASCADE_USE_ABLA=1.
+
G4AblaDeexcitation: new class that does the nuclear de-excitation,
+ after the Bertini cascade, by using the ABLA model, and then tranforms
+ the secondaries in Bertini objects.
+
G4CascadeInterface: added new method useAblaDeexcitation()
+ which sets ABLA as nuclear de-excitation; this method can be called
+ directly by the user, or automatically in the constructor of the class
+ when the flag G4CascadeParameters::useAbla() is enabled.
+
G4InuclCollider: added new method useAblaDeexcitation() which
+ creates an instance of the new class G4AblaDeexcitation.
+
G4CascadeParameters: added Boolean flag that enables the ABLA
+ de-dexcitation model in the case that the new environmental variable
+ G4CASCADE_USE_ABLA is set.
+
G4CascadeParamMessenger: fixed memory leak at exit and simplified
+ the code.
+
Fixed Coverity defect for incorrect integer divide in fission part of
+ G4EquilibriumEvaporator::deExcite().
+
+
Binary Cascade
+
+
G4BinaryCascade, G4BinaryLightIonReaction: avoid calls to
+ getenv(), use G4HadronicParameters instead.
+
+
De-excitation
+
+
G4LevelReader: allow to add more levels of a given isotope than the
+ hardcoded limit=635 (max number of levels in G4LEVELGAMMADATA).
+ Addressing problem report
+ #2534.
+ Introduced partial fix for problem reports
+ #2566
+ and #1986
+ for the case when data on internal conversion (IC) are not available; if
+ IC is disabled, it is assumed that all IC transitions are performed from
+ the K-shell, which means that independently on IC flag the probability
+ of gamma transition is unchanged. For G4PhotonEvaporation, still use
+ only gamma transitions for the case of nuclear level without information
+ (as in version 11.2-beta).
+
G4LevelManager: added extra public accessor method allowing users to
+ check level energies and other parameters. Set life time of stable
+ levels to DBL_MAX instead of -1; left undefined spin 99 and do not
+ set it to zero.
+
G4DeexPrecoParameters: moved part of initialisation to header; do not
+ use autolock, use internal flag instead to allow only one dump of
+ paramenters; print all pre-compound parameters, separate pre-compound
+ and de-excitation printouts.
+
G4NuclearLevelData: fixed uploading of data before the run.
G4ExcitationHandler: instantiate FermiBreakUp, MultiFragmentation,
+ and PhotonEvaporation in constructor. Code formatting.
+
Reviewed and updated the fermi_breakup model, to address problem
+ report
+ #2263.
+ Removed few obsolete classes. Added G4FermiBreakUpUtil class.
+
G4FermiChannels: fixed memory leak at exit.
+
G4VEvaporation, G4Evaporation, G4VEvaporationFactory,
+ G4EvaporationFactory, G4EvaporationGEMFactory,
+ G4EvaporationGEMFactoryVI and G4EvaporationDefaultGEMFactory: more
+ accurate instantiation/destruction of components. Code formatting.
+
G4KalbachCrossSection: dynamic choice of peak position on inverse
+ cross-section as a function of A.
+
Technical improvements to G4GEMProbability evaporation class.
+
Fixed compilation warning for implicit type conversion on macOS/XCode
+ 14.1 in G4FermiFragmentsPoolVI::DumpFragment().
+
Clean-up evaporation and utils modules.
+
Removed unused files.
+
+
Elastic scattering
+
+
In G4ChargeExchange, updated input parameters for the method
+ SampleSecondaryType(). Fixed parameter for SampleT()
+ method. Fixed reported Coverity defect on dead code.
+ Address interface change in G4ChargeExchangeXS.
+
+
INCLXX
+
+
Major extension of the INCLXX model to handle antiproton annihilation
+ at rest and in-flight. Requires new dataset G4INCL-1.2.
+
Few corrections in G4INCLXXInterface.
+
Deleted obsolete class G4INCLNNbarToNNbarChannel.
+
Fixed memory leak in G4INCLInteractionAvatar.
+
Use G4FindDataDir to access data libraries in place of raw
+ getenv().
+
+
Lend
+
+
Fixed Coverity defect;
+ G4LENDGammaCrossSection::SelectChannel() may return negative
+ array index, same in G4LENDGammaCombinedCrossSection;
+ initialize iChannel to a positive number.
+
Use "G4" prefixed version of EXPAT/ZLIB CMake variables.
+
+
Lepto-nuclear
+
+
G4ElectroVDNuclearModel: updated initialisation of data tables.
+
+
Particle High Precision
+
+
Accurate modeling of elastic resonant scattering in heavy nuclei by
+ the use of the Doppler Broadening Rejection Correction (DBRC) algorithm.
+ In G4ParticleHPManager, added new member variables and corresponding
+ methods, related to the DBRC algorithm.
+ In G4ParticleHPMessenger, added new UI commands to enable DBRC (which
+ is off by default) and to specify its parameters.
+ In G4ParticleHPVector, added new method GetMaxY() to provide
+ the maximum cross-section in the interval between two kinetic energy
+ values.
+ In G4ParticleHPChannel, modified method ApplyYourself(),
+ with an extra argument, for a special treatment of the elastic channel.
+ In G4ParticleHPElastic, modified
+ G4ParticleHPChannel::ApplyYourself() call, with an extra
+ parameter.
+ In G4ParticleHPElasticFS, implemented the DBRC algorithm in the new
+ method GetBiasedThermalNucleus(); modified the method
+ ApplyYourself() to call the new method
+ GetBiasedThermalNucleus(); introduced two more
+ new methods, InitializeScatterKernelParameters() and
+ RegisterCrossSection(), and corresponding new member
+ variables.
+
Added new cross-section classes G4NeutronHPCaptureXS,
+ G4NeutronHPElasticXS, G4NeutronHPInelasticXS, G4NeutronHPFissionXS,
+ G4ParticleHPInelasticXS and G4CrossSectionHP.
+
G4ParticleHPMessenger: when changing the neutron kinetic energy
+ threshold for applying the SVT (Sampling of the Velocity of the Target)
+ algorithm, as part of the setting of the DBRC algorithm, update the
+ corresponding value in G4HadronicParameters.
+
G4ParticleHPManager: removed the neutron kinetic energy threshold for
+ applying the SVT algorithm, as this parameter is in G4HadronicParameters.
+ Check all environment variables once; provided new methods to access
+ path to data. Use G4ParticleHPManager for directory names and various flags.
+ Added data member and Get/Set methods for maximum energy above which
+ no Doppler broading is applied.
+ Set default upper limit on Doppler broadening to 30 keV.
+ Code clean-up.
+
G4ParticleHPElasticFS: get the neutron kinetic energy threshold for
+ applying the SVT algorithm from G4HadronicParameters; in the method
+ GetBiasedThermalNucleus(), corrected mistake in the interval
+ where the max neutron cross-section is considered for rejection.
+
G4ParticleHPInelastic: improved info printout.
+
G4ParticleHPInelasticXS: set upper limit of cross-section to
+ 30 MeV instead of 20 MeV. Fixed constructor.
+
G4ParticleHPDeExGammas: removed internal counter; delete only objects
+ which are created.
+
Removed G4ParticleHPGamma and G4ParticleHPLevel classes.
G4ParticleHPContAngularPar, G4ParticleHPContEnergyAngular,
+ G4ParticleHPEnAngCorrelation, G4ParticleHPNames, G4ParticleHPProduct:
+ use new interfaces to G4ParticleHPManager, moved constructors,
+ destructors, and some other methods to source; removed unused
+ commented lines.
+
G4ParticleHPEnAngCorrelation: minor code cleanup.
+
Renamed classes for capture from G4ParticleHP to G4NeutronHP,
+ as capture process exists only for neutrons; removed old commented
+ lines in modified files.
+
Removed unused G4NeutronHP*.hh headers for elastic and inelastic.
+
G4NeutronHPInelasticVI, G4NeutronHPElasticVI: new, alternative model
+ classes.
+
G4NeutronHPCaptureXS, G4NeutronHPElasticXS, G4NeutronHPInelasticXS,
+ G4NeutronHPFissionXS, G4CrossSectionHP, G4NeutronFissionVI,
+ G4NeutronRadCaptureHP: updated models and cross-sections which are
+ included only in the physics list QGSP_BERT_HP.
+
G4NeutronHPCaptureXS, G4NeutronHPElasticXS, G4NeutronHPInelasticXS,
+ G4NeutronHPFissionXS: improved comments to the code and description
+ text.
+
Applied clang-format and clang-tidy fixes.
+
In CMake script, use alphabetical order both for headers and for source
+ files. Use "G4" prefixed version of EXPAT/ZLIB CMake variables.
+
+
Parton-String
+
+
G4FTFTunings: introduced a new FTF tune meant to overcome the problem
+ of too optimistic (i.e. narrow) pion shower energy resolutions in ATLAS
+ calorimeters with respect to test-beam data.
+
G4BaryonSplitter, G4MesonSplitter, G4QGSMSplittableHadron, G4SPBaryon:
+ some code cleanup.
+
+
Pre-equilibrium
+
+
Use the default Coulomb barrier computation.
+ Code cleanup: code formatting; removed unused data and methods.
+
+
QMD
+
+
Added classes for QMD model opimised for light ions.
+
G4QMDReaction: do not create local G4Evaporation class, only define
+ type of evaporation for local G4ExcitationHandler.
+
Fixed Coverity defect for uninitialized variable.
+
Code cleanup in G4QMDMeanField in attempt to fix false positive on
+ gcc-13.1 diagnostics on alma9. Removed unused map.
+
+
Radioactive Decay
+
+
Fix in stairstep beta decay spectrum. Addressing problem report
+ #2367.
+ Created new class G4BetaSpectrumSampler to sample a sloped distribution
+ instead of a flat one. Changed G4BetaMinusDecay and G4BetaPlusDecay to
+ use the above sampler. Added protection against very large arguments
+ in std::exp() within
+ G4BetaDecayCorrections::ModSquared90.
+
G4RadioactiveDecay: changed default threshold for the time beyond
+ which radioactive decays are ignored, from twice the age of the
+ Universe to one year.
+ Use only one table of radioactive decay channels;
+ removed unnecessary MULTITHREADED blocks protections; removed lock from
+ class constructor; added use only lock in the method
+ LoadDecayTable() after the check if the table is already
+ downloaded; added explicit unlock in this method; removed counter
+ of instances of the class.
+ Made all virtual methods override and moved implementations to source.
+ DecayIt() method is declared virtual; removed unused methods;
+ use reference instead of by-values in method signatures for complex
+ objects; added G4ITDecay object local for each thread to perform
+ sampling of radioactive decays with a possibility to sample
+ correlated gamma emission. Fixed initialisation printout: corrected
+ place for triton printout.
+
G4RadioactiveDecay, G4Radioactivation: added an extra parameter in the
+ constructor, to be able to set the threshold for the time beyond which
+ radioactive decays are ignored. This is meant for custom physics lists.
+ Moreover, the constructor of these classes has been modified to offer
+ also a C++ interface, via the singleton G4HadronicParameters, to set
+ the same time threshold for radioactive decays. This is meant for
+ reference physics lists. Note that, in the unlikely and weird scenario
+ that two time thresholds are specified - one via G4HadronicParameters,
+ and one via the constructor parameter - the larger of the two is
+ considered, to be conservative. In all cases, an eventual time
+ threshold specified via UI command prevails on anything else.
+
G4Radioactivation: marked all virtual methods as override
+ and moved implementations to source; marked DecayIt() as
+ override; removed methods GetDecayTable1(),
+ AtRestDoIt() and PostStepDoIt(), use instead base
+ class methods.
Implemented ReceiveG4debug for concrete sessions. For the Qt GUI
+ (G4UIQt) HTML code is added in order to highlight G4debug output.
+
First implementation of user-specified output styles:
+ /gui/outputStyle.
+ Output streams: cout cerr warn error debug (extendible, see
+ G4VInteractiveSession header). Only used by G4UIQt at present.
+
Support for first implementation of a no-frills GUI-side scene tree.
+ Refactored modules into G4UIcore and G4UIimplementation to isolate
+ core/always on functionality from concrete UIs requiring external
+ libraries. Both modules are still built into a G4interfaces library,
+ with no change to user interface for applications.
+
G4UIQt: fixed mutex bug in implementation of G4UIQt::ReceiveG4debug();
+ This workaround is to make sure all flushed output appears on the
+ terminal after a crash. Fixed QSplitter issue, necessary for Qt6 support.
+ Introduced new scene tree; added colour choice.
+ Introduced widget for 'mouseDoubleClickEvent'. Implemented callbacks
+ SceneTreeItemExpanded() and SceneTreeItemCollapsed().
+ Improved command; allow for leading space in path. Code tidying.
+ Reworked double-click to use QTreeWidget::itemDoubleClicked.
+ Implemented right-click pop-up menu for touchables in new scene tree.
+ Choose sub-set of commands suitable for the pop-up menu.
+ Fixed bug in SceneTreeItemClicked() when invoking
+ /vis/scene/activateModel: the description may have spaces;
+ use substring up to first space.
+ In BuildPVQTree(), reduce tooltip for a touchable to a simple
+ two-lines; in NewSceneTreeItemTreeWidget::ActWithoutParameter(),
+ added special case for right-click "dump": pop up message window that may
+ be suppressed and message the first 1000 characters but suggest a full
+ dump to session output if desired, or close.
+ In SceneTreeItemClicked(), make daughters invisible when volume
+ checked invisible, pop up a window of explanation; in
+ CreateCommandWidget(), fixed typo: "green" should be "blue".
+ Workaround changes in QEvent globalPos/globalPosition for Qt5 and 6.
+
In G4UIQt::SceneTreeItemClicked(), use physical volume name to
+ identify the physical volume model in the scene tree; this allows multiple
+ models in the scene and each to be separately identified.
+ Avoid setting daughtersInvisible flag if there are no daughters.
+ Use text to identify text models, allowing one to distinguish multiple
+ text models.
+
Removed header no longer used in Qt5, which is also not present in Qt6.
+ Removed support for Qt < 5.9 in CMake script.
+
Export public compile definitions to indicate availablity of specific UIs.
+ Moves to use on link model.
+
Set AUTOMOC property on module when Qt used.
+
Applied clang-tidy and clang-format fixes, together with
+ public/protected/private ordering in headers.
Added G4ElementDataRegistry, a new management class for shared data.
+ Modified G4ElementData to make use of G4ElementDataRegistry.
+
G4NistManager: simplified for loops; added MT protection to instance
+ access method.
+
G4NistMaterialBuilder: changed mean ionisation potential of carbon and
+ graphite from 78 eV (ICRU73 recommendation) to 81 eV
+ (ICRU90 recommendation); define state as kStateLiquid for
+ several liquids including G4WATER. Addressing problem report
+ #2568.
+
G4ICRU90StoppingData: use const where possible;
+ use std::size_t; use arrays of energies as G4float.
+
G4Material: use std::size_t and added extra comments to setter
+ methods. Addressing problem report
+ #2569.
+
In G4IonisParamMat, use std::size_t.
+
G4MaterialPropertiesIndex, G4MaterialPropertiesTable: added material
+ constant properties for G4Scintillation particle-dependent time constants.
+ In SetMaterialPropertiesTable() added nullptr check.
+
G4MaterialPropertiesTable: improved Exception messages; improved building
+ of vectors of material property names; issue a warning for material
+ properties vector of length 1.
+
G4ElementData: allow index 0 in data structure (before there was a
+ limitation Z > 0), useful for pair production model.
+ Also, fixed memory leak at exit.
+
G4ElementData: added G4Physics2Dvector component optional structure;
+ subdivide run time method in two groups: with or without check on input
+ parameters; use std::size_t type.
+
G4MicroElecMaterialStructure: Modified GetLimitEnergy()
+ function to account for the changes in the treatment of weakly bound
+ electrons of microelec inelastic model.
+
Applied standard and extended clang-tidy fixes, normal order access
+ specifiers and docstrings; applied clang-format.
+
Use "G4" prefixed version of EXPAT/ZLIB CMake variables.
+
Use G4FindDataDir to access data libraries in place of raw
+ getenv().
New submodule channeling, implementing fast-simulation channeling
+ model in oriented crystals with Baier Katkov method for the calculation of
+ radiation probability, radiation point and parameters of photon production
+ as well as spectrum accumulation.
+
Channeling:
+
+
Revised version of the Baier-Katkov method with a new features of
+ increasing of the photon statistics in certain intervals of spectrum.
+ Updates in defaults and corrected some bugs.
+
Simulated and preliminarly validated the electromagnetic shower in W
+ with experimental data from Eur. Phys. J. C 82, 699 (2022).
+
Added the Crystalline Undulator (CU) as a periodically bent crystal
+ to the internal crystal geometry (to be validated still).
+
+
GFLASH:
+
+
Replaced use of deprecated functions with modern equivalents.
+
Fixed reported Coverity defects for uninitialized data members.
Scanned all mesons and baryons, including their resonances, to
+ compare their particle properties with PDG-2023. Updated mass and
+ decay width (lifetime) for particles below with relative error above
+ 1% against PDG-2023.
+
G4IonTable: fixed GetIon() method for the case when the ground state level
+ of an isomer is floating. Removed some code duplication in FindIon() and
+ GetIon() methods.
+ Fixed run-time memory leak in GetIonName() methods, now returning
+ G4String instead of a reference to a string; simplified code, with TLS no
+ longer involved.
+
G4NuclideTable: taken into account the possibility of floating ground state
+ levels.
+
G4Ion: added protection against unphysical index of floating level.
Split build of G4persistency library into G4mctruth, G4geomtext and
+ (optional) G4gdml libraries.
+
GDML:
+
+
Added possibility to set alternative grammar for schema validation
+ while reading a GDML file. This can be achieved by either calling the
+ new method SetImportSchema(..) from G4GDMLParser, providing the
+ absolute path and file name of the XML schema, or by using the new
+ UI command:
+ /persistency/gdml/schema "[absolute_path]/schema_filename"
+ before importing the GDML file.
+ By setting a locally stored alternative grammar, it will instruct the
+ parser to ignore the default schema specified in the GDML file and
+ therefore no longer require access to the network for retrieving the
+ schema.
+
Allow setting of alternative grammar for schema validation via an
+ environment variable G4GDML_SCHEMA_FILE; it overrides the value set by
+ SetImportSchema() if both are non-empty strings. Forcing parser to
+ ignore any schema set in the input GDML file. Checking of grammar and
+ schema override will fail on missing schema.
+
In G4GDMLWriteStructure::ExportSD(), use GetMasterSensitiveDetector()
+ from logical volume to retrieve the shadow pointer of the sensitive
+ detector.
G4HadronicBuilder: added two methods, BuildINCLXX() and
+ BuildAntiLightIonsINCLXX().
+
Removed no longer used file OrderingParameterTable.
+
+
Constructors:
+
+
electromagnetic:
+
+
G4EmBuilder, G4EmModelActivator, G4EmStandardPhysicsSS: fixed issue
+ in single scattering model definition per region for e+, e-, and
+ light hadrons. Addressing problem report
+ #2530.
+
G4EmBuilder, G4EmStandardPhysicsSS: use new constructor for the
+ G4CoulombScattering process.
+
G4EmStandardPhysicsSS: allow to use
+ G4TransportationWithMscType. Removed unused header inclusions.
+
G4EmModelActivator: use new constructor for the G4CoulombScattering
+ process; allow adding G4EmStandardPhysicsSS on top of
+ G4EmStandardPhysics_option3.
+ Implemented single scattering per region by adding extra single
+ scattering process, which is active inside the region and not
+ active outside; multiple scattering and single scattering
+ processes for a given charged particle are disabled in the region.
+ Addressing problem report #2530.
+
New G4ChemDissociationChannels and
+ G4ChemDissociationChannels_option1 classes.
G4EmParticleList: added method EmChargedPartNames(), returning a
+ minimal list of charged EM particles.
+
G4EmDNABuilder: for Opt2, 4, 6 use for protons and ions;
+ G4DNARuddIonisationExtendedModel from zero to 100 MeV;
+ ion capture limit is set to 0.1 keV.
+ For DNA Opt4 and Opt6, restored configuration as of previous
+ release series for protons, in order to have under control
+ results of various tests. Correction for proton constructors.
+ Corrected subtype process of G4LowECapture.
+
Fixed compilation warnings on macOS/XCode for implicit type
+ conversion.
+
+
factory:
+
+
Added G4StoppingPhysicsWithINCLXX in
+ G4RegisterPhysicsConstructors.
+
+
gamma_lepto_nuclear:
+
+
G4EmExtraPhysics: activate biasing in processes, not in
+ cross-sections.
G4NeutrinoPhysics, G4NeutrinoPhysicsMessenger: added new physics
+ constructor for neutrino physics and its messenger.
+
Clean-up all classes of sub-library.
+
+
hadron_elastic:
+
+
New class G4HadronElasticPhysicsHPT, inheriting from
+ G4HadronElasticPhysicsHP and activating the special treatment of
+ elastic scattering of thermal neutrons.
+
G4HadronElasticPhysicsHP: changed method ConstructProcess() from
+ final to override, to be able to define the
+ ConstructProcess() method for the derived class
+ G4HadronElasticPhysicsHPT.
+
G4HadronElasticPhysics, G4HadronElasticPhysicsXS,
+ G4HadronElasticPhysicsHP, and G4HadronElasticPhysicsPHP: more
+ accurate instantiation of models, cross-sections and the neutron
+ general process.
+
G4ChargeExchangePhysics: do not use G4PhysicsListHelper, as the
+ charge exchange process is an addition to the main hadron process.
+ Updated the constructor. Added setter method for the factor
+ multiplying the cross-section.
Added a low energy limit to the cross-section of the charge exchange
+ process to allow use of it on top of any physics without any
+ cross-section correction.
+
+
hadron_inelastic:
+
+
G4HadronInelasticQBBC: more accurate instantiation of the neutron
+ general process.
+
G4HadrocPhysicsQGSP_BERT_HP: use alternative HP models and
+ cross-sections.
+
New class G4HadronInelasticQBBC_ABLA, similar to
+ G4HadronInelasticQBBC_ABLA, except that for the final-state of
+ nuclear inelastic interactions of charged pions and nucleons
+ projectiles, the ABLA model is utilized for nuclear de-excitation,
+ instead of the usual precompound/de-excitation.
+ Meant for testing purposes. In principle, these couplings with ABLA
+ nuclear de-excitation can be extended to all types of projectiles
+ and to other reference physics lists, but, for the time being, it
+ is restricted to pion+, pion-, proton and neutron, and only for
+ QBBC.
+
In G4HadronPhysicsINCLXX, call
+ G4HadronicBuilder::BuildAntiLightIonsINCLXX()
+ to treat antiproton with INCLXX.
+
+
ions:
+
+
Added a physics constructor, G4LightIonQMDPhsysics for the new QMD
+ model for light ions.
+
+
limiters:
+
+
Fixed reported Coverity defects for unreachable code.
+
+
stopping:
+
+
G4StoppingPhysicsWithINCLXX: new class, similar to
+ G4StoppingPhysics, with the only difference that the INCLXX model
+ (instead of FTFP) is utilized for the antiproton annihilation at
+ rest.
+
+
+
Lists:
+
+
FTFP_BERT_ATL: use a new, specific FTF tune meant to overcome the problem
+ of too optimistic (i.e. narrow) pion shower energy resolutions in
+ ATLAS calorimeters with respect to test-beam data.
+
Use the new class G4StoppingPhysicsWithINCLXX (instead of
+ G4StoppingPhysics) in INCLXXPhysicsListHelper: this implies that all
+ the INCLXX-based physics lists (FTFP_INCLXX, QGSP_INCLXX, etc.) use
+ INCLXX for the antiproton annihilation at rest.
+
Introduced the new class QGSP_BIC_HPT, which is similar to QGSP_BIC_HP,
+ but with special treatment of elastic scattering of thermal neutrons
+ activated.
+
G4PhysListFactory: added new physics lists, corresponding to
+ HPT variants (i.e. with special treatment of elastic
+ scattering of thermal neutrons) of physics lists with HP
+ already present (FTFP_BERT_HPT, QGSP_BERT_HPT, FTFP_INCLXX_HPT,
+ QGSP_INCLXX_HPT, QGSP_BIC_HPT, QGSP_BIC_AllHPT, Shielding_HPT, and
+ ShieldingM_HPT).
+ Of these, only one (QGSP_BIC_HPT) corresponds to a concrete new physics
+ list, whereas the others are obtained from the HP physics
+ lists by adding the physics constructor G4ThermalNeutrons.
+ Introduced new physics list names Shielding_HP and ShieldingM_HP, as
+ alias of, respectively, Shielding and ShieldingM. These new aliases
+ allow to have a consistent notation _HPT for all the HP-based physics
+ lists when the special elastic scattering treatment of thermal neutrons
+ is enabled.
+
Shielding: added information note that the new physics list names (to
+ be used with the physics list factory), Shielding_HP and ShieldingM_HP,
+ are equivalent to, respectively, Shielding and ShieldingM.
+ Added a option for Shielding to use G4LightIonQMDPhysics, which is
+ the constructor of light ion QMD.
+
G4PhysListFactoryMessenger: added the new UI command
+ /physics_lists/factory/addThermal to enable the special
+ treatment of elastic scattering of thermal neutrons for HP-based
+ physics lists. Added UI commands to enable neutrino and
+ charge exchange physics.
+
QGSP_BERT_HP: use alternative HP models and cross-sections.
+
QGSP_BERT_AllHP: use default HP elastic builder.
+
New class QBBC_ABLA, which is similar to QBBC, except that for
+ hadron inelastic the constructor G4HadronInelasticQBBC_ABLA is used,
+ instead of G4HadronInelasticQBBC. This means that the physics list
+ QBBC_ABLA behaves as QBBC, with the only difference that for the
+ final-state of nuclear inelastic interactions of charged pions and
+ nucleons projectiles, the ABLA model is being used for nuclear
+ de-excitation, instead of the usual Precompound/de-excitation.
+
+
Util:
+
+
G4HadProcesses: more accurate implementation for the neutron general
+ process.
Added handling (registration and merging) of sub-events in G4Run and
+ G4RunManager.
+
Do not call WorkerG4ParticleTable() from G4ParticleTable in
+ constructor of G4WorkerRunManager, as called already from G4ParticleTable
+ through GetParticleTable(), which is called beforehand by other
+ Geant4 classes. Duplicate call was causing memory leak at exit.
+
G4PhysicsListHelper: removed the unused code related to reading from the
+ file OrderingParameterTable (which has been deleted).
+
Refactor random state file copying to use std::filesystem for
+ portability.
+
Applied core and optional clang-tidy fixes, plus clang-format and tidying:
+ removed obsolete comments/dead blocks; normal order access specifiers and
+ make docstrings Doxygen/IDE compatible.
Updated configuration so that OpenGL and GLES "toolssg" drivers are
+ not used in the case VTK is used.
+
Isolated private headers and updated dependencies.
+
Link to new G4UIcore/UIimplementation modules in place of former
+ G4UIbasic/UIcommon.
+
Exporting public compile definitions to indicate availablity of
+ specific drivers. Moves to "use on link" model.
+
Support compilation against Qt5 and Qt6.
+
Set AUTOMOC property on module when Qt used.
+
+
Management
+
+
Implemented a more flexible way of choosing a graphics system.
+ It preserves the existing behaviour in all aspects.
+ To take advantage of the new ways, /vis/open should be
+ allowed to use default parameters, either by omitting them
+ altogether or by using '!'. Without any change of code, i.e.,
+ using the existing constructor, G4VisExecutive will refer to the
+ environment variable G4VIS_DEFAULT_DRIVER, which should
+ contain the nickname of the chosen graphics system and, optionally,
+ a window size hint (space separated).
+ Or on the command line, precede the app invocation,
+ (e.g: G4VIS_DEFAULT_DRIVER=Vtk 'application-name').
+ The window-size-hint can optionally be added to all these options,
+ e.g: (bash) export G4VIS_DEFAULT_DRIVER="OGLSX 1000x1000-0+0".
+ Otherwise G4VisExecutve will choose a graphics system on the basis of
+ batch/interactive running, and Geant4 build options (see list
+ of registered graphics systems printed at the start of job).
+
Further ways are available by using a new constructor,
+ G4VisExecutive(argc, argv). This follows G4UIExecutive usage.
+ If a 3rd argument is supplied, this is your chosen system
+ (e.g.: G4VisExecutive(argc, argv, "Vtk")).
+ Otherwise, it looks at G4VIS_DEFAULT_DRIVER, as above.
+ Otherwise, it inspects ~/.g4session.
+ G4UIExecutive behaviour is preserved.
+ Otherwise, as above, it will choose a graphics system on the basis of
+ batch/interactive running, and Geant4 build options.
+
G4VisExecutive: added new constructor implementing default graphics
+ system by environment variable G4_VIS_DEFAULT_DRIVER.
+ Simplified default graphics system by run option (batch/interactive).
+ Exploit new method, G4UImanager::GetBaseSession().
+ Added code for default graphics system based on batch or build
+ flags. In SetDefaultsByBuildFlags(), added missing default
+ for TOOLSSG...ZB drivers.
+ Temporary divert OGL to TSG for allowing support of Qt6.
+ Declare TOOLSSG_[X11,XT,WINDOWS,QT]_ZB drivers.
+ Fixed default TSG nickname when Vtk suppresses OpenGL.
+ Added single line message "VTK: OpenGL-based drivers suppressed".
+ Protect all G4cout statements with fVerbosity at startup.
+
Implemented choice by argument and by ~/.g4session.
+
G4VisManager: improved messaging in
+ PrintAvailableGraphicsSystems().
+ Improved readability of code that ignores deleted histograms, etc.
+ Improve printing about histograms that can be plotted in the UI
+ session. Take into account deleting histograms in G4VisManager:
+ the vector of histograms can contain 'nullptr' elements.
+
Introducing concept of default XGeometryString (aka window size
+ hint).
+
G4VisCommandsCompound: in /vis/open, exploit "current as
+ default" for all parameters, including the window-size-hint.
+
G4VisCommandsViewer: in /vis/viewer/create, exploit
+ "current as default" for all parameters, including the
+ window-size-hint.
+
Introducing scene tree in G4VViewer. The scene tree is a tree of
+ G4SceneTreeItem objects; its root is a data member fSceneTree of all
+ viewers by virtue of G4VViewer inheritance. The root G4SceneTreeItem
+ has children that represent the models (G4VModel sub-classes) in the
+ scene. For a G4PhysicalVolumeModel (detector components), its children
+ and children's children, etc., imitate the geometry hierarchy of that
+ model. These descendants are called "touchables". There may be more
+ than one G4PhysicalVolumeModel, depending how the user creates his/her
+ scene. The scene tree is reviewed, and updated if necessary, at every
+ pass of G4VSceneHandler::ProcessScene(). This is called a
+ "kernel visit". A kernel visit is triggered by vis commands (e.g.,
+ /vis/viewer/rebuild) and by a viewer if deemed necessary.
+ For example, a kernel visit may not be required for a rotation, zoom,
+ etc., but required for a change from surface to wireframe. The idea
+ is that the scene tree can be passed to a GUI, the GUI can create a
+ tree widget, and interactions with it raise UI commands such as
+ /vis/scene/activateModel, /vis/set/touchable and
+ /vis/touchable/set/...
+ The viewer decides if this requires a kernel visit, otherwise it must
+ update fSceneTree itself (utilities are provided).
+ Limit the depth of expansion of the scene tree touchables; this is to
+ prevent the trees of complex detector running off the page; all
+ touchables are entered but could be in a collapsed item, viewable by
+ expanding the mother with a left click.
+ Added scene tree and related functionality.
+ Improved G4VViewer::SceneTreeScene::FindOrInsertTouchable().
+ Simplified ghost-touchable transition.
+ Added "utility" function UpdateGUISceneTree().
+ Applied clang-format.
+
New scene tree: implementing expand and collapse of touchables.
+ Expand only to depth 2, thereafter sub-trees are collapsed.
+ When the scene tree is expanded or collapsed it is remembered in
+ the viewer-side scene tree and may be propagated to other viewers.
+
First implementation of a no-frills GUI-side interactive scene tree.
+ Works with touchables; can change the visibility of a touchable.
+ A view can be prepared with a graphical driver, such as OGL, TSG, OI
+ or Vtk, and transferred it to Ray Tracer, TOOLSSG_OFFSCREEN, etc.,
+ simply with /vis/open RayTracer, etc.
+
Default special mesh rendering for viewers which can render all
+ objects.
+
Implemented "generic cutaways". It relies on the Boolean Processor
+ which handles the Boolean operations on polyhedral representations of
+ solids. Clips, sections and cutaways will now be available to *all*
+ viewers (OGL viewers still use OpenGL clip planes).
+
G4VSceneHandler: protect material pointer used to name G4Mesh item.
+ If null, use name of container. It avoids cases of crash when a G4Mesh
+ is in a parallel world. In RequestPrimitives(), improved test
+ for invalid Boolean solid.
+ In CreateSectionSolid() and CreateCutawaySolid(),
+ improved algorithms.
+
G4VVisCommand: added static G4SceneTreeItem
+ fExistingSceneTree, used for remembering scene tree of
+ previous viewer.
+
G4VisCommandsSceneHandler: if there is an existing viewer, store scene
+ tree.
+
G4VisCommandsViewer: if there is an existing viewer, store scene tree.
+ Copy existing scene tree to the new viewer.
+
G4ViewParameters: initialise fSpecialMeshRenderingOption
+ as meshAsDefault.
+
G4VisCommandsTouchableSet: with /vis/touchable/set/visibility,
+ added one-time warning about circumstances in which the command may
+ appear not to work.
+
G4VisCommandsSceneAdd, G4VisCommandSceneAddText2D: improved guidance and
+ description.
+
In G4VisCommandsTouchable, introduced UI command
+ /vis/touchable/twinkle.
+
Removed obsolete attempt at flying (interpolation with splines).
+ Functionality now delegated to G4ViewParameters.
+
Fized problem of local axes not appearing, by adding
+ /vis/viewer/refresh after
+ /vis/touchable/localAxes.
+
Code cleanup in G4VUserVisAction: made protected Draw()
+ virtual method; improved comments.
+
Fixed compilation warning for implicit type conversion on
+ macOS/XCode>=14.1.
+
+
Modeling
+
+
G4VModel: removed unnecessary reference to G4PhysicalVolumeModel.
+
G4PseudoScene: added G4VisAttributes (this was always available, but
+ never previously made onward available to sub-classes).
G4PhysicalVolumeModel: introducing touchable count. A new function
+ GetNumberOfTouchables() returns a map with the number of
+ touchables by depth of the geometry tree. Used in G4VViewer when
+ deciding whether to expand the scene tree.
+ In DescribeSolid(), improved tests for invalid Boolean
+ solid in code for section and cutaway.
+
+
OpenGL
+
+
Removed obsolete G4OPENGL_VERSION_2 symbol and
+ G4OpenGLVboDrawer class.
+
Make modeling module a private dependency, unless Qt
+ is active, when it must be public.
+
First implementation of a no-frills GUI-side scene tree.
+
G4OpenGLQtViewer: disabled "old" scene tree.
+
No longer link to QtPrintSupport, which is not used in the
+ toolkit.
+
Removed support for Qt less than version 5.9. Clarify remaining
+ version checks using QT_VERSION_CHECK instead of raw hex.
+
G4OpenGLQt, G4OpenGLXm: simplified IsUISessionCompatible().
+ Exploit new method, G4UImanager::GetBaseSession().
+
Fixed precision-loss warning.
+
+
OpenInventor
+
+
First implementation of a no-frills GUI-side scene tree.
+
No longer link to QtPrintSupport, which is not used in the
+ toolkit.
+
G4OpenInventor: simplified IsUISessionCompatible().
+ Exploit new method, G4UImanager::GetBaseSession().
+ Implemented fix as an OI driver is not appropriate for a batch
+ session.
+
Fixed reported Coverity defects.
+
+
Qt3D
+
+
G4Qt3DSceneHandler: added dummy normal line attributes, as Qt6 seems
+ to require that; fixes wireframe drawing; does not seem to fix
+ trajectory line drawing, though.
+ Establish the top physical volume Qt3D entities from the scene.
+
G4Qt3D: simplified IsUISessionCompatible().
+ Exploit new method, G4UImanager::GetBaseSession().
+
Fixed precision-loss warning.
+
+
ToolsSG
+
+
First version of the TSG_[QT,X11,XT,WINDOWS]_ZB sub drivers, allowing
+ the rendering with g4tools/zbuffer (the same used by TSG_OFFSCREEN).
+ They allow interactive 3D rendering bypassing native graphics
+ systems. It is fully standalone over the standard C/C++ libs and the
+ standard pixmap logic of X11, Xt, Qt, Windows, running only the CPU.
+ Tested with Qt5 and Qt6.
+
First implementation of a no-frills GUI-side scene tree.
+
No longer link to QtPrintSupport, which is not used in the
+ toolkit.
+
Link to Qt6OpenGLWidgets library when using Qt6 to access
+ QOpenGLWidget.
+
G4ToolsSGViewer: protected null scene pointer, in case user forgets
+ to create a scene.
+
G4ToolsSGQtViewer renamed to G4ToolsSGQtGLESViewer for consistency
+ with the file naming pattern applied in other sub-drivers.
+
G4ToolsSGQtGLES, G4ToolsSGQtZB: simplified
+ IsUISessionCompatible().
+ Exploit new method, G4UImanager::GetBaseSession().
+
Fixed Coverity warnings.
+
+
Vtk
+
+
Refactor of VTK viewer with pipelines, geometry stores; improved 2D
+ rendering, streamlined VTK cmake components. Added off screen
+ rendering; fixed bug which locked UI interaction with VtkNative
+ viewer; many 3D output formats working including GLTF, PLY, OBJ,
+ VRML; removed cuboid offset present in rectilinear scoring meshes
+ (caused an explosion of draw calls); fixed spherical marker size.
+
G4VtkSceneHandler: text justification to given coordinate.
+
Separated pipelines into source and include files.
+
Use class inheritance for pipelines G4VVtkPipeline and added ability
+ to chain pipelines.
+
Separated interactive cutters, clippers.
+
2D transparent image overlay.
+
Improved geant4 commands (/vis/vtk/..).
+
Added vtkUnstructuredGridPipeline for special mesh rendering.
+
G4VtkQt: simplified IsUISessionCompatible().
+ Exploit new method, G4UImanager::GetBaseSession().
+
Fixed missing circles in rendering.
+
Removed files no longer being built.
+
Applied clang-tidy and clang-format fixes.
+
Removed dead code and no-ops.
+
Fixed compilation warnings for implicit type conversions on
+ macOS/XCode>=14.1.
Updated reference outputs, macros, READMEs and scripts.
+
Fixes for Doxygen documentation and coding guidelines.
+
Updated vis*.mac macros in most examples, changed /vis/open
+ command for interactive visualization to allow for run-time choices
+ and simplified comments.
+ Removed defunct command /vis/ogl/set/displayListLimit.
+
In several input macro files, introduced the UI command
+ /process/had/rdm/thresholdForVeryLongDecayTime 1.0e+60 year
+ to allow all radioactive decays (including the very long ones).
+
advanced
+
+
air_shower
+
+
Fixed warning message regarding the size of the material
+ property vector.
+
+
dsbandrepair
+
+
New Geant4-DNA application for evaluating the early radiation-induced
+ DNA damage. The first development of the simulation chain was carried
+ out by Meylan et al. in 2017 (Sci. Rep. 2017 7:11923).
+ Supports all types of DNA geometries constructed with DNAFabric
+ (Comput. Phys. Comm. 2016 204:159-169). Geometries for human cell
+ nuclei (fibroblast, endothelium) and yeast are also provided.
+
+
eFLASH_radiotherapy
+
+
Removed visualization in batch mode.
+
+
exp_microdosimetry
+
+
Renamed from radioprotection example.
+
+
fastAerosol
+
+
General code cleanup, including clang-tidy.
+
+
ICRP110_HumanPhantoms
+
+
Now building two executables: ICRP110phantoms and
+ ICRP110standalone. ICRP110standalone allows allows visualisation
+ of the phantom without the overhead of the run manager and
+ initialising of all the physics tables (i.e. cannot visualise
+ trajectories).
+
standalone.mac: disable auto refresh *before* creating scene.
+ For auto-refresh viewers, without this change the viewer attempts
+ to draw the detector with the default view parameters, and in the
+ case of this phantom, it overwhelms the graphics system.
+
This phantom should be displayed with special mesh rendering.
+
ICRP110PhantomNestedParameterisation: fixed assignment of material
+ pointer in ComputeMaterial(), affecting MT runs.
+
Removed forward declaration of G4VTouchable.
+
+
ICRP145_HumanPhantoms
+
+
Introduce ICRP145standalone. Building two executables:
+ ICRP145phantoms and ICRP145standalone. ICRP145standalone allows
+ visualisation of the phantom without the overhead of the run
+ manager and physics tables and geometry initialisation.
+ Of course, you cannot run or visualise trajectories.
+ Disabled auto refresh *before* creating scene.
+
+
medical_linac
+
+
Use default MixMax random engine.
+
+
STCyclotron
+
+
Correction in PrimaryGeneratorAction. Addressing problem report
+ #2538.
+
Corrected warning in vacuum_density.
+
+
stim_pixe_tomography
+
+
New application for simulating three-dimensional STIM or PIXE
+ tomography experiments. References:
+ NIM Phys.Res. B (536) 2023: 38-44;
+ Phys. Med. (94) 2022: 85-93; Phys. Med. (65) 2019: 172-180.
+
+
underground_physics
+
+
Updated analysis and ambe_spectrum.mac. Addressing problem report
+ #2338.
+
Addressed problem report
+ #2503
+ and related to
+ #2338;
+ also removed redundant alpha_low.mac macro.
+
Moved EM model setters in DMXPhysicsList to G4EmParameters.
+
+
xray_SiliconPoreOptics
+
+
New example demonstrating an application of Geant4 in space
+ environment. The geometry used in this example represents a
+ single reflective pore used to simulate on a smaller scale the
+ effect of the millions of pores forming the mirror of the ATHENA
+ Silicon Pore Optics (SPO), as described in:
+ V.Fioretti et al., STI: Ultraviolet to Gamma Ray. Vol.10699,
+ SPIE, 2018.
+ The main purpose of the simulation is the estimation of the induced
+ residual background at the pore exit caused by proton scattering at
+ grazing angles.
+
+
xray_TESdetector
+
+
New example of the application of Geant4 in a space environment.
+ It represents an x-ray detector derived from the X-IFU, the X-ray
+ spectrometer designed and developed by the European Space Agency
+ (ESA) for use on the ATHENA telescope. The main purpose of the
+ simulation is the estimation of the particle radiation background
+ impacting on the detector.
+
+
+
basic
+
+
Applied clang-tidy checks and use auto in main()
+ where suitable and not done by clang-tidy.
+
Fixed and improved setting of G4VisAttribute: do not create vis
+ attributes with new (causing memory leak); use Geant4 predefined
+ colours (for clarity).
+
B1
+
+
In main(), use constructor with arguments
+ G4VisExecutive(argc, argv).
+
Moved tsg_offscreen.mac to example B5.
+
+
B2
+
+
Removed unsused and unimplemented method declaration
+ PrimaryGeneratorAction::SetRandomFlag().
+
+
B4
+
+
Removed unsused and unimplemented method declaration
+ PrimaryGeneratorAction::SetRandomFlag().
+
In PrimaryGeneratorAction, default e-, 300 MeV.
+
RunAction: adjusted binning of histograms.
+
Updated run1.mac and run2.mac macros.
+
+
B5
+
+
DetectorConstruction: added initialization of fMessenger.
+
Added tsg_offscreen.mac (moved from example B1).
+
Removed unused init.mac macro.
+
+
+
extended
+
+
analysis
+
+
Moved default declaration of destructor in header.
+
AnaEx03
+
+
Updated to demonstrate new analysis manager commands
+ for deleting selected histograms
+
Added UI command /AnaEx03/runAction/printStatistic
+ to call PrintStatistics(). This allows to call this
+ function at the end of run before resetting histograms and
+ avoids printing empty statistics in MT mode.
+
Added plotter.mac macro.
+
+
B1Con
+
+
Synchronised with changes in example B1.
+
Added accumulable class for a vector of Edep per event.
Replaced use of deprecated G4TouchableHistoryHandle with
+ G4TouchableHandle.
+
+
GB07
+
+
Coding guidelines: removed tabulations in main().
+
+
ReverseMC01
+
+
Removed inclusion of unneeded and now obsolete
+ G4strstreambuf header.
+
+
+
common
+
+
Fixes for Doxygen.
+
+
electromagnetic
+
+
Code revision of all headers.
+
TestEm0
+
+
New input macro ion.mac.
+
RunAction: restore output format.
+
+
TestEm1
+
+
New input macro etaDecay.mac.
+
PhysicsList::AddRadioactiveDecay():
+ set ARM false.
+
+
TestEm3
+
+
Compute and plot energy leakage and total energy.
+
Run: fixed division by zero for the case if energy
+ deposition in a layer is zero.
+
+
TestEm4
+
+
RunAction: print run conditions and histograms statistics.
+
+
TestEm6
+
+
Coding guidelines: removed tabulations from RunAction.
+
Removed useless macro TestEm6_xs.in.
+
Fixed warning in plotHisto macro.
+
+
TestEm7
+
+
Added extra macro for test muon dEdx and Range.
+
+
TestEm8
+
+
Applied clang-format.
+
+
TestEm11
+
+
Compute and plot energy leakage and total energy.
+
In PhysicsList::RadioactiveDecay():
+ setARM = false.
+
+
TestEm16
+
+
Use XRayReflection_data from G4EMLOW-8.5.
+
Minor update of SteppingAction.
+
+
TestEm18
+
+
Fix in destructor of StakingAction.
+
+
+
eventgenerator
+
+
particleGun
+
+
Code revision of all headers.
+
+
pythia/decayer6
+
+
Fixes for Doxygen: moved class description comments after
+ namespace.
+
Updated common directory.
+
+
userPrimaryGenerator
+
+
Code revision of all headers.
+
+
+
field
+
+
Applied clang-tidy and new coding guidelines.
+
field01
+
+
Coding guidelines: split long lines.
+
+
field04
+
+
Replaced use of deprecated G4TouchableHistoryHandle with
+ G4TouchableHandle.
+
+
+
g3tog4
+
+
Fixes for Doxygen: moved class description comments after
+ namespace.
+
+
geometry
+
+
transforms
+
+
Applied clang-tidy and new coding guidelines.
+
+
vecGeomNavigation
+
+
Coding guidelines: split long lines, added separators in
+ VG01ActionInitialization.
+
Removed duplicate macro run-ntst.mac.
+
+
+
hadronic
+
+
Code revision of all headers.
+
FlukaCern
+
+
New Geant4-FLUKA interface and two hadronic examples,
+ providing access to FLUKA-Cern hadron-nucleus inelastic
+ physics:
+
+
ProcessLevel/CrossSection: allows the study of Geant4
+ cross-sections, and FLUKA-Cern hadron-nucleus reaction
+ cross-sections.
+
ProcessLevel/FinalState: shows how to simulate inelastic
+ hadron-nucleus interactions, using Geant4 or FLUKA-Cern
+ models.
+
+
+
Hadr01
+
+
Added UI commands to enable neutron general process and
+ extra macro file.
+
In main(), added possibility to change transition
+ energy cascade/string in the command line; added possibility
+ to enable charge exchange physics in the command line.
+ Prepare PhysicsList for neutrino and charge exchange physics.
Fixed bug in profile histogram; removed methods not needed;
+ replaced virtual keywords with override; use default and
+ deleted constructor in modified classes.
+
In hadr01.in, added integration test of neutrino and charge
+ exchange physics.
+
+
Hadr03
+
+
In main(), set ProduceFissionFragments to
+ true.
+
PhysicsList: return to use QGSP_BIC_HP.
+
SteppingAction: added protection against secondaries.
+
Run::EndOfRun(): format adjustement.
+
+
Hadr04
+
+
PhysicsList: removed definition of meV.
+
+
Hadr05
+
+
Compute and plot Edep, Eleak, Etotal=Edep+Eleak.
+
+
Hadr06
+
+
Compute and plot total energy released.
+
+
Hadr07
+
+
Compute and plot Edep, Eleak, Etotal=Edep+Eleak.
+
Added neutron.mac macro.
+
+
Hadr08
+
+
Fix in BiasingOperation::ApplyFinalStateBiasing():
+ added calls to biased processes
+ CrossSectionDataStore::ComputeCrossSection().
+ This fixes a break observed in the ALICE simulation, that
+ could be reproduced in this example by changing "G4_Si"
+ with "G4_SILICON_DIOXIDE".
+
+
Hadr10
+
+
In SteppingAction, protecting the argument of acos()
+ to be within range.
+
+
ParticleFluence
+
+
Run, TrackingAction: replaced G4int with G4long for keeping
+ the information on the multiplicity of particle production.
+ This avoids rare cases of negative multiplicities due to
+ integer overflow, seen for runs with at least 4000 events,
+ in particular with heavy materials, such as Tungsten and
+ Lead.
+
Renamed macro files from *.g4 to *.in
+
+
+
medical/DICOM
+
+
DicomNestedPhantomParameterisation: fixed assignment of material
+ pointer in ComputeMaterial(), affecting MT runs.
+
Removed forward declaration for G4VTouchable.
+
Fixes in DicomDetectorConstruction: added correct replica depths
+ for x,y,z of G4PSDoseDeposit3D for nested parameterisation
+ and corrected voxel ordering according to the fixed formula within
+ G4PSDoseDeposit3D; added environment variable to switch to standard
+ G4PSDoseDeposit in the case of regular navigation (default).
+
+
medical/dna
+
+
dnadamage1:
+
+
Changes in analysis macros: fixed bug where Boolean
+ Primaryflag was not updated for new primary;
+ count direct and indirect SB (strand break); introduced
+ clustering algorithm to extract SSB, DSB (simple, complex);
+ renamed plot.C to scandamages.C.
+
+
dnadamage2:
+
+
New example providing scoring of plasmid DNA strand breaks
+ using the IRT method (J. Ramos-Mendez, et al., Medical
+ Physics, 2020, 47(11), 5919-5930).
+ Extends the chem6 example by adding DNA molecule information
+ and the scoring of Strand Breaks. Experimental conditions are
+ considered such as oxygen and DMSO molar concentrations.
+
+
dnaphysics:
+
+
Update SteppingAction with units and addition of gamma
+ processes.
+
PhysicsList: more clear implementation of two cases: usage
+ of a DNA physics constructor or standard physics constructor
+ plus DNA model activator.
+
Updated dnaphysics.in macro and TrackingCut for heavy ions.
+
+
icsd:
+
+
PhysicsList: deleted unused models; apdated
+ RegisterModel() function with new structure.
+ Deleted G4DNAVacuumModel.
+
+
moleculardna:
+
+
Migrated data download to CERN EOS area for examples.
+
Added ability to read particles from a space phase file
+ (csv).
+
Updated ecoli.mac file.
+
Removed unused public data member nLineCounter in
+ PrimaryGeneratorSourceGRASCSV.
+
Overall code revision with clang-tidy.
+
+
range:
+
+
Added DNA materials.
+
Simplified PhysicsList.
+
Use G4RunManagerFactory in main().
+
+
scavenger:
+
+
Fixes for Doxygen
+
+
splitting:
+
+
Fixes in usage of analysis: close analysis file in
+ EndOfRunAction, instead of destructor; do not delete
+ analysis manager.
+
Fixed the Root file name in plot.C.
+
+
spower:
+
+
Added DNA materials.
+
Simplified PhysicsList.
+
Added extra macro alpha.in.
+
Code cleanup in main().
+
+
UHDR:
+
+
New example showing how to activate the mesoscopic model
+ in chemistry and combine with SBS model (Tran et al.,
+ Int. J. Mol. Sci. 22 (2021) 6023).
+ It allows to simulate chemical reactions longtime
+ (beyond 1 us) of post-irradiation.
+
+
+
medical/radiobiology
+
+
New application realized for dosimetric and radiobiological
+ applications of proton and ion beams. Specific tools were built
+ to evaluate primaries and secondary energy spectra and a set of
+ classes, dedicated to the computation of biological, as LET
+ (Linear Energy Transfer), RBE (Relative Biological Effectiveness),
+ Survival Fraction, and physical (as dose and fluence) quantities
+ are implemented.
+
+
optical
+
+
Applied clang-tidy fixes to code.
+
OpNovice
+
+
Applied coding guidelines, especially use of override and
+ variable initialization.
+
+
OpNovice2
+
+
Added command to kill photons on reaching second surface;
+ provides a way to visualize boundary scattering.
+
In scint_by_particle.mac, use normal verbosity (1).
+ Use particle-specific time constants.
+
Applied coding guidelines, especially use of override and
+ variable initialization.
+
+
wls
+
+
Applied coding guidelines, especially use of override and
+ variable initialization.
+
+
+
parallel
+
+
MPI
+
+
Fixed typo in exMPI04 for mistyping of G4Filesystem
+ in RunActionMaster.
+
Added two new functions in G4MPIrunmanager to access number
+ of events in master / slave.
+
Updated analysis classes and exMPI04 for changes in analysis.
+
Promoted struct G4RootMpiPNtupleDescription to class.
+
Renamed v.mac in vis.mac.
+
+
+
parameterisations
+
+
Applied clang-tidy fixes.
+
gflash
+
+
gflasha: use G4PhysListFactory for physics list
+ initialization.
+
gflash2: removed unused statics from DetectorConstruction
+ class.
+
Some code cleanup in gflash1,2,3,a.
+
+
Par03
+
+
Replaced use of deprecated functions with modern
+ equivalents.
+
+
Par04
+
+
Introduce physical readout structure in parallel world.
+
Set run manager type from command line.
+
ONNX version upgrade; verified on 1.14.
+
Added CUDA execution provider to run the inference on
+ GPU with ONNXruntime.
+
+
+
persistency
+
+
gdml/G01
+
+
Added comment in main() to demonstrate how to set
+ alternative schema file for validation while parsing a GDML
+ document.
+
+
P03
+
+
Removed visualization settings from batch macros.
+
+
+
physicslists
+
+
Removed shared module as now redundant.
+
+
polarisation/Pol01
+
+
Ported example to run in MT mode.
+
Make DetectorConstruction use GeometryHasBeenModified()
+ and not recreate the geometry in material definition.
+
Removed broken histo.mac macro.
+
Removed annoining printout for the default macro.
+
Converted classes to user defined accumulables.
+
Added analysis macro plotResults.C.
+
+
radioactivedecay
+
+
Code revision of all headers.
+
Activation
+
+
Added run.mac macro.
+
+
rdecay02
+
+
Added run.mac macro.
+
+
+
runAndEvent
+
+
RE02
+
+
Removed forward declaration of G4VTouchable.
+
+
RE07
+
+
Added separators in EmStandardPhysicsTrackingManager.
+
+
+
+
vidualization
+
+
perspective
+
+
PerspectiveVisAction: fixed missing include for G4Transform3D
+ header.
+
In PerspectiveVisAction header, removed unnecessary forward
+ class declarations. Applied clang-format.
+
+
standalone
+
+
Included an example of DrawGeometry. DrawGeometryVisAction
+ shows how to visualise the geometry alone, i.e., without run
+ manager and physics.
+
+
vtk
+
+
New Vtk specific example demonstrating new features only
+ available in the VTK viewer.
+
+
+
+
+
+
+
+
+
diff --git a/cmake/History b/cmake/History
index 167656b37b3..5efacb20e9d 100644
--- a/cmake/History
+++ b/cmake/History
@@ -5,6 +5,39 @@ which **must** added in reverse chronological order (newest at the top).
It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
+
+## 2023-11-28 Ben Morgan (cmake-V11-01-30)
+- Bump minimum VecGeom version to 1.2.6
+
+## 2023-11-14 Ben Morgan (cmake-V11-01-29)
+- Export QT_VERSION value to GNUmake setup script
+
+## 2023-11-03 Ben Morgan (cmake-V11-01-28)
+- Prefix ZLIB/EXPAT variables with "G4" to prevent clash with VTK's own internal
+ find of these packages.
+
+## 2023-10-09 Ben Morgan (cmake-V11-01-27)
+- Use FindPython in place of deprecated FindPythonInterp in FindStatTest
+
+## 2023-10-06 Ben Morgan (cmake-V11-01-26)
+- Update G4INCL to v1.2
+- Update G4EMLOW to v8.5
+
+## 2023-09-06 Stewart Boogert (cmake-V11-01-25)
+- Update VTK module deps for geometry IO
+- Updated module init for VTK
+
+## 2023-09-05 Ben Morgan (cmake-V11-01-24)
+- Allow source code modules to have an AUTOMOC property and promote this to
+ consuming target to remove hardcoding of Qt-using modules
+
+## 2023-08-02 Ben Morgan (cmake-V11-01-23)
+- Export non-cache variables to Geant4PackageCache to support CMake>=3.27
+ - Fixes Bugzilla 2556
+
+## 2023-07-05 Igor Semeniouk (cmake-V11-01-22)
+- print md5sum in coreutils format for compatibility with busybox
+
## 2023-06-21 Ben Morgan (cmake-V11-01-21)
- Remobe obsolete and confusing GEANT4_BUILD_TESTS option and configuration
diff --git a/cmake/Modules/FindStatTest.cmake b/cmake/Modules/FindStatTest.cmake
index 9e6e56cf2f9..8265e580862 100644
--- a/cmake/Modules/FindStatTest.cmake
+++ b/cmake/Modules/FindStatTest.cmake
@@ -45,8 +45,8 @@ else()
set(_root_isok TRUE)
# - Check if python interpreter is correct version
# (the one compatible with root)
- find_package(PythonInterp ${ROOT_PYTHONVER} QUIET)
- if(NOT PYTHONINTERP_FOUND)
+ find_package(Python ${ROOT_PYTHONVER} QUIET COMPONENTS Interpreter)
+ if(NOT Python_Interpreter_FOUND)
MESSAGE(STATUS "StatTest: Python interpreter of version ${ROOT_PYTHONVER} not found --> StatTest package disabled")
set(STATTEST_FOUND FALSE)
set(_python_isok FALSE)
diff --git a/cmake/Modules/G4CMakeUtilities.cmake b/cmake/Modules/G4CMakeUtilities.cmake
index 16f7b3c8c08..84acfcd5e7e 100644
--- a/cmake/Modules/G4CMakeUtilities.cmake
+++ b/cmake/Modules/G4CMakeUtilities.cmake
@@ -221,6 +221,21 @@ function(geant4_export_package_variables _file)
get_property(__var_value CACHE ${__var} PROPERTY VALUE)
get_property(__var_type CACHE ${__var} PROPERTY TYPE)
get_property(__var_help CACHE ${__var} PROPERTY HELPSTRING)
+ # Variable may not be in cache, only local (canonical case being EXPAT_LIBRARY since CMake 3.27)
+ # We still need to account for these because they may be required to be in the CACHE at least set in
+ # earlier versions.
+ # 1. Variable may not be in cache, only local (canonical case being EXPAT_LIBRARY since CMake 3.27)
+ # We still need to account for these because they may be required to be in the CACHE at least set in
+ # earlier versions.
+ # 2. Depending on CMake version, variable may be in cache but unitialized, here we want the local value
+ if(((NOT __var_value) AND (NOT __var_type) AND (NOT __var_help)) OR (__var_type STREQUAL "UNINITIALIZED"))
+ set(__var_value ${${__var}})
+ # TODO: set type based on whether it looks like a bool or path, but PATH almost invariably what we save
+ # Only important in cmake GUI and if value needs to be changed, which we don't if package cache is used
+ set(__var_type PATH)
+ set(__var_help "no documentation, not a cache value")
+ endif()
+
list(APPEND __local_build_setting "geant4_set_and_check_package_variable(${__var} \"${__var_value}\" ${__var_type} \"${__var_help}\")")
endforeach()
diff --git a/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake b/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake
index cb48ae884ee..cf532d121fc 100644
--- a/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake
+++ b/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake
@@ -623,6 +623,7 @@ macro(_g4tc_configure_tc_variables SHELL_FAMILY SCRIPT_NAME)
# - Qt UI AND VIS
if(GEANT4_USE_QT)
+ _g4tc_setenv_command(GEANT4_TC_QT_VERSION ${SHELL_FAMILY} QT_VERSION ${QT_VERSION_MAJOR})
_g4tc_setenv_command(GEANT4_TC_QTHOME ${SHELL_FAMILY} QTHOME ${G4QTHOME})
_g4tc_setenv_command(GEANT4_TC_QTLIBPATH ${SHELL_FAMILY} QTLIBPATH ${G4QTLIBPATH})
_g4tc_setenv_command(GEANT4_TC_G4UI_USE_QT ${SHELL_FAMILY} G4UI_USE_QT 1)
diff --git a/cmake/Modules/G4DatasetDefinitions.cmake b/cmake/Modules/G4DatasetDefinitions.cmake
index be80c4c45e8..4f9e038dea1 100644
--- a/cmake/Modules/G4DatasetDefinitions.cmake
+++ b/cmake/Modules/G4DatasetDefinitions.cmake
@@ -18,11 +18,11 @@ geant4_add_dataset(
# - Low energy electromagnetics
geant4_add_dataset(
NAME G4EMLOW
- VERSION 8.4
+ VERSION 8.5
FILENAME G4EMLOW
EXTENSION tar.gz
ENVVAR G4LEDATA
- MD5SUM 59e2aea7f089f0b97f588b4b8e85dd28
+ MD5SUM 146d0625d8d39f294056e1618271bc46
)
# - Photon evaporation
@@ -99,11 +99,11 @@ geant4_add_dataset(
# - INCL
geant4_add_dataset(
NAME G4INCL
- VERSION 1.1
+ VERSION 1.2
FILENAME G4INCL
EXTENSION tar.gz
ENVVAR G4INCLDATA
- MD5SUM c719b61b1971a823188fc6c937e48287
+ MD5SUM 0a76df936839bb557dae7254117eb58e
)
# - ENSDFSTATE
diff --git a/cmake/Modules/G4DeveloperAPI.cmake b/cmake/Modules/G4DeveloperAPI.cmake
index 9ab9efd2842..61ca9b0f8f6 100644
--- a/cmake/Modules/G4DeveloperAPI.cmake
+++ b/cmake/Modules/G4DeveloperAPI.cmake
@@ -1076,7 +1076,7 @@ endmacro()
# This is used internally by the property get/set functions.
#
function(__geant4_module_validate_property _property)
- if(NOT (${_property} MATCHES "PUBLIC_HEADERS|PRIVATE_HEADERS|SOURCES|PRIVATE_COMPILE_DEFINITIONS|PUBLIC_COMPILE_DEFINITIONS|INTERFACE_COMPILE_DEFINITIONS|PRIVATE_INCLUDE_DIRECTORIES|PUBLIC_INCLUDE_DIRECTORIES|INTERFACE_INCLUDE_DIRECTORIES|PRIVATE_LINK_LIBRARIES|PUBLIC_LINK_LIBRARIES|INTERFACE_LINK_LIBRARIES|PARENT_TARGET|CMAKE_LIST_FILE|GLOBAL_DEPENDENCIES|IS_INTERFACE"))
+ if(NOT (${_property} MATCHES "PUBLIC_HEADERS|PRIVATE_HEADERS|SOURCES|PRIVATE_COMPILE_DEFINITIONS|PUBLIC_COMPILE_DEFINITIONS|INTERFACE_COMPILE_DEFINITIONS|PRIVATE_INCLUDE_DIRECTORIES|PUBLIC_INCLUDE_DIRECTORIES|INTERFACE_INCLUDE_DIRECTORIES|PRIVATE_LINK_LIBRARIES|PUBLIC_LINK_LIBRARIES|INTERFACE_LINK_LIBRARIES|PARENT_TARGET|CMAKE_LIST_FILE|GLOBAL_DEPENDENCIES|IS_INTERFACE|AUTOMOC"))
message(FATAL_ERROR "Undefined property '${_property}'")
endif()
endfunction()
@@ -1357,13 +1357,12 @@ function(__geant4_add_library _name _type)
endif()
endforeach()
- # Temp workaround for modules needing Qt. We use AUTOMOC, but can't yet set
- # it on a per module basis. However, only have four modules that require
- # moc-ing, so hard code for now.
- # TODO: likely need an additional "module target properties" to hold things
- # that can be passed to set_target_properties
- if(__g4mod MATCHES "G4UIimplementation|G4OpenGL|G4OpenInventor|G4ToolsSG" AND GEANT4_USE_QT)
- set_target_properties(${_target_name} PROPERTIES AUTOMOC ON)
+ # Apply any additional properties supported in modules to target
+ if(GEANT4_USE_QT)
+ geant4_get_module_property(_needs_moc ${__g4mod} AUTOMOC)
+ if(_needs_moc)
+ set_target_properties(${_target_name} PROPERTIES AUTOMOC ON)
+ endif()
endif()
endforeach()
diff --git a/cmake/Modules/G4InterfaceOptions.cmake b/cmake/Modules/G4InterfaceOptions.cmake
index 664ccba3f6d..a1eba1d54cf 100644
--- a/cmake/Modules/G4InterfaceOptions.cmake
+++ b/cmake/Modules/G4InterfaceOptions.cmake
@@ -74,12 +74,14 @@ mark_as_advanced(GEANT4_USE_QT_QT6)
# - Vtk
option(GEANT4_USE_VTK "Build Geant4 with VTK visualisation" OFF)
-mark_as_advanced(GEANT4_USE_VTK)
if(GEANT4_USE_VTK)
find_package(VTK 9 REQUIRED COMPONENTS
CommonColor
InteractionStyle
IOExport
+ IOGeometry
+ IOLegacy
+ IOPLY
GUISupportQt
RenderingVolumeOpenGL2
)
diff --git a/cmake/Modules/G4OptionalComponents.cmake b/cmake/Modules/G4OptionalComponents.cmake
index 7b3a1f98364..677989a072f 100644
--- a/cmake/Modules/G4OptionalComponents.cmake
+++ b/cmake/Modules/G4OptionalComponents.cmake
@@ -60,15 +60,13 @@ if(WIN32)
set(EXPAT_FOUND TRUE)
set(GEANT4_USE_BUILTIN_EXPAT TRUE)
set(EXPAT_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/source/externals/expat/include)
- set(EXPAT_LIBRARIES G4expat)
+ set(G4EXPAT_LIBRARIES G4expat)
else()
option(GEANT4_USE_SYSTEM_EXPAT "Use system Expat library" ON)
if(GEANT4_USE_SYSTEM_EXPAT)
# If system package requested, find it or fail
find_package(EXPAT REQUIRED)
- # Shim only needed until we require CMake >= 3.10
- include("${CMAKE_CURRENT_LIST_DIR}/G4EXPATShim.cmake")
# Check version requirement externally to provide information
# on using internal expat.
@@ -78,6 +76,8 @@ else()
unset(EXPAT_FOUND)
unset(EXPAT_INCLUDE_DIR CACHE)
unset(EXPAT_LIBRARY CACHE)
+ unset(EXPAT_LIBRARY_RELEASE CACHE)
+ unset(EXPAT_LIBRARY_DEBUG CACHE)
message(FATAL_ERROR
"Detected system expat header and library:
EXPAT_INCLUDE_DIR = ${__badexpat_include_dir}
@@ -87,13 +87,13 @@ Set the above CMake variables to point to an expat install of the required versi
endif()
# Backward compatibility for sources.cmake using the variable
- set(EXPAT_LIBRARIES EXPAT::EXPAT)
- geant4_save_package_variables(EXPAT EXPAT_INCLUDE_DIR EXPAT_LIBRARY)
+ set(G4EXPAT_LIBRARIES EXPAT::EXPAT)
+ geant4_save_package_variables(EXPAT EXPAT_INCLUDE_DIR EXPAT_LIBRARY EXPAT_LIBRARY_RELEASE EXPAT_LIBRARY_DEBUG)
else()
set(EXPAT_FOUND TRUE)
set(GEANT4_USE_BUILTIN_EXPAT TRUE)
set(EXPAT_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/source/externals/expat/include)
- set(EXPAT_LIBRARIES G4expat)
+ set(G4EXPAT_LIBRARIES G4expat)
endif()
endif()
@@ -105,12 +105,12 @@ option(GEANT4_USE_SYSTEM_ZLIB "Use system zlib library" OFF)
if(GEANT4_USE_SYSTEM_ZLIB)
find_package(ZLIB REQUIRED)
# Backward compatibility for sources.cmake using the variable
- set(ZLIB_LIBRARIES ZLIB::ZLIB)
+ set(G4ZLIB_LIBRARIES ZLIB::ZLIB)
geant4_save_package_variables(ZLIB ZLIB_INCLUDE_DIR ZLIB_LIBRARY_DEBUG ZLIB_LIBRARY_RELEASE)
else()
set(ZLIB_FOUND TRUE)
set(GEANT4_USE_BUILTIN_ZLIB TRUE)
- set(ZLIB_LIBRARIES G4zlib)
+ set(G4ZLIB_LIBRARIES G4zlib)
endif()
geant4_add_feature(GEANT4_USE_SYSTEM_ZLIB "Using system zlib library")
@@ -295,7 +295,7 @@ endif()
# - Geant4 USolids/VecGom setup
if(GEANT4_USE_ALL_USOLIDS OR GEANT4_USE_PARTIAL_USOLIDS)
- find_package(VecGeom 1.2.0 REQUIRED)
+ find_package(VecGeom 1.2.6 REQUIRED)
geant4_save_package_variables(VecGeom VecGeom_DIR)
# If VecCore_DIR is set, means updated VecGeom install used, so
diff --git a/cmake/Templates/geant4-config.in b/cmake/Templates/geant4-config.in
index 9f2b496a49d..ebf362ec9bf 100644
--- a/cmake/Templates/geant4-config.in
+++ b/cmake/Templates/geant4-config.in
@@ -382,10 +382,10 @@ install_datasets()
echo "- error: no openssl or md5sum executable found"
exit 1
else
- G4MD5CMD="${G4MD5SUM} --tag"
+ G4MD5CMD="${G4MD5SUM}"
fi
else
- G4MD5CMD="${G4OPENSSL} dgst -md5"
+ G4MD5CMD="${G4OPENSSL} dgst -md5 -r"
fi
G4TAR=$(which tar)
@@ -438,7 +438,7 @@ install_datasets()
# Validate bundle hash (basic)
dataset_md5=$(echo $ds | cut -d "|" -f5)
- actual_md5=$(${G4MD5CMD} ${g4downloaddir}/${dataset_file} | tr -d ' ' | cut -d"=" -f2)
+ actual_md5=$(${G4MD5CMD} ${g4downloaddir}/${dataset_file} | cut -d ' ' -f1)
echo "+ checking md5 of ${dataset_file}"
if [ "${actual_md5}" != "${dataset_md5}" ] ; then
echo "- md5 mismatch for '${dataset_file}' : ${actual_md5}(actual) != ${dataset_md5}(expected)"
diff --git a/cmake/Templates/geant4make-skeleton.in b/cmake/Templates/geant4make-skeleton.in
index 4b9de56f473..06be2b236c9 100644
--- a/cmake/Templates/geant4make-skeleton.in
+++ b/cmake/Templates/geant4make-skeleton.in
@@ -225,6 +225,7 @@
#-----------------------------------------------------------------------
# Qt UI/Vis
#
+@GEANT4_TC_QT_VERSION@
@GEANT4_TC_QTHOME@
@GEANT4_TC_QTLIBPATH@
@GEANT4_TC_QTLIBS@
diff --git a/config/History b/config/History
index 392db5a670a..12a5ceceaab 100644
--- a/config/History
+++ b/config/History
@@ -6,17 +6,20 @@ It must **not** be used as a substitute for writing good git commit messages!
--------------------------------------------------------------------------------
+## 2023-11-13 Gabriele Cosmo (config-V11-01-03)
+- Updated system scripts for Qt settings: removed Qt4 and added Qt6.
+
## 2023-05-10 Ben Morgan (config-V11-01-02)
-- Update config scripts for split of G4persistency library
+- Updated config scripts for split of G4persistency library.
## 2023-04-02 Ben Morgan (config-V11-01-01)
- No longer link to QtPrintSupport, which is not used in the toolkit.
## 2023-02-01 Ben Morgan (config-V11-01-00)
-- Update UI/interfaces include paths to reflect new organization
+- Updated UI/interfaces include paths to reflect new organization.
## 2022-11-02 Gabriele Cosmo (config-V11-00-12)
-- Silence ld warnings in Darwin setups.
+- Silenced ld warnings in Darwin setups.
## 2022-10-31 Gabriele Cosmo (config-V11-00-11)
- Corrected buffer size in liblist.c tool.
diff --git a/config/sys/Darwin-clang.gmk b/config/sys/Darwin-clang.gmk
index b19312cb741..0844d2c0712 100644
--- a/config/sys/Darwin-clang.gmk
+++ b/config/sys/Darwin-clang.gmk
@@ -91,6 +91,9 @@ ifeq ($(G4SYSTEM),Darwin-clang)
ifndef QTHOME
QTHOME := /Library/Frameworks
endif
+ ifndef QT_VERSION
+ QT_VERSION := 5
+ endif
ifeq ($(QTHOME),/Library/Frameworks)
ifndef QTMOC
QTMOC := /usr/bin/moc
@@ -103,6 +106,9 @@ ifeq ($(G4SYSTEM),Darwin-clang)
QTFLAGS += -I $(QTHOME)/Qt3DCore.framework/Headers
QTFLAGS += -I $(QTHOME)/Qt3DExtras.framework/Headers
QTFLAGS += -I $(QTHOME)/Qt3DRender.framework/Headers
+ ifeq ($(QT_VERSION),6)
+ QTFLAGS += -I $(QTHOME)/QtOpenGLWidgets.framework/Headers
+ endif
QTFLAGS += -I $(QTHOME)/include/Qt -I$(QTHOME)/include
endif
ifndef QTLIBPATH
@@ -129,8 +135,14 @@ ifeq ($(G4SYSTEM),Darwin-clang)
ifndef GLQTLIBS
ifdef QT_AS_FRAMEWORK
GLQTLIBS := $(QTLIBPATH) -framework QtCore -framework QtGui -framework QtOpenGL
+ ifeq ($(QT_VERSION),6)
+ GLQTLIBS += -framework QtOpenGLWidgets
+ endif
else
GLQTLIBS := -L$(QTLPATH) -lQtCore -lQtGui -lQtOpenGL
+ ifeq ($(QT_VERSION),6)
+ GLQTLIBS += -lQtOpenGLWidgets
+ endif
endif
endif
else
@@ -138,7 +150,7 @@ ifeq ($(G4SYSTEM),Darwin-clang)
QTMOC := $(QTHOME)/bin/moc
endif
QTLPATH := $(QTHOME)/lib
- ifndef QTFLAGS # Qt5
+ ifndef QTFLAGS
QTFLAGS := -I $(QTLPATH)/QtCore.framework/Headers
QTFLAGS += -I $(QTLPATH)/QtGui.framework/Headers
QTFLAGS += -I $(QTLPATH)/QtWidgets.framework/Headers
@@ -147,6 +159,9 @@ ifeq ($(G4SYSTEM),Darwin-clang)
QTFLAGS += -I $(QTLPATH)/Qt3DExtras.framework/Headers
QTFLAGS += -I $(QTLPATH)/Qt3DRender.framework/Headers
QTFLAGS += -I $(QTHOME)/include/Qt -I$(QTHOME)/include
+ ifeq ($(QT_VERSION),6)
+ QTFLAGS += -I $(QTHOME)/QtOpenGLWidgets.framework/Headers
+ endif
endif
ifndef QTLIBS
QTLIBS := -F$(QTLPATH) -framework QtCore -framework QtGui
@@ -161,6 +176,9 @@ ifeq ($(G4SYSTEM),Darwin-clang)
GLQTLIBS := -F$(QTLPATH) -framework QtCore -framework QtGui
GLQTLIBS += -framework QtWidgets
GLQTLIBS += -framework QtOpenGL
+ ifeq ($(QT_VERSION),6)
+ GLQTLIBS += -framework QtOpenGLWidgets
+ endif
endif
endif
diff --git a/config/sys/Darwin-g++.gmk b/config/sys/Darwin-g++.gmk
index 173dcdc73e7..a4cac49af97 100644
--- a/config/sys/Darwin-g++.gmk
+++ b/config/sys/Darwin-g++.gmk
@@ -120,6 +120,9 @@ ifeq ($(G4SYSTEM),Darwin-g++)
ifndef QTHOME
QTHOME := /Library/Frameworks
endif
+ ifndef QT_VERSION
+ QT_VERSION := 5
+ endif
ifeq ($(QTHOME),/Library/Frameworks)
ifndef QTMOC
QTMOC := /usr/bin/moc
@@ -132,6 +135,9 @@ ifeq ($(G4SYSTEM),Darwin-g++)
QTFLAGS += -I $(QTHOME)/Qt3DCore.framework/Headers
QTFLAGS += -I $(QTHOME)/Qt3DExtras.framework/Headers
QTFLAGS += -I $(QTHOME)/Qt3DRender.framework/Headers
+ ifeq ($(QT_VERSION),6)
+ QTFLAGS += -I $(QTHOME)/QtOpenGLWidgets.framework/Headers
+ endif
QTFLAGS += -I $(QTHOME)/include/Qt -I$(QTHOME)/include
endif
ifndef QTLIBPATH
@@ -158,8 +164,14 @@ ifeq ($(G4SYSTEM),Darwin-g++)
ifndef GLQTLIBS
ifdef QT_AS_FRAMEWORK
GLQTLIBS := $(QTLIBPATH) -framework QtCore -framework QtGui -framework QtOpenGL
+ ifeq ($(QT_VERSION),6)
+ GLQTLIBS += -framework QtOpenGLWidgets
+ endif
else
GLQTLIBS := -L$(QTLPATH) -lQtCore -lQtGui -lQtOpenGL
+ ifeq ($(QT_VERSION),6)
+ GLQTLIBS += -lQtOpenGLWidgets
+ endif
endif
endif
else
@@ -167,7 +179,7 @@ ifeq ($(G4SYSTEM),Darwin-g++)
QTMOC := $(QTHOME)/bin/moc
endif
QTLPATH := $(QTHOME)/lib
- ifndef QTFLAGS # Qt5
+ ifndef QTFLAGS
QTFLAGS := -I $(QTLPATH)/QtCore.framework/Headers
QTFLAGS += -I $(QTLPATH)/QtGui.framework/Headers
QTFLAGS += -I $(QTLPATH)/QtWidgets.framework/Headers
@@ -175,6 +187,9 @@ ifeq ($(G4SYSTEM),Darwin-g++)
QTFLAGS += -I $(QTLPATH)/Qt3DCore.framework/Headers
QTFLAGS += -I $(QTLPATH)/Qt3DExtras.framework/Headers
QTFLAGS += -I $(QTLPATH)/Qt3DRender.framework/Headers
+ ifeq ($(QT_VERSION),6)
+ QTFLAGS += -I $(QTHOME)/QtOpenGLWidgets.framework/Headers
+ endif
QTFLAGS += -I $(QTHOME)/include/Qt -I$(QTHOME)/include
endif
ifndef QTLIBS
@@ -190,6 +205,9 @@ ifeq ($(G4SYSTEM),Darwin-g++)
GLQTLIBS := -F$(QTLPATH) -framework QtCore -framework QtGui
GLQTLIBS += -framework QtWidgets
GLQTLIBS += -framework QtOpenGL
+ ifeq ($(QT_VERSION),6)
+ GLQTLIBS += -framework QtOpenGLWidgets
+ endif
endif
endif
diff --git a/config/sys/Linux-clang.gmk b/config/sys/Linux-clang.gmk
index 3f9ad6fc939..5a24a903c8c 100644
--- a/config/sys/Linux-clang.gmk
+++ b/config/sys/Linux-clang.gmk
@@ -96,23 +96,17 @@ ifeq ($(G4SYSTEM),Linux-clang)
QT_VERSION := 5
endif
- ifeq ($(QT_VERSION),5)
- ifndef QTFLAGS # Qt5
- QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt
- QTFLAGS += -I $(QTHOME)/include/QtCore
- QTFLAGS += -I $(QTHOME)/include/QtGui
- QTFLAGS += -I $(QTHOME)/include/QtWidgets
- QTFLAGS += -I $(QTHOME)/include/QtOpenGL
- QTFLAGS += -I $(QTHOME)/include/Qt3DCore
- QTFLAGS += -I $(QTHOME)/include/Qt3DExtras
- QTFLAGS += -I $(QTHOME)/include/Qt3DRender
- endif
- else # Qt4
- ifndef QTFLAGS
- QTFLAGS := -I$(QTHOME)/include -I$(QTHOME)/include/Qt
- QTFLAGS += -I$(QTHOME)/include/QtCore
- QTFLAGS += -I$(QTHOME)/include/QtGui
- QTFLAGS += -I$(QTHOME)/include/QtOpenGL
+ ifndef QTFLAGS
+ QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt
+ QTFLAGS += -I $(QTHOME)/include/QtCore
+ QTFLAGS += -I $(QTHOME)/include/QtGui
+ QTFLAGS += -I $(QTHOME)/include/QtWidgets
+ QTFLAGS += -I $(QTHOME)/include/QtOpenGL
+ QTFLAGS += -I $(QTHOME)/include/Qt3DCore
+ QTFLAGS += -I $(QTHOME)/include/Qt3DExtras
+ QTFLAGS += -I $(QTHOME)/include/Qt3DRender
+ ifeq ($(QT_VERSION),6)
+ QTFLAGS += -I $(QTHOME)/include/QtOpenGLWidgets
endif
endif
ifndef QTLIBPATH
@@ -122,22 +116,25 @@ ifeq ($(G4SYSTEM),Linux-clang)
QTLIBPATH := $(QTHOME)/lib/qt$(QT_VERSION)
endif
endif
- ifeq ($(QT_VERSION),5)
- ifndef QTLIBS # Qt5
+ ifeq ($(QT_VERSION),5) # Qt5
+ ifndef QTLIBS
QTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets
endif
ifndef QT3DLIBS
QT3DLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt53DCore -lQt53DExtras -lQt53DRender
endif
ifndef GLQTLIBS
- GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL
+ GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL
endif
- else # Qt4
+ else # Qt6
ifndef QTLIBS
- QTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui
+ QTLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets
+ endif
+ ifndef QT3DLIBS
+ QT3DLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets -lQt63DCore -lQt63DExtras -lQt63DRender
endif
ifndef GLQTLIBS
- GLQTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui -lQtOpenGL
+ GLQTLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets -lQt6OpenGL -lQt6OpenGLWidgets
endif
endif
diff --git a/config/sys/Linux-g++.gmk b/config/sys/Linux-g++.gmk
index b34ba0fc9a0..a461848247d 100644
--- a/config/sys/Linux-g++.gmk
+++ b/config/sys/Linux-g++.gmk
@@ -93,23 +93,17 @@ ifeq ($(G4SYSTEM),Linux-g++)
QT_VERSION := 5
endif
- ifeq ($(QT_VERSION),5)
- ifndef QTFLAGS # Qt5
- QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt
- QTFLAGS += -I $(QTHOME)/include/QtCore
- QTFLAGS += -I $(QTHOME)/include/QtGui
- QTFLAGS += -I $(QTHOME)/include/QtWidgets
- QTFLAGS += -I $(QTHOME)/include/QtOpenGL
- QTFLAGS += -I $(QTHOME)/include/Qt3DCore
- QTFLAGS += -I $(QTHOME)/include/Qt3DExtras
- QTFLAGS += -I $(QTHOME)/include/Qt3DRender
- endif
- else # Qt4
- ifndef QTFLAGS
- QTFLAGS := -I$(QTHOME)/include -I$(QTHOME)/include/Qt
- QTFLAGS += -I$(QTHOME)/include/QtCore
- QTFLAGS += -I$(QTHOME)/include/QtGui
- QTFLAGS += -I$(QTHOME)/include/QtOpenGL
+ ifndef QTFLAGS
+ QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt
+ QTFLAGS += -I $(QTHOME)/include/QtCore
+ QTFLAGS += -I $(QTHOME)/include/QtGui
+ QTFLAGS += -I $(QTHOME)/include/QtWidgets
+ QTFLAGS += -I $(QTHOME)/include/QtOpenGL
+ QTFLAGS += -I $(QTHOME)/include/Qt3DCore
+ QTFLAGS += -I $(QTHOME)/include/Qt3DExtras
+ QTFLAGS += -I $(QTHOME)/include/Qt3DRender
+ ifeq ($(QT_VERSION),6)
+ QTFLAGS += -I $(QTHOME)/include/QtOpenGLWidgets
endif
endif
ifndef QTLIBPATH
@@ -119,22 +113,25 @@ ifeq ($(G4SYSTEM),Linux-g++)
QTLIBPATH := $(QTHOME)/lib/qt$(QT_VERSION)
endif
endif
- ifeq ($(QT_VERSION),5)
- ifndef QTLIBS # Qt5
+ ifeq ($(QT_VERSION),5) # Qt5
+ ifndef QTLIBS
QTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets
endif
ifndef QT3DLIBS
QT3DLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt53DCore -lQt53DExtras -lQt53DRender
endif
ifndef GLQTLIBS
- GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL
+ GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL
endif
- else # Qt4
+ else # Qt6
ifndef QTLIBS
- QTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui
+ QTLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets
+ endif
+ ifndef QT3DLIBS
+ QT3DLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets -lQt63DCore -lQt63DExtras -lQt63DRender
endif
ifndef GLQTLIBS
- GLQTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui -lQtOpenGL
+ GLQTLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets -lQt6OpenGL -lQt6OpenGLWidgets
endif
endif
diff --git a/config/sys/Linux-icc.gmk b/config/sys/Linux-icc.gmk
index b214017bab1..b81f8e1480b 100644
--- a/config/sys/Linux-icc.gmk
+++ b/config/sys/Linux-icc.gmk
@@ -87,23 +87,17 @@ ifeq ($(G4SYSTEM),Linux-icc)
QT_VERSION := 5
endif
- ifeq ($(QT_VERSION),5)
- ifndef QTFLAGS # Qt5
- QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt
- QTFLAGS += -I $(QTHOME)/include/QtCore
- QTFLAGS += -I $(QTHOME)/include/QtGui
- QTFLAGS += -I $(QTHOME)/include/QtWidgets
- QTFLAGS += -I $(QTHOME)/include/QtOpenGL
- QTFLAGS += -I $(QTHOME)/include/Qt3DCore
- QTFLAGS += -I $(QTHOME)/include/Qt3DExtras
- QTFLAGS += -I $(QTHOME)/include/Qt3DRender
- endif
- else # Qt4
- ifndef QTFLAGS
- QTFLAGS := -I$(QTHOME)/include -I$(QTHOME)/include/Qt
- QTFLAGS += -I$(QTHOME)/include/QtCore
- QTFLAGS += -I$(QTHOME)/include/QtGui
- QTFLAGS += -I$(QTHOME)/include/QtOpenGL
+ ifndef QTFLAGS
+ QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt
+ QTFLAGS += -I $(QTHOME)/include/QtCore
+ QTFLAGS += -I $(QTHOME)/include/QtGui
+ QTFLAGS += -I $(QTHOME)/include/QtWidgets
+ QTFLAGS += -I $(QTHOME)/include/QtOpenGL
+ QTFLAGS += -I $(QTHOME)/include/Qt3DCore
+ QTFLAGS += -I $(QTHOME)/include/Qt3DExtras
+ QTFLAGS += -I $(QTHOME)/include/Qt3DRender
+ ifeq ($(QT_VERSION),6)
+ QTFLAGS += -I $(QTHOME)/include/QtOpenGLWidgets
endif
endif
ifndef QTLIBPATH
@@ -113,22 +107,25 @@ ifeq ($(G4SYSTEM),Linux-icc)
QTLIBPATH := $(QTHOME)/lib/qt$(QT_VERSION)
endif
endif
- ifeq ($(QT_VERSION),5)
- ifndef QTLIBS # Qt5
+ ifeq ($(QT_VERSION),5) # Qt5
+ ifndef QTLIBS
QTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets
endif
ifndef QT3DLIBS
QT3DLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt53DCore -lQt53DExtras -lQt53DRender
endif
ifndef GLQTLIBS
- GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL
+ GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL
endif
- else # Qt4
+ else # Qt6
ifndef QTLIBS
- QTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui
+ QTLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets
+ endif
+ ifndef QT3DLIBS
+ QT3DLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets -lQt63DCore -lQt63DExtras -lQt63DRender
endif
ifndef GLQTLIBS
- GLQTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui -lQtOpenGL
+ GLQTLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets -lQt6OpenGL -lQt6OpenGLWidgets
endif
endif
diff --git a/config/sys/Linux-icx.gmk b/config/sys/Linux-icx.gmk
index 1ed311763ed..5f67c5020d3 100644
--- a/config/sys/Linux-icx.gmk
+++ b/config/sys/Linux-icx.gmk
@@ -88,23 +88,17 @@ ifeq ($(G4SYSTEM),Linux-icx)
QT_VERSION := 5
endif
- ifeq ($(QT_VERSION),5)
- ifndef QTFLAGS # Qt5
- QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt
- QTFLAGS += -I $(QTHOME)/include/QtCore
- QTFLAGS += -I $(QTHOME)/include/QtGui
- QTFLAGS += -I $(QTHOME)/include/QtWidgets
- QTFLAGS += -I $(QTHOME)/include/QtOpenGL
- QTFLAGS += -I $(QTHOME)/include/Qt3DCore
- QTFLAGS += -I $(QTHOME)/include/Qt3DExtras
- QTFLAGS += -I $(QTHOME)/include/Qt3DRender
- endif
- else # Qt4
- ifndef QTFLAGS
- QTFLAGS := -I$(QTHOME)/include -I$(QTHOME)/include/Qt
- QTFLAGS += -I$(QTHOME)/include/QtCore
- QTFLAGS += -I$(QTHOME)/include/QtGui
- QTFLAGS += -I$(QTHOME)/include/QtOpenGL
+ ifndef QTFLAGS
+ QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt
+ QTFLAGS += -I $(QTHOME)/include/QtCore
+ QTFLAGS += -I $(QTHOME)/include/QtGui
+ QTFLAGS += -I $(QTHOME)/include/QtWidgets
+ QTFLAGS += -I $(QTHOME)/include/QtOpenGL
+ QTFLAGS += -I $(QTHOME)/include/Qt3DCore
+ QTFLAGS += -I $(QTHOME)/include/Qt3DExtras
+ QTFLAGS += -I $(QTHOME)/include/Qt3DRender
+ ifeq ($(QT_VERSION),6)
+ QTFLAGS += -I $(QTHOME)/include/QtOpenGLWidgets
endif
endif
ifndef QTLIBPATH
@@ -114,22 +108,25 @@ ifeq ($(G4SYSTEM),Linux-icx)
QTLIBPATH := $(QTHOME)/lib/qt$(QT_VERSION)
endif
endif
- ifeq ($(QT_VERSION),5)
- ifndef QTLIBS # Qt5
+ ifeq ($(QT_VERSION),5) # Qt5
+ ifndef QTLIBS
QTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets
endif
ifndef QT3DLIBS
QT3DLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt53DCore -lQt53DExtras -lQt53DRender
endif
ifndef GLQTLIBS
- GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL
+ GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL
endif
- else # Qt4
+ else # Qt6
ifndef QTLIBS
- QTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui
+ QTLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets
+ endif
+ ifndef QT3DLIBS
+ QT3DLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets -lQt63DCore -lQt63DExtras -lQt63DRender
endif
ifndef GLQTLIBS
- GLQTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui -lQtOpenGL
+ GLQTLIBS := -L$(QTLIBPATH) -lQt6Core -lQt6Gui -lQt6Widgets -lQt6OpenGL -lQt6OpenGLWidgets
endif
endif
diff --git a/config/sys/WIN32-VC.gmk b/config/sys/WIN32-VC.gmk
index 6a3959aeda1..581bb9f127e 100644
--- a/config/sys/WIN32-VC.gmk
+++ b/config/sys/WIN32-VC.gmk
@@ -41,22 +41,35 @@ ifeq ($(G4SYSTEM),WIN32-VC)
ifndef QTHOME
QTHOME := /Qt
endif
- ifndef QTFLAGS # Qt5
+ ifndef QT_VERSION
+ QT_VERSION := 5
+ endif
+ ifndef QTFLAGS
QTFLAGS := -I$(QTHOME)/include
QTFLAGS += -I$(QTHOME)/include/QtCore
QTFLAGS += -I$(QTHOME)/include/QtGui
QTFLAGS += -I$(QTHOME)/include/QtWidgets
QTFLAGS += -I$(QTHOME)/include/QtOpenGL
+ ifeq ($(QT_VERSION),6)
+ QTFLAGS += -I $(QTHOME)/include/QtOpenGLWidgets
+ endif
endif
ifndef QTMOC
QTMOC := $(QTHOME)/bin/moc
endif
- ifndef QTLIBS # Qt5
- QTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib
- ifndef GLQTLIBS
- GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib Qt5OpenGL.lib
+ ifeq ($(QT_VERSION),5) # Qt5
+ ifndef QTLIBS
+ QTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib
+ ifndef GLQTLIBS
+ GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt5Core.lib Qt5Gui.lib Qt5Widgets.lib Qt5OpenGL.lib
+ endif
+ else # Qt6
+ ifndef QTLIBS
+ QTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt6Core.lib Qt6Gui.lib Qt6Widgets.lib
+ ifndef GLQTLIBS
+ GLQTLIBS := $(LIB_PATH)$(QTHOME)/lib Qt6Core.lib Qt6Gui.lib Qt6Widgets.lib Qt6OpenGL.lib Qt6OpenGLWidgets.lib
+ endif
endif
-
#
# Building DLLs
# -------------
diff --git a/examples/.README.HowToRun.txt b/examples/.README.HowToRun.txt
index 041a8e0718e..7ebde0b286a 100644
--- a/examples/.README.HowToRun.txt
+++ b/examples/.README.HowToRun.txt
@@ -25,12 +25,11 @@ Here we recall only the basics.
% cd path_to_exampleXYZ # go to directory which contains your example
% mkdir exampleXYZ_build
% cd exampleXYZ_build
-% cmake -DGeant4_DIR=path_to_Geant4_installation/lib[64]/Geant4-11.0.0/ ../exampleXYZ
+% cmake -DGeant4_DIR=path_to_Geant4_installation/lib[64]/cmake/Geant4/ ../exampleXYZ
% make -j N exampleXYZ # "N" is the number of processes
% make install # this step is optional
\endverbatim
-
\section HowToRun_s2 Execute exampleXYZ in 'batch' mode from macro files
\verbatim
diff --git a/examples/.doxygen/.README.HowToNavigate.txt b/examples/.doxygen/.README.HowToNavigate.txt
deleted file mode 100644
index c4bcbc0ec43..00000000000
--- a/examples/.doxygen/.README.HowToNavigate.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-
-///\file ".README.HowToNavigate.txt"
-///\brief Examples How To Navigate README page
-
-/*! \page README_HowToNavigate How to navigate in the examples documentation
-
-The examples documentation is composed from a "global" documentation including all examples with classes which has unique names (eg. A01DetectorConstruction etc.) and from "standalone" documentations for examples with classes which names are not not unique (DetectorConstruction etc.).
-
-\section HowToNavigate_sec1 Global documentation
-
-The lists of "Related Pages" and "Modules" in the global documentation include the README pages for all examples categories and examples with both unique class names and generic ones. The lists "Namespaces" , "Classes" and "Files" include only the examples with unique class names.
-
-That's why the README pages for the examples with a standalone documentation generated in the global documentation do not contain links to their classes
-(one cannot click on a class name here to get the class documentation). See eg. \ref ExampleTestEm1.
-
-\section HowToNavigate_sec2 Standalone documentations
-
-The links from "global" documentation to the examples "standalone" documentation are available in the list of "Modules". When selecting eg. "TestEm1" here, you will be directed to the main page of its standalone documentation. When selecting then "Example TestEm1" from the "Related Pages" list here (there is only one page in the list) you will get the example documentation with hyperlinks to the classes etc.
-
-All the lists in the examples "standalone" documentation include only the concerned example and eventually the classes shared with another examples or the classes from common if they are used in the example.
-
-This organization was necessary as Doxygen does not support the classes with the same names in one system.
-
-*/
diff --git a/examples/.doxygen/.README.novice.txt b/examples/.doxygen/.README.novice.txt
deleted file mode 100644
index 8f53f38a84f..00000000000
--- a/examples/.doxygen/.README.novice.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-
-///\file ".README.novice.txt"
-///\brief Geant4 Old Novice Examples README page
-
-/*! \page README_novice Old Novice Examples
-
-The old "novice" set of examples is now replaced with a new "basic" set,
-covering the most typical use-cases of a Geant4 application with keeping
-simplicity and ease of use.
-
-The source code of the last version of the novice examples set
-(in 9.6.p02 release) can be viewed in
-
-the Geant4 LXR code browser
-
-The new location of each example in 10.0 release:
-- N01 - removed
-- N02 - \link ExampleB2 basic/B2 \endlink
-- N03 - \link ExampleB4 basic/B4 \endlink
-- N04 - \link ExampleRE05 extended/runAndEvent/RE05 \endlink
-- N05 - \link ExamplePar01 extended/parameterisations/Par01 \endlink
-- N06 - \link ExampleOpNovice extended/optical/OpNovice \endlink
-- N07 - \link ExampleRE06 extended/runAndEvent/RE06 \endlink
-
-*/
diff --git a/examples/.doxygen/Doxyfile_standalone b/examples/.doxygen/Doxyfile_standalone
deleted file mode 100644
index 3f5d39cd8ea..00000000000
--- a/examples/.doxygen/Doxyfile_standalone
+++ /dev/null
@@ -1,2435 +0,0 @@
-# Doxyfile 1.8.9.1
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a double hash (##) is considered a comment and is placed in
-# front of the TAG it is preceding.
-#
-# All text after a single hash (#) is considered a comment and will be ignored.
-# The format is:
-# TAG = value [value, ...]
-# For lists, items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (\" \").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all text
-# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-# for the list of possible encodings.
-# The default value is: UTF-8.
-
-DOXYFILE_ENCODING = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
-# double-quotes, unless you are using Doxywizard) that should identify the
-# project for which the documentation is generated. This name is used in the
-# title of most generated pages and in a few other places.
-# The default value is: My Project.
-
-PROJECT_NAME = "Geant4 example EXAMPLE_NAME"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
-# could be handy for archiving the generated documentation or if some version
-# control system is used.
-
-PROJECT_NUMBER =
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer a
-# quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF =
-
-# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
-# in the documentation. The maximum height of the logo should not exceed 55
-# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
-# the logo to the output directory.
-
-PROJECT_LOGO =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
-# into which the generated documentation will be written. If a relative path is
-# entered, it will be relative to the location where doxygen was started. If
-# left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = BACK_PATH/html_EXAMPLE_NAME
-
-# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
-# directories (in 2 levels) under the output directory of each output format and
-# will distribute the generated files over these directories. Enabling this
-# option can be useful when feeding doxygen a huge amount of source files, where
-# putting all generated files in the same directory would otherwise causes
-# performance problems for the file system.
-# The default value is: NO.
-
-CREATE_SUBDIRS = NO
-
-# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
-# characters to appear in the names of generated files. If set to NO, non-ASCII
-# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
-# U+3044.
-# The default value is: NO.
-
-ALLOW_UNICODE_NAMES = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
-# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
-# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
-# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
-# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
-# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
-# Ukrainian and Vietnamese.
-# The default value is: English.
-
-OUTPUT_LANGUAGE = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
-# descriptions after the members that are listed in the file and class
-# documentation (similar to Javadoc). Set to NO to disable this.
-# The default value is: YES.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
-# description of a member or function before the detailed description
-#
-# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-# The default value is: YES.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator that is
-# used to form the text in various listings. Each string in this list, if found
-# as the leading text of the brief description, will be stripped from the text
-# and the result, after processing the whole list, is used as the annotated
-# text. Otherwise, the brief description is used as-is. If left blank, the
-# following values are used ($name is automatically replaced with the name of
-# the entity):The $name class, The $name widget, The $name file, is, provides,
-# specifies, contains, represents, a, an and the.
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# doxygen will generate a detailed section even if there is only a brief
-# description.
-# The default value is: NO.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-# The default value is: NO.
-
-INLINE_INHERITED_MEMB = NO
-
-# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
-# before files name in the file list and in the header files. If set to NO the
-# shortest path that makes the file name unique will be used
-# The default value is: YES.
-
-FULL_PATH_NAMES = YES
-
-# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
-# Stripping is only done if one of the specified strings matches the left-hand
-# part of the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the path to
-# strip.
-#
-# Note that you can specify absolute paths here, but also relative paths, which
-# will be relative from the directory where doxygen is started.
-# This tag requires that the tag FULL_PATH_NAMES is set to YES.
-
-STRIP_FROM_PATH = /Users/ivana/work/packages/geant4/geant4-dev/examples/
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
-# path mentioned in the documentation of a class, which tells the reader which
-# header file to include in order to use a class. If left blank only the name of
-# the header file containing the class definition is used. Otherwise one should
-# specify the list of include paths that are normally passed to the compiler
-# using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
-# less readable) file names. This can be useful is your file systems doesn't
-# support long names like on DOS, Mac, or CD-ROM.
-# The default value is: NO.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
-# first line (until the first dot) of a Javadoc-style comment as the brief
-# description. If set to NO, the Javadoc-style will behave just like regular Qt-
-# style comments (thus requiring an explicit @brief command for a brief
-# description.)
-# The default value is: NO.
-
-JAVADOC_AUTOBRIEF = YES
-
-# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
-# line (until the first dot) of a Qt-style comment as the brief description. If
-# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
-# requiring an explicit \brief command for a brief description.)
-# The default value is: NO.
-
-QT_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
-# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
-# a brief description. This used to be the default behavior. The new default is
-# to treat a multi-line C++ comment block as a detailed description. Set this
-# tag to YES if you prefer the old behavior instead.
-#
-# Note that setting this tag to YES also means that rational rose comments are
-# not recognized any more.
-# The default value is: NO.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
-# documentation from any documented member that it re-implements.
-# The default value is: YES.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
-# page for each member. If set to NO, the documentation of a member will be part
-# of the file/class/namespace that contains it.
-# The default value is: NO.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
-# uses this value to replace tabs by spaces in code fragments.
-# Minimum value: 1, maximum value: 16, default value: 4.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that act as commands in
-# the documentation. An alias has the form:
-# name=value
-# For example adding
-# "sideeffect=@par Side Effects:\n"
-# will allow you to put the command \sideeffect (or @sideeffect) in the
-# documentation, which will result in a user-defined paragraph with heading
-# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES =
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C. For
-# instance, some of the names that are used will be different. The list of all
-# members will be omitted, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_FOR_C = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
-# Python sources only. Doxygen will then generate output that is more tailored
-# for that language. For instance, namespaces will be presented as packages,
-# qualified scopes will look different, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources. Doxygen will then generate output that is tailored for Fortran.
-# The default value is: NO.
-
-OPTIMIZE_FOR_FORTRAN = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for VHDL.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_VHDL = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given
-# extension. Doxygen has a built-in mapping, but you can override or extend it
-# using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
-# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
-# Fortran. In the later case the parser tries to guess whether the code is fixed
-# or free formatted code, this is the default for Fortran type files), VHDL. For
-# instance to make doxygen treat .inc files as Fortran files (default is PHP),
-# and .f files as C (default is Fortran), use: inc=Fortran f=C.
-#
-# Note: For files without extension you can use no_extension as a placeholder.
-#
-# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-# the files are not read by doxygen.
-
-EXTENSION_MAPPING =
-
-# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you can
-# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-# case of backward compatibilities issues.
-# The default value is: YES.
-
-MARKDOWN_SUPPORT = YES
-
-# When enabled doxygen tries to link words that correspond to documented
-# classes, or namespaces to their corresponding documentation. Such a link can
-# be prevented in individual cases by putting a % sign in front of the word or
-# globally by setting AUTOLINK_SUPPORT to NO.
-# The default value is: YES.
-
-AUTOLINK_SUPPORT = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should set this
-# tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string);
-# versus func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-# The default value is: NO.
-
-BUILTIN_STL_SUPPORT = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-# The default value is: NO.
-
-CPP_CLI_SUPPORT = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
-# will parse them like normal C++ but will assume all classes use public instead
-# of private inheritance when no explicit protection keyword is present.
-# The default value is: NO.
-
-SIP_SUPPORT = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate
-# getter and setter methods for a property. Setting this option to YES will make
-# doxygen to replace the get and set methods by a property in the documentation.
-# This will only work if the methods are indeed getting or setting a simple
-# type. If this is not the case, or you want to show the methods anyway, you
-# should set this option to NO.
-# The default value is: YES.
-
-IDL_PROPERTY_SUPPORT = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-# The default value is: NO.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# Set the SUBGROUPING tag to YES to allow class member groups of the same type
-# (for instance a group of public functions) to be put as a subgroup of that
-# type (e.g. under the Public Functions section). Set it to NO to prevent
-# subgrouping. Alternatively, this can be done per class using the
-# \nosubgrouping command.
-# The default value is: YES.
-
-SUBGROUPING = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
-# are shown inside the group in which they are included (e.g. using \ingroup)
-# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
-# and RTF).
-#
-# Note that this feature does not work in combination with
-# SEPARATE_MEMBER_PAGES.
-# The default value is: NO.
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
-# with only public data fields or simple typedef fields will be shown inline in
-# the documentation of the scope in which they are defined (i.e. file,
-# namespace, or group documentation), provided this scope is documented. If set
-# to NO, structs, classes, and unions are shown on a separate page (for HTML and
-# Man pages) or section (for LaTeX and RTF).
-# The default value is: NO.
-
-INLINE_SIMPLE_STRUCTS = NO
-
-# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
-# enum is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically be
-# useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-# The default value is: NO.
-
-TYPEDEF_HIDES_STRUCT = NO
-
-# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
-# cache is used to resolve symbols given their name and scope. Since this can be
-# an expensive process and often the same symbol appears multiple times in the
-# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
-# doxygen will become slower. If the cache is too large, memory is wasted. The
-# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
-# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
-# symbols. At the end of a run doxygen will report the cache usage and suggest
-# the optimal cache size from a speed point of view.
-# Minimum value: 0, maximum value: 9, default value: 0.
-
-LOOKUP_CACHE_SIZE = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
-# documentation are documented, even if no documentation was available. Private
-# class members and static file members will be hidden unless the
-# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
-# Note: This will also disable the warnings about undocumented members that are
-# normally produced when WARNINGS is set to YES.
-# The default value is: NO.
-
-EXTRACT_ALL = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
-# be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PRIVATE = YES
-
-# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
-# scope will be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PACKAGE = NO
-
-# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
-# included in the documentation.
-# The default value is: NO.
-
-EXTRACT_STATIC = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
-# locally in source files will be included in the documentation. If set to NO,
-# only classes defined in header files are included. Does not have any effect
-# for Java sources.
-# The default value is: YES.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. If set to YES, local methods,
-# which are defined in the implementation section but not in the interface are
-# included in the documentation. If set to NO, only methods in the interface are
-# included.
-# The default value is: NO.
-
-EXTRACT_LOCAL_METHODS = YES
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base name of
-# the file that contains the anonymous namespace. By default anonymous namespace
-# are hidden.
-# The default value is: NO.
-
-EXTRACT_ANON_NSPACES = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
-# undocumented members inside documented classes or files. If set to NO these
-# members will be included in the various overviews, but no documentation
-# section is generated. This option has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy. If set
-# to NO, these classes will be included in the various overviews. This option
-# has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-# (class|struct|union) declarations. If set to NO, these declarations will be
-# included in the documentation.
-# The default value is: NO.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
-# documentation blocks found inside the body of a function. If set to NO, these
-# blocks will be appended to the function's detailed documentation block.
-# The default value is: NO.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation that is typed after a
-# \internal command is included. If the tag is set to NO then the documentation
-# will be excluded. Set it to YES to include the internal documentation.
-# The default value is: NO.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# The default value is: system dependent.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
-# their full class and namespace scopes in the documentation. If set to YES, the
-# scope will be hidden.
-# The default value is: NO.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
-# append additional text to a page's title, such as Class Reference. If set to
-# YES the compound reference will be hidden.
-# The default value is: NO.
-
-HIDE_COMPOUND_REFERENCE= NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
-# the files that are included by a file in the documentation of that file.
-# The default value is: YES.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
-# grouped member an include statement to the documentation, telling the reader
-# which file to include in order to use the member.
-# The default value is: NO.
-
-SHOW_GROUPED_MEMB_INC = NO
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
-# files with double quotes in the documentation rather than with sharp brackets.
-# The default value is: NO.
-
-FORCE_LOCAL_INCLUDES = NO
-
-# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
-# documentation for inline members.
-# The default value is: YES.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
-# (detailed) documentation of file and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order.
-# The default value is: YES.
-
-SORT_MEMBER_DOCS = NO
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
-# descriptions of file, namespace and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order. Note that
-# this will also influence the order of the classes in the class list.
-# The default value is: NO.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
-# (brief and detailed) documentation of class members so that constructors and
-# destructors are listed first. If set to NO the constructors will appear in the
-# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
-# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
-# member documentation.
-# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
-# detailed member documentation.
-# The default value is: NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
-# of group names into alphabetical order. If set to NO the group names will
-# appear in their defined order.
-# The default value is: NO.
-
-SORT_GROUP_NAMES = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
-# fully-qualified names, including namespaces. If set to NO, the class list will
-# be sorted only by class name, not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the alphabetical
-# list.
-# The default value is: NO.
-
-SORT_BY_SCOPE_NAME = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
-# type resolution of all parameters of a function it will reject a match between
-# the prototype and the implementation of a member function even if there is
-# only one candidate or it is obvious which candidate to choose by doing a
-# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
-# accept a match between prototype and implementation in such cases.
-# The default value is: NO.
-
-STRICT_PROTO_MATCHING = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
-# list. This list is created by putting \todo commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
-# list. This list is created by putting \test commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
-# list. This list is created by putting \bug commands in the documentation.
-# The default value is: YES.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
-# the deprecated list. This list is created by putting \deprecated commands in
-# the documentation.
-# The default value is: YES.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional documentation
-# sections, marked by \if ... \endif and \cond
-# ... \endcond blocks.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
-# initial value of a variable or macro / define can have for it to appear in the
-# documentation. If the initializer consists of more lines than specified here
-# it will be hidden. Use a value of 0 to hide initializers completely. The
-# appearance of the value of individual variables and macros / defines can be
-# controlled using \showinitializer or \hideinitializer command in the
-# documentation regardless of this setting.
-# Minimum value: 0, maximum value: 10000, default value: 30.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
-# the bottom of the documentation of classes and structs. If set to YES, the
-# list will mention the files that were used to generate the documentation.
-# The default value is: YES.
-
-SHOW_USED_FILES = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
-# will remove the Files entry from the Quick Index and from the Folder Tree View
-# (if specified).
-# The default value is: YES.
-
-SHOW_FILES = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
-# page. This will remove the Namespaces entry from the Quick Index and from the
-# Folder Tree View (if specified).
-# The default value is: YES.
-
-SHOW_NAMESPACES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command command input-file, where command is the value of the
-# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
-# by doxygen. Whatever the program writes to standard output is used as the file
-# version. For an example see the documentation.
-
-FILE_VERSION_FILTER =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. To create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option. You can
-# optionally specify a file name after the option, if omitted DoxygenLayout.xml
-# will be used as the name of the layout file.
-#
-# Note that if you run doxygen from a directory containing a file called
-# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
-# tag is left empty.
-
-LAYOUT_FILE =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-# the reference definitions. This must be a list of .bib files. The .bib
-# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
-# For LaTeX the style of the bibliography can be controlled using
-# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
-# search path. See also \cite for info how to create references.
-
-CITE_BIB_FILES =
-
-#---------------------------------------------------------------------------
-# Configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated to
-# standard output by doxygen. If QUIET is set to YES this implies that the
-# messages are off.
-# The default value is: NO.
-
-QUIET = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
-# this implies that the warnings are on.
-#
-# Tip: Turn warnings on while writing the documentation.
-# The default value is: YES.
-
-WARNINGS = YES
-
-# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
-# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
-# will automatically be disabled.
-# The default value is: YES.
-
-WARN_IF_UNDOCUMENTED = NO
-
-# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR = YES
-
-# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
-# are documented, but have no documentation for their parameters or return
-# value. If set to NO, doxygen will only warn about wrong or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that doxygen
-# can produce. The string should contain the $file, $line, and $text tags, which
-# will be replaced by the file and line number from which the warning originated
-# and the warning text. Optionally the format may contain $version, which will
-# be replaced by the version of the file (if it could be obtained via
-# FILE_VERSION_FILTER)
-# The default value is: $file:$line: $text.
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning and error
-# messages should be written. If left blank the output is written to standard
-# error (stderr).
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag is used to specify the files and/or directories that contain
-# documented source files. You may enter file names like myfile.cpp or
-# directories like /usr/src/myproject. Separate the files or directories with
-# spaces.
-# Note: If this tag is empty the current directory is searched.
-
-INPUT = .
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
-# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
-# possible encodings.
-# The default value is: UTF-8.
-
-INPUT_ENCODING = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank the
-# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
-# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
-# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
-
-FILE_PATTERNS = *.hh \
- *.icc \
- *.cc \
- .README*.txt \
- *.mac \
- *.g4
-
-# The RECURSIVE tag can be used to specify whether or not subdirectories should
-# be searched for input files as well.
-# The default value is: NO.
-
-RECURSIVE = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should be
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-#
-# Note that relative paths are relative to the directory from which doxygen is
-# run.
-
-EXCLUDE = ../basic/B2/B2b/include/B2ActionInitialization.hh \
- ../basic/B2/B2b/include/B2EventAction.hh \
- ../basic/B2/B2b/include/B2FieldMessenger.hh \
- ../basic/B2/B2b/include/B2MagneticField.hh \
- ../basic/B2/B2b/include/B2PrimaryGeneratorAction.hh \
- ../basic/B2/B2b/include/B2RunAction.hh \
- ../basic/B2/B2b/include/B2TrackerHit.hh \
- ../basic/B2/B2b/include/B2TrackerSD.hh \
- ../basic/B2/B2b/src/B2ActionInitialization.cc \
- ../basic/B2/B2b/src/B2EventAction.cc \
- ../basic/B2/B2b/src/B2FieldMessenger.cc \
- ../basic/B2/B2b/src/B2MagneticField.cc \
- ../basic/B2/B2b/src/B2PrimaryGeneratorAction.cc \
- ../basic/B2/B2b/src/B2RunAction.cc \
- ../basic/B2/B2b/src/B2TrackerHit.cc \
- ../basic/B2/B2b/src/B2TrackerSD.cc \
- ../basic/B4/B4b/include/B4Analysis.hh \
- ../basic/B4/B4c/include/B4Analysis.hh \
- ../basic/B4/B4d/include/B4Analysis.hh \
- ../basic/B4/B4b/include/B4DetectorConstruction.hh \
- ../basic/B4/B4b/include/B4DetectorMessenger.hh \
- ../basic/B4/B4b/src/B4DetectorConstruction.cc \
- ../basic/B4/B4b/src/B4DetectorMessenger.cc \
- ../basic/B4/B4b/include/B4PrimaryGeneratorAction.hh \
- ../basic/B4/B4c/include/B4PrimaryGeneratorAction.hh \
- ../basic/B4/B4d/include/B4PrimaryGeneratorAction.hh \
- ../basic/B4/B4b/src/B4PrimaryGeneratorAction.cc \
- ../basic/B4/B4c/src/B4PrimaryGeneratorAction.cc \
- ../basic/B4/B4d/src/B4PrimaryGeneratorAction.cc \
- ../basic/B4/B4c/include/B4RunAction.hh \
- ../basic/B4/B4d/include/B4RunAction.hh \
- ../basic/B4/B4c/src/B4RunAction.cc \
- ../basic/B4/B4d/src/B4RunAction.cc \
- ../extended/analysis/B1Con/include/B1DetectorConstruction.hh \
- ../extended/analysis/B1Con/include/B1EventAction.hh \
- ../extended/analysis/B1Con/include/B1EventInformation.hh \
- ../extended/analysis/B1Con/include/B1PrimaryGeneratorAction.hh \
- ../extended/analysis/B1Con/include/B1SteppingAction.hh \
- ../extended/analysis/B1Con/src/B1DetectorConstruction.cc \
- ../extended/analysis/B1Con/src/B1EventAction.cc \
- ../extended/analysis/B1Con/src/B1EventInformation.cc \
- ../extended/analysis/B1Con/src/B1PrimaryGeneratorAction.cc \
- ../extended/analysis/B1Con/src/B1SteppingAction.cc \
- ../extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh \
- ../extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh \
- ../extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh \
- ../extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh \
- ../extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh \
- ../extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc \
- ../extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc \
- ../extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc \
- ../extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc \
- ../extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc \
- ../extended/eventgenerator/HepMC/MCTruth/include/DetectorConstruction.hh \
- ../extended/eventgenerator/HepMC/MCTruth/include/PhysicsList.hh \
- ../extended/eventgenerator/HepMC/MCTruth/include/PrimaryGeneratorAction.hh \
- ../extended/eventgenerator/HepMC/MCTruth/src/DetectorConstruction.cc \
- ../extended/eventgenerator/HepMC/MCTruth/src/PhysicsList.cc \
- ../extended/eventgenerator/HepMC/MCTruth/src/PrimaryGeneratorAction.cc \
- ../extended/visualization/userVisAction/include/B1DetectorConstruction.hh \
- ../extended/visualization/userVisAction/include/B1EventAction.hh \
- ../extended/visualization/userVisAction/include/B1PrimaryGeneratorAction.hh \
- ../extended/visualization/userVisAction/include/B1RunAction.hh \
- ../extended/visualization/userVisAction/include/B1SteppingAction.hh \
- ../extended/visualization/userVisAction/src/B1DetectorConstruction.cc \
- ../extended/visualization/userVisAction/src/B1EventAction.cc \
- ../extended/visualization/userVisAction/src/B1PrimaryGeneratorAction.cc \
- ../extended/visualization/userVisAction/src/B1RunAction.cc \
- ../extended/visualization/userVisAction/src/B1SteppingAction.cc
-
-# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-# The default value is: NO.
-
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories for example use the pattern */test/*
-
-EXCLUDE_PATTERNS = */.svn/*
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories use the pattern */test/*
-
-EXCLUDE_SYMBOLS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or directories
-# that contain example code fragments that are included (see the \include
-# command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank all
-# files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude commands
-# irrespective of the value of the RECURSIVE tag.
-# The default value is: NO.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or directories
-# that contain images that are to be included in the documentation (see the
-# \image command).
-
-IMAGE_PATH = .
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command:
-#
-#
-#
-# where is the value of the INPUT_FILTER tag, and is the
-# name of an input file. Doxygen will then use the output that the filter
-# program writes to standard output. If FILTER_PATTERNS is specified, this tag
-# will be ignored.
-#
-# Note that the filter must not add or remove lines; it is applied before the
-# code is scanned, but not when the output code is generated. If lines are added
-# or removed, the anchors will not be placed correctly.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form: pattern=filter
-# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
-# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
-# patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will also be used to filter the input files that are used for
-# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
-# The default value is: NO.
-
-FILTER_SOURCE_FILES = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
-# it is also possible to disable source filtering for a specific pattern using
-# *.ext= (so without naming a filter).
-# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
-
-FILTER_SOURCE_PATTERNS =
-
-# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
-# is part of the input, its contents will be placed on the main page
-# (index.html). This can be useful if you have a project on for instance GitHub
-# and want to reuse the introduction page also for the doxygen output.
-
-USE_MDFILE_AS_MAINPAGE =
-
-#---------------------------------------------------------------------------
-# Configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
-# generated. Documented entities will be cross-referenced with these sources.
-#
-# Note: To get rid of all source code in the generated output, make sure that
-# also VERBATIM_HEADERS is set to NO.
-# The default value is: NO.
-
-SOURCE_BROWSER = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body of functions,
-# classes and enums directly into the documentation.
-# The default value is: NO.
-
-INLINE_SOURCES = YES
-
-# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
-# special comment blocks from generated source code fragments. Normal C, C++ and
-# Fortran comments will always remain visible.
-# The default value is: YES.
-
-STRIP_CODE_COMMENTS = NO
-
-# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-# function all documented functions referencing it will be listed.
-# The default value is: NO.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES then for each documented function
-# all documented entities called/used by that function will be listed.
-# The default value is: NO.
-
-REFERENCES_RELATION = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
-# to YES then the hyperlinks from functions in REFERENCES_RELATION and
-# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
-# link to the documentation.
-# The default value is: YES.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
-# source code will show a tooltip with additional information such as prototype,
-# brief description and links to the definition and documentation. Since this
-# will make the HTML file larger and loading of large files a bit slower, you
-# can opt to disable this feature.
-# The default value is: YES.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-SOURCE_TOOLTIPS = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code will
-# point to the HTML generated by the htags(1) tool instead of doxygen built-in
-# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
-# 4.8.6 or higher.
-#
-# To use it do the following:
-# - Install the latest version of global
-# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
-# - Make sure the INPUT points to the root of the source tree
-# - Run doxygen as normal
-#
-# Doxygen will invoke htags (and that will in turn invoke gtags), so these
-# tools must be available from the command line (i.e. in the search path).
-#
-# The result: instead of the source browser generated by doxygen, the links to
-# source code will now point to the output of htags.
-# The default value is: NO.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
-# verbatim copy of the header file for each class for which an include is
-# specified. Set to NO to disable this.
-# See also: Section \class.
-# The default value is: YES.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
-# compounds will be generated. Enable this if the project contains a lot of
-# classes, structs, unions or interfaces.
-# The default value is: YES.
-
-ALPHABETICAL_INDEX = YES
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all classes will
-# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-# can be used to specify a prefix (or a list of prefixes) that should be ignored
-# while generating the index headers.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# Configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
-# The default value is: YES.
-
-GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
-# generated HTML page (for example: .htm, .php, .asp).
-# The default value is: .html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
-# each generated HTML page. If the tag is left blank doxygen will generate a
-# standard header.
-#
-# To get valid HTML the header file that includes any scripts and style sheets
-# that doxygen needs, which is dependent on the configuration options used (e.g.
-# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
-# default header using
-# doxygen -w html new_header.html new_footer.html new_stylesheet.css
-# YourConfigFile
-# and then modify the file new_header.html. See also section "Doxygen usage"
-# for information on how to generate the default header that doxygen normally
-# uses.
-# Note: The header is subject to change so you typically have to regenerate the
-# default header when upgrading to a newer version of doxygen. For a description
-# of the possible markers and block names see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_HEADER = BACK_PATH/../header.html
-
-# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
-# generated HTML page. If the tag is left blank doxygen will generate a standard
-# footer. See HTML_HEADER for more information on how to generate a default
-# footer and what special commands can be used inside the footer. See also
-# section "Doxygen usage" for information on how to generate the default footer
-# that doxygen normally uses.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FOOTER =
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
-# sheet that is used by each HTML page. It can be used to fine-tune the look of
-# the HTML output. If left blank doxygen will generate a default style sheet.
-# See also section "Doxygen usage" for information on how to generate the style
-# sheet that doxygen normally uses.
-# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
-# it is more robust and this tag (HTML_STYLESHEET) will in the future become
-# obsolete.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_STYLESHEET =
-
-# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-# cascading style sheets that are included after the standard style sheets
-# created by doxygen. Using this option one can overrule certain style aspects.
-# This is preferred over using HTML_STYLESHEET since it does not replace the
-# standard style sheet and is therefore more robust against future updates.
-# Doxygen will copy the style sheet files to the output directory.
-# Note: The order of the extra style sheet files is of importance (e.g. the last
-# style sheet in the list overrules the setting of the previous ones in the
-# list). For an example see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_STYLESHEET = BACK_PATH/../extra_stylesheet.css
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
-# files will be copied as-is; there are no commands or markers available.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_FILES = BACK_PATH/../images/geanttiny.gif
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
-# will adjust the colors in the style sheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
-# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
-# purple, and 360 is red again.
-# Minimum value: 0, maximum value: 359, default value: 220.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_HUE = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-# in the HTML output. For a value of 0 the output will use grayscales only. A
-# value of 255 will produce the most vivid colors.
-# Minimum value: 0, maximum value: 255, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_SAT = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
-# luminance component of the colors in the HTML output. Values below 100
-# gradually make the output lighter, whereas values above 100 make the output
-# darker. The value divided by 100 is the actual gamma applied, so 80 represents
-# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
-# change the gamma.
-# Minimum value: 40, maximum value: 240, default value: 80.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_GAMMA = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_DYNAMIC_SECTIONS = NO
-
-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
-# shown in the various tree structured indices initially; the user can expand
-# and collapse entries dynamically later on. Doxygen will expand the tree to
-# such a level that at most the specified number of entries are visible (unless
-# a fully collapsed tree already exceeds this amount). So setting the number of
-# entries 1 will produce a full collapsed tree by default. 0 is a special value
-# representing an infinite number of entries and will result in a full expanded
-# tree by default.
-# Minimum value: 0, maximum value: 9999, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_INDEX_NUM_ENTRIES = 100
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files will be
-# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
-# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the docset in
-# that directory and running make install will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_DOCSET = NO
-
-# This tag determines the name of the docset feed. A documentation feed provides
-# an umbrella under which multiple documentation sets from a single provider
-# (such as a company or product suite) can be grouped.
-# The default value is: Doxygen generated docs.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_FEEDNAME = "Doxygen generated docs"
-
-# This tag specifies a string that should uniquely identify the documentation
-# set bundle. This should be a reverse domain-name style string, e.g.
-# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_BUNDLE_ID = org.doxygen.Project
-
-# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-# The default value is: org.doxygen.Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_ID = org.doxygen.Publisher
-
-# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-# The default value is: Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_NAME = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
-# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
-# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# The HTML Help Workshop contains a compiler that can convert all HTML output
-# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
-# files are now used as the Windows 98 help format, and will replace the old
-# Windows help format (.hlp) on all Windows platforms in the future. Compressed
-# HTML files also contain an index, a table of contents, and you can search for
-# words in the documentation. The HTML workshop also contains a viewer for
-# compressed HTML files.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_HTMLHELP = NO
-
-# The CHM_FILE tag can be used to specify the file name of the resulting .chm
-# file. You can add a path in front of the file if the result should not be
-# written to the html output directory.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_FILE =
-
-# The HHC_LOCATION tag can be used to specify the location (absolute path
-# including file name) of the HTML help compiler (hhc.exe). If non-empty,
-# doxygen will try to run the HTML help compiler on the generated index.hhp.
-# The file has to be specified with full path.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-HHC_LOCATION =
-
-# The GENERATE_CHI flag controls if a separate .chi index file is generated
-# (YES) or that it should be included in the master .chm file (NO).
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-GENERATE_CHI = NO
-
-# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
-# and project file content.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_INDEX_ENCODING =
-
-# The BINARY_TOC flag controls whether a binary table of contents is generated
-# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
-# enables the Previous and Next buttons.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members to
-# the table of contents of the HTML help documentation and to the tree view.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-TOC_EXPAND = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
-# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
-# (.qch) of the generated HTML documentation.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_QHP = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
-# the file name of the resulting .qch file. The path specified is relative to
-# the HTML output folder.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QCH_FILE =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
-# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_NAMESPACE = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
-# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
-# The default value is: doc.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_VIRTUAL_FOLDER = doc
-
-# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
-# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_NAME =
-
-# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_ATTRS =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_SECT_FILTER_ATTRS =
-
-# The QHG_LOCATION tag can be used to specify the location of Qt's
-# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-# generated .qhp file.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHG_LOCATION =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
-# generated, together with the HTML files, they form an Eclipse help plugin. To
-# install this plugin and make it available under the help contents menu in
-# Eclipse, the contents of the directory containing the HTML and XML files needs
-# to be copied into the plugins directory of eclipse. The name of the directory
-# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
-# After copying Eclipse needs to be restarted before the help appears.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_ECLIPSEHELP = NO
-
-# A unique identifier for the Eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have this
-# name. Each documentation set should have its own identifier.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
-
-ECLIPSE_DOC_ID = org.doxygen.Project
-
-# If you want full control over the layout of the generated HTML pages it might
-# be necessary to disable the index and replace it with your own. The
-# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
-# of each HTML page. A value of NO enables the index and the value YES disables
-# it. Since the tabs in the index contain the same information as the navigation
-# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-DISABLE_INDEX = NO
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information. If the tag
-# value is set to YES, a side panel will be generated containing a tree-like
-# index structure (just like the one that is generated for HTML Help). For this
-# to work a browser that supports JavaScript, DHTML, CSS and frames is required
-# (i.e. any modern browser). Windows users are probably better off using the
-# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. As an example, the default style
-# sheet generated by doxygen has an example that shows how to put an image at
-# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-# the same information as the tab index, you could consider setting
-# DISABLE_INDEX to YES when enabling this option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_TREEVIEW = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
-# doxygen will group on one line in the generated HTML documentation.
-#
-# Note that a value of 0 will completely suppress the enum values from appearing
-# in the overview section.
-# Minimum value: 0, maximum value: 20, default value: 4.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-ENUM_VALUES_PER_LINE = 4
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
-# to set the initial width (in pixels) of the frame in which the tree is shown.
-# Minimum value: 0, maximum value: 1500, default value: 250.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-TREEVIEW_WIDTH = 250
-
-# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
-# external symbols imported via tag files in a separate window.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-EXT_LINKS_IN_WINDOW = NO
-
-# Use this tag to change the font size of LaTeX formulas included as images in
-# the HTML documentation. When you change the font size after a successful
-# doxygen run you need to manually remove any form_*.png images from the HTML
-# output directory to force them to be regenerated.
-# Minimum value: 8, maximum value: 50, default value: 10.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_FONTSIZE = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are not
-# supported properly for IE 6.0, but are supported on all modern browsers.
-#
-# Note that when changing this option you need to delete any form_*.png files in
-# the HTML output directory before the changes have effect.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_TRANSPARENT = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
-# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
-# installed or if you want to formulas look prettier in the HTML output. When
-# enabled you may also need to install MathJax separately and configure the path
-# to it using the MATHJAX_RELPATH option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-USE_MATHJAX = NO
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) and SVG.
-# The default value is: HTML-CSS.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_FORMAT = HTML-CSS
-
-# When MathJax is enabled you need to specify the location relative to the HTML
-# output directory using the MATHJAX_RELPATH option. The destination directory
-# should contain the MathJax.js script. For instance, if the mathjax directory
-# is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
-# Content Delivery Network so you can quickly see the result without installing
-# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_EXTENSIONS =
-
-# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
-# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
-# example see the documentation.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_CODEFILE =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
-# the HTML output. The underlying search engine uses javascript and DHTML and
-# should work on any modern browser. Note that when using HTML help
-# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
-# there is already a search function so this one should typically be disabled.
-# For large projects the javascript based search engine can be slow, then
-# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
-# search using the keyboard; to jump to the search box use + S
-# (what the is depends on the OS and browser, but it is typically
-# , /