Warning, /geant4/CHANGELOG/Beta4.11.0-1.txt is written in an unsupported language. File is not indexed.
0001
0002 Geant4 11.0-beta-01 Release Notes
0003 ---------------------------------
0004
0005 25 June 2021
0006
0007 Migration Notes & Main New Features
0008 -----------------------------------
0009
0010 o Requiring C++17 as minimum standard to compile Geant4.
0011 Allowing also compilation against C++23 with CMake 3.20 and newer.
0012 o Bumped minimum CMake version to 3.12.
0013 o Updated external PTL module to version v2.0.0.
0014 o Added Boolean parameter for enabling Spline in constructor of the
0015 PhysicsVector classes.
0016 o Removed deprecated classes: G4LPhysicsFreeVector, G4PhysicsLnVector
0017 and G4PhysicsOrderedFreeVector.
0018 o New G4SteppingVerboseWithUnits class, an alternative to G4SteppingVerbose
0019 with printout of proper units. Simplified way of defining a user-specific
0020 stepping verbose, that is now common to all sequential, MT and tasking
0021 modes.
0022 o Added maps for faster search based on name in solids, regions and
0023 volumes stores.
0024 o Extended cylindrical scoring mesh to tube and tube segment.
0025 o Added new unit definitions for Time, Velocity and Momentum in G4UnitsTable.
0026 o General code cleanup in EM modules; removed obsolete model and processes,
0027 removed G4EmProcessOptions class.
0028 o Introducing quantum entanglement of e+ annihilation. Currently implemented
0029 only in G4eplusAnnihilation and G4LivermorePolarizedComptonModel.
0030 o Updated EM integral approach by introduction of a cross-section shape type
0031 including cross-section shape with 2 maxima.
0032 o Updates to G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd
0033 energy area.
0034 o Fixed model per region definition for all base processes G4VEmProcess,
0035 G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility for
0036 energy loss processes.
0037 o New class G4OpticalMaterialProperties, a store for optical material
0038 properties and allow use of predefined optical material properties.
0039 o Added new IRT-syn model for DNA.
0040 o General code clean-up in hadronic processes and models; removed obsolete
0041 and deprecated classes; removed obsolete "rpg" model.
0042 o Removed obsolete classes G4RadioactiveDecay and G4RadioactiveDecaymessenger.
0043 o Introduced a new threshold parameter in radioactive-decay for analogue mode
0044 to kill very long radioactive decays at rest of nuclides happening later
0045 than such threshold.
0046 o Updated physics lists to use a uniform approach for verbosity.
0047 o G4RunManagerFactory: set default run manager type to be Tasking.
0048 o Corrected way to count the number of events processed in a worker thread
0049 when using G4TaskRunManager.
0050 o Extended G4UIWin32 driver with new features.
0051 o New ToolsSG (TSG) visualisation package based on g4tools, providing four
0052 new (mutually exclusive) visualisation drivers: TOOLSSG_X11_GLES,
0053 TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.
0054 o Introducing G4Mesh, a light class that encapsulates and validates
0055 visualisation of a nested parameterisation.
0056 o Removed deprecated functions in visualization.
0057 o Build option with VecGeom requires VecGeom-1.1.16 or higher.
0058 Added new example demonstrating interface with VecGeom navigator.
0059 o Requires CLHEP-2.4.4.2 for external CLHEP installation.
0060 o New data set: G4EMLOW-7.17.
0061
0062 ----------------------------------------------------------------------------
0063
0064 Technical Notes
0065 ---------------
0066
0067 o Tested platforms:
0068 + Linux, gcc-8.3.1.
0069 Tested on 64 bit architectures (Intel or AMD) with Linux CentOS8.
0070 Versions of Geant4 have also been compiled successfully on other
0071 Linux distributions, Ubuntu, Debian, Suse or other RedHat systems.
0072 + MacOS 11.4, Apple LLVM/clang-12.0.5
0073 + Windows/10 with Visual C++ 14.28 (Visual Studio 2019)
0074
0075 o More verified configurations:
0076 + Linux, 9.3.0/10.2.0/11.1.0, clang-9.0/10.0/11.0.
0077 + Linux, Intel-icc 20.2.
0078 + MacOS 10.15 with Apple LLVM/clang-12.0.
0079
0080 o External dependencies
0081 + CLHEP-2.4.4.2, suggested for external installation of the CLHEP library.
0082 + VecGeom-1.1.16, for optional use of the VecGeom geometry primitives.
0083
0084 o New data sets:
0085 + G4EMLOW-7.17.
0086
0087 Please refer to the Geant4 User Documentation:
0088 http://cern.ch/geant4/support/user_documentation
0089 for further information about using Geant4.
0090
0091 ----------------------------------------------------------------------------
0092
0093 List of features and fixes included in this Beta release since 10.7.p02:
0094
0095 o Configuration:
0096 -------------
0097 + CMake:
0098 o Requiring C++17 as minimum standard to compile Geant4.
0099 Allow compilation against C++23 with CMake 3.20 and newer.
0100 Check for filesystem support in native or extension (GNU/Clang)
0101 libraries.
0102 o Implemented build/test script in Python to check for cycles in the
0103 declared source module dependency graph.
0104 o Added G4tools target to CMake/GNUmake configuration following its
0105 migration from analysis to externals categories.
0106 o Check for unparsed arguments in G4DeveloperAPI functions to
0107 provide better validation against typos/etc in use.
0108 o Store PUBLIC/PRIVATE/INTERFACE module usage requirements explicitly.
0109 o Removed all references to Wt.
0110 o Removed settings of deprecated PHP_AS_HP environmental variable.
0111 o Added geant4.bat prototype.
0112 o Hint to run geant4-config on Windows.
0113 o Added preliminary support for sanitizers. Introduces new advanced
0114 option GEANT4_BUILD_SANITIZER to allow selection of one of address,
0115 thread, or undefined sanitizer. The default is no sanitization.
0116 Adds appropriate flags to CMAKE_CXX_FLAGS.
0117 o Added GEANT4_USE_PTL_LOCKS option to forward to internal PTL as
0118 PTL_USE_LOCKS.
0119 o Clarified use of Freetype for both analysis and visualization.
0120 Removed use of no longer required imported target shim for build.
0121 o Set GEANT4_BUILD_BUILTIN_BACKTRACE to ON to enable debug information on
0122 segmentation faults in testing.
0123 o Qualify geant4_add_feature descriptions with "G4_" to distinguish them
0124 from CMake property descriptions.
0125 o Added settings for enabling new TOOLSSG vis driver.
0126 Four (mutually exclusive) options: TOOLSSG_X11_GLES,
0127 TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLES.
0128 o Added FindPythia8.cmake script.
0129 o Removed obsolete -stdlib flag for AppleClang.
0130 o Updated external PTL module to version v2.0.0.
0131 o Bumped minimum CMake version to 3.12.
0132 o Migrated all CMake scripts to modular CMake API.
0133 o Updated version of data sets: G4EMLOW-7.17.
0134 Updated tag-IDs for 11.0-beta.
0135 + GNUMake:
0136 o Moved default to C++17 Standard.
0137 o Updated compiler/link flags for migration of g4tools to externals
0138 category.
0139 o Added comctl32.lib to UI32LIBS for WIN32-VC configuration.
0140 o binmake.gmk: removed include path to "rpg" hadronic model, now retired.
0141 Removed include paths to "hadronic/models/management"
0142 and "hadronic/models/util" modules, now retired.
0143
0144 o Analysis:
0145 --------
0146 + Moved g4tools to externals category. Moved "fonts" directory and install
0147 logic to g4tools package in externals, as prime interface to Freetype.
0148
0149 o Digits & Hits:
0150 -------------
0151 + Extending cylindrical scoring mesh to tube and tube segment.
0152 + Make sure probe commands are not unnecessarily broadcasted to the worker
0153 threads.
0154 + Code formatting.
0155
0156 o Environments
0157 ------------
0158 + G4Py:
0159 o In TestEm0, use default EM physics in place of obsolete
0160 G4EmProcessOptions.
0161
0162 o Error Propagation:
0163 -----------------
0164 + Code formatting.
0165
0166 o Event:
0167 -----
0168 + Use existing facility to find physical volume in store, rather than
0169 looping through in G4SPSPosDistribution::ConfineSourceToVolume().
0170 + Use G4PhysicsFreeVector instead of deprecated G4PhysicsOrderedFreeVector
0171 in G4AdjointPrimaryGenerator, G4SPSAngDistribution, G4SPSEneDistribution,
0172 and G4SPSRandomGenerator.
0173
0174 o Externals:
0175 ---------
0176 + CLHEP:
0177 o Synchronised with CLHEP-2.4.4.2.
0178 o Added units: minute, hour, day, year and millielectronvolt.
0179 Added constants: Bohr_magneton and nuclear_magneton.
0180 o Fixed trivial compilation warnings on gcc-11 in Random headers.
0181 + g4tools:
0182 o Updated to g4tools 5.4.0:
0183 - Added "Windowing" code needed for G4/vis/tools_sg.
0184 - Fixed compilation warnings on gcc-11.
0185 - See History_tools for the complete list of modifications.
0186 + ptl:
0187 o Updated PTL to version v2.0.0 which replaced raw pointers to tasks with
0188 shared_ptrs for memory management improvements.
0189 o Removed PTL custom task allocator classes.
0190 o Fixed warnings about TBB task scheduler init.
0191 o Improved thread safety.
0192 o Fixed some memory issues.
0193 o Fix to TaskRunManager::Terminate() + nullptr to m_thread_pool
0194 responsible for segmentation-fault when ui/vis initialised, but not
0195 run manager.
0196 o Make PTL cmake options available in configuration, including:
0197 PTL_USE_SANITIZER and PTL_USE_LOCKS, but hidden from clients building
0198 Geant4; relevant Geant4 options forwarded to PTL: TBB, sanitizer, locks.
0199 o Use CMAKE_CXX_STANDARD in place of GEANT4_BUILD_CXXSTD in CMake
0200 configuration. Also, updated minimum CMake version requirements.
0201
0202 o Geometry:
0203 --------
0204 + management:
0205 o Added map for faster search based on name in G4SolidStore,
0206 G4RegionStore, G4logicalVolumeStore and G4PhysicalVolumeStore.
0207 Pointers to elements are stored in the map as buckets, grouping
0208 elements with same name.
0209 o G4UAdapter: added operator<<() to fix clash between similar methods
0210 for G4VSolid and VecGeom UnplacedVolume.
0211 + navigation:
0212 o G4Navigator: enabled use of alternative G4VoxelNavigation class.
0213 Adds call to virtual method in ComputeStep(), LocateGlobalPointAndSetup()
0214 for voxelised volumes. Controlled by ALTERNATIVE_VOXEL_NAV flag, turned
0215 on by default.
0216 Deleted experimental obsolete method RecheckDistanceToCurrentBoundary(),
0217 also removed in G4SafetyHelper and G4PathFinder.
0218 Cleaned up ComputeSafety().
0219 o G4VoxelNavigation: simplify code of 'check' mode tests to avoid 2nd
0220 code path. Added comments about method arguments.
0221 o G4NavigationLogger: soften check of step vs distance (using tolerance).
0222 + solids/Boolean:
0223 o In G4UnionSolid and G4SubtractionSolid, revised GetCubicVolume() method
0224 to use cubic volume of constituent volume(s) and an intersection solid,
0225 for more accurate measurement.
0226 + solids/CSG:
0227 o G4Trap, G4Para and wrappers: added accessors to retrieve/calculate
0228 original values for alpha, theta, phi.
0229 + solids/specific:
0230 o Simplified implementation of CreatePolyhedron() in G4Polyhedra,
0231 G4Polycone, G4GenericPolycone and related wrappers.
0232 o Added missing accessor in G4UTet.
0233 + volumes:
0234 o G4ReflectionFactory: added Clean() method for clearing the internal
0235 maps on user request and removed problematic Reset() function.
0236
0237 o Global:
0238 ------
0239 + Removed deprecated classes: G4LPhysicsFreeVector, G4PhysicsLnVector
0240 and G4PhysicsOrderedFreeVector.
0241 + G4PhysicsFreeVector, G4PhysicsLogVector, G4PhysicsLinearFreeVector:
0242 in each constructor added extra Boolean parameter for enabling Spline;
0243 needed for later removal of the SetSpline() method, required for
0244 re-organisation of the code using templates.
0245 + G4PhysicsFreeVector: added to all constructors control on continuous
0246 increase energy in the energy vector. Added accessor to allow user query
0247 for use or not of Spline interpolation.
0248 + G4PhysicsVector: extended warning printout.
0249 + G4ConvergenceTester: fixed potential thread contention likely
0250 responsible for crashes in ThreadSafe-Scorers example, observed in
0251 system testing. Some code cleanup.
0252 + Updated G4SIUnits and G4PhysicalConstants to include new symbols
0253 (minute, hour, day, year and millielectronvolt) and new constants
0254 (Bohr_magneton and nuclear_magneton), based on CLHEP-2.4.4.2.
0255 + G4UnitsTable: added unit definitions for Velocity and Momentum.
0256 + New G4Filesystem header to support transparent use of C++ filesystem
0257 whether it is in std:: or std::experimental namespaces.
0258 + G4ThreadLocalSingleton: added way to explicitly call Clear() for all
0259 TLS singletons.
0260 + Reworked G4Backtrace to use fewer dynamic memory allocations when
0261 printing backtrace in order to avoid overflowing the signal stack.
0262 + Modernised CMake script.
0263 + Changed date for release 11.0-beta.
0264
0265 o Graphics Representations:
0266 ------------------------
0267 + Reviewed HepPolyhedronPgon, HepPolyhedronPcon classes given by rz-contour.
0268 + HepPolyhedron: added TriangulatePolygon() and RotateContourAroundZ().
0269 Fixed calculation of number of faces in a polyhedron object in method
0270 RotateContourAroundZ(). In some cases, 'Nfaces' was computed incorrectly,
0271 resulting in more memory being allocated than required; this did not
0272 create problems for rendering, but used to generate warning messages
0273 in some cases.
0274 + Removed deprecated G4VisAttributes::Invisible.
0275 + Added G4Colour::operator<(), useful for making a set or map based on
0276 G4colour as a key.
0277 + G4VGraphicsScene: introduced new pure virtual function
0278 AddCompound(const G4Mesh&).
0279 + G4VisAttributes: improved message in SetForceNumberOfCloudPoints().
0280 + Modernised CMake script.
0281
0282 o Intercoms
0283 ---------
0284 + G4UImanager: set LastCommandOutputTreated=false only for master thread.
0285 Avoids inadvertent "highlighting" in G4UIQt on worker threads.
0286 + Fixed leak in G4ProfilerMessenger.
0287 + Modernised CMake script.
0288
0289 o Interfaces
0290 ----------
0291 + Modified G4UIExecutive::SelectSessionByFile() to ensure that in Windows
0292 the Win32 OpenGL driver is selected as the second choice by default.
0293 Based on GitHub PR#20.
0294 + Extended G4UIWin32 driver with new features, based on contribution
0295 proposed in GitHub PR#23.
0296 + G4UIQt: deal properly with creation and deletion of viewer properties.
0297 + Removed obsolete Wt code from source and use in G4UIexecutive.
0298
0299 o Materials
0300 ---------
0301 + G4MaterialPropertiesTable: removed deprecated optical material properties.
0302 Recalculate GROUPVEL if RINDEX is modified.
0303 Addressing problem report #2313.
0304 + G4ExtDEDXTable, G4IonStoppingData: corrected initialisation of spline
0305 flag.
0306 + G4NistMaterialBuilder: removed unused argument "isotopes" from all
0307 methods where NIST materials are built.
0308 + G4NistManager: adopt modifications in method signatures of
0309 G4NistMaterialBuilder but keep own method signatures unchanged.
0310 + G4MaterialPropertiesTable: added 'createNewKey' to AddProperty();
0311 merged .icc into .cc; removed deprecated methods; applied clang-format.
0312 + G4OpticalMaterialProperties: added missing include.
0313 + G4MaterialPropertyVector: use G4PhysicsFreeVector instead of
0314 obsolete G4PhysicsOrderedFreeVector.
0315 + New class G4OpticalMaterialProperties, a store for optical material
0316 properties.
0317 + G4MaterialPropertiesTable: new AddProperty() method to allow use of
0318 predefined optical material properties.
0319 + G4IonStoppingData, G4ICRU90StoppingData, G4ExtDEDXTable,
0320 G4VIonDEDXTable: substituted G4LPhysicsFreeVector by G4PhysicsFreeVector.
0321 + G4Material, G4Element, G4Isotope, G4IonisParamElm,
0322 G4IonisParamMat, G4NistMaterialBuilder, G4NistMessenger,
0323 G4SandiaTable: minor clean-up.
0324 + Modernised CMake script.
0325
0326 o Particles:
0327 ---------
0328 + Fixed shadowing compilation warning in G4Triton.
0329
0330 o Persistency:
0331 -----------
0332 + GDML:
0333 o G4GDMLWriteMaterials: use G4PhysicsFreeVector instead of deprecated
0334 G4PhysicsOrderedFreeVector.
0335
0336 o Physics Lists:
0337 -------------
0338 + Removed dependencies on hadronic/model/util and hadronic/model/management
0339 modules now retired.
0340 + Builders:
0341 o Replaced G4HadronCaptureProcess with G4NeutronCaptureProcess
0342 and G4HadronFissionProcess with G4NeutronFissionProcess in builders.
0343 o Replaced particle-specific hadronic inelastic processes (that have
0344 been deleted) with G4HadronInelasticProcess.
0345 o G4PrecoNeutronBuilder, G4PrecoProtonBuilder, G4INCLXXNeutronBuilder,
0346 G4QGSBinaryKaonBuilder: replaced obsoleted cross-sections
0347 (that have been deleted) with better ones.
0348 o G4BinaryDeuteronBuilder, G4BinaryTritonBuilder, G4BinaryHe3Builder,
0349 G4BinaryAlphaBuilder: removed unused header files.
0350 + Constructors:
0351 o electromagnetic:
0352 - Updated all standard EM physics lists: removed local member "verbose" and
0353 use uniform approach for verbosity via G4EmParameters; instantiate
0354 NIEL process only if parameter MaxNIELEnergy is above zero; include
0355 gamma linear polarization model to Opt0, Opt3, Opt4, SS, and
0356 Livermore physics constructors if the parameter EnablePolarisation
0357 is "true"; G4EmLivermorePolarizedPhysics fully inheriting from
0358 G4EmLivermorePhysics.
0359 - G4GammaGeneralProcess: updated interface in the Retrieve() method.
0360 - G4EmDNAPhysics: updated configuration of standard physics for gamma
0361 and positrons according to Opt3; updated particle list by addition
0362 of G4Alpha; simplified ConstructProcess() method using
0363 G4PhysicsListHelper.
0364 - Updated G4EmLowEPPhysics physics model configuration
0365 See https://arxiv.org/abs/2102.02721 for details.
0366 - G4GammaGeneralProcess: exclude gamma-nuclear from the 2nd energy area,
0367 because cross-section is zero; in the 4th energy interval include in
0368 the vector value of 1 - p instead of p, where p is the cumulative
0369 probability of a sub-process.
0370 - G4EmDNAChemistry, _option1, _option2, _option3
0371 added dissociation channel for electron-hole recombination.
0372 - G4EmDNAChemistry_option3: changed pre-chemical model.
0373 - DNA PhysicsLists: use SeEmModel() with correct signature.
0374 - G4OpticalPhysicsList: removed deprecated optical commands.
0375 - G4EmLivermorePolarizedPhysics: removed unused header,
0376 - G4EmLivermorePhysics: use G4LivermorePolarizedComptonModel if
0377 polarisation is enabled.
0378 - Removed obsolete G4EmLEPTSPhysics, and code cleanup in G4EmDNAPhysics
0379 and G4EmDNAPhysics_stationary.
0380 - G4EmLivermorePhysics, G4EmPenelopePhysics_option1,
0381 G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
0382 G4EmLowEPhysics, G4EmStandardPhysicsSS: instantiate G4ePairProduction
0383 process after ionisation and bremsstrahlung; does not change physics
0384 but helps to have clearer debug printouts.
0385 o gamma_lepto_nuclear:
0386 - G4EmExtraPhysics, G4BertiniElectroNuclearBuilder,
0387 G4LENDBertiniGammaElectroNuclearBuilder: replaced
0388 G4PhotoNuclearProcess (now deleted) with G4HadronInelasticProcess.
0389 o hadron_elastic:
0390 - G4HadronDElasticPhysics, G4HadronHElasticPhysics: use inheritance
0391 from G4HadronElasticPhysics; use G4HadProcesses, G4PhysListUtil and
0392 G4HadParticles; implement cross-section factor.
0393 - G4HadronHElasticPhysics: fixed problem of fully overlapping energy
0394 transition between G4HadronElastic and G4ChipsElasticModel, using
0395 now G4ChipsElasticModel only for Hydrogen element above 10 MeV.
0396 - G4ChargeExchangePhysics: set explicitly the elastic cross-sections
0397 according to the hadron type, given that the universal Gheisha
0398 elastic cross-section has been now deleted.
0399 - In all constructors, use verbosity level from G4HadronicParameters.
0400 o hadron_inelastic:
0401 - In all constructors: printouts are controlled by verbosity level of
0402 G4HadronicParameters class; 'verboseLevel' member in base class is
0403 not used; G4HadronicParameters singleton is initialized in all class
0404 constructors; if the verbosity level is defined in class constructor,
0405 it is propagated to G4HadronicParameters (user may change this level
0406 using UI command before physics is initialized); check versus nullptr
0407 is added in several places.
0408 - Removed unused header files, and replaced when needed
0409 G4HadronCaptureProcess with G4NeutronCaptureProcess.
0410 + lists:
0411 o Replaced particle-specific hadronic inelastic processes
0412 (that have been deleted) with G4HadronInelasticProcess in LBE.
0413 Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess.
0414 o In all physics-lists, protected banners by verbosity level.
0415 o G4PhysListFactory: added verbosity level to constructor and propagated
0416 to constructed lists.
0417 o Mirror changes to G4PhysListFactory constructor signature (taking a
0418 default verbosity argument) in the G4PhysListFactoryAlt constructor.
0419
0420 o Electromagnetic Processes:
0421 -------------------------
0422 + Adjoint:
0423 o General code cleanup: applied clang-format style guidelines;
0424 applied C++11 codewords to method declarations (virtual, override,
0425 explicit); deleted unused variables and methods; started naming class
0426 member variables with 'f'; use 'nullptr' instead of '0'; removed unused
0427 headers; use constexpr for numbers. Use 'virtual' and 'override' methods
0428 consistently; member variables start with f; shorten long names; removed
0429 unused variables; make class variables local where appropriate; order
0430 declarations of class variables; define class variables; removed unused
0431 functions; marked copy/assignment operators as 'delete'; added
0432 ProcessDescriptions; removed ChangeHistory from top of code;
0433 use CLHEP::twopi instead of hardcoded value; removed more unused
0434 headers.
0435 o G4ContinuousGainOfEnergy: use updated signature for ion ionisation.
0436 o Free resources in destructors.
0437 + DNA:
0438 o Added IRT-syn model.
0439 o Added new models: G4DNADiracRMatrixExcitationModel,
0440 G4DNAQuinnPlasmonExcitationModel, G4DNARelativisticIonisationModel and
0441 G4DNAPlasmonExcitation.
0442 o Modified G4DNAELSEPAElasticModel for gold material.
0443 o G4DNAElectronHoleRecombination: dissociation channel of electron-hole
0444 recombination moved to G4EmDNAChemistry, _option1, _option2, _option3.
0445 o G4DNAWaterDissociationDisplacer: added the fragment displacement for
0446 new dissociation channel.
0447 o Fixed dependency on g4tools, now moved to externals module.
0448 o Updated PrintGeneratorInformation() method signature in G4DNABornAngle
0449 and G4DNARuddAngle.
0450 + High Energy:
0451 o G4eeToHadrons: updated integral type.
0452 o Code clenup: clean-up of interfaces; removed unused headers;
0453 improved initialisation.
0454 o G4hBremsstrahlungModel: added header.
0455 o G4hhIonisation: removed G4BohrFuluctuations.
0456 + Low Energy:
0457 o G4LivermorePolarizedComptonModel: added quantum entanglement of e+
0458 annihilation. If the photons have been "tagged" as "quantum-entangled",
0459 for example by G4eplusAnnihilation for annihilation into 2 photons, they
0460 are "analysed" if and only if both photons suffer Compton scattering.
0461 Theoretical predictions from Pryce and Ward, Nature N.4065 (1947) p.435,
0462 and Snyder et al, Physical Review 73 (1948) p.440. Experimental
0463 validation in "Photon quantum entanglement in the MeV regime and its
0464 application in PET imaging", D. Watts, J. Allison et al., Nature
0465 Communications (2021)12:2646, https://doi.org/10.1038/s41467-021-22907-5.
0466 Added data member 'fEntanglementModelIndex'.
0467 The implementation of entanglement is described in extensive comments
0468 in G4LivermorePolarizedComptonModel source.
0469 o Migrate the Spline treatment for all physics vectors.
0470 o General code cleanup: use G4 types; cleanup of headers and Penelope
0471 models.
0472 o Convert G4LPhysicsFreeVector into G4PhysicsFreeVector.
0473 o Removed obsolete unused classes G4BremsstrahlungCrossSectionHandler,
0474 G4BremsstrahlungParameters, G4eBremsstrahlungSpectrum, G4hSRIM2000p,
0475 G4PhotoElectricAngularGeneratorSimple, G4MicroElecInelastic_new,
0476 G4LivermorePolarizedPhotoElectricModel and
0477 G4LivermorePolarizedPhotoElectricGDModel.
0478 o G4MicroElecLOPhononModel: removed debug printout; rename member of
0479 class.
0480 o Improved management of array in G4PenelopeGammaConversionModel.
0481 o Replaced std::map with static arrays in the G4Penelope models for
0482 performance improvements
0483 o Removed obsolete PrintInfo() methods and self defined process SubType.
0484 o G4IonParametrisedLossModel: use updated signature for ion ionisation.
0485 o Updated PrintGeneratorInformation() method signature for few angular
0486 generators.
0487 + Muons:
0488 o General code clean-up: use C++11 keywords, improved comments, format
0489 files.
0490 o G4EnergyLossForExtrapolator, G4ErrorEnergyLoss, G4TablesForExtrapolator:
0491 provide thread-safe initialisation of internal tables; guarantee
0492 initialisation only once; size of tables depend only on number of
0493 materials.
0494 o G4MuIonisation: removed obsolete G4BohrFluctuations header.
0495 o G4MuPairProduction, G4MuBremsstrahlung, G4MuBremsstrahlungModel:
0496 improved initialisation.
0497 o Updated PrintGeneratorInformation() method signature in G4ModifiedMephi.
0498 + Polarisation:
0499 o General code cleanup: name classes in logical manner; improved comments;
0500 added ProcessDescription; ordered #includes and removed unused; disabled
0501 copy and assignment operators with 'delete'; increased C++11 keyword
0502 usage, especially override, explicit; renamed (most) class variables to
0503 start with 'f'; make SCRN arrays the correct size; use constexpr for
0504 numbers; applied clang-format style; use G4ExceptionDescription; avoid
0505 implicit conversions between G4StokesVector and G4ThreeVector.
0506 o G4PolarizedIonisationBhabhaXS: removed incorrect G4Exception.
0507 o G4PolarizedAnnihilation, G4ePolarizedIonisation: improved initialisation
0508 of assymetry tables.
0509 o G4PolarizedAnnihilation, G4PolarizedCompton: updated use of the spline
0510 flag.
0511 + Standard:
0512 o G4eplusAnnihilation: introducing Quantum Entanglement. This is activated
0513 by UI command "/process/em/QuantumEntanglement". For e+e- -> gamma gamma,
0514 the gammas are "tagged" here and must be "analysed" in a Compton
0515 scattering process - see, for example, G4LivermorePolarizedComptonModel.
0516 Otherwise entanglement has no effect even if activated. Added data
0517 member "fEntanglementModelIndex". Instantiate clipboard only if Quantum
0518 Entanglement is requested.
0519 o G4PAIModelData, G4eplusTo2GammaOKVIModel: corrected initialisation of
0520 physics vectors.
0521 o G4LindhardSorensenData: updated definition of spline flag.
0522 o G4CoulombScattering, G4eBremsstrahlung, G4eplusAnnihilation: updated set
0523 of flags for spline and the integral approach.
0524 o G4BetheBlochModel: minor cleanup; more const variables.
0525 o Removed obsolete classes G4BohrFluctuations and
0526 G4HeatedKleinNishinaCompton.
0527 o G4BetheBlochModel, G4BraggIonModel, G4LindhardSorensenIonModel,
0528 G4ICRU73QOModel, G4AtimaIonIonisationModel: changed interface to ion
0529 ionisation corrections.
0530 o Code clean-up of ionisation, energy loss processes and models.
0531 o Clean-up of gamma processes.
0532 + Utils:
0533 o G4VEmProcess, G4VEnergyLossProcess, G4EmTableType, G4EmBiasingManager,
0534 G4LossTableManager: updated integral approach by introduction of a
0535 cross-section shape type and different actions depending on the type;
0536 added cache for cross-section and range; removed unused methods;
0537 attempt to reduce number of "if" operators at run time; integral and
0538 spline flags are set to each process individually and not via
0539 G4EmParameters class.
0540 o G4VMultipleScattering: fixed problem observed by CMS for specific
0541 physics list.
0542 o G4EmCorrections, G4VEmProcess: updated use of the spline flag.
0543 o G4EmCorrections, G4LossTableBuilder: substitute use of deprecated
0544 G4LPhysicsFreeVector by G4PhysicsFreeVector.
0545 o G4VEmProcess, G4VEnergyLossProcess, G4EmDataHandler: updated method
0546 RetrievePhysicsTable().
0547 o G4TableType: added extra enumerator for type of cross-section shape.
0548 o G4OpticalParameters, G4OpticalParametersMessenger: removed deprecated
0549 optical commands and parameters. Replaced CreateDir() with new
0550 G4UIdirectory().
0551 o G4VMultipleScattering: removed obsolete unused methods; reduced number
0552 of operations at run time, use 'isIon' flag for scaling of energy
0553 limits for all particles with mass >1 GeV.
0554 o G4VEmModel removed "virtual" keyword for ComputeDEDX() method.
0555 o General code cleanup; removed obsolete methods and members;
0556 reorganized class members.
0557 o G4VEmAngularDistribution: added virtual method
0558 PrintGeneratorInformation().
0559 o Fixed model per region definition for all base processes G4VEmProcess,
0560 G4VMultipleScattering, G4VEnergyLossProcess; removed sub-cut facility
0561 for energy loss processes; clean-up of parameters classes.
0562 o G4VEmModel, G4VEnergyLossProcess, G4EmCalculator: optimised signature
0563 of the CorrectionsAlongStep() method; use more constant variables;
0564 minor code optimisation.
0565 o G4VEmProcess, G4VEnergyLossProcess: fixed computation of cross-section
0566 and range if base material approach is used.
0567 o G4LossTableBuilder: fixed debug printout.
0568 o G4VMscModel: improved printout.
0569 o Code clean-up, including G4VEnergyLossProcess, G4LossTableManager
0570 and messengers for EM parameters.
0571 o Removed obsolete G4EmProcessOptions class.
0572 + Xrays:
0573 o General code cleanup: removed commented out code; added
0574 ProcessDescription() and DumpInfo(); organized order of headers,
0575 removed and added as needed; use constexpr for numbers; replaced
0576 G4PhysicsOrderedFreeVector with G4PhysicsFreeVector.
0577 o G4Scintillation: removed deprecated optical commands.
0578
0579 o Generic Processes:
0580 -----------------
0581 + Cuts:
0582 o G4PhysicsTableHelper: updated interface to Retrieve() method.
0583 + Management:
0584 o Introducing classes for implementation of quantum entanglement:
0585 G4EntanglementAuxInfo, G4VEntanglementClipBoard and
0586 G4eplusAnnihilationEntanglementClipBoard.
0587 Currently, entanglement is implemented only in G4eplusAnnihilation
0588 and G4LivermorePolarizedComptonModel.
0589 + Optical:
0590 o G4OpBoundaryProcess: fixed initialisation of some local variables.
0591 Addressing problem report #2364.
0592 o G4OpRayleigh, G4OpWLS, G4OpWLS2: use G4PhysicsFreeVector instead
0593 of deprecated G4PhysicsOrderedFreeVector.
0594 + Transportation:
0595 o Enable setting of smooth curved trajectories to particle-change in
0596 G4CoupledTransportation::AlongStepDoIt(), which was commented out by
0597 mistake. Based on discussion in Geant4 Forum thread #4271.
0598
0599 o Hadronic Processes:
0600 ------------------
0601 + Removed deprecated 'rpg' model.
0602 + Merged 'models/management' module in 'management'.
0603 + Merged 'models/util' module in 'util'.
0604 + cross_sections
0605 o G4MuNeutrinoNucleusTotXsc: new arrays for XS_eq and XS_in, now XS_tot
0606 is a sum of XS_qe and XS_in with A, Z and A-Z factors.
0607 o G4NeutronInelasticXS, G4NeutronElasticXS, G4NeutronCaptureXS,
0608 G4ParticleInelasticXS, GammaNuclearXS : in the method BuildPhysicsTable(),
0609 replaced loop over material-cut-couple with a direct loop over all
0610 elements; partially move initialisation of local variables to headers.
0611 o G4NeutronInelasticXS: in the method BuildPhysicsTable(), replaced
0612 loop over material-cut-couple with a direct loop over materials
0613 used in geometry.
0614 o G4MuNeutrinoNucleusTotXsc: access and calculation of
0615 fQEratio(Z,A) = XS_qe/XS_tot.
0616 o Removed following obsolete classes:
0617 G4IonsKoxCrossSection, G4IonsSihverCrossSection, G4IonsShenCrossSection,
0618 G4TripathiCrossSection, G4TripathiLightCrossSection,
0619 G4IonProtonCrossSection, G4GeneralSpaceNNCrossSection,
0620 G4ProtonInelasticCrossSection G4NeutronInelasticCrossSection,
0621 G4PiNuclearCrossSection, G4CrossSectionPairGG,
0622 G4FastPathHadronicCrossSection, G4HadronCaptureDataSet,
0623 G4HadronFissionDataSet, G4HadronElasticDataSet, G4HadronInelasticDataSet,
0624 G4HadronCrossSections, G4IonsShenCrossSection, G4TripathiCrossSection,
0625 G4TripathiLightCrossSection.
0626 o G4HadronXSDataTable, G4ComponentSAIDTotalXS: updated creation and
0627 handling of G4PhysicsVector.
0628 o G4UPiNuclearCrossSection, G4ComponentSAIDTotalXS: substituted use of
0629 deprecated G4LPhysicsFreeVector by G4PhysicsFreeVector.
0630 o G4UPiNuclearCrossSection: disabled Spline interpolation.
0631 + management
0632 o G4HadronicProcess: made public the method GetHadronicInteraction().
0633 This can be useful for users to access at run-time some information
0634 available from a hadronic final-state model.
0635 o G4HadronInelasticProcess: added a new method to return the particle
0636 definition (useful in practice to distinguish between baryons and
0637 antibaryons, or between hadrons and ions).
0638 o G4HadronInelasticProcess: removed old and unused header file
0639 corresponding to the Gheisha inelastic cross-section (that has been
0640 deleted).
0641 o Moved G4HadronInelasticProcess class to hadronic/mangement module.
0642 o Fixed TLS usage in G4HadronicProcessStore.
0643 o Fixed loops in G4HadronicProcessStore::Clean().
0644 o G4HadronicEPTestMessenger: removed deprecated commands.
0645 o Removed unused class G4VCrossSectionBase.
0646 + models/cascade
0647 o Fixed TLS usage in G4CascadeChannelTables and G4CascadeParameters.
0648 + models/coherent_elastic
0649 o G4ChargeExchangeProcess: replaced Gheisha elastic cross-section
0650 (that has been deleted) with G4ComponentGGHadronNucleusXsc.
0651 o G4LEHadronProtonElastic, G4ChargeExchangeProcess: removed unused
0652 headers.
0653 + models/fission
0654 o G4LFission: removed unused headers.
0655 + models/im_r_matrix
0656 o G4XnpElasticLowE, G4XNNElasticLowE, G4XnpTotalLowE: substituted use of
0657 deprecated G4PhysicsLnVector with G4PhysicsLogVector; no functional
0658 changes.
0659 + models/inclxx
0660 o Updated comment in G4INCLXXInterface header.
0661 + models/lepto_nuclear
0662 o G4NeutrinoNucleusModel: calculation of fQEratioA(Z,A,Enu) depending of
0663 QE ratios for nucleons. Added accessors for XS_qe/XS_tot(A), fQEratioA
0664 class member.
0665 o Bug fixed in G4NeutrinoNucleusModel, updated calls for QE ratio of
0666 muon/electron (anti-)neutrino.
0667 + models/particle_hp
0668 o G4ParticleHPElementData, G4ParticleHPBGGNucleonInelasticXS: removed
0669 old and unused header files corresponding to Gheisha cross-sections
0670 (that have been deleted). Code cleanup.
0671 o G4ParticleHPManager: removed deprecated environmental variables.
0672 o G4ParticleHPData, G4ParticleHPJENDLHEData: replaced use of deprecated
0673 G4LPhysicsFreeVector with G4PhysicsFreeVector.
0674 o Updated build scripts according to new dependencies.
0675 Clean-up of old directories no longer present.
0676 + models/qmd
0677 o G4QMDReaction: replaced G4IonsShenCrossSection (that has been deleted)
0678 with G4ComponentGGNuclNuclXsc. Replaced GetIsoCrossSection() with
0679 GetElementCrossSection().
0680 + models/radioactive_decay
0681 o G4RadioactiveDecayBase, G4RadioactiveDecayBaseMessenger: introduced
0682 a new parameter for analogue mode to kill very long radioactive decays
0683 at rest of nuclides happening later than this threshold parameter.
0684 Its default value (10^27 ns) corresponds to more than twice the age of
0685 the universe. The value of the threshold can be changed via a new UI
0686 command, e.g. to set it to 1000 years:
0687 "/process/had/rdm/thresholdForVeryLongDecayTime 3.1536e+10 second" .
0688 This kind of cut has been introduced in order to avoid to account
0689 energy depositions happening after many billions of years in ordinary
0690 materials used in calorimetry, in particular Tungsten and Lead - via
0691 their natural unstable, but very long lived, isotopes, such as
0692 W183, W180 and Pb204. Note that the cut is not on the average, mean
0693 lifetime, but on the actual sampled global decay time.
0694 o Use existing facility to find logical volume in store, rather than
0695 looping through in G4RadioactiveDecayBase::Select/DeselectAVolume().
0696 o G4RadioactiveDecayBaseMessenger, G4RadioactivationMessenger: removed
0697 deprecated commands.
0698 o Remove obsolete classes G4RadioactiveDecay and
0699 G4RadioactiveDecaymessenger.
0700 o Updated build scripts and header includes.
0701 + models/theo_high_energy
0702 o G4TheoFSGenerator: added accessors for the corresponding modifier
0703 methods already existing. This can be useful for users to access
0704 at run-time some information available from a hadronic final-state
0705 model.
0706 + processes
0707 o Added G4HadronInelasticProcess class from hadronic/management module.
0708 o Renamed G4HadronCaptureProcess as G4NeutronCaptureProcess, as it is
0709 applied only for neutron projectile.
0710 o Removed use of deleted header file G4HadronicDeprecate.
0711 o G4HadronCaptureProcess: removed old and unused header file
0712 corresponding to the Gheisha capture cross-section (that has been
0713 deleted).
0714 o G4HadronFissionProcess: replaced Gheisha fission cross-section
0715 (that has been deleted) with G4ZeroXS (which is a zero cross-section
0716 everywhere).
0717 o G4HadronElasticProcess, G4NeutrinoElectronProcess,
0718 G4ElNeutrinoNucleusProcess, G4MuNeutrinoNucleusProcess: removed
0719 old and unused header file corresponding to the Gheisha elastic
0720 cross-section (that has been deleted).
0721 o Removed the following deprecated inelastic processes:
0722 G4AlphaInelasticProcess, G4AntiAlphaInelasticProcess
0723 G4AntiDeuteronInelasticProcess, G4DeuteronInelasticProcess,
0724 G4AntiHe3InelasticProcess, G4He3InelasticProcess,
0725 G4AntiLambdaInelasticProcess, G4LambdaInelasticProcess,
0726 G4AntiNeutronInelasticProcess, G4NeutronInelasticProcess,
0727 G4AntiOmegaMinusInelasticProcess, G4OmegaMinusInelasticProcess,
0728 G4AntiProtonInelasticProcess, G4ProtonInelasticProcess,
0729 G4AntiSigmaMinusInelasticProcess, G4SigmaMinusInelasticProcess,
0730 G4AntiSigmaPlusInelasticProcess, G4SigmaPlusInelasticProcess,
0731 G4AntiTritonInelasticProcess, G4TritonInelasticProcess,
0732 G4AntiXiMinusInelasticProcess, G4XiMinusInelasticProcess,
0733 G4AntiXiZeroInelasticProcess, G4XiZeroInelasticProcess,
0734 G4IonInelasticProcess, G4KaonMinusInelasticProcess,
0735 G4KaonPlusInelasticProcess, G4KaonZeroLInelasticProcess,
0736 G4KaonZeroSInelasticProcess, G4PionMinusInelasticProcess,
0737 G4PionPlusInelasticProcess, G4PhotoCaptureProcess,
0738 G4PhotoFissionProcess, G4PhotoNuclearProcess.
0739 + stopping
0740 o Removed obsolete classes: G4AntiNeutronAnnihilationAtRest,
0741 G4AntiSigmaPlusAbsorptionFritiof, G4SigmaMinusAbsorptionBertini,
0742 G4AntiProtonAbsorptionFritiof, G4KaonMinusAbsorptionBertini,
0743 G4PiMinusAbsorptionBertini.
0744 + util
0745 o Removed unused classes: G4LightMedia, G4IsoResult, G4HadronicDeprecate,
0746 G4GHEKinematicsVector, G4HadReentrentException, G4HadSignalHandler,
0747 DumpFrame.
0748
0749 o Run
0750 ---
0751 + Optimised access to volumes and regions stores.
0752 + Minor C++11 review in use of iterators, initialisers, etc...
0753 + Removed obsolete ResetCuts() method in G4VUserPhysicsList.
0754 + Added new G4DNAStaticMoleculeReactionProcess in PhysicsListHelper
0755 for DNA processes.
0756 + Removed call to physicsList->TerminateWorker() in G4WorkerRunManager
0757 as this appears to cause errors at termination.
0758 + G4VPhysicsConstructor: fixed initialisation of hadronic parameters
0759 avoiding uncontrolled override of verbosityLevel.
0760 + General code cleanup and formatting.
0761
0762 o Tasking
0763 -------
0764 + Updated to PTL v2.0.0 with shared_ptr usage. Included some minor API
0765 changes to direct async usage.
0766 + Fixes to TBB task-group usage.
0767 + Fix for G4FORCENUMBEROFTHREADS flag lookup.
0768 + G4RunManagerFactory: set default run manager type to be Tasking.
0769 + G4TaskRunManager: check for valid threadPool pointer in method
0770 RequestWorkersProcessCommandsStack() to fix occasional segmentation
0771 fault at exit.
0772
0773 o Track & Tracking
0774 ----------------
0775 + Correction to G4Track::operator=() to copy also touchable-handles.
0776 This fixes a crash originated when running importance sampling in the
0777 G4EventManager when the track got assigned the origin touchable handler
0778 from its own touchable handle; the touchable handler was sometimes not
0779 set.
0780 + Adjusted printout format in DumpInfo() for G4VParticleChange
0781 and G4ParticleChange.
0782 + Introducing G4SteppingVerboseWithUnits, an alternative to
0783 G4SteppingVerbose with printout of proper units and extended features.
0784 Added explicit virtual keyword for virtual methods and destructor in
0785 G4SteppingVerbose.
0786 + Export protected static symbols in G4VSteppingVerbose for DLL builds
0787 on Windows.
0788 + G4SteppingVerbose, G4SteppingManager: added a switch to instantiate
0789 G4SteppingVerboseWithUnits.
0790 + Simplified way of defining a user-specific stepping verbose, that
0791 is now common to all sequential, MT and tasking modes.
0792 + Avoid unnecessary indirections when checking for regional stepping
0793 action by reusing the value of current volume in stepping manager.
0794 + Use existing facility to find logical volume in store, rather than
0795 looping through in G4AdjointCrossSurfChecker.
0796
0797 o Visualization:
0798 -------------
0799 + Removed unused XXX module.
0800 + management:
0801 o Introducing "Special Mesh Rendering", with new commands:
0802 /vis/viewer/set/specialMeshRendering
0803 /vis/viewer/set/specialMeshVolumes
0804 Only available with OpenGL drivers at present.
0805 o Implemented a default AddCompound(const G4Mesh&) method: just draws the
0806 "container" volume and prints a G4Exception with guidance.
0807 o Added new data members to view parameters.
0808 o Exploit C++17 to parse saved files in /vis/viewer/interpolate,
0809 to use <filesystem>.
0810 o Introducing /vis/scene/add/localAxes and /vis/touchable/localAxes
0811 commands.
0812 o Removed deprecated G4VisManager::SetUserAction().
0813 Use RegisterRunDurationUserVisAction or similar instead.
0814 These functions represent quite an advanced use of visualisation
0815 and are rarely used.
0816 o "/vis/set/extentForField", "/vis/scene/add/electricField" and
0817 magneticField: improved guidance to take note of change to
0818 G4VFieldModel, namely that the number of data points is now calculated
0819 on the basis of the extent, which can be set as above.
0820 o Interrupt macro (vis.mac) if graphics system invalid/unavailable.
0821 Issues "Batch is interrupted" and avoids long litany of further errors.
0822 o /vis/scene/add/volume (and /vis/drawVolume): exploit
0823 G4PhysicalVolumesSearchScene to streamline geometry tree searches.
0824 Avoid calculating extent of a temporary physical volume when not
0825 necessary.
0826 The above does introduce a change of behaviour for the case that a user
0827 names the volume(s) requested, e.g., "/vis/drawVolume Shape1". The user
0828 will not normally see any difference - but it does avoid extravagant
0829 computation in some circumstances.
0830 o G4VisCommandsSet, G4VisCommandsTouchable and G4VisCommandsViewer:
0831 added comment of explanation where using G4PhysicalVolumesSearchScene.
0832 o Use existing facility to find logical volume in store, rather than
0833 looping through in G4VisCommandSceneAddLogicalVolume::SetNewValue().
0834 o G4VisManager: fixed cout destination for UI manager during deletion.
0835 o G4VisExecutive: removed deprecated Wt driver.
0836 + modeling:
0837 o Introducing G4Mesh, a light class that encapsulates and validates a
0838 nested parameterisation, called a "mesh". If a valid mesh cannot be
0839 created out of a G4VPhysicalVolume, it will have a type "invalid".
0840 The overhead of an invalid attempt is expected to be small, all the
0841 same it should only be invoked if the user specifies mesh rendering.
0842 o G4ModelingParameters: added new data members and access functions.
0843 o G4PhysicalVolumeModel: added code for special mesh rendering, under
0844 control of user flag. If flag is set by the above commands, and if a
0845 volume is a "mesh" (a container for a nested parameterisation), invoke
0846 new method AddCompound(const G4Mesh&).
0847 o G4PhysicalVolumeModel: moved fFullPVPath.push_back earlier, addressing
0848 a bug in visualisation of touchables.
0849 o Improved G4VModel; make SetTransform() virtual.
0850 o G4ArrowModel, G4AxesModel and G4TextModel: implement SetTransform().
0851 o Take care to apply to original model. For example, if SetTransform() is
0852 called more than once it must apply to the original.
0853 o G4PhysicalVolumeModel: for the resultant of clipping, set the
0854 visualisation attributes of the original.
0855 o G4VFieldModel: Change concept of choice of data points: this model
0856 simply checked that a data point was within the extent.
0857 Now it uses the extent to determine the datapoint spacing.
0858 Note: if 'fExtentForField' is null, the used extent is that of the
0859 current scene; otherwise it uses that supplied by the user.
0860 o G4PhysicalVolumesSearchScene: allow user to limit the depth of descent
0861 during a geometry tree search.
0862 o G4PhysicalVolumeModel: if opacity (alpha) == 0 (completely transparent),
0863 treat same as pVisAttribs->IsVisible().
0864 G4PhysicalVolumeModel: simplified validation.
0865 o Added G4Exception in default implementation of
0866 G4PseudoScene::ProcessVolume().
0867 + externals/gl2ps:
0868 o allow use of non-APPLE OpenGL on APPLE.
0869 To use this, build with macro GL2PS_USE_GL_GL_H.
0870 + OpenGL:
0871 o Implemented WindowProc() function in G4OpenGLWin32Viewer for the Win32
0872 OpenGL driver (function that was commented out). It is now possible to
0873 change the Zoom and the orientation using the mouse (like in the Qt
0874 driver). Based on contribution in GitHub PR#20.
0875 o Implemented AddCompound(const G4Mesh&) method: turns nested
0876 parameterisations into polymarkers of dots - much improved speed.
0877 o Enable extended WIN32 window in G4OpenGLWin32Viewer.
0878 Based on contribution in GitHub PR#23.
0879 o G4OpenGLQtViewer::addNonPVSceneTreeElement(): special case for markers,
0880 use Info() if non-empty name appearing in Qt's scene tree. This allows
0881 the user to design markers, e.g., a list of points, and give them a name
0882 that relates to the providence of the points, e.g., a particular
0883 material or geometry component.
0884 o Removed deprecated Wt driver.
0885 o G4OpenGLStoredQtViewer: moved fViewId<0 check to top of constructor to
0886 pick up errors in base class construction.
0887 o Removed deprecated "/vis/ogl/set/" commands.
0888 o All commands connected with a time window. Use equivalent
0889 "/vis/viewer/set/timeWindow" commands.
0890 o "/vis/ogl/set/eventsDrawInterval <N>" is replaced by
0891 "/vis/ogl/flushAt NthPrimitive <N>".
0892 o G4OpenGLWin32Viewer: fixed occasional crash with G4UIWin32 when
0893 creating viewer from UI command: avoid indirect call to DrawView()
0894 while still within CreateMainWindow().
0895 o Comment out makeCurrent() in G4OpenGLImmediate/StoredQtViewer
0896 to prevent red-button crash.
0897 + OpenInventor:
0898 o G4OpenInventorQtExaminerViewer: for tabbed viewer in UIQt, added a
0899 Detach button to move the viewer to its own dedicated and resizable
0900 window on the desktop. Added event handler for mouse wheel to fix the
0901 non-intuitive behavior. Mouse-wheel-forward now zooms/dollys in.
0902 Added viewer button to enable the "axis cross" (3d axes) feedback
0903 mechanism.
0904 o G4OpenInventorViewer: upgraded the group node sensor to process camera
0905 movements, thus eliminating the need for the camera sensor. The node
0906 sensor receives all camera notifications and is immune to changes in
0907 the camera type.
0908 o Force kernel visit if special mesh rendering parameters change.
0909 o Code cleanup of OpenInventorQt classes.
0910 + Qt3D
0911 o Improve overall protection of debug output with #ifdef G4QT3DDEBUG.
0912 Moved debug code to G4Qt3DUtils header.
0913 o Force kernel visit if special mesh rendering parameters change.
0914 o Include some trial code (commented out) for text output.
0915 + ToolsGS:
0916 o Introducing ToolsSG (TSG) drivers based on externals/g4tools.
0917 o Providing four new (mutually exclusive) vis drivers: TOOLSSG_X11_GLES,
0918 TOOLSSG_WINDOWS_GLES, TOOLSSG_XT_GLES and TOOLSSG_QT_GLE.
0919
0920 o Data Sets:
0921 ---------
0922 + G4EMLOW-7.17:
0923 o Removed tabs in option4 cross-section files.
0924 o Added new cross sections for electron transportation in gold
0925 within Geant4-DNA.
0926 o Added directories Elastic/ Inelastic/ and Structure/ for microelec
0927 models.
0928 o Fixed problem in file sigmadiff_cumulated_ionisation_e_RBEBV_Z79.dat.
0929
0930 o Examples:
0931 --------
0932 + Updated reference outputs, macros, READMEs and scripts.
0933 + Replaced deprecated G4VisAttributes::Invisible by
0934 G4VisAttributes::GetInvisible().
0935 + Bump required CMake version range to 3.12...3.20.
0936 + advanced/amsEcal
0937 o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
0938 + advanced/brachytherapy
0939 o Code cleanup: use C++11 keywords and patterns.
0940 o Removed BrachyMaterial class; materials implemented now using NIST
0941 material manager.
0942 o Removed SetCuts() from the local PhysicsList.
0943 + advanced/composite_calorimeter
0944 o Migrated to multi-threading, using G4RunManagerFactory.
0945 o Introduced the action initializer.
0946 o Split the definition of the sensitive part of the detector
0947 from the detector construction itself. A new method,
0948 sensitiveHandling(), has been introduced in the base class CCalG4Able.
0949 o Made the following three classes thread-local singletons: CCalSDList,
0950 CCalSensAssign and CCalSensitiveDetectors.
0951 o Multi-threaded use of the G4AnalysisManager in the run action with the
0952 merging of histograms and ntuple of all working threads at the end of
0953 the run.
0954 + advanced/gammaray_telescope
0955 o GammaRayTelHadronPhysics : replaced G4HadronCaptureProcess with
0956 G4NeutronCaptureProcess, and G4HadronFissionProcess with
0957 G4NeutronFissionProcess.
0958 Replaced stopping processes that have been deleted.
0959 Replaced old pion inelastic cross-sections (that have been deleted)
0960 with G4BGGPionInelasticXS.
0961 o GammaRayTelHadronPhysics, GammaRayTelIonPhysics: replaced
0962 G4PhotoNuclearProcess (that has been deleted) with
0963 G4HadronInelasticProcess.
0964 o Removed dependency on G4EmProcessOptions.
0965 o Removed SetCuts() from the local PhysicsList.
0966 + advanced/gorad
0967 o Fixed potential shadowing compilation warnings in GRInitialization.
0968 + advanced/hadrontherapy
0969 o Modified HadrontherapyLet for file generation.
0970 o Removed dependency on G4EmProcessOptions.
0971 o Geometry modification in CarbonBeamLine.
0972 o Removed unncessary G4AutoDelete of StepProcessMax in physics list.
0973 o Minor changes in macro files.
0974 + advanced/HGCal_testbeam
0975 o SiliconPixelHit, SiPMHit: fixed problem in handling of NIEL energy
0976 deposition.
0977 o CMSHadronPhysicsFTFP_BERT: added class from CMS.
0978 o Removed obsolete class CMSEmStandardPhysicsHcal.
0979 o FTFPCMS_BERT_EMM: use correct combination of physics constructors.
0980 o Removed use of obsolete RanecuEngine. Updated CMS EM physics.
0981 + advanced/ICRP110_HumanPhantoms
0982 o Introduced ICRP110PhantomVisAction. Updated vis.mac which shows
0983 how to activate it.
0984 + advanced/iort_therapy
0985 o Removed dependency on G4EmProcessOptions.
0986 o Removed SetCuts() from the local PhysicsList.
0987 o Set cuts per region in ConstructProcess(). RegionStore is not available
0988 when accessed from the constructor of the Physics List.
0989 + advanced/microbeam
0990 o Added initialisation of 'fDose3DDose' and 'fMapVoxels' in the
0991 constructor of the RunAction class.
0992 o Use explicit constructors and "override" instead of "virtual" in
0993 derived classes. Use G4 types in DetectorConstruction.
0994 o In main() do not initialize run and number of threads, let
0995 these be done in macro microbeam.mac.
0996 o DetectorConstruction: use CLHEP::twopi. Avoid having 'fField' pointer
0997 as class member, use G4AutoDelete registration instead.
0998 o CellParameterisation: initilize all data members.
0999 + advanced/microelectronics
1000 o Updated PhysicsList to new EM settings.
1001 + advanced/STCyclotron
1002 o STCyclotronSensitiveTarget: remove deprecated include.
1003 o Use new CLHEP units for minute, hour, day, year in
1004 STCyclotronPhysicsList.
1005 + advanced/underground_physics
1006 o In DMXParticleSource::ConfineSourceToVolume(), use existing
1007 facility to faster find physical volme in store, rather than looping
1008 through. Some code cleanup.
1009 o DMXPhysicsList: replaced G4HadronCaptureProcess with
1010 G4NeutronCaptureProcess. Replaced stopping processes that have been
1011 deleted. Removed header files of old and unused pion inelastic
1012 cross-sections (that have been deleted). Replaced particle-specific
1013 inelastic processes (that have been deleted) with
1014 G4HadronInelasticProcess.
1015 o Replaced deprecated optical commands & parameters with new ones.
1016 + advanced/xray_fluorescence
1017 o Removed dependency on G4EmProcessOptions.
1018 o Removed SetCuts() from the local PhysicsList.
1019 + basic/B1
1020 + basic/B2
1021 + basic/B3
1022 o Migrated to use G4SteppingVerboseWithUnits.
1023 o Use nullptr instead of 0.
1024 o Cleaned trailing whitespaces from all files.
1025 + basic/B4
1026 o Removed macros/visTutor. A movies tutorial is now in extended example
1027 visualization/movies. Remove visTutor menu in all gui.mac files.
1028 o Migrated to use G4SteppingVerboseWithUnits.
1029 o Use nullptr instead of 0.
1030 o Cleaned trailing whitespaces from all files.
1031 + basic/B5
1032 o Migrated to use G4SteppingVerboseWithUnits.
1033 o Use nullptr instead of 0.
1034 o Cleaned trailing whitespaces from all files.
1035 + extended/biasing/B03
1036 o B03PhysicsList: replaced G4HadronCaptureProcess with
1037 G4NeutronCaptureProcess, and G4HadronFissionProcess with
1038 G4NeutronFissionProcess. Replaced old ion cross-sections (that have
1039 been deleted) with better ones. Use G4HadronInelasticProcess for
1040 inelastic processes (the particle-specific inelastic processes have
1041 been deleted).
1042 + extended/electromagnetic/TestEm0
1043 o Updated PhysListEmStandard.
1044 o DetectorConstruction: print only used material.
1045 + extended/electromagnetic/TestEm1
1046 o Migrated main() to use G4RunManagerFactory and
1047 G4SteppingVerboseWithUnits.
1048 o Updated PhysListEmStandard.
1049 o DetectorConstruction: do not print materials table.
1050 o StepMax: code formatting.
1051 o Added macro stepMax.mac.
1052 + extended/electromagnetic/TestEm2
1053 o Migrated to use G4SteppingVerboseWithUnits.
1054 o Removed obsolete PhysList5DEmStandard. 5D model is a part of
1055 Opt4 and other physics configurations.
1056 o Updated PhysListEmStandard.
1057 o DetectorConstruction: do not print materials table.
1058 o StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger: revert,
1059 to make command '/testem/stepMax' working in interactive mode.
1060 o SteppingVerbose: set precision via data member; modified process name.
1061 o Use G4RunManagerFactory in main().
1062 o Added macro stepMax.mac.
1063 + extended/electromagnetic/TestEm3
1064 o Updated PhysListEmStandard.
1065 o StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger: revert,
1066 to make command '/testem/stepMax' working in interactive mode.
1067 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1068 o Added macro stepMax.mac.
1069 + extended/electromagnetic/TestEm4
1070 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1071 + extended/electromagnetic/TestEm5
1072 o Updated PhysListEmStandard.
1073 o Migrated to G4SteppingVerboseWithUnits.
1074 o TrackingAction: fixed bug for filling histos 6 and 7.
1075 Fixed bug for histo of vertex position.
1076 o StepMax, StepMaxMessenger, PhysicsList, PhysicsListMessenger: revert,
1077 to make command '/testem/stepMax' working in interactive mode.
1078 o Use G4RunManagerFactory in main().
1079 o Removed obsolete PhysListEm5DPhysics and PhysListEm19DPhysics,
1080 as these models are now part of regular physics constructors.
1081 o Added macros stepMax.mac and subcut.mac.
1082 + extended/electromagnetic/TestEm6
1083 o Migrated to G4SteppingVerboseWithUnits.
1084 + extended/electromagnetic/TestEm7
1085 o Migrated to G4SteppingVerboseWithUnits.
1086 o Removed use of obsolete RanecuEngine. Updated PhysListEmPhysicsNR.
1087 + extended/electromagnetic/TestEm9
1088 o Replaced local Physics List by clone of the default EM standard;
1089 recover analysis of process calls for the case of gamma general
1090 process; improved macro files. Removed unused header.
1091 + extended/electromagnetic/TestEm11
1092 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1093 o Updated PhysListEmStandard.
1094 o DetectorConstruction: print only used material.
1095 o RunAction: dump G4EmParameters.
1096 + extended/electromagnetic/TestEm12
1097 + extended/electromagnetic/TestEm13
1098 + extended/electromagnetic/TestEm14
1099 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1100 o Updated PhysListEmStandard.
1101 + extended/electromagnetic/TestEm15
1102 o Migrated to G4SteppingVerboseWithUnits.
1103 o PhysicsList: removed PhysList5DStandard, as 5D model is now part of
1104 Opt4 EM physics in standard constructors.
1105 + extended/electromagnetic/TestEm16
1106 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1107 + extended/electromagnetic/TestEm17
1108 + extended/electromagnetic/TestEm18
1109 o Migrated to G4SteppingVerboseWithUnits.
1110 + extended/eventgenerator/particleGun
1111 o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1112 Removed SteppingVerbose class.
1113 + extended/eventgenerator/pythia/py8decayer
1114 o New example demonstrating how to outfit Pythia8-based decay features
1115 to those resonances in Geant4 where decay tables are not implemented
1116 by default. In addition, it shows how to replace existing
1117 Geant4 decay tables to such resonances as tau+/- or B+/- with
1118 the Pythia8-based ones.
1119 + extended/eventgenerator/userPrimaryGenerator
1120 o Migrated to use G4SteppingVerboseWithUnits.
1121 + extended/exoticphysics/channeling
1122 o Removed local option4 physics configuration.
1123 + extended/geometry/transforms
1124 o Migrated to use G4SteppingVerboseWithUnits.
1125 o Added cleaning of the reflection factory.
1126 + extended/geometry/VecGeomNavigation
1127 o New example demonstrating integration of VecGeom navigation, based on
1128 the prototype package G4VecGeomNav, being integrated in the example at
1129 build time.
1130 + extended/hadronic/FissionFragment
1131 o Fixed CMake build script to define target properly.
1132 + extended/hadronic/Hadr01
1133 o PhysicsList: removed unused header file.
1134 + extended/hadronic/Hadr02
1135 o CRMCNeutronBuilder, HIJINGNeutronBuilder, UrQMDNeutronBuilder: replaced
1136 G4HadronCaptureProcess with G4NeutronCaptureProcess, and
1137 G4HadronFissionProcess with G4NeutronFissionProcess.
1138 o IonUrQMDPhysics: replaced old ion cross-sections (that have been
1139 deleted) with G4ComponentGGNuclNuclXsc.
1140 o Replaced particle-specific inelastic processes (that have been deleted)
1141 with G4HadronInelasticProcess.
1142 + extended/hadronic/Hadr03
1143 o PhysicsList: added GammaNuclearPhysicsLEND.
1144 o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1145 G4PhotoNuclearProcess (that has been deleted) with
1146 G4HadronInelasticProcess.
1147 o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1148 Removed SteppingVerbose class.
1149 + extended/hadronic/Hadr04
1150 o NeutronHPphysics: replaced G4HadronCaptureProcess with
1151 G4NeutronCaptureProcess, and G4HadronFissionProcess with
1152 G4NeutronFissionProcess. Replaced G4NeutronInelasticProcess (that has
1153 been deleted) with G4HadronInelasticProcess.
1154 o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1155 Removed SteppingVerbose class.
1156 + extended/hadronic/Hadr06
1157 o TrackingAction: count secondary particles with meanLife > 0.
1158 Print meanLife. Added TrackingMessenger with 2 commands
1159 o PhysicsList: added GammaNuclearPhysicsLEND.
1160 Use new CLHEP units for minute, hour, day, year and millielectronvolt.
1161 o Updated ElectromagneticPhysics.
1162 o Suppressed command "/process/list" in several macros.
1163 o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1164 G4PhotoNuclearProcess (that has been deleted) with
1165 G4HadronInelasticProcess.
1166 o DetectorConstruction: updated 'fWorldSize' for SetRadius().
1167 o Migrated main() to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1168 o Enable ParticleHP settings in main().
1169 o Stepping verbose initialisation.
1170 + extended/hadronic/Hadr07
1171 o TrackingAction: count secondary particles with meanLife > 0.
1172 Print meanLife.
1173 o PhysicsList: added GammaNuclearPhysicsLEND.
1174 Use new CLHEP units for minute, hour, day, year and millielectronvolt.
1175 o Updated ElectromagneticPhysics.
1176 o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1177 G4PhotoNuclearProcess (that has been deleted) with
1178 G4HadronInelasticProcess.
1179 o Migrated main() to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1180 Enable ParticleHP settings in main().
1181 + extended/hadronic/Hadr08
1182 o BiasingOperation: replaced Gheisha inelastic cross-section (that
1183 has been deleted) with better cross-sections.
1184 Replaced particle-specific inelastic processes (that have been deleted)
1185 with G4HadronInelasticProcess.
1186 + extended/hadronic/Hadr09
1187 o HadronicGenerator: migrated per-particle inelastic processes (that have
1188 been deleted) to G4HadronInelasticProcess.
1189 + extended/hadronic/Hadr10
1190 o New hadronic example aimed to exercise the decay of tau leptons,
1191 as well as charmed and bottom hadrons.
1192 + extended/hadronic/NeutronSource
1193 o TrackingAction: count secondary particles with meanLife > 0.
1194 Print meanLife.
1195 o PhysicsList: added GammaNuclearPhysicsLEND.
1196 Use new CLHEP units for minute, hour, day, year and millielectronvolt.
1197 o Updated ElectromagneticPhysics.
1198 o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1199 G4PhotoNuclearProcess (that has been deleted) with
1200 G4HadronInelasticProcess.
1201 o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1202 Removed SteppingVerbose class.
1203 + extended/medical/DICOM
1204 o In vis.mac, changed "/vis/ogl/set/eventsDrawInterval" to
1205 "/vis/ogl/flushAt NthPrimitive".
1206 + extended/medical/dna/AuNP
1207 o New example simulating the track-structure of electrons in microscopic
1208 gold volume. Also simulating that in liquid water medium surrounding
1209 the gold volume.
1210 + extended/medical/dna/chem2
1211 o In vis.mac, changed "/vis/ogl/set/eventsDrawInterval" to
1212 "/vis/ogl/flushAt NthPrimitive".
1213 + extended/medical/dna/chem3
1214 o In vis.mac, changed "/vis/ogl/set/" to "/vis/viewer/set/timeWindow/".
1215 + extended/medical/dna/dnadamage1
1216 o Fixed SSD file typos.
1217 + extended/medical/dna/neuron
1218 o In vis.mac, changed "/vis/ogl/set/" to "/vis/viewer/set/timeWindow/".
1219 + extended/medical/dna/microdosimetry
1220 o Updated PhysicsList to use updated SetEmModel() method.
1221 Removed thread unsafe SetCuts() method; use SetEmModel(..) for
1222 multiple scattering.
1223 + extended/medical/dna/splitting
1224 o Updated PhysicsList to recent EM settings.
1225 + extended/medical/dna/svalue
1226 o PhysicsList: removed unused header. Radioactive decay is defined via
1227 standard radioactive physics builder.
1228 o Do not allow change of geometry between runs, only materials may be
1229 changed.
1230 o Removed all warning in test run.
1231 + extended/medical/electronScattering
1232 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1233 + extended/medical/electronScattering2
1234 o Removed warning. Cosmetic modifications in PhysicsList.
1235 + extended/medical/fanoCavity
1236 + extended/medical/fanoCavity2
1237 o Updated PhysicsList to recent EM settings.
1238 o Migrated to G4RunManagerFactory and G4SteppingVerboseWithUnits.
1239 + extended/optical/LXe
1240 o Get some refractive indices from new G4OpticalMaterialParameters file.
1241 o Excercise creating material property table element by element.
1242 o Replaced deprecated optical commands and parameters with new ones.
1243 + extended/optical/OpNovice
1244 o Excercise creating material property table element by element.
1245 o Replaced deprecated optical commands and parameters with new ones.
1246 o Fixed incorrect material property name.
1247 o Added option to define detector via a GDML file.
1248 o Added outer world volume to avoid surfaces including world volume.
1249 Addressing problem report #2373.
1250 + extended/optical/OpNovice2
1251 o Replaced deprecated optical commands and parameters with new ones.
1252 + extended/optical/wls
1253 o WLSMaterials: use correct material property names.
1254 o WLSPrimaryGeneratorAction: use G4PhysicsFreeVector instead of
1255 deprecated G4PhysicsOrderedFreeVector.
1256 + extended/parallel/ThreadsafeScorers
1257 o TSPhysicsList: removed obsolete header G4EmProcessOptions; removed
1258 method SetCuts() to avoid data race, use the one from the base class;
1259 removed singleton pattern from this class as not needed.
1260 + extended/polarisation/Pol01
1261 o Cleanup of Physics List; use renamed polarized processes.
1262 + extended/radioactivedecay/Activation
1263 o TrackingAction: count secondary particles with meanLife > 0.
1264 o PhysicsList: added GammaNuclearPhysicsLEND.
1265 Use new CLHEP units for minute, hour, day, year and millielectronvolt.
1266 o Updated ElectromagneticPhysics.
1267 o GammaNuclearPhysics, GammaNuclearPhysicsLEND: replaced
1268 G4PhotoNuclearProcess (that has been deleted) with
1269 G4HadronInelasticProcess.
1270 o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1271 Removed SteppingVerbose class.
1272 + extended/radioactivedecay/rdecay01
1273 + extended/radioactivedecay/rdecay02
1274 o Migrated to use G4RunManagerFactory and G4SteppingVerboseWithUnits.
1275 Removed SteppingVerbose class.
1276 o Use new CLHEP units for minute, hour, day, year and millielectronvolt
1277 in PhysicsList.
1278 + extended/runAndEvent/RE05
1279 + extended/runAndEvent/RE06
1280 o Migration to the new SteppingVerbose.
1281 + extended/visualization/movies
1282 o New example illustrating how to make a movie with /vis/viewer/save
1283 and /vis/viewer/interpolate. It also includes the "visTutor" macros
1284 from the old "novice" example, N03, subsequently moved to "basic" B4.
1285 See README for further information.
1286
1287 ----------------------------------------------------------------------------
1288