File indexing completed on 2025-02-22 09:44:03
0001 <HTML>
0002 <HEAD>
0003 <TITLE>Geant4 11.0 Release Notes</TITLE>
0004 </HEAD>
0005 <BODY BGCOLOR='F0F0F0'>
0006
0007 <P> </P>
0008 <BR>
0009 <P> </P>
0010
0011 <P ALIGN="Center">
0012 <FONT SIZE="+4" COLOR="#238E23">
0013 <B>Geant4 11.0 Release Notes</B>
0014 </FONT>
0015
0016 <TABLE WIDTH="100%">
0017 <TR><TD ALIGN="Right">
0018 <FONT SIZE="-1" COLOR="#5C3317">
0019 <B><I>December 10<SUP>th</SUP>, 2021</I></B>
0020 </FONT>
0021 </TD></TR>
0022 </TABLE>
0023
0024 <BR><BR>
0025 <HR ALIGN="Center" SIZE="7%">
0026 <P>
0027 The code and binary libraries for the supported systems are available
0028 through our <A TARGET="ext" HREF="http://cern.ch/geant4/support/download">Source
0029 Code Web page</A>.
0030 </P>
0031 <P>
0032 <I>We are grateful for the efforts of Geant4 users who have provided
0033 detailed feedback or comprehensive reports of issues.
0034 We thank in particular those who have contributed corrections,
0035 improvements or developments included in this release. </I>
0036 </P>
0037 <P>
0038 Please refer to the
0039 <A TARGET="ext" HREF="http://cern.ch/geant4/support/user_documentation">Geant4
0040 User Documentation</A> for further information about using Geant4.
0041 </P>
0042
0043 <H2><I>Contents</I></H2>
0044 <OL>
0045 <LI><A HREF="#1.">Supported and Tested Platforms</A></LI>
0046 <LI><A HREF="#2.">Supported CLHEP and VecGeom versions</A></LI>
0047 <LI><A HREF="#3.">Items for migration of the user code</A></LI>
0048 <LI><A HREF="#4.">New Developments and Capabilities</A></LI>
0049 <LI><A HREF="#5.">Expected effects on physics and performance</A></LI>
0050 <LI><A HREF="#6.">Known Run-Time Problems and Limitations</A></LI>
0051 <LI><A HREF="#7.">Compilation Warnings</A></LI>
0052 <LI><A HREF="#8.">Geant4 Software License</A></LI>
0053 <LI><A HREF="#9.">Detailed list of changes and fixes</A></LI>
0054 <LI><A HREF="#10.">Appendix</A></LI>
0055 </OL>
0056
0057 <P> </P>
0058 <A NAME="1."></a>
0059 <HR>
0060
0061
0062
0063 <H2>1. Supported and Tested Platforms</H2>
0064
0065 Platforms:
0066 <UL>
0067 <LI>Linux, gcc-8.3.1.<BR>
0068 Tested on 64 bit architectures (Intel or AMD) with
0069 CERN CentOS Linux 8 (CC8) (based on CentOS Linux 8).</LI>
0070 <LI>macOS 12.01 Monterey with Apple LLVM/Clang-13.<BR>
0071 Tested on 64 bit architectures (Intel or Apple Silicon).</LI>
0072 <LI>Windows-10 with Visual C++ 14.29 (Visual Studio 2019).</LI>
0073 </UL>
0074
0075 More verified and tested configurations (64 bits):
0076 <UL>
0077 <LI>Linux, gcc-9.3/10.2/11.2, clang-9/10/11</LI>
0078 <LI>Linux, Intel-icc 2021.4</LI>
0079 <LI>macOS 10.15 Catalina with Apple LLVM/Clang-12</LI>
0080 <LI>macOS 11.6 Big Sur with Apple LLVM/Clang-12</LI>
0081 </UL>
0082
0083 <P> </P>
0084 <A NAME="2."></A>
0085 <HR>
0086
0087
0088
0089 <H2>2. Supported CLHEP and VecGeom versions</H2>
0090
0091 This release of Geant4 requires and has been verified with
0092 <A TARGET="ext" HREF="http://cern.ch/clhep/">CLHEP</A>, release <B>2.4.5.1</B>.
0093 Use of a different CLHEP version may cause incorrect simulation results.<BR>
0094 NOTE: an internal module of the relevant CLHEP classes is provided and can be
0095 used as alternative to an external CLHEP library installation.<BR>
0096 A configuration option allows a Geant4 installation to use the
0097 <A HREF="https://gitlab.cern.ch/VecGeom/VecGeom/">VecGeom Library</A>
0098 primitives, to replace the original Geant4 solids. VecGeom version
0099 <B>1.1.18</B> is required when using such configuration.
0100
0101 <P> </P>
0102 <A NAME="3."></A>
0103 <HR>
0104
0105
0106
0107 <H2>3. Items for migration of the user code</H2>
0108
0109 Listed here is some relevant information on developments included in this
0110 release.
0111 Note that for all users a full re-installation of libraries (or a full
0112 re-compilation) and a re-compilation of user applications is required.
0113
0114 <P> </P>
0115 <B>General</B>
0116 <P> </P>
0117 <UL>
0118 <LI>Simplified G4String interfaces and implementation with C++11/17.
0119 Removed obsolete/std::string synonym member functions and deprecated
0120 non-std::string member functions, replacing with new free functions in
0121 G4StrUtil namespace. Might require user code adaptation where G4String
0122 functions are explicitly used; for details see
0123 <A HREF="#string-migration-notes">Section 10</A> of this document.</LI>
0124 <LI>Major update the G4PhysicsVector and related classes; introduced new public
0125 access methods; removed obsolete unused methods; introduced possibility to
0126 use different Spline methods.</LI>
0127 <LI>Removed deprecated classes G4LPhysicsFreeVector and G4PhysicsLnVector;
0128 redirect G4PhysicsOrderedFreeVector to G4PhysicsFreeVector.</LI>
0129 <LI>New version of G4PhysicsModelCatalog, the catalog of physics models.
0130 Introduced a modelID (a unique integer for each physics model, with close
0131 values for similar/related physics models), besides an index (the position
0132 in a vector) and the name (string) of the model. The main difference with
0133 respect to the previous version is that the three identifiers of each
0134 physics model - modelID, index and name - must stay constant and the same
0135 for all applications, physics lists and future versions of Geant4.</LI>
0136 <LI>C++17 is the minimum ISO C++ Standard required to compile Geant4 and all
0137 applications using it.</LI>
0138 <LI>Multithreading support is now enabled in the build of Geant4 by default.</LI>
0139 <LI>CMake 3.16 is the minimum version required to build Geant4.</LI>
0140 </UL>
0141
0142 <B>Analysis</B>
0143 <UL>
0144 <LI>Major revision in analysis classes. Migration to G4ThreadLocalSingleton
0145 in all specific analysis manager and reader classes. The singleton instances
0146 are now deleted by the Geant4 kernel; their explicit deletion in client code
0147 has to be removed.</LI>
0148 <LI>New G4AnalysisReader.hh header, defining G4AnalysisManager as
0149 G4GenericAnalysisManager; G4GenericAnalysisManager can handle all supported
0150 file formats, so file names should be provided with an extension (.csv,
0151 .hdf5, .root or .xml). To continue using file names without extensions,
0152 users can set the default file type using the new function
0153 SetDefaultFileType(...). Output specific headers have been removed.</LI>
0154 <LI>Also removed g4analysis.hh header with the G4Analysis::MasterInstance()
0155 factory method.</LI>
0156 <LI>Added new G4VAnalysisReader public function CloseFiles() to be called by
0157 user before the end of program and its implementation for all readers.</LI>
0158 </UL>
0159
0160 <P> </P>
0161 <B>Geometry, Fields and Transportation</B>
0162 <P> </P>
0163 <UL>
0164 <LI>Removed deprecated accessors in G4Sphere and G4Tubs.</LI>
0165 <LI>G4[Partial]PhantomParameterisation: renamed Get/SetNoVoxel*() accessors
0166 to Get/SetNoVoxels*() for coherence. Might imply user code migration.</LI>
0167 </UL>
0168
0169 <P> </P>
0170 <B>Electromagnetic and optical physics</B>
0171 <P> </P>
0172 <UL>
0173 <LI>G4EmProcessOptions class has been removed. Adaptation of custom user made
0174 physics-lists may be required.</LI>
0175 <LI>Removed deprecated material properties for G4Scintillation. Now
0176 the "enhanced" time constants of version 10.7 are the only way to specify
0177 scintillation properties.</LI>
0178 <LI>Added protection against typos in material property names. To create a
0179 user-defined material property (or material constant property), add the
0180 <TT>createNewKey=true</TT> argument to <TT>Add(Const)Property()</TT>.</LI>
0181 <LI>Removed redundant optical UI commands.</LI>
0182 </UL>
0183
0184 <P> </P>
0185 <B>Hadronic physics configuration</B>
0186 <P> </P>
0187 <UL>
0188 <LI>Constructors for inelastic processes have changed signature, as well
0189 as for elastic and inelastic cross-sections.<BR>
0190 This affects the internal configuration in physics-lists.
0191 See the details in <A HREF="#hadronic-migration-notes">Section 10</A>
0192 of this document, for the required adaptations in <I>custom</I>
0193 physics-lists.</LI>
0194 <LI>Deprecated environmental variables used in NeutronHP, ParticleHP and
0195 Radioactive Decay have been removed: they have been replaced by equivalent
0196 UI commands (already introduced in previous versions).</LI>
0197 </UL>
0198
0199 <P> </P>
0200 <B>Visualization and Modeling</B>
0201 <P> </P>
0202 <UL>
0203 <LI>As of this release, the recommended and supported Open Inventor driver
0204 will be the Qt-based one (OIQt viewer option). The Xt/Xm drivers (OIX,
0205 OIXE) are still available but are deprecated and will be removed in the
0206 next release.</LI>
0207 <LI>Qt drivers require the Qt-5 platform. Qt-6 is not yet supported.</LI>
0208 <LI>The G4VModel interface has been simplified. Responsibility for transformation
0209 and extent has been delegated to individual models. For example, there is no
0210 longer a method G4VModel::GetTransformedExtent(), the concrete model is
0211 required to maintain the extent depending on the transformation (if any) and
0212 a simple GetExtent() returns the current extent.</LI>
0213 </UL>
0214
0215 <P> </P>
0216 <B>Data Sets</B>
0217 <P> </P>
0218 <UL>
0219 <LI>This release introduces new data set versions.
0220 Please see the corresponding details in
0221 <A href="#data-notes">Section 9</A> of this document.
0222 <UL>
0223 <LI>New data set versions: <TT>G4EMLOW-8.0, G4PARTICLEXS-4.0</TT>.</LI>
0224 <LI>In order to use <TT>ParticleHP</TT> for charged particles
0225 (protons, deuterons, tritons, He3 and alphas), an optional data
0226 set <TT>G4TENDL-1.4</TT> is required, and can be optionally
0227 downloaded in addition.</LI>
0228 </UL></LI>
0229 </UL>
0230
0231 <A NAME="4."></A>
0232 <HR>
0233
0234
0235
0236 <H2>4. New Developments and Capabilities </H2>
0237
0238 <B>General</B>
0239 <UL>
0240 <LI>Tasking system, based on PTL (Parallel Tasking Library) v2.0.0, is set
0241 as default parallelism scheme for multi-threading. A dedicated run manager
0242 (G4TaskRunManager) and factory (G4RunManagerFactory) are provided,
0243 enabling use of tasks for the event loop.
0244 The tasking system is fully compatible with Intel TBB, which can be
0245 selected if GEANT4_USE_TBB=ON is specified when configuring CMake. The
0246 default behavior for tasking is to submit the tasks to an internal
0247 thread-pool and task-queue.</LI>
0248 <LI>New G4SteppingVerboseWithUnits class, an alternative to G4SteppingVerbose
0249 with printout of proper units. Simplified way of defining a user-specific
0250 stepping verbose, that is now common to all sequential, MT and tasking
0251 modes.</LI>
0252 <LI>Introducing G4VTrackingManager, an interface for custom tracking
0253 managers specialized for one or a small number of particle types.
0254 Custom tracking manager is used in G4VUserPhysicsList, if registered.
0255 G4EventManager hands over tracks to custom tracking manager, if registered
0256 for the particle.</LI>
0257 <LI>Added new Ranlux++ engine to the list of supported random engines.</LI>
0258 <LI>G4String provides a new <TT>G4StrUtil</TT> namespace with functions for
0259 simple string manipulation, including left/right stripping, case
0260 conversion, and searching.</LI>
0261 </UL>
0262
0263 <B>Analysis</B>
0264 <UL>
0265 <LI>New public functions G4VAnalysisManager::Reset() and Clear() allowing
0266 resetting and deleting all allocated analysis objects and clearing
0267 their collections.</LI>
0268 <LI>Added support for n-tuple columns of string vectors via new public
0269 functions in G4VAnalysisManager and G4VAnalysisReader</LI>
0270 <LI>Implemented support for file system directories with Csv output. The
0271 histogram and n-tuple files are saved in directories, if their names are
0272 set and if the directories exist in the file system.</LI>
0273 </UL>
0274
0275 <B>Digitization, Hits & Scoring</B>
0276 <UL>
0277 <LI>Extended cylindrical scoring mesh to tube and tube segment.</LI>
0278 </UL>
0279
0280 <B>Geometry and Field</B>
0281 <UL>
0282 <LI>Added maps for faster search based on name in solids, regions and
0283 volumes stores.</LI>
0284 <LI>Enabled use of alternative G4VoxelNavigation class, allowing the possibility
0285 to use alternative navigation algorithms for voxelised/optimised geometries.</LI>
0286 <LI>Added new example demonstrating interface with VecGeom navigator (Beta).</LI>
0287 </UL>
0288
0289 <B>Materials</B>
0290 <UL>
0291 <LI>Revised and updated G4Exceptions in G4Material, now providing more complete
0292 information and better diagnostics.</LI>
0293 <LI>Updated G4Material: use const pointers to G4Elements where needed.</LI>
0294 <LI>New class G4OpticalMaterialProperties, a store for optical material properties
0295 and allow use of predefined optical material properties.</LI>
0296 <LI>In G4MaterialPropertiesTable, the use of <TT>std::vector</TT> for material
0297 properties and material const properties, rather than <TT>std::map</TT>,
0298 eliminates the need to find the map entry.</LI>
0299 </UL>
0300
0301 <B>Electromagnetic physics</B>
0302 <UL>
0303 <LI>General code cleanup in EM modules; removed obsolete models and processes,
0304 removed G4EmProcessOptions class.</LI>
0305 <LI>Updates to G4GammaGeneralProcess: exclude gamma-nuclear from the 2<SUP>nd</SUP>
0306 energy area.</LI>
0307 <LI>Fixed model per region definition for all base processes G4VEmProcess,
0308 G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
0309 for energy loss processes but left G4VSubCutProducer interface.</LI>
0310 <LI>Updated EM integral approach by introduction of a cross-section shape type
0311 including cross-section shape with 2 maxima.</LI>
0312 <LI>Reviewed EM part of G4PhysicsModelCatalog to adopt new numbering convention.
0313 Created new enum for low-energy electromagnetic process sub-types.</LI>
0314 <LI>Updated G4UrbanMscModel to not apply energy correction at small steps
0315 below 1% of a particle range.</LI>
0316 <LI>G4VEmFluctuationModel: changed interface; both cut value and max energy
0317 transfer are parameters of main methods.</LI>
0318 <LI>In G4UniversalFluctuation, substantially simplified sampling algorithm
0319 for faster computation.</LI>
0320 <LI>Updated Livermore models to use EPICS2017 data.</LI>
0321 <LI>Included new PIXE data libraries following ANSTO recommendations.</LI>
0322 <LI>New data structure for ICRU73 and ICRU90 ion stopping power data shared
0323 between threads and used in G4LinhardSorensenIonModel.</LI>
0324 <LI>Implement and use base material approach only if base materials are defined,
0325 this should bring a minor speedup of the code and little reduction of memory.</LI>
0326 <LI>Enable synchrotron radiation only for electrons, positrons, muons, protons,
0327 and anti-protons.</LI>
0328 <LI>Introducing quantum entanglement of e+ annihilation. Currently implemented
0329 only in G4eplusAnnihilation and G4LivermorePolarizedComptonModel.</LI>
0330 <LI>New class G4OpticalMaterialProperties, a store for optical material
0331 properties and allow use of predefined optical material properties.</LI>
0332 <LI>Added new IRT-syn model for DNA.</LI>
0333 </UL>
0334
0335 <B>Hadronic physics</B>
0336 <UL>
0337 <LI>General code clean-up in hadronic processes and models; removed obsolete
0338 and deprecated classes; removed obsolete "rpg" model.</LI>
0339 <LI>Introduced a new threshold parameter in radioactive-decay for analogue mode
0340 to kill very long radioactive decays at rest of nuclides happening later
0341 than such threshold.</LI>
0342 <LI>Introduced six light hypernuclei and their corresponding antiparticles
0343 (for the time being, only electromagnetic interactions of these particles
0344 are available, but switched off by default).</LI>
0345 <LI>Extended the interface of hadronic models for projectile hypernuclei and
0346 anti-hypernuclei (but not yet hadronic physics for these particles).</LI>
0347 <LI>Added implementation of hypercluster emission in INCLXX.</LI>
0348 <LI>Extended interface of the Fritiof (FTF) string model to get the number of
0349 projectile/target spectator nucleons, number of nucleon-nucleon collisions
0350 and impact parameter (see example <TT>Hadr09</TT>).</LI>
0351 </UL>
0352
0353 <B>Physics Lists</B>
0354 <UL>
0355 <LI>Updated physics lists to use a uniform approach for verbosity.</LI>
0356 <LI>Electromagnetic physics for light hypernuclei (switched off by default)
0357 can be enabled on top of any Physics Lists via C++ interface
0358 (<TT>G4HadronicParameters::Instance()->SetEnableHyperNuclei(true)</TT>).</LI>
0359 <LI>ANSTO data option for atomic de-excitation can be enabled on top of any
0360 physics lists using C++ interface or better via UI command.</LI>
0361 <LI>EPICS2017 parameterisations for Livermore gamma processes can be enabled.</LI>
0362 <LI>Positron anihilation to the tau pair can be enabled.</LI>
0363 <LI>LinhardSorensenIonModel is available with G4EmStandardPhysicsWVI
0364 constructor.</LI>
0365 </UL>
0366
0367 <B>Visualization and Interfaces</B>
0368 <UL>
0369 <LI>New ToolsSG (TSG) visualisation package based on g4tools, providing four
0370 new (mutually exclusive) visualisation drivers: TOOLSSG_X11_GLES,
0371 TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.</LI>
0372 <LI>New VtkQt and VtkNative visualisation drivers.</LI>
0373 <LI>Introducing in-app plotting with visualization and related UI command.</LI>
0374 <LI>Introducing G4Mesh, a light class that encapsulates and validates
0375 visualisation of a nested parameterisation.</LI>
0376 <LI>Extended G4UIWin32 driver with new features.</LI>
0377 <LI>Revised all visualisation models, to have G4PhysicalVolumeModel taking
0378 care of the transformation of any primitives that it generates.</LI>
0379 <LI>Removed obsolete network visualisation options for VRML driver
0380 and FukuiRenderer driver.</LI>
0381 <LI>Removed obsolete GAG/Gain/MOMO and HepRep(WIRED) modules/driver.</LI>
0382 <LI>Removed deprecated functions in visualization.</LI>
0383 </UL>
0384
0385 <B>Examples</B>
0386 <UL>
0387 <LI><B>CaTS</B> - New application implementing a flexible and extendable
0388 framework for the simulation of calorimeter and tracking detectors.
0389 It also demonstrates how to use
0390 <A HREF="https://bitbucket.org/simoncblyth/opticks.git">Opticks</A>
0391 for the creation and propagation of optical photons.</LI>
0392 <LI><B>pythia/py8decayer</B> - New example demonstrating how to outfit
0393 Pythia8-based decay features to those resonances in Geant4 where decay
0394 tables are not implemented by default. In addition, it shows how to
0395 replace existing Geant4 decay tables to such resonances as <TT>tau+/-</TT>
0396 or <TT>B+/-</TT> with the Pythia8-based ones.</LI>
0397 <LI><B>geometry/VecGeomNavigation</B> - New example demonstrating integration
0398 of VecGeom navigation, based on the prototype package G4VecGeomNav, being
0399 integrated in the example at build time.</LI>
0400 <LI><B>hadronic/Hadr05</B> - New example demonstrating how to collect energy
0401 deposition in a sampling calorimeter and how to survey energy flow.</LI>
0402 <LI><B>hadronic/Hadr10</B> - New hadronic example aimed to exercise the decay
0403 of tau leptons, as well as charmed and bottom hadrons.</LI>
0404 <LI><B>parameterisations/Par04</B> - New example demonstrating how to use the
0405 Machine Learning (ML) inference to create energy deposits as a fast
0406 simulation model using ONNX runtime and LWTNN libraries.</LI>
0407 <LI><B>runAndEvent/RE07</B> - New example demonstrating how to register
0408 specialized tracking managers for a particle or a set of particles.</LI>
0409 </LI><LI><B>dna/AuNP</B> - New example simulating the track-structure of electrons
0410 in microscopic gold volume. Also simulating that in liquid water
0411 medium surrounding the gold volume.</LI>
0412 <LI><B>dna/scavenger</B> - New example showing how to activate the scavenging
0413 process in chemistry using the deterministic treatment of the IRT
0414 model.</LI>
0415 <LI><B>visualization/movies</B> - New example illustrating how to make a movie
0416 with <TT>/vis/viewer/save</TT> and <TT>/vis/viewer/interpolate</TT> UI
0417 commands.</LI>
0418 </UL>
0419
0420 <A NAME="5."></A>
0421 <HR>
0422
0423
0424
0425 <H2>5. Expected effects on physics and computing performance</H2>
0426
0427 <B>Geometry</B>
0428 <UL>
0429 <LI>Use G4Allocator to dynamically allocate nodes and proxies for the voxels
0430 optimisation structure. Should help reducing memory fragmentation.</LI>
0431 </UL>
0432
0433 <B>Electromagnetic physics</B>
0434 <UL>
0435 <LI>Expected few % speed-up for EM simulations. Stable results for calorimeters
0436 compared with the previous versions 10.6 or 10.7.</LI>
0437 </UL>
0438
0439 <B>Hadronic physics</B>
0440 <UL>
0441 <LI>Stable results with respect to version 10.7 are expected in general for
0442 all hadronic physics observables, in particular for hadronic showers
0443 in calorimeters.</LI></LI>
0444 </UL>
0445
0446 <P> </P>
0447 <A NAME="6."></A>
0448 <HR>
0449
0450
0451
0452 <H2>6. Known Run-Time Problems and Limitations</H2>
0453 For a complete list of outstanding run-time problems and to submit any
0454 problem you may find while running this version of Geant4, please refer
0455 to the
0456 <A TARGET="ext" HREF="http://cern.ch/geant4/problemreport">Geant4 Problem
0457 Reporting System</A>.
0458
0459 <P> </P>
0460 <A NAME="7."></A>
0461 <HR>
0462
0463
0464
0465 <H2>7. Compilation Warnings</H2>
0466
0467 There may be a few compilation warnings on some platforms.
0468 We do not believe that any of these lead to incorrect run-time behaviour.
0469
0470 <P> </P>
0471 <A NAME="8."></A>
0472 <HR>
0473
0474
0475
0476 <H2>8. Geant4 Software License</H2>
0477
0478 A Software License applies to the Geant4 code.
0479 Users must accept this license in order to use it.<BR>
0480 The details and the list of copyright holders is available at
0481 <A href="http://cern.ch/geant4/license">http://cern.ch/geant4/license</A>
0482 and also in the text file <TT>LICENSE</TT> distributed with the source code.
0483
0484 <P> </P>
0485 <A NAME="9."></A>
0486 <HR>
0487
0488
0489
0490 <H2>9. Detailed list of changes and fixes</H2>
0491
0492 These are the main new features/fixes included in this release since the
0493 last patched public release (for more detailed lists of fixes/additions,
0494 please refer to the corresponding History files provided in most packages):
0495
0496 <P> </P>
0497
0498 <A NAME="conf-notes">
0499 <H3><I>Configuration</I></H3></A>
0500 <UL>
0501 <LI><U>CMake</U>
0502 <UL>
0503 <LI>Updated minimum required CMake version to 3.16, with 3.16 to 3.21
0504 as confirmed working range.</LI>
0505 <LI>Updated default build settings, GEANT4_BUILD_MULTITHREADED is now
0506 set ON by default.</LI>
0507 <LI>Updated default build settings, GEANT4_BUILD_BUILTIN_BACKTRACE is now
0508 set ON by default.</LI>
0509 <LI>Deprecated use of GEANT4_BUILD_CXXSTD in favour of CMAKE_CXX_STANDARD
0510 to choose C++ Standard to compile against.</LI>
0511 <LI>Requiring C++17 as minimum standard to compile Geant4.</LI>
0512 <LI>Added support for compilation against C++23 with CMake 3.20 and newer
0513 (note that Geant4 is not yet tested or supported using C++23).</LI>
0514 <LI>Removed obsolete -stdlib flag for AppleClang.</LI>
0515 <LI>Added preliminary support for sanitizer builds with advanced option
0516 GEANT4_BUILD_SANITIZER to allow selection of one of address, thread,
0517 or undefined sanitizer. The default is no sanitization.
0518 Adds appropriate flags to CMAKE_CXX_FLAGS.</LI>
0519 <LI>Removed settings of deprecated PHP_AS_HP environmental variable.</LI>
0520 <LI>Removed obsolete GEANT4_USE_SYSTEM_CLHEP_GRANULAR option.</LI>
0521 <LI>Updated CLHEP minimum required version to 2.4.5.1.</LI>
0522 <LI>Updated VecGeom minimum required version to 1.1.18 for optional
0523 build with VecGeom solids.</LI>
0524 <LI>Updated builtin PTL module to version v2.0.0.</LI>
0525 <LI>Added GEANT4_USE_PTL_LOCKS option to configure builtin PTL with mutex
0526 locking in task subqueues.</LI>
0527 <LI>Added GEANT4_USE_TOOLSSG option for enabling new ToolsSG visualisation
0528 driver and selecting the backend (X11, Motif, Qt, or Windows).</LI>
0529 <LI>Added GEANT4_USE_VTK advanced option for enabling new experimental
0530 VTK based visualisation driver.</LI>
0531 <LI>Removed all references to obsolete Wt visualisation driver and
0532 dependencies.</LI>
0533 <LI>Removed obsolete options for VRML and FukuiRenderer network/sockets
0534 visualisation drivers.</LI>
0535 <LI>Added FindPythia8.cmake script for use in examples.</LI>
0536 <LI>Removed obsolete FindAIDA.cmake module, no longer used in examples.</LI>
0537 <LI>Added geant4.bat, geant4-config.cmd prototypes for setting up
0538 environment variables and querying a Geant4 install on Windows.</LI>
0539 <LI>Added XercesC library directory to Linux LD_LIBRARY_PATH for GNUmake.</LI>
0540 <LI>Updated CPack source packaging, including standardisation of naming
0541 following open source conventions and use XZ compression instead of
0542 BZIP.</LI>
0543 <LI>Updated data-sets versions.</LI>
0544 </UL></LI>
0545 <LI><U>GNUMake</U>
0546 <UL>
0547 <LI>Moved default to C++17 Standard.</LI>
0548 <LI>Updated compiler/link flags for migration of g4tools to externals
0549 category.</LI>
0550 <LI>Added comctl32.lib to UI32LIBS for WIN32-VC configuration.</LI>
0551 <LI>Updated default Qt5 include paths for Linux targets.</LI>
0552 <LI>binmake.gmk: removed include path to "rpg" hadronic model, now retired.
0553 Removed include paths to <TT>hadronic/models/management</TT>
0554 and <TT>hadronic/models/util</TT> modules, now retired.</LI>
0555 <LI>Removed obsolete network visualisation options for VRML driver
0556 and FukuiRenderer driver.</LI>
0557 <LI>Removed obsolete GAG/Gain configuration.</LI>
0558 <LI>Removed no longer needed link to libXi in all configurations.</LI>
0559 <LI>Check for existence of lib64 directory for Xerces-C on Linux.</LI>
0560 <LI>Add 'c' flag to ar to suppress diagnostics going to stderr.</LI>
0561 </UL></LI>
0562 </UL>
0563
0564 <A NAME="ana-notes">
0565 <H3><I>Analysis</I></H3></A>
0566 <UL>
0567 <LI>Migration to G4ThreadLocalSingleton in all specific analysis manager
0568 and reader classes. The singleton instances are now deleted by the Geant4
0569 kernel; their explicit deletion in client code has to be removed.</LI>
0570 <LI>Added public function G4VAnalysisManager::Clear() that deletes all allocated
0571 analysis objects and clears their collections. This function should be used
0572 as a replacement for deleting the analysis manager in the applications that
0573 allocate the analysis data in begin of run and deleted the analysis manager
0574 in end of run.</LI>
0575 <LI>Added public function G4VAnalysisManager::Reset(), needed when calling files
0576 are closed without reset by calling CloseFile(false) from the analysis
0577 manager, see <TT>basic/exampleB5</TT> with interactive plotting.</LI>
0578 <LI>Added support for n-tuple columns of string vectors via new public
0579 functions in G4VAnalysisManager and G4VAnalysisReader.
0580 Added support for Xml, Hdf5 output types: added helper code for Xml
0581 reader, no update needed for Hdf5.</LI>
0582 <LI>Implemented support for file system directories with Csv output
0583 as proposed in
0584 <A HREF="https://github.com/Geant4/geant4/pull/32">GitHub PR #32</A>.</LI>
0585 <LI>Fixed reading objects from files with directories (Root, Hdf5).</LI>
0586 <LI>Implemented missing WriteOnAscii() for h2,h3,p1,p2.</LI>
0587 <LI>Added new G4ToolsAnalysisManager::IsEmpty() function.
0588 <LI>Added new G4VAnalysisReader public function CloseFiles() to be called by
0589 user before the end of program and its implementation for all readers.</LI>
0590 <LI>Replaced the explicit Write[Hn|Pn] functions in the analysis managers
0591 by a common implementation in G4ToolsAnalysisManager::WriteImpl() and
0592 Merge() using the new Hn file manager classes introduced for the generic
0593 file manager. The same code is now used for writing histograms/profiles
0594 by specific analysis managers and the generic analysis manager.</LI>
0595 <LI>Replaced the explicit Read[Hn|Pn] functions in the analysis readers
0596 by a common implementation in G4ToolsAnalysisReader using the newly
0597 introduced Hn file manager classes for reading.</LI>
0598 <LI>Separated Hn/Pn object file handling from output specific analysis readers
0599 in Hn file manager classes for reading (G4XHnRFileManager).</LI>
0600 <LI>Separated ReadNtuple functions from the analysis readers in
0601 the RNtuple manager classes.</LI>
0602 <LI>Added G4ToolsAnalysisMessenger that implements "get" commands
0603 <TT>/analysis/hn|pn/get id</TT>.</LI>
0604 <LI>Reimplemented utility functions GetBaseName(), GetExtension() using
0605 <TT>filesystem</TT> library.</LI>
0606 <LI>Removed 'isMaster' argument from managers/reders constructors, and retrieve
0607 this info from G4Threading where needed.</LI>
0608 <LI>Simplified calls to G4Exceptions: added G4Analysis::Warn() and changed the
0609 calls to G4Exception in all analysis classes (except accumulables); reduced
0610 exception classification to: Analysis_F001 (Fatal exceptions) and
0611 Analysis_W001 (Warnings).</LI>
0612 <LI>Simplified verbosity messages, plus more simplifications in warning calls.</LI>
0613 <LI>Use fonts from tools in G4PlotManager.</LI>
0614 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
0615 <LI>Removed CMake -DTOOLS_USE_EXPAT definition, no longer needed.</LI>
0616 <LI>Removed <TT>default</TT> in switch for GetMergeFunction() to prevent
0617 accidental fall through on Windows.</LI>
0618 <LI>Code clean-up: review of static data members; changed <TT>static const</TT>
0619 to <TT>static constexpr</TT> where possible or <TT>inline static const</TT>
0620 otherwise (for G4String); declare static data members inline and moved
0621 their initialization in header file. Removed redundant includes and
0622 consistency fixes. Moved data members initialization in header files;
0623 added deleted default constructor where appropriate; added <TT>explicit</TT>
0624 keyword to one argument constructors where missing and removed from
0625 constructors with more than 1 parameters; use brace data members
0626 initialization everywhere. Replaced some constants with <TT>constexpr</TT>.
0627 Replaced G4Analysis::make_unique with <TT>std::make_unique</TT>.
0628 Using more shared pointers. Using <TT>[[maybe_unused]]</TT> where
0629 appropriate. Fixed Coverity issues.</LI>
0630 <LI>Applied clang-tidy performance fixes: use of <TT>const auto&</TT>,
0631 <TT>std::move</TT> where appropriate; revisited passing by
0632 <TT>std::shared_ptr</TT>. Use <TT>make_unique, nullptr, auto,
0633 emplace_back, using</TT>; use of <TT>default</TT> for disabled constructors
0634 and destructors and <TT>delete</TT> for private member functions not
0635 implemented.</LI>
0636 <LI>Removed deprecated g4csv.hh, g4hdf5.hh, g4root.hh, g4xml.hh headers.</LI>
0637 <LI>Reduced output specific type definitions in g4xyz_defs.hh to ntuple end
0638 rntuple types.</LI>
0639 <LI>Removed g4analysis.hh with the G4Analysis::MasterInstance() factory method.</LI>
0640 <LI>Removed the default value ("root") for the default file type in
0641 G4GenericAnalysisManager; the default must be set by user if using fileNames
0642 without extensions.</LI>
0643 <LI>Moved g4tools to externals category. Moved "fonts" directory and install
0644 logic to g4tools package in externals, as prime interface to Freetype.</LI>
0645 <LI>Fix in G4MPIToolsManager: do not call Receive() twice.</LI>
0646 <LI>Fixed compilation errors in G4CsvAnalysisReader and G4XmlAnalysisReader
0647 occurring with C++20 enabled.</LI>
0648 <LI>Fixed evaluation of result of deleting empty file in G4RootAnalysisManager,
0649 causing wrong warnings.</LI>
0650 <LI>Minor fixes: do not issue same log messages from generic analysis manager
0651 and generic file manager; do not call SetIsEmpty() twice in Hdf5.</LI>
0652 <LI>Fixed G4*RFileManager destructors.</LI>
0653 <LI>Implemented handling directories in Generic analysis manager.</LI>
0654 </UL>
0655
0656 <A NAME="digits-notes">
0657 <H3><I>Digitization & Hits</I></H3></A>
0658 <UL>
0659 <LI>Extending cylindrical scoring mesh to tube and tube segment.
0660 Fixed indexing of cylindrical scoring mesh commands;
0661 addressing problem report
0662 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2418">#2418</A>.</LI>
0663 <LI>Make sure probe commands are not unnecessarily broadcasted to the worker
0664 threads.</LI>
0665 <LI>Updated G4TScoreHistFiller according to changes in the analysis category;
0666 removed deletion of the analysis manager, now done by the Geant4 kernel.</LI>
0667 <LI>G4VScoringMesh: corrected warning messages when the size or number of
0668 bins have already been set but tried to change.</LI>
0669 <LI>Updated G4TScoreNtupleWriter according to changes in the analysis category;
0670 removed deletion of the analysis manager, now done by the Geant4 kernel.
0671 Added default type and its setter.</LI>
0672 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
0673 Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
0674 <LI>Code formatting.</LI>
0675 </UL>
0676
0677 <A NAME="emstd-notes">
0678 <H3><I>Electromagnetic Processes</I></H3></A>
0679 <UL>
0680 <LI><B>Adjoint</B>:
0681 <UL>
0682 <LI>General code cleanup: applied clang-format style guidelines;
0683 applied C++11 codewords to method declarations (virtual, override,
0684 explicit); deleted unused variables and methods; started naming class
0685 member variables with <TT>f</TT>; use <TT>nullptr</TT> instead of
0686 <TT>0</TT>; removed unused headers; use constexpr for numbers.
0687 Use <TT>virtual</TT> and <TT>override</TT> methods consistently; member
0688 variables start with <TT>f</TT>; shorten long names; removed
0689 unused variables; make class variables local where appropriate; order
0690 declarations of class variables; define class variables; removed unused
0691 functions; marked copy/assignment operators as <TT>delete</TT>; added
0692 ProcessDescriptions; removed ChangeHistory from top of code;
0693 use <TT>CLHEP::twopi</TT> instead of hardcoded value; removed more unused
0694 headers.</LI>
0695 <LI>G4AdjointForcedInteractionForGamma: improved forced interaction for
0696 gamma reverse tracking in thick shielding.</LI>
0697 <LI>G4AdjointhIonisationModel: updated weight correction to limit
0698 dependence of proton dose results on cut in range.</LI>
0699 <LI>G4ContinuousGainOfEnergy: use updated signature for ion ionisation.</LI>
0700 <LI>G4AdjointCSManager: updated interfaces to G4PhysicsVector.</LI>
0701 <LI>Fixed coverity warnings in G4AdjointCSManager and G4VEMAdjointModel.</LI>
0702 <LI>Free resources in destructors.</LI>
0703 </UL></LI>
0704 <LI><B>DNA</B>:
0705 <UL>
0706 <LI>Added IRT-syn model.</LI>
0707 <LI>Added new models: G4DNADiracRMatrixExcitationModel,
0708 G4DNAQuinnPlasmonExcitationModel, G4DNARelativisticIonisationModel and
0709 G4DNAPlasmonExcitation.</LI>
0710 <LI>Added G4VDNAMolecularGeometry, a virtual class for DNA geometry.</LI>
0711 <LI>Added new mesoscopic model for DNA chemistry.</LI>
0712 <LI>Updates in G4DNAIRT, G4DNAIRTMoleculeEncounterStepper,
0713 G4ITModelProcessor, G4Scheduler and G4DNAMolecularReactionTable
0714 classes, and fixed sub-modules dependencies.</LI>
0715 <LI>Modified G4DNAELSEPAElasticModel for gold material.</LI>
0716 <LI>G4DNAElectronHoleRecombination: dissociation channel of electron-hole
0717 recombination moved to G4EmDNAChemistry, _option1, _option2, _option3.</LI>
0718 <LI>G4DNAWaterDissociationDisplacer: added the fragment displacement for
0719 new dissociation channel.</LI>
0720 <LI>Replaced hardwired process-sub-types with enum values introduced in the
0721 new class G4LowEnergyEmProcessSubType.</LI>
0722 <LI>Updated PrintGeneratorInformation() method signature in G4DNABornAngle
0723 and G4DNARuddAngle.</LI>
0724 <LI>G4DNABohrExcitationModel2, G4DNABohrIonisationModel2, G4VLEPSModel:
0725 updated interfaces to G4PhysicsVector.</LI>
0726 <LI>Fixed initialization error in G4DNAELSEPAElasticModel.</LI>
0727 <LI>Fixed compilation error in G4ITMultiNavigator when compiling with C++20
0728 enabled.</LI>
0729 <LI>Fixed dependency on g4tools, now moved to externals module.</LI>
0730 </UL></LI>
0731 <LI><B>High Energy</B>
0732 <UL>
0733 <LI>G4eeToHadrons: updated integral type.</LI>
0734 <LI>Code clenup: clean-up of interfaces; removed unused headers;
0735 improved initialisation.</LI>
0736 <LI>G4hBremsstrahlungModel: added header.</LI>
0737 <LI>G4hhIonisation: removed G4BohrFluctuations.</LI>
0738 <LI>G4AnnihiToMuPair: return DBL_MAX if below threshold energy; keep pointer
0739 to G4LossTableManager for correct de-registration in the MT mode; added
0740 option of tau+tau- pair production; optimized computation of
0741 cross-sections in compounds; added process sub-type via enumerator.</LI>
0742 <LI>G4mplIonisationModel, G4mplIonisationWithDeltaModel: updated according to
0743 change of G4VEmFluctuationModel signature.</LI>
0744 </UL></LI>
0745 <LI><B>Low Energy</B>
0746 <UL>
0747 <LI>Updated Livermore models to use EPICS2017 data.</LI>
0748 <LI>Included new PIXE data libraries following ANSTO recommendations.
0749 Added new classes to model the ANSTO ECPSSR cross-sections for protons
0750 and alpha particles. Added option to activate the ANSTO fluorescence
0751 radiation yield (<TT>Z < 93</TT>).</LI>
0752 <LI>G4LivermorePolarizedComptonModel: added quantum entanglement of e+
0753 annihilation. If the photons have been "tagged" as "quantum-entangled",
0754 for example by G4eplusAnnihilation for annihilation into 2 photons, they
0755 are "analysed" if and only if both photons suffer Compton scattering.
0756 Theoretical predictions from: Pryce and Ward, Nature N.4065 (1947) p.435,
0757 and Snyder et al, Physical Review 73 (1948) p.440. Experimental
0758 validation in: "Photon quantum entanglement in the MeV regime and its
0759 application in PET imaging", D. Watts, J. Allison et al., Nature
0760 Communications (2021)12:2646.
0761 The implementation of entanglement is described in extensive comments
0762 in G4LivermorePolarizedComptonModel source.</LI>
0763 <LI>Migrated Spline treatment for all physics vectors.</LI>
0764 <LI>G4LivermorePolarizedRayleighModel: read data from $G4LEDATA/livermore
0765 directory. Code clean-up.</LI>
0766 <LI>Removed unused classes G4LivermoreGammaConversionModelRC and
0767 G4LivermoreComptonModifiedModel.</LI>
0768 <LI>Convert G4LPhysicsFreeVector into G4PhysicsFreeVector.</LI>
0769 <LI>Removed obsolete unused classes G4BremsstrahlungCrossSectionHandler,
0770 G4BremsstrahlungParameters, G4eBremsstrahlungSpectrum, G4hSRIM2000p,
0771 G4PhotoElectricAngularGeneratorSimple, G4MicroElecInelastic_new,
0772 G4LivermorePolarizedPhotoElectricModel and
0773 G4LivermorePolarizedPhotoElectricGDModel.</LI>
0774 <LI>G4MicroElecLOPhononModel: removed debug printout; rename member of
0775 class.</LI>
0776 <LI>G4MicroElecSurface: replaced hardwired process-sub-type 25 with (already
0777 existing) <TT>fSurfaceReflection</TT>.</LI>
0778 <LI>G4MicroElecElastic, G4MicroElecLOPhononScattering, G4MicroElecInelastic:
0779 replaced hardwired process-sub-types 51 and 53 with new enum values
0780 <TT>fLowEnergyElastic</TT> and <TT>fLowEnergyIonisation</TT>.</LI>
0781 <LI>Improved management of array in G4PenelopeGammaConversionModel.</LI>
0782 <LI>Replaced std::map with static arrays in the G4Penelope models for
0783 performance improvements.</LI>
0784 <LI>Removed obsolete PrintInfo() methods and self defined process SubType.</LI>
0785 <LI>G4IonParametrisedLossModel: use updated signature for ion ionisation.</LI>
0786 <LI>Updated PrintGeneratorInformation() method signature for few angular
0787 generators.</LI>
0788 <LI>G4PenelopeBremsstrahlungAngular, G4PenelopeBremsstrahlungFS,
0789 G4PenelopeCrossSection, G4JAEAElasticScatteringModel,
0790 G4JAEAPolarizedElasticScatteringModel: use optimal methods of
0791 G4PhysicsVector.</LI>
0792 <LI>G4LivermorePolarizedComptonModel: migrated to the new version of
0793 G4PhysicsModelCatalog.</LI>
0794 <LI>G4AugerData: removed dead code.</LI>
0795 <LI>G4VCrossSectionHandler, G4eIonisationParameters: use const pointers to
0796 G4Element.</LI>
0797 <LI>General code cleanup: use G4 types; cleanup of headers and Penelope
0798 models.</LI>
0799 </UL></LI>
0800 <LI><B>Muons</B>
0801 <UL>
0802 <LI>General code clean-up: use C++11 keywords, improved comments, format
0803 files.</LI>
0804 <LI>G4EnergyLossForExtrapolator, G4ErrorEnergyLoss, G4TablesForExtrapolator:
0805 provide thread-safe initialisation of internal tables; guarantee
0806 initialisation only once; size of tables depend only on number of
0807 materials.</LI>
0808 <LI>G4MuIonisation: removed obsolete G4BohrFluctuations header.</LI>
0809 <LI>G4MuPairProduction, G4ePairProduction, G4MuBremsstrahlung: disabled
0810 Spline interpolation by default.</LI>
0811 <LI>G4MuPairProduction, G4MuBremsstrahlung, G4MuBremsstrahlungModel:
0812 improved initialisation.</LI>
0813 <LI>Updated PrintGeneratorInformation() method signature in G4ModifiedMephi.</LI>
0814 </UL></LI>
0815 <LI><B>Pii</B>
0816 <UL>
0817 <LI>Use const pointer to G4Element according to recent changes in materials.</LI>
0818 </UL></LI>
0819 <LI><B>Polarisation</B>
0820 <UL>
0821 <LI>General code cleanup: name classes in logical manner; improved comments;
0822 added ProcessDescription; ordered #includes and removed unused; disabled
0823 copy and assignment operators with <TT>delete</TT>; increased C++11 keyword
0824 usage, especially <TT>override</TT>, <TT>explicit</TT>; renamed (most)
0825 class variables to start with <TT>f</TT>; make SCRN arrays the correct size;
0826 use <TT>constexpr</TT> for numbers; applied clang-format style; use
0827 G4ExceptionDescription; avoid implicit conversions between G4StokesVector
0828 and G4ThreeVector.</LI>
0829 <LI>G4PolarizedIonisationBhabhaXS: removed incorrect G4Exception.</LI>
0830 <LI>G4PolarizedAnnihilation, G4ePolarizedIonisation: improved initialisation
0831 of assymetry tables.</LI>
0832 <LI>G4PolarizedAnnihilation, G4PolarizedCompton: updated use of the Spline
0833 flag.</LI>
0834 </UL>
0835 <LI><B>Standard</B>
0836 <UL>
0837 <LI>G4eplusAnnihilation: introducing Quantum Entanglement. This is activated
0838 by UI command <TT>/process/em/QuantumEntanglement</TT>. For e+e- -> gamma
0839 gamma, the gammas are "tagged" here and must be "analysed" in a Compton
0840 scattering process - see, for example, G4LivermorePolarizedComptonModel.
0841 Otherwise entanglement has no effect even if activated.
0842 Instantiate clipboard only if Quantum Entanglement is requested.</LI>
0843 <LI>G4PAIModelData, G4eplusTo2GammaOKVIModel: corrected initialisation of
0844 physics vectors.</LI>
0845 <LI>G4LindhardSorensenData: updated definition of Spline flag.</LI>
0846 <LI>G4CoulombScattering, G4eBremsstrahlung, G4eplusAnnihilation: updated set
0847 of flags for Spline and the integral approach.</LI>
0848 <LI>Removed obsolete classes G4BohrFluctuations and
0849 G4HeatedKleinNishinaCompton.</LI>
0850 <LI>G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel,
0851 G4ICRU73QOModel, G4AtimaIonIonisationModel: changed interface to ion
0852 ionisation corrections.</LI>
0853 <LI>G4BraggModel, G4BraggIonModel: set lowest energy to <TT>0.25 keV</TT>;
0854 added protection to limit cut value by the lowest energy.</LI>
0855 <LI>G4BraggIonModel, G4BetheBlochModel, G4ionIonisation clean-up. Improved
0856 implementation of corrections to ion stopping powers: do not apply
0857 corrections at the last step of an ion; do not apply corrections to
0858 alpha.Addressing problem report
0859 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2440">#2440</A>.</LI>
0860 <LI>G4PairProductionRelModel: reduced upper limit of parameterisation
0861 cross-section from 80 to 30 <TT>GeV</TT>.</LI>
0862 <LI>G4LindhardSorensenIonModel: use G4BraggIonModel, G4BetheBlochModel and
0863 G4IonICRU73Data, do not apply corrections at the last step of an ion.</LI>
0864 <LI>G4IonICRU73Data: new data structure for ion ionisation data.</LI>
0865 <LI>G4LinhardSorensenIonModel, G4ICRU73QOModel: added protection to limit cut
0866 value by the lowest energy.</LI>
0867 <LI>G4eplusAnnihilation: migrated to the new version of G4PhysicsModelCatalog.</LI>
0868 <LI>G4PAIModelData: use optimal methods to access G4PhysicsVector.</LI>
0869 <LI>G4UniversalFluctuation, G4IonFluctuations, G4AtimaFluctuations, G4PAIModel,
0870 G4PAIPhotModel: updated according to new G4VEmFluctuationModel signature.
0871 Minor optimisation and code clean-up in G4UniversalFluctuation.</LI>
0872 <LI>G4UrbanMscModel: do not apply energy correction at small steps below 1% of
0873 a particle range. Use random arrays instead of flat() method to speedup the
0874 code; use more const variables.</LI>
0875 <LI>G4UniversalFluctuation: substantially simplified sampling algorithm,
0876 smaller number of parameters, faster computations; results are in
0877 statistical agreement with the previous version of the code.</LI>
0878 <LI>G4PEEffectFluoModel: optimised cross-section computation with reciprocals
0879 and Horners scheme.</LI>
0880 <LI>G4BraggIonModel: fixed computation of dedx for alpha if
0881 ICRU90 data are used. Improved method signatures and code cleanup.</LI>
0882 <LI>G4hIonisation, G4ionIonisation: He3 dedx derived from alpha dedx;
0883 pi, K, proton, pbar, GenericIon have their own dedx and other tables;
0884 other hadrons derived from K, protons, pbar; ions derived from GenericIon.</LI>
0885 <LI>G4ionIonisation: use G4WaterStopping with Spline enabled.
0886 Minor code clean-up.</LI>
0887 <LI>G4ASTARStopping: improved method signatures.</LI>
0888 <LI>G4BetheBlochModel, G4ESTARStopping, G4AtimaEnergyLossModel,
0889 G4LindhardSorensenIonModel: fixed Coverity warnings by initialising all
0890 variables in class constructors.</LI>
0891 <LI>Removed obsolete G4alphaIonisation class.</LI>
0892 <LI>Code clean-up of ionisation, energy loss processes and models.</LI>
0893 <LI>Clean-up of gamma processes.</LI>
0894 <LI>Requires data-set G4EMLOW-8.0.</LI>
0895 </UL></LI>
0896 <LI><B>Utils</B>
0897 <UL>
0898 <LI>G4VEmProcess, G4VEnergyLossProcess, G4EmTableType, G4EmBiasingManager,
0899 G4LossTableManager: updated integral approach by introduction of a
0900 cross-section shape type and different actions depending on the type;
0901 added cache for cross-section and range; removed unused methods;
0902 attempt to reduce number of <TT>if</TT> operators at run time; integral
0903 and Spline flags are set to each process individually and not via
0904 G4EmParameters class.</LI>
0905 <LI>G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering,
0906 G4LossTableBuilder, G4VEmModel, G4VMscModel, G4LossTableManager:
0907 implement and use base material approach only if base materials are defined,
0908 this should bring a minor speedup of the code and little reduction of memory;
0909 fixed problems for the case when materials are changed between runs.</LI>
0910 <LI>G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation, G4LossTableBuilder:
0911 implemented updated numbering scheme for secondary particle production;
0912 deprecated duplicate printout of processes and models; moved list of EM
0913 parameters printout before printout on processes; improved code format.</LI>
0914 <LI>G4VMultipleScattering: fixed problem observed by CMS for specific
0915 physics list.</LI>
0916 <LI>G4EmCorrections, G4VEmProcess: updated use of the Spline flag.</LI>
0917 <LI>G4EmCorrections: do not use Spline in various internal vectors, as
0918 correction values are small and smooth. Cleanup of ion correction
0919 computations.</LI>
0920 <LI>G4EmCorrections, G4LossTableBuilder: substitute use of deprecated
0921 G4LPhysicsFreeVector by G4PhysicsFreeVector.</LI>
0922 <LI>G4VEmProcess, G4VEnergyLossProcess, G4EmDataHandler: updated method
0923 RetrievePhysicsTable().</LI>
0924 <LI>G4TableType: added extra enumerator for type of cross-section shape.</LI>
0925 <LI>G4EmProcessSubType: added new type for annihilation to tau pair.</LI>
0926 <LI>G4LowEnergyEmProcessSubType: added new enum values, corresponding
0927 to numerical values used in G4PhysicsListHelper.</LI>
0928 <LI>G4LowEnergyEmProcessSubType: created new enum for low-energy
0929 electromagnetic process sub-types.</LI>
0930 <LI>G4EmElementSelector: change computation for upper energy limit, fixing
0931 occasional crashes in some applications.</LI>
0932 <LI>G4EmParameters: added ANSTO options for the atomic de-excitation; removed
0933 obsolete AugerCascade() method.</LI>
0934 <LI>G4EmParameters, G4EmParametersMessenger: removed obsolete methods; added
0935 protection agains duplicate printout.</LI>
0936 <LI>G4EmLowEParameters, G4EmLowEParametersMessenger: added ANSTO flag and UI
0937 commands.</LI>
0938 <LI>G4OpticalParameters: removed deprecated function declarations.</LI>
0939 <LI>G4OpticalParameters, G4OpticalParametersMessenger: removed deprecated
0940 optical commands and parameters. Replaced CreateDir() with new
0941 G4UIdirectory(). Apply clang-format style guidelines.</LI>
0942 <LI>G4VMultipleScattering: removed obsolete unused methods; reduced number
0943 of operations at run time, use <TT>isIon</TT> flag for scaling of energy
0944 limits for all particles with mass <TT>>1 GeV</TT>.</LI>
0945 <LI>G4VEmModel removed "virtual" keyword for ComputeDEDX() method.</LI>
0946 <LI>G4EmCalculator: fixed computation of dedx for He3 and alpha.
0947 In G4VEnergyLossProcess, exclude ion corrections only from d, t, alpha.
0948 Addressing problem report
0949 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2440">#2440</A>.</LI>
0950 <LI>G4ionEffectiveCharge: return back limit on effective charge from
0951 0.5 to 1 as used in previous releases.</LI>
0952 <LI>G4VEmAngularDistribution: added virtual method
0953 PrintGeneratorInformation().</LI>
0954 <LI>Fixed model per region definition for all base processes G4VEmProcess,
0955 G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
0956 for energy loss processes; clean-up of parameters classes.</LI>
0957 <LI>G4VEmModel, G4VEnergyLossProcess, G4EmCalculator: optimised signature
0958 of the CorrectionsAlongStep() method; use more constant variables;
0959 minor code optimisation.</LI>
0960 <LI>G4VEmProcess, G4VEnergyLossProcess: fixed computation of cross-section
0961 and range if base material approach is used.</LI>
0962 <LI>G4VEmFluctuationModel: changed interface; both cut value and max energy
0963 transfer are parameters of main methods.
0964 Addressing problem report
0965 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2390">#2390</A>.</LI>
0966 <LI>G4VEnergyLossProcess, G4EmModelManager: adopted above interface change.</LI>
0967 <LI>G4VEmProcess, G4VEnergyLossProcess, G4VAtomDeexcitation: migrated
0968 to the new version of G4PhysicsModelCatalog.</LI>
0969 <LI>G4LossTableBuilder: base material flag may be disabled.
0970 Use updated interface to G4PhysicsVector.</LI>
0971 <LI>G4EmElementSelector: change computation for corner cases.</LI>
0972 <LI>G4EmParametersMessenger: correct default value for 'GeomFactor'.</LI>
0973 <LI>Changed ANSTO parameters in UI interface commands.</LI>
0974 <LI>Removed obsolete G4EmProcessOptions class.</LI>
0975 <LI>G4LossTableBuilder: fixed debug printout.</LI>
0976 <LI>G4VMscModel: improved printout.</LI>
0977 <LI>G4VEnergyLossProcess: code cleanup for ions.</LI>
0978 <LI>General code cleanup; removed obsolete methods and members;
0979 reorganized class members.</LI>
0980 </UL>
0981 <LI><B>Xrays</B>
0982 <UL>
0983 <LI>General code cleanup: removed commented out code; added
0984 ProcessDescription() and DumpInfo(); organized order of headers,
0985 removed and added as needed; use <TT>constexpr</TT> for numbers; replaced
0986 G4PhysicsOrderedFreeVector with G4PhysicsFreeVector.</LI>
0987 <LI>G4Cerenkov, G4Scintillation, G4SynchrotronRadiation, G4ForwardXrayTR,
0988 G4SynchrotronRadiationInMat, G4VXTRenergyLoss: set the creator model ID
0989 for the secondaries, using the new version of G4PhysicsModelCatalog.</LI>
0990 <LI>G4Cerenkov, G4Scintillation: update G4OpticalParameters when process
0991 parameters updated directly. Addresses problem report
0992 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2425">#2425</A>.</LI>
0993 <LI>G4Cerenkov: do not use obsolete methods to access G4PhysicsVector data.</LI>
0994 <LI>G4Scintillation: removed deprecated optical commands.</LI>
0995 </UL></LI>
0996 </UL>
0997
0998 <A NAME="errprop-notes">
0999 <H3><I>Error Propagation</I></H3></A>
1000 <UL>
1001 <LI>Code formatting.</LI>
1002 </UL>
1003
1004 <A NAME="event-notes">
1005 <H3><I>Event</I></H3></A>
1006 <UL>
1007 <LI>G4EventManager: hand over track to custom tracking manager, if registered
1008 for the particle; moved StackTracks() to be public.</LI>
1009 <LI>Use existing facility to find physical volume in store, rather than
1010 looping through in G4SPSPosDistribution::ConfineSourceToVolume().</LI>
1011 <LI>Use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector
1012 in G4AdjointPrimaryGenerator, G4SPSAngDistribution, G4SPSEneDistribution,
1013 and G4SPSRandomGenerator.</LI>
1014 <LI>G4SPSEneDistribution: use more efficient access to G4PhysicsVector.</LI>
1015 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1016 Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1017 </UL>
1018
1019 <A NAME="externals-notes">
1020 <H3><I>Externals</I></H3></A>
1021 <UL>
1022 <LI><U>CLHEP</U>:
1023 <UL>
1024 <LI>Updated to CLHEP version 2.4.5.1.</LI>
1025 <LI>Added units: <TT>minute</TT>, <TT>hour</TT>, <TT>day</TT>, <TT>year</TT>
1026 and <TT>millielectronvolt</TT>.
1027 Added constants: <TT>Bohr_magneton</TT> and <TT>nuclear_magneton</TT>.</LI>
1028 <LI>Added new random engine RANLUX++ and related helper classes.
1029 RANLUX++ is an extension of RANLUX and uses the equivalent LCG to
1030 offer a much higher luxury level at better performance. It inherits
1031 the excellent statistical properties and passes the full BigCrush.</LI>
1032 <LI>Fixed seeding in Ranlux64Engine.</LI>
1033 <LI>Fixed trivial compilation warnings on gcc-11 in Random headers.</LI>
1034 </UL></LI>
1035 <LI><U>G4tools</U>:
1036 <UL>
1037 <LI>Moved from analysis module and updated to version 5.6.0:
1038 <UL>
1039 <LI>Added "Windowing" code needed for G4/vis/tools_sg.</LI>
1040 <LI>Added code to write/read a column of vectors of strings for n-tuple.</LI>
1041 <LI>Handling of embedded fonts.</LI>
1042 <LI>Fixed compilation warnings on gcc-11.</LI>
1043 <LI>See History_tools for the complete list of modifications.</LI>
1044 </UL></LI>
1045 </UL></LI>
1046 <LI><U>PTL</U>:
1047 <UL>
1048 <LI>Updated PTL to version v2.0.0.</LI>
1049 <LI>Replaced raw pointers to tasks with
1050 shared_ptrs for memory management improvements.</LI>
1051 <LI>Removed PTL custom task allocator classes.</LI>
1052 <LI>Fixed warnings about TBB task scheduler init.</LI>
1053 <LI>Fixed compilation warnings when C++20 Standard enabled.</LI>
1054 <LI>Improved thread safety.</LI>
1055 <LI>Fixed some memory issues.</LI>
1056 <LI>Fix to TaskRunManager::Terminate() + <TT>nullptr</TT> to m_thread_pool
1057 responsible for segmentation-fault when ui/vis initialised, but not
1058 run manager.</LI>
1059 <LI>Make PTL cmake options available in configuration, including:
1060 PTL_USE_SANITIZER and PTL_USE_LOCKS, but hidden from clients building
1061 Geant4; relevant Geant4 options forwarded to PTL: TBB, sanitizer, locks.</LI>
1062 <LI>Use CMAKE_CXX_STANDARD in place of GEANT4_BUILD_CXXSTD in CMake
1063 configuration. Also, updated minimum CMake version requirements.</LI>
1064 </UL></LI>
1065 <LI><U>ZLIB</U>:
1066 <UL>
1067 <LI>Removed formatting options from build.</LI>
1068 </UL></LI>
1069 </UL>
1070
1071 <A NAME="g3tog4-notes">
1072 <H3><I>G3toG4</I></H3></A>
1073 <UL>
1074 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1075 Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1076 <LI>Fixed compilation error in G3EleTable when C++20 is enabled.</LI>
1077 </UL>
1078
1079 <A NAME="gen-notes">
1080 <H3><I>General Processes</I></H3></A>
1081 <UL>
1082 <LI><B>Biasing</B>
1083 <UL>
1084 <LI>G4BOptrForceCollision: migrated to the new version of
1085 G4PhysicsModelCatalog.</LI>
1086 </UL></LI>
1087 <LI><B>Cuts</B>
1088 <UL>
1089 <LI>G4VRangeToEnergyConverter, G4RToEConvForPositron, G4RToEConvForElectron,
1090 G4RToEConvForGamma, G4RToEConvForProton: simplified the design; do not use
1091 G4PhysicsTable and G4PhysicsVector but convert range cut to production
1092 threshold directly; expected memory reduction for big detectors and some
1093 speed-up of initialisation.</LI>
1094 <LI>G4PhysicsTableHelper: updated interface to Retrieve() method.
1095 Fixed minor Coverity report. Fixed Coverity warning due to index type;
1096 removed G4ThreadLocal variable; substituted old cerr with G4Exception
1097 (old printouts are kept); removed inclusion of unused headers.</LI>
1098 <LI>G4MCCIndexConversionTable: changed inline functions, only one return is
1099 left instead of two.</LI>
1100 </UL></LI>
1101 <LI><B>Management</B>
1102 <UL>
1103 <LI>Introducing classes for implementation of quantum entanglement:
1104 G4EntanglementAuxInfo, G4VEntanglementClipBoard and
1105 G4eplusAnnihilationEntanglementClipBoard.
1106 Currently, entanglement is implemented only in G4eplusAnnihilation
1107 and G4LivermorePolarizedComptonModel.</LI>
1108 <LI>New class G4NoProcess, representing an empty process not assigned to any
1109 particle, and used only in G4SteppingManager::InvokeAtRestDoItProcs()
1110 for stable ions at rest, in order to avoid that radioactive decay appears
1111 as process defining their last step. Note that the method IsApplicable(),
1112 retunrs false, as this process should not be set to any particle.</LI>
1113 </UL></LI>
1114 <LI><B>Optical</B>
1115 <UL>
1116 <LI>G4OpBoundaryProcess: fixed initialisation of some local variables.
1117 Addressing problem report
1118 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2364">#2364</A>.</LI>
1119 <LI>G4OpBoundaryProcess: renamed internal variables; make comparison to
1120 <TT>nullptr</TT> explicit; removed unneeded intermediate variable;
1121 refactored Davis LUT calculation. On StepTooSmall, propose velocity
1122 corresponding to material of post-step point. Addresses problem report
1123 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2438">#2438</A>.</LI>
1124 <LI>In all process classes, update G4OpticalParameters when process parameters
1125 updated directly. Addresses problem report
1126 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2425">#2425</A>.</LI>
1127 <LI>G4OpRayleigh, G4OpWLS, G4OpWLS2: use G4PhysicsFreeVector instead
1128 of deprecated G4PhysicsOrderedFreeVector.</LI>
1129 </UL></LI>
1130 <LI><B>Solid state</B>
1131 <UL>
1132 <LI>G4Channeling, G4ChannelingOptrChangeCrossSection: migrated to the
1133 new version of G4PhysicsModelCatalog.</LI>
1134 </UL></LI>
1135 <LI><B>Transportation</B>
1136 <UL>
1137 <LI>Enable setting of smooth curved trajectories to particle-change in
1138 G4CoupledTransportation::AlongStepDoIt(), which was commented out by
1139 mistake. Based on discussion in Geant4 Forum thread #4271.</LI>
1140 </UL></LI>
1141 </UL>
1142
1143 <A NAME="geo-notes">
1144 <H3><I>Geometry</I></H3></A>
1145 <UL>
1146 <LI><B>Biasing</B>
1147 <UL>
1148 <LI>Added missing include of G4Threading header for G4Mutex for
1149 self-consistency in G4ImportanceAlgorithm header.</LI>
1150 </UL></LI>
1151 <LI><B>Management</B>
1152 <UL>
1153 <LI>Added map for faster search based on name in G4SolidStore,
1154 G4RegionStore, G4logicalVolumeStore and G4PhysicalVolumeStore.
1155 Pointers to elements are stored in the map as buckets, grouping
1156 elements with same name.</LI>
1157 <LI>Use G4Allocator to dynamically allocate nodes and proxies for the voxels
1158 optimisation structure. Should help reducing memory fragmentation.</LI>
1159 <LI>G4UAdapter: added operator<<() to fix clash between similar methods
1160 for G4VSolid and VecGeom UnplacedVolume.</LI>
1161 <LI>Make operator<<() for G4VSolid a free function.</LI>
1162 <LI>Basic clang-tidy review of code.</LI>
1163 </UL></LI>
1164 <LI><B>Navigation</B>
1165 <UL>
1166 <LI>G4Navigator: enabled use of alternative G4VoxelNavigation class.
1167 Adds call to virtual method in ComputeStep(), LocateGlobalPointAndSetup()
1168 for voxelised volumes. Controlled by ALTERNATIVE_VOXEL_NAV flag, turned
1169 on by default.
1170 Deleted experimental obsolete method RecheckDistanceToCurrentBoundary(),
1171 also removed in G4SafetyHelper and G4PathFinder.
1172 Cleaned up ComputeSafety().</LI>
1173 <LI>G4VoxelNavigation: simplify code of <TT>check</TT> mode tests to avoid 2nd
1174 code path. Added comments about method arguments.</LI>
1175 <LI>G4NavigationLogger: soften check of step vs distance (using tolerance).</LI>
1176 <LI>G4[Partial]PhantomParameterisation: renamed Get/SetNoVoxel*() accessors
1177 to Get/SetNoVoxels*() for coherence. Migrated code in G4RegularNavigation
1178 accordingly. NOTE: might imply user code migration.</LI>
1179 </UL></LI>
1180 <LI><B>Solids (Boolean)</B>
1181 <UL>
1182 <LI>In G4UnionSolid and G4SubtractionSolid, revised GetCubicVolume() method
1183 to use cubic volume of constituent volume(s) and an intersection solid,
1184 for more accurate measurement.</LI>
1185 </UL></LI>
1186 <LI><B>Solids (CSG)</B>
1187 <UL>
1188 <LI>G4Trap, G4Para and wrappers: added accessors to retrieve/calculate
1189 original values for alpha, theta, phi.</LI>
1190 <LI>Revision of G4UTrap wrapper: list of accessors and modifiers made
1191 consistent with G4Trap; implemented check of parameters similar to
1192 G4Trap.</LI>
1193 <LI>Corrected typo in G4UPara::GetXHalfLength(). Addressing problem report
1194 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2446">#2446</A>.</LI>
1195 <LI>Removed deprecated accessors in G4Sphere and G4Tubs.</LI>
1196 </UL></LI>
1197 <LI><B>Solids (Specific)</B>
1198 <UL>
1199 <LI>Simplified implementation of CreatePolyhedron() in G4Polyhedra,
1200 G4Polycone, G4GenericPolycone and related wrappers.
1201 <LI>In G4TesselatedSolid, implemented GetFacetIndex(p) and CheckStructure().
1202 Optimised code in SetExtremeFacets(): shuffle of vertices and checking
1203 of six extreme vertices.
1204 <LI>In G4Tet, added <TT>degeneracyFlag</TT> to the list of parameters in
1205 SetVertices(). Addressing problem report
1206 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2427">#2427</A>.
1207 <LI>G4Tet: improved calculation of bounding box. Added SetBoundingLimits()</LI>
1208 <LI>Added missing accessor in G4UTet. Added CheckDegeneracy(), SetVertices()
1209 and SetBoundingLimits()</LI>
1210 <LI>G4TwistedTubs: more accurate calculation of the bounding box in
1211 BoundingLimits() and GetExtent(), fixing measured performance
1212 penalty. Addressing problem report
1213 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2450">#2450</A>.</LI>
1214 <LI>G4TwistedTubs, G4VTwistedFaceted: fixed GetCubicVolume().</LI>
1215 </UL></LI>
1216 <LI><B>Volumes</B>
1217 <UL>
1218 <LI>G4PVPlacement::CheckOverlaps(): more precise estimation of overlap size,
1219 improved check for encapsulation of volume by another volume.</LI>
1220 <LI>G4ReflectionFactory: added Clean() method for clearing the internal
1221 maps on user request and removed problematic Reset() function.</LI>
1222 </UL></LI>
1223 </UL>
1224
1225 <A NAME="glob-notes">
1226 <H3><I>Global</I></H3></A>
1227 <UL>
1228 <LI>Removed deprecated classes G4LPhysicsFreeVector and G4PhysicsLnVector.
1229 Redirect G4PhysicsOrderedFreeVector to G4PhysicsFreeVector.</LI>
1230 <LI>G4PhysicsVector, G4PhysicsFreeVector, G4PhysicsLogVector,
1231 G4PhysicsLinearVector: major update: introduced new public access methods;
1232 removed obsolete unused methods; introduced possibility to use different
1233 Spline methods; do not fill second derivative vector if Spline not enabled;
1234 improved control on input data; reduced number of calls to min/max; attempt
1235 to optimise run time code G4PhysicsTable, improved use of the vector type.</LI>
1236 <LI>G4PhysicsVector, G4PhysicsTable, G4PhysicsFreeVector: removed obsolete
1237 methods SetSpline(); T_G4PhysicsFreeVector type set to be default;
1238 improved comments and printouts.</LI>
1239 <LI>G4PhysicsVector: optimisation in G4PhysicsVector::Interpolation().
1240 Fix in G4PhysicsVector::GetMinEnergy(). Minor code formatting.</LI>
1241 <LI>G4PhysicsVectorType: added enumeration of Spline type; use namespace.</LI>
1242 <LI>G4PhysicsFreeVector, G4PhysicsLogVector, G4PhysicsLinearFreeVector:
1243 in each constructor added extra Boolean parameter for enabling Spline;
1244 needed for later removal of the SetSpline() method, required for
1245 re-organisation of the code using templates.</LI>
1246 <LI>G4PhysicsFreeVector: added to all constructors control on continuous
1247 increase energy in the energy vector. Added accessor to allow user query
1248 for use or not of Spline interpolation.</LI>
1249 <LI>G4PhysicsModelCatalog: new version of the catalog of physics models.
1250 Introduced a modelID (a unique integer for each physics model, with close
1251 values for similar/related physics models), besides an index (the position
1252 in a vector) and the name (string) of the model. The main difference with
1253 respect to the previous version is that the three identifiers of each
1254 physics model - modelID, index and name - must stay constant and the same
1255 for all applications, physics lists and future versions of Geant4.</LI>
1256 <LI>Simplified G4String interfaces and implementation with C++11/17.
1257 Removed obsolete/<TT>std::string</TT> synonym member functions from G4String:
1258 hash()/stlhash(), data(), replace(), index(), isNull(), first()/last(),
1259 append()/prepend() and call operators.
1260 Deprecated non-<TT>std::string</TT> member functions, replacing with new free
1261 functions in G4StrUtil namespace.</LI>
1262 <LI>G4ConvergenceTester: fixed potential thread contention likely
1263 responsible for crashes in ThreadSafe-Scorers example, observed in
1264 system testing. Some code cleanup.</LI>
1265 <LI>Updated G4SIUnits and G4PhysicalConstants to include new symbols
1266 (<TT>minute, hour, day, year</TT> and <TT>millielectronvolt</TT>)
1267 and new constants (<TT>Bohr_magneton</TT> and <TT>nuclear_magneton</TT>),
1268 based on CLHEP-2.4.4.2.</LI>
1269 <LI>G4UnitsTable: added unit definitions for Velocity and Momentum.</LI>
1270 <LI>G4BestUnit: print <TT>eV</TT> instead of <TT>meV</TT> for zero energy.</LI>
1271 <LI>G4BackTrace: move from deprecated sigignore() to signal().</LI>
1272 <LI>New G4Filesystem header to support transparent use of C++ filesystem
1273 whether it is in <TT>std::</TT> or <TT>std::experimental</TT> namespaces.</LI>
1274 <LI>G4ThreadLocalSingleton: added way to explicitly call Clear() for all
1275 TLS singletons.</LI>
1276 <LI>Reworked G4Backtrace to use fewer dynamic memory allocations when
1277 printing backtrace in order to avoid overflowing the signal stack.</LI>
1278 <LI>Modernised CMake script.</LI>
1279 <LI>Updated date of release for 11.0.</LI>
1280 </UL>
1281
1282 <A NAME="greps-notes">
1283 <H3><I>Graphical Representations</I></H3></A>
1284 <UL>
1285 <LI>Added G4Plotter class, a kind of "high level" primitive to capture plots
1286 (tools::histo:h1d, h2d for the moment) and the style of a plotter.
1287 Style description is done by handling named lists of (parameter,value).
1288 It is sufficently generic to be usable by various implementations of a
1289 plotter. It is assumed that a plotter manages a grid of "regions" to
1290 visualize various histograms in a same representation/view/viewport.
1291 Updated G4VGraphicsScene accordingly.</LI>
1292 <LI>Reviewed HepPolyhedronPgon, HepPolyhedronPcon classes given by rz-contour.</LI>
1293 <LI>HepPolyhedron: added TriangulatePolygon() and RotateContourAroundZ().
1294 Fixed calculation of number of faces in a polyhedron object in method
1295 RotateContourAroundZ(). In some cases, 'Nfaces' was computed incorrectly,
1296 resulting in more memory being allocated than required; this did not
1297 create problems for rendering, but used to generate warning messages
1298 in some cases.</LI>
1299 <LI>BooleanProcessor: redundant std::move(polyhedron) replaced with
1300 HepPolyhedron(polyhedron), it fixes complation warnings with C++20.</LI>
1301 <LI>Removed deprecated G4VisAttributes::Invisible.</LI>
1302 <LI>Added G4Colour::operator<(), useful for making a set or map based on
1303 G4colour as a key.</LI>
1304 <LI>G4VGraphicsScene: introduced new pure virtual function
1305 AddCompound(const G4Mesh&).</LI>
1306 <LI>G4VisAttributes: improved message in SetForceNumberOfCloudPoints().</LI>
1307 <LI>Revised visualisation models according to <TT>visualization/modeling</TT>
1308 module. Adapted code according to visualisation models revision.</LI>
1309 <LI>Removed G4Scale; <TT>/vis/scene/add/scale</TT> is reimplemented with
1310 G4CallBackModel.</LI>
1311 <LI>Add G4VMarker::operator==().</LI>
1312 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1313 <LI>Modernised CMake script.</LI>
1314 </UL>
1315
1316 <A NAME="had-notes">
1317 <H3><I>Hadronic Processes</I></H3></A>
1318 <UL>
1319 <LI>Removed deprecated 'rpg' model.</LI>
1320 <LI>Merged 'models/management' module in 'management'.</LI>
1321 <LI>Merged 'models/util' module in 'util'.</LI>
1322 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1323 Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1324 <LI><B>Cross Sections</B>
1325 <UL>
1326 <LI>G4MuNeutrinoNucleusTotXsc: new arrays for XS_eq and XS_in, now XS_tot
1327 is a sum of XS_qe and XS_in with A, Z and A-Z factors.</LI>
1328 <LI>G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS,
1329 G4ParticleInelasticXS, GammaNuclearXS : in the method BuildPhysicsTable(),
1330 replaced loop over material-cut-couple with a direct loop over all
1331 elements; partially move initialisation of local variables to headers.</LI>
1332 <LI>G4MuNeutrinoNucleusTotXsc: access and calculation of
1333 fQEratio(Z,A) = XS_qe/XS_tot.</LI>
1334 <LI>Removed the following obsolete classes:
1335 G4IonsKoxCrossSection, G4IonsSihverCrossSection,
1336 G4TripathiCrossSection, G4TripathiLightCrossSection,
1337 G4IonProtonCrossSection, G4GeneralSpaceNNCrossSection,
1338 G4ProtonInelasticCrossSection G4NeutronInelasticCrossSection,
1339 G4PiNuclearCrossSection, G4CrossSectionPairGG,
1340 G4FastPathHadronicCrossSection, G4HadronCaptureDataSet,
1341 G4HadronFissionDataSet, G4HadronElasticDataSet, G4HadronInelasticDataSet,
1342 G4HadronCrossSections, G4TripathiCrossSection, G4TripathiLightCrossSection.</LI>
1343 <LI>G4HadronXSDataTable, G4ComponentSAIDTotalXS: updated creation and
1344 handling of G4PhysicsVector.</LI>
1345 <LI>G4UPiNuclearCrossSection, G4ComponentSAIDTotalXS: substituted use of
1346 deprecated G4LPhysicsFreeVector by G4PhysicsFreeVector.</LI>
1347 <LI>G4UPiNuclearCrossSection: disabled Spline interpolation.</LI>
1348 <LI>G4IsotopeList: extended list of isotopes to cover all data for
1349 neutrons, protons, and gamma.</LI>
1350 <LI>G4GammaNuclearXS: new version of the code, based on IAEA/PD-2019.
1351 Improved isotope cross-section.
1352 Co-working with new data set G4PARTICLEXS-4.0.</LI>
1353 <LI>G4IsotopeList: extended from Zmax=92 to Zmax=94; do not use zero
1354 values for 'amin' and 'amax' for all Z; this is needed for
1355 migration to the new dataset G4PARTICLEXS4.0.</LI>
1356 <LI>G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS,
1357 G4ParticleInelasticXS, GammaNuclearXS: instead of check (amin[Z]==0)
1358 use the check (amin[Z]==amax[Z]).</LI>
1359 <LI>G4ElNuclearSFcs: e-A cross-section according to structure function
1360 approach by corrections of CHIPS cross-sections.</LI>
1361 <LI>G4CrossSectionDataSetRegistry: improved debug printout and not use
1362 CrossSectionFactory for XS.</LI>
1363 <LI>Clean-up access to data.</LI>
1364 <LI>Code cleanup.</LI>
1365 </UL></LI>
1366 <LI><B>Management</B>
1367 <UL>
1368 <LI>G4HadronicProcess: made public the method GetHadronicInteraction().
1369 This can be useful for users to access at run-time some information
1370 available from a hadronic final-state model.
1371 Removed unused private member variable; updated the
1372 call to G4Track for setting the model creator ID.</LI>
1373 <LI>G4HadronInelasticProcess: added a new method to return the particle
1374 definition (useful in practice to distinguish between baryons and
1375 antibaryons, or between hadrons and ions).
1376 Removed old and unused header file corresponding to the Gheisha
1377 inelastic cross-section (that has been deleted).</LI>
1378 <LI>G4HadronicProcessType: added a new enum value (fEMDissociation = 310)
1379 for EM dissociation process.</LI>
1380 <LI>G4HadronicProcessStore: fixed TLS usage. Fixed loops in Clean().
1381 Fixed memory leak at exit.</LI>
1382 <LI>G4HadronicEPTestMessenger: removed deprecated commands.</LI>
1383 <LI>Removed unused class G4VCrossSectionBase.</LI>
1384 </UL></LI>
1385 <LI><B>Processes</B>
1386 <UL>
1387 <LI>Added G4HadronInelasticProcess class from hadronic/management module.</LI>
1388 <LI>Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess, as it is
1389 applied only for neutron projectile.</LI>
1390 <LI>Removed use of deleted header file G4HadronicDeprecate.</LI>
1391 <LI>G4HadronCaptureProcess: removed old and unused header file
1392 corresponding to the Gheisha capture cross-section (that has been
1393 deleted).</LI>
1394 <LI>G4HadronFissionProcess: replaced Gheisha fission cross-section
1395 (that has been deleted) with G4ZeroXS (which is a zero cross-section
1396 everywhere).</LI>
1397 <LI>Set creator model ID for the secondaries, using the new version of
1398 G4PhysicsModelCatalog.</LI>
1399 <LI>G4HadronElasticProcess, G4NeutrinoElectronProcess,
1400 G4ElNeutrinoNucleusProcess, G4MuNeutrinoNucleusProcess: removed
1401 old and unused header file corresponding to the Gheisha elastic
1402 cross-section (that has been deleted).</LI>
1403 <LI>Removed the following deprecated inelastic processes:
1404 G4AlphaInelasticProcess, G4AntiAlphaInelasticProcess
1405 G4AntiDeuteronInelasticProcess, G4DeuteronInelasticProcess,
1406 G4AntiHe3InelasticProcess, G4He3InelasticProcess,
1407 G4AntiLambdaInelasticProcess, G4LambdaInelasticProcess,
1408 G4AntiNeutronInelasticProcess, G4NeutronInelasticProcess,
1409 G4AntiOmegaMinusInelasticProcess, G4OmegaMinusInelasticProcess,
1410 G4AntiProtonInelasticProcess, G4ProtonInelasticProcess,
1411 G4AntiSigmaMinusInelasticProcess, G4SigmaMinusInelasticProcess,
1412 G4AntiSigmaPlusInelasticProcess, G4SigmaPlusInelasticProcess,
1413 G4AntiTritonInelasticProcess, G4TritonInelasticProcess,
1414 G4AntiXiMinusInelasticProcess, G4XiMinusInelasticProcess,
1415 G4AntiXiZeroInelasticProcess, G4XiZeroInelasticProcess,
1416 G4IonInelasticProcess, G4KaonMinusInelasticProcess,
1417 G4KaonPlusInelasticProcess, G4KaonZeroLInelasticProcess,
1418 G4KaonZeroSInelasticProcess, G4PionMinusInelasticProcess,
1419 G4PionPlusInelasticProcess, G4PhotoCaptureProcess,
1420 G4PhotoFissionProcess, G4PhotoNuclearProcess.</LI>
1421 </UL></LI>
1422 <LI><B>Stopping</B>
1423 <UL>
1424 <LI>G4MuonicAtomDecay, G4HadronStoppingProcess: migrated to the new version
1425 of G4PhysicsModelCatalog.</LI>
1426 <LI>G4ElementSelector, G4HadronStoppingProcess: use const pointer to
1427 G4Element.</LI>
1428 <LI>Removed obsolete classes: G4AntiNeutronAnnihilationAtRest,
1429 G4AntiSigmaPlusAbsorptionFritiof, G4SigmaMinusAbsorptionBertini,
1430 G4AntiProtonAbsorptionFritiof, G4KaonMinusAbsorptionBertini,
1431 G4PiMinusAbsorptionBertini.</LI>
1432 </UL></LI>
1433 <LI><B>Utilities</B>
1434 <UL>
1435 <LI>G4Fragment, G4KineticTrack, G4HadSecondary, G4ReactionProduct: introduced
1436 consistent naming of the Set/Get methods for the creator model ID.</LI>
1437 <LI>G4DecayKineticTracks, G4KineticTrack, G4DecayStrongResonances:
1438 propagate correctly the information regarding the creator model ID.</LI>
1439 <LI>G4Nucleus: rewritten method GetBiasedThermalNucleus() according to the
1440 sampling of the Velocity of the Target nucleus (SVT) algorithm.
1441 Use const pointer to G4Element</LI>
1442 <LI>G4Nucleon, G4Nucleus, G4V3DNucleus, G4Fancy3DNucleus, G4Fragment:
1443 extended for hypernuclei and anti-hypernuclei.</LI>
1444 <LI>Removed unused classes: G4LightMedia, G4IsoResult, G4HadronicDeprecate,
1445 G4GHEKinematicsVector, G4HadReentrentException, G4HadSignalHandler,
1446 DumpFrame.</LI>
1447 <LI>G4HadronicParameters: added hyper-nuclei flag.</LI>
1448 </UL></LI>
1449 <LI><B>Abla</B>
1450 <UL>
1451 <LI>G4AblaInterface: set the model creator ID using the new version
1452 of G4PhysicsModelCatalog.</LI>
1453 <LI>G4Abla: updated for hypernuclei. Delete array variables with array
1454 delete, as suggested by Coverity.</LI>
1455 </UL></LI>
1456 <LI><B>Abrasion</B>
1457 <UL>
1458 <LI>G4WilsonAbrasionModel: migrated to the new version of
1459 G4PhysicsModelCatalog.</LI>
1460 </UL></LI>
1461 <LI><B>Bertini Cascade</B>
1462 <UL>
1463 <LI>Fixed TLS usage in G4CascadeChannelTables and G4CascadeParameters.</LI>
1464 <LI>G4CascadeInterface: set the creator model ID for the secondaries
1465 produced by Bertini model using the new version of G4PhysicsModelCatalog.</LI>
1466 </UL></LI>
1467 <LI><B>Binary Cascade</B>
1468 <UL>
1469 <LI>G4BinaryCascade, G4BinaryLightIonReaction: migrated to the new version of
1470 G4PhysicsModelCatalog.</LI>
1471 <LI>G4GeneratorPrecompoundInterface: extended the method PropagateNuclNucl()
1472 to deal with projectile hypernuclei and anti-hypernuclei. Propagated the
1473 creator model ID information.</LI>
1474 </UL></LI>
1475 <LI><B>De-excitation</B>
1476 <UL>
1477 <LI>G4DeexPrecoParameters, G4ExcitationHandler: migrated to the new version
1478 of G4PhysicsModelCatalog.</LI>
1479 <LI>Set creator model ID for secondaries, using the new version of
1480 G4PhysicsModelCatalog.</LI>
1481 <LI>G4DeexPrecoParameters: fixed propagation of verbosity level between
1482 components of the de-excitation module.</LI>
1483 <LI>Removed obsolete and not used model G4ParaFissionModel, this
1484 fixes also circular dependences inside the de-excitation module.</LI>
1485 <LI>G4PhotonEvaporation: fixed Coverity defect warning.</LI>
1486 </UL></LI>
1487 <LI><B>Elastic scattering</B>
1488 <UL>
1489 <LI>G4ChargeExchangeProcess: replaced Gheisha elastic cross-section
1490 (that has been deleted) with G4ComponentGGHadronNucleusXsc.</LI>
1491 <LI>G4LEHadronProtonElastic, G4ChargeExchangeProcess: removed unused
1492 headers.</LI>
1493 <LI>Set the creator model ID for the secondaries created, using the new
1494 version of G4PhysicsModelCatalog.</LI>
1495 <LI>G4QuasiElRatios: initialize the logarithmic table 'lastLRatio',
1496 as suggested by Coverity.</LI>
1497 </UL></LI>
1498 <LI><B>Electromagnetic Dissociation</B>
1499 <UL>
1500 <LI>G4EMDissociation: set the creator model ID for secondaries created
1501 by projectile and target diffraction, using the new version of
1502 G4PhysicsModelCatalog.</LI>
1503 </UL></LI>
1504 <LI><B>Fission</B>
1505 <UL>
1506 <LI>G4LFission, G4FissionLibrary : set creator model ID for the secondaries,
1507 using the new version of G4PhysicsModelCatalog.</LI>
1508 <LI>G4LFission: removed unused headers.</LI>
1509 </UL></LI>
1510 <LI><B>Gamma-nuclear</B>
1511 <UL>
1512 <LI>G4LENDorBERTModel: set creator model ID for the secondaries, using
1513 the new version of G4PhysicsModelCatalog.</LI>
1514 </UL></LI>
1515 <LI><B>im_r_matrix</B>
1516 <UL>
1517 <LI>G4XnpElasticLowE, G4XNNElasticLowE, G4XnpTotalLowE: substituted use of
1518 deprecated G4PhysicsLnVector with G4PhysicsLogVector; no functional
1519 changes.</LI>
1520 </UL></LI>
1521 <LI><B>INCLXX</B>
1522 <UL>
1523 <LI>Added implementation of hypercluster emission.</LI>
1524 <LI>G4INCLXXInterface: extended to projectile hypernuclei.</LI>
1525 <LI>G4INCLNuclearPotentialIsospin: improved nuclear potential for Lambda
1526 particles.</LI>
1527 <LI>G4INCLXXInterface: set creator model ID for secondaries, using the
1528 new version of G4PhysicsModelCatalog.</LI>
1529 </UL></LI>
1530 <LI><B>Lend</B>
1531 <UL>
1532 <LI>Set creator model ID for secondaries, using the new version of
1533 G4PhysicsModelCatalog.</LI>
1534 </UL></LI>
1535 <LI><B>Lepto-nuclear</B>
1536 <UL>
1537 <LI>G4NeutrinoNucleusModel: calculation of fQEratioA(Z,A,Enu) depending of
1538 QE ratios for nucleons. Added accessors for XS_qe/XS_tot(A), fQEratioA
1539 class member.</LI>
1540 <LI>Bug fixed in G4NeutrinoNucleusModel, updated calls for QE ratio of
1541 muon/electron (anti-)neutrino.</LI>
1542 <LI>Set creator model ID for secondaries, using the new version of
1543 G4PhysicsModelCatalog.</LI>
1544 </UL></LI>
1545 <LI><B>Particle High Precision</B>
1546 <UL>
1547 <LI>G4ParticleHPElementData, G4ParticleHPBGGNucleonInelasticXS: removed
1548 old and unused header files corresponding to Gheisha cross-sections
1549 (that have been deleted). Code cleanup.</LI>
1550 <LI>G4ParticleHPManager: removed deprecated environmental variables.</LI>
1551 <LI>G4ParticleHPData, G4ParticleHPJENDLHEData: replaced use of deprecated
1552 G4LPhysicsFreeVector with G4PhysicsFreeVector.</LI>
1553 <LI>G4ParticleHPThermalScattering, G4ParticleHPElastic: corrected the
1554 original treatment of the temperature interpolation when computing the
1555 neutron final state, with the temperature interpolation performed
1556 stochastically now.</LI>
1557 <LI>G4ParticleHPThermalScatteringNames: extended the list of materials
1558 which can have thermal data libraries.</LI>
1559 <LI>Set creator model ID for secondaries, using the new version of
1560 G4PhysicsModelCatalog.</LI>
1561 <LI>Updated build scripts according to new dependencies.
1562 Clean-up of old directories no longer present.</LI>
1563 </UL></LI>
1564 <LI><B>Parton-String</B>
1565 <UL>
1566 <LI>Interface extension in G4FTFModel and G4FTFParticipants to provide the
1567 following information: number of projectile spectator nucleons, number
1568 of target spectator nucleons, number of nucleon-nucleon collisions and
1569 impact parameter. In the latter case, there is also the possibility,
1570 switched off by default, to set the range from which to sample the
1571 square of the impact parameter.</LI>
1572 <LI>Extended G4FTFModel for projectile hypernuclei and anti-hypernuclei.</LI>
1573 <LI>G4VParticipants, G4VPartonStringModel: extended for projectile
1574 hypernuclei and anti-hypernuclei.</LI>
1575 <LI>G4FTFParameters, G4QGSParticipants: improved initialization in
1576 constructors, as suggested by Coverity.</LI>
1577 </UL></LI>
1578 <LI><B>Pre-equilibrium</B>
1579 <UL>
1580 <LI>G4PreCompoundModel, G4LowEGammaNuclearModel: migrated to the new version
1581 of G4PhysicsModelCatalog.</LI>
1582 <LI>G4PreCompoundEmission, G4LowEIonFragmentation: set creator model ID
1583 for secondaries, using the new version of G4PhysicsModelCatalog.</LI>
1584 <LI>G4LowEIonFragmentation: fixed minor memory leak at exit.</LI>
1585 <LI>G4PreCompoundModel: removed obsolete methods; improved code format;
1586 fixed minor memory leak at exit.</LI>
1587 <LI>G4PreCompound* classes: improved formats and added C++11 keywords.</LI>
1588 <LI>G4LowEIonFragmentation: fixed Coverity defect warning for memory leak
1589 and code cleanup.</LI>
1590 </UL></LI>
1591 <LI><B>QMD</B>
1592 <UL>
1593 <LI>G4QMDReaction: replaced G4IonsShenCrossSection (that has been deleted)
1594 with G4ComponentGGNuclNuclXsc. Replaced GetIsoCrossSection() with
1595 GetElementCrossSection(). Migrated to the new version of
1596 G4PhysicsModelCatalog.</LI>
1597 <LI>G4QMDNucleus::CalEnergyAndAngularMomentumInCM(): fix to move constant 'hbc'
1598 outside of sqrt() in angular momentum calculation.</LI>
1599 </UL></LI>
1600 <LI><B>Radioactive Decay</B>
1601 <UL>
1602 <LI>G4RadioactiveDecay, G4RadioactiveDecayMessenger: introduced
1603 a new parameter for analogue mode to kill very long radioactive decays
1604 at rest of nuclides happening later than this threshold parameter.
1605 Its default value (10^27 ns) corresponds to more than twice the age of
1606 the universe. The value of the threshold can be changed via a new UI
1607 command, e.g. to set it to 1000 years:
1608 <TT>/process/had/rdm/thresholdForVeryLongDecayTime 3.1536e+10 second</TT>.
1609 This kind of cut has been introduced in order to avoid to account
1610 energy depositions happening after many billions of years in ordinary
1611 materials used in calorimetry, in particular Tungsten and Lead - via
1612 their natural unstable, but very long lived, isotopes, such as
1613 W183, W180 and Pb204. Note that the cut is not on the average, mean
1614 lifetime, but on the actual sampled global decay time.</LI>
1615 <LI>G4RadioactiveDecay: updated printout of parameters according to recent
1616 modifications in atomic de-excitation module.</LI>
1617 <LI>Use existing facility to find logical volume in store, rather than
1618 looping through in G4RadioactiveDecayBase::Select/DeselectAVolume().</LI>
1619 <LI>Migrated to the new approach of creator model ID, using the new version
1620 of G4PhysicsModelCatalog.</LI>
1621 <LI>Improved branching ratio consistency in radioactive decays, by replacing
1622 hardwired radioactive-decay-mode numbers with corresponding enum values.
1623 Based on
1624 <A HREF="https://github.com/Geant4/geant4/pull/26">Github PR #26</A>.</LI>
1625 <LI>Use proper enum interface for G4String::strip().</LI>
1626 <LI>Removed obsolete classes G4RadioactiveDecayBase and
1627 G4RadioactiveDecayBaseMessenger.</LI>
1628 <LI>Removed deprecated UI commands in messengers.</LI>
1629 <LI>Updated build scripts and header includes.</LI>
1630 </UL></LI>
1631 <LI><B>Theo_High_Energy</B>
1632 <UL>
1633 <LI>G4TheoFSGenerator: added accessors for the corresponding modifier
1634 methods already existing. This can be useful for users to access
1635 at run-time some information available from a hadronic final-state
1636 model.</LI>
1637 <LI>Set creator model ID for the secondaries, using the new version of
1638 G4PhysicsModelCatalog.</LI>
1639 </UL></LI>
1640 </UL>
1641
1642 <A NAME="interc-notes">
1643 <H3><I>Intercoms</I></H3></A>
1644 <UL>
1645 <LI>G4UImanager: set <TT>LastCommandOutputTreated=false</TT> only for master
1646 thread. Avoids inadvertent "highlighting" in G4UIQt on worker threads.
1647 Added access methods to individual UI command.</LI>
1648 <LI>G4UIparameter: in CandidateCheck(), when candidate not found, print list
1649 of candidates.</LI>
1650 <LI>G4UIcommand: added command-type identifier.
1651 Added option to sort command/directory names in alphabetic order.</LI>
1652 <LI>G4UIcommandTree, G4UIdirectory, G4GenericMessenger: improved output HTML
1653 file layout.
1654 <LI>Fixed leak in G4ProfilerMessenger.</LI>
1655 <LI>G4GenericMessenger: added G4ThreeVector type without unit to function
1656 DeclareProperty(). Removed unnecessary duplication of G4UIdirectory objects.</LI>
1657 <LI>G4UIcontrolMessenger: protected some control commands not to be broadcasted
1658 to worker threads.</LI>
1659 <LI>Use <TT>std::string</TT> member functions from G4String in place of
1660 synonyms. Use new <TT>std::string</TT> compliant G4String interfaces.
1661 Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1662 <LI>Modernised CMake script.</LI>
1663 </UL>
1664
1665 <A NAME="interf-notes">
1666 <H3><I>Interfaces</I></H3></A>
1667 <UL>
1668 <LI>Modified G4UIExecutive::SelectSessionByFile() to ensure that in Windows
1669 the Win32 OpenGL driver is selected as the second choice by default.
1670 Based on <A HREF="https://github.com/Geant4/geant4/pull/20">GitHub PR #20</A>.</LI>
1671 <LI>Extended G4UIWin32 driver with new features, based on contribution
1672 proposed in <A HREF="https://github.com/Geant4/geant4/pull/23">GitHub PR #23</A>.</LI>
1673 <LI>Added verbose setting in G4UIExecutive. Addressing problem report
1674 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2402">#2402</A>.</LI>
1675 <LI>Fixed HTML links in Qt UI Start page.</LI>
1676 <LI>G4UIQt: deal properly with creation and deletion of viewer properties.
1677 Added "exit" icon and extension selection.
1678 Fixed "Viewer Properties" window opened at Startup; "viewer" window must
1679 be constructed with setVisible(false).</LI>
1680 <LI>G4InteractorMessenger: allow use of exit icon by user.</LI>
1681 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1682 Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1683 <LI>Use proper enum interface for G4String::strip() and don't discard its
1684 return value.</LI>
1685 <LI>Added context for VtkQt visualisation driver.</LI>
1686 <LI>Retired G4UI/G4INTY_... preprocessor symbols in toolkit build,
1687 only required by obsolete GNUmake system.</LI>
1688 <LI>Removed obsolete Wt code from source and use in G4UIexecutive.</LI>
1689 <LI>Removed no longer supported GAG/Gain UI classes and settings.</LI>
1690 <LI>Fixed compilation warnings when C++20 Standard enabled.</LI>
1691 </UL>
1692
1693 <A NAME="materials-notes">
1694 <H3><I>Materials</I></H3></A>
1695 <UL>
1696 <LI>G4Material: revised and updated G4Exceptions, now providing complete
1697 information and more precise diagnostics.</LI>
1698 <LI>G4MaterialPropertiesTable: removed deprecated optical material properties.
1699 Recalculate GROUPVEL if RINDEX is modified.
1700 Addressing problem report
1701 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2313">#2313</A>.
1702 <LI>In G4MaterialPropertiesTable, added new AddProperty() method to allow use of
1703 predefined optical material properties.
1704 Added <TT>spline</TT> argument to method, which creates
1705 G4MaterialPropertyVector.
1706 Use <TT>std::vector</TT> for material properties and material const properties,
1707 rather than <TT>std::map</TT>. Use Boolean flag with material const property to
1708 indicate whether it is defined; renaming of variables: first letter lower case,
1709 class variables start with <TT>f</TT>; removed iterators to material property
1710 vectors (use C++11 iteration). Fix AddConstProperty() with new key; fix
1711 RemoveConstProperty; make exception codes unique.
1712 Return nullptr when GetProperty() called for non-existent property; fixed
1713 error in GetMatConstPropNames(). Return const refs to vectors for
1714 material[const]props and names. Renamed Get[Const]PropertyMap() to
1715 Get[Const]Properties(). Fixed error with ConstPropertyExists().
1716 Throw FatalException if asked for index of non-existent property (addressing
1717 Coverity defect).</LI>
1718 <LI>G4ExtDEDXTable, G4IonStoppingData: corrected initialisation of spline
1719 flag.</LI>
1720 <LI>G4NistMaterialBuilder: removed unused argument <TT>isotopes</TT> from all
1721 methods where NIST materials are built.</LI>
1722 <LI>G4NistManager: adopt modifications in method signatures of
1723 G4NistMaterialBuilder but keep own method signatures unchanged.</LI>
1724 <LI>New class G4OpticalMaterialProperties, a store for optical material
1725 properties.</LI>
1726 <LI>G4MaterialPropertiesTable: added 'createNewKey' to AddProperty();
1727 merged .icc into .cc; removed deprecated methods; applied clang-format.</LI>
1728 <LI>G4MaterialPropertyVector: use G4PhysicsFreeVector instead of
1729 obsolete G4PhysicsOrderedFreeVector.</LI>
1730 <LI>G4IonStoppingData, G4ICRU90StoppingData, G4ExtDEDXTable,
1731 G4VIonDEDXTable: substituted G4LPhysicsFreeVector by G4PhysicsFreeVector.
1732 <LI>G4Material, G4Element, G4Isotope, G4IonisParamElm,
1733 G4IonisParamMat, G4NistMaterialBuilder, G4NistMessenger,
1734 G4SandiaTable: minor clean-up.</LI>
1735 <LI>G4ElementVector: use const pointer to G4Element. Define operator<<();
1736 take const references to avoid needless copy construction.</LI>
1737 <LI>G4ElementData: reduced length of internal arrays from 108 to 99, max number
1738 99 is used by G4LivermorePhotoElectricModel, hadronic models use 93.
1739 Use G4int in method signature instead of size_t; improved initialisation.
1740 Provide more safe destruction at the end of run.</LI>
1741 <LI>G4Material: fixed Coverity report on non-initialized arrays;
1742 use const pointers to G4Elements where needed; added warnings if there is
1743 a mixture of definition of elements by number of atoms and mass fraction;
1744 reduced code duplication and reduced number of new/delete for the case when
1745 materials are added to a material.</LI>
1746 <LI>G4ExtendedMaterial: removed useless dependence on G4PhysicsModelCatalog,
1747 and improved comment.</LI>
1748 <LI>G4DensityEffectData: minor clean-up.</LI>
1749 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.</LI>
1750 <LI>Modernised CMake script.</LI>
1751 </UL>
1752
1753 <A NAME="parameterisations-notes">
1754 <H3><I>Parameterisations</I></H3></A>
1755 <UL>
1756 <LI>GFLASH:
1757 <UL>
1758 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1759 </UL></LI>
1760 </UL>
1761
1762 <A NAME="part-notes">
1763 <H3><I>Particles</I></H3></A>
1764 <UL>
1765 <LI>Introduced six light hypernuclei and their corresponding antiparticles:
1766 G4HyperTriton, G4AntiHyperTriton, G4HyperAlpha, G4AntiHyperAlpha, G4HyperH4,
1767 G4AntiHyperH4, G4DoubleHyperH4, G4AntiDoubleHyperH4, G4HyperHe5,
1768 G4AntiHyperHe5, G4DoubleHyperDoubleNeutron, G4AntiDoubleHyperDoubleNeutron.
1769 The following simplifying assumptions have been made:
1770 (a) No hyper-deuteron, no hyper-He3; (b) the masses of these hyperons have
1771 been computed using the existing method
1772 G4HyperNucleiProperties::GetNuclearMass(); (c) the lifetimes are all assumed
1773 to be the same as the Lambda's lifetime; (d) the decays are obtained from the
1774 two decays of the (anti-)Lambda (with the same branching ratios as for a free
1775 Lambda), assuming, whenever possible, that 50% of the emitted (anti-)nucleon
1776 will be captured by the (anti-)nucleus where the decay of the (anti-)Lambda
1777 occurs. In the case of double-hyperon, only one of the two Lambdas
1778 is assumed to decay.</LI>
1779 <LI>G4IonConstructor: added hyper-nuclei.</LI>
1780 <LI>Added a few methods in G4ParticleDefinition, useful for dealing with
1781 hypernuclei and anti-hypernuclei.</LI>
1782 <LI>Extended the max number of decay secondaries, from 4 to 5, in the classes
1783 G4VDecayChannel and G4PhaseSpaceDecayChannel, needed for a decay channel of
1784 G4DoubleHyperDoubleNeutron.</LI>
1785 <LI>Store custom tracking manager per particle definition.</LI>
1786 <LI>Fixed retrieval of selected particle in G4ParticlePropertyMessenger,
1787 which was failing.</LI>
1788 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1789 Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1790 <LI>G4ParticleTable: fixed case for potential null pointer dereferencing in
1791 FindParticle(). Based on
1792 <A HREF="https://github.com/Geant4/geant4/pull/30">GitHub PR #30</A>.</LI>
1793 <LI>Fixed compilation error in G4IonTable occurring if C++20 enabled.</LI>
1794 <LI>Fixed shadowing compilation warning in G4Triton.</LI>
1795 </UL>
1796
1797 <A NAME="pers-notes">
1798 <H3><I>Persistency</I></H3></A>
1799 <UL>
1800 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1801 <LI>ASCII:
1802 <UL>
1803 <LI>Added support for G4MultiUnion and G4ScaledSolid. Based on
1804 <A HREF="https://github.com/Geant4/geant4/pull/28">GitHub PR #28</A>.</LI>
1805 <LI>G4tgbVolume: corrected missing conversion degree-radian for Polycone.</LI>
1806 <LI>G4tgbMaterialSimple,G4tgrMaterial: changed STP_Temperature to
1807 NTP_Temperature to be consistent with NIST materials.</LI>
1808 <LI>G4tgbGeometryDumper: fixed access to G4Elements according to changes
1809 done in materials.</LI>
1810 </UL></LI>
1811 <LI>GDML:
1812 <UL>
1813 <LI>G4GDMLParser: scan for all possible logical volumes with same name in
1814 ImportRegions() and set them as root logical volumes.
1815 Issue notification warning in case more than one logical volume with
1816 same name is found, to be set a root logical volume for a region.</LI>
1817 <LI>G4GDMLRead: added missing update to internal maps for solids and volumes
1818 stores, after stripping of names execution. Addressing problem report
1819 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2403">#2403</A>.</LI>
1820 <LI>G4GDMLWriteMaterials, G4GDMLWriteSolids: G4MaterialProperties table now
1821 returns references to vectors, rather than maps that had to be allocated
1822 on the heap. Adjust code to iterate over the vectors.</LI>
1823 <LI>G4GDMLWriteMaterials: use G4PhysicsFreeVector instead of deprecated
1824 G4PhysicsOrderedFreeVector.</LI>
1825 <LI>G4GDMLReadMaterials, G4GDMLReadSolids: added parameter
1826 <TT>createNewKey=true</TT> to call to
1827 G4Material[Const]PropertiesTable::AddProperty().</LI>
1828 </UL></LI>
1829 </UL>
1830
1831 <A NAME="lst-notes">
1832 <H3><I>Physics lists</I></H3></A>
1833 <UL>
1834 <LI>Removed dependencies on <TT>hadronic/model/util</TT> and
1835 <TT>hadronic/model/management</TT> modules now retired.</LI>
1836 <LI><B>Builders</B>:
1837 <UL>
1838 <LI>Replaced G4HadronCaptureProcess with G4NeutronCaptureProcess
1839 and G4HadronFissionProcess with G4NeutronFissionProcess in builders.</LI>
1840 <LI>Replaced particle-specific hadronic inelastic processes (that have
1841 been deleted) with G4HadronInelasticProcess.</LI>
1842 <LI>G4PrecoNeutronBuilder, G4PrecoProtonBuilder, G4INCLXXNeutronBuilder,
1843 G4QGSBinaryKaonBuilder: replaced obsoleted cross-sections
1844 (that have been deleted) with better ones.</LI>
1845 <LI>G4BinaryDeuteronBuilder, G4BinaryTritonBuilder, G4BinaryHe3Builder,
1846 G4BinaryAlphaBuilder: removed unused header files.</LI>
1847 <LI>G4QGSPNeutronBuilder: use G4NeutronInelasticXS cross-section.</LI>
1848 <LI>G4HadronicBuilder: properly initialise the vector mode, as suggested
1849 by Coverity.</LI>
1850 </UL></LI>
1851 <LI><B>Constructors</B>:
1852 <UL>
1853 <LI><U>decay</U>
1854 <UL>
1855 <LI>G4RadioactiveDecayPhysics: use SetAuger() method instead of the
1856 obsolete SetAugerCascade().</LI>
1857 </UL></LI>
1858 <LI><U>electromagnetic</U>:
1859 <UL>
1860 <LI>Updated all standard EM physics lists:
1861 removed local member <TT>verbose</TT>
1862 and use uniform approach for verbosity via G4EmParameters; instantiate
1863 NIEL process only if parameter MaxNIELEnergy is above zero; include
1864 gamma linear polarization model to Opt0, Opt3, Opt4, SS, and
1865 Livermore physics constructors if the parameter EnablePolarisation
1866 is "true"; G4EmLivermorePolarizedPhysics fully inheriting from
1867 G4EmLivermorePhysics.</LI>
1868 <LI>G4GammaGeneralProcess: updated interface in the Retrieve() method.
1869 Use base material approach.</LI>
1870 <LI>G4EmDNAPhysics: updated configuration of standard physics for gamma
1871 and positrons according to Opt3; updated particle list by addition
1872 of G4Alpha; simplified ConstructProcess() method using
1873 G4PhysicsListHelper.</LI>
1874 <LI>Updated G4EmLowEPPhysics physics model configuration
1875 See https://arxiv.org/abs/2102.02721 for details.</LI>
1876 <LI>G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd energy area,
1877 because cross-section is zero; in the 4th energy interval include in
1878 the vector value of 1 - p instead of p, where p is the cumulative
1879 probability of a sub-process. Make some methods/fields visible for
1880 derived classes.</LI>
1881 <LI>G4EmStandardPhysicsWVI: making this experimantal configuration
1882 compatible for CPU performance with Opt3 (it was similar to SS).
1883 Use similar options as in Opt3, for ions use
1884 G4LinhardSorensenIonModel.</LI>
1885 <LI>G4EmModelActivator: updated according to the current Opt3 and Opt4
1886 configurations.</LI>
1887 <LI>G4EmDNAChemistry, _option1, _option2, _option3
1888 added dissociation channel for electron-hole recombination.</LI>
1889 <LI>G4EmDNAChemistry_option3: changed pre-chemical model.</LI>
1890 <LI>DNA PhysicsLists: use SeEmModel() with correct signature.</LI>
1891 <LI>G4OpticalPhysicsList: removed deprecated optical commands.</LI>
1892 <LI>G4EmLivermorePolarizedPhysics: removed unused header.</LI>
1893 <LI>G4EmLivermorePhysics: use G4LivermorePolarizedComptonModel if
1894 polarisation is enabled.</LI>
1895 <LI>Removed obsolete G4EmLEPTSPhysics, and code cleanup in G4EmDNAPhysics
1896 and G4EmDNAPhysics_stationary.</LI>
1897 <LI>G4EmLivermorePhysics, G4EmPenelopePhysics_option1,
1898 G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
1899 G4EmLowEPhysics, G4EmStandardPhysicsSS: instantiate G4ePairProduction
1900 process after ionisation and bremsstrahlung; does not change physics
1901 but helps to have clearer debug printouts.</LI>
1902 <LI>G4EmBuilder: use more optimal order of instantiation of processes;
1903 not affecting any result but useful for debugging.
1904 Added hyper-nuclei EM physics; in all DNA physics-lists,
1905 use SetAuger() instead of SetAugerCascade().</LI>
1906 <LI>G4OpticalPhysics: applied clang-format style guidelines.</LI>
1907 </UL></LI>
1908 <LI><U>gamma_lepto_nuclear</U>:
1909 <UL>
1910 <LI>G4EmExtraPhysics, G4BertiniElectroNuclearBuilder,
1911 G4LENDBertiniGammaElectroNuclearBuilder: replaced G4PhotoNuclearProcess
1912 (now deleted) with G4HadronInelasticProcess.</LI>
1913 <LI>G4EmExtraPhysics: added option for positron annihilation to tau
1914 pair.</LI>
1915 <LI>Enable updated G4GammaNuclearXS by default in G4EmExtraPhysics for
1916 more detailed tests.</LI>
1917 </UL></LI>
1918 <LI><U>hadron_elastic</U>:
1919 <UL>
1920 <LI>G4HadronDElasticPhysics, G4HadronHElasticPhysics: use inheritance
1921 from G4HadronElasticPhysics; use G4HadProcesses, G4PhysListUtil and
1922 G4HadParticles; implement cross-section factor.</LI>
1923 <LI>G4HadronHElasticPhysics: fixed problem of fully overlapping energy
1924 transition between G4HadronElastic and G4ChipsElasticModel, using
1925 now G4ChipsElasticModel only for Hydrogen element above
1926 <TT>10 MeV</TT>.</LI>
1927 <LI>G4ChargeExchangePhysics: set explicitly the elastic cross-sections
1928 according to the hadron type, given that the universal Gheisha
1929 elastic cross-section has been now deleted.</LI>
1930 <LI>In all constructors, use verbosity level from G4HadronicParameters.</LI>
1931 </UL></LI>
1932 <LI><U>hadron_inelastic</U>:
1933 <UL>
1934 <LI>In all constructors: printouts are controlled by verbosity level of
1935 G4HadronicParameters class; 'verboseLevel' member in base class is
1936 not used; G4HadronicParameters singleton is initialized in all class
1937 constructors; if the verbosity level is defined in class constructor,
1938 it is propagated to G4HadronicParameters (user may change this level
1939 using UI command before physics is initialized); check versus nullptr
1940 is added in several places.</LI>
1941 <LI>Removed unused header files, and replaced when needed
1942 G4HadronCaptureProcess with G4NeutronCaptureProcess.</LI>
1943 </UL></LI>
1944 </UL></LI>
1945 <LI><B>Lists</B>:
1946 <UL>
1947 <LI>Replaced particle-specific hadronic inelastic processes
1948 (that have been deleted) with G4HadronInelasticProcess in LBE.
1949 Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess.</LI>
1950 <LI>In all physics-lists, protected banners by verbosity level.</LI>
1951 <LI>G4PhysListFactory: added verbosity level to constructor and propagated
1952 to constructed lists.</LI>
1953 <LI>Mirror changes to G4PhysListFactory constructor signature (taking a
1954 default verbosity argument) in the G4PhysListFactoryAlt constructor.</LI>
1955 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1956 </UL></LI>
1957 <LI><B>Util</B>:
1958 <UL>
1959 <LI>G4HadParticles: added hyper-nuclei.</LI>
1960 </UL></LI>
1961 </UL>
1962
1963 <A NAME="readout-notes">
1964 <H3><I>Readout</I></H3></A>
1965 <UL>
1966 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.</LI>
1967 </UL>
1968
1969 <A NAME="run-notes">
1970 <H3><I>Run</I></H3></A>
1971 <UL>
1972 <LI>Optimised access to volumes and regions stores.</LI>
1973 <LI>Minor C++11 review in use of iterators, initialisers, etc...</LI>
1974 <LI>Removed obsolete ResetCuts() method in G4VUserPhysicsList.</LI>
1975 <LI>Added new Ranlux++ engine to the list of supported random engines in
1976 G4UserWorkerThreadInitialization. Requires CLHEP-2.4.5.1.</LI>
1977 <LI>Added new G4DNAStaticMoleculeReactionProcess in PhysicsListHelper
1978 for DNA processes.</LI>
1979 <LI>Removed call to physicsList->TerminateWorker() in G4WorkerRunManager
1980 as this appears to cause errors at termination.</LI>
1981 <LI>G4VUserPhysicsList: invoke new static initialization of G4PhysicsModelCatalog
1982 in Construct(). Use custom tracking manager if registered.</LI>
1983 <LI>G4PhysicsListHelper: replaced hardwired numerical process types and
1984 sub-types with corresponding enum values.</LI>
1985 <LI>G4VPhysicsConstructor: fixed initialisation of hadronic parameters
1986 avoiding uncontrolled override of verbosityLevel.</LI>
1987 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
1988 Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
1989 <LI>General code cleanup and formatting.</LI>
1990 </UL>
1991
1992 <A NAME="tasking-notes">
1993 <H3><I>Tasking</I></H3></A>
1994 <UL>
1995 <LI>Updated to PTL v2.0.0 with shared_ptr usage. Included some minor API
1996 changes to direct async usage.</LI>
1997 <LI>Fixes to TBB task-group usage.</LI>
1998 <LI>Fix for G4FORCENUMBEROFTHREADS flag lookup.</LI>
1999 <LI>G4RunManagerFactory: set default run manager type to be Tasking.</LI>
2000 <LI>Added new Ranlux++ engine to the list of supported random engines in
2001 G4UserTaskThreadInitialization. Requires CLHEP-2.4.5.1.</LI>
2002 <LI>G4TaskRunManager: check for valid threadPool pointer in method
2003 RequestWorkersProcessCommandsStack() to fix occasional segmentation
2004 fault at exit.</LI>
2005 </UL>
2006
2007 <A NAME="track-notes">
2008 <H3><I>Track & Tracking</I></H3></A>
2009 <UL>
2010 <LI>Introducing G4VTrackingManager, an interface for custom tracking
2011 managers specialized for one or a small number of particle types.</LI>
2012 <LI>G4SteppingManager: added a pointer to a G4NoProcess instance, and used it
2013 in InvokeAtRestDoItProcs() to flag a stable ion at rest. This avoids the
2014 otherwise confusing information that radioactive decay is the process
2015 defining the last step of a stable ion at rest.</LI>
2016 <LI>Correction to G4Track::operator=() to copy also touchable-handles.
2017 This fixes a crash originated when running importance sampling in the
2018 G4EventManager when the track got assigned the origin touchable handler
2019 from its own touchable handle; the touchable handler was sometimes not
2020 set.</LI>
2021 <LI>G4Track: migrated to the new version of G4PhysicsModelCatalog.
2022 Get material property using index rather than string.</LI>
2023 <LI>G4Step: avoid accessing G4Track data via long pointer chains.</LI>
2024 <LI>Adjusted printout format in DumpInfo() for G4VParticleChange
2025 and G4ParticleChange.</LI>
2026 <LI>Introducing G4SteppingVerboseWithUnits, an alternative to
2027 G4SteppingVerbose with printout of proper units and extended features.
2028 Added explicit virtual keyword for virtual methods and destructor in
2029 G4SteppingVerbose.</LI>
2030 <LI>G4SteppingVerbose: fixed bug that wrongly put the <TT>Forced</TT> label
2031 in the print-out information of non-forced processes, and vice-versa,
2032 omitting it for real forced processes. Issue which was causing confusing
2033 and misleading print-out.</LI>
2034 <LI>G4ParticleChangeForMSC, G4ParticleChangeForTransport: disable <TT>debugFlag</TT>
2035 which was left enabled by mistake.</LI>
2036 <LI>G4RichTrajectory: migrated to the new version of G4PhysicsModelCatalog.</LI>
2037 <LI>Export protected static symbols in G4VSteppingVerbose for DLL builds
2038 on Windows.</LI>
2039 <LI>G4SteppingVerbose, G4SteppingManager: added a switch to instantiate
2040 G4SteppingVerboseWithUnits.</LI>
2041 <LI>Simplified way of defining a user-specific stepping verbose, that
2042 is now common to all sequential, MT and tasking modes.</LI>
2043 <LI>Avoid unnecessary indirections when checking for regional stepping
2044 action by reusing the value of current volume in stepping manager.</LI>
2045 <LI>Use existing facility to find logical volume in store, rather than
2046 looping through in G4AdjointCrossSurfChecker.</LI>
2047 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
2048 </UL>
2049
2050 <A NAME="vis-notes">
2051 <H3><I>Visualization</I></H3></A>
2052 <UL>
2053 <LI><B>General</B>
2054 <UL>
2055 <LI>Revised vis models. See notes for "modeling" above for more details.
2056 Consequent changes: AddPrimitive(const G4Scale&) has been removed from
2057 all scene handlers.</LI>
2058 <LI>Introduced a Vtk driver.</LI>
2059 <LI>Introduced ToolsSG drivers.</LI>
2060 <LI>Introduced in-app plotting; available only with ToolsSG drivers at
2061 present.</LI>
2062 <LI>Introduced "special mesh rendering" for G4VNestedParameterisation for
2063 fast rendering of meshes typically used for medical phantoms.</LI>
2064 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
2065 <LI>Retired G4VIS_*, G4UI/G4INTY_* preprocessor symbols in toolkit build,
2066 only required by obsolete GNUmake system.</LI>
2067 <LI>Removed unused XXX module.</LI>
2068 </UL></LI>
2069 <LI><B>Management</B>
2070 <UL>
2071 <LI>Added UI commands for "Special Mesh Rendering":
2072 <TT>/vis/viewer/set/specialMeshRendering</TT> and
2073 <TT>/vis/viewer/set/specialMeshVolumes</TT>
2074 Only available with OpenGL drivers at present.</LI>
2075 <LI>Implemented a default AddCompound(const G4Mesh&) method: just draws the
2076 "container" volume and prints a G4Exception with guidance.</LI>
2077 <LI>Added AddPrimitive(const G4Plotter&) and <TT>/vis/plotter/</TT> UI
2078 command.</LI>
2079 <LI>Draw(const G4Scale&) has been removed from G4VisManager;
2080 <TT>/vis/scene/add/scale</TT> reimplemented with G4CallBackModel; all
2081 commands using G4CallBackModel follow interface change.</LI>
2082 <LI>Added new data members to view parameters.</LI>
2083 <LI>Exploit C++17 to parse saved files in <TT>/vis/viewer/interpolate</TT>.</LI>
2084 <LI>Introducing <TT>/vis/scene/add/localAxes</TT> and
2085 <TT>/vis/touchable/localAxes</TT> UI commands.</LI>
2086 <LI>G4Scene: removed misleading warning message. Allow multiple models
2087 for the same name, but different parameters, to be added without warning.</LI>
2088 <LI>G4VSceneHandler: use C++17 <TT>[[fallthrough]]</TT> instead in switch
2089 statement. Added code for drawing the extents of models in a scene for
2090 debugging.</LI>
2091 <LI>Removed deprecated G4VisManager::SetUserAction().
2092 Use RegisterRunDurationUserVisAction or similar instead.
2093 These functions represent quite an advanced use of visualisation
2094 and are rarely used.</LI>
2095 <LI>Sort <TT>/vis/*</TT> UI commands in alphabetical order.</LI>
2096 <LI><TT>/vis/set/extentForField</TT>, <TT>/vis/scene/add/electricField</TT> and
2097 <TT>magneticField</TT>: improved guidance to take note of change to
2098 G4VFieldModel, namely that the number of data points is now calculated
2099 on the basis of the extent, which can be set as above.</LI>
2100 <LI>Interrupt macro (<TT>vis.mac</TT>) if graphics system invalid/unavailable.
2101 Issues "Batch is interrupted" and avoids long litany of further errors.</LI>
2102 <LI>G4VViewer: trap request to set touchable of a physical volume no longer
2103 in the physical volume store and issue message.</LI>
2104 <LI><TT>/vis/scene/add/volume</TT> (and <TT>/vis/drawVolume</TT>): exploit
2105 G4PhysicalVolumesSearchScene to streamline geometry tree searches.
2106 Avoid calculating extent of a temporary physical volume when not
2107 necessary.
2108 The above does introduce a change of behaviour for the case that a user
2109 names the volume(s) requested, e.g., <TT>/vis/drawVolume Shape1</TT>.
2110 The user will not normally see any difference - but it does avoid
2111 extravagant computation in some circumstances.</LI>
2112 <LI>G4VVisCommand, G4VisCommandsSceneHandler and G4VisCommandsViewer: preserve
2113 view parameters of any existing viewer and use them in the creation of a
2114 new viewer. So, if the user requests a new viewer of the same or a new
2115 graphics system, the upcoming view will inherit the view parameters of
2116 the previously existing viewer. The idea is that it makes the response a
2117 UI command <TT>/vis/viewer/open</TT> (or <TT>/vis/viewer/create</TT>) more
2118 natural. The first <TT>/vis/open</TT> is not affected.</LI>
2119 <LI>In G4VisCommansCompound, with <TT>/vis/drawTree</TT>, invoke
2120 <TT>/vis/viewer/reset</TT> to ensure culling is off, so that all
2121 volumes are printed.</LI>
2122 <LI>G4VisCommandsCompound, G4VisCommandOpen, G4VisCommandSceneHandlerCreate:
2123 improved reporting of unrecognised graphics system.</LI>
2124 <LI>G4VisCommandsTouchable: modified according to changes in
2125 G4PhysicalVolumeModel.</LI>
2126 <LI>G4VisCommandsSet, G4VisCommandsTouchable and G4VisCommandsViewer:
2127 added comment of explanation where using G4PhysicalVolumesSearchScene.</LI>
2128 <LI>Use existing facility to find logical volume in store, rather than
2129 looping through in G4VisCommandSceneAddLogicalVolume::SetNewValue().</LI>
2130 <LI>G4VisCommands: replaced <TT>/vis/ogl/printEPS</TT> with
2131 <TT>/vis/ogl/export</TT> in guidance.</LI>
2132 <LI>G4VisCommandsScene: implemented <TT>/vis/scene/removeModel</TT>.</LI>
2133 <LI>G4ViewParameters: added Special Mesh Rendering parameters to
2134 <TT>/vis/viewer/save</TT>.</LI>
2135 <LI>G4VVisCommandGeometrySet: recalculate extent of any physical volume model
2136 in run duration lists after any <TT>/vis/geometry</TT> command (the scene's
2137 extent might have been changed by the command).</LI>
2138 <LI>Introducing GetColour(const G4Visible&).</LI>
2139 <LI>Protect pointers in G4VisManager::GeometryHasChanged().</LI>
2140 <LI>Fixed Windows static issue in G4VVisCommand.</LI>
2141 <LI>G4VisManager: fixed cout destination for UI manager during deletion.</LI>
2142 <LI>G4VisExecutive: removed obsolete VRML1 and network VRML2 drivers
2143 Removed obsolete network FukuiRenderer driver.
2144 Removed deprecated Wt driver.</LI>
2145 <LI>G4ViewParameters: fixed Coverity warning.</LI>
2146 <LI>Improved warning messages.</LI>
2147 </UL></LI>
2148 <LI><B>Modeling:</B>
2149 <UL>
2150 <LI>Revised vis models: over time, models have sprouted some inconsistencies.
2151 This is an attempt to rationalise them. The most significant model, used
2152 in all applications to draw the detector, is G4PhysicaVolumeModel. To
2153 handle all the options, G4PhysicalVolumeModel takes care of the
2154 transformation of any primitives that it generates. It ignores the
2155 transformation available in the base class, G4VModel. This revision
2156 brings all models in line with this policy.
2157 At the same time, we remove G4Scale and G4ScaleModel. G4Scale is an
2158 anomaly. It is not a "primitive" (obviously), but somehow, from the long
2159 distant past, it was implemented as though it was. These classes have been
2160 removed and <TT>/vis/scene/add/scale</TT> reimplemented with
2161 G4CallBackModel.</LI>
2162 <LI>Introducing new primitive G4Plotter.</LI>
2163 <LI>G4PhysicalVolumeModel: make CalculateExtent() a public function.
2164 Fixed bug in calculation of extent. In Validate(), avoid crash if
2165 volume no longer in physical volume store; improved warning message.</LI>
2166 <LI>Introducing G4Mesh, a light class that encapsulates and validates a
2167 nested parameterisation, called a "mesh". If a valid mesh cannot be
2168 created out of a G4VPhysicalVolume, it will have a type "invalid".
2169 The overhead of an invalid attempt is expected to be small, all the
2170 same it should only be invoked if the user specifies mesh rendering.</LI>
2171 <LI>G4ModelingParameters: added new data members and access functions.</LI>
2172 <LI>G4PhysicalVolumeModel: added code for special mesh rendering, under
2173 control of user flag. If flag is set by the above commands, and if a
2174 volume is a "mesh" (a container for a nested parameterisation), invoke
2175 new method AddCompound(const G4Mesh&).</LI>
2176 <LI>G4PhysicalVolumeModel: moved fFullPVPath.push_back earlier, addressing
2177 a bug in visualisation of touchables.</LI>
2178 <LI>Improved G4VModel; make SetTransform() virtual.</LI>
2179 <LI>G4ArrowModel, G4AxesModel and G4TextModel: implement SetTransform().</LI>
2180 <LI>Take care to apply to original model. For example, if SetTransform() is
2181 called more than once it must apply to the original.</LI>
2182 <LI>G4PhysicalVolumeModel: for the resultant of clipping, set the
2183 visualisation attributes of the original.</LI>
2184 <LI>G4VFieldModel: Change concept of choice of data points: this model
2185 simply checked that a data point was within the extent.
2186 Now it uses the extent to determine the datapoint spacing.
2187 Note: if <TT>fExtentForField</TT> is null, the used extent is that of the
2188 current scene; otherwise it uses that supplied by the user.</LI>
2189 <LI>G4PhysicalVolumesSearchScene: allow user to limit the depth of descent
2190 during a geometry tree search.</LI>
2191 <LI>G4PhysicalVolumeModel: if opacity (alpha) == 0 (completely transparent),
2192 treat same as pVisAttribs->IsVisible().
2193 G4PhysicalVolumeModel: simplified validation.</LI>
2194 <LI>As a result of Coverity warnings, improved G4PhysicalVolumeModel: clean up
2195 in case of found G4Mesh; hold current transform as object, not as a
2196 pointer.</LI>
2197 <LI>G4TouchablePropertiesScene: modified according to changes in
2198 G4PhysicalVolumeModel.</LI>
2199 <LI>Added G4Exception in default implementation of
2200 G4PseudoScene::ProcessVolume().</LI>
2201 </UL></LI>
2202 <LI><B>FukuiRenderer</B>
2203 <UL>
2204 <LI>Removed obsolete network FukuiRenderer driver.</LI>
2205 </UL></LI>
2206 <LI><B>gMocren</B>
2207 <UL>
2208 <LI>Use updated renamed method GetNoVoxels() in G4PhantomParameterisation
2209 instead of GetNoVoxel(), now removed.</LI>
2210 </UL></LI>
2211 <LI><B>HepRep</B>
2212 <UL>
2213 <LI>Fixed compilation error in G4HepRepSceneHandler when C++20 is enabled.</LI>
2214 <LI>Removed obsolete HepRep(WIRED) driver and associated files.</LI>
2215 </UL></LI>
2216 <LI><B>OpenGL</B>
2217 <UL>
2218 <LI>G4OpenGLImmediateQtViewer and G4OpenGLStoredQtViewer: set jpg as default
2219 export format for Qt viewers, for use with <TT>/vis/ogl/export</TT>; jpg
2220 is only available for Qt viewers, pdf is the default for other OpenGL
2221 viewers.</LI>
2222 <LI>Make better use of G4VSceneHandler::AddPrimitive().</LI>
2223 <LI>Fix in G4OpenGLViewer for C++20 warnings.</LI>
2224 <LI>Fixed text alignment issue with a fudge factor in
2225 G4OpenGLQtViewer::DrawText().</LI>
2226 <LI>Fix in G4OpenGLViewer for C++20 warnings.</LI>
2227 <LI>Specialise fudge factor for __APPLE__. It seems only Mac has this
2228 problem. Maybe it's to do with the retina display. Maybe Qt keeps
2229 it's own pixel size.</LI>
2230 <LI>G4OpenGLViewerMessenger: removed <TT>/vis/ogl/printEPS</TT> command, now
2231 covered by the more versatile <TT>/vis/ogl/export</TT>. Rationalised image
2232 exporting.</LI>
2233 <LI>G4OpenGLSceneHandler: use C++17 <TT>[[fallthrough]]</TT> in switch
2234 statements.</LI>
2235 <LI>G4OpenGLViewer: subsume the code in printEPS into exportImage.</LI>
2236 <LI>G4OpenGLXmViewer::print_callback: call exportImage instead of printEPS.</LI>
2237 <LI>G4OpenGLStoredSceneHandler, G4OpenGLViewerMessenger: increase the default
2238 display list limit to 10 million. The default OpenGL display list limit
2239 was 50,000, an archaic value from the days when memory was much more
2240 limited than is typical today. The number can be changed with
2241 <TT>/vis/ogl/displayListLimit</TT>, either to increase it further or
2242 lower it, subject to a lower limit of 10000.</LI>
2243 <LI>In FinishView() and ShowView() of X/Xm viewers, comment out glXWaitGL().
2244 Wait for effects of all previous OpenGL commands to be propagated
2245 before progressing.</LI>
2246 <LI>G4OpenGLSceneHandler: disable backface culling.</LI>
2247 <LI>G4OpenGLStoredViewer and G4OpenGLStoredQtViewer: suppress kernel visit
2248 (no longer needed) for cutaway drawing.
2249 Note 1: Section and Cutaway can reveal back-facing faces. If backface
2250 culling is implemented, the image can look strange because the back-facing
2251 faces are not there. As described above, we have disabled (commented out)
2252 backface culling. It seems not to affect performance.
2253 Note 2: In G4OpenGLStored(Qt)Viewer::CompareForKernelVisit() we decide if a
2254 "kernel visit" (which involves a reconstruction of the graphical database
2255 from the kernel) is required on a change of view parameters. Simple
2256 rotating and zooming does not require a kernel visit, but more sophisticated
2257 parameters may. In G4OpenGLSceneHandler we implement cutaways using
2258 OpenGL cut planes, so now we have disabled backface culling, we do NOT need
2259 to visit the kernel. This is the change that makes a huge speed up when
2260 a user requests cutaways.</LI>
2261 <LI>G4OpenGLQtViewer: use 'modelShortName' instead of 'modelDescription'.</LI>
2262 <LI>Fixed compilation error in G4OpenGLXmConvenienceRoutines when C++20 is
2263 enabled.</LI>
2264 <LI>Implemented WindowProc() function in G4OpenGLWin32Viewer for the Win32
2265 OpenGL driver (function that was commented out). It is now possible to
2266 change the Zoom and the orientation using the mouse (like in the Qt
2267 driver). Based on contribution in
2268 <A HREF="https://github.com/Geant4/geant4/pull/20">GitHub PR #20</A>.</LI>
2269 <LI>Implemented AddCompound(const G4Mesh&) method: turns nested
2270 parameterisations into polymarkers of dots - much improved speed.</LI>
2271 <LI>Enable extended WIN32 window in G4OpenGLWin32Viewer.
2272 Based on contribution in
2273 <A HREF="https://github.com/Geant4/geant4/pull/23">GitHub PR #23</A>.</LI>
2274 <LI>G4OpenGLQtViewer::addNonPVSceneTreeElement(): special case for markers,
2275 use Info() if non-empty name appearing in Qt's scene tree. This allows
2276 the user to design markers, e.g., a list of points, and give them a name
2277 that relates to the providence of the points, e.g., a particular
2278 material or geometry component.</LI>
2279 <LI>Removed deprecated Wt driver.</LI>
2280 <LI>G4OpenGLStoredQtViewer: moved <TT>fViewId<0</TT> check to top of
2281 constructor to pick up errors in base class construction.</LI>
2282 <LI>Removed deprecated <TT>/vis/ogl/set/</TT> commands.</LI>
2283 <LI>All commands connected with a time window. Use equivalent
2284 <TT>/vis/viewer/set/timeWindow</TT> commands.</LI>
2285 <LI><TT>/vis/ogl/set/eventsDrawInterval [N]</TT> is replaced by
2286 <TT>/vis/ogl/flushAt NthPrimitive [N]</TT>.</LI>
2287 <LI>Fix in G4OpenGLStoredXmViewer destructor.</LI>
2288 <LI>G4OpenGLWin32Viewer: fixed occasional crash with G4UIWin32 when
2289 creating viewer from UI command: avoid indirect call to DrawView()
2290 while still within CreateMainWindow().</LI>
2291 <LI>Comment out makeCurrent() in G4OpenGLImmediate/StoredQtViewer
2292 to prevent red-button crash.</LI>
2293 </UL></LI>
2294 <LI><B>OpenInventor</B>
2295 <UL>
2296 <LI>G4OpenInventorQtExaminerViewer: for tabbed viewer in UIQt, added a
2297 Detach button to move the viewer to its own dedicated and resizable
2298 window on the desktop. Added event handler for mouse wheel to fix the
2299 non-intuitive behavior. Mouse-wheel-forward now zooms/dollys in.
2300 Added viewer button to enable the "axis cross" (3d axes) feedback
2301 mechanism.</LI>
2302 <LI>G4OpenInventorViewer: upgraded the group node sensor to process camera
2303 movements, thus eliminating the need for the camera sensor. The node
2304 sensor receives all camera notifications and is immune to changes in
2305 the camera type.</LI>
2306 <LI>Force kernel visit if special mesh rendering parameters change.</LI>
2307 <LI>Code cleanup of OpenInventorQt classes.</LI>
2308 </UL></LI>
2309 <LI><B>Qt3D</B>
2310 <UL>
2311 <LI>Improve overall protection of debug output with debug flags.
2312 Moved debug code to G4Qt3DUtils header.</LI>
2313 <LI>Force kernel visit if special mesh rendering parameters change.</LI>
2314 <LI>Include some trial code (commented out) for text output.</LI>
2315 <LI>Fixed problem of drawing from the vis sub-thread.
2316 Added G4Qt3DViewer::MovingToVisSubThread() and MovingToMasterThread().</LI>
2317 <LI>G4Qt3DSceneHandler: raise G4Exception if no available node.
2318 Introduced AddCompound(const G4Mesh&) method.</LI>
2319 <LI>G4Qt3DViewer: protect against illegal call to show(); it may only be
2320 called from the master thread.</LI>
2321 <LI>Revert to black background.</LI>
2322 </UL></LI>
2323 <LI><B>Raytracer</B>
2324 <UL>
2325 <LI>Make RayTracerX viewers "auto refresh". This means the ray tracer will
2326 start tracing immediately on opening (<TT>/vis/open RayTracerX</TT>) and
2327 on any change of view parameters. Only affecting RayTracerX; plain
2328 RayTracer is not affected. It is possible to switch this feature off
2329 with <TT>/vis/viewer/set/auto-refresh false</TT>.</LI>
2330 <LI>Removed instantiation of G4The(MT)RayTracer from G4RayTracer.
2331 G4RayTracer is/should be a "pure factory". Its job is to instantiate
2332 a scene handler or viewer on request. G4The(MT)RayTracer should/need
2333 only be instantiated when the viewer is instantiated.</LI>
2334 <LI>Make better use of G4VSceneHandler::AddPrimitive().</LI>
2335 </UL></LI>
2336 <LI><B>ToolsSG</B>
2337 <UL>
2338 <LI>Introducing ToolsSG (TSG) drivers based on externals/g4tools.
2339 Supports in-app plotting.</LI>
2340 <LI>Providing four new (mutually exclusive) vis drivers: TOOLSSG_X11_GLES,
2341 TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.</LI>
2342 </UL></LI>
2343 <LI><B>Tree</B>
2344 <UL>
2345 <LI>Updated according to changes in G4PhysicalVolumeModel.</LI>
2346 <LI>Make better use of G4VSceneHandler::AddPrimitive().</LI>
2347 </UL></LI>
2348 <LI><B>VRML</B>
2349 <UL>
2350 <LI>Removed obsolete VRML1 and network VRML2 drivers.</LI>
2351 <LI>VRML*FILE drivers: introduced environment variables G4VRMLFILE_HEADER
2352 and G4VRMLFILE_FILE_NAME to allow the user to change the defaults. Also
2353 improve messaging to inform the user of this possibility.</LI>
2354 </UL></LI>
2355 <LI><B>Vtk</B>
2356 <UL>
2357 <LI>New VtkQt and VtkNative visualisation drivers.</LI>
2358 </UL></LI>
2359 <LI><B>Externals</B>
2360 <UL>
2361 <LI>Migrated gl2ps to version 1.4.2.
2362 Allow use of non-APPLE OpenGL on APPLE.
2363 To use this, build with macro GL2PS_USE_GL_GL_H.</LI>
2364 <LI>Fixed issues with GL when building X11 and Qt.
2365 GL libs should be included only once.</LI>
2366 </UL></LI>
2367 </UL>
2368
2369 <A NAME="env-notes">
2370 <H3><I>Environments</I></H3></A>
2371 <UL>
2372 <LI>G4Py:
2373 <UL>
2374 <LI>Use exact version of Python for boost.python module. Based on
2375 <A HREF="https://github.com/Geant4/geant4/pull/31">GitHub PR #31</A>.</LI>
2376 <LI>Export binding for G4ElementVector, according to updates to G4ElementTable.</LI>
2377 <LI>Removed obsolete VRML1 driver settings.</LI>
2378 <LI>Removed setup for obsolete HepRep(WIRED) driver.</LI>
2379 <LI>In TestEm0, use default EM physics in place of obsolete
2380 G4EmProcessOptions.</LI>
2381 </UL></LI>
2382 <LI>zmq:
2383 <UL>
2384 <LI>Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
2385 </UL></LI>
2386 <LI>Removed obsolete MOMO module.</LI>
2387 </UL>
2388
2389 <A NAME="data-notes">
2390 <H3><I>Data sets</I></H3></A>
2391 <UL>
2392 <LI>New low-energy data set version, <B>G4EMLOW-8.0</B>:
2393 <UL>
2394 <LI>Removed tabs in option4 cross-section files.</LI>
2395 <LI>Added new cross sections for electron transportation in gold
2396 within Geant4-DNA.</LI>
2397 <LI>Added directories <TT>Elastic</TT>, <TT>Inelastic</TT> and
2398 <TT>Structure</TT> for microelec models.</LI>
2399 <LI>Fixed problem in file sigmadiff_cumulated_ionisation_e_RBEBV_Z79.dat.</LI>
2400 <LI>Added ANSTO atomic de-excitation data.</LI>
2401 <LI>Added updated epics2017 data.</LI>
2402 <LI>Removed some unused data.</LI>
2403 </UL></LI>
2404 <LI>New data files for evaluated cross-sections <B>G4PARTICLEXS-4.0</B>:
2405 <UL>
2406 <LI>Extended data for all isotopes for neutron, proton and light ion
2407 cross-sections. New dataset for gamma incident based on IAEA/PD-2019
2408 both for elements and isotopes.</LI>
2409 </UL></LI>
2410 <LI>New optional data set version for incident protons,
2411 <B>G4TENDL-1.4</B>:
2412 <UL>
2413 <LI>New version based mainly on TENDL-2019 (previous one was from TENDL-2014).
2414 <LI>Isotopes not coming from TENDL-2019:
2415 <UL>
2416 <LI>Files in ENDF/B-VIII.0 (check the complete list in the README files of
2417 each subdirectory: Proton, Deuteron ...).</LI>
2418 <LI>The 5 isotopes in the JENDL/DEU-2020 data library, for incident
2419 deuterons on Li-6, Li-7, Be-9, C-12 and C-13.</LI>
2420 <LI>p+C-13, which is based on TENDL-2014, because ENDF/B-VII.1 proton file
2421 (adopted by TENDL-2019) only provides radiative capture final state.</LI>
2422 </UL></LI>
2423 <LI>File corresponding to p+Be9, coming from ENDF/B-VIII.0 has been modified
2424 to avoid case of G4Exception in Geant4.</LI>
2425 <LI>Update README files in Proton, Deuteron, Triton, He3 and Alpha
2426 directories.</LI>
2427 </UL></LI>
2428 </UL></LI>
2429
2430 <A NAME="ex-notes">
2431 <H3><I>Examples</I></H3></A>
2432 <UL>
2433 <LI>Updated reference outputs, macros, READMEs and scripts.</LI>
2434 <LI>Fixes for Doxygen documentation and coding guidelines.</LI>
2435 <LI>Replaced deprecated G4VisAttributes::Invisible by
2436 G4VisAttributes::GetInvisible().</LI>
2437 <LI>Migration to new G4AnalysisManager.hh header and define the
2438 default output file type for analysis.</LI>
2439 <LI>Use <TT>std::string</TT> member functions from G4String in place of synonyms.
2440 Use G4StrUtil functions replacing deprecated G4String member functions.</LI>
2441 <LI>Bump required CMake version range to <TT>3.16...3.21</TT>.</LI>
2442 <LI><B><U>advanced</U></B>
2443 <UL>
2444 <LI><B>air_shower</B>
2445 <UL>
2446 <LI>Removed UltraAnalysisManager class, using default commands.</LI>
2447 <LI>Updated code to use C++11 features.</LI>
2448 </UL></LI>
2449 <LI><B>amsEcal</B>
2450 <UL>
2451 <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2452 </UL></LI>
2453 <LI><B>brachytherapy</B>
2454 <UL>
2455 <LI>Code cleanup: use C++11 keywords and patterns.</LI>
2456 <LI>Removed BrachyMaterial class; materials implemented now using NIST
2457 material manager.</LI>
2458 <LI>Removed SetCuts() from the local PhysicsList.</LI>
2459 </UL></LI>
2460 <LI><B>CaTS</B>
2461 <UL>
2462 <LI>New application implementing a flexible and extendable framework for
2463 the simulation of calorimeter and tracking detectors.
2464 It also demonstrates how to use
2465 <A HREF="https://bitbucket.org/simoncblyth/opticks.git">Opticks</A>
2466 for the creation and propagation of optical photons.</LI>
2467 </UL></LI>
2468 <LI><B>composite_calorimeter</B>
2469 <UL>
2470 <LI>Migrated to multi-threading, using G4RunManagerFactory.</LI>
2471 <LI>Introduced the action initializer.</LI>
2472 <LI>Split the definition of the sensitive part of the detector
2473 from the detector construction itself. A new method,
2474 sensitiveHandling(), has been introduced in the base class CCalG4Able.</LI>
2475 <LI>Made the following three classes thread-local singletons: CCalSDList,
2476 CCalSensAssign and CCalSensitiveDetectors.</LI>
2477 <LI>Multi-threaded use of the G4AnalysisManager in the run action with the
2478 merging of histograms and ntuple of all working threads at the end of
2479 the run.</LI>
2480 </UL></LI>
2481 <LI><B>doiPET</B>
2482 <UL>
2483 <LI>Migrated to use G4RunManagerFactory.</LI>
2484 <LI>Analysis now done with G4Analysis.</LI>
2485 <LI>Link to reference data and analysis scripts provided to let users
2486 compare simulation results to reference data.</LI>
2487 <LI>Added some controls to prepare DOI-look-up table.</LI>
2488 If DOI look-up table is provided as a file, then it will use it.
2489 If look-up table is not provided, the program will prepare the look-up
2490 table based on the information provided by the user (no. of crystals,
2491 etc).</LI>
2492 <LI>In performing Anger Logic calculation, the interaction position is
2493 mapped to the center of the crystal before 2D position error is added
2494 to model photomultiplier tube (PMT) error.</LI>
2495 <LI>A C++ analysis program is provided to calculate the sensitivity of the
2496 scanner for a line source.</LI>
2497 <LI>Fixed compilation warnings for unused private variables in
2498 doiPETDetectorConstruction and doiPETEventAction. Removed tabs.</LI>
2499 <LI>Removed unused header.</LI>
2500 </UL></LI>
2501 <LI><B>eRosita</B>
2502 <UL>
2503 <LI>Migration of code to multithreading.</LI>
2504 </UL></LI>
2505 <LI><B>gammaknife</B>
2506 <UL>
2507 <LI>Delete runManager at the end of the run.</LI>
2508 </UL></LI>
2509 <LI><B>gammaray_telescope</B>
2510 <UL>
2511 <LI>Fixed interactive mode.</LI>
2512 <LI>GammaRayTelHadronPhysics: replaced G4HadronCaptureProcess with
2513 G4NeutronCaptureProcess, and G4HadronFissionProcess with
2514 G4NeutronFissionProcess.
2515 Replaced stopping processes that have been deleted.
2516 Replaced old pion inelastic cross-sections (that have been deleted)
2517 with G4BGGPionInelasticXS.</LI>
2518 <LI>GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced
2519 G4PhotoNuclearProcess (that has been deleted) with
2520 G4HadronInelasticProcess.</LI>
2521 <LI>Minor change in the GammaRayTelRunAction::OpenFile() method to allow
2522 filenames longer than the hardcoded 25 character limit.</LI>
2523 <LI>Removed dependency on G4EmProcessOptions.</LI>
2524 <LI>Removed SetCuts() from the local PhysicsList.</LI>
2525 <LI>Removed obsolete input macros and use EM option-4 in physics_opt4.mac.</LI>
2526 <LI>Removed obsolete classes.</LI>
2527 </UL></LI>
2528 <LI><B>gorad</B>
2529 <UL>
2530 <LI>Protect explicit inclusion of G4UIQt header.</LI>
2531 <LI>Fixed potential shadowing compilation warnings in GRInitialization.</LI>
2532 </UL></LI>
2533 <LI><B>hadrontherapy</B>
2534 <UL>
2535 <LI>Modified HadrontherapyLet for file generation.</LI>
2536 <LI>Removed dependency on G4EmProcessOptions.</LI>
2537 <LI>Geometry modification in CarbonBeamLine.</LI>
2538 <LI>Removed unncessary G4AutoDelete of StepProcessMax in physics list.</LI>
2539 <LI>Minor changes in macro files.</LI>
2540 </UL></LI>
2541 <LI><B>HGCal_testbeam</B>
2542 <UL>
2543 <LI>SiliconPixelHit, SiPMHit: fixed problem in handling of NIEL energy
2544 deposition.</LI>
2545 <LI>CMSHadronPhysicsFTFP_BERT: added class from CMS.</LI>
2546 <LI>Removed obsolete class CMSEmStandardPhysicsHcal.</LI>
2547 <LI>FTFPCMS_BERT_EMM: use correct combination of physics constructors.</LI>
2548 <LI>Removed use of obsolete RanecuEngine. Updated CMS EM physics.</LI>
2549 <LI>Fixed compilation warning for unused private member in
2550 PrimaryGeneratorAction.</LI>
2551 </UL></LI>
2552 <LI><B>ICRP110_HumanPhantoms</B>
2553 <UL>
2554 <LI>Introduced ICRP110PhantomVisAction. Updated vis.mac which shows
2555 how to activate it.</LI>
2556 <LI>Revised implementation of bone material.</LI>
2557 <LI>Fix in UserScorerWriter to avoid potential division by zero.</LI>
2558 <LI>Updated OrganMasses.dat; the Dose is now calculated averaged over the
2559 entire mass of the organ, and not only in the voxels of the organ where
2560 there is edep recorded.</LI>
2561 <LI>Use <TT>/vis/viewer/set/specialMeshRendering</TT>. Draw the full
2562 phantom. In ColourMap.dat, all materials (except air) are now opaque.</LI>
2563 <LI>General code cleanup.</LI>
2564 </UL></LI>
2565 <LI><B>iort_therapy</B>
2566 <UL>
2567 <LI>Removed dependency on G4EmProcessOptions.</LI>
2568 <LI>Removed SetCuts() from the local PhysicsList.</LI>
2569 <LI>Set cuts per region in ConstructProcess(). RegionStore is not available
2570 when accessed from the constructor of the Physics List.</LI>
2571 </UL></LI>
2572 <LI><B>lAr_calorimenter</B>
2573 <UL>
2574 <LI>Migrated to use G4RunManagerFactory.</LI>
2575 </UL></LI>
2576 <LI><B>microbeam</B>
2577 <UL>
2578 <LI>Added initialisation of data in the
2579 constructor of the RunAction class.</LI>
2580 <LI>Use explicit constructors and <TT>override</TT> instead of
2581 <TT>virtual</TT> in derived classes. Use G4 types in
2582 DetectorConstruction.</LI>
2583 <LI>In main() do not initialize run and number of threads, let
2584 these be done in macro microbeam.mac.</LI>
2585 <LI>DetectorConstruction: use <TT>CLHEP::twopi</TT>. Avoid having
2586 <TT>fField</TT> pointer as class member, use G4AutoDelete
2587 registration instead.</LI>
2588 <LI>CellParameterisation: initilize all data members.</LI>
2589 </UL></LI>
2590 <LI><B>microelectronics</B>
2591 <UL>
2592 <LI>Updated PhysicsList to new EM settings.</LI>
2593 <LI>Updated analysis script plot.C.</LI>
2594 </UL></LI>
2595 <LI><B>purging_magnet</B>
2596 <UL>
2597 <LI>Migrated to use G4RunManagerFactory.</LI>
2598 <LI>Updated physics list to use Modular physics list, with
2599 G4EmStandardPhysics_option4.</LI>
2600 </UL></LI>
2601 <LI><B>radioprotection</B>
2602 <UL>
2603 <LI>Added the Bridge silicon microdosimeter and a macro to perform
2604 microdosimetric calculations. Analysis macros run with Root6.</LI>
2605 </UL></LI>
2606 <LI><B>STCyclotron</B>
2607 <UL>
2608 <LI>STCyclotronSensitiveTarget: remove deprecated include.</LI>
2609 <LI>Use new CLHEP units for <TT>minute, hour, day, year</TT> in
2610 STCyclotronPhysicsList.</LI>
2611 </UL></LI>
2612 <LI><B>underground_physics</B>
2613 <UL>
2614 <LI>In DMXParticleSource::ConfineSourceToVolume(), use existing
2615 facility to faster find physical volme in store, rather than looping
2616 through. Some code cleanup.</LI>
2617 <LI>DMXPhysicsList: replaced G4HadronCaptureProcess with
2618 G4NeutronCaptureProcess. Replaced stopping processes that have been
2619 deleted. Removed header files of old and unused pion inelastic
2620 cross-sections (that have been deleted). Replaced particle-specific
2621 inelastic processes (that have been deleted) with
2622 G4HadronInelasticProcess.</LI>
2623 <LI>Replaced deprecated optical commands & parameters with new ones.</LI>
2624 </UL></LI>
2625 <LI><B>xray_fluorescence</B>
2626 <UL>
2627 <LI>Migrated to use G4RunManagerFactory.</LI>
2628 <LI>Removed dependency on G4EmProcessOptions.</LI>
2629 <LI>Removed SetCuts() from the local PhysicsList.</LI>
2630 <LI>Updated for changes in the analysis category.</LI>
2631 </UL></LI>
2632 </UL></LI>
2633 <LI><B><U>basic</U></B>
2634 <UL>
2635 <LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
2636 <LI>Use <TT>nullptr</TT> instead of <TT>0</TT>.</LI>
2637 <LI>Cleaned trailing whitespaces from all files.</LI>
2638 <LI>Introduced namespace instead of a class names prefix.</LI>
2639 <LI>Declare overriding functions <TT>override</TT> (and removed
2640 <TT>virtual</TT> keyword).</LI>
2641 <LI><B>B4</B>
2642 <UL>
2643 <LI>Removed macros/visTutor. A movies tutorial is now in extended example
2644 visualization/movies. Remove visTutor menu in all gui.mac files.</LI>
2645 </UL></LI>
2646 <LI><B>B5</B>
2647 <UL>
2648 <LI>Added input script plotter.mac to use new plotter commands.</LI>
2649 <LI>Added analysisManager->Reset() in begin of run, as resetting
2650 was disabled for plotting in end of run.</LI>
2651 </UL></LI>
2652 </UL></LI>
2653 <LI><B><U>extended</U></B>
2654 <UL>
2655 <LI><B>analysis</B>
2656 <UL>
2657 <LI>Removed AnaEx03 with the AIDA implementation.</LI>
2658 <LI><B>AnaEx01</B>
2659 <UL>
2660 <LI>Define analysis manager configuration and create histograms
2661 only once.</LI>
2662 <LI>Always close analysis files in EndOfRunAction.</LI>
2663 </UL></LI>
2664 </UL></LI>
2665 <LI><B>biasing</B>
2666 <UL>
2667 <LI><B>B03</B>
2668 <UL>
2669 <LI>B03PhysicsList: replaced G4HadronCaptureProcess with
2670 G4NeutronCaptureProcess, and G4HadronFissionProcess with
2671 G4NeutronFissionProcess. Replaced old ion cross-sections (that have
2672 been deleted) with better ones. Use G4HadronInelasticProcess for
2673 inelastic processes (the particle-specific inelastic processes have
2674 been deleted).</LI>
2675 </UL></LI>
2676 </UL></LI>
2677 <LI><B>electromagnetic</B>
2678 <UL>
2679 <LI><B>TestEm0</B>
2680 <UL>
2681 <LI>Updated PhysListEmStandard.</LI>
2682 <LI>DetectorConstruction: print only used material.</LI>
2683 <LI>RunAction: improved output format.</LI>
2684 </UL></LI>
2685 <LI><B>TestEm1</B>
2686 <UL>
2687 <LI>Migrated main() to use G4RunManagerFactory and
2688 G4SteppingVerboseWithUnits.</LI>
2689 <LI>Updated PhysListEmStandard.</LI>
2690 <LI>DetectorConstruction: do not print materials table.</LI>
2691 <LI>StepMax: code formatting.</LI>
2692 <LI>Added macro stepMax.mac.</LI>
2693 </UL></LI>
2694 <LI><B>TestEm2</B>
2695 <UL>
2696 <LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
2697 <LI>Removed obsolete PhysList5DEmStandard. 5D model is a part of
2698 Opt4 and other physics configurations.</LI>
2699 <LI>Updated PhysListEmStandard.</LI>
2700 <LI>DetectorConstruction: do not print materials table.</LI>
2701 <LI>StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger:
2702 revert, to make command <TT>/testem/stepMax</TT> working in
2703 interactive mode.</LI>
2704 <LI>SteppingVerbose: set precision via data member; modified process
2705 name.</LI>
2706 <LI>Use G4RunManagerFactory in main().</LI>
2707 <LI>Added macro stepMax.mac.</LI>
2708 </UL></LI>
2709 <LI><B>TestEm3</B>
2710 <UL>
2711 <LI>Updated PhysListEmStandard.</LI>
2712 <LI>StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger:
2713 revert, to make command <TT>/testem/stepMax</TT> working in
2714 interactive mode.</LI>
2715 <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2716 <LI>Added macro stepMax.mac.</LI>
2717 </UL></LI>
2718 <LI><B>TestEm4</B>
2719 <UL>
2720 <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2721 </UL></LI>
2722 <LI><B>TestEm5</B>
2723 <UL>
2724 <LI>Updated PhysListEmStandard.</LI>
2725 <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2726 <LI>TrackingAction: fixed bug for filling histos 6 and 7.
2727 Fixed bug for histo of vertex position.</LI>
2728 <LI>StackingAction: migrated to the new version of
2729 G4PhysicsModelCatalog.</LI>
2730 <LI>StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger:
2731 revert, to make command <TT>/testem/stepMax</TT> working in
2732 interactive mode.</LI>
2733 <LI>Use G4RunManagerFactory in main().</LI>
2734 <LI>Fixed inconsistency of target/world size defined by a user
2735 Addressing problem report
2736 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2379">#2379</A>.</LI>
2737 <LI>DetectorConstruction: if any geometry size is changed then
2738 recompute all geometry parameters.</LI>
2739 <LI>PrimaryGeneratorAction: reinitialise beam position for each
2740 new run.</LI>
2741 <LI>Included new macro pixe_ANSTO.mac to show how to activate
2742 the ANSTO PIXE data libraries. Use ANSTO radiation yields
2743 instead of EADL.</LI>
2744 <LI>StackingAction: use new modelID scheme.</LI>
2745 <LI>Removed obsolete PhysListEm5DPhysics and PhysListEm19DPhysics,
2746 as these models are now part of regular physics constructors.</LI>
2747 <LI>Added macros stepMax.mac and subcut.mac.</LI>
2748 </UL></LI>
2749 <LI><B>TestEm6</B>
2750 <UL>
2751 <LI>Migrated to use G4RunManagerFactory.</LI>
2752 <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2753 </UL></LI>
2754 <LI><B>TestEm7</B>
2755 <UL>
2756 <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2757 <LI>Removed use of obsolete RanecuEngine.
2758 Updated PhysListEmPhysicsNR.</LI>
2759 <LI>Migrated to use G4RunManagerFactory in main().</LI>
2760 <LI>Improved macro files for ion ionisation.</LI>
2761 <LI>Fix to build with C++20 Standard enabled.</LI>
2762 <LI>c2_function.hh: fixed compilation warning.</LI>
2763 </UL></LI>
2764 <LI><B>TestEm8</B>
2765 <UL>
2766 <LI>Added printout of random numbers.</LI>
2767 </UL></LI>
2768 <LI><B>TestEm9</B>
2769 <UL>
2770 <LI>Replaced local Physics List by clone of the default EM standard;
2771 recover analysis of process calls for the case of gamma general
2772 process; improved macro files. Removed unused header.</LI>
2773 </UL></LI>
2774 <LI><B>TestEm11</B>
2775 <UL>
2776 <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2777 <LI>Updated PhysListEmStandard.</LI>
2778 <LI>DetectorConstruction: print only used material.</LI>
2779 <LI>RunAction: dump G4EmParameters.</LI>
2780 </UL></LI>
2781 <LI><B>TestEm12, 13, 14</B>
2782 <UL>
2783 <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2784 <LI>Updated PhysListEmStandard.</LI>
2785 </UL></LI>
2786 <LI><B>TestEm15</B>
2787 <UL>
2788 <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2789 <LI>PhysicsList: removed PhysList5DStandard, as 5D model is now part of
2790 Opt4 EM physics in standard constructors.</LI>
2791 </UL></LI>
2792 <LI><B>TestEm16</B>
2793 <UL>
2794 <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
2795 </UL></LI>
2796 <LI><B>TestEm17, 18</B>
2797 <UL>
2798 <LI>Migrated to G4SteppingVerboseWithUnits.</LI>
2799 </UL></LI>
2800 </UL></LI>
2801 <LI><B>eventgenerator</B>
2802 <UL>
2803 <LI><B>exgps</B>
2804 <UL>
2805 <LI>Tidy up CTests definition file and build configuration.</LI>
2806 </UL></LI>
2807 <LI><B>particleGun</B>
2808 <UL>
2809 <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
2810 Removed SteppingVerbose class.</LI>
2811 </UL></LI>
2812 <LI><B>pythia/py8decayer</B>
2813 <UL>
2814 <LI>New example demonstrating how to outfit Pythia8-based decay features
2815 to those resonances in Geant4 where decay tables are not implemented
2816 by default. In addition, it shows how to replace existing
2817 Geant4 decay tables to such resonances as tau+/- or B+/- with
2818 the Pythia8-based ones.</LI>
2819 </UL></LI>
2820 <LI><B>userPrimaryGenerator</B>
2821 <UL>
2822 <LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
2823 </UL></LI>
2824 </UL></LI>
2825 <LI><B>exoticphysics</B>
2826 <UL>
2827 <LI><B>channeling</B>
2828 <UL>
2829 <LI>Removed local option4 physics configuration.</LI>
2830 </UL></LI>
2831 <LI><B>phonon</B>
2832 <UL>
2833 <LI>Download CrystalMap files and fixed build issues.</LI>
2834 </UL></LI>
2835 <LI><B>saxs</B>
2836 <UL>
2837 <LI>Fixed using G4Analysis: add call to CloseFile().</LI>
2838 <LI>Cleanup of PhysicsList.</LI>
2839 </UL></LI>
2840 </UL></LI>
2841 <LI><B>geometry</B>
2842 <UL>
2843 <LI><B>transforms</B>
2844 <UL>
2845 <LI>Migrated to use G4SteppingVerboseWithUnits.</LI>
2846 <LI>Added cleaning of the reflection factory.</LI>
2847 </UL></LI>
2848 <LI><B>VecGeomNavigation</B>
2849 <UL>
2850 <LI>New example demonstrating integration of VecGeom navigation, based
2851 on the prototype package G4VecGeomNav, being integrated in the
2852 example at build time.</LI>
2853 </UL></LI>
2854 </UL></LI>
2855 <LI><B>hadronic</B>
2856 <UL>
2857 <LI><B>FissionFragment</B>
2858 <UL>
2859 <LI>Fixed CMake build script to define target properly.</LI>
2860 </UL></LI>
2861 <LI><B>Hadr01</B>
2862 <UL>
2863 <LI>PhysicsList: removed unused header file.</LI>
2864 </UL></LI>
2865 <LI><B>Hadr02</B>
2866 <UL>
2867 <LI>CRMCNeutronBuilder, HIJINGNeutronBuilder, UrQMDNeutronBuilder:
2868 replaced G4HadronCaptureProcess with G4NeutronCaptureProcess, and
2869 G4HadronFissionProcess with G4NeutronFissionProcess.</LI>
2870 <LI>IonUrQMDPhysics: replaced old ion cross-sections (that have been
2871 deleted) with G4ComponentGGNuclNuclXsc.</LI>
2872 <LI>Replaced particle-specific inelastic processes (that have been
2873 deleted) with G4HadronInelasticProcess.</LI>
2874 </UL></LI>
2875 <LI><B>Hadr03</B>
2876 <UL>
2877 <LI>PhysicsList: added GammaNuclearPhysicsLEND.</LI>
2878 <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
2879 G4PhotoNuclearProcess (that has been deleted) with
2880 G4HadronInelasticProcess.</LI>
2881 <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
2882 Removed SteppingVerbose class.</LI>
2883 </UL></LI>
2884 <LI><B>Hadr04</B>
2885 <UL>
2886 <LI>NeutronHPphysics: replaced G4HadronCaptureProcess with
2887 G4NeutronCaptureProcess, and G4HadronFissionProcess with
2888 G4NeutronFissionProcess. Replaced G4NeutronInelasticProcess (that
2889 has been deleted) with G4HadronInelasticProcess.
2890 Use G4GenericMessenger instead of NeutronHPMessenger.</LI>
2891 <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
2892 Removed SteppingVerbose class.</LI>
2893 <LI>Added protection in RunAction::CountProcesses().</LI>
2894 </UL></LI>
2895 <LI><B>Hadr05</B>
2896 <UL>
2897 <LI>New example demonstrating how to collect energy deposition in a
2898 sampling calorimeter and how to survey energy flow.</LI>
2899 </UL></LI>
2900 <LI><B>Hadr06</B>
2901 <UL>
2902 <LI>TrackingAction: count secondary particles with meanLife > 0.
2903 Print meanLife. Added TrackingMessenger with 2 commands.</LI>
2904 <LI>PhysicsList: added GammaNuclearPhysicsLEND.
2905 Use new CLHEP units for <TT>minute, hour, day, year</TT> and
2906 <TT>millielectronvolt</TT>.</LI>
2907 <LI>Updated ElectromagneticPhysics.</LI>
2908 <LI>Suppressed command <TT>/process/list</TT> in several macros.</LI>
2909 <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
2910 G4PhotoNuclearProcess (that has been deleted) with
2911 G4HadronInelasticProcess.</LI>
2912 <LI>DetectorConstruction: updated <TT>fWorldSize</TT> for
2913 SetRadius().</LI>
2914 <LI>Migrated main() to G4RunManagerFactory and
2915 G4SteppingVerboseWithUnits.</LI>
2916 <LI>Enable ParticleHP settings in main().</LI>
2917 <LI>Stepping verbose initialisation.</LI>
2918 </UL></LI>
2919 <LI><B>Hadr07</B>
2920 <UL>
2921 <LI>TrackingAction: count secondary particles with meanLife > 0.
2922 Print meanLife.</LI>
2923 <LI>PhysicsList: added GammaNuclearPhysicsLEND.
2924 Use new CLHEP units for <TT>minute, hour, day, year</TT> and
2925 <TT>millielectronvolt</TT>.</LI>
2926 <LI>Updated ElectromagneticPhysics.</LI>
2927 <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
2928 G4PhotoNuclearProcess (that has been deleted) with
2929 G4HadronInelasticProcess.</LI>
2930 <LI>Migrated main() to G4RunManagerFactory and
2931 G4SteppingVerboseWithUnits.
2932 Enable ParticleHP settings in main().</LI>
2933 <LI>HadronElasticPhysicsHP: use G4GenericMessenger.</LI>
2934 <LI>RadioactiveDecayPhysics: do not change 'ThresholdOfHalfLife'.</LI>
2935 </UL></LI>
2936 <LI><B>Hadr08</B>
2937 <UL>
2938 <LI>BiasingOperation: replaced Gheisha inelastic cross-section (that
2939 has been deleted) with better cross-sections.
2940 Replaced particle-specific inelastic processes (that have been
2941 deleted) with G4HadronInelasticProcess.</LI>
2942 </UL></LI>
2943 <LI><B>Hadr09</B>
2944 <UL>
2945 <LI>HadronicGenerator: migrated per-particle inelastic processes
2946 (that have been deleted) to G4HadronInelasticProcess.
2947 Extended interface and functionality; used new methods
2948 available in the FTF model.</LI>
2949 </UL></LI>
2950 <LI><B>Hadr10</B>
2951 <UL>
2952 <LI>New hadronic example aimed to exercise the decay of tau leptons,
2953 as well as charmed and bottom hadrons.</LI>
2954 </UL></LI>
2955 <LI><B>NeutronSource</B>
2956 <UL>
2957 <LI>TrackingAction: count secondary particles with meanLife > 0.
2958 Print meanLife.</LI>
2959 <LI>PhysicsList: added GammaNuclearPhysicsLEND.
2960 Use new CLHEP units for <TT>minute, hour, day, year</TT> and
2961 <TT>millielectronvolt</TT>.</LI>
2962 <LI>Updated ElectromagneticPhysics.</LI>
2963 <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
2964 G4PhotoNuclearProcess (that has been deleted) with
2965 G4HadronInelasticProcess.</LI>
2966 <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
2967 Removed SteppingVerbose class.</LI>
2968 <LI>RadioactiveDecayPhysics: new constructor, include G4Radioactivation
2969 process, inactivate atomic de-excitation.</LI>
2970 <LI>Added protection in RunAction::CountProcesses().</LI>
2971 <LI>TrackingAction, RunAction: added a comment for excited states.</LI>
2972 <LI>HadronElasticPhysicsHP: use G4GenericMessenger.</LI>
2973 <LI>RadioactiveDecayPhysics: do not change 'ThresholdOfHalfLife'.</LI>
2974 </UL></LI>
2975 </UL></LI>
2976 <LI><B>medical/DICOM</B>
2977 <UL>
2978 <LI>Use updated renamed method GetNoVoxels() in G4PhantomParameterisation
2979 instead of GetNoVoxel(), now removed.</LI>
2980 <LI>In vis.mac, changed <TT>/vis/ogl/set/eventsDrawInterval</TT> to
2981 <TT>/vis/ogl/flushAt NthPrimitive</TT>.</LI>
2982 </UL></LI>
2983 <LI><B>medical/dna</B>
2984 <UL>
2985 <LI><B>AuNP</B>:
2986 <UL>
2987 <LI>New example simulating the track-structure of electrons in
2988 microscopic gold volume. Also simulating that in liquid water
2989 medium surrounding the gold volume.</LI>
2990 </UL></LI>
2991 <LI><B>chem2</B>:
2992 <UL>
2993 <LI>In vis.mac, changed <TT>/vis/ogl/set/eventsDrawInterval</TT> to
2994 <TT>/vis/ogl/flushAt NthPrimitive</TT>.</LI>
2995 </UL></LI>
2996 <LI><B>chem3</B>:
2997 <UL>
2998 <LI>In vis.mac, changed <TT>/vis/ogl/set/</TT> to
2999 <TT>/vis/viewer/set/timeWindow/</TT>.</LI>
3000 <LI>Replaced '/vis/ogl/printEPS' with <TT>/vis/ogl/export</TT>
3001 in relevant macros.</LI>
3002 </UL></LI>
3003 <LI><B>chem6</B>:
3004 <UL>
3005 <LI>Deleted limit time step.</LI>
3006 <LI>Reduced number of incident particles.</LI>
3007 </UL></LI>
3008 <LI><B>dnadamage1</B>:
3009 <UL>
3010 <LI>Fixes in analysis macros.</LI>
3011 <LI>Fixed SSD file typos.</LI>
3012 </UL></LI>
3013 <LI><B>neuron</B>:
3014 <UL>
3015 <LI>In vis.mac, changed <TT>/vis/ogl/set/</TT> to
3016 <TT>/vis/viewer/set/timeWindow/</TT>.</LI>
3017 </UL></LI>
3018 <LI><B>microdosimetry</B>:
3019 <UL>
3020 <LI>Updated PhysicsList to use updated SetEmModel() method.
3021 Removed thread unsafe SetCuts() method; use SetEmModel(..) for
3022 multiple scattering.</LI>
3023 </UL></LI>
3024 <LI><B>scavenger</B>:
3025 <UL>
3026 <LI>New example showing how to activate the scavenging process
3027 in chemistry using the deterministic treatment of the IRT
3028 model.</LI>
3029 </UL></LI>
3030 <LI><B>splitting</B>:
3031 <UL>
3032 <LI>Updated PhysicsList to recent EM settings.</LI>
3033 </UL></LI>
3034 <LI><B>svalue</B>:
3035 <UL>
3036 <LI>PhysicsList: removed unused header. Radioactive decay is defined via
3037 standard radioactive physics builder.</LI>
3038 <LI>Do not allow change of geometry between runs, only materials may be
3039 changed.</LI>
3040 <LI>Removed all warning in test run.</LI>
3041 </UL></LI>
3042 </UL></LI>
3043 <LI><B>medical/electroscattering</B>
3044 <UL>
3045 <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
3046 <LI>Removed obsolete random number generator.</LI>
3047 <LI>PhysicsList: use physics constructors from physics_list library;
3048 added G4EmStandardPhysics_option4; removed local EM physics
3049 constructors.</LI>
3050 </UL></LI>
3051 <LI><B>medical/electroscattering2</B>
3052 <UL>
3053 <LI>Removed warning. Cosmetic modifications in PhysicsList.</LI>
3054 </UL></LI>
3055 <LI><B>medical/fanoCavity, 2</B>
3056 <UL>
3057 <LI>Updated PhysicsList to recent EM settings.</LI>
3058 <LI>Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.</LI>
3059 </UL></LI>
3060 <LI><B>optical</B>
3061 <UL>
3062 <LI><B>LXe</B>
3063 <UL>
3064 <LI>Get some refractive indices from new G4OpticalMaterialParameters
3065 file.</LI>
3066 <LI>Excercise creating material property table element by element.</LI>
3067 <LI>Replaced deprecated optical commands and parameters with new
3068 ones.</LI>
3069 </UL></LI>
3070 <LI><B>OpNovice</B>
3071 <UL>
3072 <LI>Excercise creating material property table element by element.</LI>
3073 <LI>Replaced deprecated optical commands and parameters with new ones.</LI>
3074 <LI>Fixed incorrect material property name.</LI>
3075 <LI>Added option to define detector via a GDML file.</LI>
3076 <LI>Added outer world volume to avoid surfaces including world volume.</LI>
3077 Addressing problem report
3078 <A HREF="https://bugzilla-geant4.kek.jp/show_bug.cgi?id=2373">#2373</A>.</LI>
3079 <LI>DetectorConstruction: use modified interface to
3080 G4MaterialPropertiesTable with Spline flag.</LI>
3081 <LI>Code cleanup; renamed class variables to start with <TT>f</TT>.</LI>
3082 <LI>OpNoviceDetectorConstruction: added tests of user-defined material
3083 properties; add one material property using C-style arrays (as a
3084 test).</LI>
3085 </UL></LI>
3086 <LI><B>OpNovice2</B>
3087 <UL>
3088 <LI>DetectorConstruction: use modified interface to
3089 G4MaterialPropertiesTable with Spline flag.</LI>
3090 <LI>Replaced deprecated optical commands and parameters with new ones.</LI>
3091 </UL></LI>
3092 <LI><B>wls</B>
3093 <UL>
3094 <LI>WLSMaterials: use correct material property names.</LI>
3095 <LI>WLSPrimaryGeneratorAction: use G4PhysicsFreeVector instead of
3096 deprecated G4PhysicsOrderedFreeVector.</LI>
3097 <LI>Added visualisation attributes.</LI>
3098 <LI>Fixed bug preventing cladding being built.</LI>
3099 <LI>Fixed counting of detector hits.</LI>
3100 <LI>Added histograms.</LI>
3101 <LI>Use G4OpBoundaryProcess::invokeSD() rather than
3102 ProcessHits_boundary() call in SteppingAction.</LI>
3103 <LI>Remove StringToRotation; removed Sr90.mac; added electron.mac.</LI>
3104 </UL></LI>
3105 </UL></LI>
3106 <LI><B>parallel</B>
3107 <UL>
3108 <LI><B>MPI</B>
3109 <UL>
3110 <LI>Updated analysis classes for recent changes in analysis.</LI>
3111 <LI>More updates in g4mpi for changes in G4String.</LI>
3112 </UL></LI>
3113 <LI><B>ThreadsafeScorers</B>
3114 <UL>
3115 <LI>TSPhysicsList: removed obsolete header G4EmProcessOptions; removed
3116 method SetCuts() to avoid data race, use the one from the base class;
3117 removed singleton pattern from this class as not needed.</LI>
3118 </UL></LI>
3119 </UL></LI>
3120 <LI><B>parameterisations</B>
3121 <UL>
3122 <LI><B>gflash</B>
3123 <UL>
3124 <LI>clang-tidy and clang-format on code.</LI>
3125 <LI>test.mac run twice with and without gflash.</LI>
3126 </UL></LI>
3127 <LI><B>Par04</B>
3128 <UL>
3129 <LI>New example demonstrating how to use the Machine Learning (ML)
3130 inference to create energy deposits as a fast simulation model
3131 using ONNX runtime and LWTNN libraries.</LI>
3132 </UL></LI>
3133 </UL></LI>
3134 <LI><B>polarisation</B>
3135 <UL>
3136 <LI><B>Pol01</B>
3137 <UL>
3138 <LI>Cleanup of Physics List; use renamed polarized processes.</LI>
3139 </UL></LI>
3140 </UL></LI>
3141 <LI><B>radioactivedecay</B>
3142 <UL>
3143 <LI><B>Activation</B>
3144 <UL>
3145 <LI>TrackingAction: count secondary particles with meanLife > 0.
3146 Take weight into account.</LI>
3147 <LI>PhysicsList: added GammaNuclearPhysicsLEND.
3148 Use new CLHEP units for <TT>minute, hour, day, year</TT> and
3149 <TT>millielectronvolt</TT>.</LI>
3150 <LI>Updated ElectromagneticPhysics.</LI>
3151 <LI>GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
3152 G4PhotoNuclearProcess (that has been deleted) with
3153 G4HadronInelasticProcess.</LI>
3154 <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
3155 Removed SteppingVerbose class.</LI>
3156 <LI>ElectromagneticPhysics: updated EM parameters.</LI>
3157 <LI>RadioactiveDecayPhysics: new constructor, include G4Radioactivation
3158 process, inactivate atomic de-excitation.</LI>
3159 <LI>Added protection in RunAction::CountProcesses().</LI>
3160 <LI>TrackingAction, RunAction: added a comment for excited states.</LI>
3161 <LI>HadronElasticPhysicsHP: use G4GenericMessenger.</LI>
3162 <LI>RadioactiveDecayPhysics: do not change 'ThresholdOfHalfLife'.</LI>
3163 </UL></LI>
3164 <LI><B>rdecay01, 02</B>
3165 <UL>
3166 <LI>Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
3167 Removed SteppingVerbose class.</LI>
3168 <LI>Use new CLHEP units for <TT>minute, hour, day, year</TT> and
3169 <TT>millielectronvolt</TT> in PhysicsList.</LI>
3170 <LI>Added protection in RunAction::CountProcesses().</LI>
3171 </UL></LI>
3172 </UL></LI>
3173 <LI><B>runAndEvent</B>
3174 <UL>
3175 <LI><B>RE05, 06</B>
3176 <UL>
3177 <LI>Migration to the new SteppingVerbose.</LI>
3178 </UL></LI>
3179 <LI><B>RE07</B>
3180 <UL>
3181 <LI>New example demonstrating how to register specialized tracking
3182 managers for a particle or a set of particles.</LI>
3183 </UL></LI>
3184 </UL></LI>
3185 <LI><B>visualization</B>
3186 <UL>
3187 <LI><B>movies</B>
3188 <UL>
3189 <LI>New example illustrating how to make a movie with
3190 <TT>/vis/viewer/save</TT> and <TT>/vis/viewer/interpolate</TT>.
3191 It also includes the "visTutor" macros
3192 previously included in example "basic" B4.
3193 See README for further information.</LI>
3194 </UL></LI>
3195 </UL></LI>
3196 </UL>
3197 </UL>
3198
3199 <P> </P>
3200 <A NAME="10."></a>
3201 <HR>
3202
3203
3204
3205 <H2>10. Appendix</H2>
3206
3207 <A NAME="string-migration-notes">
3208 <H3>A1 - <I>Changes required for advanced use of G4String</I></H3></A>
3209 <UL>
3210 <LI>G4String now has identical constructors to <TT>std::string</TT>.
3211 Replace use of the single <TT>char</TT> argument constructor
3212 (explicitly or implicitly):
3213 <PRE>
3214 // G4String x('a');
3215 G4String x(1, 'a');
3216 </PRE></LI>
3217 <LI>G4String no longer provides call operators for element or substring
3218 access. The subscript operator or <TT>substr</TT> member functions
3219 should be used instead:
3220 <PRE>
3221 // char x = aG4String(42);
3222 char x = aG4String[42];
3223
3224 // G4String s = aG4String(3,14);
3225 G4String s = aG4String.substr(3, 14);
3226 </PRE></LI>
3227 <LI>Replace use of <TT>G4String::index</TT> with <TT>G4String::find</TT>
3228 (interface as <TT>std::string::find</TT>):
3229 <PRE>
3230 // auto i = aG4String.index("arg");
3231 auto i = aG4String.find("arg");
3232 </PRE></LI>
3233 <LI>Replace use of <TT>G4String::isNull</TT> with <TT>G4String::empty</TT>
3234 (interface as <TT>std::string::empty</TT>):
3235 <PRE>
3236 // bool c = aG4String.isNull();
3237 bool c = aG4String.empty();
3238 </PRE></LI>
3239 <LI>Replace use of <TT>G4String::first</TT> with <TT>G4String::find</TT>,
3240 <TT>G4String::last</TT> with <TT>G4String::rfind</TT>
3241 (as <TT>`std::string::find</TT>, <TT>std::string::rfind</TT> interfaces):
3242 <PRE>
3243 // auto f = aG4String.first('x');
3244 auto f = aG4String.find('x');
3245
3246 // auto l = aG4String.last('y');
3247 auto l = aG4String.rfind('y');
3248 </PRE></LI>
3249 <LI>Replace use of <TT>G4String::prepend</TT> with <TT>G4String::insert</TT>
3250 (as <TT>std::string::insert</TT> interface):
3251 <PRE>
3252 // aG4String.prepend("foo");
3253 aG4String.insert(0, "foo");
3254 </PRE></LI>
3255 <LI>G4String still allows implicit conversion to <TT>const char*></TT> but this
3256 behaviour should be regarded as deprecated. User code should prefer to use
3257 explicit conversion via the <TT>c_str</TT> member function when passing to
3258 functions expecting <TT>const char*</TT>, or to take string arguments
3259 by <TT>G4String</TT> or <TT>std::string_view</TT> as appropriate.</LI>
3260 <P></P>
3261 <LI>The following members functions are retained but marked as deprecated,
3262 and with the recommended member or free function replacements in the
3263 <TT>G4StrUtil</TT> namespace:
3264 <PRE>
3265 // G4int i = aG4String.compareTo(anotherString);
3266 G4int i = aG4String.compare(...); // replacement: std::string::compare
3267
3268 // G4int i = aG4String.compareTo(anotherString, G4String::ignoreCase);
3269 G4int i = G4StrUtil::icompare(aG4String, anotherString);
3270
3271 // aG4String.readLine(anIStream);
3272 std::getline(anIStream, aG4String);
3273
3274 // aG4String.remove(42);
3275 aG4String.erase(42); // interface as std::string::erase
3276
3277 // aG4String.contains("char or string");
3278 G4StrUtil::contains(aG4String, "char or string"); // interface as C++23 std::string::contains
3279
3280 //G4String c = aG4String.strip(...);
3281 G4String c = G4StrUtil::rstrip_copy(aG4String); // see also G4StrUtil::{rstrip,lstrip,lstrip_copy,strip,strip_copy}
3282
3283 // aG4String.toLower();
3284 G4StrUtil::to_lower(aG4String); // see also G4StrUtil::to_lower_copy
3285
3286 // aG4String.toUpper();
3287 G4StrUtil::to_upper(aG4String); // see also G4StrUtil::to_upper_copy
3288 </PRE></LI>
3289 </UL>
3290
3291 <A NAME="hadronic-migration-notes">
3292 <H3>A2 - <I>Hadronic changes required by <U>user-made</U> physics lists</I></H3></A>
3293 <UL>
3294 <LI><U>For hadronic processes</U>
3295 <UL>
3296 <LI>Replace G4XxxInelasticProcess with:
3297 <PRE>
3298 G4HadronInelasticProcess* xxxInelasticProcess = new G4HadronInelasticProcess( "xxxInelastic", G4Xxx::Definition() );
3299 </PRE>
3300 where <TT>xxx</TT> can be either:
3301 <PRE>
3302 "PionPlus", "PionMinus", "KaonPlus", "KaonMinus",
3303 "KaonZeroS", "KaonZeroL", "Proton", "AntiProton",
3304 "Neutron", "AntiNeutron", "Deuteron", "Triton", "Alpha"
3305 </PRE>
3306 for example:
3307 <PRE>
3308 G4KaonZeroLInelasticProcess* theInelasticProcess = new G4KaonZeroLInelasticProcess( "inelastic" );
3309 </PRE>
3310 has been replaced by:
3311 <PRE>
3312 G4HadronInelasticProcess* theInelasticProcess = new G4HadronInelasticProcess( "inelastic", G4KaonZeroLong::Definition() );
3313 </PRE></LI>
3314 <LI>For photon inelastic processes, use:
3315 <PRE>
3316 G4HadronInelasticProcess* photonNuclear = new G4HadronInelasticProcess( "photonNuclear", G4Gamma::Definition() );<BR>
3317 photonNuclear->AddDataSet( new G4PhotoNuclearCrossSection );
3318
3319 G4HadronicProcess* photonCapture = new G4HadronicProcess( "photonNuclear", fCapture );
3320 G4HadronicProcess* photonFission = new G4HadronicProcess( "photonFission", fFission );
3321 </PRE></LI>
3322 </UL></LI>
3323 <LI><U>For hadronic cross-sections</U>
3324 <UL>
3325 <LI>For INELASTIC, the following cross-sections should be used:
3326 <PRE>
3327 G4VCrossSectionDataSet* protonInelasticXS = new G4BGGNucleonInelasticXS( G4Proton::Definition() );
3328
3329 G4VCrossSectionDataSet* neutronInelasticXS = new G4NeutronInelasticXS;
3330 // a valid alternative could be:
3331 // G4VCrossSectionDataSet* neutronInelasticXS = new G4BGGNucleonInelasticXS( G4Neutron::Definition() );
3332
3333 G4VCrossSectionDataSet* pionPlusInelasticXS = new G4BGGPionInelasticXS( G4PionPlus::Definition() );
3334 G4VCrossSectionDataSet* pionMinusInelasticXS = new G4BGGPionInelasticXS( G4PionMinus::Definition() );
3335
3336 // For kaons, hyperons and anti-hyperons
3337 G4VCrossSectionDataSet* ggHadInelasticXS = new G4CrossSectionInelastic( new G4ComponentGGHadronNucleusXsc );
3338
3339 // For deuteron, triton, He3, alpha and generic ions
3340 G4VCrossSectionDataSet* ionInelasticXS = new G4CrossSectionInelastic( new G4ComponentGGNuclNuclXsc );
3341
3342 // For anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3 and anti_alpha
3343 G4VCrossSectionDataSet* antibaryonInelasticXS = new G4CrossSectionInelastic( new G4ComponentAntiNuclNuclearXS );
3344 </PRE></LI>
3345 <LI>For ELASTIC:
3346 <PRE>
3347 G4VCrossSectionDataSet* protonElasticXS = new G4BGGNucleonElasticXS( G4Proton::Definition() );
3348
3349 G4VCrossSectionDataSet* neutronElasticXS = new G4NeutronElasticXS;
3350 // a valid alternative could be:
3351 // G4VCrossSectionDataSet* neutronElasticXS = new G4BGGNucleonElasticXS( G4Neutron::Definition() );
3352
3353 G4VCrossSectionDataSet* pionPlusElasticXS = new G4BGGPionElasticXS( G4PionPlus::Definition() );
3354 G4VCrossSectionDataSet* pionMinusElasticXS = new G4BGGPionElasticXS( G4PionMinus::Definition() );
3355
3356 // For kaons, hyperons and anti-hyperons
3357 G4VCrossSectionDataSet* ggHadElasticXS = new G4CrossSectionElastic( new G4ComponentGGHadronNucleusXsc );
3358
3359 // For deuteron, triton, He3, alpha and generic ions
3360 G4VCrossSectionDataSet* ggIonElasticXS = new G4CrossSectionElastic( new G4ComponentGGNuclNuclXsc );
3361
3362 // For anti_proton, anti_neutron, anti_deuteron, anti_triton, anti_He3 and anti_alpha
3363 G4VCrossSectionDataSet* antibaryonElasticXS = new G4CrossSectionElastic( new G4ComponentAntiNuclNuclearXS );
3364 </PRE></LI>
3365 <LI>For (neutron) CAPTURE:
3366 <PRE>
3367 G4VCrossSectionDataSet* neutronCaptureXS = new G4NeutronCaptureXS;
3368 </PRE></LI>
3369 <LI>For FISSION, use HP. Elsewhere:
3370 <PRE>
3371 G4VCrossSectionDataSet* neutronFissionXS = new G4ZeroXS;
3372 G4VCrossSectionDataSet* photoFissionXS = new G4ZeroXS;
3373 </PRE></LI>
3374 </UL></LI>
3375 <LI><U>For stopping (at rest inelastic processes)</U>
3376 <UL>
3377 <LI>For pi-, replace G4PiMinusAbsorptionBertini with:
3378 <PRE>
3379 G4HadronStoppingProcess* piMinusAbsorption = new G4HadronicAbsorptionBertini( G4PionMinus::Definition() );
3380 </PRE></LI>
3381 <LI>For K-, replace G4KaonMinusAbsorptionBertini with:
3382 <PRE>
3383 G4HadronStoppingProcess* kMinusAbsorption = new G4HadronicAbsorptionBertini( G4KaonMinus::Definition() );
3384 </PRE></LI>
3385 <LI>For anti_proton, replace G4AntiProtonAbsorptionFritiof with:
3386 <PRE>
3387 G4HadronStoppingProcess* antiProtonAbsorption = new G4HadronicAbsorptionFritiof( G4AntiProton::Definition() );
3388 </PRE>
3389 No replacement for G4AntiNeutronAnnihilationAtRest, just remove it.</LI>
3390 <LI>For Sigma-, replace G4SigmaMinusAbsorptionBertini with:
3391 <PRE>
3392 G4HadronStoppingProcess* sigmaMinusAbsorption = new G4HadronicAbsorptionBertini( G4SigmaMinus::Definition() );
3393 </PRE></LI>
3394 <LI>For anti-Sigma+, replace G4AntiSigmaPlusAbsorptionFritiof with:
3395 <PRE>
3396 G4HadronStoppingProcess* antiSigmaPlusAbsorption = new G4HadronicAbsorptionFritiof( G4AntiSigmaPlus::Definition() );
3397 </PRE></LI>
3398 </UL></LI>
3399 </UL>
3400
3401 <HR>
3402
3403 </BODY>
3404 </HTML>