
                 Geant4 10.4 - patch-01 Release Notes
                 ------------------------------------

                                                               28 February 2018

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

  o Configuration:
    -------------
    + CMake:
      o Added c++17 to C++ standards against which Geant4 can be compiled,
        as experimental build. Will require a minimum CMake version 3.8 to
        enable, but this is not checked.
      o Updated URL for downloads to use dedicated server alias.
    + GNUMake:
      o Disabled obsolete linker flag for static libraries in Darwing-clang.gmk.

  o Analysis:
    --------
    + Fixed self-consistency in headers (missing #include) in
      G4BaseAnalysisManager and G4PlotManager.

  o Digits-Hits:
    -----------
    + G4ScoringMessenger, G4ScoreQuantityMessenger: UI command returns an error
      message if a command is refused due to incorrect parameter(s).

  o Error Propagation:
    -----------------
    + Fixed self-consistency in headers (missing #include) in G4ErrorMatrix,
      G4ErrorRunManagerHelper and G4ErrorSymMatrix.

  o Event:
    -----
    + G4GeneralParticleSourceMessenger, G4ParticleGunMessenger: UI command
      returns an error message if a command is refused due to incorrect
      parameter(s).
    + Added deprecation warning for '/gun/ionL' UI command.
    + Fixed self-consistency in G4SPSRandomGenerator header (missing #include).

  o Externals:
    ---------
    + CLHEP: in MixMaxRng::modadd(), fixed guard for assembly code to protect
      builds on 32-bit systems.

  o Geometry:
    --------
    + management:
      o Fixed self-consistency in G4VVolumeMaterialScanner header (missing
        #include).
    + navigation:
      o Fix for momentum value in G4PathFinder::SetChargeMomentumMass();
        where magnitude square was passed instead of magnitude.
        Addressing problem report #2037.
    + solids/CSG:
      o Fixed typo in G4Trd::GetPointOnSurface() for the area settings.
      o Correction in G4UPara wrapper in ComputeDimensions() to add explicit
        cast for the solid type to parameterise.
    + solids/specific:
      o Added missing initialisation of two data-members in copy-ctor and
        assignment operator of G4ExtrudedSolid. Addressing problem report #2016.
        Removed redundant data initialistion in G4ExtrudedSolid constructors.

  o Global:
    ------
    + G4MTcoutDestination blocks G4cout from worker threads while application
      is in G4State_Init instead of G4State_Idle.
    + Added SetVerbosity() method in G4StateManager and notify state change.
    + Fixed self-consistency in G4ReferenceCountedHandle header (missing
      #include). Added missing #ifdef guard in G4CacheDetails header; code
      formatting.
    + Updated date and version for 10.4.p01.

  o Intercoms:
    ---------
    + G4UIcommand, G4UImanager: additional implementation for adding a
      mechanism of carrying back error message from the messenger if a command
      is rejected due to the target class or the messenger.

  o Interfaces:
    ----------
    + G4UIQt: fix to remove parameters from popup in Qt interface when
      autocompleting command line. Take into account of '\n' character for
      command guidance in help tree.

  o Materials:
    ---------
    + Re-enable user-defined material properties in G4MaterialPropertiesTable
      and G4MaterialPropertiesIndex. Addressing problem report #2030.
    + G4OpticalSurface: moved static methods to source.
    + Fixed self-consistency in headers (missing #include) in G4ElementTable
      and G4MaterialTable.

  o Parameterisations - gflash
    --------------------------
    + Fixed self-consistency in GVFlashHomoShowerTuning header (missing
      #include).

  o Persistency - gdml
    ------------------
    + Updates to G4GDMLWriteSolids and G4GDMLWriteMaterials for changes in
      G4Material[Const]PropertiesTable for addressing problem report #2030.
    + Fixed self-consistency in G4GDMLAuxStructType header (missing #include).

  o Processes - Electromagnetic:
    ---------------------------
    + dna:
      o G4DNAMolecularMaterial: allow GetDensityTableFor() and
        GetNumMolPerVolTableFor() methods to be accepted at G4State_Init
        rather than G4State_Idle.
      o Fixed self-consistency in headers (missing #include) in G4IosFlagsSaver,
        G4KDNode, G4MoleculeIterator and G4LEPTSDiffXS. Fixed spurious
        definition of G4IT namespace in G4ITMultiNavigator header.
    + lowenergy:
      o Fixed self-consistency in G4ecpssrFormFactorMixsModel header
        (missing #include).
    + polarisation:
      o G4StokesVector: moved static inline method to the source.
    + standard:
      o G4PairProductionRelModel: fixed misuse of G4Pow (A13(..) should be used
        instead of Z13(..)); added initialisation of an element cache before
        sampling of final state. Partially addressing problem report #2017.
    + utils:
      o G4EmParametersMessenger: use G4Exception for warnings instead of G4cout,
        review G4State for UI commands and signal the RunManager about
        modification of physics if a command is issued in Idle state.
      o G4EmParameters, G4VEmProcess, G4VEnergyLossProcess: define the same
        default values for few internal members.
      o G4EmParameters, G4EmParametersMessenger: fixed printout format and
        added lock and protection in commands defining physics per region.
    + xrays:
      o G4VXTRenergyLoss: extended XTR angle limit up to 250/gamma,
        on ATLAS request.
      o Moved few static and virtual methods from inline to source.
        Code cleanup.
      o Fixed self-consistency in G4VTRModel header (missing #include).

  o Processes - Generic:
    -------------------
    + biasing:
      o G4ImportanceConfigurator: introduced mutex to protect instantiation
        of the biasing process against a thread-race in MT mode and clearing
        data in destructor. Addressing problem report #1945.
    + management:
      o G4ProcessManager: added method GetProcess(name) to return a pointer to
         a process from its name.
      o The following UI commands are now forbidden for 'G4State_GeomClosed' or
        'G4State_EventProc' application states:
        - /process/activate
        - /process/inactivate
        - /particle/process/activate
        - /particle/process/inactivate
      o G4ProcessManagerMessenger, G4ProcessTableMessenger: UI command returns
        an error message if a command is refused due to incorrect parameter(s).
    + parameterisation:
      o Fixed self-consistency in G4FastSimulationVector heade
        (missing #include).

  o Processes - Hadronic:
    --------------------
    + models/cascade:
      o G4NucleiModel: replaced use of obsolete std::bind2nd with std::bind.
    + models/de_excitation:
      o Fixed self-consistency in G4ChatterjeeCrossSection header (missing
        #include). Fixed #ifdef guard in G4StatMFMacroBiNucleon header.
    + models/fission:
      o Fixed self-consistency in G4LLNLFission header (missing #include).
        Added missing #ifdef guards in G4fissionEvent header.
    + models/im_r_matrix:
      o Fixed self-consistency in headers (missing #include) in
        G4CrossSectionBuffer, G4DeltaNstarBuilder and G4NNstarBuilder.
    + models/particle_hp:
      o Fixed self-consistency in headers (missing #include) in
        G4FFGEnumerations, G4FPYNubarValues, G4ParticleHPAngularP and
        G4ParticleHPHash.
    + models/parton_string/management:
      o Fixed self-consistency in G4VertexCode header (missing #include).
    + models/parton_string/qgsm:
      o Fixed self-consistency in G4SPPartonInfo header (missing #include).
    + models/radioactive_decay:
      o G4RadioactiveDecay, G4RadioactiveDecayBase: added check that
        environment variable G4RADIOACTIVEDATA is pointing to correct
        directory. Moved check from G4RadioactiveDecay::LoadDecayTable()
        to constructor. Addresses problem report #1942.
    + util:
      o G4StableIsotopes: moved static member function definitions to
        source file.
      o Fixed self-consistency in headers (missing #include) in DumpFrame,
        G4GHEKinematicsVector and G4ping.

  o Run:
    ---
    + G4RunManagerKernel: application state is set to G4State_Init while
      application is in RunInitialization().
      Updated banners by adding last two general papers.
    + Fixed self-consistency in G4FastSimulationVector header
      (missing #include).

  o Visualization:
    -------------
    + modeling:
      o Fixed self-consistency in G4AttValueFilterT header (missing #include).
    + OpenGL:
      o G4OpenGLStoredSceneHandler: removed call to glDrawBuffer(GL_FRONT),
        which seems to cause problems for the case of display list memory
        being exceeded.

  o Examples:
    --------
    + basic/B5:
      o Added missing filling of row n-tuple in EventAction.
    + extended/hadronic/Hadr04:
      o NeutronHPphysics: use pManager->GetProcess(processName).
    + extended/medical/electronScattering2:
      o Removed unused instantiation of G4ScoringManager.
    + extended/physicslists/extensibleFactory:
    + extended/physicslists/factory:
    + extended/physicslists/genericPL:
      o Corrected GNUmake script.
    + extended/physicslists/shared:
      o Corrected copy script.

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

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

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

The code and rebuilt binary libraries for release 10.4.p01 are available
through our "Download" Web page.

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