Warning, /geant4/CHANGELOG/ReleaseNotes4.3.0.txt is written in an unsupported language. File is not indexed.
0001
0002 Geant4 3.0 Release Notes
0003 ------------------------
0004
0005 15th December 2000
0006
0007 These are the main new features/fixes included in this release (for the
0008 detailed list of fixes/additions, please refer to the related History files):
0009
0010 o Analysis
0011 --------
0012 - New module for analysis/histogramming management and concrete
0013 drivers interfaces through AIDA: JAS, Lizard, OpenScientist.
0014
0015 o Configuration:
0016 -------------
0017 - Added unsupported configuration WIN32-g++
0018 for Windows/NT/9X and Cygwin with g++ compiler.
0019 - Introduced changes to handle analysis module.
0020 - Incorporated building of shared libraries into .gmk files
0021 (NOTE: tests on shared libraries currently perfomed only on
0022 Linux-g++ and SUN-CC platforms)
0023 o Introduced new variables steering the building of shared/static
0024 libraries (static still default): G4LIB_BUILD_SHARED and
0025 G4LIB_BUILD_STATIC.
0026 o Introduced new variable (G4LIB_USE_GRANULAR) to force using of
0027 granular libraries.
0028 - Added rules for "includes" gmake target, to copy all header files
0029 in a single location specified by $G4INCLUDE path.
0030 - Introduced SUN-CC5 G4SYSTEM architecture for SUN CC 5.1 compiler.
0031
0032 o Event:
0033 -----
0034 - Added new Set methods to G4PrimaryVertex and G4PrimaryParticle.
0035 - Introduced ParticleGun for Ions and weights for primary vertex
0036 and particle:
0037 o G4ParticleGun: added Set/GetParticleCharge methods for ions.
0038 o G4ParticleGunMessenger: added new command of /gun/ion;
0039 modified command of /gun/particle.
0040 o G4PrimaryParticle: add Set/GetCharge methods, added weight.
0041 o G4PrimaryVertex: added weight.
0042 o G4PrimaryTransformer: use G4PrimaryParticle::GetCharge to give
0043 dynamic charge in G4DynamicParticle; set weight of G4Track.
0044 - Introduced G4GeneralParticleSource and related classes.
0045 G4GeneralParticleSource is an alternative primary source
0046 generator to G4ParticleGun. It has all the functions of
0047 G4ParticleGun plus many options for specifying the primary
0048 event particle and vertex.
0049
0050 o Electromagnetic Processes (Low-energy):
0051 --------------------------------------
0052 - Bug fix to G4hLowEnergyIonisation, relevant for particles
0053 with absolute charge value greater than 1.
0054 - Bug fix on electron energy loss fluctuations.
0055 - New features on antiproton ionisation, extending the model for
0056 application to generic materials.
0057 - Modifications in hadron classes (renaming of classes).
0058 - Bug fix related to the charge dependence of ion fluctuations.
0059 - Fixes to G4LowEnergyUtilities to replace the obsolete HepString
0060 with G4String.
0061 - Bug fixes for problems found on setting cuts.
0062 - Bug fix for nuclear stopping table name, improvements in
0063 code quality and added comments for the Software Reference Manual.
0064
0065 o Electromagnetic Processes (Standard):
0066 ------------------------------------
0067 - G4eBremsstrahlung : new cross section and energy-loss parametrisation.
0068 - Update to G4VhEnergyLoss.cc, G4VhEnergyLoss.hh, G4hIonisation.cc
0069 in order to simulate energy losses of ions; correction to cross
0070 section for particles with spin 1.
0071 - Removed class G4ionIonisation.
0072 - Fix in G4VhEnergyLoss and G4ionIonisation in AlongStepDoIt
0073 for particles with Charge^2 > 1.
0074 - Stopped very low energy photons in photo electric effect.
0075 - Moved ElossMessenger to G4VEnergyLoss.
0076 - Bug fix in G4Cerenkov and G4Scintillation: corrected usage of
0077 the 'step length' to position the origins of secondaries.
0078 - Corrections on Polarized Compton:
0079 o Sampling of Phi
0080 o Depolarization probability
0081 - G4IeBremsstrahlung:
0082 o new cross section/en.loss parametrisation, LPM flag.
0083 o corrections in the LPM implementation.
0084 - Changed signature in GetLossWithFluct.
0085 - G4EnergyLossMessenger: created subdirectory /process/eLoss.
0086 Added class description for Software Reference Manual.
0087 - EnergyLossTable: use "const G4Material*" where required.
0088 - Introduced correction to G4Cerenkov to fix a problem when
0089 an optical medium has refraction indices all equal to 1.
0090
0091 o General Processes, Parameterisation, Decay, Optical:
0092 ---------------------------------------------------
0093 - Bug fix in G4Decay to avoid direct modification of G4Track by
0094 the Decay process.
0095 - Fixed bugs in G4ProcTblElement::operator=
0096 - Removed destruction of processes in G4ProcessTable destructor.
0097 - Implemented full STL migration in G4ProcessVector.
0098 - Added thePILfactor and GPIL methods in G4VProcess.
0099 - Added Store/RetrievePhysicsTable() methods.
0100
0101 o Geometry:
0102 --------
0103 QA code cleanup. Cleanup warnings issued by "-Wall -ansi -pedantic"
0104 g++ compiler options.
0105 - Boolean solids:
0106 o G4SubtractionSolid.cc: relaxed behavior in SurfaceNormal(p),
0107 where it is now allowed for a point to be inside the solid.
0108 A message is thrown to cerr instead of a G4Exception.
0109 o Added new set methods for matrix/vectors to G4DisplacedSolid:
0110 SetTransform(G4AffineTransform&),
0111 SetDirectTransform(G4AffineTransform&),
0112 SetFrameRotation(const G4RotationMatrix&),
0113 SetFrameTranslation(const G4ThreeVector&),
0114 SetObjectRotation(const G4RotationMatrix&),
0115 SetObjectTranslation(const G4ThreeVector&).
0116 - BREPS solids:
0117 o Fix in G4Ellipse::Project() for computation of u as function
0118 of atan2().
0119 o Changed return value to be "const" pointer to functions:
0120 - G4BREPSolid::GetPlace()
0121 - G4BREPSolid::GetBBox()
0122 o G4Assembly: fix in destructor, added call to clearAndDestroy().
0123 o G4BREPSolid: changed method NumberOfFaces() to GetNumberOfFaces().
0124 o G4Curve: fixed obsolete workaround for XlC compiler.
0125 o G4OsloMatrix: changed internal class "Matrix" to "G4PointMatrix"
0126 and updated classes making use of it.
0127 o G4ThreeMat:removed unused overloaded operators =, +, -, +=, -=, *.
0128 - CSG solids
0129 o Fix to G4Tubs and G4Cons in DistanceToIn/DistanceToOut:
0130 + fixes to DistanceToOut(p,v,...) to make roots of quadratic
0131 equations more stable.
0132 + added check against negative distance returned.
0133 o Fixes to G4Cons:
0134 + corrected condition on conical surface to consider a real
0135 projection of the conical surface thickness on XY plane
0136 (0.5*kCarTolerance*secRMin instead of 0.5*kCarTolerance),
0137 when dealing with cons with large opening angle.
0138 + fix in constructor to check if one of the Rmin different than 0,
0139 to avoid degenerated cones.
0140 o G4Torus: introduced Newton-based numerical method for computing
0141 roots of equations in DistanceToIn() and DistanceToOut().
0142 o Bug fixed in G4Tubs::Inside(p) for analysis of phi positioning
0143 when on +-fDz surface.
0144 o Fix in G4Tubs::DistanceToOut(p,v,...): initialised sr and sphi to
0145 kInfinity and re-introduced additional condition on check for
0146 Rmin intersection (t2 >= 0).
0147 - Specific solids:
0148 o Fix in G4IntersectingCone.cc: the check for a zero radical has been
0149 adjusted to be less sensitive to round off error in LineHitsCone1(),
0150 LineHitsCone2().
0151 - STEP
0152 o dirobj.h: protected from missing definition of MAXNAMLEN, S_IFMT
0153 and S_IFDIR originally defined in /usr/include/sys/stat.h.
0154 - STEPinterface
0155 o Added GetInstanceManager() method to G4GeometryCreator.
0156 o Changed return value to "const char*" to method Name() and made
0157 post-const in all creator classes.
0158 o Fix in G4Axis2Placement3dCreator::CreateSTEPGeometry(void*).
0159 - Magnetic Field
0160 o Fix in G4FieldManager: added check on existence of allocated
0161 fChordFinder in CreateChordFinder(G4MagneticField*) method.
0162 o Changed return value to be "const" pointer to functions:
0163 + G4EquationOfMotion::GetFieldObj()
0164 + G4FieldManager::GetDetectorField()
0165 + G4MagIntegratorDriver::GetStepper()
0166 o Fixed and corrected signature to G4MagIntegratorDriver::SetHmin().
0167 - Management
0168 o Fixed bug in destructor of G4SolidStore. Memory corruption at
0169 application exit was occuring when Boolean solids were involved.
0170 o Fix in G4VSolid::CalculateClippedPoligonExtent():
0171 removed assumption that pMin<pMax by eliminating "else"
0172 condition.
0173 - Volumes
0174 o Changed return value to be "const" pointer to functions:
0175 - G4LogicalBorderSurface::GetVolume1()
0176 - G4LogicalBorderSurface::GetVolume2()
0177 - G4LogicalSkinSurface::GetLogicalVolume()
0178
0179 o Global:
0180 ------
0181 - Moved G4VStateDependent and G4StateManager classes into
0182 global/management from intercoms.
0183 - Added "Abort" state is added G4ApplicationState.
0184 - Modified G4Exception to change Geant4 status to "Abort".
0185 - Bug fix of "double deleting" in the destructor of G4StateManager.
0186 - Defined G4RandGauss to invoke CLHEP's RandGaussQ,
0187 needed to fix general events' reproducibility problem.
0188 - Added STL wrapper for in management/include/g4std.
0189 - QA code cleanup from Code-Wizard and warnings issued by
0190 "-Wall -ansi -pedantic" g++ compiler options.
0191
0192 o Hadronic Processes:
0193 ------------------
0194 - General update of source code documentation.
0195 - management
0196 o Introduced the possibility for cross-section biasing.
0197 - util
0198 o Added G4Pair class as utility (to be replaced with stl in due course)
0199 o Added protection to G4ReactionDynamics in case no secondary has been
0200 created.
0201 - high_energy
0202 o Fixed bug causing energy non-conservation in pion interactions.
0203 o Code cleanup.
0204 - neutron_hp
0205 o Added several protections against non-physical cross-section values
0206 removed 'const' in operator+ of G4NeutronHPVector to work around
0207 compiler inconsistencies.
0208 o Removed 'const' in GetXsec(G4int i) of G4NeutronHPVector to work
0209 around compiler inconsistencies.
0210 o Introduced self-hashing has table to optimize initialization and
0211 run-time performance (factor 4 in init, 2 at run-time)
0212 o Introduced correct treatment of compound cross-sections
0213 full event by event correlations in Capture below 100 keV regardless
0214 the data quality
0215 o Correction of a Q-value miscalculation in exceptional conditions in
0216 Capture
0217 o Added Protections in case no photon energies given in the capture
0218 data.
0219 o Fixed error in accessing gamma level 49 in n->ngamma inelastic channel
0220 o Added recoil production to several inelastic channels
0221 o Added protections in cases interpolations between expansions in terms
0222 of legendre polynomials lead to non-physical cross-section integrals.
0223 - radiative_decay
0224 o Fix to const-ness of G4DynamicParticle to co-work with latest changes
0225 in 'track' module.
0226 o Code correction in integration of Fermi beta functions.
0227 - diffractive_string
0228 o Updated sampling of impact parameter for re-use.
0229 - kinetic_model
0230 o Fixed a memory leak
0231 o Added protection in case to pre-compound phase was registered
0232 - management(gen)
0233 o Added impact parameter sampling possibility to G4V3DNucleus.
0234 - quark_gluon_string
0235 o Fixed memory leak in G4SPBaryon and G4SPBaryonTable
0236 o Introduced improved of low energy cut-off for string creation
0237 o Updated sampling of impact parameter for re-use
0238 - string_fragmentation
0239 o Design iteration to allow for use of quark molecular dynamics.
0240 - util
0241 o Updated G4Parton to allow for use of quark molecular dynamics.
0242 o Bug-fix in Lorentz boost in G4Fancy3DNucleus
0243 o Added protection of G4Fragment against negative excitation energies
0244 o Fixed memory leaks in G4KinetiTrack
0245 - pre_equilibrium
0246 o Design iteration
0247 o Update of barrier penetration factors
0248 - string_common
0249 o Design iteration to allow for usage of quark molecular dynamics.
0250
0251 NOTE: the consistent data sets for photon evaporation and radio-active
0252 decay (derived from the same version of the ENSDF data) are
0253 provided from Web in the source download area. A previous version
0254 of photon evaporation data is also provided.
0255
0256 o Interfaces:
0257 ----------
0258 - Modified G4UIterminal, G4VUIshell, G4UIcsh and G4UItcsh to display
0259 the break status as a prompt characters.
0260 - Minor fixes in G4VInteractorManager and G4VUIShell.
0261
0262 o Materials:
0263 ---------
0264 - Fixed initialization of pointers in G4SandiaTable constructor
0265 and corrected deletion of fPhotoAbsorptionCof in destructor.
0266
0267 o Parameterisations
0268 -----------------
0269 - New top category for specific parameterisation models:
0270 G4FoamXrayTRmodel, G4GamDistrXrayTRmodel, G4IrregularXrayTRmodel,
0271 G4PAIclusterModel, G4PhotoClusterModel, G4PlateIrrGasXrayTRmodel,
0272 G4RegularXrayTRmodel, G4VClusterModel, G4VXrayTRmodel.
0273
0274 o Particles:
0275 ---------
0276 - Added const to G4DynamicParticle::GetPreAssignedDecayProducts.
0277 - Added method G4IonTable::GetElementNumber.
0278 - Added neutron life time.
0279 - Fixed stable flag for G4PionMinus.
0280
0281 o Run and Intercoms:
0282 -----------------
0283 - Modified G4RunManager and G4RunMessenger: eliminated
0284 G4StateManager::Pause().
0285 - Made G4UImanager state dependent.
0286 - Added Retrieve/StorePhysicsTable() and related methods in
0287 G4VUserPhysicsList and modified BuildPhysicsTable() method.
0288 - Added store/retreivePhysicsTable command in
0289 G4UserPhysicsListMessenger.
0290 - Moved default place for storing random number status out of main
0291 directory.
0292 - Added G4VModularPhysicsList and G4VPhysicsConstructor
0293 to modularize UserPhysicsList.
0294 - Fixed bug in G4VUserPhysicsList::StorePhysicsTable().
0295
0296 o Tracking & Track:
0297 ----------------
0298 - Added protection when PiMinusAbsorptionAtRest and Decay processes
0299 are deactivated.
0300 - Bug fixes in copy constructor of G4ParticleChange.
0301 - Added "const" to G4DynamicParticle pointer of returned value of
0302 G4Track::GetDynamicParticle
0303
0304 o Visualization:
0305 -------------
0306 - Fixed bug in /vis/lights/direction to not refresh view.
0307 - G4PhysicalVolumeModel: added protection against volumes without
0308 material.
0309 - Removed /vis/viewer/update from compound commands /vis/drawVolume
0310 and /vis/specify.
0311
0312 o G4toG4 Tool:
0313 -----------
0314 - Moved tests clGeometry and cltog4 from source/g3tog4/test to
0315 examples/extended/g3tog4. Default build mechanism is now used.
0316 - Bug-fix in destructor for G3RotTable.
0317 - Added handling of ELTU (Elliptical Tube) solid.
0318 - Fixed initialisation of pDPhi for CONS in G3toG4MakeSolid.cc.
0319 - G4PhysicalVolumeModel: added protection against volumes without
0320 material.
0321 - Added protection against multiple positiong of the same physical
0322 volume and added methods ClearG3PosCopy(G4int) and ClearDivision()
0323 in G3VolTableEntry .
0324 - Removed useless G3toG4Debug global method and file.
0325 Replaced verbosity by G3G4DEBUG flag.
0326 - Removed obsolete class/files G3CalcParams[.hh.cc].
0327
0328 - Examples:
0329 --------
0330 o New "advanced" examples for specific applications:
0331 xray_telescope, brachyterapy and gammaray_telescope.
0332
0333 Notes:
0334
0335 o Geant4 3.0 is based on STL and can be installed with strict
0336 ISO/ANSI C++ compliant setup or not. See notes below.
0337
0338 The code and some binary libraries are available through our "Source
0339 Code" Web page:
0340 - see our Geant4 Home Page (http://cern.ch/geant4).
0341
0342 Please refer to the Geant4 User Documentation
0343 (http://cern.ch/geant4/G4UsersDocuments/Overview/html)
0344 for further information about using Geant4.
0345 Updates to the documentation for Geant4 3.0 are expected to be published as
0346 usual within three weeks from the release date.
0347
0348
0349 Contents
0350 --------
0351
0352 1. Supported and Tested Platforms
0353 2. ANAPHE and CLHEP
0354 3. The Standard Template Library (STL)
0355 4. Persistency
0356 5. Compiler Specific Problems
0357 6. Known Run-Time Problems
0358 7. Compilation Warnings
0359 8. Known Run-Time Warnings
0360
0361
0362 1. Supported and Tested Platforms
0363 ---------------------------------
0364
0365 o SUN Solaris 5.6/5.7, C++ 4.2 Patch 104631-04, C++ 5.1 Patch 109490-01.
0366 o HP 10.20, aCC C++ B3910B A.01.23
0367 o Linux 2.2.12-20, gcc C++ egcs-2.91.66 (egcs 1.1.2).
0368 This configuration was tested with the RedHat 6.1 distribution, but
0369 versions of Geant4 have also been compiled successfully on Debian
0370 and Suse distributions.
0371 o NT 4.0 with Service Pack 4 and Cygnus Tools b20 with:
0372 Visual C++ 6.0 Service Pack 2
0373
0374 Platforms also tested but giving rise to some problems - see below:
0375
0376 o DEC V4.0, cxx C++ V6.1-027.
0377
0378 Platforms configured but not tested and not supported:
0379 o SGI V6.5.5, CC 7.2.1 with ObjectSpace
0380 o AIX 4.3.2, xlC compiler with ObjectSpace
0381
0382
0383 2. ANAPHE and CLHEP
0384 -------------------
0385
0386 Geant4 3.0 requires the installation of CLHEP.
0387
0388 See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
0389 Tests have been performed with CLHEP 1.6.0.0.
0390
0391 By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
0392 if the compiler is capable. You need to explicitly disable CLHEP settings in
0393 case you wish non-ISO/ANSI setup on specific compilers (for example, DEC).
0394
0395 Geant4 3.0 coworks with ANAPHE 3.2.0 and components included therein:
0396 Objectivity 5.2.1
0397 ObjectSpace 2.1
0398 HepODBMS 0.3.1.4
0399 CLHEP 1.6.0.0
0400
0401 For more information about ANAPHE see: http://cern.ch/anaphe
0402
0403
0404 3. The Standard Template Library
0405 --------------------------------
0406
0407 The following versions of STL have been tested:
0408
0409 ObjectSpace STL on
0410 DEC, HP and SUN (CC 4.2).
0411
0412 See ObjectSpace (http://www.objectspace.com).
0413
0414 "Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.1).
0415
0416 This is selected at installation/compile time by the environment variable
0417 G4USE_OSPACE in the case of the former - see documentation.
0418
0419 NOTES:
0420 - Be aware that by default, the installation scripts will expect to use
0421 the native STL implementation. You must set the G4USE_OSPACE variable
0422 in the environment in order to select the ObjectSpace implementation.
0423
0424 - Platform specific setup:
0425 o DEC: ObjectSpace is required in non ISO/ANSI setup.
0426 Native STL is required for ISO/ANSI setup.
0427 o HP: either ObjectSpace or native STL can be used (non ISO/ANSI setup).
0428 o SUN: ObjectSpace is required in non ISO/ANSI setup (CC 4.2).
0429 Native STL is required for ISO/ANSI setup (CC 5.1 only).
0430 o Linux: Native STL is required (non ISO/ANSI setup).
0431 o NT: Native STL and ISO/ANSI setup required.
0432
0433 In the interest of stability, part of the code in Geant4 3.0 still makes use
0434 of the "STL Interface" wrapper classes, used for allowing the migration from
0435 Rogue Wave Tools.h++ container library. For these the emphasis has remained
0436 on correct behaviour, rather than performance.
0437
0438
0439 4. Persistency
0440 --------------
0441
0442 Platform
0443 --------
0444
0445 Persistency in Geant4 3.0 release is tested on the following
0446 platforms:
0447
0448 G4SYSTEM OS C++ compiler HepODBMS Objectivity
0449 --------- ----------- ------------ --------- -----------
0450 SUN-CC SunOS 5.6 CC 4.2 0.3.1.4 5.2.1
0451 SUN-CC5 SunOS 5.7 CC 6.0 0.3.2.3 (*) 6.0 (*)
0452 Linux-g++ RedHat 6.1 egcs-2.91.66 0.3.1.4 5.2.1
0453
0454 (*) HepODBMS header files must be prepared with "ooddlx -noline" option.
0455 See below.
0456
0457 Known Problems
0458 --------------
0459
0460 - There are several warning messages on some platforms during the
0461 installation of the libraries and the compilation of the examples.
0462 Most of them can be safely ignored. It is annoying but hard to get
0463 rid of them due to various reasons.
0464
0465 - A warning message "Could not find naming root directory" appears at
0466 runtime of the persistency examples. It is generaged by HepDbApplication
0467 in HepODBMS. It can be ignored.
0468
0469 - On Solaris7 (SUN-CC5), persistent header files has to be generated by
0470 ooddlx with "-noline" option to work around a bug in C++ compiler.
0471 This workaround applies not only to Geant4 Persistency category but
0472 also to HepODBMS, and the user defined ddl files as well. This option
0473 removes the "#line" directive of the file name and the line number of
0474 the original ddl file. As a consequences, C++ compiler no longer
0475 "tell" the correct file name and the line number of the ddl file if
0476 compiler error occurs. Try to identify the compiler error by first
0477 looking into the header file generated by ooddlx, and then locate the
0478 source of the problem by looking into the ddl file.
0479 A patch to the compiler is expected from Sun.
0480
0481
0482 5. Compiler Specific Problems
0483 -----------------------------
0484
0485 o DEC V4.0, cxx C++ V6.1-027.
0486
0487 - We have found cases of mis-compilation of min and max templates
0488 on DEC. We have traced those which cause serious malfunction
0489 but there is no guarantee that there are no other cases.
0490 Detailed inspection of assembler output suggests that this
0491 problem might not be confined to min and max. This has been
0492 reported to DEC/Compaq. We understand a new version 6.2 of the
0493 compiler is now available. However we cannot guarantee correct
0494 execution of Geant4 on DEC with the current version of the
0495 compiler.
0496 - A bug in cin.getline() system function causes an anomalous
0497 behavior when running in interactive-mode on DEC-cxx 6.1 in
0498 ISO/ANSI mode. We tested the bug has been fixed in more recent
0499 versions of the compiler.
0500
0501
0502 6. Known Run-Time Problems and Limitations
0503 ------------------------------------------
0504
0505 For a complete list of outstanding run-time problems and to submit any
0506 problem you may find running this version of Geant4, please refer to the
0507 Geant4 Problem Reporting System, available on the Web at this address:
0508
0509 http://cern.ch/geant4/problemreport
0510
0511
0512 7. Compilation Warnings
0513 -----------------------
0514
0515 There are compilation warnings on some platforms. We do not believe
0516 that any will lead to incorrect run-time behaviour, but we are working
0517 on reducing them.
0518
0519
0520 8. Known Run-Time Warnings
0521 --------------------------
0522
0523 The following messages can be written to error output while tracking. We
0524 believe none give rise to incorrect behaviour.
0525
0526 o G4PropagateInField: Warning: Particle is looping
0527 - tracking in field will be stopped.
0528 It has performed 10000 steps in Field while a maximum of 10000
0529 are allowed.