Warning, /geant4/CHANGELOG/Beta4.11.1-1.txt is written in an unsupported language. File is not indexed.
0001
0002 Geant4 11.1-beta-01 Release Notes
0003 ---------------------------------
0004
0005 30 June 2022
0006
0007 Migration Notes & Main New Features
0008 -----------------------------------
0009
0010 o Added ability to optionally check for overlaps in parallel geometries
0011 through the "/geometry/run/test" UI command.
0012 o Improved computation of surface area and cubic volume in specific solids.
0013 o Revised implementation of G4CoupledTransportation: now inheriting from
0014 G4Transportation and removed duplicated variables and methods.
0015 o Provided choice of the model of fluctuations with the default
0016 G4UrbanFluctuation, alternative G4UniversalFluctuation (more accurate for
0017 thin targets), and G4LossFluctuationDummy (no fluctuations); new UI command
0018 defines model of fluctuations for the full setup; inside user physics lists
0019 it is possible to configure different fluctuation models per G4Region.
0020 o In G4UrbanMscModel, moving safety computation before step limitation
0021 algorithms in order to save few instructions; should not affect results.
0022 o New G4TransportationWithMsc specialised tranportation process combined with
0023 multiple-scattering, enabled by default with G4EmStandardPhysics_option1.
0024 May be enabled for any EM physics via the new UI command. Added also
0025 possibility to enable internal stepping.
0026 o In EM processes, updated methods to access cross-sections at run time.
0027 o In G4EmStandardPhysics_option3, use options providing more accurate
0028 simulation without loss of CPU performance; significantly improving
0029 fanoCavity results.
0030 o Use G4LinhardSorensenIonModel for GenericIon in physics-lists for
0031 G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
0032 G4EmPenelopePhysics and G4EmLivermorePhysics.
0033 o G4EmStandardPhysics_option4: use Penelope ionisation model for e- below
0034 100 keV.
0035 o Set EPICS2017 cross sections to be the default for Livermore gamma processes.
0036 o New utility class G4EmDNABuilder, providing instantiation of standard
0037 and DNA processes/models in physics lists. Made G4EmDNAPhysics the base
0038 class for DNA physics constructors. Optimised IRT-syn DNA model.
0039 o Added parameters in DNA including the chemical molecules and reaction
0040 list involved in the radiolysis.
0041 o In G4DNA, incorporated model based on RPWBA to transport protons at
0042 100-300 MeV and updated data structure to improve performance of the
0043 mesoscopic model.
0044 o Added flush() method to the fast simulation models, allowing to process the
0045 input buffer of the fast simulation model before the end of an event;
0046 triggered inside the event loop of G4EventManager, when the stack is empty.
0047 o Added a new utility method to access a process via sub-type.
0048 o New integral method for hadronic processes.
0049 o Extended cross-sections for computation of light anti-nuclei on hydrogen.
0050 o In G4Evaporation and G4UnstableFragmentBreakUp, completed fix about
0051 production of unphysical fragments.
0052 o In hadronic de_excitation, added limitation (A < 30) on decay of unphysical
0053 fragment, allowing for removal of light unphysical states and providing
0054 improved isotope production for the spallation fragments.
0055 o Improved FTF fragmentation to better describe the production of strange
0056 mesons and baryons in proton-proton interactions, as measured by the
0057 NA61/SHINE Collaboration.
0058 o Added option to G4HadronicParameters to control the diffraction
0059 dissociation for nucleon projectile on target nucleus with baryon number
0060 greater than 10: by default, both projectile and target diffraction are
0061 switched off (but they are both active in the case of target nucleus with
0062 baryon number below or equal to 10; if instead the flag is set to "true",
0063 then both projectile and target diffraction are activated regardless of
0064 the target nucleus).
0065 o Added temporary check and protection in G4HadronicProcess against anomalous
0066 condition leading to rare crashes recently observed with neutronHP and
0067 fixed also rare reproducibility problems in particleHP.
0068 o Implemented Twinkling in visualization, i.e, the rhythmic variation of
0069 brightness of given touchables.
0070 o Introducing 'FALLBACK' visualisation drivers for TSGQt and VTKQt and new
0071 commands to facilitate the drawing of plots at the end of a run.
0072 o Retired "tasking" module and merged contents in "global" and "run"
0073 categories.
0074 o New meshing features in visualization. Allowing for multiple meshes in
0075 a single screen; relevant for special mesh rendering. Improved graphics
0076 representation.
0077 o Use standard install location for CMake installation scripts, now being
0078 installed in $CMAKE_INSTALL_PREFIX/lib/cmake/Geant4.
0079 o Added required configuration to be able to generate DEB/RPM packages
0080 with CPack.
0081 o Dataset environment variables are now optional in CMake builds.
0082 Consistently use G4FindDataDir() in place of std::getenv() in code for
0083 accessing data-sets.
0084 o Added support for Intel-icpx/icx compiler.
0085 o Preliminary configuration support for Qt5 and Qt6.
0086 o New set of extended examples, implementing different setups showing how
0087 to score particle fluences.
0088 o Updated tasking system to upstream PTL version 2.3.3.
0089 o Build option with VecGeom requires VecGeom-1.2.0 or higher.
0090 o Requires CLHEP-2.4.5.3 for external CLHEP installation.
0091 o New data sets: G4EMLOW-8.1, G4NDL-4.7.
0092
0093 ----------------------------------------------------------------------------
0094
0095 Technical Notes
0096 ---------------
0097
0098 o Tested platforms:
0099 + Linux, gcc-8.3.1.
0100 Tested on 64 bit architectures (Intel or AMD) with Linux CentOS8.
0101 Versions of Geant4 have also been compiled successfully on other
0102 Linux distributions, Ubuntu, Debian, Suse or other RedHat systems.
0103 + MacOS 12.4, Apple LLVM/clang-13.1.6 (Intel or Apple Silicon).
0104 + Windows/10 with Visual C++ 14.31 (Visual Studio 2022)
0105
0106 o More verified configurations:
0107 + Linux, with gcc-9.3/10.3/11.2/12.1, clang-10/11.
0108 + Linux, with Intel-icc 2022.1, Intel-icx 2022.1.
0109 + MacOS 11.6 and 10.15, with Apple LLVM/clang-12.
0110 + Windows/10 with Visual C++ 14.29 (Visual Studio 2019)
0111
0112 o External dependencies
0113 + CLHEP-2.4.5.3, suggested for external installation of the CLHEP library.
0114 + VecGeom-1.2.0, for optional use of the VecGeom geometry primitives.
0115 + PTL-2.3.3, for external installation of the PTL tasking library.
0116
0117 o New data sets:
0118 + G4EMLOW-8.1, G4NDL-4.7.
0119
0120 Please refer to the Geant4 User Documentation:
0121 http://cern.ch/geant4/support/user_documentation
0122 for further information about using Geant4.
0123
0124 ----------------------------------------------------------------------------
0125
0126 List of features and fixes included in this Beta release since 11.0.p02:
0127
0128 o Configuration:
0129 -------------
0130 + CMake:
0131 o Added support for Intel-icpx/icx compiler and updated compilation flags
0132 for all Intel compilers.
0133 o Enable ToolsSG and backends based on use of external libraries (Qt, X11,
0134 Xm, Win32). Backends made non-mutally exclusive; removed
0135 GEANT4_USE_TOOLSSG public CMake option.
0136 o Avoid setting LD_LIBRARY_PATH configuration on MacOS; adding paths to
0137 DLL into PATH on Windows.
0138 o Corrected logic error in checking whether module is already composed.
0139 o Deprecated tags `geant4_define_module`, `geant4_global_library_target`;
0140 decouples the source code organisation and the module/library
0141 composition commands; implementation reduced to emitting a CMake
0142 warning message on what to replace with.
0143 o Updated CMake build scripts in all modules, by replacing
0144 `geant4_global_library_target` with direct file inclusion and call to
0145 `geant4_add_category` to define library build from source modules.
0146 o Reorganised DLL import/export flags for single-module categories.
0147 o Set default value of GEANT4_BUILD_BUILTIN_BACKTRACE to OFF.
0148 o Do not use CMAKE_VERBOSE_MAKEFILE when building tests.
0149 o Rationalized declaration and use of internal builds of required
0150 externals CLHEP, zlib, expat, PTL and tools libraries.
0151 o Support declaration and composition of header-only modules and libraries.
0152 o Adding geant4_module_sources command to enable appending of
0153 headers/sources to a module after creation.
0154 o Providing GEANT4_BUILD_ENABLE_ASSERTIONS option to enable assert() in
0155 all release build modes (Release, RelWithDebInfo, MinSizeRel).
0156 o Forward `CMAKE_<LANG>_FLAGS[_<MODE>]` flags to `geant4_add_test` so that
0157 a consistent set is used through the project.
0158 o Removed retired "tasking" module and library from configuration files.
0159 o Removed deprecated functions in G4DeveloperAPI and fixed typo that
0160 prevented installation of headers.
0161 o Allow library composition to be overriden in developer builds.
0162 o Do not use "readlink -f" to support pre-Monterey macOS systems.
0163 o Adding -Og to GNU/Clang default debug flags.
0164 o Copy .clang-tidy file to build directory to assist run-clang-tidy
0165 reporting.
0166 o In G4ConfigurePkgConfigHelpers.cmake, geant4-config.in for geant4-config
0167 generation: adding new flag "--features" (add vtk and qt3d features);
0168 allow use of md5sun if openssl missing; canonicalise prefix path.
0169 o Added options --sh and --csh to geant4-config script.
0170 o In G4ConfigureGNUMakeHelpers.cmake for geant4.[c]sh, geant4.bat
0171 generation: allow full path source in zsh, sh; unset local variables at
0172 the end; introducing GEANT4_DATA_DIR, with all data-set paths relative
0173 to this.
0174 o Added commands for working with categories analagous to module commands.
0175 o Preliminary configuration support for Qt5 and Qt6.
0176 o Added required configuration to be able to generate DEB/RPM packages
0177 with CPack.
0178 o Use more standard install location for CMake files.
0179 o Remove version from default installation directories.
0180 o Rationalised interlinked PTL/TBB build options.
0181 o G4ConfigureGNUMakeHelpers.cmake (geant4.[c]sh, geant4.bat generation):
0182 use the environment variable GEANT4_DATA_DIR as top data directory; the
0183 environment variables for individual dataset commented in scripts.
0184 o Added source validation exception for G4FindDataDir generated header.
0185 o New data set G4EMLOW-8.1 and G4NDL-4.7 with new TermalScattering data.
0186 o Updated tag-IDs for 11.0-beta.
0187 + GNUMake:
0188 o Added Linux-icx.gmk configuration for Intel OneAPI DPC++ compiler.
0189 Updated compilation flags for Intel icc/icx compilers.
0190 o Enable -pthread only for MT builds in other configurations.
0191 o Retired "tasking" category and library from build.
0192
0193 o Analysis:
0194 --------
0195 + Added UI commands for visualization: '/analysis/hn|pn/getVector'.
0196 + Changed namespace for g4tools code from "tools" to "toolx" for externals.
0197 + Use geant4_category_modules in CMake script to optionally add G4hdf5
0198 module to category.
0199
0200 o Digits & Hits:
0201 -------------
0202 + Canonicalise implementations of custom new() and delete() operators that
0203 use G4Allocator. Removed un-needed/duplicated checks on static allocator
0204 creation in member functions.
0205
0206 o Event:
0207 -----
0208 + Added call to G4GlobalFastSimulationManager::Flush() method in the event
0209 loop.
0210 + Canonicalise implementations of custom new() and delete() operators that
0211 use G4Allocator.
0212
0213 o Externals:
0214 ---------
0215 + Rationalising externals builds to decouple them from the core
0216 module/category definitions.
0217 + CLHEP:
0218 o Synchronised with CLHEP-2.4.5.3.
0219 + g4tools:
0220 o Updated to g4tools 6.0.1:
0221 - Fixed compilation warnings on Intel compiler and Coverity defects.
0222 - Use thread-safe version of gl2ps-1.4.2.
0223 In gl2psPrintPostScriptPixmap(): pass greyscale, nbit in arguments
0224 to avoid a dead code issue; in gl2psPDFgroupListInit(), fixed issue
0225 for uninitialized pointer read; removed commented out code.
0226 - sg/text: corrections in update_sg() due to copy-paste error.
0227 - Moved g4tools code externals from "tools" to "toolx" module.
0228 Concerns code related to Qt, Windows, X11, Xt, OpenGL, hdf5, expat,
0229 mpi, zlib.
0230 o In toolx/X11/base_session, check in show_window() that the window is
0231 not already mapped.
0232 + ptl:
0233 o Updated to upstream PTL version v2.3.3:
0234 - New/improved support for initialization and finalization routines
0235 in ThreadPool.
0236 - Threading: fix in GetNumberOfPhysicalCpus(), to never return zero.
0237 - Fixed verbose message to cerr to be protected within verbosity level.
0238 - Fixes for C++20 compilation warnings and updates to build scripts.
0239 - Removed outdated TiMemory implementation.
0240 - Code formatting.
0241 o Minor fixes for macOS/Clang and use as a subproject.
0242 o Updated CMake install directory for PTL to match recent changes
0243 in default install directories in Geant4.
0244 o Use any existing value of PTL_SANITIZER_TYPE to set the cache value
0245 to prevent override.
0246
0247 o Geometry:
0248 --------
0249 + management:
0250 o Get rid of heap allocations in G4BoundingEnvelope.
0251 o G4ReflectedSolid: added GetCubicVolume(), GetSurfaceArea().
0252 + navigation:
0253 o The "/geometry/run/test" UI command can now check for overlaps in
0254 parallel worlds if "/geometry/run/check_parallel" is set to 'true'.
0255 o G4Navigator: minor code improvements in ComputeSafety(), ComputeStep(),
0256 and LocateGlobalPointAndSetup().
0257 o Added constant 'kMassNavigatorId' in G4TransportationManager and make
0258 use of it in G4SafetyHelper.
0259 + solids/Boolean:
0260 o G4DisplacedSolid: added GetCubicVolume(), GetSurfaceArea().
0261 + solids/specific:
0262 o G4GenericTrap: implemented calculation of volume using analytical
0263 expression in GetCubicVolume(); in GetSurfaceArea(), improved
0264 calculation of the area of lateral faces; removed private function
0265 GetFaceCubicVolume(); private functions GetFaceSurfaceArea(),
0266 GetTwistedFaceSurfaceArea() replaced with private function
0267 GetLateralFaceArea().
0268 o G4Ellipsoid: in LateralSurfaceArea(), enhanced calculation of the
0269 lateral surface area.
0270 o G4VTwistedFaceted, G4TwistedBox, G4TwistedTrd: optimised calculation
0271 of volume and surface area.
0272 o G4VTwistedFaceted: fCubicVolume, fSurfaceArea made protected;
0273 GetCubicVolume() and GetSurfaceArea() no longer inlined and moved to
0274 source.
0275 o G4TwistedTubs: implemented GetSurfaceArea() based on analytical
0276 expressions; added private functions GetLateralArea(), GetPhiCutArea().
0277 o G4Hype: use analytical expression in GetCubicVolume() and
0278 GetSurfaceArea().
0279 o G4VTwistedFaceted: use numerical evaluation of a single integral to
0280 calculate lateral face surface area.
0281 o G4ExtrudedSolid, G4UExtrudedSolid: added default values for parameters
0282 in the constructor with two z-sections. Added default constructor to
0283 ZSection.
0284
0285 o Global:
0286 ------
0287 + Define G4lrint as std::lrint; removed unused G4lint and G4rint.
0288 + Imported from "Tasking" module all core interfaces that only depend on PTL.
0289 + Corrected G4ErrorPropagatorData destructor.
0290 + Commented out debug printout in G4ThreadLocalSingleton constructor.
0291 + Make dataset environment variables optional in CMake builds.
0292 + G4FindDataDir: correction for windows runtime, G4MULTITHREADED flag.
0293 Use the environment variable GEANT4_DATA_DIR as top data dir.
0294 + Removed obsolete CMakeLists.txt script in "management" module.
0295 Declare "HEPGeometry" dependencies as INTERFACE as the module is
0296 header-only. Removed dependency on TBB which is not a direct dependency
0297 of the global category.
0298 + Changed date for release 11.1-beta.
0299
0300 o Graphics Representations:
0301 ------------------------
0302 + HepPolyhedron, G4Polyhedron: added new constructors taking vertices and
0303 faces; added derived classes HepPolyhedronTetMesh, G4PolyhedronTetMesh;
0304 added SetVertex(), SetFacet() functions and made SetReferences() and
0305 InvertFacets() public methods. Implemented JoinCoplanarFacets() function,
0306 move constructor and move assignment operator.
0307 + Implemented faster version of HepPolyhedronTetMesh.
0308 + Revised HepPolyhedronEllipsoid, fixed visibility of edges in case of cut
0309 ellipsoid.
0310 + G4Visible: added "user" data member 'fInfo' from G4VMarker, with access
0311 and operator<<() functions, intended to offer the user/developer a way
0312 of communicating information.
0313 + G4VisExtent: in Transform(), use 'const auto&' to avoid copying.
0314
0315 o Intercoms
0316 ---------
0317 + Applied set of clang-tidy modernize, readability and performance fixes.
0318
0319 o Interfaces
0320 ----------
0321 + G4InteractorMessenger: prevent propagation of "/gui/*" commands to workers.
0322 + Fixed compilation warning on Intel compiler for shadowing data.
0323 + Preliminary build support for Qt5 and Qt6.
0324 + Use geant4_module_sources to add optional sources in CMake script.
0325 Added required G4VIS_USE_VTK_QT flag here instead of "Vtk" visualization
0326 module. Added dependency on Qt5 Widgets to "common" sub-module CMake
0327 script.
0328
0329 o Materials
0330 ---------
0331 + G4MaterialPropertyVector, G4OpticalMaterialProperties: organise material
0332 property vectors in increasing order of energy.
0333 Modified from GitHub PR#42 (https://github.com/Geant4/geant4/pull/42).
0334 + Corrected G4UCNMicroRoughnessHelper destructor.
0335 + Applied set of clang-tidy modernize, readability and performance fixes.
0336 + G4NistManager, G4NistMaterialBuilder, G4NistElementBuilder: use G4AutoLock
0337 for code simplification.
0338 + Replaced getenv() calls for data variables with G4FindDataDir() in
0339 G4IonStoppingData, G4MicroElecMaterialStructure and G4OpticalSurface.
0340 + G4Material: fixed trivial Coverity warnings.
0341
0342 o Parameterisations:
0343 -----------------
0344 + Added flush() method to the fast simulation models. This method allows to
0345 process the input buffer of the fast simulation model before the end of an
0346 event. It is used when particles are grouped together before the
0347 processing. The 'flush' is triggered inside the event loop of
0348 G4EventManager, when the stack is empty. The fast simulation model may
0349 add secondaries to the stack, which will then be processed by Geant4.
0350
0351 o Particles:
0352 ---------
0353 + In G4NuclieTable, replaced getenv() calls for data variables with
0354 G4FindDataDir().
0355 + Minor code formatting.
0356
0357 o Physics Lists:
0358 -------------
0359 + Constructors:
0360 o Replaced getenv() calls for data variables with G4FindDataDir() in data
0361 readers.
0362 o electromagnetic:
0363 - G4EmModelActivator: fixed mechanism to define PAI model per region.
0364 - In G4EmStandardPhysics_option3, G4EmStandardPhysics_option4,
0365 G4EmPenelopePhysics, G4EmStandardPhysicsSS, and G4EmLivermorePhysics
0366 use G4LinhardSorensenIonModel for GenericIon.
0367 - Adding possibility to enable new G4TransportationWithMsc for
0368 multiple-scattering. Enabled by default in G4EmStandardPhysics_option1.
0369 - G4EmBuilder: enable internal stepping in G4TransportationWithMsc
0370 if requested.
0371 - G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4:
0372 adopt identical configuration for msc, muon, hadron, and ion physics.
0373 - G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option4,
0374 G4EmStandardPhysics: selection of the model for energy loss
0375 fluctuation is included in ionisation processes according to the type
0376 defined in G4EmParameters.
0377 - G4EmStandardPhysics, G4EmStandardPhysics_option3,
0378 G4EmStandardPhysics_option4: use G4GammaGeneralProcess by default.
0379 - G4GammaGeneralProcess: implemented new method GetCreatorProcess().
0380 - G4EmStandardPhysics_option4: use Penelope ionisation model for e-
0381 below 100 keV.
0382 - G4EmBuilder: use check on process sub-type, do not substitute
0383 G4CoupledTransportation with G4TransportationWithMsc.
0384 - G4EmDNABuilder: new utility class, which provides instantiation of
0385 standard and DNA processes/models; this reduces code duplication for
0386 DNA physics, energy intervals for DNA models are defined in one place.
0387 Added option2,3,4,6,8 configurations.
0388 Added extra utility methods to find or to build electron processes.
0389 - Made G4EmDNAPhysics the base class for DNA physics constructors.
0390 Added interface to G4EmDNABuilder.
0391 - G4EmDNABuilder, G4EmDNAPhysicsActivator: make consistent the
0392 configuration of DNA physics on top of standard physics.
0393 - Simplified code in G4EmDNAPhysics_option1, G4EmDNAPhysics_stationary,
0394 G4EmDNAPhysics_option5 and G4EmDNAPhysics_stationary_option4.
0395 - G4EmDNAPhysics_option6, G4EmDNAPhysics_option8: use "fast" option.
0396 - G4EmDNAPhysics_option7, G4EmDNAPhysics_stationary_option6,
0397 G4EmDNAPhysics_option3, G4EmDNAPhysics_stationary_option2: simplified
0398 code.
0399 - Added G4DNABrownianTransportation, SBS and IRT_syn models in
0400 G4EmDNAChemistry_option3.
0401 o gamma_lepto_nuclear:
0402 - G4EmExtraPhysics, G4EmMessenger: use C++11 keywords; suppressed
0403 broadcasting of UI commands.
0404 o limiters:
0405 - G4SpecialCuts: added setting of process type 'fGeneral' and sub type.
0406 - G4MinEkineCuts: removed setting of process type 'fUserDefined'.
0407 - Moved G4UserSpecialCuts class from "transportation" module.
0408 + util:
0409 o G4PhysListUtil: added new utility method to access a process via
0410 sub-type, simplified methods to access hadron processes.
0411 Use dynamic_cast instead of static_cast.
0412
0413 o Electromagnetic Processes:
0414 -------------------------
0415 + Adjoint:
0416 o G4AdjointComptonModel, G4AdjointCSManager: use updated interface
0417 to cross-section from G4VEmProcess.
0418 o G4AdjointBremsstrahlungModel: use updated interface to G4EmModelManager.
0419 + DNA:
0420 o Added G4DNAPolyNucleotideReactionProcess and G4VDNAHitModel classes for
0421 DNA damage applications.
0422 o Prefer pointer to 'const G4Material' where possible.
0423 Removed useless 'const_cast' of G4VSensitiveDetector.
0424 o Optimised IRT-syn model, use reaction radius and reaction type from the
0425 reaction table.
0426 o Deleted G4VReactionType, G4DNAReactionTypeManager, G4DNAIRT_geometries,
0427 G4DNATotallyDiffusionControlled and G4DNAPartiallyDiffusionControlled.
0428 o G4ITTransportation: Make PrepareState() more function-like, expect
0429 semicolon.
0430 o G4DNAPolyNucleotideReactionProcess: moved 'PrepareState' and 'State'
0431 macros in source file; made PrepareState() more function-like, expect
0432 semicolon; moved variable 'pMoleculeA' under G4VERBOSE.
0433 o Added condition of water material for the OUTSIDE_OF_MOTHER_VOLUME
0434 warning in G4DNAMolecularDissociation::DecayIt().
0435 o Added protection in G4DNACPA100IonisationModel for cumulative
0436 cross-section interpolation.
0437 o Added flag 'OctreeFinder' in IRT_syn's Initialize() method.
0438 o Added parameters including the chemical molecules and reaction list
0439 involved in the radiolysis.
0440 o Modified the macro in G4Molecule and G4ITType for linker problems on
0441 Windows.
0442 o Save local instances for recurrent access to particle definition in
0443 G4DNAMillerGreenExcitationModel, G4DNARuddIonisationExtendedModel and
0444 G4DNARuddIonisationModel.
0445 o Revised code to use G4Pow and G4Log consistently.
0446 o In G4DNARuddIonisationExtendedModel, do not include ions that are not
0447 defined in G4DNAGenericIonsManager.
0448 o Fix in G4KDTree algorithm. Addressing problem report #2235.
0449 Minor code cleanup.
0450 o Added G4VUserBrownianAction class, used in G4DNABrownianTransportation
0451 and in G4DNAMolecularDissociation.
0452 o Use int64_t for molecules width integer types.
0453 o Added 'fResetScavenger' data member in G4SchedulerMessenger.
0454 o Incorporation of model based on RPWBA to transport protons
0455 at 100-300 MeV.
0456 o Added G4DNARPWBAExcitationModel and G4DNARPWBAIonisationModel.
0457 o Updated data structure to improve performance of the mesoscopic model.
0458 o Change scavenging filter of the IRT beyond 1 us.
0459 o Use thread-local flag in G4VMoleculeCounter.
0460 o Replaced std::getenv() calls for data variables with G4FindDataDir()
0461 in data readers.
0462 o Corrected DNA ion definitions in G4DNARuddIonisationExtendedModel.
0463 o Added missing headers inclusions for self-consistency.
0464 + Low Energy:
0465 o G4LivermoreGammaConversionModel, G4LivermorePhotoElectricModel and
0466 G4LivermoreGammaConversion5DModel: set Spline interpolation for EPDL97.
0467 o Fixed use of potential uninitialised pointer in
0468 G4AtomicDeexcitation::GenerateParticles(..).
0469 o Replaced getenv() calls for data variables with G4FindDataDir() in data
0470 readers.
0471 o Removed Latin-1 characters from description in banners.
0472 + Muons:
0473 o G4MuIonisation: added selection of the model for energy loss
0474 fluctuations. Use G4MuBetheBloch model above 0.2 MeV.
0475 o G4MuBremsstrahlungModel: moved low energy limit from 1 GeV to 100 MeV.
0476 o G4MuPairProductionModel: moved low energy limit from 1 GeV to 850 MeV.
0477 Some code cleanup: formatting, removed extra space lines.
0478 + Polarisation:
0479 o Prefer pointer to 'const G4Material' where possible.
0480 + Standard:
0481 o G4UrbanMscModel: moving safety computation before step limitation
0482 algorithms in order to save few instructions; should not affect results.
0483 Added two extra class members. Improved code comments.
0484 Extended cache data with 5 variables for positrons;
0485 removed unused headers; minor saving of instructions.
0486 o G4eIonisation, G4hIonisation, G4ionIonisation: added selection of the
0487 model for energy loss fluctuations.
0488 o G4PairProductionRelModel, G4eBremsstrahlungRelModel,
0489 G4PairProductionRelModel and G4eBremsstrahlungRelModel: added inclusion
0490 of headers of G4Exp, G4Pow to to make translation unit self-consistent.
0491 o In G4WentzelVIRelModel, G4WentzelOKandVIxSection,
0492 G4LindhardSorensenIonModel and G4ICRU49NuclearStoppingModel, use
0493 G4AutoLock.
0494 o G4BetheHeitler5DModel: do not instantiate G4MuonPlus, G4MuonMinus inside
0495 the model to allow usage of this class in physics lists without muons.
0496 o G4eBremsstrahlung, G4hIonisation: improved initialisation.
0497 o G4eBremsstrahlungRelModel, G4eBremParametrizedModel: code cosmetics.
0498 o Run clang-tidy, use nullptr, default and auto keywords; removed unneeded
0499 nullptr checks when deleting.
0500 o Replaced getenv() calls for data variables with G4FindDataDir() in data
0501 readers.
0502 + Utils:
0503 o New G4TransportationWithMsc specialised tranportation process; added
0504 related flag to G4EmParameters.
0505 o G4EmConfigurator implemented model per region for
0506 G4TransportationWithMsc. Updated interfaces.
0507 o G4EmTableType: added 3d peak energy in the data structure needed for
0508 Bremsstrahlung.
0509 o G4VEnergyLossProcess: fill data structure for Bremsstrahlung type of
0510 cross-section only in the master thread; do not repeat in each thread;
0511 removed ineffective cache from run time computation of cross-section.
0512 o G4EmParametersMessenger: improved instantion order of UI directories;
0513 directories are created only in the master thread.
0514 o G4EmModelManager: updated interface to Initialise() method;
0515 removed obsolete method Update().
0516 o G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering: use updated
0517 method of G4EmModelManager.
0518 o G4EmParametersMessenger: restored UI command "/process/em/integral".
0519 o G4VEmProcess: updated methods to access cross-section at run time;
0520 implemented new virtual method GetCrossSection(); removed unused methods.
0521 o G4EmCalculator: use updated method from G4VEmProcess.
0522 Fixed variable shadowing.
0523 o G4EmUtility: a new utility class.
0524 o G4VMultipleScattering: updated arguments for AddEmModel(..),
0525 SetEmModel(..), and EmModel(..) methods from G4VEmModel* to
0526 G4VMscModel*.
0527 o G4LowEnergyEmProcessSubType: added sub-type ID (66) for DNAScavenger
0528 process.
0529 o G4EmTableUtil: new utility to perform common computations at
0530 initialisation.
0531 o G4VEmModel, G4EmCalculator, G4EmConfigurator: use G4EmUtility.
0532 o G4VEmModel, G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering
0533 and G4LossTableManager: use new utiity methods; updated sampling of
0534 random elements in compounds and random isotopes; code cleanup.
0535 o G4EmLowEParameters: change default photon database to EPICS2017.
0536 o G4VEmProcess, G4VEnergyLossProcess: for integral method, use master
0537 thread cross-section type and pointers directly; simplifying
0538 initialisation.
0539 o G4EmParameters: update flag to tri-state for enabling it.
0540 Added extra parameter: type of fluctuation model.
0541 o G4EmExtraParametersMessenger: fixed typo.
0542 Addressing problem report #2492.
0543 o G4VEnergyLossProcess: moved out common computations to G4EmTableUtil;
0544 use G4EmDataHandler and removed unused headers/methods. Fixed trivial
0545 Coverity warnings.
0546 o G4VEnergyLossProcess, G4EmDataHandler: improved StorePhysicsTable(..)
0547 method and debug printouts.
0548 o G4EmParametersMessenger: added extra UI command to define fluctuations
0549 model.
0550 o Code cleanup with clang-tidy: use default constructors; nullptr, auto
0551 and using keywords.
0552 + Xrays:
0553 o Code cleanup with clang-tidy: use default constructors; nullptr and
0554 auto keywords.
0555
0556 o Generic Processes:
0557 -----------------
0558 + Management:
0559 o G4VDiscreteProcess: added virtual method GetCrossSection()
0560 needed for integral approach both in hadronics and EM modules.
0561 Added virtual method MinPrimaryEnergy(..).
0562 o G4VProcess: introduced new virtual method GetCreatorProcess().
0563 + Optical:
0564 o Prefer pointer to 'const G4Material' where possible.
0565 o Code cleanup with clang-tidy: use default constructors; auto keyword;
0566 remove 'void' function argument; don't check for nullptr before delete;
0567 use operator==() for string comparisons.
0568 + Parameterisation:
0569 o Added flush() method to the fast simulation models. This method allows
0570 to process the input buffer of the fast simulation model before the end
0571 of an event. It is used when particles are grouped together before the
0572 processing. The 'flush' is triggered inside the event loop of
0573 G4EventManager, when the stack is empty. The fast simulation model may
0574 add secondaries to the stack, which will then be processed by Geant4.
0575 + Solids State:
0576 o In G4LatticeReader, replaced getenv() calls for data variables with
0577 G4FindDataDir().
0578 + Transportation:
0579 o Revised implementation of G4CoupledTransportation: now inheriting from
0580 G4Transportation and removed duplicated variables and methods; use new
0581 constant 'kMassNavigatorId' from G4TransportationManager.
0582 o G4CoupledTransportation: set flags from G4Transportation: replaced
0583 'fFirstStepInAnyVolume' with 'fFirstStepInVolume'; replaced
0584 'fAnyGeometryLimitedStep' with 'fGeometryLimitedStep'; removed wrong
0585 check in case of zero steps.
0586 o G4Transportation: removed wrong check in case of zero steps; set step
0587 status on volume boundary. Removed non-working check for any field.
0588 o Moved G4UserSpecialCuts to "physics_lists/constructors/limiters" module.
0589 o Removed useless 'const_cast' of G4VSensitiveDetector.
0590
0591 o Hadronic Processes:
0592 ------------------
0593 + Replaced getenv() calls for data variables with G4FindDataDir() in data
0594 readers.
0595 + cross_sections
0596 o G4CrossSectionDataStore, G4VCrossSectionDataSet: preparation for
0597 integral method; removed unused methods.
0598 + management
0599 o G4HadronicProcess: temporary check and protection against anomalous
0600 condition leading to rare crashes recently observed with neutronHP; when a
0601 secondary particle has a huge kinetic energy (i.e. higher than the max
0602 energy allowed - by default 100 TeV), throw a warning exception and
0603 neglect the particle concerned (i.e. corresponding G4Track object is not
0604 created). Propagate the information on parent resonance (in the
0605 FillResults() method, from G4HadSecondary to G4Track).
0606 o G4HadronicProcess: implemented integral method.
0607 o G4HadXSTypes, G4HadXSHelper: new helper classes.
0608 + models/binary_cascade
0609 o G4GeneratorPrecompoundInterface, G4BinaryCascade: propagate the
0610 information on parent resonance (in the ApplyYourself() method, from
0611 G4ReactionProduct to G4HadSecondary; in other methods, from
0612 G4KineticTrack to G4ReactionProduct).
0613 + models/cascade
0614 o Fixed wrong comparison between two arrays in findCrossSection(..) for
0615 G4CascadePPChannel, G4CascadeNPChanneland G4CascadeNNChannel.
0616 + models/de_excitation
0617 o G4Evaporation, G4UnstableFragmentBreakUp: completed fix about production
0618 of unphysical fragments; improved debug printout.
0619 Addressing problem report #2355.
0620 o G4EvaporationChannel, G4Evaporation: added limitation (A < 30) on decay
0621 of unphysical fragment, allowing for removal of light unphysical states
0622 and providing improved isotope production for the spallation fragments.
0623 o G4EvaporationChannel, G4EvaporationProbability, G4VEmissionProbability,
0624 G4VCoulombBarrier, G4CoulombBarrier: use new method from G4Fragment.
0625 o G4VEvaporationChannel, G4EvaporationChannel, G4VEmissionProbability
0626 and G4EvaporationProbability: improved inverse cross-section
0627 parameterisation at threshold.
0628 o G4PhotonEvaporation: fixed situation when excited fragments are created
0629 with excitation energy not corresponding to level energies from
0630 G4LEVELGAMMADATA. Addressing problem report #2434.
0631 Also fixing event non-reproducibility for the case when radioactive
0632 decay is enabled on top of any physics list.
0633 Simplified handling of floating levels. For floating levels check if
0634 levels with the same energy can be used for sampling transitions;
0635 code clean-up.
0636 o G4EvaporationProbability: reduced usage of cache.
0637 o G4ExcitationHandler: use IsLongLived() flag from G4Fragment to decide
0638 if de-excitation of the fragment should be stopped.
0639 o G4VEmissionProbability: limit number of bins for numerical integration
0640 to 50.
0641 o G4VEmissionProbability: updated sampling of the emitted fragment energy
0642 needed. Addressing proble report #2443.
0643 Fixed sampling of tail of distribution; added numerical protections.
0644 More strong limit on accuracy of integrated probability; improved debug
0645 printout.
0646 o G4CoulombBarrier: tuned parameters.
0647 o G4LevelManger, G4NuclLevel: removed verbose printouts; code clean-up.
0648 o G4NuclearLevelData: use G4AutoLock.
0649 o Use G4BestUnit in G4DeexPrecoParameters::StreamInfo().
0650 o Code cleanup.
0651 + models/em_dissociation
0652 o G4EMDissociation: updated according to G4Fragment modifications.
0653 + models/inclxx
0654 o G4INCLParticle, G4INCLEventInfo, G4INCLNucleus, G4INCLDeltaDecayChannel,
0655 G4INCLXXInterface: set and propagate the information on parent resonance.
0656 o G4INCLPiNElasticChannel: erase the information on parent resonance in
0657 the case of charge exchange.
0658 o G4INCLPiNToDeltaChannel, G4INCLPiNToOmegaChannel, G4INCLPiNToEtaChannel,
0659 G4INCLPiNToMultiPionsChannel, G4INCLNpiToLKpiChannel,
0660 G4INCLNpiToLK2piChannel, G4INCLNpiToNKKbChannel, G4INCLNpiToSK2piChannel,
0661 G4INCLNpiToSKpiChannel, G4INCLNpiToSKChannel, G4INCLNpiToLKChannel,
0662 G4INCLNpiToMissingStrangenessChannel: erase the information on parent
0663 resonance in inelastic channels (where the nucleon and pion initial-state
0664 objects are re-used for the final state).
0665 + models/lend
0666 o Fixed potential use of pointer after free in nf_utilities/nfu_realloc(..)
0667 function.
0668 + models/particle_hp
0669 o G4ParticleHPContAngularPar: added protections against evaluations of
0670 arrays at negative index (-1), fixing rare reproducibility problems and
0671 rare crashes that have been recently observed.
0672 o G4ParticleHPContEnergyAngular: fixed Coverity report. Expected no effect.
0673 o G4ParticleHPThermalScatteringNames: updated to use new ThermalScattering
0674 data in G4NDL-4.7.
0675 + models/parton_string
0676 o Allow control of diffraction for baryon number greater than 10 in
0677 G4FPFParameters. The option comes from G4HadronicParameters and the
0678 default behaviour remains the same (i.e. off).
0679 o Fixes to get isotropic distributions in annihilations at rest: in
0680 G4DiffractiveSplitableHadron, set proper parton index.
0681 In G4DiffractiveExcitation, in the CreateStrings() method, take into
0682 account that strings are created in G4FTFAnnihilation; by default, the
0683 method CreateStrings() creates a string from a wounded nucleon/hadron,
0684 but this is not needed in the case of annihilation.
0685 In G4FTFAnnihilation, removed splitting of hadron; fixed bugs in the
0686 calculations of kinematical properties; set quark momenta at string ends,
0687 to properly account for string order on rapidity.
0688 o G4HadronBuilder: added a new argument in constructor, and a new data
0689 member to the class. This is needed to set a special mixing of
0690 pseudo-scalar and vector mesons for s-sbar mesons. Introduced to
0691 describe phi-meson production in proton-proton interactions measured
0692 by NA61/SHINE.
0693 o G4VLongitudinalStringDecay: tuned the probability of pseudo-scalar meson
0694 production, to describe K*0 meson production in proton-proton
0695 interactions according to NA61/SHINE data. Introduced also a new
0696 parameter (probability of pseudo-scalar meson production in s-sbar
0697 mesons) to increase the phi-meson yield in proton-proton interactions.
0698 Fixed a bug in mixing eta_prime and phi mesons in the quark systems
0699 d-dbar, u-ubar and s-sbar.
0700 o G4LundStringFragmentation: introduced few changes for special treatment
0701 of the last string decay in the case of ss-q or ss-qq, ss-sbar sbar last
0702 string decay. This improves the yield of anti-Xi hyperons in
0703 proton-proton interactions according to the NA61/SHINE data.
0704 o G4VSplitableHadron: changed the method Splitting() from "protected" to
0705 "public" (needed to change the status of SplitableHadron in
0706 G4FTFAnnihilation, to get isotropic distributions in annihilations at
0707 rest).
0708 + models/radioactive_decay
0709 o Cosmetics in G4RadioactiveDecay::StreamInfo().
0710 + models/theo_high_energy
0711 o G4TheoFSGenerator: propagate the information on parent resonance (in
0712 the ApplyYourself() method, from G4ReactionProduct to G4HadSecondary).
0713 + processes
0714 o Prefer pointer to 'const G4Material' where possible.
0715 + util
0716 o G4Fragment: added 'IsLongLived' flag and Get/Set methods needed for the
0717 de-excitation module; clean-up inline methods.
0718 Fixed computation of binding energy for hypernuclei; added
0719 a new private method to recompute ground state mass, excitation energy
0720 and to check consistency of input; left inlined only simple methods;
0721 added new methods SetZAandMomentum(..) and RecomputeGroundStateMass();
0722 improved comments and warning messages.
0723 o G4HadronicParameters: added flags for switching on/off the integral
0724 approach for hadron elastic and, independently, inelastic processes;
0725 by default, it is enabled for inelastic.
0726 Moved G4Threading header to source.
0727 o Added option to G4HadronicParameters to control the diffraction
0728 dissociation for nucleon projectile on target nucleus with baryon
0729 number greater than 10: by default, both projectile and target
0730 diffraction are switched off (but they are both active in the case
0731 of target nucleus with baryon number below or equal to 10; if instead
0732 the flag is set to "true", then both projectile and target diffraction
0733 are activated regardless of the target nucleus).
0734 o G4KineticTrack, G4HadSecondary, G4ReactionProduct, G4DecayKineticTracks,
0735 G4DecayStrongResonances: propagate the information on parent resonance.
0736
0737 o Run
0738 ---
0739 + Imported implementations of task-based interfaces/implementations from
0740 the "Tasking" module. See History.tasking file for History of tasking
0741 code.
0742 + Added new G4DNAScavenger in PhysicsListHelper for DNA processes.
0743
0744 o Tasking
0745 -------
0746 + Retired module. Contents merged in "global" and "Run" categories.
0747
0748 o Track & Tracking
0749 ----------------
0750 + In G4ParticleChangeForTransport, simplified UpdateStepForAlongStep(),
0751 assuming that transportation is always the first process.
0752 Apply proposed step length; further simplified UpdateStepForAlongStep()
0753 method, assuming that transportation is always the first process.
0754 + Only set step status of 'fGeomBoundary' when on volume boundary.
0755 + In G4SteppingManager, refactor and simplify processing of secondaries;
0756 use new virtual method GetCreatorProcess() when processing secondaries.
0757 Corrected 'ProcessDefinedStep' for AtRest case.
0758 Removed check on cuts and removed dependence of tracking from EM physics;
0759 real implementation of ApplyCut() is done within EM physics classes.
0760 Merged G4SteppingManager translation units.
0761 + G4Track: added methods to get/set information on (short-lived) parent
0762 resonance.
0763
0764 o Visualization:
0765 -------------
0766 + Updated build scripts and internal dependencies.
0767 + Preliminary build support for Qt5 and Qt6.
0768 + management:
0769 o Implemented Twinkling, i.e, the rhythmic variation of brightness of
0770 given touchables: in G4VVisCommand added Twinkle() method; exploit
0771 twinkling in UI commands in G4VisCommandsTouchable and
0772 G4VisCommandsViewer.
0773 o Re-worked and rationalised special mesh rendering utilities.
0774 The idea is that these are "standard" functions that are optional.
0775 They are optimised for OpenGL but they also work fine for ToolsSG and
0776 Qt3D. An attempt to draw a mesh with any other driver will result in a
0777 warning and only the container will be drawn. Other drivers will have to
0778 implement their own AddCompound(...G4Mesh...) function or choose to use
0779 the standard functions or some thereof.
0780 o Take advantage of recent developments in HepPolyhedron for rendering:
0781 conversion of tetrahedra to enclosing polyhedron removing inner surfaces;
0782 conversion of boxes to enclosing polyhedron removing inner surfaces.
0783 Also take advantage of developments in G4PhysicalVolumeModel:
0784 when a mesh has been found, an artificial node is created and added
0785 to the PVPath whose physical volume points to the parameterisation.
0786 It is used in G4VSceneHandler to transmit the material name so that,
0787 for example, the Qt viewer scene tree shows items by material. In the
0788 case of a medical phantom, the materials are usually given the name
0789 of the organ, so users can select on them.
0790 o G4VisCommandsViewer: "/vis/viewer/centreOn" and "centreAndZoomInOn":
0791 only fly and twinkle if 'KernelVisitElapsedTimeSeconds < 0.1'. It is
0792 not feasible for complex scenes; in that case go straight to requested
0793 volume without flying and twinkling.
0794 Introducing "/vis/viewer/resetCameraParameters" UI command, resetting
0795 *only* the camera parameters (view direction, etc.).
0796 o G4VSceneHandler: added utility function Draw3DRectMeshAsDots(..); for a
0797 rectangular 3-D mesh, draw as coloured dots, one dot randomly placed in
0798 each visible cell. Tidy Draw3DRectMeshAsDots().
0799 Allow for multiple meshes in a single screen; relevant for special mesh
0800 rendering. Renamed 'PseudoSceneFor3DRectMeshAsDots' to
0801 'PseudoSceneFor3DRectMeshPositions'; serves both dots and surfaces.
0802 Added 'Draw3DRectMeshAsSurfaces'.
0803 Make sure dots (markers) are treated as "hidden", i.e., use the z-buffer
0804 like other primitives (the default is "non-hidden").
0805 Make sure dots and vertices are in local coordinate system and ask the
0806 rendering train to transform them to world coordinates in the normal
0807 way through BeginPrimitives(..).
0808 Replaced 'NameAndColour' by 'NameAndVisAtts'.
0809 Exploit move operator when creating polyhedra for Special Mesh Rendering.
0810 Numerous improvements to comments and messaging.
0811 o Introducing drawing of parameterised tetrahedral mesh.
0812 G4VSceneHandler::DrawTetMeshAsDots(): default tet mesh drawing.
0813 o Ensure X-geometry string is copied correctly to a new viewer.
0814 o G4VisCommandsCompound: improved command guidance of "/vis/open".
0815 o G4VisCommandsViewer: improved command guidance of "/vis/viewer/create".
0816 o G4VisParameters: added new accessors IsWindowLocationHintX/YNegative().
0817 o G4VisCommandsTouchable: augment "/vis/touchable/draw", added Boolean
0818 argument: if true, draw the extent (bounding box); Default false.
0819 In "/vis/touchable/dump", fix missing dump of vis attributes.
0820 o G4VViewer: added data member and access method for
0821 'KernelVisitElapsedTimeSeconds'. This is measured in ProcessView().
0822 o In G4VisExecutive, introducing 'FALLBACK' drivers for TSGQt and VTKQt.
0823 A FALLBACK vis driver is selected if the user chooses a UI session that
0824 is not compatible with the requested driver. For example, if the user
0825 has built Geant4 with Qt, the TSGQt driver will be available and be
0826 the "default" driver, so "/vis/open TSG" will attempt to open TSGQt. But
0827 if the user has chosen a dumb terminal session, the vis manager selects
0828 TSGX11, for example, instead.
0829 o Improved messaging for the case that a driver is not found in the
0830 candidate list.
0831 o Introduced compound command: "/vis/plot <h1|h2> <id>".
0832 This is the first part of a programme to facilitate the drawing of
0833 plots (if any have been registered with the analysis manager) at the
0834 end of a run. At the moment only the ToolsSG vis driver can offer this,
0835 so the vis manager issues appropriate messages.
0836 Later, we hope to introduce something like "/vis/reviewPlots", which
0837 will allow the user to view all available plots in sequence.
0838 o G4VisManager: added access method: IsEnabled(). Register the new
0839 commands. In EndOfEvent(), protect view checking with mutex lock
0840 in MT mode, and deal better with the case of scene requesting no kept
0841 events (greatly speeds plotting).
0842 Only print list of available histograms if more than one per category.
0843 Fixed crash in G4VisManager::GeometryHasChanged() observed in example
0844 AnaEx01. GeometryHasChanged() is a method that is called by the run
0845 manager. Sometimes the user chooses to delete the existing geometry
0846 tree and ask the run manager to construct a new detector geometry.
0847 Previously existing vis models of the geometry become invalid and the
0848 vis manager had to pick up the new geometry.
0849 The vis manager removes invalid models from the vis scenes and now adds
0850 the new version of the world back in. Other types of models, trajectory
0851 drawing, for example, if specified in the original scene, are kept in
0852 the new version of the scene.
0853 o G4VisCommandsSceneAdd: new command "/vis/scene/add/plotter", to add
0854 G4PlotterModel to end-of-run list.
0855 Adapted "/vis/scene/add/volume" UI command to new
0856 G4PhysicalVolumesSearchScene.
0857 o G4VisCommandsCompound: introducing "/vis/plot <h1|h2> <id>" command.
0858 o G4Scene: redefined IsEmpty().
0859 o G4VisCommandsViewerSet: improved messaging for
0860 "/vis/viewer/set/lineWidth"; this simply prints a message saying
0861 how *actually* to change line width.
0862 o Introducing "/vis/viewer/set/specialMeshRenderingOption <dots|surfaces>"
0863 UI command; "dots" draw one dot per mesh point; "surfaces" group mesh
0864 points by colour and material and compute the outer surface or envelope,
0865 removing internal shared faces. So far, only the "dots" option is
0866 implemented for some drivers.
0867 o Introducing "/vis/viewer/set/lineWidth" UI command, a do-nothing command
0868 that tells how to change line width.
0869 o Implemented "/vis/reviewPlots" UI command.
0870 o G4PlotterManager: removed not used inclusion of <tools/xml/xml_style>.
0871 o G4VisCommandsSceneAdd: changed the default width of axes added to the
0872 scene with automatic length and width determination.
0873 + modeling:
0874 o G4Mesh: augmented available data for 3D rectangular mesh.
0875 Programmed for parameterised tetrahedron mesh.
0876 Simplified algorithm: now finding 1-deep rectangular meshes such as
0877 G4PhantomParameterisation. Added 'fpParameterisedVolume' pointer and
0878 accessor.
0879 o G4PhysicalVolumeModel: added 'LocalExtent' and 'GlobalExtent' to method
0880 GetAttDefs(). In TouchableProperties, added 'fTouchableFullPVPath'.
0881 Added modifiers; for AddCompound(mesh), provide an artificial node as
0882 an (optional) hook for anything that might be generated.
0883 o Migrated G4PhysicalVolumesSearchScene and G4TouchablePropertiesScene
0884 to use 'fTouchableFullPVPath'.
0885 o Retired G4BoundingSphereScene and G4PhysicalVolumeSearchScene.
0886 G4BoundingSphereScene accumulated bounding spheres and often
0887 overestimated the extent of the scene; it is now superseded by
0888 G4BoundingExtentScene. G4BoundingExtentScene deals directly with
0889 extents, which makes it neater and more tightly estimates the overall
0890 extent of the scene.
0891 o G4PhysicalVolumeSearchScene is superseded by
0892 G4PhysicalVolumesSearchScene. G4PhysicalVolumesSearchScene finds all
0893 occurrences of a physical volume and returns a "findings vector".
0894 Removed last ambiguous and misleading argument in the constructor.
0895 o G4PseudoScene: added AddCompound(const G4Mesh&) method; if special mesh
0896 rendering is set, this catches mesh candidates (certain types of
0897 parameterisations) and avoids descending into the parameterisations.
0898 o G4PhysicalVolumeModel: added SetSpecialMeshRendering(true) to avoid
0899 traversing (certain types of) parameterisations (see above).
0900 Eliminated goto statements.
0901 o Allow arrow proportions to be greater than 1/100. Produces more visible
0902 arrows for field visualisation and also obeys the input parameters more
0903 closely.
0904 + externals/gl2ps:
0905 o Fixed Coverity warnings in gl2ps.
0906 + gMocren:
0907 o G4GMocrenFileSceneHandler: removed redundant header inclusion.
0908 + OpenGL:
0909 o G4OpenGLSceneHandler: in AddCompound(..), use base class utility
0910 G4VSceneHandler::Draw3DRectMeshAsDots(..); for parameterised tetrahedron
0911 mesh, call default G4VSceneHandler::DrawTetMeshAsDots(); added missing
0912 return statement for unimplemented cases; code tidy.
0913 o Retired display list re-use and display list limit.
0914 o Added G4gl2ps, a class frontend to tools/gl2ps intended to be used by
0915 OpenGL and OpenInventor; does not depend directly of OpenGL.
0916 o Have G4OpenGLViewer use the thread safe tools/gl2ps.
0917 o Use StandardSpecialMeshRendering(mesh).
0918 + OpenInventor:
0919 o G4OpenInventorViewer: removed misleading obsolete comment regarding
0920 kernel visit in the case of a change in vis attribute modifiers.
0921 o G4OpenInventorQtExaminerViewer: fixed compilation warning on Intel
0922 compiler for shadowing data.
0923 o Have G4OpenGLOpenInventorViewer and SoGL2PSAction using the thread safe
0924 tools/gl2ps.
0925 + Qt3D
0926 o G4Qt3DViewer: re-implemented wheelEvent() for perspective projection;
0927 now taking into account the extent of the scene.
0928 o G4Qt3DSceneHandler:in AddCompound(..), use base class utility
0929 G4VSceneHandler::Draw3DRectMeshAsDots(..).
0930 o G4Qt3DSceneHandler::AddCompound(): for parameterised tetrahedron mesh,
0931 call default G4VSceneHandler::DrawTetMeshAsDots().
0932 o G4Qt3DSceneHandler: updated AddPrimitive(..) to current usage.
0933 Commented out line elimination in AddPrimitive(..), as too expensive for
0934 a large polyhedron; allow the graphics-reps utilities to optimise this.
0935 Use StandardSpecialMeshRendering(mesh).
0936 o Fixed compilation warnings about shadowing.
0937 + ToolsGS:
0938 o G4ToolsSGViewer: reimplement wheel_rotate() for perspective projection;
0939 now taking into account the extent of the scene.
0940 Currently, the ToolsSG viewer cannot draw trajectories in MT mode, so
0941 in function SwitchToMasterThread() we draw any events that have been
0942 kept by the vis manager. It fixes an issue where plots were being drawn
0943 twice.
0944 o Reactivate G4ToolsSGQtGLES::IsUISessionCompatible(), paves way for
0945 permitted instantiation of multiple TSG drivers.
0946 o Access G4VVisCommand::G4VisManager pointer through static function
0947 GetVisManager() to prevent DLL issues on Windows.
0948 o G4ToolsSGSceneHandler: in AddPrimitive(), define dots as a single pixel;
0949 Use GetMarkerSize() for circles and squares.
0950 In AddCompound(): for parameterised tetrahedron mesh, call default
0951 G4VSceneHandler::DrawTetMeshAsDots().
0952 Adding warning message if plot cannot be found.
0953 In SetPlotterHistograms(), suppressed "/control/verbose" messages for
0954 "/analysis/*/get*" commands.
0955 In AddPrimitive(..), comment out common line elimination, as too
0956 expensive for a large polyhedron; allow the graphics-reps utilities to
0957 optimise this. Use StandardSpecialMeshRendering(mesh).
0958 o Changed namespace for g4tools code from "tools" to "toolx" for externals.
0959 + Vtk:
0960 o Moved setting of G4VIS_USE_VTK_QT flag to "interfaces" module.
0961
0962 o Data Sets:
0963 ---------
0964 + G4EMLOW-8.1:
0965 o Added DNA files for the RPWBA models.
0966 + G4NDL-4.7:
0967 o Updated "ThermalScattering" component, obtained from thermal scattering
0968 data from JEFF-3.3, and adding the ENDF/BVIII-0 materials not in
0969 JEFF-3.3, coupled to JEFF-3.3 nuclear cross-sections.
0970
0971 o Examples:
0972 --------
0973 + Updated reference outputs, macros, READMEs and scripts.
0974 + advanced/air_shower
0975 o Define all material properties in order of increasing energy.
0976 + advanced/amsEcal
0977 o Prefer pointer to 'const G4Material' where possible.
0978 + advanced/brachytherapy
0979 o Migration to C++11/14/17 features.
0980 + advanced/ChargeExchangeMC
0981 o CexmcHadronicProcess: disabled integral method, as not applicable to
0982 this example.
0983 + advanced/eRosita
0984 o Replaced getenv() calls for data variables with G4FindDataDir().
0985 + advanced/hadrontherapy
0986 o Prefer pointer to 'const G4Material' where possible.
0987 + advanced/ICRP110_HumanPhantoms
0988 o Use special mesh rendering.
0989 o Corrected error in reading the first voxels (in x=0, y=0).
0990 o Migration to C++11/14/17 features.
0991 + advanced/iort_therapy
0992 o Simplified calls to SetProductionCut().
0993 + advanced/microbeam
0994 o Moved back to original switching field value.
0995 + advanced/STCyclotron
0996 o Removed no-op lines; simplified calls to SetProductionCut().
0997 + basic/B3
0998 o Set new analysis file name for the second run in run2.mac to avoid
0999 overwriting the output from the first run.
1000 + extended/electromagnetic/TestEm3
1001 o Prefer pointer to 'const G4Material' where possible.
1002 + extended/electromagnetic/TestEm5
1003 o Allow changing the gun position via UI command.
1004 + extended/electromagnetic/TestEm9
1005 o Updated all user actions: more correct count of creator processes;
1006 use C++11 keywords; removed not needed headers; moved ScoreNewTrack(..)
1007 from Tracking to Stepping action class.
1008 + extended/electromagnetic/TestEm15
1009 o Added description of UI commands to control G4BetheHeitler5DModel.
1010 + extended/eventgenerator/particleGun
1011 o Updated reference in PrimaryGeneratorAction2.
1012 + extended/exoticphysics/monopole
1013 o G4MonopoleTransportation: set step status on volume boundary.
1014 o Removed useless 'const_cast' of G4VSensitiveDetector.
1015 + extended/hadronic/Hadr03
1016 o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1017 + extended/hadronic/Hadr05
1018 o Prefer pointer to 'const G4Material' where possible.
1019 o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1020 + extended/hadronic/Hadr06
1021 o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1022 + extended/hadronic/Hadr07
1023 o TrackingAction: print ions with zero meanLife.
1024 o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1025 + extended/hadronic/NeutronSource
1026 o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1027 + extended/hadronic/ParticleFluence
1028 o New set of examples implementing different setups showing how to score
1029 particle fluences (Sphere, Concentric Spheres, Layer, Calo).
1030 + extended/medical/dna/chem4
1031 o Added macro commands to control chemical molecules and reactions.
1032 o Minor correction for reaction type in macro file beam.in.
1033 o Use thread-local flag in G4VMoleculeCounter.
1034 + extended/medical/dna/chem5
1035 o Use thread-local flag in G4VMoleculeCounter.
1036 + extended/medical/dna/chem6
1037 o Adding condition for only one event, to avoid potential FPE crash.
1038 o Added PhysicsListMessenger.
1039 o Added short chemical reaction list.
1040 o Use thread-local flag in G4VMoleculeCounter.
1041 o Added missing headers inclusion for self-consistency.
1042 + extended/medical/dna/dnaphysics
1043 o In main(), enable visualisation only in interactive mode;
1044 use G4RunManagerFactory.
1045 o PhysicsList: added RadioactiveDecayPhysics.
1046 + extended/medical/dna/microyz
1047 o Added UI commands for TrackerSD radius selection.
1048 o Added missing headers inclusion for self-consistency.
1049 + extended/medical/dna/moleculardna
1050 o New example showing how to simulate physics, physico-chemistry and
1051 chemistry processes in DNA geometries, for simulating DNA damage.
1052 + extended/medical/dna/scavenger
1053 o Use thread-local flag in G4VMoleculeCounter.
1054 + extended/medical/dna/spower
1055 o In main(), enable visualisation only in interactive mode;
1056 use G4RunManagerFactory.
1057 + extended/optical/OpNovice2
1058 o Added new macro complexRindex.mac, using dielectric-metal surface with
1059 the surface having a complex index of refraction.
1060 o Added new histograms to record separately Fresnel reflection, TIR,
1061 absorption, etc.
1062 o Use new histos to plot spike reflection/absorption vs angle on surface
1063 (useful for complex refractive index).
1064 o PrimaryGeneratorMessenger: fixed command /opnovice2/gun/randomDirection.
1065 Based on GitHub PR#33 (https://github.com/Geant4/geant4/pull/33).
1066 o Added local SteppingVerbose to print velocity with /tracking/verbose 1.
1067 + extended/parallel/MPI
1068 o Removed use of obsolete G4DeveloperAPI functions from CMake script.
1069 o Changed namespace for g4tools code from "tools::mpi" to "toolx::mpi".
1070 + extended/parameterisations/Par04
1071 o Added python training scripts.
1072 o Added model conversion to ONNX and LWTNN to the training script.
1073 o Fixed warnings and lwtnn macro.
1074 o Changed visualization scripts for fast simulation.
1075 o Added new control histograms.
1076 o Changed extension of macros from .in to .mac.
1077 + extended/radioactivedecay/Activation
1078 o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1079 + extended/radioactivedecay/rdecay01
1080 o PhysicsList: added G4NuclideTable::SetThresholdOfHalfLife(1ns*log2).
1081
1082 ----------------------------------------------------------------------------
1083