Geant4 10.1 Release Notes
The code and binary libraries for the supported systems are available
through our Source
Code Web page.
We are grateful for the efforts of Geant4 users who have provided
detailed feedback or comprehensive reports of issues.
We thank in particular those who have contributed corrections,
improvements or developments included in this release.
Please refer to the
Geant4
User Documentation for further information about using Geant4.
Contents
- Supported and Tested Platforms
- Supported CLHEP version
- Items for migration of the user code
- New Developments and Capabilities
- Expected effects on physics and performance
- Known Run-Time Problems and Limitations
- Compilation Warnings
- Geant4 Software License
- Detailed list of changes and fixes
1. Supported and Tested Platforms
Platforms:
- Linux, gcc-4.4.7.
Tested on 64 bit architectures (Intel or AMD) with
Scientific Linux CERN 6 (SLC6) (based on Red Hat Linux Enterprise 6).
- MacOSX 10.9 with gcc-4.2.1/clang-3.5
- Windows7 with Visual C++ 12.0 (Visual Studio 2013)
More verified and tested configurations (64 bits):
- Linux, gcc-4.7.2, gcc-4.8.2, gcc-4.9.2
- Linux, Intel-icc 14.0, 15.0
- MacOSX 10.10 with gcc-4.2.1/clang-3.5
- Windows7 with Visual C++ 9.0, 10.0, 11.0
- Many Integrated Core architecture (aka Intel Xeon Phi) with Intel-icc 15.0
Note: Windows platforms are supported/verified only for the sequential mode.
Multi-threading capability of this release does not support Windows.
2. Supported CLHEP version
This release of Geant4 has been verified with
CLHEP, release 2.2.0.4.
Use of a different CLHEP version may cause incorrect simulation results.
NOTE: an internal module of the relevant CLHEP classes is provided and can be
used as alternative to an external CLHEP library installation.
3. Items for migration of the user code
Listed here is some relevant information on developments included in this
release.
Note that for all users a full re-installation of libraries (or a full
re-compilation) and a re-compilation of user applications is required.
General
- The new version of CLHEP can be built supporting the C++11 Standard,
on compilers that support C++11.
When C++11 option is chosen in a multi-threaded build of Geant4,
this trigers the use of the Standard thread_local
and atomic keywords.
- The procedure of deleting the full geometry for rebuilding a new one from
scratch has been reviewed. It is suggested to use
G4RunManager::ReinitializeGeometry(true)
or the equivalent UI command /run/reinitializeGeometry rather than
directly invoke deletion from G4SolidStore, G4LogicalVolumeStore and
G4PhysicalVolumeStore, to safely delete all previously-defined solids,
logical and physical volumes.
Geometry
- A new minor release of the GDML schema, GDML-3.1.1, is used,
supporting the new MultiUnion structure. This new feature
is available only in installations which use the
Unified Solids Library.
The new schema is fully compatible with old schema versions
and schema validation thorugh network is already activated against it.
Electromagnetic and optical physics
- The data file G4EMLOW6.41 should be used.
- A new structure of UI commands for optical-physics is implemented.
Hadronic physics
- The new data sets G4PhotonEvaporation-3.1, G4RadioactiveDecay-4.2
and G4NDL-4.5 should be used.
Generic biasing
- The G4VBiasingOperation interface class had been modified to simplify
the interface. These are described in the Biasing section of detailed
changes chapter below.
Data Sets
This release introduces new data set versions.
Please see the corresponding details in
Section 10 of this document.
- New data set versions: G4EMLOW-6.41, G4NDL-4.5,
G4RadioactiveDecay-4.2, G4PhotonEvaporation-3.1.
4. New Developments and Capabilities
Geometry
- In this release, an option allows an installation to use the
Unified Solids Library
primitives, to replace the original Geant4 solids, as in the
previous release. An additional configuration option enables
a build against an external installation of the USolids library.
Materials
- Preliminary support for phonon propagation
(see Phonon Physics below) is provided
by G4LatticeLogical (which defines parameters for materials) and
G4LatticePhysical (which associates G4LatticeLogical with a particular
G4VPhysicalVolume, including lattice orientation). These objects should
be instantiated in the user's G4VUserDetectorConstruction class.
Electromagnetic physics
- A new class G4EmParameters and updated set of UI commands have been
introduced, allowing easy definition of the EM parameters both in
sequential and multi-threaded modes.
- A new option "DisplacementBeyondBoundary" for simulation of
multiple scattering diplacement at geometry boundary is available.
- G4SynchrotronRadiation process is now applicable for all
charged particles.
- High energy processes G4GammaConversionToMuons and G4eeToHadrons
are ready for production.
- A new model class G4LowEWentzelVIModel is introduced for low-energy
electron elastic scattering. Low-energy cross-section for water has
been added for the low-energy Livermore photoelectric model.
- A new User Interface command to disable production
thresholds in atomic deexcitation has been introduced:
/process/em/deexcitationIgnoreCut true/false.
- An alternative set of data files for the simulation of atomic fluorescence
lines is also provided in this release.
- In Geant4-DNA physics, added ionisation model from Rudd for
B, Be, Li and Si ions. An alternative physics constructor
G4EmDNAPhysics_option1 including the G4LowEWentzelVIModel has been also
introduced. G4DNAIonisation and G4DNARuddIonisationExtendedModel have been
updated for G4GenericIon usage.
- Classes for the simulation of water radiolysis have been introduced for
Geant4-DNA chemistry.
See details at Geant4-DNA project site
Hadronic physics
- In this release, mass width is taken into account in decays of short-lived
hadrons. Daughter hadrons have dynamical mass according to Breit-Wigner
distribution.
- The Fritiof (FTF) model has been significantly improved, resulting in
closer agreement with thin-target data.
Revisions in string fragmentation affect the meson production, and in
particular the pi-zero fraction of showers. This is largely counteracted
by other improvements of FTF and an imposed reduction of omega production.
The overall effects on hadronic observables is found to large cancel
in our benchmark hadronic calorimeter setups, but the effect should be
monitored on experiment setups for key observables including visible
energy, resolution, longitudinal and lateral size.
- The fragmentation part of the Quark-Gluon-String (QGS) model has been
improved significantly.
This implies that the hadronic showers produced with QGS-based physics
lists (e.g. QGSP_FTFP_BERT) become wider and longer, and with a lower
energy response, in closer agreement with the ones produced by FTF.
- The INCLXX model has been extended up to 15-20 GeV incident energy.
- Labeling of tracks resulting from muon stopping are added.
Phonon Physics
The contents of this new physics category were moved into the toolkit
from the phonon
extended example.
- A new set of processes and utility classes are provided as a framework
to support propagation of phonons through materials.
- G4LatticeManager and G4LatticeReader provide access to the solid
crystal structure parameters (G4LatticeLogical and G4LatticePhysical in
Materials) read from data files and used by the physics processes.
- G4PhononPolarization defines an enum to identify the three acoustic
phonon polarization states supported in this framework. See
also Particles below.
- G4PhononTrackMap is an internal singleton class used by the processes
to associate additional phonon-specific information (wave number,
etc.) with each propagating G4Track object in the event.
- G4VPhononProcess is the abstract base class for the phonon processes,
and provide some common utility functions.
- G4PhononDownconversion implements the conversion of high energy
phonons to pairs of lower energy phonons.
- G4PhononReflection is a "template" process which will, in the future,
implement reflection or transmission of phonons at the boundaries of
crystals. Currently, phonons at a boundary are absorbed, and an
associated G4VUserSteppingAction (in the
phonon
example)
records hits.
- G4PhononScattering implements the scatting of phonons from one
polarization state to another due to impurities or defects in the
crystal lattice.
Generic Biasing
- A new class G4BiasingProcessSharedData is introduced, allowing to gather
information shared by the G4BiasingProcessInterface instances attached
to the same G4ParticleDefinition (hold by a same G4ProcessManager).
- Now providing easier access to cross-sections/mean-free-paths of wrapped
physics processes, making all them up to date at the first call to the
biasing operator.
- New examples have been added: GB03 showing a technique inspired
by geometry importance biasing, but with some more flexibility;
GB04, an implementation of Bremsstrahlung splitting, using the
generic biasing classes.
Particles
- Ions and isomers are instantiated during the event loop as they become
necessary. In the previous release 10.0, all ions and isomers were
instantiated before the event loop.
- Pre-instantiation of all ions and isomers is still optional via a UI
command at PreInit or Idle states.
- Three new particles corresponding to the polarization states of acoustic
phonons are provided to support the phonon physics
processes. These were moved into the toolkit from the
phonon
extended example.
- G4PhononLong: longitudinal (along crystal valley axis) polarization;
- G4PhononTransFast: higher-speed transverse polarization;
- G4PhononTransSlow: lower-speed transverse polarization.
Physics Lists
- Switched on muon-nuclear by default in all physics lists.
- Cut on proton is set to zero, to simulate all recoils from elastic
scattering, in physics lists using neutron-HP.
- The physics lists based on INCLXX use this model for pions, protons and
neutrons up to 20 GeV, and the string model (FTF or QGS) starting
from 15 GeV.
- Trying out a new hadron elastic scattering, still in development, in
the experimental physics-list FTFP_BERT_TRV.
- The G4OpticalPhysics constructor has been restructured and UI
commands have changed. This allows for different particles to have
specific settings of optical parameters.
- New experimental physics lists ShieldingM and NuBeam are introduced.
Visualization and Interfaces
- Evolution of Qt User Interface
- The "Scene tree" opens up as soon as the detector is drawn.
- An editable "Viewer properties" panel allows one to adjust view
parameters interactively.
- "Picking information" also has its own panel that may be opened
by the user. Picking has been improved.
- The "Scene tree, Help and History" panel may be detached, leaving
more screen space for the viewers.
- The "Output" panel may also be detached.
- One may select output by a string match or, in the case of
multi-threaded mode, by thread.
- A "Useful tips" window is available in the viewer panel and comes up
automatically if no other view has been created.
- In representing curved surfaces by planar polygons the number of
"lines per circle" may optionally be reduced to as little as 3 (the
default is 24) if speed of rendering is the priority.
- New commands
- /vis/touchable/dump: dumps attributes of a specific
touchable (as set by the /vis/set/touchable command).
- /vis/scene/add/extent: allows one to add an extent (i.e.,
coordinate system and range) to a scene. Normally this is done
automatically by a survey of the geometry, but if you wish to draw
trajectories without geometry, for example, you may use this command.
- /vis/set/textSize: controls text size on subsequent
/vis/scene/add/axes and /vis/scene/add/scale commands.
- Improved commands
- /vis/scene/add/scale: one may now add more than one scale
to a scene.
- /vis/scene/add/axes: one may suppress annotations.
- /vis/scene/add/logicalVolume: now draws axes of the local
coordinate system.
5. Expected effects on physics and computing performance
General
- Memory space required per thread is reduced to less than half.
This reduction does not include the space defined in the users code.
- We observe up to 10% speedup in several use-cases.
Electromagnetic physics
- All internal physics tables are shared between threads, thus
reducing contribution of electromagnetic physics to total
memory per thread.
- Code cleanup providing slight speedup (about a few percent)
of electromagnetic simulation.
Hadronic physics
- Extensive development in the FTF model has improved significantly
the agreement between simulation and thin-target data on
hadron-hadron and hadron-nucleus interactions.
Small changes are expected in hadronic shower observables
in the physics lists based on the FTF model (e.g. FTFP_BERT).
- Improvements in the fragmentation part of the QGS model produce
now hadronic showers which are more similar to those produced by the
FTF model.
6. Known Run-Time Problems and Limitations
For a complete list of outstanding run-time problems and to submit any
problem you may find while running this version of Geant4, please refer
to the
Geant4 Problem
Reporting System.
7. Compilation Warnings
There may be a few compilation warnings on some platforms.
We do not believe that any of these lead to incorrect run-time behaviour.
8. Geant4 Software License
A Software License applies to the Geant4 code.
Users must accept this license in order to use it. The details and the list of
copyright holders is available at
http://cern.ch/geant4/license
and also in the text file LICENSE distributed with the source code.
9. Detailed list of changes and fixes
These are the main new features/fixes included in this release since the
last patched public release (for more detailed lists of fixes/additions,
please refer to the corresponding History files provided in most packages):
Configuration
- CMake:
- Added -DG4USE_STD11 compilation flag when c++11 is selected at
configuration time for capable compilers.
- Added command line arguments to configuration scripts to report
C++ standard compiled against and TLS model used if multithreading
support available. Added presence of static libs as a feature
argument that can be checked.
- Added support for "offloading" of tests (e.g. for use on Xeon Phi
co-processors).
- Removing any self-links from internal library link list when building
global libraries.
- Enabled choice between builtin or system USolids library (builtin is
the default).
- Added Modules/Geant4ConfigureModulefile.cmake new file to configure
and install a basic Environment Modules module file for Geant4.
- Added ROOT_BIN_DIR variable in FindROOT.cmake to point to the path
of root executables. Needed for merging of output files for MT in
physics testings.
- Include Geant4 headers as SYSTEM and after other headers.
- Removed unused settings for tpmalloc module.
- Updated references to data libraries version for 10.1.
- GNUMake:
- No longer supported, only for development/testing use.
Analysis
- Updated histogramming tools to g4tools-1.16.3.
- Added new CreateNtupleTColumn() functions for ntuple columns of vectors
in G4AnalysisManager.
- Added interface classes G4VAnalysisReader and G4VRNtupleManager for
reading, and their Root specializations: G4RootAnalysisReader,
G4RootRNtupleManager. Introduced independent numbering of warnings
from reader.
- Use G4Threading::IsMultithreadedApplication() instead of
G4AnalysisManagerState::IsMT() (now removed); this function fixes files
clean-up at the end of sequential application built against
multi-threaded libraries.
- Added typedefs and functions for accessing iterators over H1, H2,
Ntuples. Added G4AnalysisManager functions to access FirstIds.
- Replaced use of std::cout with G4cout in Root managers
to fix potential data race among threads.
- Get rid of obsolete 'register' keyword in csz_inflate.cc.
- Removed unsused data member in G4P1DummyManager.
- Added histograms and profiles support in Csv.
- Implemented reading csv ntuples.
- Finalized G4VAnalysisReader interface: added reading P1, P2, H3;
modifications to fit to all outputs; support for both user defined file
names and "generic" file names (generated automatically by G4AnalysisManager
from the base name).
- Introduced G4BaseFileManager and separated implementation for
output/input file managers
- Implemented reading P1, P2 in G4RootAnalysisReader; prepared code for H3
which reading is not yet available in tools.
- Completed implementation of G4XmlAnalysisReader; now requiring Expat parser.
- Fixed writing ntuples when more than one ntuple is defined (Xml).
- Do not overwrite user defined file extension.
- Fixed units in /analysis/[h|p]n/create and /analysis/[h|p]n/set commands.
- Fixed Coverity defects: initialization of data members in G4VAnalysisManager;
provided assignment operator for G4HnDimensionInformation.
- Removed H1, H2, P1 dummy manager classes and H3, P3 moved in hbook
implementation in examples.
- Revised (and simplified) numbering of warnings in exception messages.
- Support reading of root ntuple with column of std::string type by using
ntuple_binding. Implemented reading H3 for Root.
Added an option to write the Hippo header in csv ntuple output.
- Fixed reading histograms with titles of more words.
- Revised (and simplified) numbering of warnings in exception messages.
Digitization & Hits
- Added Merge() methods to G4ScoringManager and G4VScoringMesh, needed
for multi-threading.
- Changed method names in G4VScoringMesh and derived classes.
- Added missing options in command-based scorers in G4ScoreQuantityMessenger
and G4ScoreQuantityMessengerQCmd.
- Added protoype cloning mechanism for sensitive-detectors, needed for
multi-threaded mode.
- G4VScoringMesh, G4ScoringBox, G4ScoringCylinder: fixed Construct()
to make it work when the entire geometry has been destroyed.
Addressing problem report
#1665.
Electromagnetic Processes
- DNA:
- Modified G4DNAChampionElasticModel to read high precision differential
cumulated cross-section.
- Modified calculation of secondary kinetic for fast code.
Updated chemistry.
- Changed to faster method interpolation in G4DNABornIonisationModel.
- G4ITSafetyHelper: force temporary usage of G4PathFinder.
- Added interface class G4ITTimeStepper.
- Added G4DNABornAngle and G4DNARuddAngle generators; ionisation models
switch to use angular generator interface.
- Switched to DNAion for Si in G4DNAGenericIonsManager.
- Added Si to G4DNARuddIonisationExtendedModel.
Updated G4DNAIonisation and G4DNARuddIonisationExtendedModel for
G4GenericIon usage.
- Avoid usage of molecule iterators as pointers.
- Removed obsolete class for electron excitation.
- Get rid of obsolete 'register' keyword in code.
- Added G4ITStepManager class and related messenger.
- Added LEPTS model classes.
- Renamed classes: G4ITTimeStepper-->G4VScheduler;
G4ITStepManager-->G4ITScheduler; G4ITStepManager-->G4ITSchedulerMessenger.
Removed G4AllITManager G4ITManager and G4VITScheduler classes.
Added G4ITFinder and G4VITTrackHolder. Implemented G4ITTrackHolder.
Code cleanup.
- Removed G4MolecularConfiguration from the manager's table when deleted.
- Use G4ITTimeStepper in ChemMan::InitMaster() and G4DNASecondOrderReaction.
- Avoid use of std::map at the application level in TimeStepAction.
- Simplified initialization of chemistry from user applications; just
registering constructor is enough to initialize the chemistry.
- Transform fStopAndAlive to fStopAndKill in G4DNABrownianTransportation
when the particle has reached a boundary.
- Updated G4ITNavigator2 to recent developments in G4Navigator.
- Fixed bug in G4MoleculeGun and corrected track creation by
G4MoleculeGunMessenger.
- Improved error message for missing data in PW elastic model.
- Removed obsolete classes.
- Fixes for Coverity defects.
- Requires G4EMLOW-6.41 data-set.
- High Energy
- G4GammaConversionToMuons: added protection against infinite loop at the
reaction threshold; removed G4ThreadLocal variables; introduced G4Exp,
G4Log and NIST functions; added counters limiting do/while loops.
- G4eeToHadrons, G4eeToHadronsModel,G4eeToHadronsMultiModel: revision
and cleanup of code.
- Low Energy
- Added new model class G4LowEWentzelVIModel.
- G4LivermorePhotoElectricModel: added low-energy cross-section
for water, make cross section const below first ionisation
potential for all elements/materials.
- G4IonParametrisedLossModel, G4LivermoreIonisationModel: added
G4DeltaAngle generator for angular distribution.
- Make G4AtomicTransitionManager become pure singleton shared between
threads, with all run time methods const; Initialise() method to be
called in the beginning of the run.
Adapted classes accordingly.
- Changed Livermore, LivemorePolarized, LivemoreModified and
Penelope Compton to unify the treatment for energy <
LowEnergyLimit(). Null cross-section
and no change in the gamma state.
- G4LivermorePhotoElectricModel, G4LivermoreGammaConversionModel,
G4LivermoreRayleighModel, G4LivermoreComptonModel,
G4IonParameterisedLossModel: added proper deletion of G4PhysicsVectors
at the end of run.
- Use cumulated cross-sections in G4MicroElecElasticModel; use
LinLinInterpolate() instead of LinLog(); better treatment of GenericIon
in G4MicroElecInelastic and G4MicroElecInelasticModel; improved MT
compatibility.
- Change in angular generator to use G4DeltaAngle model.
- Fix in G4MicroElecInelasticModel for potential infinite loop.
- Fixes for Coverity defects.
- Requires G4EMLOW-6.41 data set.
- Muons
- G4MuPairProductionModel, G4MuBremsstrahlungModel: added protection at
initialisation for the case when user artificially reduces high energy
limit of the model. Addressing problem report
#1670.
- Added new class G4TablesForExtrapolator to store EM tables shared between
threads. Imported data from G4EnergyLossForExtrapolator.
- Use G4EmParameters in G4MuPairProductionModel, G4MuBremsstrahlungModel and
G4MuIonisation.
- Polarisation
- G4PolarizationMessenger: fixed Coverity report on non-initialized
members.
- G4PolarizedCompton, G4PolarizedComptonModel: added 'startFromNull'
option as for standard Compton process and add same low-energy
threshold to create secondary particle.
- G4PolarizedCompton: fixed initialisation, added sharing of process
table among threads.
- Use G4EmParameters in G4PolarizedCompton, G4PolarizedGammaConversion,
G4PolarizedPhotoElectricEffect, G4ePolarizedBremsstrahlung and
G4ePolarizedIonisation.
- Standard
- G4WentzelOKandVIxSection, G4WentzelVIRelXSection, G4WentzelVIModel,
G4WentzelVIRelModel, G4eCoulombScatteringModel,
G4hCoulombScatteringModel: added Boolean flag to identify in
physics-list if multiple and single scattering are combined or not;
make consistent definition
of min and max scattering angle for single scattering mode.
- G4WentzelOKandVIxSection: fixed initialisation for low-energy model
(this model is not combined with single scattering); fixed small
inaccuracy for sampling.
- G4WentzelVIModel: changed single scattering factor from 1.5 to 1.25.
Added possibility to compute second momentum; added more accurate
transition to single scattering mode;
define single scattering mode before transformation from true to geometry
step length to avoid many small steps for very low-energy particles;
Refinements of lateral displacement.
- G4BraggModel, G4BraggIonModel: added spin correction.
- G4UniversalFluctuations: adapted code to allow for vectorised use of
random engine for CPU performance improvement; no change to algorithms.
- G4UrbanMscModel: modified ComputeGeomPathLength() method to provide one
single return statement for easier printouts;
Modification in order to improve timing by 1-14%, depending on the
setup and cut; made correction to improve efficiency in 'UseSafety'
mode; fixed numerical problem for the case when range is nearly
truePathLength; refinements of lateral displacement;
added new step limit type UseSafetyPlus;
corrections to improve CPU in the use of random numbers.
- G4DeltaAngle: added implementation of SampleDirectionForShell() virtual
method; improved sampling; added check on length of do/while loop;
comment out warning happens frequently for low-energy e-.
- G4eCoulombScatteringModel, G4hCoulombScatteringModel,
G4IonCoulombScatteringModel: updated initialisation of vector of cuts;
cut for recoil can be changed via '/run/setCut' command.
- G4ComptonScattering: set 'startFromNull' flag to true for all models forced
to zero cross-section for the low energy in the cross-section table.
- G4KleinNishinaModel, G4KleinNishinaCompton, G4HeatedKleinNishinaCompton:
do not sample final state below low limit of the model (default 100 eV);
added protection to do/while loop; added check on secondary energy of both
gamma and electron using internal limit.
- G4HeatedKleinNishinaCompton: use inheritance from G4KleinNishinaCompton.
- G4IonCoulombScatteringModel: fix for non-initialised data (Coverity report).
- G4ASTARStopping, G4PSTARStopping, G4BraggModel, G4BraggIonModel: restore
functionality to access NIST stopping data via chemical formula and not
only by material name.
- G4ASTARStopping, G4ESTARStopping, G4PSTARStopping, G4WaterStopping:
reduced memory churn by using static data; delete physics vectors at
destruction; changed interface to be const
(allowing it to be shared among threads).
- G4BraggModel, G4BraggIonModel: use static pointer to G4*STARStopping
classes, which are initialized once.
- G4PAIxSection, G4PAIPhotData, G4PAIPhotModel, G4PAIModelData:
corrected deletion at destruction; use
spline interpolation; fixed sampling of delta-electrons.
Fixed memory leak in G4PAIxSection.
- G4PairProductionRelModel, G4eBremsstrahlungRelModel: added protection
at initialisation for the case when user artificially reduces high
energy limit of the model. Addressing problem report
#1670.
- G4PEEffectFluoModel: fixed threshold cross section.
- G4GoudsmitSaundersonMscModel: fixed rare division by zero.
- Use G4EmParameters at initialisation in G4eIonisation,
G4hIonisation, G4ionIonisation, G4eBremsstrahlung, G4GammaConversion,
G4ComptonScattering, G4PhotoElectricEffect, G4CoulombScattering,
G4WentzelVIModel,
G4WentzelOKandVIxSection and G4WentzelVIRelXSection.
- G4GoudsmitSaundersonMscModel: fixed displacement computation.
- G4PEEffectFluoModel: make internal array per material and not per
materialCutsCouple, allowing model to be used in unit tests.
- Additional fixes for Coverity defects.
- Utils
- G4VMultipleScattering: added possibility to build extra table for a
model. Minor cleanup for post-safety computation.
Introduced optional mechanism of displacement at geometry boundary.
- G4VEmModel, G4VEmFluctuationModel: defined different pattern to access
to random generator for sequential and MT modes to avoid compillation
problems; random generator pointer becomes available to derived
model classes in order to save CPU.
- G4EmCorrections, G4EmElementSelector, G4VEmModel, G4VEmProcess,
G4VEnergyLossProcess, G4VMultipleScattering, G4ionEffectiveCharge:
general cleanup including: use G4Log; reduced number of divisions;
use std::min and std::max instead of "if" where possible.
- Fix in G4VMscModel::ComputeSafety() pass 2nd parameter to
G4SafetyHelper for optimisation. Added default for 2nd parameter,
compatible with G4SafetyHelper.
- G4VEnergyLossProcess: for sub-cutoff regime added upper limit when
calling G4SafetyHelper.
- G4VSubCutProducer, G4LossTableManager, G4VEnergyLossProcess: added new
interface to allow for production of delta-electrons below production
threshold.
- G4EnergyLossMessenger, G4EmProcessOption: added extra flag and UI
command "/process/em/deexcitationIgnoreCut" allowing to disable check
on production threshold by deexcitation module; added interface methods and
UI command '/process/msc/DisplacementBeyondSafety'.
- G4VEnergyLossProcess, G4VEmProcess, G4VMultipleScattering: fix for
cases of crash in G4WrapperProcess in sequential mode.
Addressing problem report
#1594.
- G4EmSaturation: updated class design, VisibleEnergyDeposition() method
become virtual allowing application of user alternative algorithms.
Added protection to throw exception if e- or proton are not defined
when used in VisibleEnergyDeposition(); do not instantiate G4Electron
and G4Proton by default in InitialiseBirksCoefficient();
moved check on existence of e- and proton from run time to
initialisation (i.e. it is now done only once).
Changed initialisation of G4EmSaturation to work in MT mode.
- G4LossTableManager: helper classes are instantiated only if user
requests via access method.
- G4LossTableManager, G4VEnergyLossProcess, G4VEmProcess: improved
initialisation; moved modifiers for parameters from inline to source
and added extra check on parameter value; throw warnings if parameters
are out of range.
- G4EmCalculator: added public FindProcess() method.
- G4EmCorrections, G4EmElementSelector, G4LossTableManager,
G4VEmModel, G4VEmProcess, G4VEnergyLossProcess: explicit delete
PhysicsTables and PhysicsVectors at destruction.
- G4VAtomDeexcitation: if de-excitation options are defined for the
world G4Region, propagate these options to all G4Regions.
- G4VEmProcess, G4VEnergyLossProcess: fixed model type definition
for secondary particle production (fluorescence, PIXE, splitting);
set step limit to DBL_MAX if
selected model is inactive at such energy - addressing problem report
#1674.
- G4EmParameters, G4EmParametersMessenger: new classes for keeping EM
parameters static for run time.
- G4VEmProcess, G4VEnergyLossProcess, G4VMultipleScattering,
G4EmProcessOptions, G4VAtomDeexcitation: changed initialisation logic,
to use G4EmParameters. Addressing problem report
#1670.
- G4MscStepLimitType, G4EnergyLossMessenger: added new step limit type,
UseSafetyPlus for multiple-scattering.
- G4VEmProcess, G4VEmModel: added access methods for target element and
isotope.
- G4EmConfigurator: set high energy activation limit for a new model not
more than high energy limit (needed for DNA models).
- Fixed Coverity defects.
- Xrays
- G4SynchrotronRadiation: extended model from e+, e- to be universal.
Applicable for all relativistic charged particles.
- Fixes for Coverity defects in G4VXTRenergyLoss.
- Fix in BuildPhysicsTable() for G4Scintillation.
Addressing problem report
#1678.
- Re-engineered UI commands related to optical processes.
Addressing problem report
#1675.
Event
- First implementation of memory reduction mechanism in multi-threading
mode. Adapted General Particle Source classes.
- G4AdjointPrimaryGenerator: added splitting of forward gamma primaries to
improve convergence of Reverse-Montecarlo.
- Fix in G4SPSPosDistribution::GenerateOne() which was not working
correctly for GeneratePointsOnSurface() and GeneratePointsInVolume().
Addressing problem report
#1656.
- Introduced mechanism for not deleting G4Event until visualized by a
different thread.
- Implemented new strategy for GPS messenger: being instantiated as singleton.
UI commands are created in a worker thread, but commands are executed by
the master. Adding G4MUTEXDESTROY for GPS classes.
- Correction in the logic of normalization of sources for GPS.
Initialize mutex for G4SPSEneDistribution class; fix for unitialized array.
- G4GeneralParticleSourceMessenger: change G4ParticleTable::GetIon()
to G4IonTable::GetIon().
- Fixed Coverity defects.
Externals
- Moved USolids module from source/geometry.
Adapted scripts for optional builds against an installation of the
Unified Solids Library
in a different, outside location.
- Removed unused 'tpmalloc' and 'memoryprotection' modules.
- Updated CLHEP module to version 2.2.0.4:
- Converted statics and globals to const, thread-local or atomic
to improve thread safety.
- Introduced CLHEP_THREAD_LOCAL and CLHEP_ATOMIC_INT_TYPE macros
thread_local and atomic keywords.
- Fixed compilation warnings on clang and gcc-4.9 compilers for
MTwistEngine and RanshiEngine.
- Fixed a type mismatch in Utility/memory.h,
reported as compilation warning on Windows/VC9.
- Updated Hep3Vector to move operators 'operator()(int)' to be inline
and removed printout to improve CPU performance.
- Moved definition of pi into SystemOfUnits.h so that its
hard-coded value is not defined twice.
- USolids:
- Added UMultiUnion construct, which enables the simultaneous union
of multiple solids. Uses voxel technique to improve performance.
- Added shapes from the USolids library: UExtrudedSolid, UGenericTrap,
UTessellatedSolid (together with UQuadrangularFacet, UTriangularFacet
and UTessellatedGeometryAlgorithms utility classes) and UTrap.
- UPolyhedra: moved Extent() from protected to public.
- UPolycone: correction in Capacity() for iteration over the number of
sections and in SurfaceArea() for the case opening-angle is less than 2*pi.
Fixes in InsideSection() for openPhi when StartPhi is negative,
in Init() for Polycone defined from ZPlane[0]>ZPlane[N],
and in DistanceToOut() for points starting on internal surface.
- UTet: fixed approximation in Extent().
- Minor fixes of errors reported by Coverity and unit tests in
UTubs,UCons, UTrap, UTet, UTriangular/QuadrangularFacet.
- Removed useless 'inline' specification for pure virtual function
StreamInfo() in VUSolid base class.
- Removed references to G4 types in several classes and some code cleanup.
General Processes
- Biasing
- management:
- Simplified the G4VBiasingOperation interface class:
- Suppressed DenyProcessPostStepDoIt() method, functionality
merged (and generalized) in ApplyFinalStateBiasing().
- Extra argument added as last argument of
ApplyFinalStateBiasing(..., G4bool& forceBiasedFinalState),
allowing to force to return as is the generated final state;
covers the case of the deprecated DenyProcessPostStepDoIt() by
not changing the primary state, changing its weight, and
setting this argument "true".
- Merged ProposeGPILSelection() into
ProvideOccurenceBiasingInteractionLaw(), which has now
the signature ProvideOccurenceBiasingInteractionLaw(const G4BiasingProcessInterface*, G4ForceCondition&).
- generic:
- Introduced G4BiasingProcessSharedData: a class that gathers
information shared by G4BiasingProcessInterface instances attached
to the same G4ParticleDefinition (hold by same G4ProcessManager).
Access to the object is provided by the G4BiasingProcessInterface
methods GetSharedData().
Provides in particular lists of G4BiasingProcessInterface instances
for physics/non-physics biasing.
- Easier access to cross-sections/mean-free-pathes of wrapped
physics processes: this is done by a call to the
PostStepGetPhysicalInteractionLength() of the wrapped physics
processes that anticipates the call by the stepping manager:
the first G4BiasingProcessInterface in the
PostStepGetPhysicalInteractionLength() loop triggers these
calls, and results are cached in each G4BiasingProcessInterface
instance. This makes cross-sections of physics wrapped processes
up to date at the first call to the biasing operator, simplifying
biasing implementations dealing with several cross-section or the
total cross-section.
- Related rewritting of biasing operator G4BOptrForceCollision,
biasing operation G4BOptnForceCommonTruncatedExp and simplified
implementation of interaction law G4ILawCommonTruncatedExp.
- Management
- Added new process type for UCN processes in G4ProcessType.
- Optical
- Implemented full UNIFIED reflectivity probabilities when a dichroic
surface reflects.
- G4OpWLS, G4OpRayleigh: always rebuild the integral-table in
BuildPhysicsTable() method.
- G4OpBoundaryProcess now allowing for Transmittance, Reflectivity and
Absorption on dielectric_dielectric and dielectric_metal boundaries.
Added ConstProperty "SURFACEROUGHNESS". If set, the reflectivity at
dielectric_dielectric surface is angular dependent and calculated from:
exp(-pow((4*pi*theSurfaceroughness*Rindex1*cost1/wavelength),2))
for Rindex1 > Rindex2.
- G4OpRayleigh process now calculates the Rayleigh scattering length for
more materials than just Water (although the Water default is kept).
To do this the user would need to specify the ISOTHERMAL_COMPRESSIBILITY
as a material property and optionally an RS_SCALE_LENGTH (useful for
testing).
- Re-engineered UI commands. Addressing problem report
#1675.
- Phonon
- G4LatticeManager: changed to globally shared object no longer
thread-local. Fixes cases of null-pointer crash in MT mode.
- Scoring
- Introducing G4ParallelWorldProcessStore to allow G4ParallelWorldProcess
objects of all threads to update their corresponding world volumes when
entire geometry is destroyed and rebuilt between runs.
- Transportation
- G4Transportation and G4CoupledTransportation: made static data member
'fUseMagneticMoment' and its set method EnableUseMagneticMoment().
- Added initialization of G4CoupledTransportation data members (fixes
reported Coverity defect). Renamed data member, to make its name
canonical.
Geometry
- Moved solids/usolids module to source/externals.
- Magnetic field
- Moved constructors and simple methods to inline in G4ChargeState
and G4LineSection for CPU speedup.
- Management
- Moved G4SmartVoxelHeader constructor for partial voxels refinements
from protected to public.
- Added G4USolid bridge class from internal USolids module.
Enabled implementation of StreamInfo().
- Navigation
- G4PropagatorInField: added new method GetCurrentEquationOfMotion().
- Added internal method RecheckDistanceToCurrentBoundary() for
G4SafetyHelper, G4Navigator and G4PathFinder, for checking a proposed
displacement (new position) to see if it is in mother, and a proposed
new direction to find potential backtrack to return to mother volume,
or distance to new exit.
- Code cleanup: removed unnecessary G4ThreadLocal in G4ReplicaNavigation.
- G4TransportationManager: added ClearParallelWorlds() method; internal
method to be invoked by G4RunManager when geometry is destroyed and
destroys rebuilt from scratch in the user's application.
- G4Navigator: corrections in the computation of exit normal and small
fix to calculation of stored step endpoint, for steps that do not hit
a boundary. Some code cleanup.
- Added protection in G4ReplicaNavigation::DistanceToOutRad() for potential
rare cases of negative value to sqrt() in equation calculation for
rmin/rmax intersection.
- G4ErrorPropagationNavigator: added GetGlobalExitNormal() method to
match the update of G4Navigator interface made back in release 9.5.
Fix to make normal a unit vector, and fixed Coverity defect to protect
against null 'target'. Addressing problem report
#1679.
- Solids (Boolean)
- Enabled G4MultiUnion wrapper for USolids UMultiUnion structure.
- Solids (CSG)
- Added wrapper for UTrap shape; adapted switch for G4Trap accordingly.
- Solids (Specific)
- Added wrappers for UExtrudedSolid and UGenericTrap; adapted switches for
G4 types accordingly.
- Volumes
- Introduced pool G4NavigationHistoryPool for storage and reuse of
navigation history levels collections.
Disabled use of G4EnhancedAllocator in G4NavigationHistory accordingly.
- Corrected implementation of copy-constructor and assignment-operator
for G4NavigationHistory, to provide exact copy for size of the
histories-level vector.
- Use G4Allocator for dynamic allocations of G4NavigationHistory objects.
- Moved constructors, destructors and assignment operators for
G4NavigationLevelRep to be inline, for CPU optimisation.
Global
- G4MTcoutDestination: by default ignores the printout during the
initialization of each thread, as they are identical to each other and
thus redundant.
- Introduced G4SetPinAffinity() function (available only for LINUX):
"locks" a pthread to the given CPU index. This will be used by run
category as an option to improve performance on high-core counts CPUs.
- New utility function G4Threading::IsMultithreadedApplication()
and G4Threading::SetMultithreadedApplication(bool) used to specify which
type of kernel is instantiated indipendently by build type (e.g. to
distinghuish application migrated to MT or still using sequential run
manager).
- Define G4ThreadLocal to be 'thread_local' in case C++11 standard is
used (enabled through use of flag G4USE_STD11); directly adopt CLHEP
classes in such a case instead of G4MT* wrappers, if keyword is
supported; updated logic in tls.hh header.
- Added forward of cout and cerr in MT to master G4coutDestination
if setup in client derived classes. To be used by special
sessions (e.g. GUI) that want to intercept thread cout/cerr.
- G4Physics2DVector::Retrieve(): added extra protection to fix
Coverity reports in classes which are using 2-D vector.
- Removed use of G4Allocator in G4PhysicsVector; now requiring explicit
deletion of dynamically allocated objects by clients, also in destructors.
- G4PhysicsModelCatalog: added destruction of catalog; modified definition
of singleton to avoid resources leak at exit.
Made it more const; hide operator=() and copy constructor.
- G4Pow: modified definition of singleton to avoid resources leak at exit.
- Added std::flush to receiving of G4MTcoutDestination.
Addressing problem report
#1644.
- Added template class G4TWorkspacePool for generic implementation of
thread-local workspace pools.
- Added methods G4MTcoutDestination::GetPrefixString() and
G4MTcoutDestination::GetFullPrefixString() returning the thread cout
identification prefix respectively without and with thread ID.
Required by visualization.
G4MTcoutDestination now supports special non-worker threads for
which the ID makes no sense.
- Introduced G4MUTEXDESTROY macro in G4Threading.
Fix to G4ThreadLocalSingleton destructor.
Introduced G4Threading enum to hold thread IDs constants.
- G4StatDouble: corrected use 'const' interface for Add() method.
- Added missing G4GLOB_DLL specification for DLL import/export to
G4CacheDetails specialization of cache reference for double.
- G4FPEDetection.hh: restrict FPE trapping to GCC only, excluding CLang.
Addresses problem with Qt generating an apparent FPE deep inside its
code with MacOSX CLang builds.
Added call to 'sigfillset' to clear any signals before any use of sigset_t
in InvalidOperationDetection() for both MacOS and Linux, as suggested in
specifications.
- Fixed Coverity defects.
- Update date of release for 10.1.
Graphical Representations
- Introduced operator<<() for const reference G4AttDefs map.
Deprecated const pointer equivalent.
- G4Scale: added annotation size; set default annotation size to 12 pixels.
- G4VisAttributes: added fMinLineSegmentsPerCircle parameter.
Hadronic Processes
- Made pointers to G4ParticleDefinition use const.
- Cross sections
- Fixed use of inline keyword for methods defined inside
G4ElectroNuclearCrossSection.
- Minor reshuffling of some variables to calculate some variables only
when used to prevent overflows.
- Added protection in destructor of G4ElectroNuclearCrossSection
against NULL pointer entries in cache.
- G4KokoulinMuonNuclearXS does not call anymore explicitly
clearAndDestroy() for the cross-section table, as the underlying
physics vectors are managed by allocators.
- G4ChipsHyperonElasticXS : avoid to exclude Sigma+ in the set of
hyperons which can be treated by Chips elastic scattering.
- G4ChipsAntiBaryonElasticXS: include anti_Omega- in GetPTables().
- Replace all statics by regular class members in Chips cross-sections.
Fixed case of memory leak.
- G4KokoulinMuonNuclearXS: delete physics vectors at destruction; share
data among threads; use G4Exp, G4Log.
- G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS,
G4ComponentSAIDTotalXS, G4UPiNuclearCrossSection: delete physics vectors
at destruction.
- G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS: share data
among threads.
Fixed minor memory leak at the end of job in G4NeutronElasticXS.
- Added missing factories to G4NeutronCaptureXS, G4NeutronElasticXS,
G4NeutronInelasticXS, G4PiNuclearCrossSection.
- Added new interface class G4VCrossSectionRatio.
- Fixing data-races in G4Chips{Neutron,Proton}ElasticXS as reported by
DRD.
- Added G4DiffElasticRatio class managing single diffraction to elastic
cross-section ratio.
- Management
- G4HadronicProcess: added method GetHadronicInteractionList() allowing
access to the list of registered models, removed obsolete access methods
to G4EnergyRangeManager.
- G4HadronicProcessStore: changed to become G4ThreadLocalSingleton,
allowing for automatic destruction of hadronic processes, models, and
cross-sections.
Correction in Clear() for stopping processes being deleted twice (once
because registered as normal processes and once because registered as
extra processes).
Added printout information for deuteron, triton, He3 and alpha.
- G4EnergyRangeManager: some cleaned up; instead of c-array, models
pointers are now stored in STL vectors.
- G4EnergyRangeManager: added new method GetHadronicInteraction()
which uses G4HadronicInteraction::IsApplicable().
- G4HadronicProcess: replaced old method of G4EnergyRangeManager
(still there but deprecated) with new one.
Moved computation of the kinetic energy per nucleon (in the case of ion
projectile) from G4HadronicProcess to G4EnergyRangeManager.
- G4HadronicProcessStore::PrintHtml(): include ProcessDescription
inline in physics lists description.
- Added BuildPhysics() method for initialisation of models before run;
modified G4EnergyRangeManager and G4HadronicProcess.
- G4HadronicProcess: added creator model type to secondary. Clearing final
state before resample interaction due to energy balance violation.
Fixed final track status for some models like G4WilsonAbrasionModel.
Add check for dynamic mass in CheckResult(), to correspond to PDG mass
within ~10%.
- G4HadronicProcessStore: fixed computation of cross-sections for ions.
- Models Management:
- Added DeExciteModelDescription() to G4VPreCompoundModel and provided
default implementation.
- G4HadronicInteractionRegistry: added new method FindAllModels().
- G4HadronicInteraction: removed unnecessary dependency on
G4ReactionDynamics.
- Added BuildPhysics() method for initialisation of models before run;
modified G4HadronicInteraction.
- Processes
- Added new G4UCN* processes and utility classes.
- G4HadronElasticProcess: replaced old method of G4EnergyRangeManager
(still there but deprecated) with the new one (which uses IsApplicable()
from G4HadronicInteraction).
- G4HadronElasticProcess: added low-mass diffraction option
(still in development and switched off by default).
- Added G4He3InelasticProcess class.
- Stopping
- G4HadronStoppingProcess: in destructor do not de-register if Boolean
flag G4HadronicProcess::deRegister is true, this is needed to cope
with the modified thread-local-singleton G4HadronicProcessStore.
- G4HadronStoppingProcess: replaced old method of G4EnergyRangeManager
(still there but deprecated) with new one (which uses IsApplicable()
from G4HadronicInteraction).
Use G4PhysicsModelCatalog to label tracks.
- Removed obsolete classes G4MuonMinusCaptureAtRest, G4StopElementSelector
and G4MuMinusCaptureCascade.
- Utility
- Removed obsolete G4ReactionKinematics and G4ReactionDynamics classes.
- G4HadFinalState, G4HadSecondary, G4ReactionProduct: added creator
model type to secondary, moved simple methods to inline.
- G4HadSecondary: added creator model type.
- Models Utilities:
- G4ExcitedString: improved to treat a non-excited string when it is given
as a KineticTrack, especially to give its 4-momentum.
- G4Fancy3DNucleus: removed unnecessary thread-local allocations in
ChoosePositions(). Replaced by const data.
- G4ExcitedString: fixed a memory leak.
- G4Fragment: added model type.
- ABLA
- Added model-description methods to the interface.
- Fixes for Coverity defects.
- Abrasion
- G4WilsonAbrasionModel: use GetZ_asInt() and GetA_asInt().
- Bertini Cascade
- Added new pi-nucleon 2-body angular distributions: G4PipP2PipPAngDst,
G4PimP2PimPAngDst, G4Pi0P2Pi0PAngDst and G4PimP2Pi0NAngDst.
Below 2.6 GeV, distributions taken from SAID phase shift calculations
with Coulomb phase removed. Above 2.6 GeV, taken from data.
- G4CascadeInterface: Fix possible infinite-loop condition where
(nTries >= maxTries) and momentum balance fails. Configure
PreCompound vs. BERT-internal de-excitation explicitly in ctor based
on envvar flag.
- G4ElementaryParticleCollider: Protect against rare failure of
G4GDecay3 by checking for null vector return. Add support for
absorbing a pion with a single nucleon (via a charge exchange
interaction, e.g. pi- p -> n), with momentum conservation handled
by recoiling against the nucleus. This is intended to improve the
match to data for pi- capture. Pion-nucleon absorption is disabled
by default, with an envvar/macro flag to enable.
- G4CascadeFinalStateAlgorithm: Use ".c_str()" in diagnostic outputs,
to avoid IBM/xlC compiler error. Addressing problem report
#1558.
- G4NucleiModel: In boundaryTransition(), switch sign of "dv" so that
particle sees a barrier (next_zone potential > current potential) as
positive. In generateParticleFate(), pass (A,Z) to EPCollider for
possible nuclear-recoil calculations.
- G4PreCompoundDeexcitation: Use shared instance of
PreCompound by fetching from hadronic registry; register
G4ExcitationHandler properly if local instance required.
- Change several constructors' argument from "const char*"
to "const G4String&" to avoid memory deallocation problems.
- Internal improvements for multithreading, to avoid static
initializers, and to use G4AutoDelete for all singletons.
- Binary Cascade
- Extended model-description to cover de-excitation model.
- Improved handling of destroyed nucleus, solving issues with light nuclei
in BinaryLightIonReaction, like He in H. Made to conserve energy and
momentum for final state in case target nucleus is destroyed, taking
into account momentum transfered to nucleus, and finally forcing
conservation.
- BinaryLightIonReaction: handle currentA/Z consistently with list of
spectators. Added optional debugging output.
- BinaryLightReaction: momentum correction wrong in case of no Fragment,
but primary projectile nucleon(s) in final state (ex. d + Pb -> X, where
neutron or proton of deuteron did not interact).
- De-excitation
- G4NuclearLevelStore: use G4ThreadLocalSingleton pattern providing proper
deletion of photon evaporation instances at the end of run.
- Improved design of FermiBreakUp and fixed decays of "unstable" Fermi
fragments;
reduced memory churn in several classes; optimized code reducing number
of new/delete of intermediate objects; for that, slightly modified
interface to evaporation channel; cleanup logic and implementation;
G4FermiConfigurationList: reduced memory churn by reusing vectors which
are members of the class; improved and verified computation of
probabilities; made public methods const;
G4FermiConfiguration, G4UnstableFermiFragment: removed unused members;
made all methods const.
- G4FermiFragmentsPool: made pure singleton class, all methods and data
const at run time, no decay of exotic states. Added method IfApplicable()
for fast check if FermiBreakUp is applicable to a given excited fragment;
fixed energy
or several excited levels to be the same in the gamma level database;
added DumpFragment() and Dump() methods.
- Removed obsolete class G4FermiConfigurationList.
- G4ExcitationHandler: fixed a problem in isomer production that caused
energy non-conservation at the level of 1 MeV;
added protection against abnormal fragments;
added ModelDescription() for automatic documentation.
- Introduced an INCL++-specific fission level-density parameter class;
set af/an parameter for INCL++ to 1.02 for all nuclei.
Moved theChannels and theChannelFactory to the base class, since they
seem to be common to all classes derived from G4VEvaporation.
Some code refactoring.
- Cleanup and redesign of photon evaporation.
- G4NuclearLevelStore fixed wrong deletion of user data at exit.
Addressing problem report
#1684.
Ensure that the same level is not uploaded twice when
running in MT mode.
- G4NuclearLevelManager: removed unnecessary data members to reduce
memory consumption.
- G4ContinuumGammaTransition, G4ContinuumGammaDeexcitation,
G4DiscreteGammaDeexcitation, G4DiscreteGammaTransition,
G4VGammaDeexcitation: cleanup selection of continuous or discrete
transition; fixed computation of probabilities.
- G4DiscreteGammaDeexcitation, G4DiscreteGammaTransition: fixed internal
conversion for the case when transition energy is nearly electron bound
energy.
- G4VGammaDeexcitation: removed unneeded extra call to CanDoTransition()
inside DoChain() method.
- G4ContinuumGammaTransition, G4VGammaDeexcitation: coherently use same
energy tolerance of 2 keV.
- GEN probabilities: verified nuclear level energies using
gamma level data.
- G4B10GEMProbability, G4B11GEMProbability: changed nuclear level energies
to be the same as in the gamma level database.
- G4VEvaporationChannel, G4GEMChannel, G4GEMProbability: added Dump()
method. Added DumpLevels() method to G4NuclearLevelManager and
G4NuclearLevel.
- Elastic scattering
- Added new dipole model class G4LEHadronProtonElastic.
- New class G4hhElastic, implementation of the qQ-model with springy
Pomeron for hadron-hadron elastic scattering.
- G4LEnp, G4LEpp: added SampleInvariantT() method and inheritance
from G4HadronElastic; implemented SampleT() method in G4LEnp.
Fix in G4LEpp for incorrect use data array, used GetInvariantT()
inside ApplyYourself().
- G4NuclNuclDiffuseElastic: fix to nuclear radius (which was zero);
fixed deletion in destructor.
- Fix in G4DiffuseElastic.
- G4LEppData, G4LEpp: removed data with Coulomb correction and
corresponding code because they do not work properly and
provide double counting with EM.
- G4DiffuseElastic and G4NuclNuclDiffuseElastic: use the average nuclear
weight for each element to compute the table of angles, in order to
improve the reproducibility.
- G4DiffuseElastic, G4NuclNuclDiffuseElastic, G4hhElastic, and
G4ChargeExchangeProcess: proper deletion of physics vectors.
- G4DiffuseElastic: extension down to 0.1 MeV, mainly for neutrons.
- G4hhElastic: changes to combine with low mass diffraction.
- Added G4LMsdGenerator class for low mass single diffraction dissociation.
- Electromagnetic dissociation
- G4EMDissociation: replaced G4ParticleTable::GetIon() with
G4IonTable::GetIon().
- Fission
- Updated interface in G4FissionLibrary along with changes in neutron_hp.
- High Energy Theoretical
- Updated ModelDescription(); updated text and recurse to propagate.
- Im_r_matrix
- Do not delete physics vector explictly in destructors since they are
managed by allocators in G4XResonance, G4XAnnihilationChannel,
G4XNNElasticLowE, G4XnpElasticLowE and G4XnpTotalLowE.
- G4VCrossSectionSource: removed unused GetTransversePionMass() and
GetMinStringMass() methods.
- G4VScatteringCollision, G4ConcreteN*: fixed leaks in destructors.
Added protection against double delete.
- G4Clebsch: removed unused GetLogs() method.
- G4XResonance, G4XNNElasticLowE, G4XAnnihilationChannel, G4XnpTotalLowE,
G4XnpElasticLowE: delete physics vectors at destruction.
- Sharing of static tables among threads in G4Scatterer.
- Overall improved thread safety; marked as static some "const" data.
- Fix for data-race issue in G4CollisionComposite, when shared there
are concurrent accesses to G4CollisionBuffer. The simplest solution
is to add a lock on a mutex.
- Fix for data race detection by DRD to correctly destroy mutex after
initialization.
- INCLXX
- Updated to INCL++ v5.2.8.
- Extending INCL++ up to 15-20 GeV incident energy.
- Added plumbing for tallying reactions treated by INCL++.
- Activated use of adjusted fission parameter in G4ExcitationHandler.
Large reduction in memory churn due to allocation pools; bringing
some speed-up (a few percent).
- Fixed crash in p+He2 reactions.
- Added AvatarDumpAction class.
Fixed bug that caused a large overestimation of the compound-nucleus
spin in "fusion".
Updated reference in G4INCLXXInterface::ModelDescription().
- Fixes for Coverity defects.
- Lend
- Protection for potential division by zero in tpia_misc and
tpia_kinetics.
- Replaced use of obsolete FindIon() with GetIon() in G4LENDCapture,
G4LENDModel, G4LENDInelastic and G4LENDElastic.
- Turn off license banner in G4LENDManager.
- Lepto-nuclear
- Reuse G4PreCompoundModel and G4ExcitationHandler objects instead
of instantiating new local ones; do not delete objects which follow
the G4HadronicInteraction interface to avoid double deletion.
- Neutron High Precision
- Fixed rare core dump caused by angular parameters being all zero;
the angular parameters of the first and last secondary energy
in ThermalScattering/Inelastic/FS have all zero elements.
- Uncomment out para and ortho hydrogen and liquid and solid methane
in G4NeutronHPThermalScatteringNames.
- G4NeutronHPElasticData, G4NeutronHPInelasticData, G4NeutronHPCaptureData,
G4NeutronHPFissionData, G4NeutronHPJENDLHEData: proper deletion of
physics vectors at destruction.
- Removed unused header file G4NeutronHPPhotonXSection.hh.
- Adding information of data source to each data file, according to
new data set.
- Introducing ThreadLocalManager for storing information related to each
individual reactions. Sharing cross-section data, final state and thermal
scattering final state data among threads.
- Fixed event-reproducibility issue in multi-threaded mode.
- Adjusted A and Z in the case of mismatch between selected data and target
nucleus in G4NeutronHPInelasticBaseFS and G4NeutronHPInelasticCompFS.
- Fixed bug in G4NeutronHPElasticFS.
Addressing problem report
#1686.
- Fixed potential memory-overwrite problem in G4NeutronHPInterpolator
Addressing problem report
#1689.
- Fixed boundary-checking error in G4NeutronHPProduct and
G4NeutronHPContAngularPar.
- Fixed problem caused by QNAN on Windows in G4FPYSamplingOps.
- Fixed use of BuildPhysicTable() in G4NeutronHPThermalScattering.,
G4NeutronHPCapture, G4NeutronHPElastic, G4NeutronHPFission and
G4NeutronHPInelastic.
- Requires new data set G4NDL-4.5.
- Particle High Precision
- New module for treatment of low energy charged particles,
based on neutron_hp. This is still under testing, but it is aimed
to replace neutron_hp in the future.
- Parton-String
- Fix in G4VPartonStringModel, occuring when debugging with residual
nucleus mass number equal to zero.
Improved code to treat an ExcitedString object when it is a hadron
stored as a track, needed for a correct processing of quark-exchange
processes in FTF model.
- Fix on the positions of the increment of the variables "StateQ++" and
"StateAQ" in G4LundStringFragmentation. This fix increases the
production of neutral pions, while decreasing the production of
charged pions.
- G4FTFModel: factorized the longest method PutOnMassShell();
no changes in results for hadron-nucleus, nucleus-nucleus,
anti_baryon-nucleus and light anti_ion-nucleus interactions.
- Re-tuned parameters of G4LundStringFragmentation; fragmentation function
F(qq->B+anti-quark) set to Z^2. Fix for anti-diquark-diquark strings.
- Code cleanup in G4InteractionContent, G4VParticipants, G4VSplitableHadron.
Added debugging option in G4VPartonStringModel.
- Fixed bug in G4DiffractiveSplitableHadron where baryons are subdivided
into quark and diquark. Introduced suppression of uu-diquark in proton,
based on the theory of QCD instantons: di-quarks with identical quarks
are suppressed by 50% (corresponding to a probability of 1/6), except
for baryons like Delta++ (uuu), Delta- (ddd) and so on.
Re-tuned parameters of FTF model (in the class G4FTFParameters) in
accordance with this assumption.
- Fixed bug in G4DiffractiveExcitation responsible for asymmetric
rapidity distributions in pp-interactions.
- G4VLongitudinalStringDecay: mixing between the vector mesons rho0 and
omega have been changed from 50% (rho0) - 50% (omega) to 100% (rho0) - 0%
(omega), in order to reduce the pi0 production (which was increased
by the bug-fix on G4LundStringFragmentation).
Little effects are seen in thin-target, while there are significant
effects in hadronic showers in calorimeters.
- Tuned parameters and string fragmentation functions of
G4LundStringFragmentation, assuming that the weight of uu-diquarks in
protons is 1/6. Improved treatment of string decay direction in
G4FragmentingString and G4LundStringFragmentation.
- Improved EnergyAndMomentumCorrector in G4ExcitedStringDecay.
- Fixed bug connected with annihilations of anti-delta isobars:
G4FTFAnnihilation can now treat correctly these processes.
Applied fine tuning of parameters for Pi+P interactions.
- Fixed problem of missing treatment of involved nucleons in the case
of nuclear projectile in FTFmodel. Fixed memory leaks.
- Fixed problem connected with multiple quark exchanges and
string excitations in hadron-nucleus interactions: the status of
such hadrons was set incorrectly. Also fixed the determination of
of the 4-momentum of anti-alpha at low energies.
- Fixed bug connected to abnormal stable meson masses: change of masses
of particles in quark-exchange processes is now improved.
- Fixed problem of energy-momentum non-conservation in Xi-nucleus
interaction; energy/momentum is now conserved, but an accurate
treatment of minimal diffractive masses for strange particles is
still needed.
- Fixed charge non-conservation for meson-nucleus interactions in
G4DiffractiveExcitation, caused by quark exchange.
- G4DiffractiveExcitation: use pole mass + 5*width as maximum mass for
resonances, to avoid cases of energy-momentum non-conservation.
- G4ExcitedStringDecay: restored initial string system in the case
that the hadronization fails.
- G4LundStringFragmentation: set fragmentation functions for qq -> B
as f(z)~ Const for all baryons and fixed charged baryon number
conservation for K-nucleus interactions.
- Essential improvement of QGS hadronization. Fragmentation functions of
quarks and di-quarks are close to Kaidalov's and Shabelskii's ones.
Ionk's algorithm is inserted for sampling light-cone momentum fraction, z.
First tuning of fragmentation parameters (further improvements are
expected after the revision of the QGSM string creation algorithm).
- Improved algorithm of G4QGSMFragmentation::SplitEandP, now faster.
- Pre-equilibrium
- Added DeExciteModelDescription() to G4PreCompoundModel.
- G4PreCompoundIon: cleanup transition probability computation.
- G4PreCompoundAlpha, G4PreCompoundHe3, G4PreCompoundTriton: fixed
FactorialFactor() method; corrected denominator.
- QMD Reaction
- Updated to use G4CrossSectionDataSetRegistry. Removed inclusions of
obsolete cross-section headers.
- Radioactive Decay
- G4RadioactiveDecayMode: added double beta- decay and double beta+
decay to enum.
- G4RadioactiveDecay: added dummies for double beta- decay and double
beta+; long ground state lifetimes with no decay scheme.
Addressing problem report
#1560.
- Added proton decay. Coded mimicking the alpha decay.
The word in the data file is "Proton".
Dummy double proton decay "Proton2" added for consistency with
the double beta decays.
- G4RadioactiveDecay::GetMeanFreePath(): tau = -1001 now indicates a
nuclide with very short lifetime or that was not listed in G4NuclideTable.
In that case, set pathlength to DBL_MIN.
Addressing problem report
#1582.
- Use 'const' qualifier for local variables and arguments where applicable.
- G4NuclearDecayChannel: removed upper limit on number of gammas produced
by G4PhotoEvaporation. In DecayIt(), allow up to three fragments from
G4PhotoEvaporation::BreakUp. This fixes an exception seen when there is
more than one gamma.
Check number of gammas returned from G4PhotoEvaporation and take different
action in each case of 0, 1, or 2 gammas.
- Added new class G4AlphaDecay to streamline inheritance chain and use Q to
calculate decay product energies.
Use G4AlphaDecay instead of G4AlphaDecayChannel in G4RadioactiveDecay.
- G4RadioactiveDecay: fixed memory leak.
- Requiring new data set RadioactiveDecay.4.2.
- RPG
- G4RPGInelastic: defined GHADLISTSIZE, now needed after removal of
class G4ReactionDynamics.
Intercoms
- G4UIparameter: improved dignostic message of CandidateCheck().
- Introducing "/control/cout/ignoreInitializationCout" UI command to
omit G4cout from threads during initialization, as they should
be identical to the masther thread.
- Introducing new UI commands /control/doif and /control/getVal.
- Extended use of "/control/macroPath" UI command to now also apply to
macros called inside a loop.
- Removed unnecessary source file G4AnyType.cc, as all symbols are inlined.
- G4UImanager: added method GetThreadCout(), to get the destination
buffer of the current thread.
- Defined accessor GetThreadId() and moved related data to private.
- Added mechanism to make such that UI commands defined in a worker thread
are registered to the G4UImanager of the master thread.
- Added G4cout support for generic (non worker) threads via new a method:
G4UImanger::SetUpForSpecialThread(G4String prefix).
- Renamed few inline method parameter names in G4GenericMessenger to
fix compilation warnings for shadowing.
Interfaces
- G4UIQt:
- Changed help tree splitter from vertical to horizontal.
Added method to display text in HTML.
- Changed help display to render parameters in a QTableView.
- Changed window expanding policy. Now when expanding main window, it
will keep the size of the viewer.
- When choosing "pick" icon, it will now apply picking to true.
- Fixed a Qt function that was only defined for Qt5.
- Changed UI look by moving "search" at the top of the G4cout area.
- Added multi-threading outputs; added a filter on thread in output.
- New cout internal management.
- Added SetViewerFirstPageHTMLText() method to be able to set the first
tab widget text. This could be used to make some kind of a start page
to display useful informations.
- Fixed Dock output panel on the bottom right of window.
- Minor change in text for the first page widget
- Fixed problem in coloring cout sometimes after a cerr was send.
- Set the focus on the command line after a command is sent.
- Fixed problem when closing the last tab. Now the first page is displayed.
- Fixed bug when running with Qt-4.6.
- Get the thread prefix string directly from G4MTcoutDestination.
- Added methods GetCoutWidget(), GetUserInterfaceWidget(), GetViewersWidget().
- Renamed SetViewerFirstPageHTMLText() to SetStartPage().
- Added new method AddViewerTab(), allowing users to define their own tab.
- Added new method AddViewerTabFromFile(), to add a tab in the viewer from
a file. Added ability to have HTML tags inside the file given by
AddViewerTabFromFile(). This will allow to include for example a README
file with an or other HTML tags.
- Activate Help Widget at the beginning instead of sceneTree.
- Moved clear G4cout icon on the right side.
- Set viewer text tab "read only".
- Added left panel tab tooltips.
- Changed text on StartPage.
- Removed viewer size parameter, as no longer used.
- For all methods needing a file, instead of getting the file from current
path, look for it in MacroPath.
- When closing a dock panel, hide it instead of removing it. Prevent from
null pointer exception.
- Set focus on command line at the beginning.
- Recreate help tree each time we creating a new viewer.
- Display G4Exception warning messages in G4cerr an fixed G4Vis
thread number in G4cout.
- Use FindMacroPath() instead of GetMacroSearchPath().
- Fixed recursive calls caused by qApp->processEvent().
- Fixed a problem with Wt include names on case sensitive systems.
- Attempted fix for the cout widget not updating in real time when run
progresses; update is more frequent now.
- G4UIWt:
Materials
- New classes G4UCNMaterialPropertiesTable and G4UCNMicroRoughnessHelper
for microroughness probability values and calculation of microroughness
in materials.
- G4Material: improved material printout. Addressing problem report
#1563.
- Make G4Material copy constructor private.
- Replaced size_t with int type for 'fNumberOfIsotopes' in G4Element
and 'fNumberOfComponents' and 'fNumberOfElements' in G4Material.
Adapted code accordingly.
- G4NistmaterialBuilder: added new material G4_lBr, as STP Bromine is
mainly liquid while in NIST DB it is described as a gas.
Data taken from: http://en.wikipedia.org/wiki/Bromine.
Addressing problem report
#1607.
- G4SandiaTable: modified low limit in GetSandiaCofPerAtom()/Material().
Modified low limit for water and code clean-up.
Made run time methods const, as materials are shared
between threads; added new methods GetSandiaCofWater(),
GetWaterEnergyLimit() and GetWaterCofForMaterial().
Added proper deletion of G4PhysicsVectors at destruction.
- G4ElementData, G4IonStoppingData: proper deletion of G4PhysicsVectors
at destruction.
- G4IonisParamMat: added initialization of G4DensityEffectData in
the default constructor.
Particles
- Updated particle properties to PDG-2014.
- Compute life time from mass width for pi0 and sigma0.
Addressing problem report
#1570.
- Fix in G4ExcitedMesonConstructor (missing pi + eta mode in DecayTable).
- Added new constructor with dynamical mass in G4DynamicParticle.
G4PhaseSpaceDecayChannel takes in to account mass width of daughter
particles and gives the dynamical mass according to Breit-Wigner
distribution. Added daughters_width in G4VDecayChannel.
Addressing problem report
#1629.
- Introducing PrepareNuclideTable() method in G4IonTable to allow creating
G4NuclideTable object without preloading any ions.
- Removed unused class G4IsomerTable; G4NuclideTable is now used.
- Introduced workspace class for particle definition
Revised G4PDefSplitter class to add utility methods.
Revised G4ParticlesWorkspace to use new class G4TWorkspacePool.
- Removed FindIon/GetIon() obsolete methods from G4ParticleTable.
- Fix in G4ParticleTable to make sure all dynamically created ions are
deleted at the end of the program. Fixed G4IonTable to delete thread-local
string objects.
Persistency
- GDML:
- Added implementation for import/export of Multi-Union (G4MultiUnion)
structures (NOTE: usable only for USolids classes).
Requiring updated GDML schema for multiUnionNode entity (GDML
version 3.1.1). Updated internal schema to reflect new GDML schema
release 3.1.1, for updated gdml_solids.xsd module.
- Correction to G4GDMLReadMaterials::MixtureRead() to revert order of
reading (first elements then materials) for mixtures by fraction;
corrects referencing for cases when elements and materials may carry
the same name (case reported by ATLAS).
- Fix in G4GDMLMessenger for UI command "/persistency/gdml/clear", to
invoke G4RunManager for cleanly delete entire geometry.
- Fixed typo in G4GDMLWriteSolids::BooleanWrite() for the case of
repeated displacements of the reference solid in the same Boolean
operation (issue reported by ATLAS).
Physics lists
- Replaced explicite instantiation of cross-sections by calls
to G4CrossSectionDataSetRegistry using factory approach.
- Removed inclusions of obsolete cross-section headers.
- Builders:
- In all builders, new instances of G4PreCompoundModel
and G4ExcitationHandler are no longer created in order
to reduce the memory footprint.
- Avoid deleting of processes, models and cross-sections in
destructors of builders.
- Convert G4INCLXXPiKBuilder to G4INCLXXPionBuilder.
Set the maximum energy for G4INCLXXPionBuilder to 20 GeV.
Added G4QGSPKaonBuilder.
- Added G4QGSPLundStrFragmProtonBuilder outfitting QGSP model with
G4LundStringFragmentation (instead of the G4QGSMFfragmentation);
this appears to give better agreement with data at the energies above
100 GeV (tested for proton+C).
Set minimum energy for G4QGSPLundStrFragmProtonBuilder at 100 GeV.
- Added dependency to 'de_excitation/fission' module in build scripts,
now required by INCLXX.
- Added builders for particle_hp physics list.
- Updated CMake scripts.
- Constructors:
- electromagnetic:
- G4EmDNAPhysics_option1: added new constructor for DNA physics.
- G4EmLowEPPhysics: added G4LowEWentzelVIModel.
- G4EmLowEPPhysics, G4EmStandardPhysics_option3,
G4EmStandardPhysics_option4, and G4EmLivermoreStandardPhysics:
cleanup gamma and e- models instantiation.
- Added G4EmLEPTSPhysics and G4EmDNAChemistry constructors.
- Added G4EmStandardPhysicsSS, G4EmStandardPhysicsWVI constructors.
- Use G4EmParameters used in all EM constructors.
- G4EmStandardPhysics_option3,4: use G4GeneratorBS angular generator
for bremsstrahlung.
- G4EmStandardPhysics_option4: use RangeFactor = 0.02 (instead of 0.01);
use G4DeltaAngle angular generator for all ionisation models.
- Re-engineered UI commands related to optical processes and created
in G4OpticalPhysics. Addressing problem report
#1675.
- Fixed bug responsible for bounds-checking failures in optical tests.
Improved printing in G4OpticalPhysics::PrintStatistics().
- Reviewed initialisation of chemistry in DNA constructors and extended
elastic scattering models to low energies to avoid killing e-.
- factory
- Added macro for declaring physics constructors in a namespace
to factory.
- Added methods for G4PhysicsConstructorRegistry to report known
constructors.
- gamma_lepto_nuclear:
- Switched on muon-nuclear by default.
- Implemented thread safe UI messenger.
Addressing problem report
#1606.
- G4BertiniElectroNuclearBuilder: fixed case of double deletion.
- hadron_elastic
- G4HadronHElasticPhysics: improved version of elastic, used
temporarily only in FTFP_BERT_TRV for testing; it may become
in the future the default in all physics lists.
- Fixed cases of inline static methods in G4HadronElasticPhysics.
- G4HadronHElasticPhysics: for proton, neutron, pion+ and pion-
elastic scattering introduced the Chips model on Hydrogen, while
kept G4DiffuseElastic for all other elements.
To ensure reproducibility, use a different instance of G4DiffuseElastic
for each particle type (p, n, pi+, pi-); disable G4NuclNuclDiffuseElastic,
using Gheisha elastic model for light ions (nothing else is available
for heavy ions).
- G4HadronHElasticPhysics: included diffraction dissociation process.
This is under development and switched off by default.
- Added G4HadronElasticPhysicsPHP for particle_hp physics list.
- hadron_inelastic:
- Modified switching energies and models in HadronPhysicsINCLXX.
- Added constructor for NuBeam and Shielding.
- Including constructors for NuBeam and Shielding.
Extended Shielding code to also include ShieldingM variant.
- Added protection in all destructors to avoid double deletes.
- In G4HadronPhysicsNuBeam, adjust BERT/FTF overlap from 7-10 GeV to
3-3.5 GeV, better for light targets.
- Fix in destructor of G4VHadronPhysics to check validity of
pointer.
- Added dependency to 'de_excitation/fission' module in build scripts,
now required by INCLXX.
- Added G4HadronPhysicsQGSP_BIC_AllHP for particle_hp physics list.
- ions:
- Reuse the G4PreCompoundModel instance, instead of creating new
local instances in the ion physics classes, in order to reduce
the memory footprint.
- Added dependency to 'de_excitation/fission' module in build scripts,
now required by INCLXX.
- limiters:
- G4GenericBiasingPhysics: fixed bug of PhysicsBias() which was not
taking into account the vector of selected processes (but biasing
all physics processes).
- Lists:
- Added experimental physics lists ShieldingM and NuBeam.
ShieldingM is based on Shielding with the Bertini to FTFP model
transition region at 9.5-9.9GeV. NuBeam is based mainly on
FTFP_BERT with the Bertini to FTFP model
transition region at 3.0-3.5GeV for protons, pions and kaons
and uses QGSP+G4LundStringFragmentation
above 100GeV (with FTFP used up to 101GeV) for protons
- FTFP_BERT_TRV: use (temporary) G4HadronHElasticPhysics in order
to allow testing of improvements in elastic.
- FTFP_BERT_HP, QGSP_BIC_HP, QGSP_BERT_HP: set cut on proton to
zero to simulate all recoils from elastic scattering.
- Extended Shielding code to also include ShieldingM variant.
- Increased cuts in LBE physics list to 1 micrometer (from 1 nanometer).
Fixed bug in LBE addressing problem report
#1591.
- Removed Bertini Cascade from alphas, deuterons and tritons and replaced
with BinaryLightIonReaction.
- Replaced G4MuonMinusCaptureAtRest with G4MuonMinusCapture.
- Added QGSP_BIC_AllHP particle_hp physics list.
Please note that particle_hp is still under development, and this
new physics list is meant only for testing purposes.
- Added g4alt::G4PhysListFactory as user extensible list factory; work done
via G4PhysListRegistry and G4PhysListStamper classes (not yet activated).
- Modify LBE physics-list constructor to accept verbosity as optional
argument as the other physics-lists.
Run
- New functionalities for MT:
- Introduced pin affinity functionalities.
- Added new option in MT mode to set random number seeds only once
per run per worker thread.
- Introduced workspace for physics-list split-classes.
Enable use of G4ParticlesWorkspace for particle-definition split-class.
- Introduced /run/useMaximumLogicalCores UI command.
- Introducing mechanism to not delete G4Event until visualized by another
thread; fixed cleaning up of kept events when visualization thread keeps
events.
- Increase verbosity in case of NULL process-manager pointer in
multi-threaded mode.
- Worker threads return G4RunManagerKernel::SetPhysics() method
just after setting physics-list pointer (e.g. no setup needed).
- G4VUserPhysicsList::SetCuts() is no longer called by worker threads
during physics initialization.
- G4RunManagerKernel::RunTermination() workers do not
call G4ProductionCutsTable::PhysicsTableUpdated().
- Implemented G4WorkerRunManager::TerminateEventLoop() in worker and avoid
data-race on shared resources.
- G4WorkerThread::UpdateGeometryAndPhysicsVectorFromMaster(): removed
mechanism of copying pointer of region that is not needed.
- Fixed data-race condition in G4RunManagerKernel when FPE is active.
Only master thread installs FPE handler.
- Handling of ions:
- Avoid pre-creation of all ions in sequential mode.
Preloading ions is now optional.
- Other changes (non MT related):
- Modified G4AdjointSimManager, G4AdjointSimMessenger and
G4AdjointPrimaryGeneratorAction to add forward primary splitting
for Reverse MonteCarlo.
- Explicitly invoke deletion of new G4NavigationHistoryPool instance
in G4RunManagerKernel at job's end.
- G4VScoringMesh is cleaned when geometry is rebuilt from scratch.
G4ParallelWorldProcess objects of all threads now update their
corresponding world volumes when the entire geometry is destroyed
and rebuilt between runs.
G4TransportationManager is cleaned as well when geometry is rebuilt
from scratch. Addressing problem report
#1665.
- Fix in G4VUserPhysicsList to alternate cut value for the region
sharing the default cut value.
- Fixed logic at G4RunManager::RunTermination() for keeping events.
- Fix in G4RunManager in case macroFile in beamOn is " ".
- Fixes for Coverity defects.
Track & Tracking
- Corrections in G4AdjointSteppingAction and G4AdjointTrackingAction
to have the treatment of adjoint and forward tracks in the same event.
- Removed non const requirement when using G4PhysicsModelCatalog getters
and moved implementations to .icc file.
Visualization
- Management
- Introduced G4VGraphicsSystem::fileWriter to allow special informational.
- Added run ID to G4Atts of user drawn trajectories.
- Added '/vis/touchable/dump' command; dumping G4Atts to G4cout.
- Added parameter to '/vis/scene/add/axes' command to suppress
annotations.
- /vis/specify and /vis/scene/add/logicalVolume: added flag for
drawing/suppressing axes.
- G4VisCommands: Fixed deprecated call to GetAttDefs.
- Fix for NULL pointer in G4VSceneHandler.
- Fixes for management of cout/cerr messages.
- Added text size control through '/vis/set/textSize'
for '/vis/scene/add/axes and '/vis/scene/add/scale' commands.
- Changed default text size to 12 pixels.
- Added /vis/scene/add/extent command, which adds a dummy model with given
extent to the current scene, to be used to provide an extent to the scene
even if no other models with extent are available. For example, even if
there is no geometry.
- G4VisManager: split out some code in sequential version of EndOfEvent
in preparation for re-use in multi-threading mode.
- G4VisManager: reset event reviewing flag at end of run in MT mode.
- G4VisCommandsViewerSet: fixed bug affecting file-writing viewers.
- G4VisCommandsSceneAdd: with command "/vis/scene/add/scale", add full
list of parameters to GlobalDescription of scale model. This is so that
scales with different parameters can be added to a scene without being
caught in the "model already exists" trap.
- Fixed spelling mistake in messages.
- Fixed Coverity defects.
- Modeling:
- Introduced G4TouchableDumpScene and G4PseudoScene.
- G4TrajectoriesModel: Add run ID.
- G4PhysicalVolumeModel: improved constructor.
- Added text size for axes labels.
- Get appropriate run manager in MT mode.
- G4TrajectoriesModel: added protection against incorrect casting if
G4RunManager base class is used in multi-threaded mode.
- Fukui Renderer
- DAWNFILE declared as G4VGraphicsSystem::fileWriter.
- GMocren
- Fixed memory leak in G4GMocrenFile. Addressing problem report
#1585.
- gMocren declared as G4VGraphicsSystem::fileWriter.
- G4GMocrenFileSceneHandler, G4GMocrenFileViewer, G4GMocrenMessenger:
fixed STRING_OVERFLOW checks according to Coverity reports.
- HepRep
- HepRep and HepRepFile declared as G4VGraphicsSystem::fileWriter.
- OpenGL
- Improvements to class design and some bug fixes for picking.
- Some Qt fixes and improvements.
- Improved protection of pointers.
- G4OpenGLImmediateSceneHandler: split AddPrimitivePreamble() in three
functions to avoid dynamic_cast. Gaining up to 20% speedup in drawing.
- G4OpenGLViewer: time optimization in printEPS() for Immediate mode;
saving 70-80% in drawing time on batch drawing, 10-20% when printing
with a screen viewer.
Manage bad file name case (missing directory) in printGl2PS().
- G4OpenGLQtViewer: added ability to change the color of text in
DrawText().
- New Viewer parameters info panel.
- G4OpenGLQtViewer: fixed problem in viewer/set parameters.
- Speed improvements by avoiding a dynamic_cast.
- G4OpenGL: removed all references to glu.h.
- G4OpenGLXViewer: replaced gluGetError to avoid calling of glu function.
- G4OpenGLStoredSceneHandler: changed some G4cout in G4err in case of error
messages.
- G4OpenGLViewer: replaced deprecated gluLookAt by g4GluLookAt.
Refactoring and renaming of internal methods.
Added new methods addExportImageFormat(), setExportImageFormat(),
exportImage() (generic function with lots of formats available) and
isInitialized().
- G4OpenGLQtViewer: factorisation of Qt save function and OGL save functions.
Added "picking info" component at bottom left inside the scene browser.
Added a horizontal splitter inside the scene browser.
Start changing color of a picking item (need to be improved).
Fixed a bug: previously when changing cursor to "Pick" on context menu,
nothing was done.
Changed picking effect, instead of displaying in G4Cout, will now display
all picking infos separate by "hit number" in another widget inside the
scene browser. Move picking event from "mouse click" to "mouse release"
function.
New method "changeColorAndTransparency" to be able to change color and
transparency on a PO index.
Change cursor shape according to mouse operation.
Activate picking info widget when picking.
Fixed a crash when closing a tab viewer when auto rotating.
Change the "search" look and feel in the tree viewer.
Remove unused functions.
- G4OpenGLImmediateQtViewer, G4OpenGLStoredQtViewer, G4OpenGLQtViewer:
added keyReleaseEvent() method. Allow rotation/move during picking.
- G4OpenGLViewerMessenger: added new commands '/vis/ogl/set/exportFormat'
and '/vis/ogl/export'.
- G4OpenGLQtViewer: changed QPixmap objects to be pointers; fixes fatal
problem creating viewer in "batch" application without interactive GUI.
- G4OpenGLQtExportDialog: removed unused functions.
- Refactoring of code for treatment of OpenGL2 and Wt driver.
- G4OpenGLStoredQtViewer/G4OpenGLImmediatedQtViewer: fixed refresh
problem for 'zoom' command in viewer.
Avoid repainting problems by disable recursive repaints.
- Fixed hidden marker field in Qt viewer properties for G4OpenGLQtViewer.
Allow viewer properties/picking/scene tree to be accessible from an
external application.
Set the scene tree / viewer properties / picking open at the beginning.
Added viewer properties and picking for Immediate mode.
- Fixed bug in G4OpenGLStoredSceneHandler whereby hidden markers are not
respected if 2D objects are drawn.
Removed call to ClearView() method.
- G4OpenGLViewer: added ClearViewWithoutFlush() method.
- G4OpenGLWtViewer: fixed problem with Wt include names on case sensitive
systems.
- OpenInventor
- G4OpenInventorXtExaminerViewer: adjusted dimensions of viewer aux
window; implemented look-ahead for better tracking of trajectory
animation; implemented mouse-over readout for trajectories.
- RayTracer
- VRML
- VRML1/2File declared as G4VGraphicsSystem::fileWriter.
- Externals
- G4XXXFile declared as G4VGraphicsSystem::fileWriter.
- Updates for OpenGL.
Environments
- G4Py:
- Completed migration to CMake for building libraries.
- Fixed link problem on MacOS-X for library extension.
- Updated interfaces for release 10.1.
- Addressing problem reports
#1613,
#1660.
Data sets
- New low-energy data set version, G4EMLOW.6.41:
- Added sigmadiff_cumulated_elastic_e_champion_hp.dat
and corresponding macro.
- Added sigmadiff_cumulated_ionisation_e_born_hp.dat and
sigmadiff_cumulated_ionisation_p_born_hp.dat.
- Updated electron inelastic files for Si (microelec).
- Added sigma_ionisation_(b,be,li)_rudd.dat, sigma_ionisation_p_rudd.dat
(up to 1 GeV), sigma_ionisation_si_rudd.dat and fluor_Bearden data to
dna module.
- Removed unused data sets.
- New neutron data set version with thermal cross sections, G4NDL.4.5:
- Added information of data source to each file.
- New data set version PhotonEvaporation.3.1 for nuclear de-excitation data:
- Corrections of of +X, +Y, ... levels for compliance with latest
isomer list.
- 212Bi (z83.a212, line 8): change strength of gamma transition
(415.272 keV to ground state) from 4.4 to 0.4.
Addressing problem report
#1565.
- New data set version for radioactive-decay processes, G4RadioactiveDecay.4.2:
- Corrections for X,Y,Z,W and A levels.
- Added observationally stable (very long lifetime) ground states to 20
nuclides: 4 are thought to decay by alpha emission, 6 by double beta+
decay and 10 by double beta- decay.
G4RadioactiveDecay now recognizes double beta- and double beta+ decays,
but currently does nothing when they occur.
- Added new files filling in missing alpha levels and removed spurious
ones.
- Added new files filling in missing beta- levels.
- Updated beta+ files.
- Fixed files z55.a136 (IT) and z58.a129 (beta) which had NaN in
place of intensity value; replaced with value of 1.00.
Examples
- Moved advanced examples dnaphysics dnageometry and microdosimetry
to new module 'dna' in extended/medical.
- Updated reference outputs, macros and scripts.
- advanced
- air_shower
- Follow migration of MT-ready GPS code.
- amsEcal
- Added protection in RunAction against division by zero.
Addressing problem report
#1522.
- DetectorConstruction: corrected rotation matrix and uppdates.
- RunAction: reinitialise 'resEtot' and 'resEvis' in loop.
- Migration to g4tools for histograms.
- Migrated to multi-threading.
- ChargeExchangeMC
- composite_calorimeter
- Migrated to use built-in analysis tools.
- Removed use of exit() and use G4Exception instead.
- gammaknife
- Follow migration of MT-ready GPS code.
- gammaray_telescope
- Migrated to multi-threading.
- Use correct mu- stopping process.
- Removed deprecated RO geometry.
- Write separate files for each thread/run, if option
G4STORE_DATA is active.
- Moved ordering of commands in macro: generator action
is not instantiated before run initialization.
- Set some volumes to invisible for faster visualization.
- hadrontherapy
- Migrated code to support multi-threading.
- Completely updated PhysicsLists: G4EmStandardPhysics_option4 substitutes
option3 builder, as most accurate physics. Defined new physics-list,
HADRONTHERAPY_1 specifically implemented for this application, defined as
a collection of builders and very similar to the QGSP_BIC_HP; differs in
the followings: contains G4EmStandardPhysics_option4 in place of
G4EmStandardPhysics; contains the builder G4RadioactiveDecayPhysics.
The defaults for the physics models are now complete and they corresponds
to the HADROTHERAPY_1 apart for: G4HadronPhysicsQGSP_BIC, used in place of
G4HadronPhysicsQGSP_BIC_HP; G4HadronElasticPhysics used in place of
G4HadronElasticPhysics_HP
Cuts messengers completely removed. Now cuts can be defined using commands
'/run/setCut', 'run/setCutForAGivenParticle', etc.
Multiple G4Regions can now be defined in the PhysicsList class file, to
apply specific CUTs values via the command
'/run/setCutForRegion [G4Region Name] [Cut value]'
Defined new physics-list HADRONTHERAPY_2, containing the local
implementation of a specific ion-ion inelastic hadronic physic; uses the
QMD model to treat ion-ion interactions.
Livermore and Penelope electromagnetic physics removed.
- Updated input macros according to new physics lists.
- Created LaserDrivenBeamLine, made of ESS + Quadrupoles.
Added FaradayCup detector with new map of the Electric field.
Added the no fringing field maps for the quadrupole system.
Added field map for the energy selector system with shifted
central dipoles.
- Main file modified where UI is called: now UI is called only
is no macro file is passed as argument.
- Added code to write output files in HadrontherapySteppingAction
class.
- Removed /vis/ command call for batch mode.
- Local definition of Step Max process.
- Code cleanup.
- human_phantom
- Follow migration of MT-ready GPS code.
- Fixed warning messages at run-time.
- lAr_calorimeter
- Migrated code to support multi-threading.
- Changed interface of FCALMaterialConsultant to avoid multiple
definition of materials.
Fixed casting warning in FCALSteppingVerbose.
- microbeam
- Fixed warnings on Windows and MT-max runs.
- microelectronics
- Replaced use of G4UITerminal by G4UIExecutive; removed usage of
flags G4UI_USE and G4VIS_USE in main().
- nanobeam
- Fix in CMake setup to avoid use of internal CLHEP module.
- purging_magnet
- Migrated code to support multi-threading.
- Add 'const' qualifiers to methods where applicable.
- radioprotection
- Fixed compilation errors and warnings.
- underground_physics
- Migrated code to multi-threading.
- Repaired photocathode description such that photon hits are
now registered.
- Removed scintillator energy deposits from optical photons,
double counting!
- Replaced obsolete use of G4ParticleTable::GetIon() with
G4IonTable::GetIon(). Use correct mu- stopping process.
- xray_fluorescence
- Migrated code to multi-threading.
- Completed migration to g4tools (removed AIDA dependency).
- xray_telescope
- Migrated code to multi-threading.
- Follow migration of MT-ready GPS code.
- Added definition of muons and short-lived.
- Revised method book() of analysis singleton.
- basic
- Removed G4UI_USE/G4VIS_USE conditionals from B1-B4 examples and
init.mac macro, no longer needed.
- Moved G4UIExecutive at the beginning of main() in all examples.
- Perform run initialization in macros instead of main().
- extended
- analysis
- Use physics list FTFP_BERT in AnaEx01,02,03.
Removed custom PhysicList class from shared.
- Create two ntuples in AnaEx02,03 instead of one in order to
demonstrate how to do this with all tools.
- Updated for moving script in 'shared'.
- analysis/AnaEx01
- Moved implementation of G4AnalysisManager for hbook from
extended/common/analysis in 'hbook' sub-directory.
- biasing
- biasing/B03
- B03PhysicsList: replaced obsolete G4ParallelWorldScoringProcess
with G4ParallelWorldProcess.
- biasing/GB01
- Fix in GB01BOptrChangeCrossSection, which was not properly
using the new cross-section value in case of an UpdateForStep().
- biasing/GB02
- Update of the example to take into account changes made in the base
classes, and related changes in G4BOptrForceCollision.
- biasing/GB03
- New example illustrating the use of generic biasing classes to
implement a technique close to the "geometry importance biasing" one.
- An extra mechanism to alleviate over-splitting is illustrated.
- biasing/GB04
- New example illustrating the use of generic biasing classes to
create a bremsstrahlung splitting technique.
- common
- Moved analysis subdirectory in concrete examples.
- Updated for changes in analysis category: ntuple columns of
vectors (disabled), changes in ntuple_booking.
Updated to g4tools-1.10.0.
- Modifications to facilitate use of common directory via svn:externals:
merging user classes in the top directory (include and src), added
testCommon.cc for all classes altogether and added building
common library.
- Removed obsolete sub-directories with user classes and scripts.
- Added typedefs and functions for accessing iterators over H1, H2,
Ntuples.
- Removed fPrintModulo from ExG4EventAction01 and fSetPrintModuloCmd
from ExG4EventAction01Messenger, now obsolete.
- electromagnetic
- electromagnetic/TestEm0
- electromagnetic/TestEm1
- DetectorConstruction: define heavy water vapor starting from
isotopes.
- Removed printout from second thread in TestEm1.in macro.
- Introduced function Run::EndOfRun().
- Removed PhysicsList::SetCuts().
- Simplified PhysicsList and its messenger, accordingly.
- PhysicsList: added "emlowenergy" option.
- Set number of threads as number of cores in main().
- PhysicsList: added G4EmStandardPhysicsSS.
- Added option to set nThreads via UI command in main().
Set default number of threads to 2 in input macro.
- electromagnetic/TestEm2
- Introduced function Run::EndOfRun().
- Added "emlowenergy" option for EM physics.
- Removed PhysicsList::SetCuts().
- RunAction + Run: introduced profiles for histos 4 and 8.
- Added option to set nThreads via UI command in main().
Set default number of threads to 2 in input macro.
- electromagnetic/TestEm3
- Enabled multi-threading; implemented required migration.
- Added "emlowenergy" option for EM physics.
- Removed PhysicsList::SetCuts().
- PhysicsList: added G4EmStandardPhysicsSS.
- Added option to set nThreads via UI command in main().
Set default number of threads to 2 in input macro.
- electromagnetic/TestEm4
- HistoManager: restore "h" in front of histogram id.
- Added option to set nThreads via UI command in main().
Set default number of threads to 2 in input macro.
- Improved output in MT mode.
- electromagnetic/TestEm5
- Introduced function Run::EndOfRun().
- Added "emlowenergy" option for EM physics.
- Removed PhysicsList::SetCuts().
- PhysicsList, PhysicsListMessenger: removed local cuts
commands.
- Added possibility to change number on threads though
2nd parameter in command line.
- StackingAction, HistoManager: added histograms for energy of
gamma and Auger electrons per de-excitation model.
- Set number of threads as number of cores in main().
Added possibility to change number on threads by 2nd
parameter in command line.
- PhysicsList: added G4EmStandardPhysicsSS, WVI.
- electromagnetic/TestEm6
- Suppressed EventAction and its messenger.
- Updated PhysicsList, DetectorConstruction and RunAction.
- Replaced '/testem/event/printModulo' with '/run/printProgress'.
- electromagnetic/TestEm7
- Added "emlowenergy" option for EM physics.
- Removed SetCuts() method and corresponding UI commands,
applied code guidelines.
- Replaced obsolete use of G4ParticleTable::GetIon() with
G4IonTable::GetIon().
- electromagnetic/TestEm8
- Migrated code to support multi-threading.
- Added "emlowenergy" option for EM physics.
- Removed SetCuts() method and corresponding UI commands,
applied code guidelines.
- Reduced statistics in input macro.
- electromagnetic/TestEm9
- Added "emlowenergy" option for EM physics.
- Removed SetCuts() method and corresponding UI commands,
applied code guidelines.
- electromagnetic/TestEm11
- Introduced function Run::EndOfRun().
- HistoManager: removed hbook.
- Set "ToBeBroadcasted == false" for UI commands that modify
physics list and detector since these should be executed
only by master.
- Removed SetCuts() method and corresponding UI commands,
applied code guidelines.
- PhysicsList: added G4EmStandardPhysicsSS.
- Added option to set nThreads via UI command in main().
Set default number of threads to 2 in input macro.
- electromagnetic/TestEm12
- Enabled multi-threading; implemented required migration.
- Added "emlowenergy" and dna_option1 in physics-list.
- Removed SetCuts() method and corresponding UI commands,
applied code guiedlines.
- PhysicsList: added G4EmStandardPhysicsSS.
- Added option to set nThreads via UI command in main().
Set default number of threads to 2 in input macro.
- electromagnetic/TestEm13, TestEm14
- Migrated code to support multi-threading.
- Removed SetCuts() method and corresponding UI commands,
applied code guidelines.
- electromagnetic/TestEm15
- Removed PhysicsList::SetCuts().
- electromagnetic/TestEm16
- Migrated code to support multi-threading.
- Suppressed EventAction and its messenger.
- PhysicsList: removed SetCut() method, added
Synchrotron radiation to all charged particles.
- electromagnetic/TestEm17
- Use G4EmStandardPhysics and G4EmParameters classes in
PhysicsList, removed SetCuts method.
- electromagnetic/TestEm18
- Removed PhysicsList::SetCuts().
eventgenerator/exgps
- Migrated to use of built-in physics list.
Use QGSP_BIC physics list to avoid dependency on data.
- Removed 'drawTracks' and 'printModulo' commands and adapted
macro files to use the equivalent built-in macro commands.
- Implemented changes needed for MT-ready GPS, substantially
reducing memory footprint in nulti-threaded mode.
- Migrated to new messenger strategy.
- Replaced EventAction by TrackingAction.
- Changed dimension of world volume.
- Updated macros.
eventgenerator/HepMC
- Changes to comply with coding conventions.
eventgenerator/particleGun
- Migrated code to support multi-threading.
- Modified plots of angles and simplified histograms.
- Added PrimaryGeneratorAction0 class and run0.mac.
eventgenerator/pythia/decayer6
- Removed custom physics-list.
- Fixed order of instantiating Vis/UI.
- Replaced use of std::cerr with G4cerr.
- Added common directory via svn:externals property.
exoticphysics/channeling
- New example showing how channeling of 400 GeV/c protons in bent
Si crystal can be simulated in Geant4.
exoticphysics/phonon
- Moved lattice classes, particle definitions, and physics
processes into toolkit.
- Migrated code to support multi-threading.
- Fix in CMake script to copy data in build directory.
exoticphysics/ucn
- New example demonstrating the functionality of UCN physics.
field/field04
- Porting to new optical phsyics processes API.
- Fixed problem for process sharing.
g3tog4
- Moved data directory in clGeometry.
- Added common directory via svn:externals property.
hadronic/FissionFragment
- New example to exercise fission fragmentation.
hadronic/Hadr00
- HistoManager: added histogram with cross-section per volume.
hadronic/Hadr02
- Applied code guidelines and code cleanup.
hadronic/Hadr03
- Enabled multi-threading; implemented required migration.
- Defined a stucture for nuclear channel data.
- Use G4HadronElasticPhysicsHP in physics-list.
- Histograms: changed numbering scheme. Added histo of atomic mass.
- EndOfRun: introduced optional print and UI command to control it.
- Register RunMessenger in RunAction instead of Run.
- PhysicsList: added G4IonElasticPhysics constructor.
- Added option to set nThreads via UI command in main().
hadronic/Hadr04
- Pass primary kinematic to Run.
- NeutronHPphysics: check for pre-existing processes.
- Set number of threads as number of cores in main().
hadronic/Hadr06
- New example to survey energy deposition and particle's flux
from an hadronic cascade.
medical/dna
- chem1
- New example showing how to activate DNA chemistry in a
'semi infinite' homogeneous medium.
- chem2
- New example showing how to activate DNA chemistry in a
'semi infinite' homogeneous medium, setting minimum time
step limits.
- chem3
- New example showing how to activate DNA chemistry in a
'semi infinite' homogeneous medium, implementing user
actions.
- dnaphysics
- Moved from advanced module.
- Added lines for ion in dna.mac.
- Cleaned physics-lists and READMEs.
- microdosimetry
- Moved from advanced module.
- Fixed user actions and enter flexible number of threads.
Updated READMEs.
- Select GUI+vis driver from command line.
- Corrected check on the output file command line option.
- Removed macro microdosimetry.mac.
- Cleanup of command line options.
- pdb4dna
- New example simulating energy deposits in a target volume
generated from a PDB file representing DNA geometry.
- wholeNuclearDNA
- Moved from advanced example 'dnageometry'.
- Migrated to multi-threading.
- Updated visualization setup.
- Offering basic tools to simulate the track structure of
different charge particles within a simplified geometrical
model of the DNA molecule contained in a cell nucleus.
- Select GUI+vis driver from command line.
- Added copying macros and data files in build directory.
medical/DICOM
- Using G4GenericPhysicsList and removed DicomPhysicsList.
- Removed use of std::cout and exit() in the code.
medical/electronScattering
- Migration to multi-threading.
- Removed PhysicsList::SetCuts().
medical/electronScattering2
- Fixed memcheck errors: foil thickness now defined in Detector
constructor.
- Allow for selection of physics-list option4.
- Follow migration of MT-ready GPS code.
- Applied code guidelines; added G4EmLowEPPhysics.
medical/fanoCavity[1,2]
- Fix to proper initialisation of members in RunAction class.
medical/GammaTherapy
optical/LXe
- Removed shared process pointers between threads.
- Use implicit dimensioning for all arrays.
- Updated UI commands to new structure.
- Use correct mu- stopping process.
- Added proton, neutron and pions to local Mu physics-list,
needed for mu- capture at rest process.
optical/OpNovice
- Use implicit dimensioning for all arrays.
- Updated UI commands to new structure.
optical/WLS
- Follow migration of MT-ready GPS code.
- Use implicit dimensioning for all arrays.
parallel/MPI
- Added first version of G4RunMerger and G4ScorerMerger.
- New CMake configuration.
- Fixed bug for RNG seed distribution in MT mode.
Addressing problem report
#1653.
parameterisations/gflash
- Follow migration of MT-ready GPS code.
persistency/gdml/G01
- Added multiUnion.gdml sample demonstrating import and export
of a Multi-Union structure.
persistency/P01
- Added ExP01ClassesDict to the install targets so it is copied to
the right place. Addressing problem report
#1502.
persistency/P03
- Using G4GenericPhysicsList and removed ExTGPhysicsList.
polarisation/Pol01
- Several updates for the unification of the example: use standard
physics builder from physics_list sub-package; removed local
SetCuts() method; removed AIDA histograms.
radioactivedecay/rdecay01
- Enabled multi-threading; implemented required migration.
radioactivedecay/rdecay02
- Fixed case of no elastic cross-section found for generic ions.
Assigned model G4NuclNuclDiffuseElastic and cross-section
G4GGNuclNuclCrossSection to generic ions in exrdmPhysListHadron.
Addressing problem report
#1461.
runAndEvent
- runAndEvent/RE01
- Removed obsolete sample.err log-file.
- runAndEvent/RE06
- Removed obsolete hand-written physics list.
visualization
- Migrated 'userVisAction' example to multi-threading (based
on basic/B1 example).