
                  Geant4 10.6-beta-01 Release Notes
                  ---------------------------------

                                                            28 June 2019

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

  o Promoting pre-processor flags to fixed #defines in a new header
    generated by CMake, reducing flags added to CMAKE_CXX_FLAGS.
  o Reviewed G4PhysicsVector adding an additional Value() method option to
    propagate down the known log-energy value. This helps avoiding log() calls
    when log-vector is used.
  o Enabled VecGeom wrapper for G4GenericPolycone. Requiring VecGeom-1.1.2.
  o Added support for writing out assemblies envelopes in GDML.
  o Added functionality in G4DynamicParticle to provide log-kinetic energy
    value, computed only on demand if its stored value is not up-to-date with
    the kinetic energy. Reviewed EM processes to select the target atom by
    making use of the already known log-energy value in the log-vector access.
    Providing measurable CPU speedup.
  o Optimised step limitation in G4UrbanMscModel and modified lateral
    displacement sampling.
  o New helper class G4NIELCalculator, to compute NIEL in user stepping
    action or sensitive detector code.
  o Cross-sections: high energy extension of the neutrino-electron cross
    sections, for both charged-current and neutral-current interactions
    (M_W and M_Z propagator factors and Glashow resonance), for all neutrino
    and anti-neutrino flavours.
  o Extended hadron-nucleon cross-sections to charmed and bottom hadrons
    (mesons and baryons).
  o Use Glauber-Gribov cross-section for hyperons in hadron elastic physics.
  o Added handling of UI thermalization model control in DNA physics lists.
  o Removed tracking cut in hadron-elastic and use numerically safer
    computation for very low-energy projectile.
  o Use FTFP also for the annihilation at rest of neutral anti-hadrons.
  o Added spontaneous fission channel in radioactive-decay.
  o Enhanced UI commands to now return proper return code when they are not
    successful.
  o Added new gamma-nuclear model based on pre-compound de-excitation
  o New set of UI commands and improvements in visualization.
    Added new UI commands for view interpolation and centering.
  o Introducing cloud drawing style in visualization, using kernel algorithms
    for generating points on the surface of volumes, by-passing polyhedral
    representations; the solid is being visualised by a polymarker of dots.
  o Porting of code on gcc-9.1 series.
  o Updated to CLHEP version 2.4.1.2.
  o New data sets G4PARTICLEXS-2.0.

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

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

  o Tested platforms:
    + Linux, gcc-4.8.5.
      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.14, clang-6.0 (Apple LLVM/Clang-10.0.1)
    + Windows/10 with Visual C++ 14.11 (Visual Studio 2017)

  o More verified configurations:
    + Linux, gcc-4.9.3/5.4.0/6.3.0/7.3.0/8.2.0/9.1.0, clang-5.0/7.0.
    + Linux, Intel-icc 19.0.
    + MacOSX 10.12/13 with clang-3.9/4.0

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

  o New data sets:
    + G4PARTICLEXS-2.0.

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

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

