Geant4 11.0-beta-01 Release Notes --------------------------------- 25 June 2021 Migration Notes & Main New Features ----------------------------------- o Requiring C++17 as minimum standard to compile Geant4. Allowing also compilation against C++23 with CMake 3.20 and newer. o Bumped minimum CMake version to 3.12. o Updated external PTL module to version v2.0.0. o Added Boolean parameter for enabling Spline in constructor of the PhysicsVector classes. o Removed deprecated classes: G4LPhysicsFreeVector, G4PhysicsLnVector and G4PhysicsOrderedFreeVector. o New G4SteppingVerboseWithUnits class, an alternative to G4SteppingVerbose with printout of proper units. Simplified way of defining a user-specific stepping verbose, that is now common to all sequential, MT and tasking modes. o Added maps for faster search based on name in solids, regions and volumes stores. o Extended cylindrical scoring mesh to tube and tube segment. o Added new unit definitions for Time, Velocity and Momentum in G4UnitsTable. o General code cleanup in EM modules; removed obsolete model and processes, removed G4EmProcessOptions class. o Introducing quantum entanglement of e+ annihilation. Currently implemented only in G4eplusAnnihilation and G4LivermorePolarizedComptonModel. o Updated EM integral approach by introduction of a cross-section shape type including cross-section shape with 2 maxima. o Updates to G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd energy area. o Fixed model per region definition for all base processes G4VEmProcess, G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility for energy loss processes. o New class G4OpticalMaterialProperties, a store for optical material properties and allow use of predefined optical material properties. o Added new IRT-syn model for DNA. o General code clean-up in hadronic processes and models; removed obsolete and deprecated classes; removed obsolete "rpg" model. o Removed obsolete classes G4RadioactiveDecay and G4RadioactiveDecaymessenger. o Introduced a new threshold parameter in radioactive-decay for analogue mode to kill very long radioactive decays at rest of nuclides happening later than such threshold. o Updated physics lists to use a uniform approach for verbosity. o G4RunManagerFactory: set default run manager type to be Tasking. o Corrected way to count the number of events processed in a worker thread when using G4TaskRunManager. o Extended G4UIWin32 driver with new features. o New ToolsSG (TSG) visualisation package based on g4tools, providing four new (mutually exclusive) visualisation drivers: TOOLSSG_X11_GLES, TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE. o Introducing G4Mesh, a light class that encapsulates and validates visualisation of a nested parameterisation. o Removed deprecated functions in visualization. o Build option with VecGeom requires VecGeom-1.1.16 or higher. Added new example demonstrating interface with VecGeom navigator. o Requires CLHEP-2.4.4.2 for external CLHEP installation. o New data set: G4EMLOW-7.17. ---------------------------------------------------------------------------- Technical Notes --------------- o Tested platforms: + Linux, gcc-8.3.1. Tested on 64 bit architectures (Intel or AMD) with Linux CentOS8. Versions of Geant4 have also been compiled successfully on other Linux distributions, Ubuntu, Debian, Suse or other RedHat systems. + MacOS 11.4, Apple LLVM/clang-12.0.5 + Windows/10 with Visual C++ 14.28 (Visual Studio 2019) o More verified configurations: + Linux, 9.3.0/10.2.0/11.1.0, clang-9.0/10.0/11.0. + Linux, Intel-icc 20.2. + MacOS 10.15 with Apple LLVM/clang-12.0. o External dependencies + CLHEP-2.4.4.2, suggested for external installation of the CLHEP library. + VecGeom-1.1.16, for optional use of the VecGeom geometry primitives. o New data sets: + G4EMLOW-7.17. Please refer to the Geant4 User Documentation: http://cern.ch/geant4/support/user_documentation for further information about using Geant4. ---------------------------------------------------------------------------- List of features and fixes included in this Beta release since 10.7.p02: o Configuration: ------------- + CMake: o Requiring C++17 as minimum standard to compile Geant4. Allow compilation against C++23 with CMake 3.20 and newer. Check for filesystem support in native or extension (GNU/Clang) libraries. o Implemented build/test script in Python to check for cycles in the declared source module dependency graph. o Added G4tools target to CMake/GNUmake configuration following its migration from analysis to externals categories. o Check for unparsed arguments in G4DeveloperAPI functions to provide better validation against typos/etc in use. o Store PUBLIC/PRIVATE/INTERFACE module usage requirements explicitly. o Removed all references to Wt. o Removed settings of deprecated PHP_AS_HP environmental variable. o Added geant4.bat prototype. o Hint to run geant4-config on Windows. o Added preliminary support for sanitizers. Introduces new advanced option GEANT4_BUILD_SANITIZER to allow selection of one of address, thread, or undefined sanitizer. The default is no sanitization. Adds appropriate flags to CMAKE_CXX_FLAGS. o Added GEANT4_USE_PTL_LOCKS option to forward to internal PTL as PTL_USE_LOCKS. o Clarified use of Freetype for both analysis and visualization. Removed use of no longer required imported target shim for build. o Set GEANT4_BUILD_BUILTIN_BACKTRACE to ON to enable debug information on segmentation faults in testing. o Qualify geant4_add_feature descriptions with "G4_" to distinguish them from CMake property descriptions. o Added settings for enabling new TOOLSSG vis driver. Four (mutually exclusive) options: TOOLSSG_X11_GLES, TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLES. o Added FindPythia8.cmake script. o Removed obsolete -stdlib flag for AppleClang. o Updated external PTL module to version v2.0.0. o Bumped minimum CMake version to 3.12. o Migrated all CMake scripts to modular CMake API. o Updated version of data sets: G4EMLOW-7.17. Updated tag-IDs for 11.0-beta. + GNUMake: o Moved default to C++17 Standard. o Updated compiler/link flags for migration of g4tools to externals category. o Added comctl32.lib to UI32LIBS for WIN32-VC configuration. o binmake.gmk: removed include path to "rpg" hadronic model, now retired. Removed include paths to "hadronic/models/management" and "hadronic/models/util" modules, now retired. o Analysis: -------- + Moved g4tools to externals category. Moved "fonts" directory and install logic to g4tools package in externals, as prime interface to Freetype. o Digits & Hits: ------------- + Extending cylindrical scoring mesh to tube and tube segment. + Make sure probe commands are not unnecessarily broadcasted to the worker threads. + Code formatting. o Environments ------------ + G4Py: o In TestEm0, use default EM physics in place of obsolete G4EmProcessOptions. o Error Propagation: ----------------- + Code formatting. o Event: ----- + Use existing facility to find physical volume in store, rather than looping through in G4SPSPosDistribution::ConfineSourceToVolume(). + Use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector in G4AdjointPrimaryGenerator, G4SPSAngDistribution, G4SPSEneDistribution, and G4SPSRandomGenerator. o Externals: --------- + CLHEP: o Synchronised with CLHEP-2.4.4.2. o Added units: minute, hour, day, year and millielectronvolt. Added constants: Bohr_magneton and nuclear_magneton. o Fixed trivial compilation warnings on gcc-11 in Random headers. + g4tools: o Updated to g4tools 5.4.0: - Added "Windowing" code needed for G4/vis/tools_sg. - Fixed compilation warnings on gcc-11. - See History_tools for the complete list of modifications. + ptl: o Updated PTL to version v2.0.0 which replaced raw pointers to tasks with shared_ptrs for memory management improvements. o Removed PTL custom task allocator classes. o Fixed warnings about TBB task scheduler init. o Improved thread safety. o Fixed some memory issues. o Fix to TaskRunManager::Terminate() + nullptr to m_thread_pool responsible for segmentation-fault when ui/vis initialised, but not run manager. o Make PTL cmake options available in configuration, including: PTL_USE_SANITIZER and PTL_USE_LOCKS, but hidden from clients building Geant4; relevant Geant4 options forwarded to PTL: TBB, sanitizer, locks. o Use CMAKE_CXX_STANDARD in place of GEANT4_BUILD_CXXSTD in CMake configuration. Also, updated minimum CMake version requirements. o Geometry: -------- + management: o Added map for faster search based on name in G4SolidStore, G4RegionStore, G4logicalVolumeStore and G4PhysicalVolumeStore. Pointers to elements are stored in the map as buckets, grouping elements with same name. o G4UAdapter: added operator<<() to fix clash between similar methods for G4VSolid and VecGeom UnplacedVolume. + navigation: o G4Navigator: enabled use of alternative G4VoxelNavigation class. Adds call to virtual method in ComputeStep(), LocateGlobalPointAndSetup() for voxelised volumes. Controlled by ALTERNATIVE_VOXEL_NAV flag, turned on by default. Deleted experimental obsolete method RecheckDistanceToCurrentBoundary(), also removed in G4SafetyHelper and G4PathFinder. Cleaned up ComputeSafety(). o G4VoxelNavigation: simplify code of 'check' mode tests to avoid 2nd code path. Added comments about method arguments. o G4NavigationLogger: soften check of step vs distance (using tolerance). + solids/Boolean: o In G4UnionSolid and G4SubtractionSolid, revised GetCubicVolume() method to use cubic volume of constituent volume(s) and an intersection solid, for more accurate measurement. + solids/CSG: o G4Trap, G4Para and wrappers: added accessors to retrieve/calculate original values for alpha, theta, phi. + solids/specific: o Simplified implementation of CreatePolyhedron() in G4Polyhedra, G4Polycone, G4GenericPolycone and related wrappers. o Added missing accessor in G4UTet. + volumes: o G4ReflectionFactory: added Clean() method for clearing the internal maps on user request and removed problematic Reset() function. o Global: ------ + Removed deprecated classes: G4LPhysicsFreeVector, G4PhysicsLnVector and G4PhysicsOrderedFreeVector. + G4PhysicsFreeVector, G4PhysicsLogVector, G4PhysicsLinearFreeVector: in each constructor added extra Boolean parameter for enabling Spline; needed for later removal of the SetSpline() method, required for re-organisation of the code using templates. + G4PhysicsFreeVector: added to all constructors control on continuous increase energy in the energy vector. Added accessor to allow user query for use or not of Spline interpolation. + G4PhysicsVector: extended warning printout. + G4ConvergenceTester: fixed potential thread contention likely responsible for crashes in ThreadSafe-Scorers example, observed in system testing. Some code cleanup. + Updated G4SIUnits and G4PhysicalConstants to include new symbols (minute, hour, day, year and millielectronvolt) and new constants (Bohr_magneton and nuclear_magneton), based on CLHEP-2.4.4.2. + G4UnitsTable: added unit definitions for Velocity and Momentum. + New G4Filesystem header to support transparent use of C++ filesystem whether it is in std:: or std::experimental namespaces. + G4ThreadLocalSingleton: added way to explicitly call Clear() for all TLS singletons. + Reworked G4Backtrace to use fewer dynamic memory allocations when printing backtrace in order to avoid overflowing the signal stack. + Modernised CMake script. + Changed date for release 11.0-beta. o Graphics Representations: ------------------------ + Reviewed HepPolyhedronPgon, HepPolyhedronPcon classes given by rz-contour. + HepPolyhedron: added TriangulatePolygon() and RotateContourAroundZ(). Fixed calculation of number of faces in a polyhedron object in method RotateContourAroundZ(). In some cases, 'Nfaces' was computed incorrectly, resulting in more memory being allocated than required; this did not create problems for rendering, but used to generate warning messages in some cases. + Removed deprecated G4VisAttributes::Invisible. + Added G4Colour::operator<(), useful for making a set or map based on G4colour as a key. + G4VGraphicsScene: introduced new pure virtual function AddCompound(const G4Mesh&). + G4VisAttributes: improved message in SetForceNumberOfCloudPoints(). + Modernised CMake script. o Intercoms --------- + G4UImanager: set LastCommandOutputTreated=false only for master thread. Avoids inadvertent "highlighting" in G4UIQt on worker threads. + Fixed leak in G4ProfilerMessenger. + Modernised CMake script. o Interfaces ---------- + Modified G4UIExecutive::SelectSessionByFile() to ensure that in Windows the Win32 OpenGL driver is selected as the second choice by default. Based on GitHub PR#20. + Extended G4UIWin32 driver with new features, based on contribution proposed in GitHub PR#23. + G4UIQt: deal properly with creation and deletion of viewer properties. + Removed obsolete Wt code from source and use in G4UIexecutive. o Materials --------- + G4MaterialPropertiesTable: removed deprecated optical material properties. Recalculate GROUPVEL if RINDEX is modified. Addressing problem report #2313. + G4ExtDEDXTable, G4IonStoppingData: corrected initialisation of spline flag. + G4NistMaterialBuilder: removed unused argument "isotopes" from all methods where NIST materials are built. + G4NistManager: adopt modifications in method signatures of G4NistMaterialBuilder but keep own method signatures unchanged. + G4MaterialPropertiesTable: added 'createNewKey' to AddProperty(); merged .icc into .cc; removed deprecated methods; applied clang-format. + G4OpticalMaterialProperties: added missing include. + G4MaterialPropertyVector: use G4PhysicsFreeVector instead of obsolete G4PhysicsOrderedFreeVector. + New class G4OpticalMaterialProperties, a store for optical material properties. + G4MaterialPropertiesTable: new AddProperty() method to allow use of predefined optical material properties. + G4IonStoppingData, G4ICRU90StoppingData, G4ExtDEDXTable, G4VIonDEDXTable: substituted G4LPhysicsFreeVector by G4PhysicsFreeVector. + G4Material, G4Element, G4Isotope, G4IonisParamElm, G4IonisParamMat, G4NistMaterialBuilder, G4NistMessenger, G4SandiaTable: minor clean-up. + Modernised CMake script. o Particles: --------- + Fixed shadowing compilation warning in G4Triton. o Persistency: ----------- + GDML: o G4GDMLWriteMaterials: use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector. o Physics Lists: ------------- + Removed dependencies on hadronic/model/util and hadronic/model/management modules now retired. + Builders: o Replaced G4HadronCaptureProcess with G4NeutronCaptureProcess and G4HadronFissionProcess with G4NeutronFissionProcess in builders. o Replaced particle-specific hadronic inelastic processes (that have been deleted) with G4HadronInelasticProcess. o G4PrecoNeutronBuilder, G4PrecoProtonBuilder, G4INCLXXNeutronBuilder, G4QGSBinaryKaonBuilder: replaced obsoleted cross-sections (that have been deleted) with better ones. o G4BinaryDeuteronBuilder, G4BinaryTritonBuilder, G4BinaryHe3Builder, G4BinaryAlphaBuilder: removed unused header files. + Constructors: o electromagnetic: - Updated all standard EM physics lists: removed local member "verbose" and use uniform approach for verbosity via G4EmParameters; instantiate NIEL process only if parameter MaxNIELEnergy is above zero; include gamma linear polarization model to Opt0, Opt3, Opt4, SS, and Livermore physics constructors if the parameter EnablePolarisation is "true"; G4EmLivermorePolarizedPhysics fully inheriting from G4EmLivermorePhysics. - G4GammaGeneralProcess: updated interface in the Retrieve() method. - G4EmDNAPhysics: updated configuration of standard physics for gamma and positrons according to Opt3; updated particle list by addition of G4Alpha; simplified ConstructProcess() method using G4PhysicsListHelper. - Updated G4EmLowEPPhysics physics model configuration See https://arxiv.org/abs/2102.02721 for details. - G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd energy area, because cross-section is zero; in the 4th energy interval include in the vector value of 1 - p instead of p, where p is the cumulative probability of a sub-process. - G4EmDNAChemistry, _option1, _option2, _option3 added dissociation channel for electron-hole recombination. - G4EmDNAChemistry_option3: changed pre-chemical model. - DNA PhysicsLists: use SeEmModel() with correct signature. - G4OpticalPhysicsList: removed deprecated optical commands. - G4EmLivermorePolarizedPhysics: removed unused header, - G4EmLivermorePhysics: use G4LivermorePolarizedComptonModel if polarisation is enabled. - Removed obsolete G4EmLEPTSPhysics, and code cleanup in G4EmDNAPhysics and G4EmDNAPhysics_stationary. - G4EmLivermorePhysics, G4EmPenelopePhysics_option1, G4EmStandardPhysics_option3, G4EmStandardPhysics_option4, G4EmLowEPhysics, G4EmStandardPhysicsSS: instantiate G4ePairProduction process after ionisation and bremsstrahlung; does not change physics but helps to have clearer debug printouts. o gamma_lepto_nuclear: - G4EmExtraPhysics, G4BertiniElectroNuclearBuilder, G4LENDBertiniGammaElectroNuclearBuilder: replaced G4PhotoNuclearProcess (now deleted) with G4HadronInelasticProcess. o hadron_elastic: - G4HadronDElasticPhysics, G4HadronHElasticPhysics: use inheritance from G4HadronElasticPhysics; use G4HadProcesses, G4PhysListUtil and G4HadParticles; implement cross-section factor. - G4HadronHElasticPhysics: fixed problem of fully overlapping energy transition between G4HadronElastic and G4ChipsElasticModel, using now G4ChipsElasticModel only for Hydrogen element above 10 MeV. - G4ChargeExchangePhysics: set explicitly the elastic cross-sections according to the hadron type, given that the universal Gheisha elastic cross-section has been now deleted. - In all constructors, use verbosity level from G4HadronicParameters. o hadron_inelastic: - In all constructors: printouts are controlled by verbosity level of G4HadronicParameters class; 'verboseLevel' member in base class is not used; G4HadronicParameters singleton is initialized in all class constructors; if the verbosity level is defined in class constructor, it is propagated to G4HadronicParameters (user may change this level using UI command before physics is initialized); check versus nullptr is added in several places. - Removed unused header files, and replaced when needed G4HadronCaptureProcess with G4NeutronCaptureProcess. + lists: o Replaced particle-specific hadronic inelastic processes (that have been deleted) with G4HadronInelasticProcess in LBE. Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess. o In all physics-lists, protected banners by verbosity level. o G4PhysListFactory: added verbosity level to constructor and propagated to constructed lists. o Mirror changes to G4PhysListFactory constructor signature (taking a default verbosity argument) in the G4PhysListFactoryAlt constructor. o Electromagnetic Processes: ------------------------- + Adjoint: o General code cleanup: applied clang-format style guidelines; applied C++11 codewords to method declarations (virtual, override, explicit); deleted unused variables and methods; started naming class member variables with 'f'; use 'nullptr' instead of '0'; removed unused headers; use constexpr for numbers. Use 'virtual' and 'override' methods consistently; member variables start with f; shorten long names; removed unused variables; make class variables local where appropriate; order declarations of class variables; define class variables; removed unused functions; marked copy/assignment operators as 'delete'; added ProcessDescriptions; removed ChangeHistory from top of code; use CLHEP::twopi instead of hardcoded value; removed more unused headers. o G4ContinuousGainOfEnergy: use updated signature for ion ionisation. o Free resources in destructors. + DNA: o Added IRT-syn model. o Added new models: G4DNADiracRMatrixExcitationModel, G4DNAQuinnPlasmonExcitationModel, G4DNARelativisticIonisationModel and G4DNAPlasmonExcitation. o Modified G4DNAELSEPAElasticModel for gold material. o G4DNAElectronHoleRecombination: dissociation channel of electron-hole recombination moved to G4EmDNAChemistry, _option1, _option2, _option3. o G4DNAWaterDissociationDisplacer: added the fragment displacement for new dissociation channel. o Fixed dependency on g4tools, now moved to externals module. o Updated PrintGeneratorInformation() method signature in G4DNABornAngle and G4DNARuddAngle. + High Energy: o G4eeToHadrons: updated integral type. o Code clenup: clean-up of interfaces; removed unused headers; improved initialisation. o G4hBremsstrahlungModel: added header. o G4hhIonisation: removed G4BohrFuluctuations. + Low Energy: o G4LivermorePolarizedComptonModel: added quantum entanglement of e+ annihilation. If the photons have been "tagged" as "quantum-entangled", for example by G4eplusAnnihilation for annihilation into 2 photons, they are "analysed" if and only if both photons suffer Compton scattering. Theoretical predictions from Pryce and Ward, Nature N.4065 (1947) p.435, and Snyder et al, Physical Review 73 (1948) p.440. Experimental validation in "Photon quantum entanglement in the MeV regime and its application in PET imaging", D. Watts, J. Allison et al., Nature Communications (2021)12:2646, https://doi.org/10.1038/s41467-021-22907-5. Added data member 'fEntanglementModelIndex'. The implementation of entanglement is described in extensive comments in G4LivermorePolarizedComptonModel source. o Migrate the Spline treatment for all physics vectors. o General code cleanup: use G4 types; cleanup of headers and Penelope models. o Convert G4LPhysicsFreeVector into G4PhysicsFreeVector. o Removed obsolete unused classes G4BremsstrahlungCrossSectionHandler, G4BremsstrahlungParameters, G4eBremsstrahlungSpectrum, G4hSRIM2000p, G4PhotoElectricAngularGeneratorSimple, G4MicroElecInelastic_new, G4LivermorePolarizedPhotoElectricModel and G4LivermorePolarizedPhotoElectricGDModel. o G4MicroElecLOPhononModel: removed debug printout; rename member of class. o Improved management of array in G4PenelopeGammaConversionModel. o Replaced std::map with static arrays in the G4Penelope models for performance improvements o Removed obsolete PrintInfo() methods and self defined process SubType. o G4IonParametrisedLossModel: use updated signature for ion ionisation. o Updated PrintGeneratorInformation() method signature for few angular generators. + Muons: o General code clean-up: use C++11 keywords, improved comments, format files. o G4EnergyLossForExtrapolator, G4ErrorEnergyLoss, G4TablesForExtrapolator: provide thread-safe initialisation of internal tables; guarantee initialisation only once; size of tables depend only on number of materials. o G4MuIonisation: removed obsolete G4BohrFluctuations header. o G4MuPairProduction, G4MuBremsstrahlung, G4MuBremsstrahlungModel: improved initialisation. o Updated PrintGeneratorInformation() method signature in G4ModifiedMephi. + Polarisation: o General code cleanup: name classes in logical manner; improved comments; added ProcessDescription; ordered #includes and removed unused; disabled copy and assignment operators with 'delete'; increased C++11 keyword usage, especially override, explicit; renamed (most) class variables to start with 'f'; make SCRN arrays the correct size; use constexpr for numbers; applied clang-format style; use G4ExceptionDescription; avoid implicit conversions between G4StokesVector and G4ThreeVector. o G4PolarizedIonisationBhabhaXS: removed incorrect G4Exception. o G4PolarizedAnnihilation, G4ePolarizedIonisation: improved initialisation of assymetry tables. o G4PolarizedAnnihilation, G4PolarizedCompton: updated use of the spline flag. + Standard: o G4eplusAnnihilation: introducing Quantum Entanglement. This is activated by UI command "/process/em/QuantumEntanglement". For e+e- -> gamma gamma, the gammas are "tagged" here and must be "analysed" in a Compton scattering process - see, for example, G4LivermorePolarizedComptonModel. Otherwise entanglement has no effect even if activated. Added data member "fEntanglementModelIndex". Instantiate clipboard only if Quantum Entanglement is requested. o G4PAIModelData, G4eplusTo2GammaOKVIModel: corrected initialisation of physics vectors. o G4LindhardSorensenData: updated definition of spline flag. o G4CoulombScattering, G4eBremsstrahlung, G4eplusAnnihilation: updated set of flags for spline and the integral approach. o G4BetheBlochModel: minor cleanup; more const variables. o Removed obsolete classes G4BohrFluctuations and G4HeatedKleinNishinaCompton. o G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel, G4ICRU73QOModel, G4AtimaIonIonisationModel: changed interface to ion ionisation corrections. o Code clean-up of ionisation, energy loss processes and models. o Clean-up of gamma processes. + Utils: o G4VEmProcess, G4VEnergyLossProcess, G4EmTableType, G4EmBiasingManager, G4LossTableManager: updated integral approach by introduction of a cross-section shape type and different actions depending on the type; added cache for cross-section and range; removed unused methods; attempt to reduce number of "if" operators at run time; integral and spline flags are set to each process individually and not via G4EmParameters class. o G4VMultipleScattering: fixed problem observed by CMS for specific physics list. o G4EmCorrections, G4VEmProcess: updated use of the spline flag. o G4EmCorrections, G4LossTableBuilder: substitute use of deprecated G4LPhysicsFreeVector by G4PhysicsFreeVector. o G4VEmProcess, G4VEnergyLossProcess, G4EmDataHandler: updated method RetrievePhysicsTable(). o G4TableType: added extra enumerator for type of cross-section shape. o G4OpticalParameters, G4OpticalParametersMessenger: removed deprecated optical commands and parameters. Replaced CreateDir() with new G4UIdirectory(). o G4VMultipleScattering: removed obsolete unused methods; reduced number of operations at run time, use 'isIon' flag for scaling of energy limits for all particles with mass >1 GeV. o G4VEmModel removed "virtual" keyword for ComputeDEDX() method. o General code cleanup; removed obsolete methods and members; reorganized class members. o G4VEmAngularDistribution: added virtual method PrintGeneratorInformation(). o Fixed model per region definition for all base processes G4VEmProcess, G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility for energy loss processes; clean-up of parameters classes. o G4VEmModel, G4VEnergyLossProcess, G4EmCalculator: optimised signature of the CorrectionsAlongStep() method; use more constant variables; minor code optimisation. o G4VEmProcess, G4VEnergyLossProcess: fixed computation of cross-section and range if base material approach is used. o G4LossTableBuilder: fixed debug printout. o G4VMscModel: improved printout. o Code clean-up, including G4VEnergyLossProcess, G4LossTableManager and messengers for EM parameters. o Removed obsolete G4EmProcessOptions class. + Xrays: o General code cleanup: removed commented out code; added ProcessDescription() and DumpInfo(); organized order of headers, removed and added as needed; use constexpr for numbers; replaced G4PhysicsOrderedFreeVector with G4PhysicsFreeVector. o G4Scintillation: removed deprecated optical commands. o Generic Processes: ----------------- + Cuts: o G4PhysicsTableHelper: updated interface to Retrieve() method. + Management: o Introducing classes for implementation of quantum entanglement: G4EntanglementAuxInfo, G4VEntanglementClipBoard and G4eplusAnnihilationEntanglementClipBoard. Currently, entanglement is implemented only in G4eplusAnnihilation and G4LivermorePolarizedComptonModel. + Optical: o G4OpBoundaryProcess: fixed initialisation of some local variables. Addressing problem report #2364. o G4OpRayleigh, G4OpWLS, G4OpWLS2: use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector. + Transportation: o Enable setting of smooth curved trajectories to particle-change in G4CoupledTransportation::AlongStepDoIt(), which was commented out by mistake. Based on discussion in Geant4 Forum thread #4271. o Hadronic Processes: ------------------ + Removed deprecated 'rpg' model. + Merged 'models/management' module in 'management'. + Merged 'models/util' module in 'util'. + cross_sections o G4MuNeutrinoNucleusTotXsc: new arrays for XS_eq and XS_in, now XS_tot is a sum of XS_qe and XS_in with A, Z and A-Z factors. o G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS, G4ParticleInelasticXS, GammaNuclearXS : in the method BuildPhysicsTable(), replaced loop over material-cut-couple with a direct loop over all elements; partially move initialisation of local variables to headers. o G4NeutronInelasticXS: in the method BuildPhysicsTable(), replaced loop over material-cut-couple with a direct loop over materials used in geometry. o G4MuNeutrinoNucleusTotXsc: access and calculation of fQEratio(Z,A) = XS_qe/XS_tot. o Removed following obsolete classes: G4IonsKoxCrossSection, G4IonsSihverCrossSection, G4IonsShenCrossSection, G4TripathiCrossSection, G4TripathiLightCrossSection, G4IonProtonCrossSection, G4GeneralSpaceNNCrossSection, G4ProtonInelasticCrossSection G4NeutronInelasticCrossSection, G4PiNuclearCrossSection, G4CrossSectionPairGG, G4FastPathHadronicCrossSection, G4HadronCaptureDataSet, G4HadronFissionDataSet, G4HadronElasticDataSet, G4HadronInelasticDataSet, G4HadronCrossSections, G4IonsShenCrossSection, G4TripathiCrossSection, G4TripathiLightCrossSection. o G4HadronXSDataTable, G4ComponentSAIDTotalXS: updated creation and handling of G4PhysicsVector. o G4UPiNuclearCrossSection, G4ComponentSAIDTotalXS: substituted use of deprecated G4LPhysicsFreeVector by G4PhysicsFreeVector. o G4UPiNuclearCrossSection: disabled Spline interpolation. + management o G4HadronicProcess: made public the method GetHadronicInteraction(). This can be useful for users to access at run-time some information available from a hadronic final-state model. o G4HadronInelasticProcess: added a new method to return the particle definition (useful in practice to distinguish between baryons and antibaryons, or between hadrons and ions). o G4HadronInelasticProcess: removed old and unused header file corresponding to the Gheisha inelastic cross-section (that has been deleted). o Moved G4HadronInelasticProcess class to hadronic/mangement module. o Fixed TLS usage in G4HadronicProcessStore. o Fixed loops in G4HadronicProcessStore::Clean(). o G4HadronicEPTestMessenger: removed deprecated commands. o Removed unused class G4VCrossSectionBase. + models/cascade o Fixed TLS usage in G4CascadeChannelTables and G4CascadeParameters. + models/coherent_elastic o G4ChargeExchangeProcess: replaced Gheisha elastic cross-section (that has been deleted) with G4ComponentGGHadronNucleusXsc. o G4LEHadronProtonElastic, G4ChargeExchangeProcess: removed unused headers. + models/fission o G4LFission: removed unused headers. + models/im_r_matrix o G4XnpElasticLowE, G4XNNElasticLowE, G4XnpTotalLowE: substituted use of deprecated G4PhysicsLnVector with G4PhysicsLogVector; no functional changes. + models/inclxx o Updated comment in G4INCLXXInterface header. + models/lepto_nuclear o G4NeutrinoNucleusModel: calculation of fQEratioA(Z,A,Enu) depending of QE ratios for nucleons. Added accessors for XS_qe/XS_tot(A), fQEratioA class member. o Bug fixed in G4NeutrinoNucleusModel, updated calls for QE ratio of muon/electron (anti-)neutrino. + models/particle_hp o G4ParticleHPElementData, G4ParticleHPBGGNucleonInelasticXS: removed old and unused header files corresponding to Gheisha cross-sections (that have been deleted). Code cleanup. o G4ParticleHPManager: removed deprecated environmental variables. o G4ParticleHPData, G4ParticleHPJENDLHEData: replaced use of deprecated G4LPhysicsFreeVector with G4PhysicsFreeVector. o Updated build scripts according to new dependencies. Clean-up of old directories no longer present. + models/qmd o G4QMDReaction: replaced G4IonsShenCrossSection (that has been deleted) with G4ComponentGGNuclNuclXsc. Replaced GetIsoCrossSection() with GetElementCrossSection(). + models/radioactive_decay o G4RadioactiveDecayBase, G4RadioactiveDecayBaseMessenger: introduced a new parameter for analogue mode to kill very long radioactive decays at rest of nuclides happening later than this threshold parameter. Its default value (10^27 ns) corresponds to more than twice the age of the universe. The value of the threshold can be changed via a new UI command, e.g. to set it to 1000 years: "/process/had/rdm/thresholdForVeryLongDecayTime 3.1536e+10 second" . This kind of cut has been introduced in order to avoid to account energy depositions happening after many billions of years in ordinary materials used in calorimetry, in particular Tungsten and Lead - via their natural unstable, but very long lived, isotopes, such as W183, W180 and Pb204. Note that the cut is not on the average, mean lifetime, but on the actual sampled global decay time. o Use existing facility to find logical volume in store, rather than looping through in G4RadioactiveDecayBase::Select/DeselectAVolume(). o G4RadioactiveDecayBaseMessenger, G4RadioactivationMessenger: removed deprecated commands. o Remove obsolete classes G4RadioactiveDecay and G4RadioactiveDecaymessenger. o Updated build scripts and header includes. + models/theo_high_energy o G4TheoFSGenerator: added accessors for the corresponding modifier methods already existing. This can be useful for users to access at run-time some information available from a hadronic final-state model. + processes o Added G4HadronInelasticProcess class from hadronic/management module. o Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess, as it is applied only for neutron projectile. o Renamed G4HadronFissionProcess as G4NeutronFissionProcess, as it is applied only for neutron projectile. o Removed use of deleted header file G4HadronicDeprecate. o G4HadronCaptureProcess: removed old and unused header file corresponding to the Gheisha capture cross-section (that has been deleted). o G4HadronFissionProcess: replaced Gheisha fission cross-section (that has been deleted) with G4ZeroXS (which is a zero cross-section everywhere). o G4HadronElasticProcess, G4NeutrinoElectronProcess, G4ElNeutrinoNucleusProcess, G4MuNeutrinoNucleusProcess: removed old and unused header file corresponding to the Gheisha elastic cross-section (that has been deleted). o Removed the following deprecated inelastic processes: G4AlphaInelasticProcess, G4AntiAlphaInelasticProcess G4AntiDeuteronInelasticProcess, G4DeuteronInelasticProcess, G4AntiHe3InelasticProcess, G4He3InelasticProcess, G4AntiLambdaInelasticProcess, G4LambdaInelasticProcess, G4AntiNeutronInelasticProcess, G4NeutronInelasticProcess, G4AntiOmegaMinusInelasticProcess, G4OmegaMinusInelasticProcess, G4AntiProtonInelasticProcess, G4ProtonInelasticProcess, G4AntiSigmaMinusInelasticProcess, G4SigmaMinusInelasticProcess, G4AntiSigmaPlusInelasticProcess, G4SigmaPlusInelasticProcess, G4AntiTritonInelasticProcess, G4TritonInelasticProcess, G4AntiXiMinusInelasticProcess, G4XiMinusInelasticProcess, G4AntiXiZeroInelasticProcess, G4XiZeroInelasticProcess, G4IonInelasticProcess, G4KaonMinusInelasticProcess, G4KaonPlusInelasticProcess, G4KaonZeroLInelasticProcess, G4KaonZeroSInelasticProcess, G4PionMinusInelasticProcess, G4PionPlusInelasticProcess, G4PhotoCaptureProcess, G4PhotoFissionProcess, G4PhotoNuclearProcess. + stopping o Removed obsolete classes: G4AntiNeutronAnnihilationAtRest, G4AntiSigmaPlusAbsorptionFritiof, G4SigmaMinusAbsorptionBertini, G4AntiProtonAbsorptionFritiof, G4KaonMinusAbsorptionBertini, G4PiMinusAbsorptionBertini. + util o Removed unused classes: G4LightMedia, G4IsoResult, G4HadronicDeprecate, G4GHEKinematicsVector, G4HadReentrentException, G4HadSignalHandler, DumpFrame. o Run --- + Optimised access to volumes and regions stores. + Minor C++11 review in use of iterators, initialisers, etc... + Removed obsolete ResetCuts() method in G4VUserPhysicsList. + Added new G4DNAStaticMoleculeReactionProcess in PhysicsListHelper for DNA processes. + Removed call to physicsList->TerminateWorker() in G4WorkerRunManager as this appears to cause errors at termination. + G4VPhysicsConstructor: fixed initialisation of hadronic parameters avoiding uncontrolled override of verbosityLevel. + General code cleanup and formatting. o Tasking ------- + Updated to PTL v2.0.0 with shared_ptr usage. Included some minor API changes to direct async usage. + Fixes to TBB task-group usage. + Fix for G4FORCENUMBEROFTHREADS flag lookup. + G4RunManagerFactory: set default run manager type to be Tasking. + G4TaskRunManager: check for valid threadPool pointer in method RequestWorkersProcessCommandsStack() to fix occasional segmentation fault at exit. o Track & Tracking ---------------- + Correction to G4Track::operator=() to copy also touchable-handles. This fixes a crash originated when running importance sampling in the G4EventManager when the track got assigned the origin touchable handler from its own touchable handle; the touchable handler was sometimes not set. + Adjusted printout format in DumpInfo() for G4VParticleChange and G4ParticleChange. + Introducing G4SteppingVerboseWithUnits, an alternative to G4SteppingVerbose with printout of proper units and extended features. Added explicit virtual keyword for virtual methods and destructor in G4SteppingVerbose. + Export protected static symbols in G4VSteppingVerbose for DLL builds on Windows. + G4SteppingVerbose, G4SteppingManager: added a switch to instantiate G4SteppingVerboseWithUnits. + Simplified way of defining a user-specific stepping verbose, that is now common to all sequential, MT and tasking modes. + Avoid unnecessary indirections when checking for regional stepping action by reusing the value of current volume in stepping manager. + Use existing facility to find logical volume in store, rather than looping through in G4AdjointCrossSurfChecker. o Visualization: ------------- + Removed unused XXX module. + management: o Introducing "Special Mesh Rendering", with new commands: /vis/viewer/set/specialMeshRendering /vis/viewer/set/specialMeshVolumes Only available with OpenGL drivers at present. o Implemented a default AddCompound(const G4Mesh&) method: just draws the "container" volume and prints a G4Exception with guidance. o Added new data members to view parameters. o Exploit C++17 to parse saved files in /vis/viewer/interpolate, to use . o Introducing /vis/scene/add/localAxes and /vis/touchable/localAxes commands. o Removed deprecated G4VisManager::SetUserAction(). Use RegisterRunDurationUserVisAction or similar instead. These functions represent quite an advanced use of visualisation and are rarely used. o "/vis/set/extentForField", "/vis/scene/add/electricField" and magneticField: improved guidance to take note of change to G4VFieldModel, namely that the number of data points is now calculated on the basis of the extent, which can be set as above. o Interrupt macro (vis.mac) if graphics system invalid/unavailable. Issues "Batch is interrupted" and avoids long litany of further errors. o /vis/scene/add/volume (and /vis/drawVolume): exploit G4PhysicalVolumesSearchScene to streamline geometry tree searches. Avoid calculating extent of a temporary physical volume when not necessary. The above does introduce a change of behaviour for the case that a user names the volume(s) requested, e.g., "/vis/drawVolume Shape1". The user will not normally see any difference - but it does avoid extravagant computation in some circumstances. o G4VisCommandsSet, G4VisCommandsTouchable and G4VisCommandsViewer: added comment of explanation where using G4PhysicalVolumesSearchScene. o Use existing facility to find logical volume in store, rather than looping through in G4VisCommandSceneAddLogicalVolume::SetNewValue(). o G4VisManager: fixed cout destination for UI manager during deletion. o G4VisExecutive: removed deprecated Wt driver. + modeling: o Introducing G4Mesh, a light class that encapsulates and validates a nested parameterisation, called a "mesh". If a valid mesh cannot be created out of a G4VPhysicalVolume, it will have a type "invalid". The overhead of an invalid attempt is expected to be small, all the same it should only be invoked if the user specifies mesh rendering. o G4ModelingParameters: added new data members and access functions. o G4PhysicalVolumeModel: added code for special mesh rendering, under control of user flag. If flag is set by the above commands, and if a volume is a "mesh" (a container for a nested parameterisation), invoke new method AddCompound(const G4Mesh&). o G4PhysicalVolumeModel: moved fFullPVPath.push_back earlier, addressing a bug in visualisation of touchables. o Improved G4VModel; make SetTransform() virtual. o G4ArrowModel, G4AxesModel and G4TextModel: implement SetTransform(). o Take care to apply to original model. For example, if SetTransform() is called more than once it must apply to the original. o G4PhysicalVolumeModel: for the resultant of clipping, set the visualisation attributes of the original. o G4VFieldModel: Change concept of choice of data points: this model simply checked that a data point was within the extent. Now it uses the extent to determine the datapoint spacing. Note: if 'fExtentForField' is null, the used extent is that of the current scene; otherwise it uses that supplied by the user. o G4PhysicalVolumesSearchScene: allow user to limit the depth of descent during a geometry tree search. o G4PhysicalVolumeModel: if opacity (alpha) == 0 (completely transparent), treat same as pVisAttribs->IsVisible(). G4PhysicalVolumeModel: simplified validation. o Added G4Exception in default implementation of G4PseudoScene::ProcessVolume(). + externals/gl2ps: o allow use of non-APPLE OpenGL on APPLE. To use this, build with macro GL2PS_USE_GL_GL_H. + OpenGL: o Implemented WindowProc() function in G4OpenGLWin32Viewer for the Win32 OpenGL driver (function that was commented out). It is now possible to change the Zoom and the orientation using the mouse (like in the Qt driver). Based on contribution in GitHub PR#20. o Implemented AddCompound(const G4Mesh&) method: turns nested parameterisations into polymarkers of dots - much improved speed. o Enable extended WIN32 window in G4OpenGLWin32Viewer. Based on contribution in GitHub PR#23. o G4OpenGLQtViewer::addNonPVSceneTreeElement(): special case for markers, use Info() if non-empty name appearing in Qt's scene tree. This allows the user to design markers, e.g., a list of points, and give them a name that relates to the providence of the points, e.g., a particular material or geometry component. o Removed deprecated Wt driver. o G4OpenGLStoredQtViewer: moved fViewId<0 check to top of constructor to pick up errors in base class construction. o Removed deprecated "/vis/ogl/set/" commands. o All commands connected with a time window. Use equivalent "/vis/viewer/set/timeWindow" commands. o "/vis/ogl/set/eventsDrawInterval " is replaced by "/vis/ogl/flushAt NthPrimitive ". o G4OpenGLWin32Viewer: fixed occasional crash with G4UIWin32 when creating viewer from UI command: avoid indirect call to DrawView() while still within CreateMainWindow(). o Comment out makeCurrent() in G4OpenGLImmediate/StoredQtViewer to prevent red-button crash. + OpenInventor: o G4OpenInventorQtExaminerViewer: for tabbed viewer in UIQt, added a Detach button to move the viewer to its own dedicated and resizable window on the desktop. Added event handler for mouse wheel to fix the non-intuitive behavior. Mouse-wheel-forward now zooms/dollys in. Added viewer button to enable the "axis cross" (3d axes) feedback mechanism. o G4OpenInventorViewer: upgraded the group node sensor to process camera movements, thus eliminating the need for the camera sensor. The node sensor receives all camera notifications and is immune to changes in the camera type. o Force kernel visit if special mesh rendering parameters change. o Code cleanup of OpenInventorQt classes. + Qt3D o Improve overall protection of debug output with #ifdef G4QT3DDEBUG. Moved debug code to G4Qt3DUtils header. o Force kernel visit if special mesh rendering parameters change. o Include some trial code (commented out) for text output. + ToolsGS: o Introducing ToolsSG (TSG) drivers based on externals/g4tools. o Providing four new (mutually exclusive) vis drivers: TOOLSSG_X11_GLES, TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE. o Data Sets: --------- + G4EMLOW-7.17: o Removed tabs in option4 cross-section files. o Added new cross sections for electron transportation in gold within Geant4-DNA. o Added directories Elastic/ Inelastic/ and Structure/ for microelec models. o Fixed problem in file sigmadiff_cumulated_ionisation_e_RBEBV_Z79.dat. o Examples: -------- + Updated reference outputs, macros, READMEs and scripts. + Replaced deprecated G4VisAttributes::Invisible by G4VisAttributes::GetInvisible(). + Bump required CMake version range to 3.12...3.20. + advanced/amsEcal o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits. + advanced/brachytherapy o Code cleanup: use C++11 keywords and patterns. o Removed BrachyMaterial class; materials implemented now using NIST material manager. o Removed SetCuts() from the local PhysicsList. + advanced/composite_calorimeter o Migrated to multi-threading, using G4RunManagerFactory. o Introduced the action initializer. o Split the definition of the sensitive part of the detector from the detector construction itself. A new method, sensitiveHandling(), has been introduced in the base class CCalG4Able. o Made the following three classes thread-local singletons: CCalSDList, CCalSensAssign and CCalSensitiveDetectors. o Multi-threaded use of the G4AnalysisManager in the run action with the merging of histograms and ntuple of all working threads at the end of the run. + advanced/gammaray_telescope o GammaRayTelHadronPhysics : replaced G4HadronCaptureProcess with G4NeutronCaptureProcess, and G4HadronFissionProcess with G4NeutronFissionProcess. Replaced stopping processes that have been deleted. Replaced old pion inelastic cross-sections (that have been deleted) with G4BGGPionInelasticXS. o GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced G4PhotoNuclearProcess (that has been deleted) with G4HadronInelasticProcess. o Removed dependency on G4EmProcessOptions. o Removed SetCuts() from the local PhysicsList. + advanced/gorad o Fixed potential shadowing compilation warnings in GRInitialization. + advanced/hadrontherapy o Modified HadrontherapyLet for file generation. o Removed dependency on G4EmProcessOptions. o Geometry modification in CarbonBeamLine. o Removed unncessary G4AutoDelete of StepProcessMax in physics list. o Minor changes in macro files. + advanced/HGCal_testbeam o SiliconPixelHit, SiPMHit: fixed problem in handling of NIEL energy deposition. o CMSHadronPhysicsFTFP_BERT: added class from CMS. o Removed obsolete class CMSEmStandardPhysicsHcal. o FTFPCMS_BERT_EMM: use correct combination of physics constructors. o Removed use of obsolete RanecuEngine. Updated CMS EM physics. + advanced/iort_therapy o Removed dependency on G4EmProcessOptions. o Removed SetCuts() from the local PhysicsList. o Set cuts per region in ConstructProcess(). RegionStore is not available when accessed from the constructor of the Physics List. + advanced/ICRP110_HumanPhantoms o Introduced ICRP110PhantomVisAction. Updated vis.mac which shows how to activate it. + advanced/microbeam o Added initialisation of 'fDose3DDose' and 'fMapVoxels' in the constructor of the RunAction class. o Use explicit constructors and "override" instead of "virtual" in derived classes. Use G4 types in DetectorConstruction. o In main() do not initialize run and number of threads, let these be done in macro microbeam.mac. o DetectorConstruction: use CLHEP::twopi. Avoid having 'fField' pointer as class member, use G4AutoDelete registration instead. o CellParameterisation: initilize all data members. + advanced/microelectronics o Updated PhysicsList to new EM settings. + advanced/STCyclotron o STCyclotronSensitiveTarget: remove deprecated include. o Use new CLHEP units for minute, hour, day, year in STCyclotronPhysicsList. + advanced/underground_physics o In DMXParticleSource::ConfineSourceToVolume(), use existing facility to faster find physical volme in store, rather than looping through. Some code cleanup. o DMXPhysicsList: replaced G4HadronCaptureProcess with G4NeutronCaptureProcess. Replaced stopping processes that have been deleted. Removed header files of old and unused pion inelastic cross-sections (that have been deleted). Replaced particle-specific inelastic processes (that have been deleted) with G4HadronInelasticProcess. o Replaced deprecated optical commands & parameters with new ones. + advanced/xray_fluorescence o Removed dependency on G4EmProcessOptions. o Removed SetCuts() from the local PhysicsList. + basic/B1 + basic/B2 + basic/B3 o Migrated to use G4SteppingVerboseWithUnits. o Use nullptr instead of 0. o Cleaned trailing whitespaces from all files. + basic/B4 o Removed macros/visTutor. A movies tutorial is now in extended example visualization/movies. Remove visTutor menu in all gui.mac files. o Migrated to use G4SteppingVerboseWithUnits. o Use nullptr instead of 0. o Cleaned trailing whitespaces from all files. + basic/B5 o Migrated to use G4SteppingVerboseWithUnits. o Use nullptr instead of 0. o Cleaned trailing whitespaces from all files. + extended/biasing/B03 o B03PhysicsList: replaced G4HadronCaptureProcess with G4NeutronCaptureProcess, and G4HadronFissionProcess with G4NeutronFissionProcess. Replaced old ion cross-sections (that have been deleted) with better ones. Use G4HadronInelasticProcess for inelastic processes (the particle-specific inelastic processes have been deleted). + extended/electromagnetic/TestEm0 o Updated PhysListEmStandard. o DetectorConstruction: print only used material. + extended/electromagnetic/TestEm1 o Migrated main() to use G4RunManagerFactory and G4SteppingVerboseWithUnits. o Updated PhysListEmStandard. o DetectorConstruction: do not print materials table. o StepMax: code formatting. o Added macro stepMax.mac. + extended/electromagnetic/TestEm2 o Migrated to use G4SteppingVerboseWithUnits. o Removed obsolete PhysList5DEmStandard. 5D model is a part of Opt4 and other physics configurations. o Updated PhysListEmStandard. o DetectorConstruction: do not print materials table. o StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger: revert, to make command '/testem/stepMax' working in interactive mode. o SteppingVerbose: set precision via data member; modified process name. o Use G4RunManagerFactory in main(). o Added macro stepMax.mac. + extended/electromagnetic/TestEm3 o Updated PhysListEmStandard. o StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger: revert, to make command '/testem/stepMax' working in interactive mode. o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits. o Added macro stepMax.mac. + extended/electromagnetic/TestEm4 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits. + extended/electromagnetic/TestEm5 o Updated PhysListEmStandard. o Migrated to G4SteppingVerboseWithUnits. o TrackingAction: fixed bug for filling histos 6 and 7. Fixed bug for histo of vertex position. o StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger: revert, to make command '/testem/stepMax' working in interactive mode. o Use G4RunManagerFactory in main(). o Removed obsolete PhysListEm5DPhysics and PhysListEm19DPhysics, as these models are now part of regular physics constructors. o Added macros stepMax.mac and subcut.mac. + extended/electromagnetic/TestEm6 o Migrated to G4SteppingVerboseWithUnits. + extended/electromagnetic/TestEm7 o Migrated to G4SteppingVerboseWithUnits. o Removed use of obsolete RanecuEngine. Updated PhysListEmPhysicsNR. + extended/electromagnetic/TestEm9 o Replaced local Physics List by clone of the default EM standard; recover analysis of process calls for the case of gamma general process; improved macro files. Removed unused header. + extended/electromagnetic/TestEm11 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits. o Updated PhysListEmStandard. o DetectorConstruction: print only used material. o RunAction: dump G4EmParameters. + extended/electromagnetic/TestEm12 + extended/electromagnetic/TestEm13 + extended/electromagnetic/TestEm14 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits. o Updated PhysListEmStandard. + extended/electromagnetic/TestEm15 o Migrated to G4SteppingVerboseWithUnits. o PhysicsList: removed PhysList5DStandard, as 5D model is now part of Opt4 EM physics in standard constructors. + extended/electromagnetic/TestEm16 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits. + extended/electromagnetic/TestEm17 + extended/electromagnetic/TestEm18 o Migrated to G4SteppingVerboseWithUnits. + extended/eventgenerator/particleGun o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits. Removed SteppingVerbose class. + extended/eventgenerator/pythia/py8decayer o New example demonstrating how to outfit Pythia8-based decay features to those resonances in Geant4 where decay tables are not implemented by default. In addition, it shows how to replace existing Geant4 decay tables to such resonances as tau+/- or B+/- with the Pythia8-based ones. + extended/eventgenerator/userPrimaryGenerator o Migrated to use G4SteppingVerboseWithUnits. + extended/exoticphysics/channeling o Removed local option4 physics configuration. + extended/geometry/transforms o Migrated to use G4SteppingVerboseWithUnits. o Added cleaning of the reflection factory. + extended/geometry/VecGeomNavigation o New example demonstrating integration of VecGeom navigation, based on the prototype package G4VecGeomNav, being integrated in the example at build time. + extended/hadronic/FissionFragment o Fixed CMake build script to define target properly. + extended/hadronic/Hadr01 o PhysicsList: removed unused header file. + extended/hadronic/Hadr02 o CRMCNeutronBuilder, HIJINGNeutronBuilder, UrQMDNeutronBuilder: replaced G4HadronCaptureProcess with G4NeutronCaptureProcess, and G4HadronFissionProcess with G4NeutronFissionProcess. o IonUrQMDPhysics: replaced old ion cross-sections (that have been deleted) with G4ComponentGGNuclNuclXsc. o Replaced particle-specific inelastic processes (that have been deleted) with G4HadronInelasticProcess. + extended/hadronic/Hadr03 o PhysicsList: added GammaNuclearPhysicsLEND. o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced G4PhotoNuclearProcess (that has been deleted) with G4HadronInelasticProcess. o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits. Removed SteppingVerbose class. + extended/hadronic/Hadr04 o NeutronHPphysics: replaced G4HadronCaptureProcess with G4NeutronCaptureProcess, and G4HadronFissionProcess with G4NeutronFissionProcess. Replaced G4NeutronInelasticProcess (that has been deleted) with G4HadronInelasticProcess. o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits. Removed SteppingVerbose class. + extended/hadronic/Hadr06 o TrackingAction: count secondary particles with meanLife > 0. Print meanLife. Added TrackingMessenger with 2 commands o PhysicsList: added GammaNuclearPhysicsLEND. Use new CLHEP units for minute, hour, day, year and millielectronvolt. o Updated ElectromagneticPhysics. o Suppressed command "/process/list" in several macros. o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced G4PhotoNuclearProcess (that has been deleted) with G4HadronInelasticProcess. o DetectorConstruction: updated 'fWorldSize' for SetRadius(). o Migrated main() to G4RunManagerFactory and G4SteppingVerboseWithUnits. o Enable ParticleHP settings in main(). o Stepping verbose initialisation. + extended/hadronic/Hadr07 o TrackingAction: count secondary particles with meanLife > 0. Print meanLife. o PhysicsList: added GammaNuclearPhysicsLEND. Use new CLHEP units for minute, hour, day, year and millielectronvolt. o Updated ElectromagneticPhysics. o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced G4PhotoNuclearProcess (that has been deleted) with G4HadronInelasticProcess. o Migrated main() to G4RunManagerFactory and G4SteppingVerboseWithUnits. Enable ParticleHP settings in main(). + extended/hadronic/Hadr08 o BiasingOperation: replaced Gheisha inelastic cross-section (that has been deleted) with better cross-sections. Replaced particle-specific inelastic processes (that have been deleted) with G4HadronInelasticProcess. + extended/hadronic/Hadr09 o HadronicGenerator: migrated per-particle inelastic processes (that have been deleted) to G4HadronInelasticProcess. + extended/hadronic/Hadr10 o New hadronic example aimed to exercise the decay of tau leptons, as well as charmed and bottom hadrons. + extended/hadronic/NeutronSource o TrackingAction: count secondary particles with meanLife > 0. Print meanLife. o PhysicsList: added GammaNuclearPhysicsLEND. Use new CLHEP units for minute, hour, day, year and millielectronvolt. o Updated ElectromagneticPhysics. o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced G4PhotoNuclearProcess (that has been deleted) with G4HadronInelasticProcess. o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits. Removed SteppingVerbose class. + extended/medical/DICOM o In vis.mac, changed "/vis/ogl/set/eventsDrawInterval" to "/vis/ogl/flushAt NthPrimitive". + extended/medical/dna/AuNP o New example simulating the track-structure of electrons in microscopic gold volume. Also simulating that in liquid water medium surrounding the gold volume. + extended/medical/dna/chem2 o In vis.mac, changed "/vis/ogl/set/eventsDrawInterval" to "/vis/ogl/flushAt NthPrimitive". + extended/medical/dna/chem3 o In vis.mac, changed "/vis/ogl/set/" to "/vis/viewer/set/timeWindow/". + extended/medical/dna/dnadamage1 o Fixed SSD file typos. + extended/medical/dna/neuron o In vis.mac, changed "/vis/ogl/set/" to "/vis/viewer/set/timeWindow/". + extended/medical/dna/microdosimetry o Updated PhysicsList to use updated SetEmModel() method. Removed thread unsafe SetCuts() method; use SetEmModel(..) for multiple scattering. + extended/medical/dna/splitting o Updated PhysicsList to recent EM settings. + extended/medical/dna/svalue o PhysicsList: removed unused header. Radioactive decay is defined via standard radioactive physics builder. o Do not allow change of geometry between runs, only materials may be changed. o Removed all warning in test run. + extended/medical/electronScattering o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits. + extended/medical/electronScattering2 o Removed warning. Cosmetic modifications in PhysicsList. + extended/medical/fanoCavity + extended/medical/fanoCavity2 o Updated PhysicsList to recent EM settings. o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits. + extended/optical/LXe o Get some refractive indices from new G4OpticalMaterialParameters file. o Excercise creating material property table element by element. o Replaced deprecated optical commands and parameters with new ones. + extended/optical/OpNovice o Excercise creating material property table element by element. o Replaced deprecated optical commands and parameters with new ones. o Fixed incorrect material property name. o Added option to define detector via a GDML file. o Added outer world volume to avoid surfaces including world volume. Addressing problem report #2373. + extended/optical/OpNovice2 o Replaced deprecated optical commands and parameters with new ones. + extended/optical/wls o WLSMaterials: use correct material property names. o WLSPrimaryGeneratorAction: use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector. + extended/parallel/ThreadsafeScorers o TSPhysicsList: removed obsolete header G4EmProcessOptions; removed method SetCuts() to avoid data race, use the one from the base class; removed singleton pattern from this class as not needed. + extended/polarisation/Pol01 o Cleanup of Physics List; use renamed polarized processes. + extended/radioactivedecay/Activation o TrackingAction: count secondary particles with meanLife > 0. o PhysicsList: added GammaNuclearPhysicsLEND. Use new CLHEP units for minute, hour, day, year and millielectronvolt. o Updated ElectromagneticPhysics. o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced G4PhotoNuclearProcess (that has been deleted) with G4HadronInelasticProcess. o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits. Removed SteppingVerbose class. + extended/radioactivedecay/rdecay01 + extended/radioactivedecay/rdecay02 o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits. Removed SteppingVerbose class. o Use new CLHEP units for minute, hour, day, year and millielectronvolt in PhysicsList. + extended/runAndEvent/RE05 + extended/runAndEvent/RE06 o Migration to the new SteppingVerbose. + extended/visualization/movies o New example illustrating how to make a movie with /vis/viewer/save and /vis/viewer/interpolate. It also includes the "visTutor" macros from the old "novice" example, N03, subsequently moved to "basic" B4. See README for further information. ----------------------------------------------------------------------------