Geant4 10.1 - patch-01 Release Notes ------------------------------------ 27 March 2015 List of fixes included in this public patch since the public release 10.1: o Configuration: ------------- + CMake: o Added support for compiling against c++1y standard for GNU and Clang compilers. Added support for compiling against c++11 standard for Intel 15 compiler. 'c++0x' is used for compilers with partial support (even if 'c++11' is allowed), reserving 'c++11' for fully supported cases. o Corrected search path for X11 libraries to ensure location of Xquartz libs on MacOSX. Addressing problem report #1683. o Added external USolids library to static linkage list. Addressing problem report #1725. o Ensure that system/compiler is correctly set for GNUMake compatibility on MacOSX. o Analysis: -------- + Fixed G4AnalysisManager::IsActive(), now taken into all Hn & Pn managers. + Fixes in the Root files output to be compatible with ROOT 6.02/x. + Fixed reading XML ntuples with a column of a vector type; tools do not support direct use of ntuple_bindings with a vector, use of a temporary sub-ntuple is needed. + Fixed resetting histograms. o Digits & hits: ------------- + Fix in CMake script of 'scorer' module for missing dependency on external library. + Added calls to G4VisManager::BeginDraw2D() and G4VisManager::EndDraw() in G4VScoreColorMap to speedup drawing of texts and color chart. Revised Draw() DrawColumn() methods in G4ScoringBox and G4ScoringCylinder to speed up drawing primitive scorers attached to the scoring meshes. o Event: ----- + Fix to reduce performance penalty in MT mode when using GPS with low energy primaries. Addressing problem report #1706. o Externals: --------- + USolids: o UPolycone: fix in InsideSection() for points(0,0,z). Fix in SetOriginalParameters(), in case of presence of 'rings' structures constructed by (r,z) corners. Use canonical form for operator=(). Code cleanup and formatting. o Added special DistanceAway() method for Inside() in order to fix precision problem in calculation of DistanceToSide() in UPolyconeSide. o Fixed typo in copy-ctor and assignment operator for UTubs. o Renamed ExceptionSeverity struct to UExceptionSeverity in UUtils to avoid possible clashes with external libraries. o UTrap: fix in SafetyToIn/SafetyToOut() for implementations which were reverted. o Fixed triangularisation method AddGeneralPOlygoneFacets() in UExtrudedSolid by avoiding flat triangles. o Added warning message to UTriangularFacet constructor if Area is 0; i.e. case of flat triangle. o G3toG4: ------ + Fix to CMake script to include missing dependency on external library. o Geometry: -------- + biasing: o Set G4IStore and G4WeightWindowStore as thread-local singletons to avoid data races when accessing iterators. Use const references for string in argument for constructor and accessor. + magneticfield: o Small refinements in G4FieldTrack: added method to access rest mass and avoid division by zero for unit direction. + navigation: o G4ErrorPropagationNavigator: revised implementation of ComputeStep(), to avoid calling G4Navigator::ComputeSafety(). Addresses problem report #1679. o G4PathFinder: pass to equation of motion relevant properties of current particle: latest charge state, PDG spin value, momentum and rest mass of current particle. Fix in calls to ComputeSafety() to correctly use length as argument. Increased maximum number of navigators from 8 to 16. Addressing problem report #1696. + solids/CSG: o Fixed typo in copy-ctor and assignment operator for G4Tubs and G4OTubs. o Fix in temporary class G4OTubs to include symbol in library in any case. + solids/specific: o Fixed triangularisation method AddGeneralPOlygoneFacets() in G4ExtrudedSolid by avoiding flat triangles. Added warning message to G4TriangularFacet constructor if Area is 0; i.e., case of flat triangle. Addressing problem report #1703. o Added special DistanceAway() method for Inside() in order to fix precision problem in calculation of DistanceToSide() in G4PolyconeSide. o Fix in SetOriginalParameters() for G4Polycone and G4Polyhedra, in case of presence of 'rings' structures. Addressing problem report #1705. o Use canonical form for operator=() in G4PolyconeHistorical and G4PolyhedraHistorical. + volumes: o G4NavigationHistoryPool: moved printout from the destructor to dedicated Print() method. o Avoid post-increment in G4NavigationLevelRep::AddAReference(). o Use canonical form for copy-ctor and operator=() in G4GRSSolid, G4GRSVolume, G4LogicalBorderSurface and G4LogicalSkinSurface. o Generic Processes: ----------------- + Biasing: o G4ImportanceProcess, G4WeightCutOffProcess, G4WeightWindowProcess: made static thread-local variables into simple class data members. Use const reference for string in argument in SetParallelWorld(). + Management: o Fixed logic in G4ProcessManager::SetProcessOrderingToSecond() to make sure the process is always set before the process that has ordering index 1. + Transportation: o G4Transportation, G4CoupledTransportation: in AlongStepGetPIL(), initialize restMass with G4DynamicParticle (as is used in DoIt()), not with G4ParticleDefinition. Resolves inconsistent kinematics when dynamic mass is measurably different from "PDG" mass. o Global: ------ + Define support for c++11 thread_local keyword on Intel-icc compiler version 15. + Define G4THREADSLEEP(tick) macro in G4Threading header. + Updated date and version for 10.1.p01. o Graphics Representations: ------------------------ + G4VisAttributes: removed unnecessary check in operator<<(). Fixing compilation warning on clang. o Interfaces: ---------- + G4UIQt: fixed problem when displaying the first time the help tree. The guidance label was not shown. o Materials: --------- + G4Material, G4NistManager, G4NistMaterialBuilder, G4IonisParamMat: introduced NTP_Temperature=20C; set this temperature as default for all materials instead of STP_Temperature. No effects in results expected. Addressing problem report #1704. + G4Material, G4Element, G4Isotope: make arguments of stream operators const. o Particles: --------- + Added missing gamma-gamma, omega-gamma modes to EtaPrime and updated braching ratio. Addressing problem report #1713. o Physics Lists: ------------- + constructors/electromagnetic: o G4EmStandardPhysics_option4, G4EmStandardPhysicsWVI: disable 'DisplacementBeyondSafety' option; result of electron scattering benchmark demonstrate some degradation of accuracy with this option enabled. Use step limitation option 'fUseDistanceToBoundary' instead. o G4EmStandardPhysicsWVI: added angular limit to WentzelVI model in order to provide correct backscattering. Addressing problem report #1702. For more information see: S. H. Kim et al., IEEE Trans. Nucl. Sci., vol. 62, no. 2, 2015. + constructors/hadron_elastic: o G4HadronElasticPhysics: replaced Chips neutron elastic cross-section with default, according to fix in cross_sections module for Chips neutron elastic cross-section. + constructors/limiters: o Fix in G4ParallelWorldProcess to correctly use method SetProcessOrderingToSecond(). + lists: o INCLXXPhysicsListHelper: avoid use of G4NeutronTrackingCut for *_HP physics-lists. o Processes - Electromagnetic: --------------------------- + dna: o Explicitly initialise to zero TLS pointers in G4KDNode and G4ITFinder to allow for compilation on Linux/clang-3.5. + highenergy: o G4eeToHadronsModel: fixed kinematics in ISR gamma emission; added check on energy balance. Addressing problem report #1716. o G4eeTo3PiModel: increased majoranta for sampling of 3-body final state; fixed bug in sampling. + standard: o G4GoudsmitSaundersonMscModel, G4UrbanMscModel,G4WentzelVIModel, G4WentzelVIRelModel, G4UniversalFluctuation: redefine random engine pointer in StartTracking() method to address problem reported by CMS. G4UniversalFluctuation: switch to use G4Random::GetTheEngine() to simplify code. o G4GoudsmitSaundersonMscModel: return back to version of 10.0 with two fixes; trivial Coverity report, added protection against precision loss for small angle calculation, to ensure same backscattering results. o G4KleinNishinaModel: fixed very rare crash happening when de-excitation module is active and de-excitation energy is slightly larger than available energy; now secondary energy is slightly modified to keep energy balance instead of deleting secondary particle. G4PEEffFluoModel: use the same pattern as G4KleinNishinaModel for de-excitation products. + utils: o G4EmParametersMessenger: allow to set CSDA range flag only in the PreInit state to avoid crash in store/retrieve tables. o G4VEnergyLossProcess, G4VEmProcess, G4VMultipleScattering: allow for storing of physics table only from master thread. o G4VEmProcess: fixed printout at initialisation for the case when a process is shared between different particles. Fixed crash in printout for verbose level > 2. o G4VEmModel, G4VEmFluctuationModel: switch to use G4Random::GetTheEngine() to simplify code. Redefine random engine pointer in G4VEmModel::StartTracking() method to address problem reported by CMS. o G4EmCalculator: fixed minor defect reported by Coverity. o Processes - Hadronic: -------------------- + cross_sections: o Fix in G4ComponentGGHadronNucleusXsc to work for H target. o Removed obsolete (wrong) checks for particle types in IsIsoApplicable() in Chips cross sections. o Workaround in G4CrossSectionFactory::Instantiate() to allow for compilation on clang-3.5 on Linux, for initialisation of TLS pointer. + models/coherent_elastic: o G4DiffuseElastic: fix for low-energy neutrons. Fix in theta_cms momentum transfer transformation. Fix for rare numerical error (sqrt of negative argument). o G4NuclNuclDiffuseElastic: fix for 700 MeV Be-ions scattering in Be. Addressing problem report #1691. + models/de_excitation: o G4VGammaDeexcitation::GenerateGamma(): take into account atomic bond energy for computation of transition energy and kinematics in the case of internal conversion. o G4VGammaDeexcitation, G4DiscreteGammaDeexcitation, G4PhotonEvaporation: changed default set of parameters: ICM disabled; time limit for isomere production is set to DBL_MAX; sampling of gamma decay of long-lived isomere levels is performed as it was in Geant4 9.6 assuming decay at rest and making correction for energy balance (in that case momentum balance is not guaranteed); binding energy is taken into account in the case of ICM enabled. These modifications should provide correct sampling of the decay time for all type of levels, energy balance in hadronic interactions, and event reproducibility of hadronic transport. o G4VGammaDeexcitation, G4PhotonEvaporation: propagate vacant shell number after internal convertion allowing to enable atomic de-excitation in radioactive decay. o Enabled ICM by default in G4NeutronRadCapture. o G4GEMProbability: added protection to avoid numerical problem seen in FTF_BIC physics-list where a nucleus get excited to 8 GeV. o G4DiscreteGammaTransition return back correction on shell number to avoid assert failure in simplified calorimeter. o G4ContinuumGammaDeexcitation: fixed Coverity report. + models/lend: o Fixed Coverity defect in G4GIDI_map. + models/neutron_hp: o Removed unnecessary code in G4NeutronHPInelasticCompFS. Addressing problem report #1710. o Fixed Coverity defects. o Corrected CMake script. + models/qmd: o Fixed Coverity defects in G4QMDGroundStateNucleus and G4QMDNucleus. + models/particles_hp: o Enabled reading of data file that has a signature of evaluation name. o Corrected CMake script. + models/parton_string: o Fix for rare crash in G4LundStringFragmentation in the case of anti-sigma+ capture at rest on hydrogen. + stopping: o G4HadronStoppingProcess, G4MuonMinusBoundDecay: fixed time of muon nuclear capture secondaries. Addressing problem report #1695. o Define index in the model cathalog inside PreparePhysicsTable() to avoid bad interference with EM physics. o Run --- + Print message for deletion of G4NavigationHistoryPool only if the verbose level is set to 2. o Track ----- + Fixed FieldTrackUpdator to pass magnetic moment and PDG spin. Addressing problem report #1696. o Visualization: ------------- + Fix in CMake scripts for missing dependency on external library. + gMocren: o Fixed bug in G4GMocrenFileSceneHandler for checking of string lengths. o Examples: -------- + Updated reference outputs. + advanced/air_shower: o Set defaults for GPS in master thread. + advanced/brachytherapy: o Removed unnecessary instantiation of GPS in master thread. + advanced/ChargeExchangeMC: o Bug fix for online histogram redrawing and easy online histogram showing from a dedicated menu bar (in graphical mode). + advanced/gammaknife: o Moved GPS defaults to master thread. + advanced/hadrontherapy: o Corrected definition of steppers in LaserDrivenBeamLine (nvar=8 only for Electric field). o Removed/reduced size of maps files and updated README. + advanced/human_phantom: o Removed unnecessary instantiation of GPS in master thread. + advanced/microbeam: o Added protection against loops on very low-energy particles. + advanced/radioprotection: + advanced/xray_telescope: o Removed unnecessary instantiation of GPS in master thread. + basic/B4: o Fixed accessing 'gapHit'. Addressing problem report #1714. o Fixed documentation. + extended/biasing/B03: o B03PhysicsList: properly use SetProcessOrderingToSecond() method for G4ParallelWorldProcess. + extended/electromagnetic/TestEm3: o Fixed formatting in .README. + extended/electromagnetic/TestEm5: o Run: added forgotten fill of projectile scattering angle for printed output (printed value was zero). + extended/electromagnetic/TestEm8: o DetectorConstruction: removed local pointer to sensitive detector in order to avoid race condition. + extended/electromagnetic/TestEm16: o Run: fixed computation of max gamma energy for MT mode. + extended/eventgenerator/particleGun: o Fixed formatting in .README. + extended/exoticphysics/channeling: o Moved GPS defaults to master thread. + extended/exoticphysics/ucn: o Fixed files description for Doxygen. + extended/medical/electronScattering: o Corrected plot 6 filling, the distance from scattering foil to detector was wrong. + extended/optical/wls: o Added global mutex for primary generation as application modifies GPS polarization/time + extended/parameterisations/gflash: o Removed unnecessary instantiation of GPS in master thread. + extended/persistency/gdml/G03: o Corrected visualization commands in read/write input macros. o Updated README. ---------------------------------------------------------------------------- Technical Notes --------------- o This patch should be applied on top of release 10.1. o Technical notes distributed for release 10.1 are also applicable and valid for this patch. The code and rebuilt binary libraries for release 10.1.p01 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.