
                 Geant4 10.7 - patch-01 Release Notes
                 ------------------------------------

                                                          5 February 2021

List of fixes included in this public patch since the public release 10.7:

  o Configuration
    -------------
    + CMake:
      o Make fail configuration if Qt is enabled with CMake < 3.9.
        Addressing problem report #2303.
      o Fixed potential installation error with Homebrew/MacPorts X11/GL.
        Apply GitHub PR #17.
      o Fixed configure/build with system PTL 1.0.0.
        Apply GitHub PR #16.
      o Install/Use builtin PTL CMake scripts from PTL subdirectory alongside
        Geant4Config.cmake.
      o Updated to data set G4PARTICLEXS-3.1.1.
    + GNUmake:
      o Updated Qt5 settings in Linux targets.

  o Analysis:
    --------
    + Updated to g4tools 5.2.3:
      o Fixed bug in tools/histo/h2,h3 for get_bin_content();
        have '&' in "get" arguments. Addressing problem report #2306.
      o See History_tools for the complete list of modifications.
    + Fixed problem with merging n-tuples with columns of vector type.

  o Externals:
    ----------
    + Force PTL to install its CMake configuration files within the directory
      where Geant4 installs its own. Force to install its headers under
      CMAKE_INSTALL_INCLUDEDIR/Geant4. Addressing problem report #2298.
    + ptl: apply patch to fix component installs on Windows.

  o Geometry:
    --------
    + navigation:
      o G4ReplicaNavigation: reduced step correction in ComputeStep().
        Addressing problem report #2302.
      o G4PathFinder: moved debug printout within debug block in Locate().
      o G4RegularNavigation: protected within G4DEBUG_NAVIGATION debug printout.
        Substituted warning printout with proper G4Exception.
    + solids/Boolean:
      o Added protection against using invalid normal
        in G4ScaledSolid::DistanceToOut(p,v).
    + solids/CSG:
      o G4Trap, G4Para: removed spurious character in printout in StreamInfo().
        Addressed problem report #2318.
    + solids/specific:
      o Reduce cases of bad speculation in G4PolyhedraSide::Inside() and
        G4PolyPhiFace::InsideEdges(), based on profiling analysis.
    + volumes:
      o Added creation order index in G4LogicalBorderSurface.
        Addressing problem report #2311.
      o G4GeometryWorkspace: added protection for thread contention in function
        DestroyWorkspace(). Some code cleanup.

  o Global:
    ------
    + Updated date and version for 10.7.p01.

  o Intercoms:
    ---------
    + G4UImanager: introduced flag and access functions for
      LastCommandOutputTreated. This flag is set to false at the point
      in ApplyCommand() where, if verbosity>0, the command is sent to G4cout.
      The treating UI must reset to true when the line has been treated.
      Of course, the UI may simply ignore it.

  o Interfaces:
    ----------
    + G4UIQt: Use QPalette to get colour and background from OS;
      instead of fixed background <span style='background:#EEEEEE...
      use <span style='background:" + pal.highlight().color().name()...
      This picks up colour from the OS and even allows for change of
      OS display style, e.g., dark mode on MacOS.
      Fixed command-line-echo highlighting whereby there could be a crash
      in some circumstances: use <span> instead of <div> in HTML wrappers.
    + Introduce choice of output styles:
      o /gui/outputStyle
        <cout|cerr|warnings|errors|all>
        <fixed|proportional>
        <highlight|no-highlight>
      o Highlighting applies to the echoed command line if echoing is
        requested with /control/verbose > 0.

  o Persistency - gdml:
    ------------------
    + Fix for proper treatment of material properties reading for skinsurface
      and bordersurface elements; adopt the key of the property vector map as
      'name + ref'. Addressing problem report #2305.
    + Fixed parsing of regions in G4GDMLParser::ImportRegions().
      Allow for proper deletion of meta-data lists in destructor.
      Based on GitHub PR#19.
    + Fixed reading of units for GenericTrap in G4GDMLReadSolids.
      Addressing problem report #2317.

  o Physics Lists:
    -------------
    + builders
      o G4HadronicBuilder: replaced 2-body decays of bottom mesons into charmed
        mesons and charged rho resonance, with 3-body decays into the same
        charmed mesons and charged pion and neutral pion. This allows to get a
        more precise numerical treatment of the decay kinematics in the rest
        frame, avoiding spurious energy-momentum violations reported by
        G4DecayProducts.
      o OrderingParameterTable: added forgotten processes (general positron,
        surface reflection, DNA) coherently with G4PhysicsListHelper.
    + constructors/electromagnetic
      o G4GammaGeneralProcess: changed 1st energy limit from 50 keV to 150 keV
        to guarantee K-shell energy for any element to be within 1st energy
        area. Changed logic for selection of a concrete process.
        Maximally reduced use of 'if' statements; reduced number of 'return'
        in run time methods; removed shadowing of base class methods.
        Addressing problem report #2309.
    + constructors/hadron_elastic
      o G4HadronElasticPhysics: fixed type of builder in all hadron elastic
        constructors. Addressing problem report #2183.
      o G4IonElasticPhysics, G4ThermalNeutrons: added comments
    + constructors/hadron_inelastic
      o G4HadronPhysicsFTFP_BERT, G4HadronPhysicsQGSP_BERT,
        G4HadronInelasticQBBC, G4HadronPhysicsQGSP_BIC: fixed type of builder
        in all hadron inelatic constructors. Addressing problem report #2296.

  o Processes - Electromagnetic:
    ---------------------------
    + lowenergy
      o G4MicroElecSurface, G4MicroElecLOPhononModel: fixed Coverity defects.
    + standard
      o G4BetheBlochModel, G4LindhardSorensenIonModel: restore computation of
        maximum energy transfer as in Geant4 version 10.4; affecting only
        ultra-relativistic ions. Addressing problem report #2312.
    + utils
      o G4EmCorrections: fixed 2-D interpolation of shell corrections, which
        provides minor change of ranges of charge particles (< 0.1 mm).
        Addressing problem report #2308.
      o G4VEnergyLossProcess, G4VEmProcess, G4EmExtraParameters and
        G4EmExtraParametersMessenger: improved printout.
        Addressing problem report #2292.

  o Processes - Hadronic:
    --------------------
    + cross_sections:
      o Drop cache for per-element G4CrossSectionDataStore::GetCrossSection(),
        as never used in practice. Note that material, particle, and energy are
        still cached by G4CrossSectionDataStore::ComputeCrossSection(). The
        condition to check for the cache in that case has been optimized to
        minimize unnecessary checks by reordering checked conditions from most
        to least discriminant.
      o G4ParticleInelasticXS, G4CrossSectionInelastic, G4CrossSectionElastic:
        extended maximum energy range for ion cross-sections (QBBC and other
        Physics Lists has the same high energy limits).
      o G4ParticleInelasticXS, G4NeutronCaptureXS, G4NeutronElasticXS,
        G4NeutronInelasticXS: make MAXZ variable static class member.
      o G4GammaNuclearXS: fixed duplicated name of static variable.
      o G4VCrossSectionRatio: use inheritance from G4VCrossSectionDataSet
        in order to guarantee deletion of the object at the end of run.
    + models/particle_hp
      o G4ParticleHPThermalScattering: added final state phi-rotation.
        Addressing problem reports #1856 and #2290.
    + stopping
      o G4MuonicAtomDecay: fixed Coverity defects; removed commented code.

  o Processes - Transportation
    --------------------------
    + Limit reporting of number of calls to G4Transportation::AlongStepDoIt()
      to when either G4VERBOSE or G4DEBUG_TRANSPORT is defined, which allows to
      avoid using a thread local variable for a slight performance gain.

  o Run:
    ---
    + G4PhysicsListHelper: added forgotten processes (general positron and
      surface reflection).

  o Tasking:
    -------
    + G4WorkerTaskRunManager: corrected way to count the number of events
      processed in a worker thread. This correction also fixes a rare crash
      due to accessing to the seed vector more than necessary.
    + G4TaskRunManager: reduce number of events per task to evenly distribute
      events to all available threads.

  o Visualization:
    -------------
    + OpenInventor
      o Consolidated all the planned features of the OIQt viewer.
    + Qt3D
      o Auxiliary edge suppression and some small improvements.

  o Data Sets:
    ---------
    + G4PARTICLEXS-3.1.1:
      o Fixed data for He3 and He4 for few light targets.

  o Examples:
    --------
    + basic/B4:
      o Fixed README: updated visualization tutorial to follow smart parsing.
    + extended/persistency/gdml/G01:
      o Fixed auxiliary.gdml sample to define proper Region tags.
      o Added scaledSolids.gdml sample setup.

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

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

  o  This patch should be applied on top of release 10.7.
  o  Technical notes distributed for release 10.7 are also applicable and
     valid for this patch.

The code and rebuilt binary libraries for release 10.7.p01 are available
through the Geant4 "Download" Web page.

Please refer to the Geant4 User Documentation for further information about
using Geant4.
