Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/geometry/volumes/History

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 # Category geomvol History
  2 
  3 See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
  4 which **must** added in reverse chronological order (newest at the top).
  5 It must **not** be used as a substitute for writing good git commit messages!
  6 
  7 -------------------------------------------------------------------------------
  8 
  9 ## 2024-09-10 Ivana Hrivnacova (geomvol-V11-02-04)
 10 - Coverity fix in G4ReflectionFactory:
 11   Do not pass the same G4VisAttributes object to the reflected LV
 12 
 13 ## 2024-08-07 Gabriele Cosmo (geomvol-V11-02-03)
 14 - Access G4GeometryManager singleton through its GetInstance() in
 15   G4AssemblyStore.
 16 
 17 ## 2024-04-02 Gabriele Cosmo (geomvol-V11-02-02)
 18 - Applied trivial clang-tidy fixes to G4AssemblyStore, i.e. removed
 19   unnecessary 'if' check for null pointer in Clean() method.
 20 
 21 ## 2024-03-28 Gabriele Cosmo (geomvol-V11-02-01)
 22 - Use 'const auto &' for iterator in G4LogicalSkinSurface::CleanSurfaceTable().
 23 
 24 ## 2024-03-08 Gabriele Cosmo (geomvol-V11-02-00)
 25 - Use std::map instead of std::vector to define G4LogicalSkinSurfaceTable,
 26   to speedup search of skin surfaces in large tables, as already done
 27   previously for G4LogicalBorderSurface. Addressing problem report #2598.
 28 
 29 ## 2023-10-24 Gabriele Cosmo (geomvol-V11-01-02)
 30 - Minor cleanup and code indentation. No functional changes.
 31 
 32 ## 2023-08-31 Gabriele Cosmo (geomvol-V11-01-01)
 33 - Moved to "management" the following classes and translation units:
 34   G4NavigationHistory, G4NavigationHistoryPool, G4NavigationLevel and
 35   G4NavigationLevelRep.
 36 - Removed unused classes G4GRSSolid and G4GRSVolume.
 37 
 38 ## 2023-05-09 Gabriele Cosmo (geomvol-V11-01-00)
 39 - Applied clang-tidy fixes (readability, modernization, performance, ...).
 40 
 41 ## 2022-11-10 Gabriele Cosmo (geomvol-V11-00-02)
 42 - Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1.
 43 
 44 ## 2022-10-04 Gabriele Cosmo (geomvol-V11-00-01)
 45 - Fixed compilation warning on Intel/icx compiler for variable set but
 46   not used in G4AssemblyStore::Clean().
 47 
 48 ## 2021-12-10 Ben Morgan (geomvol-V11-00-00)
 49 - Change to new Markdown History format
 50 
 51 ---
 52 
 53 # History entries prior to 11.0
 54 
 55 October 14th, 2021 G.Cosmo                 - geomvol-V10-07-05
 56 - Use same strategy for cloning solids for replicated volumes types in
 57   G4GeometryWorkspace (required for having proper treatment of divided
 58   volumes). Cleanup of unused verbose printouts.
 59 - G4PVReplica: moved internal defines for MT split data to source.
 60   Avoid deletion of rotation matrix for replication in Phi in destructor
 61   as not necessary. Some code cleanup.
 62 
 63 October 12th, 2021 E.Tcherniaev            - geomvol-V10-07-04
 64 - G4PVPlacement::CheckOverlaps(): more precise estimation of overlap size,
 65   improved check for encapsulation of volume by another volume.
 66 
 67 June 4th, 2021  I.Hrivnacova               - geomvol-V10-07-03
 68 - Added G4ReflectionFactory::Clean() for clearing the internal maps
 69   on users request and removed problematic G4ReflectionFactory::Reset()
 70 
 71 March 30th, 2021 B.Morgan                  - geomvol-V10-07-02
 72 - Migrate sources.cmake to modular build API
 73 
 74 January 20th, 2021 G.Cosmo                 - geomvol-V10-07-01
 75 - Added creation order index in G4LogicalBorderSurface.
 76   Addressing problem report #2311.
 77 
 78 December 10th, 2020 G.Cosmo                - geomvol-V10-07-00
 79 - G4GeometryWorkspace: added protection for thread contention in function
 80   DestroyWorkspace(). Some code cleanup.
 81 
 82 October 11th, 2020 E.Tcherniaev            - geomvol-V10-06-03
 83 - G4PVPlacement::CheckOverlaps(): Added keeping of bounding box from
 84   previous solid and complementory comparison of bounding spheres.
 85 
 86 October 7th, 2020 G.Cosmo                  - geomvol-V10-06-02
 87 - Minor update to G4LogicalBorderSurface.
 88 
 89 October 6th, 2020 G.Cosmo                  - geomvol-V10-06-01
 90 - Use std::map instead of std::vector to define G4LogicalBorderSurfaceTable,
 91   to speedup search of surfaces in large tables.
 92   Based on GitHub PR #6 by J.Brodsky.
 93 
 94 December 10th, 2019 B.Morgan               - geomvol-V10-06-00
 95 - Cleanup CMake build, removing obsolete granular library options and
 96   explicit include_directories.
 97 
 98 November 26th, 2019 G.Cosmo                - geomvol-V10-05-10
 99 - Fixed more cases of implicit type conversions from size_t to G4int.
