Warning, /geant4/CHANGELOG/Beta4.10.7-1.txt is written in an unsupported language. File is not indexed.
0001
0002 Geant4 10.7-beta-01 Release Notes
0003 ---------------------------------
0004
0005 26 June 2020
0006
0007 Migration Notes & Main New Features
0008 -----------------------------------
0009
0010 o Introducing new optional (experimental) tasking system, based on PTL
0011 (Parallel Tasking Library), dedicated run manager (G4TaskRunManager) and
0012 factory (G4RunManagerFactory), enabling use of tasks for the event loop.
0013 The tasking system is fully compatible with Intel TBB, which can be
0014 selected if GEANT4_USE_TBB=ON is specified when configuring CMake. The
0015 default behavior is to submit the tasks to an internal thread-pool and
0016 task-queue. A comprehensive description of the system and options available
0017 can be found in the README document located within the new source/tasking
0018 module.
0019 o Revision of G4PhysicsVector classes to use similar algorithm for bin
0020 selection and adding checks on vectors length.
0021 o G4PhysicsLinearVector, G4PhysicsLogVector: more accurate checks in class
0022 constructors.
0023 o New class G4DriverReporter to print progress of field drivers.
0024 o Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.
0025 Enable use of whiteboard for logging/debugging in G4MultiLevelLocator, if
0026 "check-mode" in navigation is being activated through UI command.
0027 o Added layered mass geometry option for the new "probe" scoring mesh.
0028 o Introducing G4VPrimitivePlotter allowing the user to extend a primitive
0029 scorer and directly fill a 1D histogram.
0030 o Enabled handling of automatic min/max axes values in case of log scale
0031 in analysis tools.
0032 o Fixed reading and writing of const properties of materials in GDML.
0033 o Cleanup destruction of physics processes at the end of job.
0034 Reviewed ownership/deletion of physics models at the end of the run.
0035 o Introducing thermal model of positronium decay to two gammas.
0036 In this model, the positronium acquires a mean kinetic energy on formation,
0037 which contributes to a small non-collinearity of the gammas, detectable and
0038 significant in PET.
0039 o Added new EM model for polarized gamma elastic scattering.
0040 o Implemented three time constants for G4Scintillation, and allow multiple
0041 time constants to work with scintillation by particle type.
0042 o Added second wavelength shifting process within the same material.
0043 o New physics-list builder classes to allow alternative builders for
0044 anti_proton, anti_neutron, hyperons and anti-hyperons nuclear interactions
0045 at high energies with QGSP.
0046 o Extended EM physics-list constructors to allow extra available DNA options.
0047 o New General Particle Source energy distribution option that generates flat
0048 energy distribution with track weights representing energy spectrum.
0049 o Added handling of lepto-nuclear interactions for anti_nu_e, nu_e and
0050 anti_mu_nu.
0051 o Define PDG code as "-22" for G4OpticalPhoton.
0052 o Added implementation of IRT in G4DNA module.
0053 o Added new UI messenger for hadronic physics, currently used for controlling
0054 verbosity level: the UI command "/process/had/verbose 0" allows to switch
0055 off the print-out at initialization of hadronic processes, models and
0056 cross sections (similar to the existing command "/process/em/verbose 0"
0057 to switch off the print-out of electromagnetic physics information).
0058 o Fixed non-conservation warnings coming from G4HadronicProcess due to
0059 sub-threshold reactions in Bertini cascade.
0060 o G4CrossSectionElastic, G4CrossSectionInelastic: fix of the max energy of
0061 applicability of the (elastic and inelastic) cross-sections of ions and
0062 anti-ions nuclear interactions.
0063 o Improved treatment of antibaryon interactions in QGS.
0064 o Added support for OpenInventor Qt visualisation driver to be built and
0065 used in applications. The OpenInventor module can be built with either
0066 the OIQT driver, or with the OIX/OIXE drivers, but not with both.
0067 Enabled use of OIQT viewer with Qt UI.
0068 o New advanced example showing how to efficiently simulate particle transport
0069 through aerosols containing billions of randomly-positioned droplets, using
0070 an ordinary workstation.
0071 o Added support for modular builds in CMake.
0072 o Extended CMake build system to support G4Py activation through
0073 GEANT4_USE_PYTHON flag.
0074 o Build option with VecGeom requires VecGeom-1.1.7.
0075 o New data sets G4EMLOW-7.12.
0076
0077 ----------------------------------------------------------------------------
0078
0079 Technical Notes
0080 ---------------
0081
0082 o Tested platforms:
0083 + Linux, gcc-4.9.3.
0084 Tested on 64 bit architectures (Intel or AMD) with CERN CentOS
0085 Linux 7 (CC7) (based on CentOS Linux 7).
0086 Versions of Geant4 have also been compiled successfully on other
0087 Linux distributions, Ubuntu, Debian, Suse or other RedHat systems.
0088 + MacOSX 10.15, Apple LLVM/clang-11.0.3
0089 + Windows/10 with Visual C++ 14.23 (Visual Studio 2019)
0090
0091 o More verified configurations:
0092 + Linux, gcc-5.4.0/7.3.0/8.3.0/9.2.0/10.1.0, clang-7.0/8.0/10.0.
0093 + Linux, Intel-icc 19.0.
0094 + MacOSX 10.14 with Apple LLVM/clang-10.0.
0095
0096 o External dependencies
0097 + CLHEP-2.4.1.3, suggested for external installation of the CLHEP library.
0098 + VecGeom-1.1.7, for optional use of the VecGeom geometry primitives.
0099
0100 o New data sets:
0101 + G4EMLOW-7.12.
0102
0103 Please refer to the Geant4 User Documentation:
0104 http://cern.ch/geant4/support/user_documentation
0105 for further information about using Geant4.
0106
0107 ----------------------------------------------------------------------------
0108
0109 List of features and fixes included in this Beta release since 10.6.p02:
0110
0111 o Configuration:
0112 -------------
0113 + CMake:
0114 o Added support for building PTL external module and introduced
0115 GEANT4_USE_TBB option, enabling use of TBB as possible alternative
0116 to builtin PTL tasking.
0117 o Added support for OpenInventor Qt visualisation driver to be built and
0118 used in applications. The OpenInventor module can be built with either
0119 the OIQT driver, or with the OIX/OIXE drivers, but not with both.
0120 Added GEANT4_USE_XM to OpenInventor X11 driver code block to correct
0121 Xm and Xt link order.
0122 o Removed requirement on presence of GLU library.
0123 No longer save GLU related variables in the package cache.
0124 o Change shimmed imported target name to VecGeom::vecgeom to match
0125 upstream usage and reliably use target when available from VecGeom.
0126 Export VecCore_DIR to package cache when set so that Geant4 behaviour
0127 is consistent. Co-works with VecGeom-1.1.7.
0128 o Added GEANT4_USE_NEW_CMAKE option in preparation for testing of modular
0129 build updates, ON by default, to switch between systems. Importing new
0130 "target" style API for declaring and composing libraries from modules
0131 of source code. Retain GEANT4_BUILDTREE_INCLUDE_DIRS in new CMake
0132 system to support clients that may not yet support CMake target usage
0133 requirements.
0134 o Propagate value of CMAKE_DISABLE_FIND_PACKAGE_ROOT down to tests
0135 that optionally support Root to allow testing Geant4 with Root support
0136 disabled. This is necessary when testing Geant4 with a different C++
0137 standard than Root when it's installed. Avoid warnings from propagating
0138 the flag down to tests.
0139 o Applied patch to allow compilation on Windows using Clang.
0140 o Use "${FOO:-}" variable expansion and "-z" test to check for
0141 undefined variables in Bourne Shell scripts. Prevents errors when
0142 shell is in "set -u" mode. Addressing problem report #2221.
0143 o Handle install of G4clhep{-static} independently of main modules
0144 due it being built outside the category system.
0145 o Renamed remaining internal "Geant4..." modules to "G4" convention.
0146 Retain Geant4DefineModule and Geant4LibraryTargets until new
0147 modularization scheme is in place.
0148 o Updated version of data sets: G4EMLOW-7.12.
0149 Updated tag-IDs for 10.7-beta.
0150 + GNUMake:
0151 o Added setup for building and configuring new externals/ptl
0152 and tasking modules. External installation of PTL can be enabled
0153 by defining the installation through the environment variable
0154 PTL_BASE_DIR.
0155 o Added -pthread to all builds in Linux targets.
0156 o Corrected setup for use of OpenInventor (Coin).
0157 o Added missing settings in G4UI_BUILD.gmk script for OIQt and use of UI.
0158 o Removed deprecated G4USE_STD11 flag settings.
0159 o Removed dependency on GLU for all configurations, as no longer
0160 necessary.
0161
0162 o Analysis:
0163 --------
0164 + Updated to g4tools 5.1.0:
0165 o Corrections to handle automatic min/max axes values in case of log
0166 scale. See History_tools in analysis module for all details.
0167 + Fix to add a null-pointer check to ntupleDescription->fNtuple in
0168 G4RootPNtupleManager::Merge().
0169 + Fixed compilation warnings on clang-10 for g4tools.
0170 + Cleanup CMake build, removing obsolete granular library options and
0171 explicit include_directories.
0172 + Update granular dependencies in preparation for modularization
0173 + Remove uneeded links to externals in factory.
0174
0175 o Digits & Hits:
0176 -------------
0177 + Introducing G4VPrimitivePlotter allowing the user to extend a primitive
0178 scorer and directly fill 1D histogram.
0179 + Added two ComputeSolid() method to G4VPrimitiveScorer, to consolidate
0180 code.
0181 + Fixed cases of comparison between int and size_t in templated classes
0182 and some cleanup.
0183 + Cleanup CMake build, removing obsolete granular library options and
0184 explicit include_directories.
0185
0186 o Error Propagation:
0187 -----------------
0188 + Cleanup CMake build, removing obsolete granular library options and
0189 explicit include_directories.
0190
0191 o Event:
0192 -----
0193 + Introducing a new General Particle Source energy distribution option,
0194 that generates flat energy distribution with track weights that
0195 represent energy spectrum provided by /gps/hist/point commands.
0196 This option can enhance, for example, higher energy tracks that are
0197 rare but contribute to the scores.
0198 + Corrected logic in G4VPrimaryGenerator::CheckVertexInsideWorld() method.
0199 + G4GeneralParticleSourceMessenger: command structure clean-up.
0200 + Some code cleanup, formatting and C++11 revision.
0201 + Removed obsolete and unused headers.
0202 + Cleanup CMake build, removing obsolete granular library options and
0203 explicit include_directories.
0204 + Fixed Coverity defect in G4GeneralParticleSourceMessenger.
0205
0206 o Externals:
0207 ---------
0208 + ptl:
0209 o New module for PTL (Parallel Tasking Library), implementing a
0210 lightweight C++11 multi-threading tasking system featuring thread-pool,
0211 task-groups, and lock-free task queue.
0212 + zlib:
0213 o Added needed include directories to CMake script when using new
0214 CMake system.
0215
0216 o G3toG4:
0217 ------
0218 + Cleanup CMake build, removing obsolete granular library options and
0219 explicit include_directories.
0220
0221 o Geometry:
0222 --------
0223 + Cleanup CMake build, removing obsolete granular library options and
0224 explicit include_directories.
0225 + magneticfield:
0226 o New class G4DriverReporter to print progress of drivers.
0227 o G4VIntegrationDriver and dependent driver classes: added new virtual
0228 method StreamInfo(), used to implement operator<<() for
0229 G4VIntegrationDriver.
0230 o G4MagInt_Driver: fixed max iterations & clarified that its method
0231 ComputeNewStepSize() does not (yet) respect maximum reduction factor
0232 (0.1); this is to enable comparisons with new G4IntegrationDriver<>
0233 implementation.
0234 o G4OldMagIntDriver maintains all old behaviour of G4MagInt_Driver.
0235 o In G4MultiLevelLocator, added ability to record in a 'whiteboard',
0236 the start/end steps of integration intervals, to allow identify issues
0237 like negative or zero steps occurrences. Includes new classes
0238 G4LocatorChangeLogger and G4LocatorChangeRecord.
0239 o G4PropagationInField: improved ClearPropagatorState() method.
0240 o Implemented move constructor and operator for G4FieldTrack.
0241 + management:
0242 o Added deleted declarations for copy constructor and assignment operators
0243 on store singletons. Based on GitHub PR#12 report.
0244 o Reduced size of G4LogicalVolume objects by reordering class members.
0245 o Adopt new convention for location of headers in VecGeom for wrappers.
0246 o Fix to CMake script to support new CMake system.
0247 + navigation:
0248 o Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.
0249 Enable use of whiteboard for logging/debugging in G4MultiLevelLocator,
0250 if "check-mode" in navigation is being activated through UI command.
0251 o Reordered data members in G4Navigator, to reduce object size.
0252 + solids/CSG:
0253 o G4Trap: fixed calculation of normal for points on edge in
0254 SurfaceNormal(). Improved code for Inside().
0255 o Adopt new convention for location of headers in VecGeom for all
0256 wrappers.
0257 + solids/specific:
0258 o Added GetTwistedFaceSurfaceArea() in G4GenericTrap and fixed
0259 calculation of surface area in unit tests.
0260 o Adopt new convention for location of headers in VecGeom for all
0261 wrappers.
0262
0263 o Global:
0264 ------
0265 + G4Physics2DVector: extended number of characters in the table dump from 5
0266 to 8; use similar algorithm for bin selection as in 1D vector;
0267 if any dimension is less than 2 throw a G4Exception.
0268 + G4PhysicsVector: use same code for interpolation for all types of
0269 PhysicsVector; removed obsolete unused methods; maximally use const
0270 variables; preserve precision of printout.
0271 + G4PhysicsLinearVector: added checks on vector length: if it is less
0272 than 2 throw a G4Exception.
0273 + G4PhysicsLogVector: added checks on vector length: if it is less
0274 than 3 throw a G4Exception.
0275 + G4PhysicsLinearVector, G4PhysicsLogVector: more accurate checks in class
0276 constructors. Fixed Coverity warnings.
0277 + C++11 revision in 'management' and 'HEPNumerics' modules; general
0278 code cleanup/formatting.
0279 + Removed use of deprecated G4USE_STD11 flag.
0280 + Fix to CMake script to support new CMake system.
0281 + Changed date for release 10.7-beta.
0282
0283 o Graphics Representations:
0284 ------------------------
0285 + HepPolyhedron, G4Polyhedron: added HepPolyhedronTet.
0286 + G4VisAttributes: clarify that if number of cloud points (for cloud style
0287 drawing) is <= 0, this is to be interpreted as under control of the
0288 viewer, i.e., to be decided by the viewer. Otherwise this number is to be
0289 drawn. Zero is the default value, which may be changed by invoking the
0290 method SetForceNumberOfCloudPoints(); also possible to force cloud
0291 drawing with SetForceCloud().
0292 + Improved deprecation message for G4AttDefs::operator<<().
0293 + Cleanup CMake build, removing obsolete granular library options and
0294 explicit include_directories.
0295
0296 o Intercoms
0297 ---------
0298 + Removed unnecessary use of deprecated G4USE_STD11 flag in G4AnyMethod.
0299 + Cleanup CMake build, removing obsolete granular library options and
0300 explicit include_directories.
0301
0302 o Interfaces
0303 ----------
0304 + G4UIQt: replaced use of setTextColor() with adoption of rich text html
0305 tags (improving visibility in MacOS Dark Mode).
0306 + Fixed deprecation warnings being triggered when using Qt-5.15.
0307 + Use CMake AUTOMOC to automatically generate and compile Moc sources
0308 and fixed CMake script to support new CMake system.
0309 + Cleanup CMake build, removing obsolete granular library options and
0310 explicit include_directories.
0311
0312 o Materials
0313 ---------
0314 + G4MaterialPropertiesTable: added ConstPropertyExists() method.
0315 + G4MaterialPropertiesTable, G4MaterialPropertiesIndex: added new
0316 properties for scintillation allowing 3 time constants and a second
0317 wavelength shifter in the same material.
0318 + Cleanup CMake build, removing obsolete granular library options and
0319 explicit include_directories.
0320
0321 o Parameterisations:
0322 -----------------
0323 + GFlash:
0324 o Substituting Gamma calculation with corresponding STL functions, as
0325 suggested in GitHub PR#3. Makes LnGamma calculation 1.4 times faster,
0326 and Gamma 1.9 times faster.
0327 o GFlashSamplingShowerParameterisation: added X0eff calculation.
0328 o Delete local tuning data in GFlashXXXShowerParameterisation class
0329 destructors.
0330
0331 o Particles:
0332 ---------
0333 + G4ParticleTable: create/destruct only one instance of G4IonTable and
0334 associated messenger; define assignment operator and copy constructor
0335 as deleted; added cache with pointer to selected particle and get/set
0336 methods.
0337 + G4DynamicParticle: added GetBeta() method.
0338 + G4OpticalPhoton: define PDG code as "-22".
0339 + G4NuclideTable: added destruction of messenger
0340 + Added move operators to G4DynamicParticle.
0341 Code revision for c++11 and cleanup in 'management' module.
0342 + Cleanup CMake build, removing obsolete granular library options and
0343 explicit include_directories.
0344 + Fixed Coverity warning.
0345
0346 o Persistency:
0347 -----------
0348 + Cleanup CMake build, removing obsolete granular library options and
0349 explicit include_directories.
0350 + ASCII:
0351 o Fixed Coverity defects warnings.
0352 + GDML:
0353 o Fixed reading and writing of const properties of materials.
0354 Matrices of size 1x1 are now used both for writing out and reading in
0355 of const material. This fixes the inconsistency (using constants by the
0356 writer) found in the code. Const material properties with the same name
0357 (in different materials) are now written out with the properties table
0358 address appended.
0359
0360 o Physics Lists:
0361 -------------
0362 + Fixes to CMake scripts to support new CMake system.
0363 + Builders:
0364 o Revised all classes to remove unnecessary members, not destruct models
0365 and cross-sections and use updated instantiation of string models.
0366 This should help to achieve full deletion of hadronic physics objects
0367 at the end of run.
0368 o G4QGSPAntiBarionBuilder: created new class to handle anti_proton and
0369 anti_neutron at high energies with QGSP. For the light anti-ions
0370 (anti_deuteron, anti_triton, anti_He3, and anti_alpha), currently QGSP
0371 cannot handle them, therefore FTFP is used.
0372 o G4VHyperonBuilder, G4HyperonBuilder, G4HyperonQGSPBuilder: new classes
0373 to allow alternative builders for hyperons (and anti-hyperons).
0374 The class G4HyperonQGSPBuilder uses QGSP model to handle hyperons (and
0375 anti-hyperons) at high energies.
0376 o G4HyperonFTFPBuilder: now it derives from G4VHyperonBuilder (physics
0377 behind remains unchanged, i.e. it is still based on BERT and FTFP
0378 models).
0379 o G4HadronicBuilder: new utility class to build kaons, hyperons, and b-,
0380 c- particles.
0381 o Added second wavelength shifter optical process to the
0382 OrderingParameterTable.
0383 + Constructors:
0384 o decay:
0385 - G4RadioactiveDecayPhysics: enabled flag for isomer production,
0386 required after fix to problem report #2226.
0387 Updated initialisation to be coherent with recent updates in
0388 initialisation of atomic de-excitation.
0389 - G4DecayPhysics, G4RadioactiveDecayPhysics, G4SpinDecayPhysics,
0390 G4UnknownDecayPhysics: general cleanup. Removed thread local pointers,
0391 avoid deleting objects; use C++11 keywords; use standard signatures
0392 for constructors; define builder type for the main constructor
0393 G4DecayPhysics (bDecay, for others bUnknown).
0394 o electromagnetic:
0395 - G4OpticalPhysics, G4OpticalPhysicsMessenger: added settings for
0396 G4Scintillation to use 3 time constants. Added second wavelength
0397 shifter optical process to constructors.
0398 - G4EmBuilder: new utility class to allow reducing code duplication for
0399 standard and low-energy EM physics constructors. Includes flag for
0400 allowing choice of multiple-scattering model.
0401 - G4EmStandardPhysics_option1: switch to use new G4EmBuilder utility;
0402 fixed StepFunction definition.
0403 - G4EmStandardPhysics_option3: switch to use new G4EmBuilder utility;
0404 use ICRU90 stopping power data for water and air.
0405 - Removed duplicate code by using G4EmBuilder in several constructors,
0406 fixed definition of StepFunction, use the same flag as hadronic
0407 physics to enable EM interaction of b- and c- mesons and baryons.
0408 - G4EmModelActivator: use same options for physics per region as used
0409 in EM constructors recently updated.
0410 - G4LivermorePolarizedPhysics: use inheritance from G4LivermorePhysics.
0411 - G4EmDNAModelActivator: extended to extra available DNA options
0412 (DNA_Opt2, DNA_Opt4, DNA_Opt4a, DNA_Opt6, DNA_Opt6a, DNA_Opt7).
0413 - Optimisation in initialisation of G4EmDNAChemistry_option3.
0414 - Use C++11 features in several constructors.
0415 o gamma_lepto_nuclear:
0416 - G4EmExtraPhysics, G4EmMessenger: added low-energy limit, set method,
0417 and UI command defining low-energy gamma-nuclear model, which is
0418 using de-excitation module and providing isomer production and
0419 gamma transitions.
0420 - G4EmExtraPhysics: extension to anti_nu_mu, nu_e and anti_nu_e
0421 processes-models.
0422 o hadron_inelastic:
0423 - Use the new builder class G4QGSPAntiBarionBuilder to handle
0424 anti_proton and anti_neutron at high energies with QGSP.
0425 For the light anti-ions - anti_deuteron, anti_triton, anti_He3 and
0426 anti_alpha - currently QGSP cannot handle them, therefore FTFP is used.
0427 - In all the inelastic physics constructors which are using the builder
0428 G4HyperonFTFPBuilder, introduced the new builder G4HyperonBuilder;
0429 moreover, the new builder G4HyperonQGSPBuilder is used now in all
0430 QGS-based inelastic physics constructor for hyperons (and
0431 anti-hyperons) at high energies, while keeping using
0432 G4HyperonFTFPBuilder at lower energies.
0433 - G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BERT,
0434 G4HadronInelasticQBBC: added b- and c- particles.
0435 - G4HadronPhysicsQGSP_BIC_HP, G4HadronPhysicsQGSP_BIC_AllHP: refactoring
0436 consistently with all others. For G4HadronPhysicsQGSP_BIC_HP, the
0437 physics remains unchanged; for G4HadronPhysicsQGSP_BIC_AllHP, the
0438 physics remains unchanged except for the transition region between
0439 Binary and ProtonHP which is now 190-200 MeV (instead than 199-200),
0440 as for light ions.
0441 o ions:
0442 - Cleanup of constructors: fixed names; made all constructor signatures
0443 universal, removed thread local members, added c++11 keywords.
0444 o stopping:
0445 - Cleanup of constructors: fixed names; made all constructor signatures
0446 universal, removed thread local members, added c++11 keywords.
0447 + utils:
0448 o G4HadParticles: new utility providing several lists of PDG codes for
0449 kaons, hyperons, b- and c- particles in order to be used for
0450 construction of hadronic physics. Updated list of heavy EM particles.
0451
0452 o Electromagnetic Processes:
0453 -------------------------
0454 + DNA:
0455 o Added classes for IRT; added features in management classes for IRT
0456 (G4ITReaction, G4ITModelProcessor ...).
0457 o Added features in G4DNAMolecularReactionTable for GFDE.
0458 o Added molecules (Oxygen, O2, O3, HO2) from: Plante et al.(2017).
0459 o G4MoleculeDefinition: copy constructor and assignment operator are not
0460 allowed (as for G4ParticleDefinition). Now deleted.
0461 o Revised displacement of OH radicals of B1A1 dissociation based on
0462 momentum conservation in G4DNAWaterDissociationDisplacer.
0463 o Fix to CMake script to support new CMake system.
0464 + Low Energy:
0465 o Added new model for polarized gamma elastic scattering, provided by
0466 the JAEA group. Updated existing process (G4JAEAElasticScattering) and
0467 model (G4JAEAElasticScatteringModel) in order to comply with the new
0468 data format. Changed initialisation of JAEA models.
0469 o G4LivermorePhotoElectricModel: allow "Water" as a name of water
0470 material for low-energy photo-effect.
0471 o Added G4LivermoreGammaConversion5DModel class. Reading EPICS2017 data.
0472 o Change in G4LivermoreGammaConversion to now derive from
0473 G4PairProductionRelModel. Added missing method InitialiseForElement().
0474 o Fixed compilation warnings on clang-10.
0475 + Standard:
0476 o G4eplusAnnihilation: fixed problem seen in the rare case, when initial
0477 energy is null; introducing thermal model of positronium decay to two gammas.
0478 In this model, the positronium acquires a mean kinetic energy on
0479 formation, which contributes to a small non-collinearity of the
0480 gammas, detectable and significant in PET. To activate this model:
0481 material->GetIonisation()->SetMeanEnergyPerIonPair(meanKE).
0482 A mean kinetic energy of 5 eV produces a projected acollinearity
0483 of about 0.5 degrees FWHM, as reported in:
0484 K.Shibuya et al., IFMBE Proceedings Vol. 14/3 1667 (2007).
0485 o G4UniversalFluctuation: changed 'nmaxCont' from 16 to 8 for speedup.
0486 Set value for 'a0' to 42 after optimisations. Minor C++ improvements.
0487 o G4UrbanMscModel: tuned 'tlimitmin' computation for e- (for e+ kept
0488 unchanged) and changed parameterisation of 'stepmin'; added two private
0489 inline methods to reduce code duplication.
0490 Removed cache and introduced data struct precomputed at initialisation,
0491 added e- range cut to the data structure.
0492 o G4BetheHeitler5DModel: change "final" keyword by "override" for virtual
0493 methods.
0494 o G4LindhardSorensenData: fixed few numbers in the data table.
0495 o G4eeToTwoGammaModel: code cleanup; added static flag, which identifies
0496 if electron motion is taken into account for sampling of acollinearity,
0497 when annihilation happens at rest; ensuring that by default no extra
0498 computation is performed; also removed extra printout at initialisation
0499 and extra data structure.
0500 o Fixed compilation warnings on clang-10.
0501 + Utils:
0502 o G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger: added
0503 a new parameter - name of the sub-directory with data for Livermore
0504 models with variants: "livermore" (default), "epics_2017".
0505 Comes with G4EMLOW-7.10 data set and higher.
0506 o G4EmParameters, G4EmParametersMessenger, G4VMultipleScattering:
0507 removed displacement-beyond-safety option, as may lead to crashes in
0508 some circomstances, and wrong results in others.
0509 o G4EmParameters, G4EmParametersMessenger, G4EmExtraParametersMessenger,
0510 G4VEnergyLossProcess: added two extra sets of StepFunction parameters
0511 for light ions and generic ions. Added extra UI commands. Modified
0512 interfaces accordingly. Removed old comments.
0513 o G4EmLowEParametersMessenger: extended number of DNA PhysicsList options.
0514 o G4VEmProcess: removed old unused methods; DefinedMaterial() method is
0515 now protected (needed for AtRest processes).
0516 o G4LossTableManager: made ResetParameters() method public.
0517 o G4VAtomicDeexcitation: optimized arrays initialisation.
0518 o G4EmCalculator: fixed printout.
0519 + Xrays:
0520 o Implemented three time constants for G4Scintillation, and allow
0521 multiple time constants to work with scintillation by particle type.
0522 The existing material property names have FAST and SLOW in them, like
0523 FASTTIMECONSTANT. This doesn't generalize well. Also YIELDRATIO as a
0524 single value doesn't generalize to three time constants. Proposal is
0525 to create new names SCINTILLATIONTIMECONSTANT1/2/3 and the same for
0526 other parameters. The existing names are kept for backwards
0527 compatibility, with the idea to remove them in the next major release.
0528 There is a flag in G4Scintillation, with messenger command in the
0529 OpticalPhysics list, to use the new method:
0530 /process/optical/scintillation/setEnhancedTimeConstants true.
0531 Results are unchanged if using same values.
0532 Set verbosity levels correctly.
0533 o G4VXTRenergyLoss: fixed destructor.
0534 o Code formatting.
0535
0536 o Generic Processes:
0537 -----------------
0538 + Biasing:
0539 o G4ImportanceProcess: added process type as fParallel.
0540 + Cuts:
0541 o Revision for use of c++11 constructs. Code cleanup and formatting.
0542 + Management:
0543 o G4ProcessManagerMessenger: use cache pointer of selected particle
0544 in the G4ParticleTable class.
0545 o G4ProcessTable: enabled deletion of all processes except
0546 G4Transportation at the end of run.
0547 o Fixed Coverity warning for uninitialised data in G4VProcess.
0548 o C++11 revision and code cleanup/formatting.
0549 + Optical:
0550 o Added second wavelength shifting process, G4OpWLS2, within the same
0551 material.
0552 o Use new ConstPropertyExists(int) method rather than passing strings.
0553 o G4OpRayleigh: avoid double deletion of property vectors.
0554 o Code cleanup and improved readability.
0555 + Parameterisation:
0556 o G4FastSimulationHelper: merged ActivateFastSimulation() calls for mass
0557 and parallel geometry cases.
0558 o G4FastSimulationManager, G4VFastSimulationModel: removed redefinition
0559 of G4Envelope type.
0560 o Added sanity check for root logical volumes in regions for
0561 G4GlobalFastSimulationManager. UI command /param/showSetup works also
0562 if no parallel world is present.
0563 + Scoring:
0564 o G4ParallelWorldProcess, G4ParallelWorldScoringProcess: use new PDG
0565 code for optical photon, "-22".
0566 o G4ParallelWorldProcess: make some private methods and data members
0567 protected so that this class can be extendable.
0568
0569 o Hadronic Processes:
0570 ------------------
0571 + Fixes to CMake scripts to support new CMake system.
0572 + cross_sections
0573 o G4ElNeutrinoNucleusTotXsc: new class for (nu_e,anti_nu_e)-nucleus
0574 cross-sections.
0575 o G4PhotoNuclearCrossSection: corrected threshold for
0576 gamma + p -> pi0 + p, extended for use on 3H and 3He targets.
0577 o G4HadronNucleonXsc: general clean-up of the code; use PDG number
0578 instead of particle pointer; removed instantiation of most of hadrons,
0579 optimisation in selection of parameterisation parameters.
0580 o G4CrossSectionElastic, G4CrossSectionInelastic: fix for ions and
0581 anti-ions, where the max energy of applicability of the (elastic and
0582 inelastic) cross-sections must scale with the absolute baryonic number;
0583 however, the cross-sections objects are often shared between the
0584 different types of ions (d, t, He3, alpha, and genericIon), therefore
0585 we scale by a large value (256, safely larger than the number of
0586 nucleons of the heaviest nuclides).
0587 o Fixed compilation warnings on clang-10.
0588 + management
0589 o G4HadronicProcess: fixed Coverity defect warning to EP check method for
0590 the case when primary particle remains in the interaction.
0591 o G4HadronicProcessStore: in the method Dump(), check the internal
0592 verbosity level as well as the newly introduced global hadronic
0593 verbosity level, returning immediately (without printing anything) if
0594 one of these is 0. Extended default initialisation printout to sigma-,
0595 D-, B-. Removed check for G4HadronicException, where it cannot be;
0596 limit printout on kaon0 in final state.
0597 o Removed use of deprecated G4USE_STD11 flag.
0598 o G4HadLeadBias: replaced 'G4int' with 'size_t' to fix warnings
0599 on Windows.
0600 + models/binary_cascade
0601 o G4BinaryCascade: fixed memory leak at exit.
0602 + models/cascade
0603 o Fixed non-conservation warnings coming from G4HadronicProcess due to
0604 sub-threshold reactions in Bertini. Sub-threshold reactions are now
0605 treated as having a "non-interaction" final state, that is, the initial
0606 particles are simply copied to the final state.
0607 o Fixed compilation warnings on clang-10.
0608 + models/de_excitation
0609 o G4PhotonEvaporation, G4DeexPrecoParameters, G4DeexParametersMessenger:
0610 added extra flag 'IsomerProduction'; if enabled. photon evaporation
0611 samples the time of gamma transition; added C++ interface and UI command
0612 allowing to set this flag; radioactive decay constructor should enable
0613 this parameter. Addressing problem report #2226.
0614 o G4DeexPrecoParameters: in method Dump(), check the global verbosity
0615 level of hadronics (if zero, do not print anything).
0616 o Fixed compilation warnings on clang-10.
0617 + models/inclxx
0618 o G4INCLXXInterfaceStore: in method EmitBigWarning(), check the global
0619 verbosity level of hadronics (if zero, do not print anything).
0620 o Fixed compilation warnings on clang-10.
0621 + models/lepto_nuclear
0622 o G4NuMuNucleusCcModel, G4NeutrinoNucleusModel, new access methods
0623 and minor fixes in in nu-mu nucleus model.
0624 o Added classes G4ANuElNucleusCcModel and G4ANuElNucleusNcModel,
0625 for anti_nu_e. Initialization from G4PARTICLEXS (neutrino/anti_nu_e).
0626 o Added classes G4NuElNucleusCcModel and G4NuElNucleusNcModel,
0627 for nu_e. Initialization from G4PARTICLEXS (neutrino/nu_e).
0628 o Added classes G4ANuMuNucleusCcModel and G4ANuMuNucleusNcModel,
0629 for anti_mu_nu. Initialization from G4PARTICLEXS (neutrino/anti_nu_mu).
0630 o G4NuMuNucleusCcModel, G4NuMuNucleusNcModel, G4NeutrinoNucleusModel:
0631 rearrangement of initialisation methods and arrays.
0632 Fixes in CoherentPion() method, cleanup of Cc and Nc.
0633 o G4NeutrinoNucleusModel: added K+, K- in final state.
0634 o Fixed Coverity warnings for defects.
0635 + models/management
0636 o G4HadronicInteractionRegistry: delete HP and PHP at the end of run.
0637 o G4HadronicInteraction: provide default implementation for all virtual
0638 methods.
0639 o G4VHighEnergyGenerator, G4VIntraNuclearTransportModel,
0640 G4VPreCompoundModel: cleaned up: removed old commented lines,
0641 code format, C++11 keywords.
0642 + models/particle_hp
0643 o Allow printout only if the global hadronic verbosity level is not zero.
0644 o G4ParticleHPHash, G4ParticleHPCaptureFS: fixes for implicit conversion
0645 between 'size_t' and 'G4int', to avoid warnings on Windows.
0646 + models/parton_string
0647 o Improved treatment of antibaryon interactions in QGS.
0648 In G4QGSMFragmentation, corrected the treatment of low-mass diquark-
0649 antidiquark strings. In addition to this, introduced the Mt
0650 distribution of produced hadrons.
0651 In G4VLongitudinalStringDecay, introduced in SetMinimalStringMass()
0652 a check that the strings are of allowed type: quark-antiquark, diquark-
0653 antidiquark, quark-diquark and antiquark-antidiquark. Introduced also
0654 for diquark-antidiquark strings a special algorithm (already present
0655 for the other types of allowed strings) for treating low-mass strings
0656 with masses below known hadrons.
0657 o In G4QGSParticipants, the average transverse momentum of partons in a
0658 hadron is set to zero (according to the study of transverse momentum
0659 distributions of hadrons produced in hadronic interactions, in
0660 particular the study of Xf - Pt correlations presented by the NA49
0661 Collaboration). In G4QuarkExchange, the reggeon exchanges are now
0662 treated as annihilation and creation of quark-antiquark pairs (to
0663 reflect in inelastic processes the non-vacuum reggeon exchanges present
0664 in antiparticle-particle elastic scattering amplitudes).
0665 o G4VLongitudinalStringDecay, G4LundStringFragmentation,
0666 G4ExcitedStringDecay: inherit from G4HadronicInteraction; destruction
0667 of these models at the end of run is now done by the hadron model
0668 store; removed implementations of private operators.
0669 o G4VStringFragmentation: use inheritance from G4HadronicInteraction;
0670 removed implementations of private operators.
0671 o G4SPBaryonTable: changed return type of the method 'length()' from
0672 'double' to 'size_t', to fix warnings on Windows.
0673 o G4FTFModel, G4FTFParticipants: clean-up: removed unused methods,
0674 delete operators, use of C++11 keywords.
0675 o G4VParticipants, G4VPartonStringModel, G4VStringFragmentation,
0676 G4StringModel: clean-up; removed unused methods, delete operators,
0677 use of C++11 keywords.
0678 o G4QGSModel: clean-up; removed unused methods, delete operators, use of
0679 C++11 keywords, moved inline implementation to source.
0680 + models/qmd
0681 o G4QMDReaction: added code in ApplyYourself() to get cross-section when
0682 projectile is pion. Replaced data member G4PiNuclearCrossSection with
0683 G4BGGPionElasticXS and G4BGGPionInelasticXS.
0684 In G4QMDGroundStateNucleus constructor, move check for p or n
0685 projectile earlier in code so baryon number can be conserved.
0686 Addressing problem report #2236.
0687 + models/quasi_elastic
0688 o G4QuasiElRatios: fixed memory leak at exit.
0689 + models/radioactive_decay
0690 o G4RadioactiveDecayBase, G4RadioactiveDecay: in BuildPhysicsTable(),
0691 check the global hadronic verbosity level before printing out
0692 information.
0693 + models/rpg
0694 o Fixed Coverity warnings for unused variables.
0695 + models/theo_high_energy
0696 o G4QuasiElasticChannel: use inheritance from G4HadronicInteraction.
0697 In G4TheoFSGenerator do not destruct G4QuasiElasticChannel.
0698 o G4QuasiElasticChannel, G4TheoFSGenerator: clean-up; use of C++11
0699 keywords and loops, removed unused methods, formatting.
0700 + models/util
0701 o Fixed compilation warnings on clang-10.
0702 + processes
0703 o G4MuNeutrinoNucleusProcess, G4ElNeutrinoNucleusProcess: extended to
0704 anti_nu_mu, nu_e and anti_nu_e.
0705 + stopping
0706 o G4HadronicAbsorptionFritiof,
0707 G4HadronicAbsorptionFritiofWithWithBinaryCascade: simplified
0708 instantiation of the FTF model, do not destruct its components.
0709 o G4MuonicAtomDecay: fixed Coverity defect warning.
0710 + util
0711 o G4HadronicParameters: added modifiers for Cascade-FTF transition.
0712 Creates the new messenger.
0713 o G4HadronicParametersMessenger: created new messenger class for
0714 G4HadronicParameters. For the time being it has only the global
0715 verbosity level for hadronics.
0716 o G4HadFinalState: fixed warning on Windows for implicit conversions
0717 from 'size_t' to 'G4int'.
0718
0719 o Readout
0720 -------
0721 + Cleanup CMake build, removing obsolete granular library options and
0722 explicit include_directories.
0723
0724 o Run
0725 ---
0726 + G4RunManager, G4WorkerRunManager: added layered mass geometry option
0727 for the new "probe" scoring mesh.
0728 + G4RunManager: do not call G4ParticleTable for Messenger deletion.
0729 + Modified G4MTRunManager to enable inheritance for new G4TaskRunManager.
0730 + G4MTRunManager, G4RunManager: fixes for windows, to avoid inline static
0731 methods and use export flag G4RUN_DLL for static data.
0732 + Added second wavelength shifter process to G4PhysicsListHelper.
0733 + G4VPhysicsConstructor: added harmless call to G4HadronicParameters in
0734 constructors, setting a default parameter; needed to create the instance
0735 of the G4HadronicParameters singleton before run initialization.
0736 + General code formatting.
0737 + Cleanup CMake build, removing obsolete granular library options and
0738 explicit include_directories.
0739
0740 o Tasking
0741 -------
0742 + New module implementing a new Geant4 run manager, G4TaskRunManager,
0743 enabling use of the PTL tasking system for the event loop. The tasking
0744 system is fully compatible with Intel TBB, which can be selected if
0745 GEANT4_USE_TBB=ON is specified when configuring CMake. The default
0746 behavior, however, is to submit the tasks to an internal thread-pool
0747 and task-queue.
0748 A comprehensive description of the system and options provided can be
0749 found in the README document located within this module.
0750
0751 o Track & Tracking
0752 ----------------
0753 + G4Track: use new G4OpticalPhoton PDG code; removed static thread local
0754 variables; slightly simplified velocity computation; fixed Coverity
0755 warnings connected with unnecessary checks for valid pointers to G4Step
0756 and G4DynamicParticle; removed commented code.
0757 Avoid using velocity table, use GetBeta() method from G4DynamicParticle
0758 instead; expected minor speedup.
0759 + Minor c++11 revision; code cleanup and formatting in tracking module.
0760 + Fixed minor Coverity defect for uninitialised data in G4SteppingManager.
0761 + Cleanup CMake build, removing obsolete granular library options and
0762 explicit include_directories.
0763
0764 o Visualization:
0765 -------------
0766 + Cleanup CMake build, removing obsolete granular library options and
0767 explicit include_directories. Fixed compilation warnings on clang-10.
0768 + Use CMake AUTOMOC to automatically generate and compile Moc sources
0769 and fixed CMake script to support new CMake system.
0770 + management:
0771 o Fixed case where models with no extent do not contribute to scene's
0772 extent.
0773 o Trap infinite loop when looking for a fallback graphics system when
0774 issuing "/vis/sceneHandler/create".
0775 o G4VisExecutive: added support for OIQT driver, via "OIQT" or "OI"
0776 keywords, provided the G4OpenInventor library has been built with
0777 the OIQT driver included.
0778 o Added new command "/vis/geometry/set/forceCloud".
0779 o G4VVisCommand: added CheckView for future utility.
0780 o G4VisCommandsScene: improved output layout for "/vis/scene/showExtents".
0781 o Bug fix: rebuild graphics databases after "/vis/filtering/*/mode".
0782 o Improved printing of available systems and models.
0783 + modeling:
0784 o Suppress warnings while filter not fully established.
0785 o Minor code tidy.
0786 + OpenGL:
0787 o Improved guidance and tidy "/vis/ogl/" commands.
0788 o Removed no longer required dependence on GLU.
0789 o Removed support for Qt4.
0790 o Fixed bug in "/vis/ogl/export" when dot '.' is included in name.
0791 + OpenInventor:
0792 o Enable configuration for OIQT driver, as orthogonal to OIX and OIXE.
0793 o Corrections to OIQT viewer and changes for use with Qt UI.
0794
0795 o Data Sets:
0796 ---------
0797 + G4EMLOW-7.12:
0798 o Added new cross-section files for protons (HT).
0799 o Added EPICS2017 data for gamma conversion (ZL).
0800 o Added new JAEA elastic polarized gamma scattering data files
0801 in compressed format.
0802 o Added a new numerical DCS set for e-/e+ elastic scattering
0803 obtained by numerical Dirac Partial Wave Analysis (DPWA).
0804 More information can be found in the 'dpwa/Readme.txt' file.
0805
0806 o Examples:
0807 --------
0808 + Updated reference outputs, macros, READMEs and scripts.
0809 + advanced/air_shower
0810 o Added missing include statement in UltraDetectorConstruction.
0811 + advanced/fastAerosol
0812 o New example showing use of FastAerosol geometry classes, allowing to
0813 efficiently and accurately simulate particle transport through aerosols
0814 containing billions of randomly-positioned droplets, using an ordinary
0815 workstation. See: MacFadden, N., Knaian, A., "Efficient Modeling of
0816 Particle Transport through Aerosols in Geant4", manuscript in
0817 preparation, 2020.
0818 + advanced/gammaray_telescope
0819 o GammaRayTelHadronPhysics, GammaRayTelIonPhysics: fixed
0820 compilation problems due to incorrect FTFP instantiation.
0821 + advanced/hadrontherapy
0822 o Deleted many obsolete macro files.
0823 o Code cleaup; removed Root script folder and other cosmetics.
0824 + basic/B5
0825 o Migrated main() to use new G4RunManagerFactory.
0826 The new G4TaskRunManager is exercised by default in MT builds.
0827 + extended/electromagnetic/TestEm1
0828 o PhysicsList: use G4RadioactiveDecayBase instead of deprecated
0829 G4RadioactiveDecay. Minor code cleanup.
0830 + extended/electromagnetic/TestEm4
0831 + extended/electromagnetic/TestEm7
0832 o Do not call vis.mac automatically in interactive mode.
0833 + extended/electromagnetic/TestEm11
0834 o PhysicsList: use G4RadioactiveDecayBase instead of deprecated
0835 G4RadioactiveDecay. Minor code cleanup.
0836 + extended/hadronic/Hadr00
0837 o HistoManagerMessenger: fixed destructor.
0838 + extended/hadronic/Hadr02
0839 o HadronPhysicsCRMC_FTFP_BERT , HadronPhysicsHIJING , HadronPhysicsUrQMD:
0840 introduced the new class G4HyperonBuilder which is now needed when
0841 using G4HyperonFTFPBuilder.
0842 + extended/hadronic/Hadr03
0843 o PhysicsList: added G4HadronPhysicsQGSP_BIC, Shielding, RadioactiveDecay.
0844 o GammaNuclearPhysics: added G4LowEGammaNuclearModel.
0845 o Added GammaNuclearPhysicsLEND.
0846 o HistoManager, SteppingAction: added plot of e-.
0847 o Modified gamma.mac script; added Au196.mac.
0848 + extended/hadronic/Hadr06
0849 o HistoManager, TrackingAction: plot particle energy at creation.
0850 o GammaNuclearPhysics: added G4LowEGammaNuclearModel.
0851 + extended/hadronic/Hadr07
0852 + extended/hadronic/NeutronSource
0853 o GammaNuclearPhysics: added G4LowEGammaNuclearModel.
0854 + extended/medical/dna/chem6
0855 o New example providing scoring of the radiochemical yield G defined as
0856 (Number of species X) / (100 eV of deposited energy), as a function of
0857 time and LET. The details are described in the following paper:
0858 J. Appl. Phys. 125 (2019) 104301.
0859 + extended/optical/OpNovice2
0860 o Use new scintillation time constant parameter.
0861 o Added code to generate statistics for wavelength shifting.
0862 o Added wls.mac to test WLS and new process WLS2.
0863 o Removed string comparisons and redundant calls in SteppingAction.
0864 o Removed redundant G4AnalysisManager::Instance() calls.
0865 + extended/parallel/TBB
0866 o Updated to use new tasking system which is fully compatible with TBB.
0867 + extended/parallel/ThreadsafeScorers
0868 o Updated to use new tasking system; forcing use of G4TaskRunManager.
0869 o Added example of user code leveraging tasking in TSRunAction; it
0870 leverages tasks on the master thread at the end of the run to generate
0871 some strings of output via a nested hierarchy of tasks and uses the
0872 features of the G4TaskGroup to combine the strings in the order that
0873 they were submitted to the task-group (thus producing the same output
0874 result as the serial version).
0875 + extended/persistency/gdml/G01
0876 o Use [] brackets in loop.gdml sample to show how to index names
0877 and dimensions in loops.
0878 + extended/persistency/P01
0879 o Fixed CMake script for search or Root macros.
0880 + extended/radioactivedecay/Activation
0881 o GammaNuclearPhysics: added G4LowEGammaNuclearModel.
0882 o In Run, corrected a protection on maximum number of histograms.
0883
0884 ----------------------------------------------------------------------------
0885