
                  Geant4 10.7-beta-01 Release Notes
                  ---------------------------------

                                                            26 June 2020

                 Migration Notes & Main New Features
                 -----------------------------------

  o Introducing new optional (experimental) tasking system, based on PTL
    (Parallel Tasking Library), dedicated run manager (G4TaskRunManager) and
    factory (G4RunManagerFactory), enabling use of tasks for the event loop.
    The tasking system is fully compatible with Intel TBB, which can be
    selected if GEANT4_USE_TBB=ON is specified when configuring CMake. The
    default behavior is to submit the tasks to an internal thread-pool and
    task-queue. A comprehensive description of the system and options available
    can be found in the README document located within the new source/tasking
    module.
  o Revision of G4PhysicsVector classes to use similar algorithm for bin
    selection and adding checks on vectors length.
  o G4PhysicsLinearVector, G4PhysicsLogVector: more accurate checks in class
    constructors.
  o New class G4DriverReporter to print progress of field drivers.
  o Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.
    Enable use of whiteboard for logging/debugging in G4MultiLevelLocator, if
    "check-mode" in navigation is being activated through UI command.
  o Added layered mass geometry option for the new "probe" scoring mesh.
  o Introducing G4VPrimitivePlotter allowing the user to extend a primitive
    scorer and directly fill a 1D histogram.
  o Enabled handling of automatic min/max axes values in case of log scale
    in analysis tools.
  o Fixed reading and writing of const properties of materials in GDML.
  o Cleanup destruction of physics processes at the end of job.
    Reviewed ownership/deletion of physics models at the end of the run.
  o Introducing thermal model of positronium decay to two gammas.
    In this model, the positronium acquires a mean kinetic energy on formation,
    which contributes to a small non-collinearity of the gammas, detectable and
    significant in PET.
  o Added new EM model for polarized gamma elastic scattering.
  o Implemented three time constants for G4Scintillation, and allow multiple
    time constants to work with scintillation by particle type.
  o Added second wavelength shifting process within the same material.
  o New physics-list builder classes to allow alternative builders for
    anti_proton, anti_neutron, hyperons and anti-hyperons nuclear interactions
    at high energies with QGSP.
  o Extended EM physics-list constructors to allow extra available DNA options.
  o New General Particle Source energy distribution option that generates flat
    energy distribution with track weights representing energy spectrum.
  o Added handling of lepto-nuclear interactions for anti_nu_e, nu_e and
    anti_mu_nu.
  o Define PDG code as "-22" for G4OpticalPhoton.
  o Added implementation of IRT in G4DNA module.
  o Added new UI messenger for hadronic physics, currently used for controlling
    verbosity level: the UI command "/process/had/verbose 0" allows to switch
    off the print-out at initialization of hadronic processes, models and
    cross sections (similar to the existing command "/process/em/verbose 0"
    to switch off the print-out of electromagnetic physics information).
  o Fixed non-conservation warnings coming from G4HadronicProcess due to
    sub-threshold reactions in Bertini cascade.
  o G4CrossSectionElastic, G4CrossSectionInelastic: fix of the max energy of
    applicability of the (elastic and inelastic) cross-sections of ions and
    anti-ions nuclear interactions.
  o Improved treatment of antibaryon interactions in QGS.
  o Added support for OpenInventor Qt visualisation driver to be built and
    used in applications. The OpenInventor module can be built with either
    the OIQT driver, or with the OIX/OIXE drivers, but not with both.
    Enabled use of OIQT viewer with Qt UI.
  o New advanced example showing how to efficiently simulate particle transport
    through aerosols containing billions of randomly-positioned droplets, using
    an ordinary workstation.
  o Added support for modular builds in CMake.
  o Extended CMake build system to support G4Py activation through
    GEANT4_USE_PYTHON flag.
  o Build option with VecGeom requires VecGeom-1.1.7.
  o New data sets G4EMLOW-7.12.

 ----------------------------------------------------------------------------

                             Technical Notes
                             --------------- 

  o Tested platforms:
    + Linux, gcc-4.9.3.
      Tested on 64 bit architectures (Intel or AMD) with CERN CentOS
      Linux 7 (CC7) (based on CentOS Linux 7).
      Versions of Geant4 have also been compiled successfully on other
      Linux distributions, Ubuntu, Debian, Suse or other RedHat systems.
    + MacOSX 10.15, Apple LLVM/clang-11.0.3
    + Windows/10 with Visual C++ 14.23 (Visual Studio 2019)

  o More verified configurations:
    + Linux, gcc-5.4.0/7.3.0/8.3.0/9.2.0/10.1.0, clang-7.0/8.0/10.0.
    + Linux, Intel-icc 19.0.
    + MacOSX 10.14 with Apple LLVM/clang-10.0.

  o External dependencies
    + CLHEP-2.4.1.3, suggested for external installation of the CLHEP library.
    + VecGeom-1.1.7, for optional use of the VecGeom geometry primitives.

  o New data sets:
    + G4EMLOW-7.12.

 Please refer to the Geant4 User Documentation:
   http://cern.ch/geant4/support/user_documentation
 for further information about using Geant4.

 ----------------------------------------------------------------------------