List of features and fixes included in this Beta release since 10.5.p01:

  o Configuration:
    -------------
    + CMake:
      o Removed obsolete GEANT4_BUILD_MUONIC_ATOMS_IN_USE option
        and associated configuration/compiler flags.
      o Promoting following pre-processor flags to fixed #defines in a new
        header generated by CMake using the chosen build options to
        #define/#undef as appropriate: G4USE_STD11, G4MULTITHREADED,
        G4_STORE_TRAJECTORY, G4VERBOSE, GEANT4_USE_TIMEMORY.
        Promoted VecGeom pre-processor flags to fixed #defines as well.
        Ensuring the header is included by primary "global" category headers
        so that all categories will pick up the changes transparently.
        Removed use of add_definitions of CMAKE_CXX_FLAGS to set these flags
        in Geant4 and client scripts.
      o Removed G4FPE_DEBUG from build mode "Debug". Added new build mode
        "Debug_FPE" same as "Debug" mode but appending -DG4FPE_DEBUG.
      o Updated version of data sets: G4PARTICLEXS-2.0.
        Updated tags for 10.6-beta.
    + GNUMake:
      o Hard-code Qt version through QT_VERSION flag.
        Corrected Qt5 setup for Linux-g++ and Linux-clang.
      o architecture.gmk: added -DG4GMAKE to CPPFLAGS to identify enabling
        of GNUmake builds.

  o Analysis:
    --------
    + Fixed CSV, XML ntuple file names.

  o Digits & Hits:
    -------------
    + G4PSSphereSurfaceFlux: fixed track weight.

  o Event:
    -----
    + G4SPSPosDistribution: added accessor methods for volume confinement 
      Addressing GitHub PR #7.

  o Externals:
    ---------
    + Updated CLHEP module to version 2.4.1.2:
      o MixMaxRng: throw if seed is zero. Use throw instead of exit()
        elsewhere.
        Defaulted operator=() also for BasicVector3D andPlan3D; fixing
        deprecation warnings  on gcc-9.1.
        Fixed shadowing compilation warnings in Transform3D as reported
        on gcc-9.1.

  o Geometry:
    --------
    + divisions:
      o Return correct value for multiplicity in G4PVDivision and
        G4ReplicatedSlice. Addressing problem report #2168.
    + magneticfield:
      o G4ChordFinder: changed to use concrete type of Stepper as template
        parameter.
      o G4InterpolationDriver: new revision with multiple steppers for
        each substep. Fixed memory churn; use FSAL property of
        G4DormandPrince745. Change from G4VERBOSE to G4FIELD_DEBUG for
        debug checks.
      o Removed division in G4DormandPrince745::Interpolate4thOrder().
      o Reset step estimate in G4MagInt_Driver only at the beginning of a
        track.
    + management:
      o G4GeomSplitter: re-enabled use or realloc()/free() and memcpy(), after
        adapting G4VPhysicalVolume MT splitted data to adopt only trivial types
        for allocation. Re-establishing original performance in initialisation
        of the geometry in MT mode.
      o Properly initialise splitted data in G4VPhysicalVolume to zero.
      o Replaced deprecated std::binary_function calls with lambdas in
        G4SmartVoxelStat and G4GeometryManager. Addressing GitHub PR#8.
      o Defined move constructor and move assignment operator for
        G4AffineTransform.
      o Use header-based #define/undef symbols to configure VecGeom
        replacements; added new configuration headers G4GeomConfig.hh and
        G4GeomTypes.hh.
      o Fixed minor Coverity defects.
    + navigation:
      o Improved information in G4Exceptions for particles stuck due to
        multiple zero steps in G4Navigator.
    + solids/CSG:
      o G4Tubs: Fixed normal from DistanceToOut() to be unit vector, for
        abnormal exit points. Added inverse-Rmax and -Rmin as data members.
      o Re-use pre-calculated values instead of using std::cos(), std::sin()
        in G4Tubs, G4Cons, G4CutTubs and G4Sphere.
      o Added inclusion of new G4GeomTypes.hh header to those headers allowing
        VecGeom replacement.
    + solids/specific:
      o Enabled VecGeom wrapper for G4GenericPolycone. Requiring VecGeom-1.1.2.
      o Modified G4PolyconeSide and G4PolyhedraSide to use only trivial types
        for MT splitted data in G4PlSideData and G4PhSideData respectively.
      o Protected check in G4TwistedTubsSide::DistanceToPlane() within debug
        flag.
      o Defined move constructor and move assignment operator for
        G4TriangularFacet.
      o Use GetVertices() instead of GetParametersList() in the wrapper G4UTet.
      o Added inclusion of new G4GeomTypes.hh header to those headers allowing
        VecGeom replacement.
      o Fixed minor Coverity defects.

  o Global:
    ------
    + G4PhysicsVector: added additional Value() method option to propagate down
      the known log-energy value (can avoid the log call in case of
      log-vector).
    + Added new LOG_EKIN_MIN constant as value taken in case of zero kin-energy
      in templates.hh.
    + Defined default move constructor and move assignment operator for
      G4String and G4DataVector.
    + Added G4GlobalConfig.hh generated header to hold global, always required,
      pre-processor symbols instead of relying on -D flags for: G4USE_STD11,
      G4MULTITHREADED, G4_STORE_TRAJECTORY, G4VERBOSE and GEANT4_USE_TIMEMORY.
      Added inclusion of G4GlobalConfig.hh in G4Types.hh, tls.hh and
      G4TiMemory.hh so that global and other categories pick up the definitions
      transparently.
    + Updated other headers/srcs to include G4Types/G4Threading if they use
      G4MULTITHREADED.
    + Changed date for release 10.6-beta.

  o Graphics Representations:
    ------------------------
    + G4VisAttributes: added 'cloud' and methods to force, SetForceCloud(),
      and SetForceNumberOfCloudPoints().
    + G4VisExtent: added method Transform(const G4Transform3D&).
    + Removed Get/SetDrawOverlapsFlag() from G4VVisManager.

  o Intercoms
    ---------
    + The following UI commands now return proper return code when they are
      not successful: /control/execute, loop, foreach, shell, getEnv.
      Addressing problem report #2159.

  o Particles:
    ---------
    + G4DynamicParticle: added functionality to provide log-kinetic energy
      value, computed only on demand if its stored value is not up-to-date
      with the kinetic energy.
      Code cleanup: moved data members to be private; aligned class members
      3-vectors, doubles, integer; added initialisation of PDG code and
      polarization in all constructors; added method SetPolarisation(); use
      CLHEP electron mass; removed unused forward declarations and headers.

  o Persistency:
    -----------
    + GDML:
      o Added support for writing out assemblies envelopes.
      o Improved reading of optical properties reader, by allowing reuse of
        the same G4MaterialPropertyVector object for identical properties.

  o Physics Lists:
    -------------
    + Constructors:
      o electromagnetic:
        - Added handling of UI thermalization model control in
          G4EmDNAPhysics_option1,2,3,4,5,6,7,8.
        - G4EmDNAChemistry constructors: updated to follow emdna changes.
        - Added sub-excitation processes in G4EmDNAPhysics_option8.
        - G4EmLivermorePhysics, G4EmPenelopePhysics,
          G4EmStandardPhysics_option4, G4EmStandardPhysics_option3: define
          upper energy limit for nuclear stopping via EM parameters.
          In all DNA constructors, added ActivateDNA() flag to EM parameters.
        - Added G4EmDNAChemistry_option2 constructor.
      o gamma_lepto_nuclear:
        - G4EmExtraPhysics: added muon-neutrino nucleus interactions; removed
          extra static members.
      o hadron_inelastic:
        - G4HadronElasticPhysics: use Glauber-Gribov cross-section for
          hyperons.
        - G4HadronDElasticPhysics, G4HadronDElasticPhysics: use Glauber-Gribov
          cross-section for hyperons, d, t, He3, He4.
        - G4HadronElasticPhysicsXS, G4IonElasticPhysics: removed commented
          code.
      o stopping:
        - Use FTFP also for the annihilation at rest of neutral anti-hadrons:
          anti-neutron, anti-lambda, anti-sigma0 anti-xi0. This extension is
          for completeness and practical convenience, although physically
          neutral hadrons should never be completely at rest.
    + lists:
      o Replaced G4RadioactiveDecay with G4RadioactiveDecayBase in LBE list.


  o Electromagnetic Processes:
    -------------------------
    + DNA:
      o Added G4DNAMolecule class.
      o Moved checking of position of track status in
        G4ITStepProcessor::SetInitialStep().
      o Chemistry: clarified pointer ownership in G4DNAChemistryManager.
      o Fixed reaction site issue.
      o Fixed compilation warnings on gcc-9.1. Code cleanup.
    + High Energy:
      o G4GammaConversionToMuons, G4AnnihiToMuPair: added
        registration/de-registration mechanism.
    + Standard:
      o In most models, make use of the new target atom selector that can
        reuse the already known log-energy value.
      o G4UrbanMscModel, G4WentzelVIModel, G4GoudsmitSaundersonMscModel:
        make use of the new base class methods in utils module, utilising
        the already known log-energy value, in case of dEdx, range and
        transport mean free path log-vector table accesses.
      o G4UrbanMscModel: optimised step limitation for 'UseSafetyPlus'
        and 'UseDistanceToBoundary'. Minor clean-up of step limit method.
        Modified lateral displacement sampling.
      o G4ScreeningMottCrossSection, G4KleinNishinaModel, G4SeltzerBergerModel,
        G4eSingleCoulombScatteringModel: use element->GetZasInt() interface
        in order to reduce number of double->int conversions at run time.
      o G4BetheHeitler5DModel: set x,y components in BoostG4LorentzVector
        function. Replaced local boost and rotation functions with CLHEP
        boost, boostZ, transform. One random generator flatArray() call in
        sampling loop.
      o G4eCoulombScatteringModel, G4WentzelOKandVIxSection: cleanup debug
        cout and initialisation.
   + Utils:
      o G4EmElementSelector, G4VEmModel: added extra method to select the
        target atom by making use of the already known log-energy value in
        the log-vector access.
      o G4VEmProcess, G4VEnergyLossProcess and G4VMscModel: added extra
        methods to access log-vector tables by propagating the already
        known log-energy value.
      o G4LossTableManager: added Register/DeRegister() methods and vector
        of pointers for G4VProcess classes for X-ray and optical processes.
      o G4EmParameters: added polarisation flag; moved implementation of
        splitting parameters to source and added check on lock; added
        9.99 MeV low limit in the SetMaxEnergy() method, added thread lock
        to Dump() method.
      o G4EmParameters, G4EmParametersMessenger: splitted classes keeping the
        user interface unchanged.
        Added new classes for complex EM parameters (G4EmExtraParameters
        G4EmExtraParametersMessenger) and new classes for low-energy and
        DNA parameters (G4EmLowEParameters, G4EmLowEParametersMessenger).
      o New helper class G4NIELCalculator, to compute NIEL in user stepping
        action or sensitive detector code. User should provide G4VEmModel
        objects, which has NIEL model.
      o G4LossTableManager: added access and initialisation of
        G4NIELCalculator.
    + Xrays:
      o G4Cerenkov, G4Scintillation, G4SynchrotronRadiation,
        G4VTransitionRadiation: added registration/de-registration mechanism.

  o Generic Processes:
    -----------------
    + Cuts:
      o Added protection against premature call to G4ProductionCutsTable.
    + Optical:
      o Code cleanup and formatting, added C++11 keywords.

  o Hadronic Processes:
    ------------------
    + Improved G4HadronicException: aligned behavior with std::exception:
      what() returns the exception explanation; move the member definition
      to source file. Added some consts qualifiers.
    + cross_sections
      o G4NeutrinoElectronNcXsc, G4NeutrinoElectronTotXsc: high energy
        extension of neutrino-electron cross sections, for both 
        charged-current and neutral-current interactions (M_W and M_Z
        propagator factors and Glashow resonance), for all neutrino and
        anti-neutrino flavours.
      o G4MuNeutrinoNucleusTotXsc: high energy extension of cc/nc xsc (M_W and
        M_Z propagator factors) cc/tot ratio.
      o G4NeutronElasticXS, G4NeutronInelasticXS, G4NeutronCaptureXS: utilise
        the new Value() method from G4PhysicsVector, that can make use of the
        already known value of the log-kinetic energy in the cross-sections
        table log-vector accesses.
      o G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS
        G4ParticleInelasticXS: code clean-up, assuming usage of the new 
        data-set G4PARTICLEXSDATA2.0; removed unused variables and methods;
        use only methods with logarithm of energy.
      o G4ParticleInelasticXS: set verbosity to 0.
      o Corrections in G4MuNeutrinoNucleusTotXsc.cc: new name, default
        'fCcTotRatio' and high energy parameter 'bb'.
      o G4ComponentAntiNuclNuclearXS: code clean-up and corrected the
        description.
      o G4ComponentGGHadronNucleusXsc, G4ComponentGGNuclNuclXsc: removed
        remaining unused obsolete methods and members; use G4NuclearRadii
        utility to compute nuclear radius.
      o G4ComponentGGHadronNucleusXsc: fixed correction factor for kaons.
      o G4BGGNucleonElasticXS: reduce low-energy limit from 1 to 0.75 MeV.
      o G4BGGPionElasticXS, G4BGGPionInelasticXS: fixed initialisation for
        pi+- by usage of separate vectors of correction factors; fixed
        computation for Hydrogen target.
      o G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS: fixed computation
        for Hydrogen target.
      o G4HadronNucleonXsc: added extra method for hyperon cross sections.
        Extended to charmed and bottom hadrons (mesons and baryons).
        Improved K+p parameterisations (NS and VG); removed obsolete methods.
      o G4MuNeutrinoNucleusTotXsc: added new method GetElementCrossSection().
      o G4ParticleInelasticXS, G4BGGPionElasticXS, G4BGGPionInelasticXS,
        G4BGGNucleonElasticXS, G4BGGNucleonInelasticXS,
        G4NucleonNuclearCrossSection, G4ComponentBarNucleonNucleusXsc,
        G4UPiNuclearCrossSection: share internal data vectors between threads;
        initialise data once; removed unused parameters; code clean-up;
        use C++11 keywords.
      o G4VCrossSectionDataSet, G4CrossSectionDataStore,
        G4IonProtonCrossSection: use only methods with logarithm of energy.
      o G4HadronicException is substituted by G4Exception in all classes with
        exceptions.
    + management
      o G4HadronicInelasticProcess: removed default GHEISHA cross-section.
      o G4EnergyRangeManager: fixed bug regarding the kinetic energy per
        nucleon in the case of anti-nuclei (the bug was of little harm as one
        single model, FTFP, is used for all energies in the case of anti-nuclei
        projectiles).
      o G4HadronicProcess: removed try/catch pattern from computation of mean
        free path, removed final state random rotation.
    + models/cascade
      o Fixed case for potential FPEs due to un-protected sqrt() in
        G4NucleiModel::boundaryTransition().
    + models/coherent_elastic
      o G4HadronElastic: removed tracking cut and use numerically safer
        computation for very low-energy projectile. Improved description and
        comments; added C++11 keywords.
        Numerically safer treatment of the very rare cases in which cos(theta)
        is either greater than 1.0 or smaller than -1.0 (in the first case, we
        assume no interaction and the projectile keeps going unchanged; in the
        second case, we assume that the projectile stops and its kinetic energy
        is deposited locally, neglecting the recoil of the target nucleus).
        Added protected variable pLocalTmax; added protection for zero energy
        primary.
      o Added new model class G4LowEHadronElastic.
      o G4ChargeExchange: updated interfaces; added protection for zero energy
        primary.
      o G4ElasticHadrNucleusHE: make all data shared between threads.
      o G4AntiNuclElastic: do not compute trigonometric functions, which are
        not used.
      o G4ElasticHadrNucleusHE, G4LEpp, G4LEnp: code clean-up.
    + models/de_excitation
      o G4VEmissionProbability: use simple rejection.
      o G4FermiFragment: fixed Coulomb barrier correction computation.
      o Replaced deprecated std::binary_function calls with lambdas in
        G4StatMFMicroCanonical and G4StatMFChannel. Addressing GitHub PR#8.
      o G4Evaporation, G4ExcitationHandler, G4LevelReader, G4GammaTransition,
        G4VEmissionProbability, G4PhotonEvaporation, G4PolarizationTransition:
        changed scheme of verbosity - 0- silence, 1- dump of parameters at
        initialisation, 2- debug printout, 3- very detailed debug printout.
        Addressing problem report #2098.
      o G4CoulombBarrier: use G4NuclearRadii utility to compute nuclear radius.
      o G4EvaporationChannel, G4EvaporationProbability, G4VEmissionProbability,
        G4FermiDecayProbability: simplified algorithm to sample kinetic energy
        of a fragment; minor code clean-up, removed commented lines.
    + models/lend
      o G4LENDCapture::ApplyYourself: fixed memory leak of 'products_from_PE',
        reported by Coverity.
      o Fixed compilation warnings on gcc-9.1 for missing assignment operator.
    + models/lepto_nuclear
      o Neutrino-nucleus models and precalculated distribuitons as from
        new data-set G4PARTICLEXS-2.0.
      o Fixed in G4NuMuNucelusCc(Nc)Model for kinematics of quasi-elastic
        neutrino scattering.
    + models/management
      o G4HadronicInteractionRegistry: fixed typo in comments, removed unused 
        Boolean flag.
    + models/particle_hp
      o Fix to deal with incorrect excitation energy when charged particles are
        emitted during neutron reaction. In G4ParticleHPInelasticCompFS,
        changed method CompositeApply(), for very small excitation, change
        level index from -1 to 0 only if incident and outgoing particles are
        the same. Addressing problem report #1838.
      o Fix to deal with un-incremented index of photons in
        G4ParticleHPPhotonDist::GetPhotons().  Also cleaned up dead code
        in that class. Addressing problem report #2167.
      o G4ParticleHPChannelList: fixed bug in the momentum change (it has to
        be a normalized 3-vector, but it was not) in the case where NeutronHP
        could not find a proper reaction channel.
      o G4ParticleHPInelasticCompFS: fix to avoid arbitrary number of target
        nuclei being generated and slowing down multi-threaded operation.
        Addressing problem report #2166.
    + models/pre_equilibrium
      o Added new model based on pre-compound de-excitation
        G4LowEGammaNuclearModel.
      o G4PreCompoundEmission, G4PreCompoundFragment, G4VPreCompoundFragment:
        setup minimum number of points for probability integration to 4;
        minor code clean-up.
    + models/radioactive_decay
      o Added spontaneous fission channel: added new class G4SFDecay to handle
        neutron and gamma generation using LLNL model. Read spontaneous fission
        data from database, insert it into decay tables and instantiate
        G4SFDecay.
      o Fixed incorrect branching ratio sum for biased mode, to account for the
        addition of N shell EC capture and spontaneous fission.
      o G4RadioactiveDecayBase: added StreamInfo() method; updated to new
        N shell EC; enable printout of parameters with G4VERBOSE in
        BuildPhysicsTable().
      o G4RadioactivationMessenger: removed obsolete "fast beta" option,
        internal conversion option (not part of biasing) and atomic relaxation
        option (not part of biasing). Added "analogueMC" option which was
        forgotten when class was developed.
      o G4RadioactiveDecayBaseMessenger: removed obsolete "fast beta" option.
      o Replaced G4ExceptionDescription in loop with simple string at
        exception time inG4RadioactiveDecay, G4RadioactiveDecayBase and
        G4Radioactivation.
      o In G4RadioactiveDecay::CalculateChainsFromParent() and
        G4Radioactivation::CalculateChainsFromParent(), fixed memory leak of
        'summedDecayTable' reported by Coverity.
      o G4RadioactiveDecay, G4RadioactiveDecayBase: make sure decay table maps
        are cleanly deleted at the end of program.
    + models/util
      o G4NuclearRadii: new utility class with several parameterisations of
        nuclear radius.
    + processes
      o G4HadronElasticProcess: removed tracking cut for all particles (charged
        particles may be stopped by the tracking cut of ionisation process;
        neutrons should be stopped by G4NeutronKiller).
        Added protection for zero energy primary. Removed final state rotation.
        Removed default GHEISHA cross-section.
        Clean up sampling of final state; improved description and comments;
        added C++11 keywords; removed unused local members.
      o G4MuNeutrinoNucleusProcess : new process managing
        G4NuMuNucleusCc(Nc)Model models.
    + stopping
      o G4HadronicAbsorptionFritof: extended to neutral anti-hadrons
        (anti-neutron, anti-lambda, anti-sigma0 and anti-xi0). This extension
        is for completeness and practical convenience, although physically
        neutral hadrons should never be completely at rest.
    + util
      o G4HadProjectile: clean-up for small kinetic energy of the projectile.
      o G4HadFinalState, G4Bessel, G4ReactionProduct, G4GHEKinematicsVector:
        replaced fabs() with abs().

  o Track & Tracking
    ----------------
    + G4Track: added forward declaration for G4VProcess.

  o Visualization:
    -------------
    + Fixed compilation warnings on gcc-9.1.0.
    + management:
      o Introducing cloud drawing style. New parameter candidate 'cloud' in
        "/vis/viewer/set/style". Cloud drawing uses solid->GetPointOnSurface(),
        i.e., uses kernel algorithms and by-passes polyhedral representations.
        The solid is represented by a polymarker of dots. The default number of
        points is 1000. This can be changed with the command
        "/vis/viewer/set/numberOfCloudPoints"; the minimum number is 100.
        Note that OpenGL has a fast algorithm for polymarker.
        This allows us to use cloud style both as a choice or as fallback when
        the polyhedral representation fails, for example, when BooleanProcessor
        fails.
      o New and improved commands:
        /vis/viewer/centreOn: improved - it does not zoom.
        /vis/viewer/centreAndZoomInOn: new.
        /vis/touchable/centreOn: improved - it does not zoom.
        /vis/touchable/centreAndZoomInOn: new.
        /vis/touchable/extentForField and volumeForField: new.
        /vis/scene/showExtents: new.
        /vis/set/volumeForField: new.
        /vis/touchable/showExtent: new.
      o Added copy number parameter to "/vis/touchable/findPath".
      o Implemented "/vis/set/extentForField" command: the default is a null
        extent, which is to be interpreted by the field model as the whole
        extent of the current scene. Otherwise, with this command, one can
        limit the extent over which the field is drawn. This would help, for
        example, if drawing over the whole scene produced so many arrows or
        lines that it clutters the scene. Changed the default spacing:
        the parameter 'nDataPointsPerHalfExtent' is changed from 10 to 3, so
        as not to clutter the scene. See guidance of "/vis/scene/add/*Field"
        commands for further explanation.
      o Provide ability to draw electric fields, and eventually any other
        field. Added "/vis/scene/add/electricField" by analogy to existing
        .../magneticField.
      o Refactor MagneticFieldModel class with new base to handle all kinds of
        vector fields; existing, and new ElectricFieldModel only have to
        implement a simple function to get the field vector at a location.
      o Include parameterised volumes in overlap checking and visualisation
        in G4LogicalVolumeModel (in addition to ordinary placements).
      o Introduced "/vis/viewer/centreOn" and "/vis/touchable/centreOn" UI
        commands. This allows one to centre the view (zoom in) on a volume.
        Reset with "/vis/viewer/reset".
      o Rationalised view interpolation; encapsulate algorithm into base class
        G4VVisCommand, so that commands "/vis/viewer/interpolate",
        "/vis/viewer/centreOn" and "/vis/touchable/centerOn" now use this.
        Might consider use by all view changing commands.
      o Fixed bug in "/vis/viewer/set/sectionPlane".
      o Corrected few typos in printout/comments.
      o Improved guidance for "/vis/scene/add/volume".
      o Minor improvements to visualization manager.
      o Fixed Boolean operators to return G4bool.
      o Fixed Coverity defects.
    + modeling:
      o Introduced G4BoundingExtentScene. This allows one to accumulate extents
        using the newly introduced G4VisExtent::Transform() and is a better way
        of determining the overall extent of a scene (or of any set of extents)
        than by the bounding sphere approach.
      o G4VFieldModel, G4ElectricFieldModel, G4MagneticFieldModel: new
        abstraction for field models.
      o Arrows and field models: introduced further protection.
      o G4VModel: introduced GetTransformedExtent() method.
      o G4PhysicalVolumeModel: use G4BoundingExtentScene instead of
        G4BoundingSphereScene. Fixed bug whereby the local extent was
        incorrectly calculated.
      o Fixed bug in "/vis/viewer/set/sectionPlane".
      o Added volume count (but commented out printing).
    + OpenGL:
      o Force double buffer context for OGLIX.
      o Force kernel visit on change of number of cloud points.
      o Fixed bug in "/vis/viewer/set/sectionPlane".
      o Avoid re-using display lists for markers. They may have their own
        position relative to the overall object transformation.
    + OpenInventor:
      o Test number of cloud points for kernel visit.
      o Added missing protection on G4VIS_BUILD_OIX_DRIVER.
      o Fixed compilation warning from gcc-9.1 in SoCounterAction for setting
        of name, apparently not allowed in OpenInventor.
      o Corrected few typos in printout/comments.
    + XXX:
      o Force kernel visit on change of number of cloud points.

  o Data Sets:
    ---------
    + G4PARTICLEXS-2.0:
      o Added data for neutrino.
      o Updated cross-sections for low Z targets at low energy.

  o Examples:
    --------
    + Updated reference outputs, macros, READMEs and scripts.
    + advanced/nanobeam
      o Include G4Types.hh header in main(), before use of G4MULTITHREADED.
    + advanced/underground_physics
      o DMXPhysicsList: added Glauber-Gribov cross-section for all elastic 
        processes.
    + extended/biasing/B03
      o B03PhysicsList: explicitly define hadronic cross-sections.
        Use G4NeutronInelasticXS cross-section.
    + extended/electromagnetic/TestEm1
      o Added G4NIELCalculator and corresponding histograms and printouts;
        general clean-up of the code; use default random number generator.
    + extended/electromagnetic/TestEm5
      o StackinAction: fixed log histograms, which where filled in a wrong way.
      o PhysListEm19DStandard: use 3-gamma annihilation model.
    + extended/electromagnetic/TestEm15
      o SteppingAction: do not fill hist #11,#12 when no recoil returned.
    + extended/electromagnetic/TestEm16
      o PhysicsList: use G4DecayPhysics and drop G4AutoDelete.
      o Migrated to use default MixMax generator.
    + extended/electromagnetic/TestEm17
      o Code clean-up; switch to MixMax random generator.
    + extended/hadronic/Hadr01
      o HistoManager: added linear histogram for pion energy at production.
    + extended/hadronic/Hadr02
      o G4CRMCModel: some improvements (e.g. considered the energy-per-nucleon,
        instead of the whole projectile, in the case of nucleus projectile) and
        better documentation (in the form of comments in the class).
    + extended/medical/DICOM
      o Defaulted copy-ctr in DicomPhantomZSliceHeader, to fix deprecation
        compilation warnings on gcc-9.1.
    + extended/medical/DICOM2
      o Include G4Types.hh header in main(), before use of G4MULTITHREADED.
    + extended/medical/dna/chem2
    + extended/medical/dna/chem3
      o Clean-up of TimeStepAction.
    + extended/medical/dna/chem4
      o Added UI commands for one step thermalization model selection
        in macro beam.in.
      o Make Species alias of const G4MolecularConfiguration.
    + extended/medical/dna/chem5
      o Make Species alias of const G4MolecularConfiguration.
    + extended/medical/dna/dnadamage1
      o New example showing a simple way to simulate dna direct and indirect
        damages using Geant4-DNA physics and chemical processes in a molecular
        DNA geometry.
    + extended/medical/dna/microdosimetry
      o Updated plot.C.
    + extended/medical/dna/microprox
      o New example showing how to compute proximity functions in liquid water
        using exclusively Geant4-DNA physics processes and models.
    + extended/medical/dna/microyz
      o Added condensed history models including step size control.
      o Added EM UI commands in microyz.in.
      o Fixed Boolean operators to return G4bool.
    + extended/medical/electronScattering2
      o Fixed warning about attempting to add multiple times the same sensitive
        detector.
    + extended/medical/fanoCavity
    + extended/medical/fanoCavity2
      o DetectorConstruction: simplification of DefineMaterial().
      o DetectorConstruction, DetectorMessenger: fixed usage of base materials
        and cleanup (should fix ~1% error for Opt4 EM physics).
      o PhysListEmStandard_option4: set RangeFactor to 0.08 (as in the
        physics_list library). PhysListEmStandard_option3: set parameters as
        in the physics_list library.
    + extended/optical/LXe
      o LXeDetectorConstruction: removed protection against rebuilding
        detector.
      o LXeEventAction: commented out randomSaveEvent.
    + extended/parallel/MPI
      o Fixed compilation error in G4MPIextraWorker.
        Addressing problem report #2163.
    + extended/persistency/gdml/G01
      o Added BeamOn(0) to initialize range to energy converters
        needed when exporting cuts per volume.
    + extended/persistency/P01
      o Fixed definition of allocator in ExP01TrackerHit.
    + extended/radioactivedecay/rdecay01
      o PhysicsList: replaced G4RadioactiveDecay with refactored class
        G4Radioactivation.
    + extended/radioactivedecay/rdecay02
      o New class BiasedRDPhysics using new G4Radioactivation process with all
        biasing available
      o In PhysicsList, replaced G4RadioactiveDecayPhysics with
        BiasedRDPhysics, also removed HP option physics lists.
      o In Run, replaced G4RadioactiveDecay with G4Radioactivation.

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