100 
101 November 19th, 2019 G.Cosmo                - geomvol-V10-05-09
102 - Fixed more cases of implicit type conversions.
103 
104 November 15th, 2019 G.Cosmo                - geomvol-V10-05-08
105 - Fixed cases of implicit type conversions from size_t to G4int.
106 
107 October 25th, 2019 J.Apostolakis & G.Cosmo - geomvol-V10-05-07
108 - Fixed registration of G4PVParameterised daughter in mother
109   volume: to enable its true type to be recognised.
110   Needed to revise G4PVReplica (as it derives from it.)
111 
112 October 24th, 2019 J.Apostolakis & V.Vlachoudis - geomvol-V10-05-06
113 - Added enablers for external navigation capability.
114   Added new virtual base class G4VExternalPhysicalVolume.
115 
116 October 23rd, 2019 J.Apostolakis           - geomvol-V10-05-05
117 - Added new virtual VolumeType() method in Physical Volume types.
118   Requires and co-works with geommng-V10-05-11 and geomdiv-V10-05-02.
119 
120 August 22nd, 2019 G.Cosmo                  - geomvol-V10-05-04
121 - Use pre-increment wherever possible.
122 
123 August 16th, 2019 E.Tcherniaev             - geomvol-V10-05-03
124 - G4PVPlacement::CheckOverlaps(): complete revision, speed up,
125   improved warning messages.
126 
127 July 8th, 2019 G.Cosmo                     - geomvol-V10-05-02
128 - Implemented c++11 revision: nullptr, auto, inline data initialisation,
129   const iterators, alias using statements.
130 
131 May 17th, 2019 W.Pokorski                  - geomvol-V10-05-01
132 - Adding to G4AssemblyVolume a map of imprintID to G4Transform3D needed
133   for the GDML persistency (to be able to write out the original transformations
134   used for each imprint).
135 
136 March 1st, 2019 G.Cosmo                   - geomvol-V10-05-00
137 - Correction in G4AssemblyVolume destructor to avoid deletion of internal
138   physical volumes, as cleanup is taken care by G4PhysicalVolumeStore.
139   Addressing problem report #2140.
140 
141 October 9th, 2018 G.Cosmo                 - geomvol-V10-04-05, 04
142 - Added G4AssemblyStore singleton class for assembly structures bookeeping,
143   to address the specific use-case of allowing identification of assembly
144   envelopes.
145 
146 July 12th, 2018 G.Cosmo                   - geomvol-V10-04-03
147 - Removed G4GeometryWorkspacePool class. Adapted G4GeometryWorkspace to
148   use templated class G4TWorkspacePool.
149 - Coworks with tags in geometry/solids/specific, run and
150   visualization/management.
151 
152 May 22nd, 2018 J.Allison                  - geomvol-V10-04-02
153 - G4PVPlacement::CheckOverlaps: Add copy number to G4Exception printing.
154 
155 May 17th, 2018 J.Madsen                   - geomvol-V10-04-01
156 - updated "thread-local-static-var" model to
157   "function-returning-thread-local-static-reference" model
158   which fixes Windows DLL + MT
159 
160 May 9th, 2018 E.Tcherniaev                - geomvol-V10-04-00
161 - Replaced use of Inverse() from G4AffineTransform with new dedicated
162   methods, to avoid creation of temporaries in G4TouchableHistory,
163   G4PVPlacement and G4PVParameterised.
164 
165 September 15th, 2017 G.Cosmo              - geomvol-V10-03-02
166 - G4GeometryWorkspacePool: use DLL export flag for static thread-local
167   symbol of the workspace.
168 
169 March 10th, 2017 G.Cosmo                  - geomvol-V10-03-01
170 - G4GeometryWorkspacePool: implemented CleanUpAndDestroyAllWorkspaces(),
171   to be called by worker threads. Removed declaration (i.e. not implemented)
172   of protected method ReleaseAndDestroyWorkspace().
173 
174 January 10th, 2017 G.Cosmo                - geomvol-V10-03-00
175 - Correction in G4NavigationHistory default constructor to use
176   GetLevels() instead of GetNewLevels() from G4NavigationHistoryPool,
177   to favor re-use of already allocated space.
178   Thanks to M.Karamitros for spotting this.
179 
180 October 21st, 2016 G.Cosmo                - geomvol-V10-02-03
181 - Moved initialisation of G4GeomSplitter thread-local data to be inline
182   along with generic template type.
183   Fixing compilation/linking errors on clang-3.9 and XCode-8 on MacOS.
184 
185 September 20th, 2016 G.Cosmo              - geomvol-V10-02-02
186 - Explicitly initialise G4GeomSplitter offset in G4GeometryWorkspace
187   translation unit.
188   Fixing compilation/linking errors on clang-3.9 and XCode-8 on MacOS.
189 
190 May 13th, 2016 G.Cosmo                    - geomvol-V10-02-01
191 - Updated unit tests build scripts.
192 
193 April 8th, 2016 G.Cosmo                   - geomvol-V10-02-00
194 - G4NavigationHistory: corrected printout in streaming operator.
195 
196 October 15th, 2015 G.Cosmo                - geomvol-V10-01-05
197 - Enable paramerisation by solid type in G4GeometryWorkspace.
198   Assumes solids being parameterised are declared thread-local in the
199   user's parameterisation class and allocated just once.
200 
201 April 15th, 2015 G.Cosmo                  - geomvol-V10-01-04
202 - Simplified implementation in G4NavigationHistoryPool to make use of simple
203   stack of free entries. Pre-allocate size of vectors and inlined GetLevels().
204   Also addressing problem report #1730.
205 
206 April 8th, 2015 A.Dotti                   - geomvol-V10-01-03
207 - Updated unit-tests to new G4Exception signature.
208 
209 December 12th, 2014 G.Cosmo               - geomvol-V10-01-02
210 - Use canonical form for copy-ctor and operator=() in G4GRSSolid, G4GRSVolume,
211   G4LogicalBorderSurface and G4LogicalSkinSurface.
212 
213 December 11th, 2014 G.Cosmo               - geomvol-V10-01-01
214 - Avoid post-increment in G4NavigationLevelRep::AddAReference().
215 
216 December 5th, 2014 M.Asai                 - geomvol-V10-01-00
217 - G4NavigationHistoryPool - Move printout from the destructor to the
218   dedicated Print() method.
219 
220 November 13th, 2014 G.Cosmo               - geomvol-V10-00-08
221 - Restored constructors/destructor for G4TouchableHistory - derived class
222   to be not inline.
223 - Restored also non-inline constructors/destructors for G4NavigationHistory
224   and G4NavigationLevel (the last apparently responsible for crashes on SLC5
225   in the allocation).
226 
227 November 3rd, 2014 G.Cosmo                - geomvol-V10-00-07
228 - Moved constructors, destructors and assignment operators for
229   G4NavigationHistory, G4NavigationLevel, G4NavigationLevelRep and
230   G4TouchableHistory to be inline, for CPU optimisation
231   (courtesy of S.Wenzel).
232 
233 October 18th, 2014 A.Dotti                - geomvol-V10-00-06
234 - Corrected possible data race (reported by DRD) in
235   G4PVReplica::InitialiseWorker().
236 
237 June 11th, 2014 G.Cosmo                   - geomvol-V10-00-05
238 - Corrected implementation of copy-constructor and assignment-operator
239   for G4NavigationHistory, to provide exact copy for size of the
240   histories-level vector.
241 
242 June 10th, 2014 G.Cosmo                   - geomvol-V10-00-04
243 - Avoid un-necessary clearing of navigation history levels in
244   G4NavigationHistory destructor.
245 
246 May 14th, 2014 G.Cosmo                    - geomvol-V10-00-03
247 - Introduced pool G4NavigationHistoryPool for storage and reuse of
248   navigation history levels collections.
249   Disabled use of G4EnhancedAllocator in G4NavigationHistory accordingly.
250 - Use G4Allocator for dynamic allocations of G4NavigationHistory objects.
251 
252 April 10th, 2014 G.Cosmo                  - geomvol-V10-00-02
253 - Get rid of deprecated 'register' storage class specifier in source files
254 
255 March 31st, 2014 G.Cosmo                  - geomvol-V10-00-01
256 - Corrected signature of operator=() for G4LogicalBorder/SkinSurface.
257 
258 February 14th, 2014 G.Cosmo               - geomvol-V10-00-00
259 - Minor cleanup and optimisation to G4EnhancedAllocator.
260 - Code cleanup in G4GeometryWorkspace and G4GeometryWorkspacePool.
261 
262 November 19th, 2013 J.Apostolakis         - geomvol-V09-06-20
263 - Fix(es) for issues identified by Coverity:
264   G4GeometryWorkspace: initialisation of data member.
265   G4GeometryWorkspacePool: fixed implementation of singleton.
266 
267 November  8th, 2013 J.Apostolakis         - geomvol-V09-06-19
268 - Cleanup: reduced verbosity of G4GeometryWorkspace by making it optional.
269   Added Set/Get Verbose methods to toggle and view it.
270 
271 November  7th, 2013 J.Apostolakis         - geomvol-V09-06-18
272 - Restored the ability to 'clone' Nested Parameterisations.
273    This allows the use of Nested Parameterizations with MT.
274    This precaution is not needed - 'good' user code will cope with
275    the changing of target solid in each thread.
276   Note: The restriction on parameterizations which use multiple types
277    of solids remains.
278 
279 November  1st, 2013 G.Cosmo               - geomvol-V09-06-17
280 - Restored use of G4EnhancedVecAllocator in G4NavigationHistory for
281   sequential mode.
282 
283 October 18th, 2013 J.Apostolakis          - geomvol-V09-06-16
284 - G4GeometryWorkspace: Add new method CloneReplicaSolid, to
285   ensure that the solid for each Replica is separate object.
286 
287 October 17th, 2013 J.Apostolakis, A.Dotti - geomvol-V09-06-15
288 - Cleanup of the code removing unnecessary lines of codes and comments
289 - G4GeometryWorkspacePool::CreateWorkspace
290   Do not create a second object G4GeometryWorkspace'.
291 - Fixed Singleton G4GeometryWorkspacePool - for thread safe creation
292   of object.
293 
294   G4GeometryWorkspacePool: CreateWorkspace will not create a second
295    object G4GeometryWorkspace (in the same thread)
296   Fixed Singleton G4GeometryWorkspacePool - for thread safe creation
297    of object.
298 
299 October 4th, 2013 J.Apostolakis - geomvol-V09-06-14
300 - Retag due to issue with testing (needed to ensure use of geommng-V09-06-12)
301   Co-works with geommng-V09-06-12 and geom-specific-V09-06-19.
302 
303 October 4th, 2013 J.Apostolakis - geomvol-V09-06-13
304 - Separated functionality for Solids (PCone/PHedra Sides) from
305   G4GeometryWorkspace into separate class G4SolidsWorkspace in
306   solids/specific.  Needed to satisfy dependence issue.
307   Co-works with geommng-V09-06-12 and geom-specific-V09-06-18.
308 
309 October 3rd, 2013 J.Apostolakis - geomvol-V09-06-12
310 - Added new classes G4GeometryWorkspace - to create and manage MT objects.
311   and G4GeometryWorkspacePool which keeps Workspace objects.
312 - Small improvements and description in G4GeometryWorkspace.
313 
314 September 17th, 2013 G.Cosmo - geomvol-V09-06-10
315 - Test: use G4EnhancedVecAllocator in G4NavigationHistory only in MT mode.
316 
317 September 16th, 2013 I.Hrivnacova - geomvol-V09-06-09
318 - Removed thread-local specification for G4LogicalBorderSurfaceTable and
319   G4LogicalSkinSurfaceTable, as now supposed to be shared.
320 
321 August 22nd, 2013 G.Cosmo - geomvol-V09-06-08
322 - Added parameter to specify maximum number of overlap errors to report.
323   Adapted code in CheckOverlaps() in G4PVPlacement and G4PVParameterised
324   to take into account the threshold.
325 
326 April 2nd, 2013 G.Cosmo - geomvol-V09-06-07
327 - More optimisation to G4LogicalBorderSurface and G4LogicalSkinSurface
328   in the use of static tables.
329 
330 March 18th, 2013 G.Cosmo - geomvol-V09-06-06
331 - More cleanup from MT changes in G4TouchableHistory.
332 
333 March 12th, 2013 A.Dotti - geomvol-V09-06-05
334 - Added missing implementation of member function GetSubInstanceManager()
335   in G4PVReplica.
336 
337 March 12th, 2013 G.Cosmo - geomvol-V09-06-04
338 - Added public accessors for MT data to G4PVReplica.
339 
340 March 11th, 2013 G.Cosmo - geomvol-V09-06-03
341 - Fixed accessors adding check for existance of static surface table.
342 
343 March 10th, 2013 G.Cosmo - geomvol-V09-06-02
344 - Redefined G4DLL_API to G4GEOM_DLL to avoid cases of macro redefinition.
345 
346 March 8th, 2013 G.Cosmo - geomvol-V09-06-01
347 - Renamed G4MTTransitory to G4GeomSplitter. Adapted G4PVReplica.
348 - More cleanup of MT changes in G4PVReplica split class and other classes:
349   G4NavigationLevel, G4NavigationLevelRep, G4TouchableHistory,
350   G4LogicalBorderSurface and G4LogicalSkinSurface.
351 
352 February 12th, 2013 J.Apostolakis - geomvol-V09-06-00
353 - G4TouchableHistory: inspected changes for Geant4-MT.
354   Took out unneeded calls that initialised allocator in many methods.
355   Only the call in new() is needed, and is kept.
356   Cleared extra code introducing a performance penalty and also complicating
357   the code without reason.
358   Note: constructors cannot check that the Allocator is initialised.
359         They could be called first to create an object which was created
360         in a different way (e.g. on the stack, via new(prealloc) or new[ ] ).
361 
362 January 13th, 2013 A.Dotti
363 - Introduced changes for thread-safety from G4MT prototype.
364   Classes with Allocator: all methods now initialising allocator pointer.
365   Revised key classes, to separate the part of the state which is
366   thread-dependent (changed in event loop), including:
367   G4LogicalVolume, G4PhysicalVolume, G4PVReplica, G4PVPlacement.
368 
369 November 6th, 2012 G.Cosmo - geomvol-V09-05-02
370 - Fix in G4EnhancedVecAllocator for porting on AIX.
371 
372 May 14th, 2012 G.Cosmo - geomvol-V09-05-01
373 - Fixed spurious cases of hidden variable visibility, detected with
374   '-Wshadow' compilation option on gcc compiler.
375 
376 April 2nd, 2012 G.Cosmo - geomvol-V09-05-00
377 - Corrected GNUMakefile for spurious inclusion path.
378 
379 August 24th, 2011 G.Cosmo - geomvol-V09-04-01
380 - Migrated to new G4Exception scheme for warnings and errors.
381 - Defined scheme for warnings/errors coding:
382   + 1xxx for warnings, 0xxx for errors.
383   Code numbering:
384   + 0001: not supported or implemented features;
385   + 0002: invalid setup/construct;
386   + 0003: invalid run condition;
387   + 1001: incorrect setup; automatically adapted.
388   + 1002: notification.
389 
390 July 15th, 2011 G.Cosmo - geomvol-V09-04-00
391 - Use WIN32 instead of G4LIB_BUILD_DLL as flag for choosing enhanced
392   allocator in G4NavigationHistory.
393 
394 December 15th, 2010 G.Cosmo - geomvol-V09-03-09
395 - Use normal allocator if building on Windows.
396 
397 September 6th, 2010 G.Cosmo - geomvol-V09-03-08
398 - Fixed false-positive cases for initialization in copy-constructor of
399   G4GRSSolid amd G4GRSVolume.
400 
401 Jul 5th, 2010       G.Cosmo - geomvol-V09-03-07
402 - G4GRSSolid, G4GRSVolume: safer initialisation in copy constructor.
403 - G4PVPlacement, G4PVReplica: added fake initialisation for all members in
404   specialized constructor for I/O persistency. Added fake return statements
405   after exceptions.
406 - G4NavigationHistory: restore original implementation for constructor.
407 
408 Apr 23rd, 2010      G.Cosmo - geomvol-V09-03-06
409 - Corrected initialisation of dummy copy-ctor in G4EnhancedVecAllocator,
410   fixing compilation problem on WIN32-VC.
411 
412 Apr 22nd, 2010      G.Cosmo - geomvol-V09-03-05
413 - Make use of specialized allocator for handling internal vector in
414   G4NavigatorHistory, globally controlling the memory pool.
415   Measured ~2% average run-time speed-up.
416 
417 Apr 15th, 2010      G.Cosmo - geomvol-V09-03-04
418 - Combine use of G4Allocator for vectors in G4NavigationHistory with use
419   of assign().
420 
421 Apr 13th, 2010      G.Cosmo - geomvol-V09-03-03
422 - Added Reset() method to G4ReflectionFactory for clearing maps of
423   constituent and reflected volumes.
424 
425 Apr 9th, 2010       G.Cosmo - geomvol-V09-03-02
426 - Use more elegant solution in G4NavigationHistory copy-ctor. Adopt assign().
427 
428 Mar 31th, 2010      G.Cosmo - geomvol-V09-03-01
429 - Restore original vector allocation, but adopt simple loop copy within
430   copy-constructor. Should provide slight performance improvement and keep
431   locality.
432 
433 Dec 11th, 2009      G.Cosmo - geomvol-V09-03-00
434 - Use G4Allocator for vectors in G4NavigationHistory, to optimise memory
435   management and reduce fragmentation.
436 
437 Nov 6th, 2009       G.Cosmo - geomvol-V09-02-04
438 - Moved inline constructors to source for G4TouchableHistory, to avoid problems
439   of memory alignment in allocation.
440 
441 Nov 3rd, 2009       G.Cosmo - geomvol-V09-02-03
442 - Use G4Allocator for dynamic allocation of G4TouchableHistory objects.
443   Should reduce the number of direct calls to malloc and memory fragmentation.
444   Measured an average improvement of 3-5% in CPU speed, and same memory
445   footprint.
446 
447 Sep 22nd, 2009      G.Cosmo - geomvol-V09-02-02
448 - Added missing implementation for composing G4AssemblyVolume constructor.
449 
450 Sep 21st, 2009      G.Cosmo - geomvol-V09-02-01
451 - Fix in G4PVParameterised::CheckOverlaps() to not modify daughter volume
452   transformation matrix for application to points in the daughter's frame.
453   Adopt Inverse() instead of Invert() in call to G4AffineTransform.
454   Addresses problem report #1078.
455 
456 Aug 3rd, 2009       G.Cosmo - geomvol-V09-02-00
457 - Get rid of unnecessary call to Reset() in G4NavigationHistory destructor.
458 - Some code formatting...
459 
460 Nov 13th, 2008      G.Cosmo - geomvol-V09-01-03
461 - Corrected singleton definition for G4ReflectionFactory.
462 - Return 'const G4String&' instead of copy in GetVolumesNameExtension().
463 
464 Aug 19th, 2008      G.Cosmo - geomvol-V09-01-02
465 - Restored names of methods DumpInfo() to G4LogicalSkinSurface and
466   G4LogicalBorderSurface.
467 
468 Jul 16th, 2008      P.Gumplinger - geomvol-V09-01-01
469 - Change the name of the method DumpInfo() to DumpTableInfo()
470   in G4LogicalSkinSurface and G4LogicalBorderSurface.
471 
472 Feb 4th, 2008       I.Hrivnacova - geomvol-V09-01-00
473 - Fixed problem of double-deletion of rotation matrix in destructor
474   of G4AssemblyVolume.
475 
476 Nov 16th, 2007      G.Cosmo - geomvol-V09-00-01
477 - Added inline specification to methods in G4AssemblyTriplet class.
478 
479 Oct 12th, 2007      P.Gumplinger - geomvol-V09-00-00
480 - Minor cleanup: moved typedef to begin of include files and rename to
481   theSkinSurfaceTable in G4LogicalBorderSurface and G4LogicalSkinSurface classes.
482 - Added explicit initialisation of first volume entry to zero in
483   G4TouchableHistory constructor, to ensure correct behavior for 'out-of-world'
484   touchable handle. (J.Apostolakis)
485 
486 May 11th, 2007      G.Cosmo - geomvol-V08-03-00
487 - Use call to G4GeometryTolerance instead of kCarTolerance in
488   G4ReflectionFactory.
489 - Requires tag "global-V08-03-00" and related tag set.
490 
491 Apr 11th, 2007      G.Cosmo - geomvol-V08-02-02
492 - More extensions to the CheckOverlaps() algorithm:
493   o Added possibility to define a tolerance for reporting overlaps; added
494     new argument to signature, by default tolerance is set to zero.
495   o Optimised implementation for detecting daughter volumes which are
496     totally overlapping.
497   o Added check on current volume to optimise and correctly handle the
498     case of explicit call of the method when geometry is constructed.
499 
500 Mar 23rd, 2007      G.Cosmo - geomvol-V08-02-01
501 - Extended CheckOverlaps() algorithm, detect also cases of daughter volumes
502   which are totally overlapping. Made warning message message more clear.
503 
504 Jan 31st, 2007      G.Cosmo - geomvol-V08-02-00
505 - Added flag for controlling verbosity to CheckOverlaps() method for
506   G4PVPlacement and G4PVParameterised. By default, verbosity is ON.
507 - Requires tag "geommng-V08-02-00".
508 
509 Nov 10th, 2006      G.Cosmo - geomvol-V08-01-00
510 - Use 'direct' rotation/translation instead of 'frame' rotation/translation
511   in concrete CheckOverlaps() method of G4PVPlacement and G4PVParameterised
512   volumes. Fixes a problem reported for wrong transformation associated
513   to overlap-check in displaced boolean solids (V.Grichine).
514 - Updated unit test 'testG4NavigationHistory': added test for NULL
515   navigation-history (J.Apostolakis).
516 
517 May 5th, 2006       G.Cosmo - geomvol-V08-00-04
518 - G4AssemblyVolume:
519   o Corrected decomposition of transformation in G4AssemblyVolume.
520   o Added methods GetVolumesIterator() and TotalImprintedVolumes() for
521     accessing the list of physical-volumes imprinted
522   o Cleaned up comments and descriptions.
523 - Corrected conditions for overlap check in G4PVPlacement constructors.
524 
525 May 2nd, 2006       G.Cosmo - geomvol-V08-00-03
526 - G4AssemblyVolume: now G4AssemblyVolume can support assembly of assemblies
527   and reflections. Reviewed and modified MakeImprint() methods to act
528   recursively (kind contribution of I.Hrivnacova).
529 - Extended overlaps check also for reflection of placements.
530 - Moved G4AssemblyTriplet class from 'management' module.
531 - Protect against checking overlaps on world volume placement ...
532 - Requires tag "geommng-V08-00-04".
533 
534 Apr 4th, 2006       G.Cosmo - geomvol-V08-00-02
535 - Moved G4VNestedParameterisation and G4VVolumeMaterialScanner classes to
536   'management' module, to support material scanning in G4Region.
537 - Requires tag "geommng-V08-00-01".
538 
539 Mar 15th, 2006      G.Cosmo - geomvol-V08-00-01
540 - G4AssemblyVolume: added default boolean argument to MakeImprint()
541   methods to allow for optional check for overlaps of constituent volumes.
542 
543 Dec 20th, 2005      G.Cosmo - geomvol-V08-00-00
544 - G4AssemblyVolume: fixed initialisation of names for placed volumes
545   which was corrupted after migration to <sstream> as side effect.
546 
547 Nov 24th, 2005      J. Apostolakis - geomvol-V07-01-05
548 - Revised implementation of G4VNestedParameterisation,
549   taking out use of G4PhysicalTouchable.
550 - Added implementations of virtual methods to identify materials
551   for nested parameterisations.
552 - Removed G4PhysicalTouchable helper class.
553 
554 Nov 16th, 2005      J. Apostolakis - geomvol-V07-01-04
555 - Corrections to tag below:
556   o Fixed G4PVPlacement's IsRegularStructure() method.
557   o Added missing methods for regular-structures to G4PhysicalTouchable.
558 
559 Nov 11th, 2005      J. Apostolakis - geomvol-V07-01-03
560 - Added methods to identify regular structures in physical-volume derived
561   classes (replicas, parameterised volumes, placements).
562   New virtual methods implemented:
563    - IsRegularStructure()     [from G4VPhysicalVolume, defined in Replica]
564    - GetRegularStructureId()
565   Note that G4PVPlacement always return 'false' and 0 respectively.
566   New method defined for Replicas:
567    - SetRegularStructureId()  virtual
568 
569 Nov 9th, 2005       G. Cosmo - geomvol-V07-01-02
570 - Added fake default constructor for concrete types of volumes (placements,
571   parameterised and replica), for usage of direct object persistency.
572 - Implemented migration to <sstream> for affected classes: G4AssemblyVolume.
573 
574 Oct 19th, 2005      G. Cosmo - geomvol-V07-01-01
575 - Introduced first implementation for optional check of overlaps at
576   construction to G4PVPlacement and G4PVParameterised volumes. Default
577   resolution of 1000 points is defined for the check.
578   The check is disabled by default.
579 - Introduced method CheckOverlaps(p) for placements and parameterised
580   volumes. The resolution for the check can be specified providing the
581   number of points wished to be generated.
582 - Updated unit test for G4ReflectedSolid.
583 
584 Jul 25th, 2005      G. Cosmo - geomvol-V07-01-00
585 - Cleanup and fixes in use of inline methods in G4VNestedParameterisation
586   and G4PhysicalTouchable.
587 
588 Jun 14th, 2005      J. Apostolakis - geomvol-V07-00-01
589 - Added G4VNestedParameterisation with ability to use parent information
590   to compute/change material.
591 - Added G4PhysicalTouchable class to enable this type of parameterisation.
592   This class is an implementation class only, and its name especially
593   and potentially other aspect is/are likely to be changed.
594   ---> A revision of the interface of G4VPVParamerisation can provide this
595        capability in future, in a simpler way.
596   This tag coworks with "geomnav-V07-00-00".
597 
598 Jun 6th, 2005       G. Cosmo - geomvol-V07-00-00
599 - Moved constructors/destructors and operators for G4NavigationLevelRep
600   and G4NavigationLevel to .cc file and not inlined.
601 
602 Dec 2nd, 2004       G. Cosmo - geomvol-V06-02-01
603 - Implemented migration to <cmath> for standard mathematical functions.
604 
605 Sep 7th, 2004       G. Cosmo - geomvol-V06-02-00
606 - G4ReflectionFactory.cc: added automatic reflection for visualization
607   attributes, biasing weights and regions associated to the logical volume.
608 
609 Jun 9th, 2004       G. Cosmo - geomvol-V06-01-03
610 - Adopt G4DLLIMPORT/G4DLLEXPORT technique to handle extern simbols for
611   allowing support of DLLs on Windows.
612 - Coworks with "global-V06-01-02b".
613 
614 Jun 7th, 2004       G. Cosmo - geomvol-V06-01-02
615 - Export extern symbols for allowing support of DLLs on Windows.
616   Modified files: G4NavigationLevel.icc, G4NavigationLevelRep.icc.
617 - Coworks with "global-V06-01-02a".
618 
619 May 19th, 2004      G. Cosmo - geomvol-V06-01-01
620 - Added CleanSurfaceTable() static methods in G4LogicalBorderSurface and
621   G4LogicalSkinSurface classes for the clearing of the surface tables in
622   case of dynamic geometries (by T.MacPhail).
623 
624 May 13th, 2004      G. Cosmo - geomvol-V06-01-00
625 - Imported G4ReflectionFactory and unit test 'testG4ReflectedSolid' from
626   module "solids/Boolean".
627 - Enhanced G4ReflectionFactory to support reflection of divided volumes
628   (courtesy of I.Hrivnacova). Added Divide(...) set of methods.
629 - Coworks with tags: geommng-V06-01-00, geomdiv-V06-01-00 and
630                      geom-bool-V06-01-00.
631 
632 March 4th, 2004     G. Cosmo - geomvol-V06-00-01
633 - G4NavigationHistory.icc: fixed bug in NewLevel() causing segmentation
634   violation for cases of geometry with deep nested levels. Fixes problem
635   report #597. (Thanks to A.Zoglauer who reported this)
636 
637 January 19th, 2004  G. Cosmo - geomvol-V06-00-00
638 - G4AssemblyVolume.cc: fixed initial value for 'numberOfDaughters' of
639   imprinted volumes copy-numbers. Fixes problem report #566.
640 
641 December 5th, 2003  G. Cosmo - geomvol-V05-02-08
642 - G4TouchableHistory.cc: added initialisation of allocators for navigation
643   levels, moved from G4TransportationManager, where they were introduced
644   as workaround for solving static initialisation a long time ago.
645 
646 December 4th, 2003  G. Cosmo - geomvol-V05-02-07
647 - G4NavigationHistory[.icc.cc]: fixed redundant calls and initialisations.
648 - G4NavigationLevel.icc, G4NavigationLevelRep.icc: fixed implementation of
649   operator=() for inlining.
650 
651 December 1st, 2003  G. Cosmo - geomvol-V05-02-06
652 - G4LogicalBorderSurface[.hh.icc.cc], G4LogicalSkinSurface[.hh.icc.cc]:
653   o modified to use G4SurfaceProperty instead of G4OpticalSurface.
654     Requires tag "materials-V05-02-00".
655     Requires tag "geommng-V05-02-05".
656 - Updated unit tests to use derived navigator.
657 
658 November 17th, 2003  G. Cosmo - geomvol-V05-02-05
659 - Added protection to placement and replica constructors for cases
660   where a volume is placed inside itself.
661 
662 November 10th, 2003  G. Cosmo - geomvol-V05-02-04
663 - Migrated unit tests to new G4Navigator interface.
664 
665 November 2nd, 2003  G. Cosmo - geomvol-V05-02-03
666 - Code cleanup and headers inclusion review (replaced by forward
667   declarations where necessary).
668 
669 October 23rd, 2003  G. Cosmo - geomvol-V05-02-02
670 - Migrated calls to G4Exception to new scheme.
671 
672 September 30th, 2003  G. Cosmo - geomvol-V05-02-01
673 - Logical reorganisation and restructure of modules.
674   Moved files to geometry/management:
675     G4BlockingList[.hh.icc.cc]
676     G4IdentityTrajectoryFilter[.hh.cc]
677     G4VCurvedTrajectoryFilter[.hh.cc]
678   Moved files to new module geometry/navigation:
679     G4AuxiliaryNavServices[.hh.icc.cc]
680     G4GeometryMessenger[.hh.cc]
681     G4Navigator[.hh.icc.cc]
682     G4NormalNavigation[.hh.icc.cc]
683     G4ParameterisedNavigation[.hh.icc.cc]
684     G4PropagatorInField[.hh.icc.cc]
685     G4ReplicaNavigation[.hh.icc.cc]
686     G4TransportationManager[.hh.icc.cc]
687     G4VoxelNavigation[.hh.icc.cc]
688   Imported files from geometry/management:
689     G4AssemblyVolume[.hh.icc.cc]
690     G4PVParameterised[.hh.cc]
691     G4PVPlacement[.hh.cc]
692     G4PVReplica[.hh.cc]
693 - Removed implementation of method Setup() and updated initialisation of
694   data, according to changes in the base class G4VPhysicalVolume.
695   Affected classes: G4PVPlacement, G4PVReplica.
696 - Updated GNUmakefile in test directory.
697 
698 September 12th, 2003  J. Apostolakis - geomvol-V05-02-00
699 - G4PropagatorInField.cc:
700   o Made optional the printing of information on 'looping' particles.
701     It is now controlled by the verbose flag.
702     Addresses CMS request in problem report #509.
703 
704 June 25th, 2003     G. Folger - geomvol-V05-01-04
705 - Added disclaimer of liability where needed.
706 
707 June 21st, 2003     J. Apostolakis - geomvol-V05-01-03
708 - G4PropagatorInField (the tag requires "field-V05-01-05"):
709   Likeliest to cause effect on Users is this:
710   *************************************************************************
711   * Changed default value of "maximum step count" to 1,000 (from 10,000)  *
712   *   --> this may cause more particles to be recognised to loop earlier, *
713   *          as this parameter controls this too.                         *
714   *************************************************************************
715   Also neccessary fixes and improvements:
716    1) Added new method FindAndSetFieldManager() to find the current field manager
717         and set it for the Propagator.
718    2) Added new method SetDetectorFieldManager(),
719          so as to have it updated when the global field manager is changed.
720    3) Added new state variable to insure that the current field Manager
721          has been set for the current step
722       The flag ensures that the method FindAndSetFieldManager() is always
723       called once for each call to ComputeStep().
724  - G4TransportationManager: corrected the method SetFieldManager().
725    It now messages the current global PropagatorInField to notify it
726  - Changes from "g4std" to <std> incorporated.
727 
728 May 26th, 2003      J. Apostolakis - geomvol-V05-01-02
729 - G4PropagatorInField:  use safety in G4PropagatorInField.
730     (Adds to the state of this class).
731   Reinstates the changes in "geomvol-V04-01-08"
732 
733 May 20th, 2003      G. Cosmo - geomvol-V05-01-01
734 - G4GeometryMessenger[.hh.cc]:
735   o Added new commands for controlling geometry overlaps: added recursion
736     to line_test and cylinder_test; added possibility to customise the
737     resolution and shape of grid/cylinder for the test; added ability to
738     select depth of recursion in the geometry tree.
739   o Added explicit call to OpenGeometry() in method CheckGeometry() to
740     force cleanup of voxelisation when command navigator/reset is called.
741 - Coworks with tag "geomver-V05-01-00" for geometry/verification.
742 - Does NOT include changes in "geomvol-V04-01-08".
743 
744 May 8th, 2003       G. Cosmo - geomvol-V05-01-00
745 - G4PropagatorInField.cc: fix in ComputeStep() to avoid step computation
746   if proposed step length is too small (less than kCarTolerance).
747   Fixes problem report #485.
748 - Does NOT include changes in "geomvol-V04-01-08".
749 
750 Mar 31st, 2003      G. Cosmo - geomvol-V05-00-03
751 - Fixed trivial strict pedantic warnings.
752 - Does NOT include changes in "geomvol-V04-01-08".
753 
754 Mar 17th, 2003      G. Cosmo - geomvol-V05-00-02
755 - G4Navigator[.hh.cc]: added 'inline' specifier in declaration of
756   method LocateGlobalPointAndUpdateTouchableHandle().
757   Removed redundant calculation of localPoint in method
758   LocateGlobalPointWithinVolume()
759 - G4GeometryMessenger[.hh.cc]: added UI command for setting navigator
760   verbosity at run-time (/geometry/navigator/verbose [n], n in [0..4]).
761 - G4ReplicaNavigation.icc: fixed debug statement in VoxelLocate().
762 - G4VoxelNavigation.cc: fixed debug statement in destructor.
763 - Does NOT include changes in "geomvol-V04-01-08".
764 
765 Mar 5th, 2003       G. Cosmo - geomvol-V05-00-01
766 - G4NavigationHistory.icc: fix in  methods Clear() and SetFirstEntry().
767   Correctly initialise navigation levels. Resolves discrepancy in the
768   copy number assigned to the world volume, if retrieved through the
769   touchable or explicitely through the physical volume.
770 - Does NOT include changes in "geomvol-V04-01-08".
771 
772 Feb 6th, 2003       G. Cosmo - geomvol-V05-00-00
773 - Fix in G4GeometryMessenger to check for geometry closed when commands
774   are applied. Command /geometry/navigator/reset and test commands apply
775   only when system is in "Idle" state.
776 - G4VCurvedTrajectoryFilter[.hh.cc]: fixed initialisation of data member
777   in constructor. Fixed comments layout for Software Reference Manual.
778 - G4IdentityTrajectoryFilter[.hh.cc]: fixed comments layout for
779   Software Reference Manual.
780 - Does NOT include changes in "geomvol-V04-01-08".
781 
782 Nov 30th, 2002      S. Sadilov - geomvol-V04-01-09
783 - Small correction on the top of "geomvol-V04-01-07a" in files:
784     G4IdentityTrajectoryFilter.cc
785     G4VCurvedTrajectoryFilter.cc
786   to fix cout/G4cout, endl/G4endl mistakes.
787 - Does NOT include changes in "geomvol-V04-01-08".
788 
789 Nov 29th, 2002      J. Apostolakis - geomvol-V04-01-08
790 - G4PropagatorInField:  use safety in G4PropagatorInField.
791     (Adds to the state of this class).
792 
793 Nov 29th, 2002      S. Sadilov - geomvol-V04-01-07a
794 - Minor corrections (cout/G4cout, endl/G4endl) to files
795   G4IdentityTrajectoryFilter.cc G4VCurvedTrajectoryFilter.cc
796 
797 Nov 27th, 2002      G. Cosmo - geomvol-V04-01-07
798 - G4BlockingList.cc: fixed initialisation of fBlockTagNo to 1.
799   Fixes warnings reported by Valgrind to G4BlockingList, G4VoxelNavigation
800   and G4ParameterisedNavigation.
801 
802 Nov 19th, 2002      J. Generowicz - geomvol-V04-01-06
803 - Created G4IdentityTrajectoryFilter, making G4VCurvedTrajectoryFliter
804   truly abstract.
805 
806 Nov 8th, 2002       J. Generowicz
807 - Introduced G4VCurvedTrajectoryFilter, and gave PIF means of
808   manipulating and communicating with it.
809 
810 Oct 29th, 2002       J. Apostolakis - geomvol-V04-01-05
811 - G4PropagatorInField
812   Re-introduced memory of Charge Mass and Momentum into PropagatorInField,
813   in order for it to message the correct ChordFinder at each step with this
814   information.  It now does this task.
815 
816 Aug  6th, 2002       G. Cosmo - geomvol-V04-01-04
817 - Formatting cleanup in source implementation files.
818 
819 Jul 29th, 2002       G. Cosmo - geomvol-V04-01-03
820 - G4PropagatorInField[.hh.icc.cc]:
821   Restored call to GetChordFinder()->SetChargeMomentumMass() in method
822   SetChargeMomentumMass(), as was originally in release 4.1.
823   All modifications introduced in tag "geomvol-V04-00-11" have now been removed.
824 
825 Jul 29th, 2002       G. Cosmo - geomvol-V04-01-02
826 - G4PropagatorInField.cc:  (J.Apostolakis)
827   o Restored ComputeStep() as it was before tag "geomvol-V04-00-11", by
828     removing call to GetChordFinder()->SetChargeMomentumMass().
829     This call was responsible for failure of unit tests, where no field strength
830     was observed in some cases.
831   o Set 'fNoZeroStep' to zero if (fNoZeroStep > fAbandonThreshold_NoZeroSteps)
832     at the end of ComputeStep(). Fixes problem report from P.M.DeFreitas
833     occurring in Mokka (Tesla), when reading primaries from their Pythia files.
834 - G4PropagatorInField[.hh.cc]:
835   o Removed not-implemented constructor taking G4Navigator* as argument.
836   o Get rid of static const data for default epsilonStep size.
837   o Initialise all data members in constructor !
838   o Code cleanup.
839 
840 Jul 24th, 2002       G. Cosmo - geomvol-V04-01-01
841 - Removed static initialisations of data of G4FieldManager.
842   Coworks with tag "field-V04-01-01".
843 
844 Jul 23rd, 2002       G. Cosmo - geomvol-V04-01-00
845 - Some code cleanup and cosmetics...
846 
847 Jun 18th, 2002       J. Apostolakis - geomvol-V04-00-11
848 - G4PropagatorInField.cc
849   o Fix for messaging incorrect ChordFinder with Mass, Charge, Momentum.
850    ( Problem seen for multiple FieldManagers - reported by Grahame Blair )
851 
852 Jun 13th, 2002       J. Apostolakis - geomvol-V04-00-10
853 - G4Navigator.cc
854   o Fix for navigation problem (dereference null volume pointer) in exampleN05
855      caused by ExitNormal fix.
856 
857 Jun  3rd, 2002       G. Cosmo - geomvol-V04-00-09
858 - G4Navigator[.hh.icc.cc]:
859   o Cosmetics for Software Reference Manual and formatting.
860   o Fixed few cases of endl/G4endl mystypes...
861 
862 May 31st, 2002      J. Apostolakis - geomvol-V04-00-08
863 - G4Navigator.cc:
864   o Corrections for problem report #351, #284 concerning ExitNormal:
865      - using Daugther's solid preferentially (if applicable)
866      - adjusting fEntering/fEnteredDaugther in LocateGlobalPointAndSetup
867          to enable this
868      - correcting location of point for which exit normal is requested
869          for 'non-convex point' on solid boundary
870   Thanks to Bryan Tipton (tipton@krl.caltech.edu),
871             Antonis Papanestis (antonis.papanestis@cern.ch)
872        and  Peter Gumplinger for their demonstrations of the delicate problem.
873 
874 May 15th, 2002      G. Cosmo - geomvol-V04-00-07
875 - G4ParameterisedNavigation:
876   o Introduced 3D voxelisation technique for parameterised volumes with
877     unspecified axis. Changed to become subclass of G4VoxelNavigation and
878     adopt the same voxel location algorithms for optimised navigation.
879 - G4VoxelNavigation:
880   o Changed to become base class for optimised navigation.
881   o Cosmetics and reformatting.
882 - G4NormalNavigation.icc, G4ReplicaNavigation.icc, G4VoxelNavigation.icc:
883   o Minor optimisations.
884   o Cosmetics and reformatting.
885 - G4Navigator.cc:
886   o Invoke specific VoxelLocate call for parameterised navigation.
887 - Co-works with "global-V04-00-06" and "geommng-V04-00-05".
888 
889 Apr 19th, 2002      G. Cosmo - geomvol-V04-00-06
890 - Moved inline constructors and destructors to no inline.
891   Affected files: G4BlockingList[.icc,cc], G4NavigationHistory[.icc,.cc],
892                   G4PropagatorInField[.hh.icc.cc].
893 
894 Apr 3rd, 2002       G. Cosmo - geomvol-V04-00-05
895 - G4GeometryMessenger[.hh.cc]: added new commands to exploit more features of the
896   G4GeomTestVolume class for detecting geometry overlaps:
897   o /geometry/test/grid_test - runs the default grid test, same as "run".
898   o /geometry/test/recursive_test - runs the grid test in recursive mode.
899   o /geometry/test/cylinder_test - to shoot lines in a cylindrical pattern.
900   o /geometry/test/line_test - to shoot a line according to position and direction.
901 
902 Mar 22nd, 2002       J. Apostolakis - geomvol-V04-00-04
903 - G4PropagatorInField: added Set/Get methods for MaximumEpsilonStep
904 
905 Feb 20th, 2002       G. Cosmo - geomvol-V04-00-03
906 - G4GeometryMessenger.cc: fixed local variable name not to clash with
907   class data member.
908 
909 Jan 21st, 2002       J. Apostolakis - geomvol-V04-00-02
910 - G4Navigator: reset blocked volume when locating 'within volume',
911     after ensuring that it does not get called when
912     ComputeSafety() is at a boundary.
913    --> Fix for cases of longstanding 'Point P is Inside' errors.
914 
915 Jan 10th, 2002       G. Cosmo - geomvol-V04-00-01
916 - Activated mechanism in GNUmakefile for allowing compilation with
917   G4DEBUG_FIELD or G4DEBUG_NAVIGATION flags. Replaced DEBUG with
918   G4DEBUG_NAVIGATION in G4Navigator.cc.
919 
920 Jan  8th, 2002       J. Apostolakis - geomvol-V04-00-00
921 - G4AuxiliaryNavServices
922   o Fixed it so that it only considers whether a (Point,Direction) 'ray' if
923     it is on the surface (it was mistakenly also checking those inside, and
924     rejecting them.)
925     [ This erroneous condition occurred frequently in the new usage of Locate
926       with Direction to initialise a step.
927       It's unclear if it occurred also at other times.]
928 
929 Jan 8th, 2002        G. Cosmo
930 - Fixed compilation problems and warnings on unit tests.
931   (G.Cosmo, R.Chytracek)
932 
933 Dec 11th, 2001       G. Cosmo - geomvol-V03-02-08
934 - G4Navigator:
935   o Added kNormal and Copy Number to NewLevel (Navigation Level) for
936     Normal Navigation
937     Now all TouchableHistory objects should have a valid entry in ReplicaNumber:
938     - in the case of a placement volume it will be the copy number
939     - in replicated volumes it will be the replica number
940   o Commented out fix introduced in geomvol-V03-02-05.
941 
942 Dec 11th, 2001       J. Apostolakis - geomvol-V03-02-07
943 - G4Navigator:
944   o Undoing the fix in geomvol-V03-02-05 -- because of problems in
945     several tests (mostly large N tests).
946     ----> Must resolve these !! <----
947 
948 Dec  8th, 2001       J. Apostolakis - geomvol-V03-02-06
949 - G4PropagatorInField:
950   o additional thresholds for No of steps, + get/Set methods
951   o Modified choice of subsequent step size in case of Zero step
952     - decrease quickly at first to try to ensure that the first/second
953       "re-steps" are enough in most cases.
954     - utilise addition threshold parameters (for # of steps)
955       to slow down the rate of decrease of the step size
956       for the 'difficult' cases which do not converse after
957       a few steps.
958 
959 Dec  6th, 2001       J. Apostolakis - geomvol-V03-02-05
960 - G4Navigator:
961   Fix for Locate Global Point Within Volume: clear state
962   variables (that had erroneously been forgotten).
963 
964 Dec  6th, 2001       R. Chytracek - geomvol-V03-02-04
965 - G4Navigator:
966   o Fixed mirroring of the input argument for global direction into
967     local variable in LocateGlobalPointAndSetup().
968   o Cosmetics for the Software Reference Manual in .hh file.
969 
970 Dec  4th, 2001       J. Apostolakis - geomvol-V03-02-03
971 - G4Navigator:
972   o Modified the interface
973     - creating a new ResetState method (that only reset state - not stack)
974     - adding a new optional argument to LocateGlobalPointAndSetup method
975     - adding direction argument to LGPAS w/ touchable history
976   o Modified the implementation
977     - to reset its state when touchable history is used to re-initialise it
978     - to use the direction in LocateGlobalPointAndSetup methods!
979 - G4PropagatorInField:
980   o Added use of new Largest Acceptable Step data member.
981   o Protected, in reseting of Proposed Step length, against
982     making it bigger in cases where several zero steps seen.
983   o Several debugging prints added. (only in G4Verbose, ...)
984 
985 Nov 28th, 2001       J. Apostolakis - geomvol-V03-02-02
986 - Added GetCurrentFieldManager method to PropagatorInField
987 - Incorporates additions seen in "geomvol-V03-02-00a/b/c"
988    and in "geomvol-V03-02-01".
989 - This tag is required by the new tag "transport-V03-02-06" in Transportation.
990 
991 Oct 18th, 2001       J. Apostolakis - geomvol-V03-02-01
992 - Added a new 'maximum' epsilon value in G4PropagatorInField,
993   as some ill-conditions appear to be due to large proposed relative errors.
994   NOTE: does NOT include changes in "geomvol-V03-02-00a/b/c".
995 
996 Nov 8th, 2001        G. Cosmo - geomvol-V03-02-00c
997 - Added handles for reference counting: G4GRSSolidHandle, G4GRSVolumeHandle,
998   G4TouchableHistoryHandle.
999 - Modified G4Navigator for reference counted touchables. Introduced new methods
1000   CreateTouchableHistoryHandle() and LocateGlobalPointAndUpdateTouchableHandle(...).
1001 - New unit tests testG4ParameterisedMaterial.cc and testG4TouchableHandle.cc.
1002 
1003 Nov 1st, 2001        G. Cosmo - geomvol-V03-02-00b
1004 - G4GeometryMessenger.cc: fixed definition of unit category for tolerance.
1005 
1006 Oct 24th, 2001       G. Cosmo - geomvol-V03-02-00a
1007 - Moved G4GeomTestMessenger from geometry/verification to geometry/volumes.
1008   Renamed to G4GeometryMessenger.
1009 - GeometryMessenger: renamed directory to geometry/test. Added directory
1010                      geometry/navigator. Added geometry/navigator/reset command
1011                      for resetting navigation history and position.
1012 - G4PropagatorInField.icc: fixed warning on Linux-g++....
1013 
1014 Oct 18th, 2001       J. Apostolakis - geomvol-V03-02-00
1015 - Corrected the initialisation of fEpsilonMin in G4PropagatorInField
1016    constructor, which was forgotten.
1017 
1018 May 31st, 2001       G. Cosmo - geomvol-V03-01-08
1019 - Fixed usage of 'fabs', which belongs to global scope, NOT in std
1020   namespace. Detected by compilation error on DEC ISO/ANSI setup.
1021 - G4VoxelNavigation.icc: initialised data-member in initialiser list of
1022   constructor with explicit initialisation to dummy values to allow porting
1023   on ObjecSpace STL.
1024 
1025 May 23rd, 2001       J. Apostolakis - geomvol-V03-01-07
1026 - Added methods to Set the minimum epsilon (relative accuracy) to
1027   Propagator In Field.
1028 
1029 May 23rd, 2001       J. Apostolakis - geomvol-V03-01-06
1030 - Added new parameter to Propagator In Field,
1031   fEpsilonMin which is the minimal relative accuracy for MF driving.
1032 
1033 May 23rd, 2001       J. Apostolakis - geomvol-V03-01-05
1034 - Moved Delta Intersection and One Step from PropagatorInField to Field Manager.
1035 - Modified G4TransportationManager.cc to initialise default values accordingly.
1036   (Incorporating changes into a tag, finally, after fix to G4FieldManager
1037   constructors. )
1038 o This tag requires and co-works with field-V03-01-01.
1039   This now ENABLES the use of different Field Managers for different parts of
1040   the detector.  First implementation allows a volume that has a field
1041   manager to override the global one.
1042   Note: All field managers currently must refer to fields in global coordinates
1043 o New ability: to set the delta accuracy parameters differently in different
1044   volumes (even while maintaining the same field as the global one!).
1045 
1046 May 23rd, 2001       G. Cosmo - geomvol-V03-01-04
1047 - Fixes in G4ReplicaNavigation for bug reports #253 and #254:
1048   o in VoxelLocate(...), treated particular case of rotational symmetry
1049     with extent over 360 degrees (courtesy of H.Boie).
1050   o in DistanceToOutPhi(...), fix to correctly handle cases where the
1051     starting point is on boundary of replicas and direction is along boundary.
1052 
1053 May 15th, 2001       G. Cosmo - geomvol-V03-01-03
1054 - G4AuxiliaryNavServices::CheckPointOnSurface(): added additional check to resolve
1055   endless looping of G4Navigator in case the track is passing through a point, edge
1056   or surface shared by two solids.
1057   This problem occured when G4Navigator was trying to transport a particle when
1058   exiting a solid. Transportation will now perform a few zero steps and continues
1059   stepping instead of looping around the same point. Fixes problem report #185.
1060 
1061 April 27th, 2001     G. Cosmo - geomvol-V03-01-02
1062 - G4VoxelNavigation.icc: fixed compilation warnings on HP-UX, concerning
1063   potential uninitialised vector elements.
1064 
1065 April 20th, 2001     G. Cosmo - geomvol-V03-01-01
1066 - Updated unit tests to conform to recent STL vector migration.
1067 
1068 April 17th, 2001     G. Cosmo - geomvol-V03-01-00
1069 - Migration to STL vector:
1070   o Modified classes:
1071     G4VoxelNavigation, G4NavigationHistory, G4BlockingList,
1072     G4LogicalSkinSurface, G4LogicalBorderSurface.
1073   o Removed GetIndex() and table-index data from G4LogicalSkinSurface
1074     and G4LogicalBorderSurface.
1075 
1076 March 19th, 2001     J. Apostolakis - geomvol-V03-00-03
1077 - G4PropagatorInField:
1078      Modified to use new (not obsolete) methods of G4FieldTrack.
1079      Deleted old/obsolete ComputeStep method
1080          (that was being used only for testing purposes, but
1081           could not be used anymore after change to Momentum Integration.)
1082 
1083 March 12th, 2001     G. Cosmo - geomvol-V03-00-02
1084 - G4ReplicaNavigation::ComputeStep(): apply push of kCarTolerance to ourStep
1085   in case the proposed step is zero.
1086 
1087 February 23rd, 2001  G. Cosmo - geomvol-V03-00-01
1088 - Restored original 0.5 shift for kPhi transformation in ComputeTransformation()
1089   methods, as original specifications from P.Kent impose.
1090 - Fixed bug in ComputeTransformation(const G4int rNo, G4VPhysicalVolume* pVol)
1091   where 'pVol' was NOT passed to SetPhiTransformation() in the kPhi case (!).
1092 
1093 February 15th, 2001  G. Cosmo - geomvol-V03-00-00
1094 
1095 - Fix in G4ReplicaNavigation::ComputeTransformation(...) for kPhi case.
1096   Removed shift of 0.5 to center of replica volume to conform with original
1097   specifications for replica transformations in Phi.
1098 - Cosmetics in G4ReplicaNavigation.cc.
1099 
1100 November 20th, 2000  G. Cosmo - geomvol-V02-00-01
1101 
1102 - Fixes to remove warnings from "-Wall -ansi -pedantic" g++ compiler options:
1103   o commented out variables declared and not used.
1104   o fixed declaration of variables used before being initialised.
1105   o fixed order of initialisation of member data in constructors.
1106   o fixed usage of unsigned-int (size_t) for array indeces.
1107 
1108 November 1st, 2000   G. Cosmo - geomvol-V02-00-00
1109 
1110 - QA code revision and cleanup (+fixes from CodeWizard filtering):
1111   o Added (private) copy constructor and assignment operator where needed.
1112   o Added "const" qualifier to accessor methods, wherever needed.
1113   o Added equality check on operator= where needed.
1114   o Made destructor "virtual" for classes having virtual methods,
1115     wherever missing.
1116   o Changed virtual functions to non-inline wherever's the case.
1117   o Changed return value to be "const" pointer to functions:
1118     - G4LogicalBorderSurface::GetVolume1()
1119     - G4LogicalBorderSurface::GetVolume2()
1120     - G4LogicalSkinSurface::GetLogicalVolume()
1121   o G4NavigationHistory: moved kHistoryMax and kHistoryStride to
1122     geomdefs.hh and made static constants. Reorganised comments.
1123   o G4VoxelNavigation: moved kNavigatorVoxelStackMax in geomdefs.hh.
1124     Changed "do-loops" with "while-loops" where convenient.
1125   o Added "inline" qualifier to methods' declarations.
1126   o General cosmetics
1127 
1128 June     2nd, 2000  J. Apostolakis - geomvol-V01-01-02
1129 
1130 include/G4PropagatorInField.hh,icc
1131   o Moved Delta Intersection and Delta One Step to FieldManager
1132      (from Propagator in Field),  to allow them to differ over the detector.
1133 
1134 G4TransportationManager.cc
1135   o Changed static variable for above (default values).
1136 
1137 
1138 May     17th, 2000   G. Cosmo - geomvol-V01-01-01
1139 
1140 G4ReplicaNavigation.cc:
1141 - Added check to returned safety value in DistanceToOut(). Zero is
1142   returned if the computed velue is less than kCarTolerance.
1143 - Introduced temporary fix to ComputeStep() in the first step computation
1144   for replica boundaries. 'ourStep' is not set to the computed 'sampleStep'
1145   if 'sampleStep' happens to be zero.
1146   This fix helps to get rid of infinite loops when a point is on a
1147   shared surface of a replica or on a shared vertex; a more definitive
1148   solution to the problem is needed for the correct replica location.
1149 
1150 May     16th, 2000   J. Apostolakis
1151 
1152 G4PropagatorInField[.hh.icc]:
1153 - Added implementations for SetDeltaOneStep and SetDeltaIntersection.
1154 
1155 May      9th, 2000   J. Apostolakis - geomvol-V01-01-00
1156 
1157 Improvements in G4PropagatorInField  incorporating include file fixes
1158 in geometry-V01-01-02
1159 [ ie: Introduced kCarTolerance for check over taken step length and
1160 TruePathLength in G4PropagatorInField::ComputeStep(). ]
1161 
1162 May      8th, 2000   J. Apostolakis - geomvol-fieldImprove1
1163 
1164 Internal tag for version that improves the behavior of the field.
1165 [ it does not include the changes of geometry-V01-01-02 ]
1166 
1167 May      5th, 2000   J. Apostolakis
1168 
1169 G4PropagatorInField improvements modifying:
1170  i) the comparison for detecting probable loop condition
1171       - to accomodate solids that (wrongly) return small finite answer instead
1172         of zero for Distance on surface.  [ can probably be reversed eventually]
1173 ii) the condition for exit from while (sufficient path length) to
1174     avoid making a very small final step :  used the tolerance.
1175 
1176 April 25th, 2000   G. Cosmo
1177 
1178 - Reorganised comments for the Software Reference Manual.
1179 - Moved inlined definition to .icc files, where needed.
1180   Created: G4LogicalBorderSurface.icc and G4LogicalSkinSurface.icc.
1181 - Removed obsolete G4Transform class. Removed files:
1182   G4Transform[.hh.icc].
1183 
1184 January 19th, 2000   G. Cosmo - geomvol-V01-00-00
1185 
1186 Sycronized files versions with HEAD after ISO-C++ migration.
1187 (essentially CVS headers changes). Left out only G4Navigator[.hh.cc].
1188 
1189 December 2nd, 1999   G. Cosmo - geomvol-V00-01-02
1190 
1191 G4TransportationManager: Fixed definition of the singleton to conform
1192     to the canonical implementation. Moved default constructor from private
1193     to protected and added call to G4Exception in case of multiple instances
1194     through derived classes.
1195 
1196 November 26th, 1999   J. Apostolakis - geomvol-V00-01-01
1197 
1198 G4TouchableHistory: Moved GetTranslation and GetRotation from inline file
1199     to source file -- as they use static variables in the methods themselves.
1200         --> cannot be handled by new HP aCC compiler
1201 
1202 G4PropagatorInField: Initialised fVerboseLevel in constructor. (omision)
1203         --> on WinNT 4.0sp4 / VC++ 6.0  it was given value of 1 not 0.
1204 
1205 November 10th, 1999   J. Apostolakis - geomvol-01-01-01b
1206 
1207 Modified test/GNUmakefile to make it use fully-granular libraries.
1208 New test code in testG4Volumes for Object/Frame Rotation/Translation.
1209 
1210 October  29th, 1999   J. Apostolakis - geomvol-01-01-01a
1211 
1212 Moved initialisation of static data members of G4PropagatorInField
1213   fDefault_Delta_Intersection_Val
1214   fDefault_Delta_One_Step_Value
1215 to G4TransportationManager.cc, to ensure correct order initialisation
1216 of static (class) data members
1217 
1218 G4PropagatorInField warning message about integration inaccuracy
1219 now printed (for a maximum of 10 times) and in Verbose.
1220 
1221 July     27th, 1999   J. Apostolakis - geomvol-01-01-02
1222 
1223 Modified G4Navigator to distinguish Candidate volume from Blocked volume
1224 
1225 July     27th, 1999   J. Apostolakis - geomvol-01-01-01
1226 
1227 Tagged  --- here ??? ---
1228 
1229 July     27th, 1999   J. Apostolakis
1230 G4PropagatorInField:
1231 Added instance variables to keep track of "abnormal" case - which caused loop:
1232 
1233   This is induced when a step at a boundary goes into one volume
1234     - but in that volume it encounters an intermediate boundary
1235       and when the step is subdivided it finds a zero step.
1236    Then it looped between the volumes
1237 
1238 This is corrected by finding this problem (#subsequent zero steps > threshold)
1239 and attempting ever smaller trial steps until it succeeds.
1240 
1241 ->  it was not done for the first step
1242 
1243 July     27th, 1999   J. Apostolakis
1244 
1245 G4PropagatorInField:
1246   Made DeltaIntersection and DeltaOneStep instance variables (not class var.)
1247   Added Get/Set methods.   Old  values of are now the defaults.
1248 
1249 
1250 July      1st, 1999   J. Apostolakis - field-01-00-06a
1251 
1252 In G4PropagatorInField   --> method LocateIntersectionPoint():
1253 
1254   Integration inaccuracies cause an internal step's mid-point and endpoint
1255     to be further apart than their curve length difference.  (Unphysical)
1256 
1257   In order to compensate, we re-compute the step's endpoint.  [ This also
1258     requires modification in G4ChordFinder::ApproxCurvePointV  ]
1259 
1260 A better solution would be to re-start/re-structure the loop to handle this
1261 sort of case.   But this would be a more major change ...
1262 
1263 May      19, 99      J.Apostolakis, F. Behner
1264 
1265    In G4Navigator: Changed cout -> G4cout
1266        Changed protection for printing of Physical volume name:
1267         (because of warning on SUN;  same functionality)
1268 
1269 
1270    In G4NavigationLevel, created an optional operator delete(void *, void *)
1271     this is accepted by DEC, and not accepted by SUN, HP
1272     new flag created in architecture for protection: ~ G4NO_ISO_DELETES
1273 
1274 May      17, 99      J. Allison.
1275    In G4NavigationLevel, changed operator new(size_t, G4NavigationLevel *)
1276    to operator new(size_t, void *) because the former is not accepted
1277    by Sun CC 4.2 (with STL Interface.)
1278 
1279 May       3, 99      J. Apostolakis
1280    testG4ReplicaNavigation.cc
1281       Changed comparison of doubles, to give it a tolerance.
1282 
1283 April     8, 99      (committed & recorded J. Apostolakis  May 3rd)
1284    G4NavigationLevel.{hh,icc}: Minor Changes
1285       added const to copy constructor and
1286       new 'new' operator with size_t - for STL use with preallocated containers"
1287 
1288 
1289 March    19, 99      J. Apostolakis        geomvol-01-00-03
1290 
1291    New tag for replica fix.
1292 
1293 
1294 March    18, 99      J. Apostolakis
1295 
1296    A fix for looping in Replicas:
1297         In the case where a zero step is done in Replicas, we must allow
1298     ReplicaNavigator to handle the case itself - or else we loop.
1299 
1300 March    11, 99      J. Apostolakis
1301 
1302    G4GRSVolume.icc: corrected G4Exception messages.
1303 
1304 February 18, 99      J. Apostolakis
1305 
1306  include/G4VoxelNavigation.hh
1307  src/G4VoxelNavigation.cc    : overwrote versions 1.2 with production version
1308       --->  when changes are refined and retested, they could be reincorporated
1309 
1310 February 17, 99      J. Apostolakis        geomvol-01-00-02
1311 
1312  Moved G4PropagatorInField here from magneticfield to remove correct
1313   dependency.
1314 
1315 February 15, 99      J. Apostolakis        geomvol-01-00-01
1316 
1317    Only fixes in G4Navigator's incorporated.
1318    GNUmakefile corrected (for SUN-CC).
1319 
1320 January      99,     J. Apostolakis
1321 
1322 Fix for ComputeSafety in Navigator:                              G4Navigator.cc
1323             the voxel information that was used was incorrect       v 1.3
1324                 -> it resulted in wrong value of safety
1325 
1326 
1327 December     98                                   geant4-00-RandD
1328 
1329  include/G4VoxelNavigation.hh
1330  src/G4VoxelNavigation.cc    : versions 1.2 are trial versions from beta "head"
1331 
1332 December     98
1333 
1334 Trial fix for navigation in replicas                             G4Navigator.cc
1335                                                                     v 1.2
1336          (a problem persists with this version)
1337 
1338 
1339 December     98                                   geant4-00
1340 
1341    Code moved: production tag from beta repository.