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. ----------------------------------------------------------------------------