466 lines
19 KiB
Plaintext
466 lines
19 KiB
Plaintext
|
|
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
|
|
(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://cern.ch/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.
|