Back to home page

EIC code displayed by LXR

 
 

    


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