Import Geant4 5.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:15:15 +02:00
parent 37fff30d2e
commit fbd4999cf7
4396 changed files with 56662 additions and 52446 deletions
+181
View File
@@ -0,0 +1,181 @@
Geant4 5.0 - patch-01 Release Notes
-----------------------------------
24th February 2003
List of fixes included in this public patch to release 5.0:
o Config:
------
- Added experimental setup WIN32-VC7.gmk for Windows .NET VC++ compiler.
- Generalised identification of WIN32 specific setups in core scripts.
- Forced silent generation of dependencies.
- Configure script: fixed GNUmakefile access problem for correct execution
of flags/libs command options. Added automatic recognition of 'Darwin' OS.
- source/GNUmakefile: included patch to release 5.0.
o Electromagnetic processes (low-energy):
--------------------------------------
- Minor fix in G4QAOLowEnergyLoss to use G4Poisson distribution.
o Electromagnetic processes (standard):
------------------------------------
+ standard:
- Fix for compound materials in G4eBremsstrahlungModel.
- Minor fix in G4PAIonisation and G4PAIxSection to use G4Poisson
distribution.
+ muons:
- Fix for compound materials in G4MuBremsstrahlungModel and
G4MuPairProductionModel.
+ xrays:
- G4VXTRenergyLoss: removed reduntant headers inclusions and ordered
inclusion for complex numbers to allow porting on Windows .NET VC++.
- Minor fix in G4Cerenkov, G4ForwardXrayTR and G4VXTRenergyLoss to use
G4Poisson distribution.
o General processes:
-----------------
+ optical:
- Fix in calculation of polarization for perpendicular incidence
in G4OpBoundaryProcess. Fixes bug report #442.
o Geometry:
--------
+ magnetic-field:
- Removed some redundant inclusions of headers.
+ management:
- G4VSolid.cc: restored original conditions for extent clipping in
method ClipPolygon().
+ solids/Boolean:
- Added set/get functions Set/GetVolumesNameExtension() for volume-name
extension in G4ReflectionFactory. By default now the factory assigns
"_refl" postfix to name of reflected volumes/solids.
- Assumed less strict condition in the G4ReflectionFactory::CheckScale()
method, to avoid precision problems with imported rotation matrices.
+ solids/CSG:
- G4Cons: enhanced treatment of phi-sections, according to
algorithm used also in G4Tubs.
+ volumes:
- Fix in G4GeometryMessenger to check for geometry closed when commands
are applied. Command /geometry/navigator/reset and test commands apply
only when system is in "Idle" state.
- G4VCurvedTrajectoryFilter: fixed initialisation of data member
in constructor. Fixes crash in visualization under in some setups.
- G4IdentityTrajectoryFilter: added comments for the Software Reference
Manual.
o Global:
------
- Exclude definition of min/max for Windows .NET VC++ compiler
in globals.hh.
- Use SystemOfUnits.h and PhysicalConstants.h from CLHEP instead of
internal local copies.
o Hadronic processes:
------------------
+ cross_sections
o Fixed bug in Newton method for electro-nuclear cross-sections.
+ management:
o Fixed a missing data-member initialization in G4InelasticInteraction.
Fixes bug report #455.
o G4EnergyRangeManager, G4HadronicProcess: adopt exception handling for
'no model found' case.
+ models/chiral_inv_phase_space
o Minor fix for memory leak.
o Fixed calculation of the equivalent photon in electro-nuclear.
+ models/generator/de_excitation
o Improved performance for gamma evaporation (~30%).
o Minor fix in method G4ExcitationHandler::transform() when calling
erase(), to allow porting on Windows .NET VC++ compiler.
+ models/generator/high_energy
o G4TheoFSGenerator: fix for semantics change in track, added Clear()
call to particle-change vector.
+ models/generator/scattering
o Removed some redundant inclusions of headers.
+ models/generator/util
o Critical fix for semi-infinite loop in G4Fancy3DNucleus and
G4FermiMomentum.
+ models/low_energy
o G4LEKaonZeroLInelastic, G4LEKaonZeroSInelastic: fixed virtual
destructor.
+ models/neutron_hp
o Fix in sampling of gammas, in case internal conversion data are
available in breit frame.
o Fixed recoil direction distribution for 14MeV neutrons in Silicon.
o Fixed cases of uninitialised variables responsible for event
irreproducibility.
o Optimized usage of poisson distribution to adopt G4Poisson.
+ models/pre_equilibrium
o Fixed warning.
+ models/radiative_decay
o Fix in G4NuclearDecayChannel and G4RadioactiveDecay: adapted to new
nuclear level manager.
+ util
o Removed some redundant inclusions of headers.
o Intercoms:
---------
- Included G4VVisManager::Draw methods for hits and trajectories.
o Parameterisations:
-----------------
- Updated header files to remove redundant header inclusions
and properly order inclusion for complex numbers, to allow
porting on Windows .NET VC++ compiler.
- Minor fix in G4IrregularXrayTRmodel, G4VXTRdEdx and G4VXrayTRadModel
to use G4Poisson distribution.
o Persistency:
-----------
- Corrected inclusion of headers for constant and units from CLHEP
in G4MCTSimParticle and G4MCTSimVertex.
o Visualization:
-------------
- OpenInventor: removed erroneous additional transformation.
- HepRep: modified G4HepRepFileSceneHandler::AddThis()
to incorporate G4Attributes into the HepRep1 file.
Moved some of HepRepXMLWriter's warning messages to debug blocks.
- VRML: minor fix to VRML2 driver in G4VRML2SceneHandlerFunc to
adopt G4String.
- Included G4VisManager::Draw methods for hits and trajectories.
o G3toG4 tool:
-----------
- G4gstmed: included get functions for the medium table entries:
G4int GetSize() const
G3MedTableEntry* GetMTE(G4int i) const
o Examples:
--------
- novice/N02
o Cosmetics in output for stepping verbose.
o Minor improvements to specific UI commands.
- extended/electromagnetic - TestEm2, TestEm4
o Cosmetics in output for stepping verbose.
o Minor improvements to specific UI commands.
- extended/geometry/olap
o Removed redundant inclusion of headers.
- extended/biasing
o Removed redundant inclusion of headers.
- advanced - composite_calorimeter, xray_telescope
o Removed redundant inclusion of headers.
- Updated reference outputs.
----------------------------------------------------------------------------
Technical Notes
---------------
o This patch should be applied on top of release 5.0.
o Technical notes distributed for release 5.0 are also applicable and
valid for this patch.
The code and rebuilt binary libraries for release 5.0 are available through
our "Source Code" Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
+465
View File
@@ -0,0 +1,465 @@
Geant4 5.1 Release Notes
------------------------
30 April 2003
The code and some binary libraries are available through our "Source Code"
Web page (http://cern.ch/geant4).
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Contents
--------
1. Supported and Tested Platforms
2. AIDA and CLHEP
3. The Standard Template Library (STL)
4. Compiler Specific Problems
5. Known Run-Time Problems
6. Compilation Warnings
7. Known Run-Time Warnings
8. Features at Run-Time
9. Items for migration of user code
1. Supported and Tested Platforms
---------------------------------
o SUN Solaris 5.8, C++ 5.4 Patch 111715-02.
o Linux, gcc 2.95.2, gcc 3.2.
This configuration was tested with the RedHat 7.3 distribution,
versions of Geant4 have also been compiled successfully on other
Linux distributions, like Debian or Suse.
The default RedHat compiler gcc-2.96 ditributed in RedHat 7.X is NOT
supported. It has been verified that it produces incorrect binaries,
therefore is not reliable. See also note below.
o Windows-2000/XP and CygWin Tools with: Visual C++ 6.0 Service Pack 5
Platforms configured but not tested and not supported:
o DEC V4.0, cxx C++ V6.1-027
o HP 10.20, aCC C++ B3910B A.01.23
o SGI V6.5.5, CC 7.2.1
o AIX 4.3.2, xlC 6.0
o MacOS 10.2, gcc 2.95.2 / gcc-3.2
2. AIDA and CLHEP
-----------------
Geant4 5.1 requires the installation of CLHEP
(href="http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.8.0.0.
Geant4 5.1 examples with histogramming cowork with AIDA 3.0 implementations.
These include:
- ANAPHE and components included therein
(see: ANAPHE - http://cern.ch/anaphe)
- JAS (Java Analysis Studio)
(see: JAS - http://jas.freehep.org)
- Open Scientist
(see: Open Scientist - http://www.lal.in2p3.fr/OpenScientist)
AIDA headers can be downloaded from:
http://aida.freehep.org
3. The Standard Template Library
--------------------------------
Native versions of STL have been tested on the following platforms:
Windows/2000, Linux, and SUN.
NOTES:
- Platform specific setup:
o SUN: Native STL is required for ISO/ANSI setup.
o Linux: Native STL is required (non ISO/ANSI setup for egcs compiler only).
o Windows: Native STL and ISO/ANSI setup required (VC++ 6.0).
4. Compiler Specific Problems
-----------------------------
o Linux Red Hat 7.X, gcc-2.96.
- The default compiler distributed by Red Hat since release 7.0 is
NOT supported and not considered reliable for running a Geant4-based
application. In more than one test case, binaries produced by gcc-2.96
have shown incorrect behavior, either due to wrong order of
initialisation of static data in memory or to bugs in the system
iostream classes, problems which apparently have all been solved in
more recent versions of the compiler (3.X series).
For information, gcc-2.96 is a compiler that has never been
officially released, nor supported by the GNU team itself and is not
considered reliable by the authors (for more information, see also
http://gcc.gnu.org/gcc-2.96.html).
5. Known Run-Time Problems and Limitations
------------------------------------------
For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport
6. Compilation Warnings
-----------------------
There are compilation warnings on some platforms. We do not believe
that any will lead to incorrect run-time behaviour, but we are working
on reducing them.
7. Known Run-Time Warnings
--------------------------
The following messages can be written to error output while tracking.
We believe none give rise to incorrect behaviour.
o G4PropagateInField: Warning: Particle is looping
- tracking in field will be stopped.
It has performed 10000 steps in Field while a maximum of 10000
are allowed.
8. Features at Run-Time
-----------------------
o In this release, the implementation of the G4RunManager has been
substantially modified. The calculation of the physics cross-section
tables takes place -after- the "BeamOn" command is issued. Thus, the
initialisation of the run-manager (either through the initialize()
method or the UI command "run/initialize") is noticeably faster
compared to the previous version. On the other hand, more time is
required to get the event loop starting, once issued the "BeamOn"
command.
o Production thresholds are now adopted only for gammas, electrons and
positrons. Other particles do not use the concept of production threshold;
setting cut values for particles rather than the cited three will have no
effect in the application, but will result in a warning message.
9. Items for migration of user code
-----------------------------------
o User applications having user-defined production cuts will work with
no required transition to the new interface, as long as regions are
not used. The new interface for setting production cuts will be
required for using the 'cuts-by-region' feature (see the User's
Guide for Application Developers).
The old interface for setting/controlling production cuts (methods
and UI commands) will be made obsolete in the next public release and
later-on removed.
An example showing the utilisation of the 'cut-by-region' technique is
available in examples/novice/N07.
o The file format of storing physics tables has been changed. Thus all
the stored physics tables must be rebuilt.
o Advanced applications making use of a sub-classed run-manager will have
to migrate to the new initialization scheme and interface defined in
G4RunManager. Particularly, users must be aware of the change in the
sequence of building the physics tables. G4RunManager::BuildPhysicsTable()
must be invoked from G4RunManager::RunInitialization().
G4VUserPhysicsList::SetCuts() does not trigger the construction of the
physics tables, it is just aimed to set the production thresholds (cuts).
All other user mandatory initialization classes are kept as before.
o Applications making use of the prototype STD EM processes and messenger
will have to migrate according to the design iteration implemented in
this new release, examples showing the usage of these processes can be
found in examples/extended/electromagnetic: TestEm2, TestEm3.
o The new data sets for low-energy EM processes G4EMLOW2.1 is required
for applications making use of such processes.
----------------------------------------------------------------------------
List of changes and fixes
-------------------------
These are the main new features/fixes included in this release since the
last public release (for the detailed list of fixes/additions, please refer
to the related History files):
o Digitization & Hits:
-------------------
- Fixed G4VSensitiveDetector::GetCollectionID() for more than one
sensitive detector objects instantiated from one detector class.
o Electromagnetic Processes (Low-energy):
--------------------------------------
- Included development for 'cuts-by-region':
o Made relevant physics processes "region-aware".
- First implementation of Penelope processes for photons.
Minor design iteration on Bremsstrahlung, to accomodate variable
number of parameters compatible with Penelope processes.
Requires new data set G4EMLOW2.1.
- New Ziegler2000 parameterisation for G4hLowEnergyIonisation.
and fix in calculation of step-limit.
- Use particle SubType for ions.
- Bug fix to the Auger effect, in response to user report.
- Bug fix to G4LowEnergyGammaConversion for angular distribution.
o Electromagnetic Processes (Standard):
------------------------------------
- Included development for 'cuts-by-region':
o Made relevant physics processes "region-aware".
o Made the set of model per region available.
o Made SubCutoff regime available per region.
o Fixes for store/restore physics tables for ions.
o Made step-limit calculation region aware
and added finalRangeRequested for region handling.
- First implementation of G4AnnihiToMuPair process.
- Important modifications in Multiple Scattering
(both in default classes and STD version):
o new algorithm to reduce the step dependence
o new sampling for the geometrical path-lengths.
o Introduced base class G4VMultipleScattering.
- MuPairProduction::PostStepDoIt(): removed 'tracking cut' of muon.
- Fixed problem in cut control in G4PAIonisation.
- Fixed problem of computation of mean-free-path for PAI process.
- STD processes:
o Fixed problem in fluctuations.
o Fixed problem of negative step limit.
o Fixed problems with lambda and range tables for hadrons/ions.
o Added Initialise() method to calculate PartialSumSigma.
o Added GetDEDXDispersion() method to loss tables.
o Removed UI messenger.
- Fix in setting of 'costeta' in ElecThetaDistribution() for
PhotoElectricEffect.
- Added warning and G4Exception in G4EnergyLossTable in case of using
the old interface when more than one region is defined.
- Made energy-loss messanger active at PreInit state.
- Use particle SubType for GenericIons.
o General Processes, Parameterisation, Decay, Optical:
---------------------------------------------------
- Management:
o Fixed PostStepGetPhysicalInteractionLength() for discrete processes
to avoid unrealistic step of length 0 in rare cases of precision
mismatch. Fixes bug report #465.
o Cleared few trivial strict pedantic warnings.
- Decay:
o Corrected initialisation of TouchableHandle for decay products.
- Optical:
o Modified logic for the assignment of the index of refraction
of the 2nd material. Most applications should not notice a change.
Fixes bug-report #444.
o Geometry:
--------
- Importance biasing
o G4ParallelNavigator: modified shift mechanism in method
ComputeStepLengthShifted().
o Modified implementation of IsInWorld() in G4IStore using
G4LogicalVolume::IsAncestor().
o Cleared strict pedantic warnings.
- Management
o Included development for 'cuts-by-region':
+ Introduced new classes G4Region and G4RegionStore.
+ Modified G4LogicalVolume to handle recursive propagation
of regions to daughters.
+ Updated G4LogicalVolumeStore to handle de-registration of
root regions for volumes which are explicitely deleted.
o G4LogicalVolume:
+ Added check for invalid geometry constructions. Issue an
exception if a placement is attempted in a volume already
containing a replicated daughter.
+ Added method for scanning recursively the volume tree and
retrieve if the current LV is ancestor of a given PV:
G4bool IsAncestor(const G4VPhysicalVolume*) const
- Solids
o Boolean solids:
+ Fixed trivial strict pedantic warnings in G4ReflectedSolid
and G4ReflectionFactory.
o BREPS solids:
+ Fixed trivial strict pedantic warnings in compilation.
o Specific solids:
+ Fixed initialisation of base class in copy contructor for:
G4PolyPhiFace, G4PolyconeSide, G4PolyhedraSide.
+ Fixed trivial pedantic warnings on G4Polycone and G4Polyhedra.
o STEPinterface:
+ Fixed trivial strict pedantic warnings in compilation.
- Volumes
o G4NavigationHistory: fix in methods Clear() and SetFirstEntry().
Correctly initialise navigation levels. Resolves discrepancy in the
copy number assigned to the world volume, if retrieved through the
touchable or explicitely through the physical volume.
o G4GeometryMessenger: added UI command for setting navigator
verbosity at run-time (/geometry/navigator/verbose [n], n in [0..4]).
o G4ReplicaNavigation: fixed debug statement in VoxelLocate().
o G4VoxelNavigation: fixed debug statement in destructor.
o G4Navigator: removed redundant calculation of localPoint in method
LocateGlobalPointWithinVolume()
o Fixed few trivial strict pedantic warnings in compilation.
o Global:
------
- Removed copies of SystemOfUnits.h and PhysicalConstants.h, now using
directly headers from CLHEP: changed globals.hh and G4SIunits.hh.
- Fixed trivial strict pedantic warnings in copy constructor for
G4PhysicsTable and G4strstreambuf. Also for unused parameters in
a couple of methods in G4String.
- Removed unnecessary usage of GNU_GCC preprocessor flag in G4Allocator
and G4strstreambuf.
o Graphical representations:
-------------------------
- Fixed trivial strict pedantic warnings in compilation.
o Hadronic Processes:
------------------
- cross_sections
o Introducing an upper limit in the alternative pion cross-section
class G4PiNuclearCrossSection.
- models/generator/scattering
o Fixed critical bug affecting binary-cascade model.
- models/low_energy
o Removed two un-physical exceptions in G4LENeutronInelastic.
No run-time change.
- stopping:
o Fixed bug in stopping muons (G4MuonMinusCaptureAtRest).
Fixes bug-report #457.
o Magnetic Field:
--------------
- Fixed definition of copy constructors in fields inheritance chain.
- Moved obsolete method StepWithEst() to private in G4RKG3_Stepper,
G4CashKarpRKF45 and G4ClassicalRK4.
- Cleared strict pedantic warnings.
o Particles:
---------
- Included development for 'cuts-by-region':
o Dismissed 'cuts-by-material' temporary implementation.
o Removed concrete implementation of method
'CalcEnergyCuts( const G4Material* )' from affected particles.
o Removed ComputeLoss(), BuildRangeVector() from G4Electron and
G4Positron.
o Added classes G4MaterialCutsCouple, G4ProductionCuts,
G4ProductionCutsTable, G4RToEConvForAntiNeutron,
G4RToEConvForAntiProton, G4RToEConvForElectron,
G4RToEConvForGamma, G4RToEConvForNeutron, G4RToEConvForPositron,
G4RToEConvForProton, G4VRangeToEnergyConverter
in processes/management.
o Removed G4ParticleWithCuts class and changed to alias of
G4ParticleDefinition to handle new cuts scheme.
o Implemented Store/Retrieve Cut in G4ProductionCutsTable.
G4ProductionCuts contains cuts only for gamma and e+/-.
- Embed a string of file version to physics table file.
- Added particle SubType for nuclei to distinguish static or
dynamic objects.
- G4DynamicParticle:
o Fixed case of negative sqrt in Set4Momentum(), occasionally
resulting in computation of negative interaction length.
Fixes problem report #360.
o Fix to resolve a known problem in pi-0 decay.
o Run, Intercoms and Interfaces
-----------------------------
- Included development for 'cuts-by-region':
o In G4VUserPhysicsList, removed the following methods:
ReCalcCutValue(), SetCutValueForOthers(), SetCutValueForOtherThan(),
ReCalcCutValueForOthers(), StoreMaterialInfo(), StoreCutValues(),
RetrieveCutValues(), CheckForRetrievePhysicsTable(),
CheckMaterialInfo(). Added method BuildPhysicsTable().
o Modified G4RunManger to properly handle new cuts scheme based
on regions.
o Added commands for setting cuts.
o Implemented store/retrieve physics list methods.
- Removed BuildPhysicsTable() from Initialize() and moved to BeamOn.
and invoke it for dynamically created ions.
- Added GenerateRun() method in G4UserRunAction.
- Cleared inline virtual method in G4Run.
o Tracking & Track:
----------------
- Included development for 'cuts-by-region':
o Modified implementation of stepping to cope with new scheme for
cuts and regions.
o Updated G4Track, G4Step, G4StepPoint and G4ParticleChangeForTransport
to properly handle new G4MaterialCutsCouple.
- Fix in G4Step::InitializeStep(): added initialization of fCharge
in StepPoint.
- G4SteppingVerbose: fixed retrieval of phys-volume name, adding
check for NULL pointer for post-step physical volume returned.
- G4SteppingManager:
o recover ApplyCuts() for cuts-by-region.
o fixed initilization of fAtRestDoItProcTriggered.
o Transportation:
--------------
- Included development for 'cuts-by-region':
o Made G4Transportation and G4UserSpecialCuts "region-aware".
- Cleared pedantic warnings and some cosmetic cleanups.
o g3tog4 tool:
-----------
- Fixed trivial strict pedantic warnings in compilation.
o data
----
- Updated data-set for low-energy EM processes: G4EMLOW2.1
o Examples:
--------
o Updated reference outputs.
- advanced:
o composite_calorimeter
+ Fixed G4cout/G4endl in CCalAnalysis and cleaned some
compilation warnings.
- extended:
o Updated PhysicsList for cut by region.
o analysis
+ A01
- Added 2 more histograms to the example
- Fixed NullPointerException by letting SDManager delete the
detectors created in DetectorConstruction.
- Added comment when quitting Geant4 that JAS window still
needs closing.
o biasing
+ Changed the replica number of the world volume from -1 to 0.
+ Initialize() of the G4RunManager is now called after all Materials
and volumes (also in the parallel geometry) are built.
o electromagnetic
+ TestEm1
- Fixed verbose problem.
- Removed old interfaces to cuts.
- Added definition of mean excitation energy for water.
+ TestEm2
- Use logical mother for G4PVPlacement and G4PVReplica.
- Completed migration to cuts by region.
- Update modular structure of PhysicsList.
+ TestEm3
- Change in all macros: /run/particle/setCut -> /testem/phys/setCuts.
- Material CsI and example of SetMeanExcitationEnergy().
- Defined BGO material.
- Added example of static ion: IonC12 class and ionC12.mac.
- Use logical mother for G4PVPlacement.
+ TestEm4
- Use logical mother for G4PVPlacement.
+ TestEm5
- PhysicsList: removed cutForProton (old interface).
- Fixed problem of 'OutOfWorld' volume.
- Use logical mother for G4PVPlacement.
+ TestEm6
- Use logical mother for G4PVPlacement.
- novice:
o Updated PhysicsList for cut by region.
o Use pointer to logical mother for placements.
o Added new novice example N07 demonstrating cuts-by-region,
material parameterisation, run-time modification of part of the
geometry setup, sharing of a sensitive detector definition for
different sub-detectors, customization of the G4Run, store/retrieve
physics table.
o N04
+ Added capture and fission in HadronPhysicsList.
o N06
+ Corrected OpWaterSurface to be dieletric_dieletric.