List of features and fixes included in this Beta release since 10.6.p02:

  o Configuration:
    -------------
    + CMake:
      o Added support for building PTL external module and introduced
        GEANT4_USE_TBB option, enabling use of TBB as possible alternative
        to builtin PTL tasking.
      o Added support for OpenInventor Qt visualisation driver to be built and
        used in applications. The OpenInventor module can be built with either
        the OIQT driver, or with the OIX/OIXE drivers, but not with both.
        Added GEANT4_USE_XM to OpenInventor X11 driver code block to correct
        Xm and Xt link order.
      o Removed requirement on presence of GLU library.
        No longer save GLU related variables in the package cache.
      o Change shimmed imported target name to VecGeom::vecgeom to match
        upstream usage and reliably use target when available from VecGeom.
        Export VecCore_DIR to package cache when set so that Geant4 behaviour
        is consistent. Co-works with VecGeom-1.1.7.
      o Added GEANT4_USE_NEW_CMAKE option in preparation for testing of modular
        build updates, ON by default, to switch between systems. Importing new
        "target" style API for declaring and composing libraries from modules
        of source code. Retain GEANT4_BUILDTREE_INCLUDE_DIRS in new CMake
        system to support clients that may not yet support CMake target usage
        requirements.
      o Propagate value of CMAKE_DISABLE_FIND_PACKAGE_ROOT down to tests
        that optionally support Root to allow testing Geant4 with Root support
        disabled. This is necessary when testing Geant4 with a different C++
        standard than Root when it's installed. Avoid warnings from propagating
        the flag down to tests.
      o Applied patch to allow compilation on Windows using Clang.
      o Use "${FOO:-}" variable expansion and "-z" test to check for
        undefined variables in Bourne Shell scripts. Prevents errors when
        shell is in "set -u" mode. Addressing problem report #2221.
      o Handle install of G4clhep{-static} independently of main modules
        due it being built outside the category system.
      o Renamed remaining internal "Geant4..." modules to "G4" convention.
        Retain Geant4DefineModule and Geant4LibraryTargets until new
        modularization scheme is in place.
      o Updated version of data sets: G4EMLOW-7.12.
        Updated tag-IDs for 10.7-beta.
    + GNUMake:
      o Added setup for building and configuring new externals/ptl
        and tasking modules. External installation of PTL can be enabled
        by defining the installation through the environment variable
        PTL_BASE_DIR.
      o Added -pthread to all builds in Linux targets.
      o Corrected setup for use of OpenInventor (Coin).
      o Added missing settings in G4UI_BUILD.gmk script for OIQt and use of UI.
      o Removed deprecated G4USE_STD11 flag settings.
      o Removed dependency on GLU for all configurations, as no longer
        necessary.

  o Analysis:
    --------
    + Updated to g4tools 5.1.0:
      o Corrections to handle automatic min/max axes values in case of log
        scale. See History_tools in analysis module for all details.
    + Fix to add a null-pointer check to ntupleDescription->fNtuple in
      G4RootPNtupleManager::Merge().
    + Fixed compilation warnings on clang-10 for g4tools.
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.
    + Update granular dependencies in preparation for modularization
    + Remove uneeded links to externals in factory.

  o Digits & Hits:
    -------------
    + Introducing G4VPrimitivePlotter allowing the user to extend a primitive
      scorer and directly fill 1D histogram.
    + Added two ComputeSolid() method to G4VPrimitiveScorer, to consolidate
      code.
    + Fixed cases of comparison between int and size_t in templated classes
      and some cleanup.
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Error Propagation:
    -----------------
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Event:
    -----
    + Introducing a new General Particle Source energy distribution option,
      that generates flat energy distribution with track weights that
      represent energy spectrum provided by /gps/hist/point commands.
      This option can enhance, for example, higher energy tracks that are
      rare but contribute to the scores.
    + Corrected logic in G4VPrimaryGenerator::CheckVertexInsideWorld() method.
    + G4GeneralParticleSourceMessenger: command structure clean-up.
    + Some code cleanup, formatting and C++11 revision.
    + Removed obsolete and unused headers.
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.
    + Fixed Coverity defect in G4GeneralParticleSourceMessenger.

  o Externals:
    ---------
    + ptl:
      o New module for PTL (Parallel Tasking Library), implementing a
        lightweight C++11 multi-threading tasking system featuring thread-pool,
        task-groups, and lock-free task queue.
    + zlib:
      o Added needed include directories to CMake script when using new
        CMake system.

  o G3toG4:
    ------
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Geometry:
    --------
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.
    + magneticfield:
      o New class G4DriverReporter to print progress of drivers.
      o G4VIntegrationDriver and dependent driver classes: added new virtual
        method StreamInfo(), used to implement operator<<() for
        G4VIntegrationDriver.
      o G4MagInt_Driver: fixed max iterations & clarified that its method
        ComputeNewStepSize() does not (yet) respect maximum reduction factor
        (0.1); this is to enable comparisons with new G4IntegrationDriver<>
        implementation.
      o G4OldMagIntDriver maintains all old behaviour of G4MagInt_Driver.
      o In G4MultiLevelLocator, added ability to record in a 'whiteboard',
        the start/end steps of integration intervals, to allow identify issues
        like negative or zero steps occurrences. Includes new classes
        G4LocatorChangeLogger and G4LocatorChangeRecord.
      o G4PropagationInField: improved ClearPropagatorState() method.
      o Implemented move constructor and operator for G4FieldTrack.
    + management:
      o Added deleted declarations for copy constructor and assignment operators
        on store singletons. Based on GitHub PR#12 report.
      o Reduced size of G4LogicalVolume objects by reordering class members.
      o Adopt new convention for location of headers in VecGeom for wrappers.
      o Fix to CMake script to support new CMake system.
    + navigation:
      o Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.
        Enable use of whiteboard for logging/debugging in G4MultiLevelLocator,
        if "check-mode" in navigation is being activated through UI command.
      o Reordered data members in G4Navigator, to reduce object size.
    + solids/CSG:
      o G4Trap: fixed calculation of normal for points on edge in
        SurfaceNormal(). Improved code for Inside().
      o Adopt new convention for location of headers in VecGeom for all
        wrappers.
    + solids/specific:
      o Added GetTwistedFaceSurfaceArea() in G4GenericTrap and fixed
        calculation of surface area in unit tests.
      o Adopt new convention for location of headers in VecGeom for all
        wrappers.

  o Global:
    ------
    + G4Physics2DVector: extended number of characters in the table dump from 5
      to 8; use similar algorithm for bin selection as in 1D vector;
      if any dimension is less than 2 throw a G4Exception.
    + G4PhysicsVector: use same code for interpolation for all types of
      PhysicsVector; removed obsolete unused methods; maximally use const
      variables; preserve precision of printout.
    + G4PhysicsLinearVector: added checks on vector length: if it is less
      than 2 throw a G4Exception.
    + G4PhysicsLogVector: added checks on vector length: if it is less
      than 3 throw a G4Exception.
    + G4PhysicsLinearVector, G4PhysicsLogVector: more accurate checks in class
      constructors. Fixed Coverity warnings.
    + C++11 revision in 'management' and 'HEPNumerics' modules; general
      code cleanup/formatting.
    + Removed use of deprecated G4USE_STD11 flag.
    + Fix to CMake script to support new CMake system.
    + Changed date for release 10.7-beta.

  o Graphics Representations:
    ------------------------
    + HepPolyhedron, G4Polyhedron: added HepPolyhedronTet.
    + G4VisAttributes: clarify that if number of cloud points (for cloud style
      drawing) is <= 0, this is to be interpreted as under control of the
      viewer, i.e., to be decided by the viewer. Otherwise this number is to be
      drawn. Zero is the default value, which may be changed by invoking the
      method SetForceNumberOfCloudPoints(); also possible to force cloud
      drawing with SetForceCloud().
    + Improved deprecation message for G4AttDefs::operator<<().
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Intercoms
    ---------
    + Removed unnecessary use of deprecated G4USE_STD11 flag in G4AnyMethod.
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Interfaces
    ----------
    + G4UIQt: replaced use of setTextColor() with adoption of rich text html
      tags (improving visibility in MacOS Dark Mode).
    + Fixed deprecation warnings being triggered when using Qt-5.15.
    + Use CMake AUTOMOC to automatically generate and compile Moc sources
      and fixed CMake script to support new CMake system.
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Materials
    ---------
    + G4MaterialPropertiesTable: added ConstPropertyExists() method.
    + G4MaterialPropertiesTable, G4MaterialPropertiesIndex: added new
      properties for scintillation allowing 3 time constants and a second
      wavelength shifter in the same material.
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Parameterisations:
    -----------------
    + GFlash:
      o Substituting Gamma calculation with corresponding STL functions, as
        suggested in GitHub PR#3. Makes LnGamma calculation 1.4 times faster,
        and Gamma 1.9 times faster.
      o GFlashSamplingShowerParameterisation: added X0eff calculation.
      o Delete local tuning data in GFlashXXXShowerParameterisation class
        destructors.

  o Particles:
    ---------
    + G4ParticleTable: create/destruct only one instance of G4IonTable and
      associated messenger; define assignment operator and copy constructor
      as deleted; added cache with pointer to selected particle and get/set
      methods.
    + G4DynamicParticle: added GetBeta() method.
    + G4OpticalPhoton: define PDG code as "-22".
    + G4NuclideTable: added destruction of messenger
    + Added move operators to G4DynamicParticle.
      Code revision for c++11 and cleanup in 'management' module.
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.
    + Fixed Coverity warning.

  o Persistency:
    -----------
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.
    + ASCII:
      o Fixed Coverity defects warnings.
    + GDML:
      o Fixed reading and writing of const properties of materials.
        Matrices of size 1x1 are now used both for writing out and reading in
        of const material. This fixes the inconsistency (using constants by the
        writer) found in the code. Const material properties with the same name
        (in different materials) are now written out with the properties table
        address appended.

  o Physics Lists:
    -------------
    + Fixes to CMake scripts to support new CMake system.
    + Builders:
      o Revised all classes to remove unnecessary members, not destruct models
        and cross-sections and use updated instantiation of string models.
        This should help to achieve full deletion of hadronic physics objects
        at the end of run.
      o G4QGSPAntiBarionBuilder: created new class to handle anti_proton and
        anti_neutron at high energies with QGSP. For the light anti-ions
        (anti_deuteron, anti_triton, anti_He3, and anti_alpha), currently QGSP
        cannot handle them, therefore FTFP is used.
      o G4VHyperonBuilder, G4HyperonBuilder, G4HyperonQGSPBuilder: new classes
        to allow alternative builders for hyperons (and anti-hyperons).
        The class G4HyperonQGSPBuilder uses QGSP model to handle hyperons (and
        anti-hyperons) at high energies.
      o G4HyperonFTFPBuilder: now it derives from G4VHyperonBuilder (physics
        behind remains unchanged, i.e. it is still based on BERT and FTFP
        models).
      o G4HadronicBuilder: new utility class to build kaons, hyperons, and b-,
        c- particles.
      o Added second wavelength shifter optical process to the
        OrderingParameterTable.
    + Constructors:
      o decay:
        - G4RadioactiveDecayPhysics: enabled flag for isomer production,
          required after fix to problem report #2226.
          Updated initialisation to be coherent with recent updates in
          initialisation of atomic de-excitation.
        - G4DecayPhysics, G4RadioactiveDecayPhysics, G4SpinDecayPhysics,
          G4UnknownDecayPhysics: general cleanup. Removed thread local pointers,
          avoid deleting objects; use C++11 keywords; use standard signatures
          for constructors; define builder type for the main constructor
          G4DecayPhysics (bDecay, for others bUnknown).
      o electromagnetic:
        - G4OpticalPhysics, G4OpticalPhysicsMessenger: added settings for
          G4Scintillation to use 3 time constants. Added second wavelength
          shifter optical process to constructors.
        - G4EmBuilder: new utility class to allow reducing code duplication for
          standard and low-energy EM physics constructors. Includes flag for
          allowing choice of multiple-scattering model.
        - G4EmStandardPhysics_option1: switch to use new G4EmBuilder utility;
          fixed StepFunction definition.
        - G4EmStandardPhysics_option3: switch to use new G4EmBuilder utility;
          use ICRU90 stopping power data for water and air.
        - Removed duplicate code by using G4EmBuilder in several constructors,
          fixed definition of StepFunction, use the same flag as hadronic
          physics to enable EM interaction of b- and c- mesons and baryons.
        - G4EmModelActivator: use same options for physics per region as used
          in EM constructors recently updated.
        - G4LivermorePolarizedPhysics: use inheritance from G4LivermorePhysics.
        - G4EmDNAModelActivator: extended to extra available DNA options
          (DNA_Opt2, DNA_Opt4, DNA_Opt4a, DNA_Opt6, DNA_Opt6a, DNA_Opt7).
        - Optimisation in initialisation of G4EmDNAChemistry_option3.
        - Use C++11 features in several constructors.
      o gamma_lepto_nuclear:
        - G4EmExtraPhysics, G4EmMessenger: added low-energy limit, set method,
          and UI command defining low-energy gamma-nuclear model, which is
          using de-excitation module and providing isomer production and
          gamma transitions.
        - G4EmExtraPhysics: extension to anti_nu_mu, nu_e and anti_nu_e
          processes-models.
      o hadron_inelastic:
        - Use the new builder class G4QGSPAntiBarionBuilder to handle
          anti_proton and anti_neutron at high energies with QGSP.
          For the light anti-ions - anti_deuteron, anti_triton, anti_He3 and
          anti_alpha - currently QGSP cannot handle them, therefore FTFP is used.
        - In all the inelastic physics constructors which are using the builder
          G4HyperonFTFPBuilder, introduced the new builder G4HyperonBuilder;
          moreover, the new builder G4HyperonQGSPBuilder is used now in all
          QGS-based inelastic physics constructor for hyperons (and
          anti-hyperons) at high energies, while keeping using
          G4HyperonFTFPBuilder at lower energies.
        - G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BERT,
          G4HadronInelasticQBBC: added b- and c- particles.
        - G4HadronPhysicsQGSP_BIC_HP, G4HadronPhysicsQGSP_BIC_AllHP: refactoring
          consistently with all others. For G4HadronPhysicsQGSP_BIC_HP, the
          physics remains unchanged; for G4HadronPhysicsQGSP_BIC_AllHP, the
          physics remains unchanged except for the transition region between
          Binary and ProtonHP which is now 190-200 MeV (instead than 199-200),
          as for light ions.
      o ions:
        - Cleanup of constructors: fixed names; made all constructor signatures
          universal, removed thread local members, added c++11 keywords.
      o stopping:
        - Cleanup of constructors: fixed names; made all constructor signatures
          universal, removed thread local members, added c++11 keywords.
    + utils:
      o G4HadParticles: new utility providing several lists of PDG codes for
        kaons, hyperons, b- and c- particles in order to be used for
        construction of hadronic physics. Updated list of heavy EM particles.

  o Electromagnetic Processes:
    -------------------------
    + DNA:
      o Added classes for IRT; added features in management classes for IRT
        (G4ITReaction, G4ITModelProcessor ...).
      o Added features in G4DNAMolecularReactionTable for GFDE.
      o Added molecules (Oxygen, O2, O3, HO2) from: Plante et al.(2017).
      o G4MoleculeDefinition: copy constructor and assignment operator are not
        allowed (as for G4ParticleDefinition). Now deleted.
      o Revised displacement of OH radicals of B1A1 dissociation based on
        momentum conservation in G4DNAWaterDissociationDisplacer.
      o Fix to CMake script to support new CMake system.
    + Low Energy:
      o Added new model for polarized gamma elastic scattering, provided by
        the JAEA group. Updated existing process (G4JAEAElasticScattering) and
        model (G4JAEAElasticScatteringModel) in order to comply with the new
        data format. Changed initialisation of JAEA models.
      o G4LivermorePhotoElectricModel: allow "Water" as a name of water
        material for low-energy photo-effect.
      o Added G4LivermoreGammaConversion5DModel class. Reading EPICS2017 data.
      o Change in G4LivermoreGammaConversion to now derive from
        G4PairProductionRelModel. Added missing method InitialiseForElement().
      o Fixed compilation warnings on clang-10.
    + Standard:
      o G4eplusAnnihilation: fixed problem seen in the rare case, when initial
        energy is null; introducing thermal model of positronium decay to two gammas.
        In this model, the positronium acquires a mean kinetic energy on
        formation, which contributes to a small non-collinearity of the
        gammas, detectable and significant in PET. To activate this model:
          material->GetIonisation()->SetMeanEnergyPerIonPair(meanKE).
        A mean kinetic energy of 5 eV produces a projected acollinearity
        of about 0.5 degrees FWHM, as reported in:
        K.Shibuya et al., IFMBE Proceedings Vol. 14/3 1667 (2007).
      o G4UniversalFluctuation: changed 'nmaxCont' from 16 to 8 for speedup.
        Set value for 'a0' to 42 after optimisations. Minor C++ improvements.
      o G4UrbanMscModel: tuned 'tlimitmin' computation for e- (for e+ kept
        unchanged) and changed parameterisation of 'stepmin'; added two private
        inline methods to reduce code duplication.
        Removed cache and introduced data struct precomputed at initialisation,
        added e- range cut to the data structure.
      o G4BetheHeitler5DModel: change "final" keyword by "override" for virtual
        methods.
      o G4LindhardSorensenData: fixed few numbers in the data table.
      o G4eeToTwoGammaModel: code cleanup; added static flag, which identifies
        if electron motion is taken into account for sampling of acollinearity, 
        when annihilation happens at rest; ensuring that by default no extra
        computation is performed; also removed extra printout at initialisation
        and extra data structure.
      o Fixed compilation warnings on clang-10.
   + Utils:
      o G4EmParameters, G4EmLowEParameters, G4EmLowEParametersMessenger: added
        a new parameter - name of the sub-directory with data for Livermore
        models with variants: "livermore" (default), "epics_2017".
        Comes with G4EMLOW-7.10 data set and higher.
      o G4EmParameters, G4EmParametersMessenger, G4VMultipleScattering:
        removed displacement-beyond-safety option, as may lead to crashes in
        some circomstances, and wrong results in others.
      o G4EmParameters, G4EmParametersMessenger, G4EmExtraParametersMessenger,
        G4VEnergyLossProcess: added two extra sets of StepFunction parameters
        for light ions and generic ions. Added extra UI commands. Modified
        interfaces accordingly. Removed old comments.
      o G4EmLowEParametersMessenger: extended number of DNA PhysicsList options.
      o G4VEmProcess: removed old unused methods; DefinedMaterial() method is
        now protected (needed for AtRest processes).
      o G4LossTableManager: made ResetParameters() method public.
      o G4VAtomicDeexcitation: optimized arrays initialisation.
      o G4EmCalculator: fixed printout.
    + Xrays:
      o Implemented three time constants for G4Scintillation, and allow
        multiple time constants to work with scintillation by particle type.
        The existing material property names have FAST and SLOW in them, like
        FASTTIMECONSTANT. This doesn't generalize well. Also YIELDRATIO as a
        single value doesn't generalize to three time constants. Proposal is
        to create new names SCINTILLATIONTIMECONSTANT1/2/3 and the same for
        other parameters. The existing names are kept for backwards
        compatibility, with the idea to remove them in the next major release.
        There is a flag in G4Scintillation, with messenger command in the
        OpticalPhysics list, to use the new method:
          /process/optical/scintillation/setEnhancedTimeConstants true.
        Results are unchanged if using same values.
        Set verbosity levels correctly.
      o G4VXTRenergyLoss: fixed destructor.
      o Code formatting.

  o Generic Processes:
    -----------------
    + Biasing:
      o G4ImportanceProcess: added process type as fParallel.
    + Cuts:
      o Revision for use of c++11 constructs. Code cleanup and formatting.
    + Management:
      o G4ProcessManagerMessenger: use cache pointer of selected particle
        in the G4ParticleTable class.
      o G4ProcessTable: enabled deletion of all processes except
        G4Transportation at the end of run.
      o Fixed Coverity warning for uninitialised data in G4VProcess.
      o C++11 revision and code cleanup/formatting.
    + Optical:
      o Added second wavelength shifting process, G4OpWLS2, within the same
        material.
      o Use new ConstPropertyExists(int) method rather than passing strings.
      o G4OpRayleigh: avoid double deletion of property vectors.
      o Code cleanup and improved readability.
    + Parameterisation:
      o G4FastSimulationHelper: merged ActivateFastSimulation() calls for mass
        and parallel geometry cases.
      o G4FastSimulationManager, G4VFastSimulationModel: removed redefinition
        of G4Envelope type.
      o Added sanity check for root logical volumes in regions for
        G4GlobalFastSimulationManager. UI command /param/showSetup works also
        if no parallel world is present.
    + Scoring:
      o G4ParallelWorldProcess, G4ParallelWorldScoringProcess: use new PDG
        code for optical photon, "-22".
      o G4ParallelWorldProcess: make some private methods and data members
        protected so that this class can be extendable.

  o Hadronic Processes:
    ------------------
    + Fixes to CMake scripts to support new CMake system.
    + cross_sections
      o G4ElNeutrinoNucleusTotXsc: new class for (nu_e,anti_nu_e)-nucleus
        cross-sections.
      o G4PhotoNuclearCrossSection: corrected threshold for
        gamma + p -> pi0 + p, extended for use on 3H and 3He targets.
      o G4HadronNucleonXsc: general clean-up of the code; use PDG number
        instead of particle pointer; removed instantiation of most of hadrons,
        optimisation in selection of parameterisation parameters.
      o G4CrossSectionElastic, G4CrossSectionInelastic: fix for ions and
        anti-ions, where the max energy of applicability of the (elastic and
        inelastic) cross-sections must scale with the absolute baryonic number;
        however, the cross-sections objects are often shared between the
        different types of ions (d, t, He3, alpha, and genericIon), therefore
        we scale by a large value (256, safely larger than the number of
        nucleons of the heaviest nuclides).
      o Fixed compilation warnings on clang-10.
    + management
      o G4HadronicProcess: fixed Coverity defect warning to EP check method for
        the case when primary particle remains in the interaction.
      o G4HadronicProcessStore: in the method Dump(), check the internal
        verbosity level as well as the newly introduced global hadronic
        verbosity level, returning immediately (without printing anything) if
        one of these is 0. Extended default initialisation printout to sigma-,
        D-, B-. Removed check for G4HadronicException, where it cannot be;
        limit printout on kaon0 in final state.
      o Removed use of deprecated G4USE_STD11 flag.
      o G4HadLeadBias: replaced 'G4int' with 'size_t' to fix warnings
        on Windows.
    + models/binary_cascade
      o G4BinaryCascade: fixed memory leak at exit.
    + models/cascade
      o Fixed non-conservation warnings coming from G4HadronicProcess due to
        sub-threshold reactions in Bertini. Sub-threshold reactions are now
        treated as having a "non-interaction" final state, that is, the initial
        particles are simply copied to the final state.
      o Fixed compilation warnings on clang-10.
    + models/de_excitation
      o G4PhotonEvaporation, G4DeexPrecoParameters, G4DeexParametersMessenger:
        added extra flag 'IsomerProduction'; if enabled. photon evaporation
        samples the time of gamma transition; added C++ interface and UI command
        allowing to set this flag; radioactive decay constructor should enable
        this parameter. Addressing problem report #2226.
      o G4DeexPrecoParameters: in method Dump(), check the global verbosity
        level of hadronics (if zero, do not print anything).
      o Fixed compilation warnings on clang-10.
    + models/inclxx
      o G4INCLXXInterfaceStore: in method EmitBigWarning(), check the global
        verbosity level of hadronics (if zero, do not print anything).
      o Fixed compilation warnings on clang-10.
    + models/lepto_nuclear
      o G4NuMuNucleusCcModel, G4NeutrinoNucleusModel, new access methods
        and minor fixes in in nu-mu nucleus model.
      o Added classes G4ANuElNucleusCcModel and G4ANuElNucleusNcModel, 
        for anti_nu_e. Initialization from G4PARTICLEXS (neutrino/anti_nu_e).
      o Added classes G4NuElNucleusCcModel and G4NuElNucleusNcModel,
        for nu_e. Initialization from G4PARTICLEXS (neutrino/nu_e).
      o Added classes G4ANuMuNucleusCcModel and G4ANuMuNucleusNcModel,
        for anti_mu_nu. Initialization from G4PARTICLEXS (neutrino/anti_nu_mu).
      o G4NuMuNucleusCcModel, G4NuMuNucleusNcModel, G4NeutrinoNucleusModel:
        rearrangement of initialisation methods and arrays.
        Fixes in CoherentPion() method, cleanup of Cc and Nc.
      o G4NeutrinoNucleusModel: added K+, K- in final state.
      o Fixed Coverity warnings for defects.
    + models/management
      o G4HadronicInteractionRegistry: delete HP and PHP at the end of run.
      o G4HadronicInteraction: provide default implementation for all virtual
        methods.
      o G4VHighEnergyGenerator, G4VIntraNuclearTransportModel,
        G4VPreCompoundModel: cleaned up: removed old commented lines,
        code format, C++11 keywords.
    + models/particle_hp
      o Allow printout only if the global hadronic verbosity level is not zero.
      o G4ParticleHPHash, G4ParticleHPCaptureFS: fixes for implicit conversion
        between 'size_t' and 'G4int', to avoid warnings on Windows.
    + models/parton_string
      o Improved treatment of antibaryon interactions in QGS.
        In G4QGSMFragmentation, corrected the treatment of low-mass diquark-
        antidiquark strings. In addition to this, introduced the Mt
        distribution of produced hadrons.
        In G4VLongitudinalStringDecay, introduced in SetMinimalStringMass()
        a check that the strings are of allowed type: quark-antiquark, diquark-
        antidiquark, quark-diquark and antiquark-antidiquark. Introduced also
        for diquark-antidiquark strings a special algorithm (already present
        for the other types of allowed strings) for treating low-mass strings
        with masses below known hadrons.
      o In G4QGSParticipants, the average transverse momentum of partons in a
        hadron is set to zero (according to the study of transverse momentum
        distributions of hadrons produced in hadronic interactions, in
        particular the study of Xf - Pt correlations presented by the NA49
        Collaboration). In G4QuarkExchange, the reggeon exchanges are now
        treated as annihilation and creation of quark-antiquark pairs (to
        reflect in inelastic processes the non-vacuum reggeon exchanges present
        in antiparticle-particle elastic scattering amplitudes).
      o G4VLongitudinalStringDecay, G4LundStringFragmentation,
        G4ExcitedStringDecay: inherit from G4HadronicInteraction; destruction
        of these models at the end of run is now done by the hadron model
        store; removed implementations of private operators.
      o G4VStringFragmentation: use inheritance from G4HadronicInteraction;
        removed implementations of private operators.
      o G4SPBaryonTable: changed return type of the method 'length()' from
        'double' to 'size_t', to fix warnings on Windows.
      o G4FTFModel, G4FTFParticipants: clean-up: removed unused methods,
        delete operators, use of C++11 keywords.
      o G4VParticipants, G4VPartonStringModel, G4VStringFragmentation,
        G4StringModel: clean-up; removed unused methods, delete operators,
        use of C++11 keywords.
      o G4QGSModel: clean-up; removed unused methods, delete operators, use of
        C++11 keywords, moved inline implementation to source.
    + models/qmd
      o G4QMDReaction: added code in ApplyYourself() to get cross-section when
        projectile is pion. Replaced data member G4PiNuclearCrossSection with
        G4BGGPionElasticXS and G4BGGPionInelasticXS.
        In G4QMDGroundStateNucleus constructor, move check for p or n
        projectile earlier in code so baryon number can be conserved.
        Addressing problem report #2236.
    + models/quasi_elastic
      o G4QuasiElRatios: fixed memory leak at exit.
    + models/radioactive_decay
      o G4RadioactiveDecayBase, G4RadioactiveDecay: in BuildPhysicsTable(),
        check the global hadronic verbosity level before printing out
        information.
    + models/rpg
      o Fixed Coverity warnings for unused variables.
    + models/theo_high_energy
      o G4QuasiElasticChannel: use inheritance from G4HadronicInteraction.
        In G4TheoFSGenerator do not destruct G4QuasiElasticChannel.
      o G4QuasiElasticChannel, G4TheoFSGenerator: clean-up; use of C++11
        keywords and loops, removed unused methods, formatting. 
    + models/util
      o Fixed compilation warnings on clang-10.
    + processes
      o G4MuNeutrinoNucleusProcess, G4ElNeutrinoNucleusProcess: extended to
        anti_nu_mu, nu_e and anti_nu_e.
    + stopping
      o G4HadronicAbsorptionFritiof,
        G4HadronicAbsorptionFritiofWithWithBinaryCascade: simplified
	instantiation of the FTF model, do not destruct its components.
      o G4MuonicAtomDecay: fixed Coverity defect warning.
    + util
      o G4HadronicParameters: added modifiers for Cascade-FTF transition.
        Creates the new messenger.
      o G4HadronicParametersMessenger: created new messenger class for
        G4HadronicParameters. For the time being it has only the global
        verbosity level for hadronics.
      o G4HadFinalState: fixed warning on Windows for implicit conversions
        from 'size_t' to 'G4int'.

  o Readout
    -------
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Run
    ---
    + G4RunManager, G4WorkerRunManager: added layered mass geometry option
      for the new "probe" scoring mesh.
    + G4RunManager: do not call G4ParticleTable for Messenger deletion.
    + Modified G4MTRunManager to enable inheritance for new G4TaskRunManager.
    + G4MTRunManager, G4RunManager: fixes for windows, to avoid inline static
      methods and use export flag G4RUN_DLL for static data.
    + Added second wavelength shifter process to G4PhysicsListHelper.
    + G4VPhysicsConstructor: added harmless call to G4HadronicParameters in
      constructors, setting a default parameter; needed to create the instance
      of the G4HadronicParameters singleton before run initialization.
    + General code formatting.
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Tasking
    -------
    + New module implementing a new Geant4 run manager, G4TaskRunManager,
      enabling use of the PTL tasking system for the event loop. The tasking
      system is fully compatible with Intel TBB, which can be selected if
      GEANT4_USE_TBB=ON is specified when configuring CMake. The default
      behavior, however, is to submit the tasks to an internal thread-pool
      and task-queue.
      A comprehensive description of the system and options provided can be
      found in the README document located within this module.

  o Track & Tracking
    ----------------
    + G4Track: use new G4OpticalPhoton PDG code; removed static thread local 
      variables; slightly simplified velocity computation; fixed Coverity
      warnings connected with unnecessary checks for valid pointers to G4Step
      and G4DynamicParticle; removed commented code.
      Avoid using velocity table, use GetBeta() method from G4DynamicParticle
      instead; expected minor speedup.
    + Minor c++11 revision; code cleanup and formatting in tracking module.
    + Fixed minor Coverity defect for uninitialised data in G4SteppingManager.
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories.

  o Visualization:
    -------------
    + Cleanup CMake build, removing obsolete granular library options and
      explicit include_directories. Fixed compilation warnings on clang-10.
    + Use CMake AUTOMOC to automatically generate and compile Moc sources
      and fixed CMake script to support new CMake system.
    + management:
      o Fixed case where models with no extent do not contribute to scene's
        extent.
      o Trap infinite loop when looking for a fallback graphics system when
        issuing "/vis/sceneHandler/create".
      o G4VisExecutive: added support for OIQT driver, via "OIQT" or "OI"
        keywords, provided the G4OpenInventor library has been built with
        the OIQT driver included.
      o Added new command "/vis/geometry/set/forceCloud".
      o G4VVisCommand: added CheckView for future utility.
      o G4VisCommandsScene: improved output layout for "/vis/scene/showExtents".
      o Bug fix: rebuild graphics databases after "/vis/filtering/*/mode".
      o Improved printing of available systems and models.
    + modeling:
      o Suppress warnings while filter not fully established.
      o Minor code tidy.
    + OpenGL:
      o Improved guidance and tidy "/vis/ogl/" commands.
      o Removed no longer required dependence on GLU.
      o Removed support for Qt4.
      o Fixed bug in "/vis/ogl/export" when dot '.' is included in name.
    + OpenInventor:
      o Enable configuration for OIQT driver, as orthogonal to OIX and OIXE.
      o Corrections to OIQT viewer and changes for use with Qt UI.

  o Data Sets:
    ---------
    + G4EMLOW-7.12:
      o Added new cross-section files for protons (HT).
      o Added EPICS2017 data for gamma conversion (ZL).
      o Added new JAEA elastic polarized gamma scattering data files
        in compressed format.
      o Added a new numerical DCS set for e-/e+ elastic scattering
        obtained by numerical Dirac Partial Wave Analysis (DPWA).
        More information can be found in the 'dpwa/Readme.txt' file.

  o Examples:
    --------
    + Updated reference outputs, macros, READMEs and scripts.
    + advanced/air_shower
      o Added missing include statement in UltraDetectorConstruction.
    + advanced/fastAerosol
      o New example showing use of FastAerosol geometry classes, allowing to
        efficiently and accurately simulate particle transport through aerosols
        containing billions of randomly-positioned droplets, using an ordinary
        workstation. See: MacFadden, N., Knaian, A., "Efficient Modeling of
        Particle Transport through Aerosols in Geant4", manuscript in
        preparation, 2020.
    + advanced/gammaray_telescope
      o GammaRayTelHadronPhysics, GammaRayTelIonPhysics: fixed
        compilation problems due to incorrect FTFP instantiation.
    + advanced/hadrontherapy
      o Deleted many obsolete macro files.
      o Code cleaup; removed Root script folder and other cosmetics.
    + basic/B5
      o Migrated main() to use new G4RunManagerFactory.
        The new G4TaskRunManager is exercised by default in MT builds.
    + extended/electromagnetic/TestEm1
      o PhysicsList: use G4RadioactiveDecayBase instead of deprecated
        G4RadioactiveDecay. Minor code cleanup.
    + extended/electromagnetic/TestEm4
    + extended/electromagnetic/TestEm7
      o Do not call vis.mac automatically in interactive mode.
    + extended/electromagnetic/TestEm11
      o PhysicsList: use G4RadioactiveDecayBase instead of deprecated
        G4RadioactiveDecay. Minor code cleanup.
    + extended/hadronic/Hadr00
      o HistoManagerMessenger: fixed destructor.
    + extended/hadronic/Hadr02
      o HadronPhysicsCRMC_FTFP_BERT , HadronPhysicsHIJING , HadronPhysicsUrQMD:
        introduced the new class G4HyperonBuilder which is now needed when
        using G4HyperonFTFPBuilder.
    + extended/hadronic/Hadr03
      o PhysicsList: added G4HadronPhysicsQGSP_BIC, Shielding, RadioactiveDecay.
      o GammaNuclearPhysics: added G4LowEGammaNuclearModel.
      o Added GammaNuclearPhysicsLEND.
      o HistoManager, SteppingAction: added plot of e-.
      o Modified gamma.mac script; added Au196.mac.
    + extended/hadronic/Hadr06
      o HistoManager, TrackingAction: plot particle energy at creation.
      o GammaNuclearPhysics: added G4LowEGammaNuclearModel.
    + extended/hadronic/Hadr07
    + extended/hadronic/NeutronSource
      o GammaNuclearPhysics: added G4LowEGammaNuclearModel.
    + extended/medical/dna/chem6
      o New example providing scoring of the radiochemical yield G defined as
        (Number of species X) / (100 eV of deposited energy), as a function of
        time and LET. The details are described in the following paper:
        J. Appl. Phys. 125 (2019) 104301.
    + extended/optical/OpNovice2
      o Use new scintillation time constant parameter.
      o Added code to generate statistics for wavelength shifting.
      o Added wls.mac to test WLS and new process WLS2.
      o Removed string comparisons and redundant calls in SteppingAction.
      o Removed redundant G4AnalysisManager::Instance() calls.
    + extended/parallel/TBB
      o Updated to use new tasking system which is fully compatible with TBB.
    + extended/parallel/ThreadsafeScorers
      o Updated to use new tasking system; forcing use of G4TaskRunManager.
      o Added example of user code leveraging tasking in TSRunAction; it
        leverages tasks on the master thread at the end of the run to generate
        some strings of output via a nested hierarchy of tasks and uses the
        features of the G4TaskGroup to combine the strings in the order that
        they were submitted to the task-group (thus producing the same output
        result as the serial version).
    + extended/persistency/gdml/G01
      o Use [] brackets in loop.gdml sample to show how to index names
        and dimensions in loops.
    + extended/persistency/P01
      o Fixed CMake script for search or Root macros.
    + extended/radioactivedecay/Activation
      o GammaNuclearPhysics: added G4LowEGammaNuclearModel.
      o In Run, corrected a protection on maximum number of histograms.

 ----------------------------------------------------------------------------
 
