source: trunk/ReleaseNotes/ReleaseNotes4.3.0.txt @ 1354

Last change on this file since 1354 was 1337, checked in by garnier, 14 years ago

tag geant4.9.4 beta 1 + modifs locales

File size: 22.1 KB
Line 
1
2                 Geant4 3.0 Release Notes
3                 ------------------------
4
5                                                     15th December 2000
6
7These are the main new features/fixes included in this release (for the
8detailed list of fixes/additions, please refer to the related History files):
9
10  o Analysis
11    --------
12    - New module for analysis/histogramming management and concrete
13      drivers interfaces through AIDA: JAS, Lizard, OpenScientist.
14
15  o Configuration:
16    -------------
17    - Added unsupported configuration WIN32-g++
18      for Windows/NT/9X and Cygwin with g++ compiler.
19    - Introduced changes to handle analysis module.
20    - Incorporated building of shared libraries into .gmk files
21      (NOTE: tests on shared libraries currently perfomed only on
22             Linux-g++ and SUN-CC platforms)
23      o Introduced new variables steering the building of shared/static
24        libraries (static still default): G4LIB_BUILD_SHARED and
25        G4LIB_BUILD_STATIC.
26      o Introduced new variable (G4LIB_USE_GRANULAR) to force using of
27        granular libraries.
28    - Added rules for "includes" gmake target, to copy all header files
29      in a single location specified by $G4INCLUDE path.
30    - Introduced SUN-CC5 G4SYSTEM architecture for SUN CC 5.1 compiler.
31
32  o Event:
33    -----
34    - Added new Set methods to G4PrimaryVertex and G4PrimaryParticle.
35    - Introduced ParticleGun for Ions and weights for primary vertex
36      and particle:
37      o G4ParticleGun: added Set/GetParticleCharge methods for ions.
38      o G4ParticleGunMessenger: added new command of /gun/ion;
39        modified command of /gun/particle.
40      o G4PrimaryParticle: add Set/GetCharge methods, added weight.
41      o G4PrimaryVertex: added weight.
42      o G4PrimaryTransformer: use G4PrimaryParticle::GetCharge to give
43        dynamic charge in G4DynamicParticle; set weight of G4Track.
44    - Introduced G4GeneralParticleSource and related classes.
45      G4GeneralParticleSource is an alternative primary source
46      generator to G4ParticleGun. It has all the functions of
47      G4ParticleGun plus many options for specifying the primary
48      event particle and vertex.
49
50  o Electromagnetic Processes (Low-energy):
51    --------------------------------------
52    - Bug fix to G4hLowEnergyIonisation, relevant for particles
53      with absolute charge value greater than 1.
54    - Bug fix on electron energy loss fluctuations.
55    - New features on antiproton ionisation, extending the model for
56      application to generic materials.
57    - Modifications in hadron classes (renaming of classes).
58    - Bug fix related to the charge dependence of ion fluctuations.
59    - Fixes to G4LowEnergyUtilities to replace the obsolete HepString
60      with G4String.
61    - Bug fixes for problems found on setting cuts.
62    - Bug fix for nuclear stopping table name, improvements in
63      code quality and added comments for the Software Reference Manual.
64
65  o Electromagnetic Processes (Standard):
66    ------------------------------------
67    - G4eBremsstrahlung : new cross section and energy-loss parametrisation.
68    - Update to G4VhEnergyLoss.cc, G4VhEnergyLoss.hh, G4hIonisation.cc
69      in order to simulate energy losses of ions; correction to cross
70      section for particles with spin 1.
71    - Removed class G4ionIonisation.
72    - Fix in G4VhEnergyLoss and G4ionIonisation in AlongStepDoIt
73      for particles with Charge^2 > 1.
74    - Stopped very low energy photons in photo electric effect.
75    - Moved ElossMessenger to G4VEnergyLoss.
76    - Bug fix in G4Cerenkov and G4Scintillation: corrected usage of
77      the 'step length' to position the origins of secondaries.
78    - Corrections on Polarized Compton:
79      o Sampling of Phi
80      o Depolarization probability
81    - G4IeBremsstrahlung:
82      o new cross section/en.loss parametrisation, LPM flag.
83      o corrections in the LPM implementation.
84    - Changed signature in GetLossWithFluct.
85    - G4EnergyLossMessenger: created subdirectory /process/eLoss.
86      Added class description for Software Reference Manual.
87    - EnergyLossTable: use "const G4Material*" where required.
88    - Introduced correction to G4Cerenkov to fix a problem when
89      an optical medium has refraction indices all equal to 1.
90
91  o General Processes, Parameterisation, Decay, Optical:
92    ---------------------------------------------------
93    - Bug fix in G4Decay to avoid direct modification of G4Track by
94      the Decay process.
95    - Fixed bugs in G4ProcTblElement::operator=
96    - Removed destruction of processes in G4ProcessTable destructor.
97    - Implemented full STL migration in G4ProcessVector.
98    - Added thePILfactor and GPIL methods in G4VProcess.
99    - Added Store/RetrievePhysicsTable() methods.
100
101  o Geometry:
102    --------
103    QA code cleanup. Cleanup warnings issued by "-Wall -ansi -pedantic"
104    g++ compiler options.
105    - Boolean solids:
106      o G4SubtractionSolid.cc: relaxed behavior in SurfaceNormal(p),
107        where it is now allowed for a point to be inside the solid.
108        A message is thrown to cerr instead of a G4Exception.
109      o Added new set methods for matrix/vectors to G4DisplacedSolid:
110        SetTransform(G4AffineTransform&),
111        SetDirectTransform(G4AffineTransform&),
112        SetFrameRotation(const G4RotationMatrix&),
113        SetFrameTranslation(const G4ThreeVector&),
114        SetObjectRotation(const G4RotationMatrix&),
115        SetObjectTranslation(const G4ThreeVector&).
116    - BREPS solids:
117      o Fix in G4Ellipse::Project() for computation of u as function
118        of atan2().
119      o Changed return value to be "const" pointer to functions:
120        - G4BREPSolid::GetPlace()
121        - G4BREPSolid::GetBBox()
122      o G4Assembly: fix in destructor, added call to clearAndDestroy().
123      o G4BREPSolid: changed method NumberOfFaces() to GetNumberOfFaces().
124      o G4Curve: fixed obsolete workaround for XlC compiler.
125      o G4OsloMatrix: changed internal class "Matrix" to "G4PointMatrix"
126        and updated classes making use of it.
127      o G4ThreeMat:removed unused overloaded operators =, +, -, +=, -=, *.
128    - CSG solids
129      o Fix to G4Tubs and G4Cons in DistanceToIn/DistanceToOut:
130        + fixes to DistanceToOut(p,v,...) to make roots of quadratic
131          equations more stable.
132        + added check against negative distance returned.
133      o Fixes to G4Cons:
134        + corrected condition on conical surface to consider a real
135          projection of the conical surface thickness on XY plane
136          (0.5*kCarTolerance*secRMin instead of 0.5*kCarTolerance),
137          when dealing with cons with large opening angle.
138        + fix in constructor to check if one of the Rmin different than 0,
139          to avoid degenerated cones.
140      o G4Torus: introduced Newton-based numerical method for computing
141        roots of equations in DistanceToIn() and DistanceToOut().
142      o Bug fixed in G4Tubs::Inside(p) for analysis of phi positioning
143        when on +-fDz surface.
144      o Fix in G4Tubs::DistanceToOut(p,v,...): initialised sr and sphi to
145        kInfinity and re-introduced additional condition on check for
146        Rmin intersection (t2 >= 0).
147    - Specific solids:
148      o Fix in G4IntersectingCone.cc: the check for a zero radical has been
149        adjusted to be less sensitive to round off error in LineHitsCone1(),
150        LineHitsCone2().
151    - STEP
152      o dirobj.h: protected from missing definition of MAXNAMLEN, S_IFMT
153        and S_IFDIR originally defined in /usr/include/sys/stat.h.
154    - STEPinterface
155      o Added GetInstanceManager() method to G4GeometryCreator.
156      o Changed return value to "const char*" to method Name() and made
157        post-const in all creator classes.
158      o Fix in G4Axis2Placement3dCreator::CreateSTEPGeometry(void*).
159    - Magnetic Field
160      o Fix in G4FieldManager: added check on existence of allocated
161        fChordFinder in CreateChordFinder(G4MagneticField*) method.
162      o Changed return value to be "const" pointer to functions:
163        + G4EquationOfMotion::GetFieldObj()
164        + G4FieldManager::GetDetectorField()
165        + G4MagIntegratorDriver::GetStepper()
166      o Fixed and corrected signature to G4MagIntegratorDriver::SetHmin().
167    - Management
168      o Fixed bug in destructor of G4SolidStore. Memory corruption at
169        application exit was occuring when Boolean solids were involved.
170      o Fix in G4VSolid::CalculateClippedPoligonExtent():
171        removed assumption that pMin<pMax by eliminating "else"
172        condition.
173    - Volumes
174      o Changed return value to be "const" pointer to functions:
175        - G4LogicalBorderSurface::GetVolume1()
176        - G4LogicalBorderSurface::GetVolume2()
177        - G4LogicalSkinSurface::GetLogicalVolume()
178
179  o Global:
180    ------
181    - Moved G4VStateDependent and G4StateManager classes into
182      global/management from intercoms.
183    - Added "Abort" state is added G4ApplicationState.
184    - Modified G4Exception to change Geant4 status to "Abort".
185    - Bug fix of "double deleting" in the destructor of G4StateManager.
186    - Defined G4RandGauss to invoke CLHEP's RandGaussQ,
187      needed to fix general events' reproducibility problem.
188    - Added STL wrapper for in management/include/g4std.
189    - QA code cleanup from Code-Wizard and warnings issued by
190      "-Wall -ansi -pedantic" g++ compiler options.
191
192  o Hadronic Processes:
193    ------------------
194    - General update of source code documentation.
195    - management
196      o Introduced the possibility for cross-section biasing.
197    - util
198      o Added G4Pair class as utility (to be replaced with stl in due course)
199      o Added protection to G4ReactionDynamics in case no secondary has been
200        created.
201    - high_energy
202      o Fixed bug causing energy non-conservation in pion interactions.
203      o Code cleanup.
204    - neutron_hp
205      o Added several protections against non-physical cross-section values
206        removed 'const' in operator+ of G4NeutronHPVector to work around
207        compiler inconsistencies.
208      o Removed 'const' in GetXsec(G4int i) of G4NeutronHPVector to work
209        around compiler inconsistencies.
210      o Introduced self-hashing has table to optimize initialization and
211        run-time performance (factor 4 in init, 2 at run-time)         
212      o Introduced correct treatment of compound cross-sections
213        full event by event correlations in Capture below 100 keV regardless
214        the data quality
215      o Correction of a Q-value miscalculation in exceptional conditions in
216        Capture
217      o Added Protections in case no photon energies given in the capture
218        data.
219      o Fixed error in accessing gamma level 49 in n->ngamma inelastic channel
220      o Added recoil production to several inelastic channels
221      o Added protections in cases interpolations between expansions in terms
222        of legendre polynomials lead to non-physical cross-section integrals.
223    - radiative_decay
224      o Fix to const-ness of G4DynamicParticle to co-work with latest changes
225        in 'track' module.
226      o Code correction in integration of Fermi beta functions.
227    - diffractive_string
228      o Updated sampling of impact parameter for re-use.
229    - kinetic_model
230      o Fixed a memory leak
231      o Added protection in case to pre-compound phase was registered
232    - management(gen)
233      o Added impact parameter sampling possibility to G4V3DNucleus.
234    - quark_gluon_string
235      o Fixed memory leak in G4SPBaryon and G4SPBaryonTable
236      o Introduced improved of low energy cut-off for string creation
237      o Updated sampling of impact parameter for re-use
238    - string_fragmentation
239      o Design iteration to allow for use of quark molecular dynamics.
240    - util
241      o Updated G4Parton to allow for use of quark molecular dynamics.
242      o Bug-fix in Lorentz boost in G4Fancy3DNucleus
243      o Added protection of G4Fragment against negative excitation energies
244      o Fixed memory leaks in G4KinetiTrack
245    - pre_equilibrium
246      o Design iteration
247      o Update of barrier penetration factors
248    - string_common
249      o Design iteration to allow for usage of quark molecular dynamics.
250
251    NOTE: the consistent data sets for photon evaporation and radio-active
252          decay (derived from the same version of the ENSDF data) are
253          provided from Web in the source download area. A previous version
254          of photon evaporation data is also provided.
255
256  o Interfaces:
257    ----------
258    - Modified G4UIterminal, G4VUIshell, G4UIcsh and G4UItcsh to display
259      the break status as a prompt characters.
260    - Minor fixes in G4VInteractorManager and G4VUIShell.
261
262  o Materials:
263    ---------
264    - Fixed initialization of pointers in G4SandiaTable constructor
265      and corrected deletion of fPhotoAbsorptionCof in destructor.
266
267  o Parameterisations
268    -----------------
269    - New top category for specific parameterisation models:
270      G4FoamXrayTRmodel, G4GamDistrXrayTRmodel, G4IrregularXrayTRmodel,
271      G4PAIclusterModel, G4PhotoClusterModel, G4PlateIrrGasXrayTRmodel,
272      G4RegularXrayTRmodel, G4VClusterModel, G4VXrayTRmodel.
273
274  o Particles:
275    ---------
276    - Added const to G4DynamicParticle::GetPreAssignedDecayProducts.
277    - Added method G4IonTable::GetElementNumber.
278    - Added neutron life time.
279    - Fixed stable flag for G4PionMinus.
280
281  o Run and Intercoms:
282    -----------------
283    - Modified G4RunManager and G4RunMessenger: eliminated
284      G4StateManager::Pause().
285    - Made G4UImanager state dependent.
286    - Added Retrieve/StorePhysicsTable() and related methods in
287      G4VUserPhysicsList and modified BuildPhysicsTable() method.
288    - Added store/retreivePhysicsTable command in
289      G4UserPhysicsListMessenger.
290    - Moved default place for storing random number status out of main
291      directory.
292    - Added G4VModularPhysicsList and G4VPhysicsConstructor
293      to modularize UserPhysicsList.
294    - Fixed bug in G4VUserPhysicsList::StorePhysicsTable().
295
296  o Tracking & Track:
297    ----------------
298    - Added protection when PiMinusAbsorptionAtRest and Decay processes
299      are deactivated.
300    - Bug fixes in copy constructor of G4ParticleChange.
301    - Added "const" to G4DynamicParticle pointer of returned value of
302      G4Track::GetDynamicParticle
303
304  o Visualization:
305    -------------
306    - Fixed bug in /vis/lights/direction to not refresh view.
307    - G4PhysicalVolumeModel: added protection against volumes without
308      material.
309    - Removed /vis/viewer/update from compound commands /vis/drawVolume
310      and /vis/specify.
311
312  o G4toG4 Tool:
313    -----------
314    - Moved tests clGeometry and cltog4 from source/g3tog4/test to
315      examples/extended/g3tog4. Default build mechanism is now used.
316    - Bug-fix in destructor for G3RotTable.
317    - Added handling of ELTU (Elliptical Tube) solid.
318    - Fixed initialisation of pDPhi for CONS in G3toG4MakeSolid.cc.
319    - G4PhysicalVolumeModel: added protection against volumes without
320      material.
321    - Added protection against multiple positiong of the same physical
322      volume and added methods ClearG3PosCopy(G4int) and ClearDivision()
323      in G3VolTableEntry .
324    - Removed useless G3toG4Debug global method and file.
325      Replaced verbosity by G3G4DEBUG flag.
326    - Removed obsolete class/files G3CalcParams[.hh.cc].
327
328  - Examples:
329    --------
330    o New "advanced" examples for specific applications:
331      xray_telescope, brachyterapy and gammaray_telescope.
332
333Notes:
334
335  o  Geant4 3.0 is based on STL and can be installed with strict
336     ISO/ANSI C++ compliant setup or not. See notes below.
337
338The code and some binary libraries are available through our "Source
339Code" Web page:
340- see our Geant4 Home Page (http://cern.ch/geant4).
341
342Please refer to the Geant4 User Documentation
343(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
344for further information about using Geant4.
345Updates to the documentation for Geant4 3.0 are expected to be published as
346usual within three weeks from the release date.
347
348
349Contents
350--------
351
352  1. Supported and Tested Platforms
353  2. ANAPHE and CLHEP
354  3. The Standard Template Library (STL)
355  4. Persistency
356  5. Compiler Specific Problems
357  6. Known Run-Time Problems
358  7. Compilation Warnings
359  8. Known Run-Time Warnings
360
361
3621. Supported and Tested Platforms
363---------------------------------
364
365  o SUN Solaris 5.6/5.7, C++ 4.2 Patch 104631-04, C++ 5.1 Patch 109490-01.
366  o HP 10.20, aCC C++ B3910B A.01.23
367  o Linux 2.2.12-20, gcc C++ egcs-2.91.66 (egcs 1.1.2).
368      This configuration was tested with the RedHat 6.1 distribution, but
369      versions of Geant4 have also been compiled successfully on Debian
370      and Suse distributions.
371  o NT 4.0 with Service Pack 4 and Cygnus Tools b20 with:
372      Visual C++ 6.0 Service Pack 2
373
374Platforms also tested but giving rise to some problems - see below:
375
376  o DEC V4.0, cxx C++ V6.1-027.
377
378Platforms configured but not tested and not supported:
379  o SGI V6.5.5, CC 7.2.1 with ObjectSpace
380  o AIX 4.3.2, xlC compiler with ObjectSpace
381
382
3832. ANAPHE and CLHEP
384-------------------
385
386Geant4 3.0 requires the installation of CLHEP.
387
388See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
389Tests have been performed with CLHEP 1.6.0.0.
390
391By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
392if the compiler is capable. You need to explicitly disable CLHEP settings in
393case you wish non-ISO/ANSI setup on specific compilers (for example, DEC).
394
395Geant4 3.0 coworks with ANAPHE 3.2.0 and components included therein:
396  Objectivity 5.2.1
397  ObjectSpace 2.1
398  HepODBMS 0.3.1.4
399  CLHEP 1.6.0.0
400
401For more information about ANAPHE see: http://cern.ch/anaphe
402
403
4043. The Standard Template Library
405--------------------------------
406
407The following versions of STL have been tested:
408
409   ObjectSpace STL on
410          DEC, HP and SUN (CC 4.2).
411
412          See ObjectSpace (http://www.objectspace.com).
413
414   "Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.1).
415
416This is selected at installation/compile time by the environment variable
417G4USE_OSPACE in the case of the former - see documentation.
418
419NOTES:
420- Be aware that by default, the installation scripts will expect to use
421  the native STL implementation. You must set the G4USE_OSPACE variable
422  in the environment in order to select the ObjectSpace implementation.
423
424- Platform specific setup:
425  o DEC:   ObjectSpace is required in non ISO/ANSI setup.
426           Native STL is required for ISO/ANSI setup.
427  o HP:    either ObjectSpace or native STL can be used (non ISO/ANSI setup).
428  o SUN:   ObjectSpace is required in non ISO/ANSI setup (CC 4.2).
429           Native STL is required for ISO/ANSI setup (CC 5.1 only).
430  o Linux: Native STL is required (non ISO/ANSI setup).
431  o NT:    Native STL and ISO/ANSI setup required.
432
433In the interest of stability, part of the code in Geant4 3.0 still makes use
434of the "STL Interface" wrapper classes, used for allowing the migration from
435Rogue Wave Tools.h++ container library.  For these the emphasis has remained
436on correct behaviour, rather than performance.
437
438
4394. Persistency
440--------------
441
442 Platform
443 --------
444
445 Persistency in Geant4 3.0 release is tested on the following
446 platforms:
447
448 G4SYSTEM       OS        C++ compiler   HepODBMS    Objectivity
449 ---------  -----------   ------------   ---------   -----------
450 SUN-CC     SunOS 5.6     CC 4.2         0.3.1.4     5.2.1
451 SUN-CC5    SunOS 5.7     CC 6.0         0.3.2.3 (*) 6.0 (*)
452 Linux-g++  RedHat 6.1    egcs-2.91.66   0.3.1.4     5.2.1
453
454 (*) HepODBMS header files must be prepared with "ooddlx -noline" option.
455     See below.
456
457 Known Problems
458 --------------
459
460 - There are several warning messages on some platforms during the
461   installation of the libraries and the compilation of the examples.
462   Most of them can be safely ignored.  It is annoying but hard to get
463   rid of them due to various reasons.
464
465 - A warning message "Could not find naming root directory" appears at
466   runtime of the persistency examples. It is generaged by HepDbApplication
467   in HepODBMS. It can be ignored.
468
469 - On Solaris7 (SUN-CC5), persistent header files has to be generated by
470   ooddlx with "-noline" option to work around a bug in C++ compiler.
471   This workaround applies not only to Geant4 Persistency category but
472   also to HepODBMS, and the user defined ddl files as well.  This option
473   removes the "#line" directive of the file name and the line number of
474   the original ddl file.  As a consequences, C++ compiler no longer
475   "tell" the correct file name and the line number of the ddl file if
476   compiler error occurs.  Try to identify the compiler error by first
477   looking into the header file generated by ooddlx, and then locate the
478   source of the problem by looking into the ddl file.
479   A patch to the compiler is expected from Sun.
480   
481
4825. Compiler Specific Problems
483-----------------------------
484
485  o DEC V4.0, cxx C++ V6.1-027.
486
487    - We have found cases of mis-compilation of min and max templates
488      on DEC.  We have traced those which cause serious malfunction
489      but there is no guarantee that there are no other cases.
490      Detailed inspection of assembler output suggests that this
491      problem might not be confined to min and max.  This has been
492      reported to DEC/Compaq.  We understand a new version 6.2 of the
493      compiler is now available.  However we cannot guarantee correct
494      execution of Geant4 on DEC with the current version of the
495      compiler.
496    - A bug in cin.getline() system function causes an anomalous
497      behavior when running in interactive-mode on DEC-cxx 6.1 in
498      ISO/ANSI mode. We tested the bug has been fixed in more recent
499      versions of the compiler.
500
501
5026. Known Run-Time Problems and Limitations
503------------------------------------------
504
505For a complete list of outstanding run-time problems and to submit any
506problem you may find running this version of Geant4, please refer to the
507Geant4 Problem Reporting System, available on the Web at this address:
508
509    http://cern.ch/geant4/problemreport
510
511
5127. Compilation Warnings
513-----------------------
514
515There are compilation warnings on some platforms.  We do not believe
516that any will lead to incorrect run-time behaviour, but we are working
517on reducing them.
518
519
5208. Known Run-Time Warnings
521--------------------------
522
523The following messages can be written to error output while tracking.  We
524believe none give rise to incorrect behaviour.
525
526  o G4PropagateInField: Warning: Particle is looping
527    -  tracking in field will be stopped.
528       It has performed 10000 steps in Field  while a maximum of 10000
529       are allowed.
Note: See TracBrowser for help on using the repository browser.