source: trunk/source/geometry/volumes/History @ 1342

Last change on this file since 1342 was 1315, checked in by garnier, 14 years ago

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

File size: 41.4 KB
Line 
1$Id: History,v 1.170 2010/04/23 10:27:49 gcosmo Exp $
2-------------------------------------------------------------------
3
4     =========================================================
5     Geant4 - an Object-Oriented Toolkit for Simulation in HEP
6     =========================================================
7
8                      Category History file
9                      ---------------------
10This file should be used by G4 developers and category coordinators
11to briefly summarize all major modifications introduced in the code
12and keep track of all category-tags.
13It DOES NOT substitute the  CVS log-message one should put at every
14committal in the CVS repository !
15
16     ----------------------------------------------------------
17     * Reverse chronological order (last date on top), please *
18     ----------------------------------------------------------
19
20Apr 23rd, 2010      G.Cosmo - geomvol-V09-03-06
21- Corrected initialisation of dummy copy-ctor in G4EnhancedVecAllocator,
22  fixing compilation problem on WIN32-VC.
23
24Apr 22nd, 2010      G.Cosmo - geomvol-V09-03-05
25- Make use of specialized allocator for handling internal vector in
26  G4NavigatorHistory, globally controlling the memory pool.
27  Measured ~2% average run-time speed-up.
28
29Apr 15th, 2010      G.Cosmo - geomvol-V09-03-04
30- Combine use of G4Allocator for vectors in G4NavigationHistory with use
31  of assign().
32
33Apr 13th, 2010      G.Cosmo - geomvol-V09-03-03
34- Added Reset() method to G4ReflectionFactory for clearing maps of
35  constituent and reflected volumes.
36
37Apr 9th, 2010       G.Cosmo - geomvol-V09-03-02
38- Use more elegant solution in G4NavigationHistory copy-ctor. Adopt assign().
39
40Mar 31th, 2010      G.Cosmo - geomvol-V09-03-01
41- Restore original vector allocation, but adopt simple loop copy within
42  copy-constructor. Should provide slight performance improvement and keep
43  locality.
44
45Dec 11th, 2009      G.Cosmo - geomvol-V09-03-00
46- Use G4Allocator for vectors in G4NavigationHistory, to optimise memory
47  management and reduce fragmentation.
48
49Nov 6th, 2009       G.Cosmo - geomvol-V09-02-04
50- Moved inline constructors to source for G4TouchableHistory, to avoid problems
51  of memory alignment in allocation.
52
53Nov 3rd, 2009       G.Cosmo - geomvol-V09-02-03
54- Use G4Allocator for dynamic allocation of G4TouchableHistory objects.
55  Should reduce the number of direct calls to malloc and memory fragmentation.
56  Measured an average improvement of 3-5% in CPU speed, and same memory
57  footprint.
58
59Sep 22nd, 2009      G.Cosmo - geomvol-V09-02-02
60- Added missing implementation for composing G4AssemblyVolume constructor.
61
62Sep 21st, 2009      G.Cosmo - geomvol-V09-02-01
63- Fix in G4PVParameterised::CheckOverlaps() to not modify daughter volume
64  transformation matrix for application to points in the daughter's frame.
65  Adopt Inverse() instead of Invert() in call to G4AffineTransform.
66  Addresses problem report #1078.
67
68Aug 3rd, 2009       G.Cosmo - geomvol-V09-02-00
69- Get rid of unnecessary call to Reset() in G4NavigationHistory destructor.
70- Some code formatting...
71
72Nov 13th, 2008      G.Cosmo - geomvol-V09-01-03
73- Corrected singleton definition for G4ReflectionFactory.
74- Return 'const G4String&' instead of copy in GetVolumesNameExtension().
75
76Aug 19th, 2008      G.Cosmo - geomvol-V09-01-02
77- Restored names of methods DumpInfo() to G4LogicalSkinSurface and
78  G4LogicalBorderSurface.
79
80Jul 16th, 2008      P.Gumplinger - geomvol-V09-01-01
81- Change the name of the method DumpInfo() to DumpTableInfo()
82  in G4LogicalSkinSurface and G4LogicalBorderSurface.
83
84Feb 4th, 2008       I.Hrivnacova - geomvol-V09-01-00
85- Fixed problem of double-deletion of rotation matrix in destructor
86  of G4AssemblyVolume.
87
88Nov 16th, 2007      G.Cosmo - geomvol-V09-00-01
89- Added inline specification to methods in G4AssemblyTriplet class.
90
91Oct 12th, 2007      P.Gumplinger - geomvol-V09-00-00
92- Minor cleanup: moved typedef to begin of include files and rename to
93  theSkinSurfaceTable in G4LogicalBorderSurface and G4LogicalSkinSurface classes.
94- Added explicit initialisation of first volume entry to zero in
95  G4TouchableHistory constructor, to ensure correct behavior for 'out-of-world'
96  touchable handle. (J.Apostolakis)
97
98May 11th, 2007      G.Cosmo - geomvol-V08-03-00
99- Use call to G4GeometryTolerance instead of kCarTolerance in
100  G4ReflectionFactory.
101- Requires tag "global-V08-03-00" and related tag set.
102
103Apr 11th, 2007      G.Cosmo - geomvol-V08-02-02
104- More extensions to the CheckOverlaps() algorithm:
105  o Added possibility to define a tolerance for reporting overlaps; added
106    new argument to signature, by default tolerance is set to zero.
107  o Optimised implementation for detecting daughter volumes which are
108    totally overlapping.
109  o Added check on current volume to optimise and correctly handle the
110    case of explicit call of the method when geometry is constructed.
111
112Mar 23rd, 2007      G.Cosmo - geomvol-V08-02-01
113- Extended CheckOverlaps() algorithm, detect also cases of daughter volumes
114  which are totally overlapping. Made warning message message more clear.
115
116Jan 31st, 2007      G.Cosmo - geomvol-V08-02-00
117- Added flag for controlling verbosity to CheckOverlaps() method for
118  G4PVPlacement and G4PVParameterised. By default, verbosity is ON.
119- Requires tag "geommng-V08-02-00".
120
121Nov 10th, 2006      G.Cosmo - geomvol-V08-01-00
122- Use 'direct' rotation/translation instead of 'frame' rotation/translation
123  in concrete CheckOverlaps() method of G4PVPlacement and G4PVParameterised
124  volumes. Fixes a problem reported for wrong transformation associated
125  to overlap-check in displaced boolean solids (V.Grichine).
126- Updated unit test 'testG4NavigationHistory': added test for NULL
127  navigation-history (J.Apostolakis).
128
129May 5th, 2006       G.Cosmo - geomvol-V08-00-04
130- G4AssemblyVolume:
131  o Corrected decomposition of transformation in G4AssemblyVolume.
132  o Added methods GetVolumesIterator() and TotalImprintedVolumes() for
133    accessing the list of physical-volumes imprinted
134  o Cleaned up comments and descriptions.
135- Corrected conditions for overlap check in G4PVPlacement constructors.
136
137May 2nd, 2006       G.Cosmo - geomvol-V08-00-03
138- G4AssemblyVolume: now G4AssemblyVolume can support assembly of assemblies
139  and reflections. Reviewed and modified MakeImprint() methods to act
140  recursively (kind contribution of I.Hrivnacova).
141- Extended overlaps check also for reflection of placements.
142- Moved G4AssemblyTriplet class from 'management' module.
143- Protect against checking overlaps on world volume placement ...
144- Requires tag "geommng-V08-00-04".
145
146Apr 4th, 2006       G.Cosmo - geomvol-V08-00-02
147- Moved G4VNestedParameterisation and G4VVolumeMaterialScanner classes to
148  'management' module, to support material scanning in G4Region.
149- Requires tag "geommng-V08-00-01".
150
151Mar 15th, 2006      G.Cosmo - geomvol-V08-00-01
152- G4AssemblyVolume: added default boolean argument to MakeImprint()
153  methods to allow for optional check for overlaps of constituent volumes.
154
155Dec 20th, 2005      G.Cosmo - geomvol-V08-00-00
156- G4AssemblyVolume: fixed initialisation of names for placed volumes
157  which was corrupted after migration to <sstream> as side effect.
158
159Nov 24th, 2005      J. Apostolakis - geomvol-V07-01-05
160- Revised implementation of G4VNestedParameterisation,
161  taking out use of G4PhysicalTouchable.
162- Added implementations of virtual methods to identify materials
163  for nested parameterisations.
164- Removed G4PhysicalTouchable helper class.
165
166Nov 16th, 2005      J. Apostolakis - geomvol-V07-01-04
167- Corrections to tag below:
168  o Fixed G4PVPlacement's IsRegularStructure() method.
169  o Added missing methods for regular-structures to G4PhysicalTouchable.
170
171Nov 11th, 2005      J. Apostolakis - geomvol-V07-01-03
172- Added methods to identify regular structures in physical-volume derived
173  classes (replicas, parameterised volumes, placements).
174  New virtual methods implemented:
175   - IsRegularStructure()     [from G4VPhysicalVolume, defined in Replica]
176   - GetRegularStructureId()
177  Note that G4PVPlacement always return 'false' and 0 respectively.
178  New method defined for Replicas:
179   - SetRegularStructureId()  virtual
180
181Nov 9th, 2005       G. Cosmo - geomvol-V07-01-02
182- Added fake default constructor for concrete types of volumes (placements,
183  parameterised and replica), for usage of direct object persistency.
184- Implemented migration to <sstream> for affected classes: G4AssemblyVolume.
185
186Oct 19th, 2005      G. Cosmo - geomvol-V07-01-01
187- Introduced first implementation for optional check of overlaps at
188  construction to G4PVPlacement and G4PVParameterised volumes. Default
189  resolution of 1000 points is defined for the check.
190  The check is disabled by default.
191- Introduced method CheckOverlaps(p) for placements and parameterised
192  volumes. The resolution for the check can be specified providing the
193  number of points wished to be generated.
194- Updated unit test for G4ReflectedSolid.
195
196Jul 25th, 2005      G. Cosmo - geomvol-V07-01-00
197- Cleanup and fixes in use of inline methods in G4VNestedParameterisation
198  and G4PhysicalTouchable.
199
200Jun 14th, 2005      J. Apostolakis - geomvol-V07-00-01
201- Added G4VNestedParameterisation with ability to use parent information
202  to compute/change material.
203- Added G4PhysicalTouchable class to enable this type of parameterisation.
204  This class is an implementation class only, and its name especially
205  and potentially other aspect is/are likely to be changed.   
206  ---> A revision of the interface of G4VPVParamerisation can provide this
207       capability in future, in a simpler way.
208  This tag coworks with "geomnav-V07-00-00".
209
210Jun 6th, 2005       G. Cosmo - geomvol-V07-00-00
211- Moved constructors/destructors and operators for G4NavigationLevelRep
212  and G4NavigationLevel to .cc file and not inlined.
213
214Dec 2nd, 2004       G. Cosmo - geomvol-V06-02-01
215- Implemented migration to <cmath> for standard mathematical functions.
216
217Sep 7th, 2004       G. Cosmo - geomvol-V06-02-00
218- G4ReflectionFactory.cc: added automatic reflection for visualization
219  attributes, biasing weights and regions associated to the logical volume.
220
221Jun 9th, 2004       G. Cosmo - geomvol-V06-01-03
222- Adopt G4DLLIMPORT/G4DLLEXPORT technique to handle extern simbols for
223  allowing support of DLLs on Windows.
224- Coworks with "global-V06-01-02b".
225
226Jun 7th, 2004       G. Cosmo - geomvol-V06-01-02
227- Export extern symbols for allowing support of DLLs on Windows.
228  Modified files: G4NavigationLevel.icc, G4NavigationLevelRep.icc.
229- Coworks with "global-V06-01-02a".
230
231May 19th, 2004      G. Cosmo - geomvol-V06-01-01
232- Added CleanSurfaceTable() static methods in G4LogicalBorderSurface and
233  G4LogicalSkinSurface classes for the clearing of the surface tables in
234  case of dynamic geometries (by T.MacPhail).
235
236May 13th, 2004      G. Cosmo - geomvol-V06-01-00
237- Imported G4ReflectionFactory and unit test 'testG4ReflectedSolid' from
238  module "solids/Boolean".
239- Enhanced G4ReflectionFactory to support reflection of divided volumes
240  (courtesy of I.Hrivnacova). Added Divide(...) set of methods.
241- Coworks with tags: geommng-V06-01-00, geomdiv-V06-01-00 and
242                     geom-bool-V06-01-00.
243
244March 4th, 2004     G. Cosmo - geomvol-V06-00-01
245- G4NavigationHistory.icc: fixed bug in NewLevel() causing segmentation
246  violation for cases of geometry with deep nested levels. Fixes problem
247  report #597. (Thanks to A.Zoglauer who reported this)
248
249January 19th, 2004  G. Cosmo - geomvol-V06-00-00
250- G4AssemblyVolume.cc: fixed initial value for 'numberOfDaughters' of
251  imprinted volumes copy-numbers. Fixes problem report #566.
252
253December 5th, 2003  G. Cosmo - geomvol-V05-02-08
254- G4TouchableHistory.cc: added initialisation of allocators for navigation
255  levels, moved from G4TransportationManager, where they were introduced
256  as workaround for solving static initialisation a long time ago.
257
258December 4th, 2003  G. Cosmo - geomvol-V05-02-07
259- G4NavigationHistory[.icc.cc]: fixed redundant calls and initialisations.
260- G4NavigationLevel.icc, G4NavigationLevelRep.icc: fixed implementation of
261  operator=() for inlining.
262
263December 1st, 2003  G. Cosmo - geomvol-V05-02-06
264- G4LogicalBorderSurface[.hh.icc.cc], G4LogicalSkinSurface[.hh.icc.cc]:
265  o modified to use G4SurfaceProperty instead of G4OpticalSurface.
266    Requires tag "materials-V05-02-00".
267    Requires tag "geommng-V05-02-05".
268- Updated unit tests to use derived navigator.
269
270November 17th, 2003  G. Cosmo - geomvol-V05-02-05
271- Added protection to placement and replica constructors for cases
272  where a volume is placed inside itself.
273
274November 10th, 2003  G. Cosmo - geomvol-V05-02-04
275- Migrated unit tests to new G4Navigator interface.
276
277November 2nd, 2003  G. Cosmo - geomvol-V05-02-03
278- Code cleanup and headers inclusion review (replaced by forward
279  declarations where necessary).
280
281October 23rd, 2003  G. Cosmo - geomvol-V05-02-02
282- Migrated calls to G4Exception to new scheme.
283
284September 30th, 2003  G. Cosmo - geomvol-V05-02-01
285- Logical reorganisation and restructure of modules.
286  Moved files to geometry/management:
287    G4BlockingList[.hh.icc.cc]
288    G4IdentityTrajectoryFilter[.hh.cc]
289    G4VCurvedTrajectoryFilter[.hh.cc]
290  Moved files to new module geometry/navigation:
291    G4AuxiliaryNavServices[.hh.icc.cc]
292    G4GeometryMessenger[.hh.cc]
293    G4Navigator[.hh.icc.cc]
294    G4NormalNavigation[.hh.icc.cc]
295    G4ParameterisedNavigation[.hh.icc.cc]
296    G4PropagatorInField[.hh.icc.cc]
297    G4ReplicaNavigation[.hh.icc.cc]
298    G4TransportationManager[.hh.icc.cc]
299    G4VoxelNavigation[.hh.icc.cc]
300  Imported files from geometry/management:
301    G4AssemblyVolume[.hh.icc.cc]
302    G4PVParameterised[.hh.cc]
303    G4PVPlacement[.hh.cc]
304    G4PVReplica[.hh.cc]
305- Removed implementation of method Setup() and updated initialisation of
306  data, according to changes in the base class G4VPhysicalVolume.
307  Affected classes: G4PVPlacement, G4PVReplica.
308- Updated GNUmakefile in test directory.
309
310September 12th, 2003  J. Apostolakis - geomvol-V05-02-00
311- G4PropagatorInField.cc:
312  o Made optional the printing of information on 'looping' particles.
313    It is now controlled by the verbose flag.
314    Addresses CMS request in problem report #509.
315
316June 25th, 2003     G. Folger - geomvol-V05-01-04
317- Added disclaimer of liability where needed.
318
319June 21st, 2003     J. Apostolakis - geomvol-V05-01-03
320- G4PropagatorInField (the tag requires "field-V05-01-05"):
321  Likeliest to cause effect on Users is this:
322  *************************************************************************
323  * Changed default value of "maximum step count" to 1,000 (from 10,000)  *
324  *   --> this may cause more particles to be recognised to loop earlier, *
325  *          as this parameter controls this too.                         *
326  *************************************************************************
327  Also neccessary fixes and improvements:
328   1) Added new method FindAndSetFieldManager() to find the current field manager
329        and set it for the Propagator.
330   2) Added new method SetDetectorFieldManager(),
331         so as to have it updated when the global field manager is changed.
332   3) Added new state variable to insure that the current field Manager
333         has been set for the current step
334      The flag ensures that the method FindAndSetFieldManager() is always
335      called once for each call to ComputeStep().
336 - G4TransportationManager: corrected the method SetFieldManager().
337   It now messages the current global PropagatorInField to notify it
338 - Changes from "g4std" to <std> incorporated.
339
340May 26th, 2003      J. Apostolakis - geomvol-V05-01-02
341- G4PropagatorInField:  use safety in G4PropagatorInField.
342    (Adds to the state of this class).
343  Reinstates the changes in "geomvol-V04-01-08"
344
345May 20th, 2003      G. Cosmo - geomvol-V05-01-01
346- G4GeometryMessenger[.hh.cc]:
347  o Added new commands for controlling geometry overlaps: added recursion
348    to line_test and cylinder_test; added possibility to customise the
349    resolution and shape of grid/cylinder for the test; added ability to
350    select depth of recursion in the geometry tree.
351  o Added explicit call to OpenGeometry() in method CheckGeometry() to
352    force cleanup of voxelisation when command navigator/reset is called.
353- Coworks with tag "geomver-V05-01-00" for geometry/verification.
354- Does NOT include changes in "geomvol-V04-01-08".
355
356May 8th, 2003       G. Cosmo - geomvol-V05-01-00
357- G4PropagatorInField.cc: fix in ComputeStep() to avoid step computation
358  if proposed step length is too small (less than kCarTolerance).
359  Fixes problem report #485.
360- Does NOT include changes in "geomvol-V04-01-08".
361
362Mar 31st, 2003      G. Cosmo - geomvol-V05-00-03
363- Fixed trivial strict pedantic warnings.
364- Does NOT include changes in "geomvol-V04-01-08".
365
366Mar 17th, 2003      G. Cosmo - geomvol-V05-00-02
367- G4Navigator[.hh.cc]: added 'inline' specifier in declaration of
368  method LocateGlobalPointAndUpdateTouchableHandle().
369  Removed redundant calculation of localPoint in method
370  LocateGlobalPointWithinVolume()
371- G4GeometryMessenger[.hh.cc]: added UI command for setting navigator
372  verbosity at run-time (/geometry/navigator/verbose [n], n in [0..4]).
373- G4ReplicaNavigation.icc: fixed debug statement in VoxelLocate().
374- G4VoxelNavigation.cc: fixed debug statement in destructor.
375- Does NOT include changes in "geomvol-V04-01-08".
376
377Mar 5th, 2003       G. Cosmo - geomvol-V05-00-01
378- G4NavigationHistory.icc: fix in  methods Clear() and SetFirstEntry().
379  Correctly initialise navigation levels. Resolves discrepancy in the
380  copy number assigned to the world volume, if retrieved through the
381  touchable or explicitely through the physical volume.
382- Does NOT include changes in "geomvol-V04-01-08".
383
384Feb 6th, 2003       G. Cosmo - geomvol-V05-00-00
385- Fix in G4GeometryMessenger to check for geometry closed when commands
386  are applied. Command /geometry/navigator/reset and test commands apply
387  only when system is in "Idle" state.
388- G4VCurvedTrajectoryFilter[.hh.cc]: fixed initialisation of data member
389  in constructor. Fixed comments layout for Software Reference Manual.
390- G4IdentityTrajectoryFilter[.hh.cc]: fixed comments layout for
391  Software Reference Manual.
392- Does NOT include changes in "geomvol-V04-01-08".
393
394Nov 30th, 2002      S. Sadilov - geomvol-V04-01-09
395- Small correction on the top of "geomvol-V04-01-07a" in files:
396    G4IdentityTrajectoryFilter.cc
397    G4VCurvedTrajectoryFilter.cc
398  to fix cout/G4cout, endl/G4endl mistakes.
399- Does NOT include changes in "geomvol-V04-01-08".
400
401Nov 29th, 2002      J. Apostolakis - geomvol-V04-01-08
402- G4PropagatorInField:  use safety in G4PropagatorInField.
403    (Adds to the state of this class).
404
405Nov 29th, 2002      S. Sadilov - geomvol-V04-01-07a
406- Minor corrections (cout/G4cout, endl/G4endl) to files
407  G4IdentityTrajectoryFilter.cc G4VCurvedTrajectoryFilter.cc
408
409Nov 27th, 2002      G. Cosmo - geomvol-V04-01-07
410- G4BlockingList.cc: fixed initialisation of fBlockTagNo to 1.
411  Fixes warnings reported by Valgrind to G4BlockingList, G4VoxelNavigation
412  and G4ParameterisedNavigation.
413
414Nov 19th, 2002      J. Generowicz - geomvol-V04-01-06
415- Created G4IdentityTrajectoryFilter, making G4VCurvedTrajectoryFliter
416  truly abstract.
417
418Nov 8th, 2002       J. Generowicz
419- Introduced G4VCurvedTrajectoryFilter, and gave PIF means of
420  manipulating and communicating with it.
421
422Oct 29th, 2002       J. Apostolakis - geomvol-V04-01-05
423- G4PropagatorInField
424  Re-introduced memory of Charge Mass and Momentum into PropagatorInField,
425  in order for it to message the correct ChordFinder at each step with this
426  information.  It now does this task.
427
428Aug  6th, 2002       G. Cosmo - geomvol-V04-01-04
429- Formatting cleanup in source implementation files.
430
431Jul 29th, 2002       G. Cosmo - geomvol-V04-01-03
432- G4PropagatorInField[.hh.icc.cc]:
433  Restored call to GetChordFinder()->SetChargeMomentumMass() in method
434  SetChargeMomentumMass(), as was originally in release 4.1.
435  All modifications introduced in tag "geomvol-V04-00-11" have now been removed.
436
437Jul 29th, 2002       G. Cosmo - geomvol-V04-01-02
438- G4PropagatorInField.cc:  (J.Apostolakis)
439  o Restored ComputeStep() as it was before tag "geomvol-V04-00-11", by
440    removing call to GetChordFinder()->SetChargeMomentumMass().
441    This call was responsible for failure of unit tests, where no field strength
442    was observed in some cases.
443  o Set 'fNoZeroStep' to zero if (fNoZeroStep > fAbandonThreshold_NoZeroSteps)
444    at the end of ComputeStep(). Fixes problem report from P.M.DeFreitas
445    occurring in Mokka (Tesla), when reading primaries from their Pythia files.
446- G4PropagatorInField[.hh.cc]:
447  o Removed not-implemented constructor taking G4Navigator* as argument.
448  o Get rid of static const data for default epsilonStep size.
449  o Initialise all data members in constructor !
450  o Code cleanup.
451
452Jul 24th, 2002       G. Cosmo - geomvol-V04-01-01
453- Removed static initialisations of data of G4FieldManager.
454  Coworks with tag "field-V04-01-01".
455
456Jul 23rd, 2002       G. Cosmo - geomvol-V04-01-00
457- Some code cleanup and cosmetics...
458
459Jun 18th, 2002       J. Apostolakis - geomvol-V04-00-11
460- G4PropagatorInField.cc
461  o Fix for messaging incorrect ChordFinder with Mass, Charge, Momentum.
462   ( Problem seen for multiple FieldManagers - reported by Grahame Blair )
463
464Jun 13th, 2002       J. Apostolakis - geomvol-V04-00-10
465- G4Navigator.cc
466  o Fix for navigation problem (dereference null volume pointer) in exampleN05
467     caused by ExitNormal fix.
468
469Jun  3rd, 2002       G. Cosmo - geomvol-V04-00-09
470- G4Navigator[.hh.icc.cc]:
471  o Cosmetics for Software Reference Manual and formatting.
472  o Fixed few cases of endl/G4endl mystypes...
473
474May 31st, 2002      J. Apostolakis - geomvol-V04-00-08
475- G4Navigator.cc:
476  o Corrections for problem report #351, #284 concerning ExitNormal:
477     - using Daugther's solid preferentially (if applicable)
478     - adjusting fEntering/fEnteredDaugther in LocateGlobalPointAndSetup
479         to enable this
480     - correcting location of point for which exit normal is requested
481         for 'non-convex point' on solid boundary
482  Thanks to Bryan Tipton (tipton@krl.caltech.edu),
483            Antonis Papanestis (antonis.papanestis@cern.ch)
484       and  Peter Gumplinger for their demonstrations of the delicate problem.
485
486May 15th, 2002      G. Cosmo - geomvol-V04-00-07
487- G4ParameterisedNavigation:
488  o Introduced 3D voxelisation technique for parameterised volumes with
489    unspecified axis. Changed to become subclass of G4VoxelNavigation and
490    adopt the same voxel location algorithms for optimised navigation.
491- G4VoxelNavigation:
492  o Changed to become base class for optimised navigation.
493  o Cosmetics and reformatting.
494- G4NormalNavigation.icc, G4ReplicaNavigation.icc, G4VoxelNavigation.icc:
495  o Minor optimisations.
496  o Cosmetics and reformatting.
497- G4Navigator.cc:
498  o Invoke specific VoxelLocate call for parameterised navigation.
499- Co-works with "global-V04-00-06" and "geommng-V04-00-05".
500
501Apr 19th, 2002      G. Cosmo - geomvol-V04-00-06
502- Moved inline constructors and destructors to no inline.
503  Affected files: G4BlockingList[.icc,cc], G4NavigationHistory[.icc,.cc],
504                  G4PropagatorInField[.hh.icc.cc].
505
506Apr 3rd, 2002       G. Cosmo - geomvol-V04-00-05
507- G4GeometryMessenger[.hh.cc]: added new commands to exploit more features of the
508  G4GeomTestVolume class for detecting geometry overlaps:
509  o /geometry/test/grid_test - runs the default grid test, same as "run".
510  o /geometry/test/recursive_test - runs the grid test in recursive mode.
511  o /geometry/test/cylinder_test - to shoot lines in a cylindrical pattern.
512  o /geometry/test/line_test - to shoot a line according to position and direction.
513
514Mar 22nd, 2002       J. Apostolakis - geomvol-V04-00-04
515- G4PropagatorInField: added Set/Get methods for MaximumEpsilonStep
516
517Feb 20th, 2002       G. Cosmo - geomvol-V04-00-03
518- G4GeometryMessenger.cc: fixed local variable name not to clash with
519  class data member.
520
521Jan 21st, 2002       J. Apostolakis - geomvol-V04-00-02
522- G4Navigator: reset blocked volume when locating 'within volume',
523    after ensuring that it does not get called when
524    ComputeSafety() is at a boundary.
525   --> Fix for cases of longstanding 'Point P is Inside' errors.
526
527Jan 10th, 2002       G. Cosmo - geomvol-V04-00-01
528- Activated mechanism in GNUmakefile for allowing compilation with
529  G4DEBUG_FIELD or G4DEBUG_NAVIGATION flags. Replaced DEBUG with
530  G4DEBUG_NAVIGATION in G4Navigator.cc.
531
532Jan  8th, 2002       J. Apostolakis - geomvol-V04-00-00
533- G4AuxiliaryNavServices
534  o Fixed it so that it only considers whether a (Point,Direction) 'ray' if
535    it is on the surface (it was mistakenly also checking those inside, and
536    rejecting them.)
537    [ This erroneous condition occurred frequently in the new usage of Locate
538      with Direction to initialise a step. 
539      It's unclear if it occurred also at other times.]
540
541Jan 8th, 2002        G. Cosmo
542- Fixed compilation problems and warnings on unit tests.
543  (G.Cosmo, R.Chytracek)
544
545Dec 11th, 2001       G. Cosmo - geomvol-V03-02-08
546- G4Navigator:
547  o Added kNormal and Copy Number to NewLevel (Navigation Level) for
548    Normal Navigation
549    Now all TouchableHistory objects should have a valid entry in ReplicaNumber:
550    - in the case of a placement volume it will be the copy number
551    - in replicated volumes it will be the replica number
552  o Commented out fix introduced in geomvol-V03-02-05.
553
554Dec 11th, 2001       J. Apostolakis - geomvol-V03-02-07
555- G4Navigator:
556  o Undoing the fix in geomvol-V03-02-05 -- because of problems in
557    several tests (mostly large N tests).
558    ----> Must resolve these !! <----
559
560Dec  8th, 2001       J. Apostolakis - geomvol-V03-02-06
561- G4PropagatorInField:
562  o additional thresholds for No of steps, + get/Set methods
563  o Modified choice of subsequent step size in case of Zero step
564    - decrease quickly at first to try to ensure that the first/second
565      "re-steps" are enough in most cases.
566    - utilise addition threshold parameters (for # of steps)
567      to slow down the rate of decrease of the step size
568      for the 'difficult' cases which do not converse after
569      a few steps.                           
570
571Dec  6th, 2001       J. Apostolakis - geomvol-V03-02-05
572- G4Navigator:
573  Fix for Locate Global Point Within Volume: clear state
574  variables (that had erroneously been forgotten).
575
576Dec  6th, 2001       R. Chytracek - geomvol-V03-02-04
577- G4Navigator:
578  o Fixed mirroring of the input argument for global direction into
579    local variable in LocateGlobalPointAndSetup().
580  o Cosmetics for the Software Reference Manual in .hh file.
581
582Dec  4th, 2001       J. Apostolakis - geomvol-V03-02-03
583- G4Navigator:
584  o Modified the interface
585    - creating a new ResetState method (that only reset state - not stack)
586    - adding a new optional argument to LocateGlobalPointAndSetup method
587    - adding direction argument to LGPAS w/ touchable history
588  o Modified the implementation
589    - to reset its state when touchable history is used to re-initialise it
590    - to use the direction in LocateGlobalPointAndSetup methods!
591- G4PropagatorInField:
592  o Added use of new Largest Acceptable Step data member.
593  o Protected, in reseting of Proposed Step length, against
594    making it bigger in cases where several zero steps seen.
595  o Several debugging prints added. (only in G4Verbose, ...)
596
597Nov 28th, 2001       J. Apostolakis - geomvol-V03-02-02
598- Added GetCurrentFieldManager method to PropagatorInField
599- Incorporates additions seen in "geomvol-V03-02-00a/b/c"
600   and in "geomvol-V03-02-01".
601- This tag is required by the new tag "transport-V03-02-06" in Transportation.
602
603Oct 18th, 2001       J. Apostolakis - geomvol-V03-02-01
604- Added a new 'maximum' epsilon value in G4PropagatorInField,
605  as some ill-conditions appear to be due to large proposed relative errors.
606  NOTE: does NOT include changes in "geomvol-V03-02-00a/b/c".
607
608Nov 8th, 2001        G. Cosmo - geomvol-V03-02-00c
609- Added handles for reference counting: G4GRSSolidHandle, G4GRSVolumeHandle,
610  G4TouchableHistoryHandle.
611- Modified G4Navigator for reference counted touchables. Introduced new methods
612  CreateTouchableHistoryHandle() and LocateGlobalPointAndUpdateTouchableHandle(...).
613- New unit tests testG4ParameterisedMaterial.cc and testG4TouchableHandle.cc.
614
615Nov 1st, 2001        G. Cosmo - geomvol-V03-02-00b
616- G4GeometryMessenger.cc: fixed definition of unit category for tolerance.
617
618Oct 24th, 2001       G. Cosmo - geomvol-V03-02-00a
619- Moved G4GeomTestMessenger from geometry/verification to geometry/volumes.
620  Renamed to G4GeometryMessenger.
621- GeometryMessenger: renamed directory to geometry/test. Added directory
622                     geometry/navigator. Added geometry/navigator/reset command
623                     for resetting navigation history and position.
624- G4PropagatorInField.icc: fixed warning on Linux-g++....
625
626Oct 18th, 2001       J. Apostolakis - geomvol-V03-02-00
627- Corrected the initialisation of fEpsilonMin in G4PropagatorInField
628   constructor, which was forgotten.
629
630May 31st, 2001       G. Cosmo - geomvol-V03-01-08
631- Fixed usage of 'fabs', which belongs to global scope, NOT in std
632  namespace. Detected by compilation error on DEC ISO/ANSI setup.
633- G4VoxelNavigation.icc: initialised data-member in initialiser list of
634  constructor with explicit initialisation to dummy values to allow porting
635  on ObjecSpace STL.
636
637May 23rd, 2001       J. Apostolakis - geomvol-V03-01-07
638- Added methods to Set the minimum epsilon (relative accuracy) to
639  Propagator In Field.
640
641May 23rd, 2001       J. Apostolakis - geomvol-V03-01-06
642- Added new parameter to Propagator In Field,
643  fEpsilonMin which is the minimal relative accuracy for MF driving.
644
645May 23rd, 2001       J. Apostolakis - geomvol-V03-01-05
646- Moved Delta Intersection and One Step from PropagatorInField to Field Manager.
647- Modified G4TransportationManager.cc to initialise default values accordingly.
648  (Incorporating changes into a tag, finally, after fix to G4FieldManager
649  constructors. )
650o This tag requires and co-works with field-V03-01-01.
651  This now ENABLES the use of different Field Managers for different parts of
652  the detector.  First implementation allows a volume that has a field
653  manager to override the global one. 
654  Note: All field managers currently must refer to fields in global coordinates
655o New ability: to set the delta accuracy parameters differently in different
656  volumes (even while maintaining the same field as the global one!). 
657
658May 23rd, 2001       G. Cosmo - geomvol-V03-01-04
659- Fixes in G4ReplicaNavigation for bug reports #253 and #254:
660  o in VoxelLocate(...), treated particular case of rotational symmetry
661    with extent over 360 degrees (courtesy of H.Boie).
662  o in DistanceToOutPhi(...), fix to correctly handle cases where the
663    starting point is on boundary of replicas and direction is along boundary.
664
665May 15th, 2001       G. Cosmo - geomvol-V03-01-03
666- G4AuxiliaryNavServices::CheckPointOnSurface(): added additional check to resolve
667  endless looping of G4Navigator in case the track is passing through a point, edge
668  or surface shared by two solids.
669  This problem occured when G4Navigator was trying to transport a particle when
670  exiting a solid. Transportation will now perform a few zero steps and continues
671  stepping instead of looping around the same point. Fixes problem report #185.
672
673April 27th, 2001     G. Cosmo - geomvol-V03-01-02
674- G4VoxelNavigation.icc: fixed compilation warnings on HP-UX, concerning
675  potential uninitialised vector elements.
676
677April 20th, 2001     G. Cosmo - geomvol-V03-01-01
678- Updated unit tests to conform to recent STL vector migration.
679
680April 17th, 2001     G. Cosmo - geomvol-V03-01-00
681- Migration to STL vector:
682  o Modified classes:
683    G4VoxelNavigation, G4NavigationHistory, G4BlockingList,
684    G4LogicalSkinSurface, G4LogicalBorderSurface.
685  o Removed GetIndex() and table-index data from G4LogicalSkinSurface
686    and G4LogicalBorderSurface.
687
688March 19th, 2001     J. Apostolakis - geomvol-V03-00-03
689- G4PropagatorInField:
690     Modified to use new (not obsolete) methods of G4FieldTrack.
691     Deleted old/obsolete ComputeStep method
692         (that was being used only for testing purposes, but
693          could not be used anymore after change to Momentum Integration.)
694
695March 12th, 2001     G. Cosmo - geomvol-V03-00-02
696- G4ReplicaNavigation::ComputeStep(): apply push of kCarTolerance to ourStep
697  in case the proposed step is zero.
698
699February 23rd, 2001  G. Cosmo - geomvol-V03-00-01
700- Restored original 0.5 shift for kPhi transformation in ComputeTransformation()
701  methods, as original specifications from P.Kent impose.
702- Fixed bug in ComputeTransformation(const G4int rNo, G4VPhysicalVolume* pVol)
703  where 'pVol' was NOT passed to SetPhiTransformation() in the kPhi case (!).
704
705February 15th, 2001  G. Cosmo - geomvol-V03-00-00
706
707- Fix in G4ReplicaNavigation::ComputeTransformation(...) for kPhi case.
708  Removed shift of 0.5 to center of replica volume to conform with original
709  specifications for replica transformations in Phi.
710- Cosmetics in G4ReplicaNavigation.cc.
711
712November 20th, 2000  G. Cosmo - geomvol-V02-00-01
713
714- Fixes to remove warnings from "-Wall -ansi -pedantic" g++ compiler options:
715  o commented out variables declared and not used.
716  o fixed declaration of variables used before being initialised.
717  o fixed order of initialisation of member data in constructors.
718  o fixed usage of unsigned-int (size_t) for array indeces.
719
720November 1st, 2000   G. Cosmo - geomvol-V02-00-00
721
722- QA code revision and cleanup (+fixes from CodeWizard filtering):
723  o Added (private) copy constructor and assignment operator where needed.
724  o Added "const" qualifier to accessor methods, wherever needed.
725  o Added equality check on operator= where needed.
726  o Made destructor "virtual" for classes having virtual methods,
727    wherever missing.
728  o Changed virtual functions to non-inline wherever's the case.
729  o Changed return value to be "const" pointer to functions:
730    - G4LogicalBorderSurface::GetVolume1()
731    - G4LogicalBorderSurface::GetVolume2()
732    - G4LogicalSkinSurface::GetLogicalVolume()
733  o G4NavigationHistory: moved kHistoryMax and kHistoryStride to
734    geomdefs.hh and made static constants. Reorganised comments.
735  o G4VoxelNavigation: moved kNavigatorVoxelStackMax in geomdefs.hh.
736    Changed "do-loops" with "while-loops" where convenient.
737  o Added "inline" qualifier to methods' declarations.
738  o General cosmetics
739
740June     2nd, 2000  J. Apostolakis - geomvol-V01-01-02
741
742include/G4PropagatorInField.hh,icc
743  o Moved Delta Intersection and Delta One Step to FieldManager
744     (from Propagator in Field),  to allow them to differ over the detector.
745
746G4TransportationManager.cc
747  o Changed static variable for above (default values).
748
749
750May     17th, 2000   G. Cosmo - geomvol-V01-01-01
751
752G4ReplicaNavigation.cc:
753- Added check to returned safety value in DistanceToOut(). Zero is
754  returned if the computed velue is less than kCarTolerance.
755- Introduced temporary fix to ComputeStep() in the first step computation
756  for replica boundaries. 'ourStep' is not set to the computed 'sampleStep'
757  if 'sampleStep' happens to be zero.
758  This fix helps to get rid of infinite loops when a point is on a
759  shared surface of a replica or on a shared vertex; a more definitive
760  solution to the problem is needed for the correct replica location.
761
762May     16th, 2000   J. Apostolakis
763
764G4PropagatorInField[.hh.icc]:
765- Added implementations for SetDeltaOneStep and SetDeltaIntersection.
766
767May      9th, 2000   J. Apostolakis - geomvol-V01-01-00
768
769Improvements in G4PropagatorInField  incorporating include file fixes
770in geometry-V01-01-02
771[ ie: Introduced kCarTolerance for check over taken step length and
772TruePathLength in G4PropagatorInField::ComputeStep(). ]
773
774May      8th, 2000   J. Apostolakis - geomvol-fieldImprove1
775
776Internal tag for version that improves the behavior of the field.
777[ it does not include the changes of geometry-V01-01-02 ]
778
779May      5th, 2000   J. Apostolakis
780
781G4PropagatorInField improvements modifying:
782 i) the comparison for detecting probable loop condition
783      - to accomodate solids that (wrongly) return small finite answer instead
784        of zero for Distance on surface.  [ can probably be reversed eventually]
785ii) the condition for exit from while (sufficient path length) to
786    avoid making a very small final step :  used the tolerance.
787
788April 25th, 2000   G. Cosmo
789
790- Reorganised comments for the Software Reference Manual.
791- Moved inlined definition to .icc files, where needed.
792  Created: G4LogicalBorderSurface.icc and G4LogicalSkinSurface.icc.
793- Removed obsolete G4Transform class. Removed files:
794  G4Transform[.hh.icc].
795
796January 19th, 2000   G. Cosmo - geomvol-V01-00-00
797
798Sycronized files versions with HEAD after ISO-C++ migration.
799(essentially CVS headers changes). Left out only G4Navigator[.hh.cc].
800
801December 2nd, 1999   G. Cosmo - geomvol-V00-01-02
802
803G4TransportationManager: Fixed definition of the singleton to conform
804    to the canonical implementation. Moved default constructor from private
805    to protected and added call to G4Exception in case of multiple instances
806    through derived classes.
807
808November 26th, 1999   J. Apostolakis - geomvol-V00-01-01
809
810G4TouchableHistory: Moved GetTranslation and GetRotation from inline file
811    to source file -- as they use static variables in the methods themselves.
812        --> cannot be handled by new HP aCC compiler
813
814G4PropagatorInField: Initialised fVerboseLevel in constructor. (omision)
815        --> on WinNT 4.0sp4 / VC++ 6.0  it was given value of 1 not 0.
816
817November 10th, 1999   J. Apostolakis - geomvol-01-01-01b
818
819Modified test/GNUmakefile to make it use fully-granular libraries.
820New test code in testG4Volumes for Object/Frame Rotation/Translation.
821
822October  29th, 1999   J. Apostolakis - geomvol-01-01-01a
823
824Moved initialisation of static data members of G4PropagatorInField
825  fDefault_Delta_Intersection_Val
826  fDefault_Delta_One_Step_Value
827to G4TransportationManager.cc, to ensure correct order initialisation
828of static (class) data members
829
830G4PropagatorInField warning message about integration inaccuracy
831now printed (for a maximum of 10 times) and in Verbose.
832
833July     27th, 1999   J. Apostolakis - geomvol-01-01-02
834
835Modified G4Navigator to distinguish Candidate volume from Blocked volume
836
837July     27th, 1999   J. Apostolakis - geomvol-01-01-01
838
839Tagged  --- here ??? ---
840
841July     27th, 1999   J. Apostolakis
842G4PropagatorInField:
843Added instance variables to keep track of "abnormal" case - which caused loop:
844
845  This is induced when a step at a boundary goes into one volume
846    - but in that volume it encounters an intermediate boundary
847      and when the step is subdivided it finds a zero step.
848   Then it looped between the volumes
849
850This is corrected by finding this problem (#subsequent zero steps > threshold)
851and attempting ever smaller trial steps until it succeeds.
852
853->  it was not done for the first step
854
855July     27th, 1999   J. Apostolakis
856
857G4PropagatorInField:
858  Made DeltaIntersection and DeltaOneStep instance variables (not class var.)
859  Added Get/Set methods.   Old  values of are now the defaults.
860
861
862July      1st, 1999   J. Apostolakis - field-01-00-06a
863
864In G4PropagatorInField   --> method LocateIntersectionPoint():
865
866  Integration inaccuracies cause an internal step's mid-point and endpoint
867    to be further apart than their curve length difference.  (Unphysical)
868
869  In order to compensate, we re-compute the step's endpoint.  [ This also
870    requires modification in G4ChordFinder::ApproxCurvePointV  ]
871
872A better solution would be to re-start/re-structure the loop to handle this
873sort of case.   But this would be a more major change ...
874
875May      19, 99      J.Apostolakis, F. Behner
876
877   In G4Navigator: Changed cout -> G4cout
878                   Changed protection for printing of Physical volume name:
879                    (because of warning on SUN;  same functionality)
880
881
882   In G4NavigationLevel, created an optional operator delete(void *, void *)
883    this is accepted by DEC, and not accepted by SUN, HP
884    new flag created in architecture for protection: ~ G4NO_ISO_DELETES
885
886May      17, 99      J. Allison.
887   In G4NavigationLevel, changed operator new(size_t, G4NavigationLevel *)
888   to operator new(size_t, void *) because the former is not accepted
889   by Sun CC 4.2 (with STL Interface.)
890
891May       3, 99      J. Apostolakis
892   testG4ReplicaNavigation.cc
893      Changed comparison of doubles, to give it a tolerance. 
894
895April     8, 99      (committed & recorded J. Apostolakis  May 3rd)
896   G4NavigationLevel.{hh,icc}: Minor Changes
897      added const to copy constructor and
898      new 'new' operator with size_t - for STL use with preallocated containers"
899
900
901March    19, 99      J. Apostolakis        geomvol-01-00-03
902
903   New tag for replica fix.
904
905
906March    18, 99      J. Apostolakis
907
908   A fix for looping in Replicas:
909        In the case where a zero step is done in Replicas, we must allow
910    ReplicaNavigator to handle the case itself - or else we loop.
911
912March    11, 99      J. Apostolakis
913
914   G4GRSVolume.icc: corrected G4Exception messages.
915
916February 18, 99      J. Apostolakis       
917
918 include/G4VoxelNavigation.hh
919 src/G4VoxelNavigation.cc    : overwrote versions 1.2 with production version
920      --->  when changes are refined and retested, they could be reincorporated
921
922February 17, 99      J. Apostolakis        geomvol-01-00-02
923
924 Moved G4PropagatorInField here from magneticfield to remove correct
925  dependency.
926
927February 15, 99      J. Apostolakis        geomvol-01-00-01
928
929   Only fixes in G4Navigator's incorporated.
930   GNUmakefile corrected (for SUN-CC).
931
932January      99,     J. Apostolakis
933
934Fix for ComputeSafety in Navigator:                              G4Navigator.cc
935            the voxel information that was used was incorrect       v 1.3
936                -> it resulted in wrong value of safety
937
938
939December     98                                   geant4-00-RandD
940
941 include/G4VoxelNavigation.hh
942 src/G4VoxelNavigation.cc    : versions 1.2 are trial versions from beta "head"
943
944December     98                                   
945
946Trial fix for navigation in replicas                             G4Navigator.cc
947                                                                    v 1.2
948         (a problem persists with this version)
949
950
951December     98                                   geant4-00
952
953   Code moved: production tag from beta repository.
Note: See TracBrowser for help on using the repository browser.