Geant4 10.0 - patch-01 Release Notes ------------------------------------ 28 February 2014 List of fixes included in this public patch since the public release 10.0: o Configuration: ------------- + CMake: o Include /opt/X11 paths for X11 and OpenGL on MacOS X Mavericks. o Added variables for G4LIB_{BUILD,USE}_EXPAT as for ZLIB and export them based on value of GEANT4_USE_SYSTEM_EXPAT. Addresses problem report #1567. o Added builtin zlib to list of features, added G4zlib to list of libraries when used; export them to geant4-config. Addresses problem report #1572. o Replaced use of GNU awk extension 'length' in geant4-config for determining number of datasets. Use return value of split function to get length of array. Addresses problem reported in item #1614 in hypernews 'Installation and Configuration' forum. + GNUMake: o Fixed setting of -fPIC in MT-mode for Linux-g++, Linux-icc and Darwin targets. o Analysis: -------- + Updated to g4tools 1.7.1. Fixed performance issue observed for an ntuple with large numbers of columns reported in item #455 in hypernews 'Analysis' forum. o Event: ----- + Changed default value of Q (charge) for /gun/ion and /gun/ionL commands. Now electrons are fully stripped (i.e. Q = Z) if Q is not specified. + G4SPSPosDistribution::IsSourceConfined(): added protection against null pointer. Addressing problem report #1255. o G3toG4: ------ + Correction to CMake script: removed no longer existing package from dependency list. o Geometry: -------- + magneticfield: o Added call to G4Mag_EqRhs::SetChargeMomentumMass() from G4Mag_SpinEqRhs::SetChargeMomentumMass(), following report in item #210 in hypernews 'Fields' forum. + navigation: o Fixed implementation of SetNavigatorForTracking() in G4TransportationManager, to initialise active navigator and propagator-in-field with the new provided instance. Addressing problem report #1537. o Minor code cleanup in G4GlobalMagFieldMessenger. + solids/CSG: o Added correct cloning mechanism in G4U* wrappers. Addressing problem report #1553. o Simply reset polyhedron pointer to zero for modifiers of G4U* wrappers in parameterisation. Resolves crash in MT visualization when using USolids. + solids/specific: o Fix in G4GenericTrap::InsidePolygone() to check if p lies between the two extremes of the segment. Addressing problem report #1541. o Corrected cloning mechanism in G4U* wrappers. Addressing problem report #1553. o Simply reset polyhedron pointer to zero for modifiers of G4U* wrappers in parameterisation. Resolves crash in MT visualization when using USolids. o Removed left-over debug printout in G4Polycone::SetOriginalParameters(). + solids/usolids: o Implemented precise safety in UTubs and UCons for SafetyFromOutside(). Precise safety is used in UPolycone for calculation of SafetyFromOutside(). o Fixed typo in SafetyFromInside() for UTubs for correct calculation of 'safePhi'. o Corrected implementation of Clone() method in UBox, UTet, UTrd. Corrected cloning mechanism and copy constructor in G4USolid. Addressing problem report #1553. o UPolycone fixes: added validity check of shape for case when RMin > RMax; moved global bounding-box to be a class data member. Corrected implementation of DistanceToOut(p,v) for convexity and normals; corrected implementation of DistanceToOut(p,v) for stuck tracks due to DistanceToIn=DistanceToOut=0; corrected implementation of Inside() in case of OpenPhi. o Removed ResetPolyhedron() from G4USolid bridge class as not necessary; moved 'fPolyhedron' pointer to protected. o Global: ------ + G4PhysicsVector: small performance optimisation to avoid one division. + Fixed Coverity defects in G4Physics2DVector::Retrieve(). + Implemented workaround to guarantee G4cout/G4cerr are initialized correctly before main function. + Added protections to avoid core dumps caused by division by zero and other minor updates in G4ConvergenceTester. + Updated date and version for 10.0.p01. o Graphics Representations: ------------------------ + Fixes defects reported by PVS static analysis tool. Some code cleanup. o Electromagnetic Processes: ------------------------- + DNA: o Fix in G4DNAMolecularMaterial to prevent segmentation fault in case a model is not created at initialisation time. + Low Energy: o Suppressed exception warning issued by some Penelope models; Controlled by verbosity flag now for diagnostics. o Allow for (AutoLock-protected) creation on-the-fly of tables in SampleSecondaries(); avoid crash when the loop of SampleSecondaries() is inkoved in a unit test. o Fixed Coverity report in G4LivermorePhotoElectricModel. + Standard: o Bug fix in G4UrbanMscModel; 1st normal step in StepLimitType 2 mode was not randomized. Move methods ComputeTheta0,SimpleScattering(), SampleDisplacement(), LatCorrelation() to be inlined for small CPU speedup. o Fix in G4UniversalFluctuation for energy loss for extreme small cuts. Bug fix in "ionization" computing (small observable effect). Replaced G4Pow::expA() by faster G4Exp(). Reduced number of divisions by addition of extra class members. o G4NuclearStopping: fix to avoid changing ion charge. o G4ionIonisation: do not instantiate extra model at high enegry if G4IonParameterisedModel is used. Improved printout at initialisation. o G4SauterGavrilaAngularDistribution: use Penelope 2008 sampling algorithm, as it is more effective; distribution itself is unchanged. o G4GoudsmitSaundersonMscModel, G4GoudsmitSaundersonTable: use G4Log(), and G4Exp(). o G4eCoulombScatteringModel, G4eSingleCoulombScatteringModel: get pointer to the vector of cuts from parameters of Initialise(..) method and not from G4ProductionCutsTable; more convenient for unit tests. o Fixed Coverity defects. + Utils: o G4VEnergyLossProcess: fixed division by zero for the case of an ion with charge zero. o G4EmCalculator: in FindCouple() method, implemented loop over all regions if argument pointer to region of the method is null. Added G4Exception if G4MaterialCutsCouple is not found out and also inside GetCSDARange() when CSDA table is not initialized. o G4LossTableMananger: fixed bug for initialisation of several runs in one job (affecting muons and e- and providing non-reproducibility) o G4LossTableMananger, G4EmProcessOptions: define default verbosity=0 for worker thread, so summary on EM processes is not duplicated. o G4VEnergyLossProcess, G4VEmProcess: define fixed precison=6 for initialisation printout. + xrays: o Make some class members and methods static in G4Cerenkov and G4Scintillation. o Generic Processes: ----------------- + Cuts: o Fixed verbosity warning in G4ProductionCutsTable. + Decay: o Fixed problem of wrong global time for secondaries in case that the primary track stops during along step. Addressing problem report #1555. o Replaced use of DBL_MAX with age of the universe for stable particle life time. Addressing problem report #1569. + Management: o Fixed verbosity warning in G4ProcessTable. + Optical: o Make 'WLSTimeGeneratorProfile' and 'UseTimeProfile' static in G4OpWLS. o Hadronic Processes: ------------------ + cross_sections: o Removed wrong if statement against zero cross-section in G4CrossSectionDataStore::SampleZandA(). Correct fix for the crashes observed in QBBC. o Disabled threshold for the inelastic cross-section in G4BGGNucleonInelasticXS. + management: o Added printout of energy momentum check in G4HadronicProcess. + models/binary_cascade: o G4BinaryLightIoncascade::FuseNucleiAndPrompound(): added protection at low energy: available energy is not sufficient to create a fragment. o G4BinaryLightIonReaction: fix for Coverity report on small leak. o Added printout of particle name in check for valid type of projectile in G4BinaryCasacde::ApplyYourself(). + models/de_excitation: o G4ExcitationHandler: fixed minor memory leak in the case when FermiBreakUp has no final states available; reported in item #1371 in hypernews Hadronic forum. o G4NuclearLevelManager: trivial fix for defect reported by Coverity. + models/inclxx: o Fix for occasionally produced excited nucleon as a pre-fragment. o Added getter for INCL Config object in the G4INCLInterfaceStore. + models/lend: o Correction to CMake scripts: removed no longer existing package from dependency list. + models/neutron_hp: o Fixed problem in reading compressed data files in G4NeutronHPThermalScatteringData. Addressing problem report #1543. o Correction to CMake scripts: removed no longer existing package from dependency list. + models/radioactive_decay: o Fixed memory leak in G4RadioactiveDecay destructor by deleting decay table map. + models/theo_high_energy: o Correction to CMake scripts: removed no longer existing package from dependency list. + models/utils: o Use G4Allocator for allocation of G4Fragment objects. Should help reducing memory churn and improve CPU performance. Removed counter of warnings; added exception warning in verbose mode. + stopping: o G4MuMinusCapturePrecompound: fixed case of infinite loop for mu- capture. Addressing problem report #1536. + util: o Cleanup of automatic TLS data conversion in G4ReactionProduct, G4HadSignalHandler and G4HadronicWhiteBoard. o Interfaces: ---------- + Explicitly set the LC_NUMERIC locale to "C" in G4Qt. Addressing problem report #1487. Fixed problem with resizing the QGLwidget when scene is opened from UI. o Particles: --------- + G4ParticleDefinition::DumpTable() displays correct stability information for a general ion as long as it is known to G4NuclideTable. Addressing to bug report #1560. + Fixed properties for heavy anti-baryons G4AntiLambdab, G4AntiSigmabZero and G4AntiLambdacPlus. Addressing problem report #1571. + Minor fix in G4ParticleTable::GetParticle() method. o Physics Lists: ------------- + Correction to CMake scripts: removed no longer existing packages from dependency list. + constructors/electromagnetic: o G4EmStandardPhysics_option4, G4EmLivermorePhysics, G4EmPenelopePhysics: use RangeFactor=0.01 to increase simulation accuracy. Use G4UrbanMscModel for pions, kaons, protons instead of WentzelVI to have more accurate ranges of low-energy hadrons (in particular, protons). o G4EmStandardPhysics_option4, G4EmLivermorePhysics, G4EmPenelopePhysics, G4EmStandardPhysics_option3: use the same order of processes for e+-, does not change any result but makes more easy comparing log files for different EM physics options. o G4EmStandardPhysics, G4EmStandardPhysics_option1, G4EmStandardPhysics_option2: added Coulomb scattering process for pions, kaons, proton, anti-proton in order to have more smooth transition from EM to hadronic scattering. o Fixed race condision issue in OpticalPhysics; also specify command /optics_engine/setOpProcessUse not available for 'Idle' state. o Avoid static G4Scintillation method invoked through a pointer. + constructors/ions: o INCL++ was incorrectly used up to 48 GeV for deuteron, triton, He3 and alpha. Changed the upper limit for ions to 18*3 GeV. + lists: o Registered model to handle neutron capture above 20 MeV in in LBE list. Addressing problem report #1562. o Run: --- + Changed order of setting world volume pointer to the transportation manager for worker thread to be the same as the master thread and the sequential mode, i.e. prior to invoking ConstructSDandField(). Addressing problem report #1561. + Making sure worker threads re-build physics tables as well when the master thread is requested to rebuild. o Track: ----- + Corrected message from CheckIt() in G4VParticleChange and G4ParticleChangeForDecay. o Examples: -------- + Updated reference outputs. + advanced/amsEcal: o Added protection against division by zero in RunAction. Addressing problem report #1522. + advanced/ChargeExchangeMC: o Fixed few compiler warnings for shadowed variables). FTFP_BERT replaces deprecated QGSP_BERT. + advanced/hadrontherapy: o Fixed missing inizialization of data in PassiveProtonBeamLine class. + advanced/nanobeam: o Made code thread safe to overcome unsafe CLHEP matrix inversion in RunAction. + advanced/xray_fluorescence: o Fixed shadowed variables and compilation errors when AIDA is available. + extended/analysis/B1Con: o Increased number of events of run1.mac. + extended/electromagnetic/TestEm4: o Updated vis.mac macro and printout from run. + extended/electromagnetic/TestEm8: o HistoManager: more accurate computation of mean energy deposition; fixed output of rms of mean energy. + extended/exoticphysics/phonon: o Fix in CMake script to copy data in build directory. + extended/field/field04: o Replaced Update() method and commands with ReinitializeGeometry(). Clean volumes and solids stores in Construct(). o Updated gui.mac: allow for execution of vis.mac first to make the command added in menus available. Corrected wireframe parameter. o Avoid static method being invoked by a pointer. Fixed uninitialized variables in F04GlobalField. + extended/field/field05: o Corrected History. + extended/optical/LXe: o Updated gui.mac: allow for execution of vis.mac first to make the command added in menus available. Corrected wireframe parameter. o Rearrange /optics_engine commands in LXe.in, according to what is allowed through G4OpticalPhysics. + extended/optical/OpNovice: o Fixed race condision issue in OpNovicePhysicsList. Addressing problem report #1539. Limit invokation of static method only from master/sequential. o Updated gui.mac: allow for execution of vis.mac first to make the command added in menus available. Corrected wireframe parameter. + extended/optical/wls: o Updated gui.mac: allow for execution of vis.mac first to make the command added in menus available. Corrected wireframe parameter. + extended/radioactivedecay/rdecay02: o Fixed problem identified in boudary chack mode in exrdmHisto::AddRow(). o Fix in exrdmAnalysisManager::EndOfEvent(). ---------------------------------------------------------------------------- Technical Notes --------------- o This patch should be applied on top of release 10.0. 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.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.