Geant4 10.0 - patch-02 Release Notes ------------------------------------ 13 June 2014 List of fixes included in this public patch since the public release 10.0.p01: o Configuration: ------------- + CMake: o When static libraries are used, wrap G4physicslists library with flags suitable to import whole archive. Implemented for GNU, Clang and Intel compilers. Other compilers require further checks on flags and how to apply to single library. Functionality needed to support global registration of templated factories. o Fixup usage of shared/static builtin libraries. Ensure that shared builtins do not get linked to static. Added new component 'static' allowing user to select static Geant4 libraries if they are available. o Provide advanced option to select thread local storage model when building multithreaded. Supported default mode: initial-exec model. o Added zlib and g3tog4 to list of features that --has-feature recognizes and can query. o Added -DG4FPE_DEBUG to GNU/Clang flags for Debug build mode. + GNUMake: o Force loading of symbols for templated libraries in physics_lists module for global libraries. Defined LDFLAGS for Linux and Darwin targets accordingly. o Replaced old win32def tool for extracting symbols definitions for DLLs build on Windows with genwindef used also in CMake. o Analysis: -------- + Fixed implementation of compound commands in G4H[1,2,n]Messenger classes using new G4AnalysisUtilities::Tokenize() function. This allows to pass multi-word strings within "". Addressing problem report #1616. + Fixed G4H2ToolsManager::SetH2YAxisTitle: set title to y-axis and not x-axis. Addressing problem report #1620. + Do not allow creating objects with empty names. Addressing problem report #1579. + Do not remove Root base file if ntuples are in use. Addressing problem report #1633. + Fixed H1, H2 functions to access xmin, xmax and width (do not apply function and unit to return values). + Fixed bug in /analysis/h1/setAscii command. o Digits_Hits: ----------- + Fix the angle factor in G4PSSphereSurfaceFlux to keep it always positive. Addressing to Bug Report #1479. + G4ScoringMessenger: fixed broadcast parameters of commands that should be used only by the master thread. Addressing problem report #1554. + G4PSCylinderSurfaceCurrent: removed unnecessary printout. Addressing problem report #1610. + Added missing dependency to graphics_reps in scorer module. o Environments: ------------ + pyG4EllipticalCone: added missing return in CreateEllipticalCone() method. Addressing problem report #1586. + Fixed compilation error on pyG4Polycone. Addressing problem report #1544. + Configure script: physics list is changed to be always turned on. Addressing problem report #1546. o Externals: --------- + clhep: o Removed deprecated 'register' qualifiers in implementation of CLHEP classes. + zlib: o Fixed compilation warnings from clang-3.4 for unused variables. o Removed deprecated 'register' storage class specifier in source files. o G3toG4: ------ + Removed inline specification for G3VolTableEntry::operator==() in sorce file. o Geometry: -------- + divisions: o Added missing dependency to graphics_reps. + magneticfield: o Moved G4FieldTrack::LoadFromArray() to .cc and removed non-necessary thread-local static data local to the function. Fixes crash experienced when upgrading to clang-3.4 on MacOSX. Addressing problem reports #1603, #1619, #1628. o Fixed assignment operator for G4FieldTrack, and improved printing. Fix in SetChargeAndMoments() to use corrected method SetChargesAndMoments() from G4ChargeState. Revised constructors to add pdg-spin as last argument (with default -1). o G4ChargeState: fixed order of arguments in constructor making spin 3rd argument (was 2nd) and making all arguments mandatory; fixing use of SetChargeMoments() by G4FieldTrack, with addition of spin to arguments. o Fix in G4MagIntegratorDriver::OneGoodStep() for use of variable not set. + management: o Fixed operator=() signature in G4LogicalSurface. o Get rid of deprecated 'register' storage class specifier in code. + navigation: o Added method in G4PathFinder for end of track, needed to signal G4TransportationManager to use 'ordinary' navigator. o G4Navigator: corrected saving/restoring of 'navigator state'. Revised SetupHierarchy() to reduce extra cost due to handling the case of nested parameterisations. o PropagatorInField: when setting up a new intersection-locator pass pointer to the current Navigator. o Get rid of deprecated 'register' storage class specifier in code. + solids/CSG: o Fixed proper handling of polyhedron pointer in solids, to avoid memory leak for visualization of parameterised volumes. + solids/specific: o Fixed proper handling of polyhedron pointer in solids, to avoid memory leak for visualization of parameterised volumes. o Fixed signature of assignment operator to G4Polycone, G4Polyhedra, G4GenericPolycone and G4VCSGfaceted. o Added protection in generic constructor of G4Polyhedra for the case when improper number of sides is given as input. o Get rid of deprecated 'register' storage class specifier in code. + solids/usolids: o Fixed DistanceToOut() for UTubs, UCons, USphere, UVSCGfaceted and UPolycone, DistanceToOut() return normal even for concave faces. o Fixed DistanceToOut() for UPolycone in case of points starting on the Surface or on the Internal Surface. Improved convexity algorithm in DistanceToOut() for UPolycone for points leaving +/-Dz. o Corrected Implementation of SafetyFromInside() for UPolycone, skipping internal Z sections. o Implementation of auxiliary methods in UTubs and UCons: SafetyFromInsideR(), SafetyFromOutsideR(),SafetyToPhi(). These methods are used in Polycone for SafetyfromInside() calculations. SafetyFromInside() and SafetyFromOutside() are changed in order to avoid duplications. o Fix to DistanceToIn() for UBox in case of points located on edges. o Fixed handling of polyhedron pointer in G4USolid. o Fixed use of inline keyword for methods defined in .cc files in UTrd, UVCSGfaceted and UVoxelizer. o Moved findComponentFastest() to be a method of UVoxelizer and changed to FindComponentFastest(). o Removed unused SaveVectorToExternalFile() methods in UUtils, also causing cyclic dependency with UVector3. + volumes: o Minor cleanup and optimisation to G4EnhancedAllocator. o Corrected signature of operator=() for G4LogicalBorder/SkinSurface. o Code cleanup in G4GeometryWorkspace and G4GeometryWorkspacePool. o Get rid of deprecated 'register' storage class specifier in code. o Global: ------ + Correction in G4Exp::G4Expf() to remove 2nd order term contribution repeated twice by mistake. Correction included in VDT 0.3.7 library. + Minor refinements to G4Poisson. + Fix in G4SimplexDownhill header to proper define header guard. + Get rid of deprecated 'register' storage class specifier in code. + Updated date and version for 10.0.p02. o Intercoms: --------- + G4GenericMessenger: introducing three additional methods to make class compliant to release 10. Addressing problem report #1580. Corrected inclusion protection flag in G4GenericMessenger.hh. Addressing old problem report #1527. Fixed case of core dump when GetCurrentValue() method is invoked for a command defined by DeclareMethod(). + Fixed treatment of double-quotes in G4UImanager::ForeachS(). Addressing problem report #1614. o Interfaces: ---------- + G4UIterminal: fixed the problem that some commands could not be processed; use substr() instead of () operator for the comparison of substrings. o Materials: --------- + G4Material, G4Element: define default names and symbols for elements and isotopes when loaded from NIST and not explicitly defined by users. Fixes exporting of names in GDML when writing detector description. + G4Material: corrected initialisation of pointers in fake default constructor per use of persistency. Corrected typo in printout for duplicate materials in function InitializePointers(). + G4MaterialPropertyTable: fixed race condition problem. Addressing problem report #1590. o Persistency: ----------- + ascii: o G4tgbGeometryDumper: directly use G4ThreeVector methods for SymAxis for dumping G4Para parameters. + gdml: o Correction to G4GDMLRead::Read() for the case when schema validation is turned off, to disable initialisation of schema validation in the parser and allow for standalone parsing off-network. o Corrected potential memory leak in G4GDMLReadSolids. o Added comparison operator for 3-vector key in 'vertexMap' in G4GDMLWriteSolids for export of tessellated solid. Addressing problem report #1573. o Corrected dump of 'phi' and 'theta' for G4Trap and G4Para in writer. Addressing problem report #1602. o Corrected minor Coverity defect in G4GDMLParser for uninitialised 'strip' flag in constructors. o Get rid of deprecated 'register' storage class specifier in code. o Physics Lists: ------------- + builders o OrderingParameterTable: processes "AnnihToMuMu" and "AnnihToHad" should not be active AtRest. Addressing problem report #1598. o Fixed memory leak in G4FTFBuilder. + lists: o Set cut on proton to zero to simulate all recoils from elastic scattering in HP physics-lists (FTFP_BERT_HP, QGSP_BIC_HP, QGSP_BERT_HP and in INCLXXPhysicsListHelper). o Processes - Electromagnetic : --------------------------- + Adjoint: o G4VAdjointReverseReaction: added protection against potential infinite loop; if cross-section correction exceeds 100 the total cross-section is set to zero. + DNA: o Fixed compilation warnings and errors on MacOS/clang-3.4 for c++11 standard. o Corrected typo in DLL import flag in G4DNAWaterDissociationDisplacer. + Low Energy: o Bug fix in G4PenelopePhotoElectric effect (no fluorescence in MT mode). + Polarisation: o G4PolarizationMessenger: fixed Coverity report on non-initialized members. + Standard: o G4CoulombScattering: use G4IonCoulombScatteringModel for ions by default. o G4IonCoulombScatteringModel: fixed warning from G4ParticleTable; fixed final state generation and scattering off Hydrogen. o G4WentzelOKandVIxSection: fixed mass of recoil for Hydrogen target. o G4WentzelVIModel: changed order of displacement and angular deflection (second order effect). o G4GammaConversion: switch default number of bins from 77 to 140. + Utils: o G4EnergyLossMessenger: fix to enable re-initialisation of physics after all de-excitation commands. o G4LossTableMananger: fiz to do not recompute x-section if a process is shared between particle and anti-particles. Minor change of ionisation for charm and bottom mesons. o G4VMultipleScattering - fixed old problem of displacement handling; setting minimum displacement to 0.05 nm (Bohr radius). o G4EmModelManager: fixed cuts for single scattering models; use "cut for protons". o Processes - Generic: ------------------- + Cuts: o Fixed Coverity defects in G4VRangeToEnergyConverter. + Management: o Fix for G4WrapperProcess not correctly forwarding call to wrapped process with SetMasterProcess() in multi-threading mode. Addressing problem report #1625. + Phonon: o Removed inline keywords in methods in G4PhononDownconversion.cc and make coherent use of G4 types. + Transportation: o Fixed time in case of zero step in G4CoupledTransportation. This caused a 'going back in time' error, when a zero step occurred in particular at the boundary of a parallel world volume when scoring. Addressing problem report #1017. o Corrected AlongStepDoIt() methods of G4Transportation and G4CoupledTransportation, to adapt it to corrected signature for G4FieldTrack constructors, which now take PDG spin; modified to use different constructor for G4FieldTrack (no Velocity) and adapted to revised signature of G4ChargeState constructor. o Fixed Coverity defect in G4UserSpecialCuts. o Processes - Hadronic: -------------------- + models/binary_cascade: o G4BinaryCasacde: improved calculation of mass, and of correction for outgoing particles by always using GetIon() method; addresses potential crash for p+d seen in d+H in BIC. o G4{Proton,Neutron}Field.cc: protect against negative index into buffer. + models/cascade o Fixed implementation of G4CascadeParameters singleton to follow canonical format. Addressing problem report #1557. o G4InuclNuclei:fix case of floating-point exception in setExcitationEnergy() for zero Ekin. o Fix for memory leak in secondaries in G4IntraNucleiCascader. Addressing problem report #1584. o Removed non-existing modules from dependency list in CMake script. + models/coherent_elastic: o Get rid of deprecated 'register' storage class specifier in code. + models/inclxx: o Fixed use of inline keyword in G4INCLClusteringModelIntercomparison. + models/lend: o Fixed wrong usage of IonTable in G4LENDManager. o Relaxed fatal energy CheckLevel in G4LENDFission. o Fixed use of GetIon() from G4ParticleTable, obsolete since 10.0. o Fixed compilation warnings detected by clang-3.4 compiler. + models/neutron_hp: o Fixed deletion of maps in G4NeutronHPFFFissionFS destructor. Do not call G4PhysicsTable::clearAndDestroy() in destructors of G4NeutronHPCaptureData, G4NeutronHPElasticData, G4NeutronHPFissionData G4NeutronHPInelasticData. Because G4PhysicsTable content are manged by allocators o Fixed bug in kinematics of residual nucleus in G4NeutronHPCaptureFS. o Fixes for minor memory leaks and code simplification for better stability. o Fixed problem on single temperature data file in class G4NeutronHPThermalScattering. Fixed compilation warning message from clang3.4 and gcc-4.9.0. o Reset isotope pointer to the target G4Nucleus object of reaction in G4NeutronHPCapturem G4NeutronHPElastic, G4NeutronHPFission and G4NeutronHPInelastic. + models/parton_string: o Set the minimum energy to apply Reggeon-Cascade at 2 GeV (it was wrongly set to 5 GeV in G4 9.6.ref03, causing the bump at 5 GeV in the calorimeter visible energy of FTFP_BERT physics list). It affects the calorimeter energy response of the physics list FTFP_BERT(_HP), only for showers of hadrons between 4 and 5 GeV. o Extended the vectors CandAQ, CandQ of G4FTFAnnihilation in the case of one quark - anti-quark string, in order to correctly handle antiproton - proton and antineutron - neutron annihilations. Prepared also for Anti_Delta-- and Delta++ annihilation. It is expected to affect only antiproton annihilations, with negligible effects on the simulation of hadronic showers. o G4LundStringFragmentation: fixed rare crashes in the case of anti_sigma+ capture at rest on hydrogen; and added protections against vector access outside the allowed range. Negligible effects on the simulation of hadronic showers. o Fix to remove 'inline' qualifier from methods in G4VParticipants and G4PomeronCrossSection source files, responsible for run-time errors for undefined symbols in library on clang-3.4 compiler. + stopping: o G4MuMinusCapturePrecompound: added simplified model for capture in deuterium and in He4; reduced number of trials to find neutrino 4-momentum from 1000 to 100; added protection 1 keV for negative excitation energy, and substituted FatalException by JustWarning. o Fixes for Coverity defects in G4MuonMinusCaptureAtRest and G4AntiNeutronAnnihilationAtRest. o Readout: ------- + Fixed Coverity defects. o Track: ----- + Fixed G4FieldTrackUpdator to energy/momentum passed to field integration: first set rest mass, then update kinetic energy. The problem affects propagation in multiple geometries. + Fixed memory leak in G4Step::SetPre/PostStepPoint(). Addressing problem report #1583. o Visualization: ------------- + externals: o Fixed bad text in G4OpenGL2PS action. + management: o Get rid of deprecated 'register' storage class specifier in code. + FukuiRenderer: o Fixed compilation warnings detected by clang-3.4 compiler. + OpenGL: o Fix in G4OpenGL to allow for compilation with only Qt driver on Linux in case 'glu'h' is missing. Addressing problem report #1618. o Examples: -------- + Updated reference outputs. + extended/medical/DICOM: o Reshuffled code for printout in DicomHandler::CheckFileFormat(). + extended/field/field04: o Corrected mismatch for delete/new of fFp pointer array in Clear(). o Corrections for crashes in MT mode. + extended/persistency/gdml/G01: o Correction to solids.gdml for 'para' solid, where angle unit was missing. o Added GDML sample mat_nist.gdml showing how to load a NIST material, although format is not part of the GDML schema yet (i.e. expected warning in schema validation). ---------------------------------------------------------------------------- Technical Notes --------------- o This patch should be applied on top of release 10.0 or 10.0.p01. o Technical notes distributed for release 10.0 are also applicable and valid for this patch. The code and rebuilt binary libraries for release 10.0.p02 are available through our "Download" Web page: http://cern.ch/geant4/support/download.shtml Please refer to the Geant4 User Documentation: http://cern.ch/geant4/support/userdocuments.shtml for further information about using Geant4.