Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/geometry/navigation/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 geomnav 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-11-22 Gabriele Cosmo (geomnav-V11-02-03)
 10 - In G4MultiLevelLocator::EstimateIntersectionPoint(), moved repeated assertion
 11   on invalid intersection within G4DEBUG_FIELD, to avoid excess of warning
 12   printouts in rare cases of failed convergence, as reported by CMS.
 13 
 14 ## 2024-05-15 Ivana Hrivnacova (geomnav-V11-02-02)
 15 - Let G4TransportationManager notify G4FieldManager about the global
 16   field via newly added G4FieldManager::SetGlobalFieldManager().
 17   This allows to acces the global field manager direcly via G4FieldManager
 18   without dependency on G4navigation.
 19 
 20 ## 2024-04-21 Gabriele Cosmo (geomnav-V11-02-01)
 21 - Fixed compilation error in G4Navigator on Windows VC++ with
 22   C++20 Standard enabled.
 23   Based on [GitHub PR#69](https://github.com/Geant4/geant4/pull/69).
 24 
 25 ## 2024-04-02 Gabriele Cosmo (geomnav-V11-02-00)
 26 - Applied trivial clang-tidy fixes to classes, i.e. use of 'override' and
 27   removal of 'virtual' keywords; use of default constructor/destructor.
 28 
 29 ## 2023-11-17 Gabriele Cosmo (geomnav-V11-01-08)
 30 - Fixed "/geometry/test/check_parallel" UI command in G4GeometryMessenger.
 31 
 32 ## 2023-11-06 Gabriele Cosmo (geomnav-V11-01-07)
 33 - Fixed uninitialised data in G4SafetyCalculator.
 34   Addressing a reported Coverity defect.
 35 
 36 ## 2023-11-04 Gabriele Cosmo (geomnav-V11-01-06)
 37 - Some code cleanup in G4Navigator and code formatting.
 38 
 39 ## 2023-10-30 John Apostolakis (geomnav-V11-01-05)
 40 - Add new G4SafetyCalculator class, auxiliary to G4Navigator.
 41   Use this in G4Navigator in ComputeSafety() to avoid saving/restoring state.
 42 
 43 ## 2023-10-12 Guilherme Amadio (geomnav-V11-01-04)
 44 - Add new G4VNavigation common navigation interface.
 45 - Add RelocateWithinVolume method to G4VoxelNavigation
 46   and G4ParameterisedNavigation.
 47 - Update existing navigators to make use of new common interface.
 48 
 49 ## 2023-09-04 Gabriele Cosmo (geomnav-V11-01-03)
 50 - In G4Navigator, use G4TouchableHandle in place of G4TouchableHistoryHandle
 51   which is now deprecated. Same in G4MultiNavigator, G4DrawVoxels and
 52   G4VIntersectionLocator.
 53 
 54 ## 2023-08-31 Gabriele Cosmo (geomnav-V11-01-02)
 55 - Removed references to unused classes G4GRSSolid and G4GRSVolume
 56   in G4Navigator.
 57 - Removed use of forward declarations to G4VTouchable in phantom
 58   parameterisation classes.
 59 
 60 ## 2023-06-13 Gabriele Cosmo (geomnav-V11-01-01)
 61 - Applied clang-tidy fixes (readability, modernization, performance, ...).
 62 
 63 ## 2023-01-31 John Apostolakis (geomnav-V11-01-00)
 64 - G4PropagatorInField: Added parameters for big steps.
 65    New parameter 'MaxStepSizeMultiplier' - enables changing
 66      (eg needed to reduce costly unnecessary integration in QSS)
 67    New parameter 'MinBigDistance' used as minimum distance in 
 68      case of long steps.  Could be adapted to size of world.
 69    Default values also changed: 
 70            'LargestAcceptableDistance' = 100 * meter ( from 1000* meter )
 71            'MaxStepSizeMultiplier'     = 0.1         ( from 100 ).
 72 
 73 ## 2022-11-23 John Apostolakis (geomnav-V11-00-09)
 74 - G4MultiLevelLocator: refresh candidate intersection point when needed.
 75 
 76 ## 2022-11-10 John Apostolakis (geomnav-V11-00-08)
 77 - Improved diagnostic message in G4MultiLevelLocator - they missed to print
 78   the stored information on trial integration steps in one error case.
 79 - G4MultiLevelLocator: small print formatting change.
 80 
 81 ## 2022-11-10 Gabriele Cosmo (geomnav-V11-00-07)
 82 - Fixed compilation warnings for implicit type conversions on macOS/XCode 14.1.
 83 
 84 ## 2022-10-05 Gabriele Cosmo (geomnav-V11-00-06)
 85 - Fixed compilation warnings on Intel-icx compiler for variables set
 86   but not used.
 87 
 88 ## 2022-05-10 Guilherme Amadio (geomnav-V11-00-05)
 89 - G4Navigator: minor improvements to ComputeSafety(), ComputeStep()
 90   and LocateGlobalPointAndSetup().
 91 
 92 ## 2022-03-11 Pedro Arce (geomnav-V11-00-04)
 93 - G4RegularNavigation: reset the zero step counter when a non-zero step was
 94   performed, to avoid aborted events. Corrected tabulation.
 95   Fixes as proposed in [GitHub PR #38](https://github.com/Geant4/geant4/pull/38)
 96 
 97 ## 2022-02-14 Sergio Losilla (geomnav-V11-00-03)
 98 - /geometry/run/test also checks for overlaps in parallel worlds if
 99   /geometry/run/check_parallel is set to true.
100 
101 ## 2022-01-08 Gabriele Cosmo (geomnav-V11-00-02)
102 - G4VIntersectionLocator: Fixed compilation warning on Intel-icx compiler
103   for unused data.
104 
105 ## 2022-01-05 Jonas Hahnfeld (geomnav-V11-00-01)
106 - G4TransportationManager: Add constant `kMassNavigatorId`.
107 - G4SafetyHelper: Use it.
108 
109 ## 2021-12-10 Ben Morgan (geomnav-V11-00-00)
110 - Change to new Markdown History format.
111 
112 ---
113 
114 # History entries prior to 11.0
115 
116 September 25, 2021 - P.Arce  (geomnav-V10-07-05)
117 ----------------------------
118 - Reduce warning messages in GetReplicaNo: only when difference is > kCarTolerance 
119 - NoVoxel -> NoVoxels for coherence with rest of code
120 
121 May  4, 2021 - J.Apostolakis  (geomnav-V10-07-04)
122 ----------------------------
123 - G4Navigator: 
124    * Added missing implementation of SetVoxelNavigation method (i.e. VecGeom Nav.)
125    * deleted experimental method RecheckDistanceToCurrentBoundary (obsolete)
126        ( Also removed in G4SafetyHelper and G4PathFinder. )
127    * cleaned up ComputeSafety
128 - G4VoxelNavigation: 
129    * simplify code of 'check' mode tests -- avoid 2nd code path.
130        Prioritise reducing cost of 'non-checking' mode (avoid one if) 
131        at marginal extra cost in check mode (extra call to DistanceToOut)
132    * added comments about method arguments.
133 - G4NavigationLogger: soften check of step vs distance (using tolerance)
134 
135 March 30, 2021 - B.Morgan      (geomnav-V10-07-03)
136 -------------------------
137 - Migrate sources.cmake to modular build API
138 
139 March 8, 2021 - J.Apostolakis  (geomnav-V10-07-02)
140 -----------------------------
141 - G4Navigator: enable use of alternative G4VoxelNavigation class.
142 For development / prototyping of integration of VecGeom navigation.
143 Notes:
144   * Adds call to virtual method in ComputeStep, LocateGlobalPointAndSetup
145   in each voxelised volume.
146   * Controled by #ifdef ALTERNATIVE_VOXEL_NAV  (now turned on
147   in G4Navigator.hh)
148 
149 January 27, 2021 - P.Arce (geomnav-V10-07-01)
150 ---------------------------
151 - G4RegularNavigation: Addressing problem report #2314.
152 Added a #ifdef G4DEBUG_NAVIGATION to avoid excessive warnings
153 Substituted G4cout by G4Exception GeomRegNav1002 (renumbering of exceptions)
154 
155 December 16, 2020 - G.Cosmo (geomnav-V10-07-00)
156 ---------------------------
157 - G4ReplicaNavigation: reduced step correction in ComputeStep().
158   Addressing problem report #2302.
159 - G4PathFinder: moved debug printout within debug block in Locate().
160 
161 October 15, 2020 - G.Cosmo (geomnav-V10-06-08)
162 --------------------------
163 - G4ReplicaNavigation: relaxed condition for step correction in ComputeStep().
164 
165 October 13, 2020 - E.Tcherniaev (geomnav-V10-06-07)
166 -------------------------------
167 - Added G4GeomTestVolume::TestOverlapInTree().
168 
169 September 8, 2020 - G.Cosmo (geomnav-V10-06-06)
170 ---------------------------
171 - Fixed Coverity defects in G4RegularNavigation for uninitialised data.
172 
173 June 15, 2020 - G.Cosmo (geomnav-V10-06-05)
174 -----------------------
175 - Fixed Coverity defects in G4LocatorChangeRecord and some code cleanup.
176 
177 June 8, 2020 - G.Cosmo (geomnav-V10-06-04)
178 ----------------------
179 - Enabled "check-mode" for G4PropagatorInField and G4VIntersectionLocator.
180   Enable use of whiteboard for logging/debugging in G4MultiLevelLocator, if
181   "check-mode" in navigation is being activated through UI command.
182 
183 May 28, 2020 - J.Apostolakis  (geomnav-V10-06-03)
184 ----------------------------
185 - G4MultiLevelLocator: introduced whiteboard for logging/debugging in
186   G4MultiLevelLocator, to help identify source(s) of recent issues seen
187   in CMS and Belle2.
188   Activating the following:
189     * Record points ( e.g. A, B, H ) changes using G4LocatorChangeRecord
190     * Report when a problem is encountered.
191     * Improved reports of check of distance of endpoints <= the curve length.
192       and of exception of interval start A being past end B during integration.
193     * New separate name for return of intersection 'PointGi'.
194   Improved PiF ClearPropagatorState.
195 - New classes G4LocatorChangeLogger and G4LocatorChangeRecord, implementing
196   simple 'whiteboard' to store successive curve-point values (e.g. start(A)
197   or end(B) ).
198 - G4PropagationInField: improved ClearPropagatorState() method.
199   Clears values of additional data members.
200 
201 March 24, 2020 - J.Apostolakis  (geomnav-V10-06-02)
202 ------------------------------
203 - Reordered the data members of G4Navigator, to reduce size
204   of G4Navigator object(s), as compromise between full compactification and
205   keeping some related data members declarations close.
206   Inspired by the effort of G.Amadio in this direction.
207 
208 February 5, 2020 - P.Arce  (geomnav-V10-06-01)
209 -------------------------
210 - Addressing problem report #2196.
211   Avoid looping infinitely by pushing N times with increasing step size.
212 
213 December 10, 2019 - B.Morgan  (geomnav-V10-06-0)
214 ----------------------------
215 - Cleanup CMake build, removing obsolete granular library options and
216   explicit include_directories.
217 
218 November 29, 2019 - J.Apostolakis  (geomnav-V10-05-19)
219 ---------------------------------
220 - Added method to PropagatorInField to Get/Set new parameter that
221   controls after how many integration substeps (in one physics step)
222   the Increase of Chord Distance is trigerred.
223   The new method
224        SetIterationsToIncreaseChordDistance()
225   provides control of 'increase' feature introduced in geomnav-V10-05-10.
226   This control is necessary to allow the user to either
227     - disable this change (setting to 0 or large value) or to
228     - change the parameter's value, for earlier/later increase of delta chord.
229 
230   This parameter allows the temporary 'relaxation' of the constraint
231   which ensure that each 'chords' is close enough to the section of the
232   curved trajectory that it is approximating.
233 
234   ( See further explanation of feature & parameter in note for
235     geomnav-V10-05-10. )
236 
237 November 19, 2019 - G.Cosmo  (geomnav-V10-05-18)
238 ---------------------------
239 - Fixed more cases of implicit type conversions.
240 
241 November 15, 2019 - G.Cosmo  (geomnav-V10-05-17)
242 ---------------------------
243 - Attempt to fix cases of implicit type conversions from size_t to G4int...
244 
245 November 14, 2019 - J.Apostolakis  (geomnav-V10-05-16)
246 ---------------------------------
247 - G4MultiLevelLocator: Avoid re-estimating endpoint if driver does not
248      ReIntegrate when AccurateAdvance is called.
249   Requires field-V10-05-17
250 
251 November 5, 2019 - J.Apostolakis  (geomnav-V10-05-15)
252 --------------------------------
253 - G4TransportationManager: Enable worker threads to clone G4Navigator if needed.
254   * Keep first Navigator created for a TM object. By convention that will be
255     the Navigator object of the Master thread (or the only thread).
256   * Other (worker) threads will clone first Navigator, if it has an external
257     sub-navigator registered. This ensures that they clone the ability to
258     navigate in 'external' volume description.
259 - G4VExternalNavigation: added new method for relocation within volume.
260   G4Navigator will call it in LocateGlobalPointWithinVolume().
261 
262 November 1, 2019 - P.Arce  (geomnav-V10-05-14)
263 --------------------------------
264 - G4PhantomParameterisation: Reverted precision checks to the code in
265   geant4.10.02.p02 to address problem report.
266   Fixes bug #2192
267 
268 October 29, 2019 - J.Apostolakis  (geomnav-V10-05-13)
269 --------------------------------
270 - Fixed G4Navigator::CharacteriseDaughters:
271   * Use only logical volume's CharacteriseDaughters.
272     Do not check/use whether External Navigator is present.
273 - Added 'direction' back to External Navigation's Inside method.
274 
275 October 28, 2019 - G.Cosmo (geomnav-V10-05-12)
276 --------------------------
277 - G4Navigator: define Clone() function to be used instead of copy-constructor
278   (which is kept deleted) for use of explicit cloning.
279 
280 October 25, 2019 - J.Apostolakis, G.Cosmo, V.Vlachoudis (geomnav-V10-05-11)
281 -------------------------------------------------------
282 - Added hooks for capability to navigate in 'external' geometry:
283   * base class for external 'sub'-navigator;
284   * new type of 'External' physical volume, to flag volumes for
285     external sub-navigator;
286   * an 'external' sub-navigator can be registered with G4Navigator;
287   * revisions to G4Navigator to dispatch logical volumes with
288     daughters which are of 'external' PV type to that object of
289     type G4VExternalNavigation.
290   Note: 'placement' and 'external' physical volumes cannot be currently mixed
291         inside the same logical volume.
292 - New copy constructor of G4Navigator
293   * needed to 'clone' navigator for G4VIntersectionLocator's 'helper',
294     and potentially for worker threads.
295 
296 August 23, 2019 - D.Sorokin (geomnav-V10-05-10)
297 ---------------------------
298 - Try to relax delta chord condition to solve looping particle issue.
299 
300   Introduces temporary 'relaxation' (increase) of the value of delta-chord,
301   to enable larger steps, after a threshold number of iterations (parameter).
302 
303   Delta chord ensures that the set of 'chords' approximate the curved trajectory
304   adequately.  Each integration step is broken up into segments or substeps
305   for which the sagitta is smaller than 'delta chord.'
306 
307   For some tracks this constraint can force a large number of short integration
308   steps, and once the number of steps exceed the 'maximum' they are classed
309   as looping tracks.  ( This can occur when the radius of curvature is just
310   larger than  delta_chord and a particle is hardly interacting, e.g. if
311   travelling in vacuum or is a muon in a large gas volume. )
312 
313   To address this, we increase the value of delta-chord temporarily,
314   after the number of iterations substeps reach a multiple of this threshold.
315   In particular the value of 'delta chord' is doubled when the iterations
316   reach twice this threshold number, and it is doubled again every time the
317   iteration count reaches every other multiple of this value.
318   ( Note that delta chord is not changed when the iteration count reaches
319   the threshold number, only its multiples. )
320 
321   The initial value of the parameter IterationsChordDistanceThreshold is 100.
322 
323   Note: delta-chord is reset to its original value at the end of
324         each call to G4PropagatorInField's ComputeStep method.
325 
326 August 22, 2019 - G.Cosmo (geomnav-V10-05-09)
327 -------------------------
328 - Use pre-increment wherever possible.
329 
330 July 9, 2019 - G.Cosmo (geomnav-V10-05-08)
331 ----------------------
332 - Enable UI command "/geometry/navigator/push_notify" which was not
333   setup properly. Addressing problem report #2173.
334 
335 July 8, 2019 - G.Cosmo (geomnav-V10-05-07)
336 ----------------------
337 - Use constant iterator when possible in G4TransportationManager and
338   G4PartialPhantomParameterisation.
339 
340 July 4, 2019 - G.Cosmo (geomnav-V10-05-06)
341 ----------------------
342 - Implemented c++11 revision: nullptr, auto, inline data initialisation,
343   alias using statements.
344 - Made G4RegularNavigationHelper a G4ThreadLocalSingleton.
345 - Fixed builds with debug flags.
346 - Code formatting and cleanup.
347 
348 July 2, 2019 - J.Apostolakis (geomnav-V10-05-05)
349 ----------------------------
350 - G4Navigator: further fix to avoid creating ostringstream object.
351   Now it is created for each step only when the G4DEBUG_NAVIGATION flag
352   is set.
353   ( To clarify: the warning was created in ostringstream object if
354     G4VERBOSE was set, but only printed if  G4DEBUG_NAVIGATION was set.
355     Now the latter flag is used for both creating and printing. )
356 
357   Created to address memory churn reported by memory profiling
358   (Julia/Soon @FNAL).
359 
360 June 19, 2019 - G.Cosmo (geomnav-V10-05-04)
361 -----------------------
362 - Fixed compilation warning for unused variable when G4VERBOSE is not set.
363 
364 June 18, 2019 - J.Apostolakis (geomnav-V10-05-03)
365 -----------------------------
366 - Revised (recent) code for Exceptions to avoid creating ostringstream
367   when it is not needed / used.
368   Seen only in 'stuck tracks' that are trying to recover from more than
369   10 zero steps in a row (fixes problem seen in one benchmark).
370 
371 June 5, 2019 - J.Apostolakis (geomnav-V10-05-02)
372 ----------------------------
373 - Improved information in Exceptions for particles stuck due to multiple
374   zero steps in G4Navigator.
375 
376 April 1, 2019 - G.Cosmo (geomnav-V10-05-01)
377 ------------------------
378 - Protected report for looping particles under verbosity flag.
379 
380 March 11, 2019 - G.Cosmo (geomnav-V10-05-00)
381 ------------------------
382 - Fixed typos in printouts in G4NavigationLogger.
383 
384 September 26, 2018 - D.Sorokin (geomnav-V10-04-12)
385 ------------------------------
386 - Notify G4ChordFinder at the beginning of each ComputeStep() call.
387 
388 June 15, 2018 - G.Cosmo (geomnav-V10-04-11)
389 -----------------------
390 - Fixed Coverity defect in diagnostic report in G4MultiLevelLocator.
391 
392 June 13, 2018 - G.Cosmo (geomnav-V10-04-10, 09)
393 -----------------------
394 - Use G4Exception instead of streaming to cerr in various classes.
395 
396 June 8, 2018 - J.Apostolakis (geomnav-V10-04-08, 07)
397 ----------------------------
398 - G4PropagatorInField: fix for case of finishing integration in last iteration
399   (so a looping particle will not be signalled incorrectly in that case.)
400   Improved reporting of looping particle, adding info on density and
401   fraction (%) of proposed step that was completed, and momentum (-08).
402 
403 May 11, 2018 - E.Tcherniaev (geomnav-V10-04-06)
404 ---------------------------
405 - G4Navigator::ComputeLocalAxis(): removed unnecessary check for IsRotated().
406 
407 May 9, 2018 - E.Tcherniaev (geomnav-V10-04-05)
408 --------------------------
409 - Replaced use of Inverse() from G4AffineTransform with new dedicated
410   methods, to avoid creation of temporaries in G4Navigator, G4RegularNavigation
411   and G4ReplicaNavigation.
412 
413 May 4, 2018 - J.Apostolakis (geomnav-V10-04-04)
414 ---------------------------
415 - G4Navigator::GetLocalExitNormal(): fix for normal calculated at the endpoint
416   of current step, on a 'candidate' next volume. Adds missing transformation to
417   the frame of the current volume.
418   Addresses problem report #2054.
419 
420 April 17, 2018 - J.Apostolakis (geomnav-V10-04-02,03)
421 ------------------------------
422 - G4Navigator::Set/RestoreSavedState(): fix for save/restore of ReplicaNumber
423   (Thanks to Helmut Burkhardt).
424 
425 April 11, 2018 - J.Apostolakis (geomnav-V10-04-01)
426 ------------------------------
427 - G4PathFinder::DoNextLinearStep():
428   * Use 'Relocated Point' flag to signal move from call to ReLocate, and
429     ensure that new point is used in cross-checks in subsequent Locate.
430   * Revert change of geomnav-V10-03-09, keeping fMinStep as 'logical'
431     value, which can be kInfinity when step is not limited by Navigators
432     (it was meant to cope with zero proposed step in RE03, however it
433     caused problems in multiple cases when PathFinder was used).
434 
435 - G4SafetyHelper:
436   * Do not limit memorisation of safety in case of parallel
437     geometries (when a length is not passed to safety method).
438   * Fix to including full message in Exception.
439 
440 February 26, 2018 - J.Apostolakis (geomnav-V10-04-00)
441 ---------------------------------
442 - Fix for momentum value in G4PathFinder::SetChargeMomentumMass
443   Was passing magnitude square, instead of magnitude.
444   Corrects bug report 2037.
445     Thanks to Renee Fatemi (Univ. of Kentucky, mu-to-e experim.)
446 
447 November 23, 2017 - J.Apostolakis (geomnav-V10-03-09)
448 ---------------------------------
449 - Fix in G4PathFinder to cope with zero proposed step.
450   Correction ensures that the 'physical' length of a step is used
451   in minimum, rather than 'logical' value (i.e. kInfinity).
452 
453 November 2, 2017 - G.Cosmo (geomnav-V10-03-08)
454 --------------------------
455 - Correction to use G4 types in G4Navigator after previous tags...
456 
457 November 2, 2017 - J.Apostolakis (geomnav-V10-03-07)
458 --------------------------------
459 - test/CMakeLists.txt: fixed to enable use with unit test infrastructure.
460 
461 November 1, 2017 - J.Apostolakis (geomnav-V10-03-06)
462 --------------------------------
463 - G4Navigator - loosened check on normal vector, whether it is a unit
464     vector.  Warn only if | norm - 1 | > 10^-3  ( not 10^-6 ).
465     Improved clarity by using a constant to define it.
466 
467 August 25, 2017 - J.Apostolakis (geomnav-V10-03-05)
468 -------------------------------
469 - G4PathFinder, G4PropagatorInField and all Locator classes (source files)
470   G4PropagatorInField.icc ( GetCurrentEquationOfMotion method )
471   *  Moved to using IntegrationDriver's direct method to Get Equation of motion
472      ( for cleaner code and future proofing - introducing non-RK drivers.)
473   * Used 'auto' for type of driver (to pave way for non-RK drivers.)
474 
475 - G4Navigator:  use 'perThousand' in check for unity of normal vector
476     ( issue was too noisy for no good reason otherwise. )
477 
478 March 22, 2017 - G.Cosmo (geomnav-V10-03-04)
479 ------------------------
480 - Avoid deletion of field-manager pointer in destructor of
481   G4TransportationManager, as it is being deleted by G4FieldManagerStore.
482 
483 March 21, 2017 - G.Cosmo (geomnav-V10-03-03, 02, 01)
484 ------------------------
485 - Provide simple accessor GetInstanceIfExist() for G4PathFinder and
486   G4TransportationManager singletons.
487 
488 March 17, 2017 - G.Cosmo (geomnav-V10-03-00)
489 ------------------------
490 - Correction in destructors of G4TransportationManager and G4PathFinder.
491 
492 October 23, 2016 - G.Cosmo (geomnav-V10-02-21)
493 --------------------------
494 - Fixed recursion test in G4GeomTestVolume to iterate on all daughters.
495 
496 October 19, 2016 - G.Cosmo (geomnav-V10-02-20)
497 --------------------------
498 - G4ReplicaNavigation: use Cartesian tolerance in distance evaluation
499   in DistanceToOutPhi(). Addressing problem report #1902.
500 - G4Navigator: extended printout in ComputeStep() for stuck tracks, to
501   show also local coordinates.
502 - Fixed shadowing compilation warnings in unit tests.
503 
504 October 11, 2016 - G.Cosmo (geomnav-V10-02-19)
505 --------------------------
506 - Code formatting and fixed compilation error for left-over includes
507   in G4PhantomParameterisation.
508 
509 October 11, 2016 - P.Arce (geomnav-V10-02-18)
510 -------------------------
511 - G4PhantomParameterisation: revisiting precision checks.
512 
513 October 7, 2016 - J.Apostolakis (geomnav-V10-02-17, 16)
514 -------------------------------
515 - Checked loops for terminationof infinite loops and annotated them with
516   "Loop checking" comment.
517   A number of files were not included, as they require complex multi-method
518   analysis: G4ParameterisedNavigation, G4RegularNavigation, G4VoxelNavigation,
519   G4VoxelSafety.
520 
521 October 5, 2016 - G.Cosmo (geomnav-V10-02-15)
522 -------------------------
523 - G4Navigator: still force abortion of event if track gets really stuck,
524   but avoid check for overlaps if push-verbosity is set to false.
525 
526 October 5, 2016 - G.Cosmo (geomnav-V10-02-14)
527 -------------------------
528 - G4Navigator: allow to disable overlap checks and warnings in ComputeStep()
529   by setting push-verbosity to false with SetPushVerbosity().
530 - G4PhantomParameterisation: correction in use of std::copysign()
531   introduced in previous tag.
532 
533 October 4, 2016 - P.Arce (geomnav-V10-02-13)
534 ------------------------
535 - G4PhantomParameterisation: revisiting precision checks (some were
536   unreasonably tight).
537 
538 August 30, 2016 - G.Cosmo (geomnav-V10-02-12)
539 -------------------------
540 - G4Navigator: more diagnostics in G4VERBOSE mode in GetGlobalExitNormal().
541 
542 August 25, 2016 - D.Sorokin (geomnav-V10-02-11)
543 ---------------------------
544 - G4PropagatorInField: fix to pass accuracy values to Intersection Locator
545    after re-evaluating epsilon (not before.)
546    [ Dmitrii Sorokin was supported by Google during GSoC 2016. ]
547    [ Recorded by J. Apostolakis ]
548 
549 August 15, 2016 - G.Cosmo (geomnav-V10-02-10)
550 -------------------------
551 - G4Navigator: more diagnostics in G4VERBOSE mode in GetGlobalExitNormal().
552 
553 July 8, 2016 - G.Cosmo (geomnav-V10-02-09)
554 ----------------------
555 - Fix in G4Navigator::GetGlobalExitNormal() to synchronise caching of
556   'fExitNormalGlobalFrame' before returning (thanks to P.Gumplinger for
557   spotting this). Addressing problem report #1750.
558 
559 May 18, 2016 - G.Cosmo (geomnav-V10-02-08)
560 ----------------------
561 - Fixed compilation warning on gcc-6.1 in G4Navigator::PrintState().
562 
563 May 3, 2016 - G.Cosmo (geomnav-V10-02-07)
564 ---------------------
565 - Reinstated check on anomalous mother-step with corrective action, previously
566   moved only in check-mode in G4VoxelNavigation and G4NormalNavigation.
567 
568 April 15, 2016 - G.Cosmo (geomnav-V10-02-06, 05)
569 ------------------------
570 - Avoid static constant definition of surface tolerance in G4VoxelNavigation
571   in method LocateNextVoxel() to clear spurious warnings for data-race
572   conflicts from Valgrind/DRD tool; defined as class data member.
573 - Cleared up use of static constants also in other navigation classes.
574 
575 April 12, 2016 - G.Cosmo (geomnav-V10-02-04)
576 ------------------------
577 - Improved diagnostic in G4Navigator. Moved some debug checks in "check-mode".
578 - Minor code cleanup.
579 
580 February 1, 2016 - G.Cosmo (geomnav-V10-02-03, 02)
581 --------------------------
582 - Relax condition for zero or almost-zero steps in G4ReplicaNavigation and
583   G4Navigator, to allow for faster progression in case of stuck tracks in
584   3D scoring meshes. Addressed old problem report #1432.
585 
586 January 29, 2016 - G.Cosmo (geomnav-V10-02-01)
587 --------------------------
588 - Fix in G4ReplicaNavigation::ComputeStep() for correct setting of copyNo
589   for particle entering. Fixes issue of negative copyNo observed in nested
590   replica setups. Addressing problem report #1634.
591 
592 January 11, 2016 - G.Cosmo (geomnav-V10-02-00)
593 --------------------------
594 - Move check for overlaps in G4Navigator::ComputeStep() within G4VERBOSE.
595   Addressing problem report #1811.
596 
597 November 13, 2015 - G.Cosmo (geomnav-V10-01-35)
598 ---------------------------
599 - Code cleanup in G4MultiLevelLocator and G4PropagatorInField.
600 
601 October 30, 2015 - J.Apostolakis (geomnav-V10-01-34)
602 --------------------------------
603 - G4MultiLevelLocator::EstimateIntersectionPoint():
604   * Replaced fatal error for exceeding max steps with warning.
605     In addition it returns immediately, giving the current progress as the
606     'Recalculated End Point'. This signals 'looping' - ie too many steps.
607 - G4PropagatorInField detects this condition, and identifies it as a 'Looping
608   Particle' which is then flagged.
609   The calling class (Transportation, PathFinder) is expected to stop the
610   tracking of this particle after this step (or potentially after a few of
611   these steps.)
612   Note: Current way to identify looping (in PropagatorInField) is:
613         - if flag recalculated is set and the proposed end-point is short,
614           i.e. if it not as far along the curve as the original proposed
615           end-point (the one sent to the Locator).
616   TODO: Consider revising the interface of EstimateIntersectionPoint to add an
617         'unfinished' output value - to make this condition clearer.
618 - Addresses issues seen by ALICE in trial productions.
619 
620 October 23, 2015 - G.Cosmo (geomnav-V10-01-33)
621 --------------------------
622 - Fixed Coverity defect in G4VIntersectionLocator. Some minor code cleanup...
623 
624 October 14, 2015 - J.Apostolakis (geomnav-V10-01-32)
625 --------------------------------
626 - G4MultiLevelLocator::EstimateIntersectionPoint():
627   * Ensure that splitting of step (new level / depth) advances the required
628     length by calling ChordFinder's AdvanceChordLimited method
629       ( instead of method AccurateAdvance of Driver.)
630        Used when adding a new level / depth.
631    Addresses issue seen by ALICE (non-finishing of step due to poor advances).
632 - Added method in G4VIntersectionLocator to report Immediate Hit
633     - ie if the intersection point is within tolerance of the start point
634 - G4NavigationLogger: Added method to report issue with normal that
635     is the result of applying a rotation (which prints the matrix.)
636 - G4NormalNavigation, G4VoxelNavigation: Added check of rotated exit normal
637 
638 October 11, 2015 - G.Cosmo (geomnav-V10-01-30, 31)
639 -------------------------
640 - Fix in G4MultiLevelLocator::EstimateIntersectionPoint(): revised condition
641   of 'while' loop which ensures that a new candidate intersection exists.
642   Corrected the resetting of 'first_section' flag: when the linear search is
643   progressing well, several (>1) iterations of the outer loop can be part of
644   the initial sections (i.e. before any bi-section = depth increase).
645   (J.Apostolakis)
646 - Removed more debug printouts and conditions.
647 - Fixed compilation warning in G4MultiLevelLocator. (tag -31)
648 
649 September 5, 2015 - G.Cosmo (geomnav-V10-01-29)
650 ---------------------------
651 - Removed left-over debug statement introduced in tag "geomnav-V10-01-26";
652   fixing compilation warning on clang compiler.
653 
654 September 4, 2015 - G.Cosmo (geomnav-V10-01-28)
655 ---------------------------
656 - Removed 'tracing' mode in G4MultiLevelLocator.
657 - Some code cleanup.
658 
659 September 2, 2015 - J.Apostolakis (geomnav-V10-01-27, 26)
660 ---------------------------------
661 - G4MultiLevelLocator::EstimateIntersectionPoint():
662   * Fix for logic error in keeping consistent candidate intersection.
663     Copes with case that a candidate intersection is not found in the next
664     segment (typically in the 'second half' part).
665     Correction was to examine additional segments until a chord is found that
666     intersects (changing 'if' to 'while') or all were exhausted (then no
667     intersection exists).
668   * Includes new flags and consistency check - in an assert.
669   * Added a 'tracing' mode, to report each call, and the path taken.
670     Off by default. Likely to be suppressed in a future tag.
671 - G4VIntersectionLoator: new methods & revised interfaces.
672   Added new auxiliary methods: ReportReversedPoints(), ReportProgress() and
673   CheckAndReEstimateEndpoint().
674   Revised arguments of methods:
675   * ReEstimateEndpoint(): Ignore & recalculate redundant parameters.
676   * Made printStatus( with stream ) static, and added verbose argument.
677   * Changed ostringstream argument to ostream in PrintStatus (more flexible
678     as it can now be used directly with std::cout).
679 
680 August 4, 2015 - G.Cosmo (geomnav-V10-01-25)
681 ------------------------
682 - Withdrawn changes to G4GlobalFieldMessenger.cc introduced in the previous tag.
683 - G4VIntersectionLocator: properly initialise 'fCheckMode'; fixing Coverity
684   defect.
685 
686 June 9, 2015 - J.Apostolakis (geomnav-V10-01-24)
687 ----------------------------
688 - G4GlobalFieldMessenger: Revised SetField() method to switch order of call
689   to 'CreateChordFinder()' before calling G4FieldManager::SetDetectorField().
690   Changed in order to co-work with fix of G4FieldManager::SetDetectorField().
691   Requires and co-works with  field-V10-01-05
692 
693 May 10, 2015 - J.Apostolakis (geomnav-V10-01-23)
694 ----------------------------
695 - G4NavigationLogger: Changes, refinements for ReportOutsideMotherVolume()
696   * Delegate printing details to new method 'ReportVolumeAndIntersection'.
697   * Print additional diagnostic information (to help with ATLAS issue.)
698   * New properties:
699      * fMinTriggerDistance: a larger error is fatal (def. DBL_MAX)
700      * fReportSoftWarnings: is set, report if small safety (abs<tolerance)
701                             is not rounded to zero.
702 
703 June 3, 2015 - G.Cosmo (geomnav-V10-01-22)
704 ----------------------
705 - Minor printout fix in G4NavigationLogger::ReportOutsideMother().
706 
707 May 29, 2015 - G.Cosmo (geomnav-V10-01-21)
708 ----------------------
709 - Fixed compilation errors when compiling with G4DEBUG_FIELD turned on.
710   Addressing problem report #1748.
711 
712 May 11, 2015 - G.Cosmo (geomnav-V10-01-20)
713 ----------------------
714 - Minor fixes and code cleanup/simplification.
715 
716 May 10, 2015 - J.Apostolakis (geomnav-V10-01-19)
717 ----------------------------
718 - Navigation Helper classes (Normal, Voxel, Parameterised)
719   * Use return value of motherSolid DistanceToOut(p,v), each time
720     that it is called.  Correct 'invalid' to zero:
721       If it is  kInfinity, reset value to zero!
722       If it is  negative,  reset value to zero!
723   * Small cleanup - always use variables 'mother'ExitNormal.
724     'mother'ValidExitNormal.  Enables small simplification.
725   * Do not return motherExitNormal (valid=false), if outside mother.
726 
727 May 8, 2015 - G.Cosmo (geomnav-V10-01-18)
728 ---------------------
729 - Fixed spurious compilation warnings.
730 
731 May 7, 2015 - G.Cosmo (geomnav-V10-01-17)
732 ---------------------
733 - Protect all changes for extra checks made by navigators in ComputeStep()
734   introduced in the previous tags within 'check_mode' and G4VERBOSE, to
735   allow restoring original run-time performance penalised by more 8-10%.
736 - Utilised changes from tag "geomnav-V10-01-16", in a private branch.
737 - Code cleanup and various minor fixes.
738 
739 May 3, 2015 - J.Apostolakis (geomnav-V10-01-14 and -15)
740 ---------------------------
741 - ComputeStep() methods of Normal/Voxel/Parameterised Navigation:
742   Protect stepping for case of being outside mother volume.
743   Always evaluate mother's DistanceToOut(p,v), in order to check whether
744   answer indicates invalid position (i.e. outside mother solid).
745   Created to address issue of tracking in ATLAS - (JIRA issue ATLAS-SIM 1815
746   and SIM-433, ie https://sft.its.cern.ch/jira/browse/SIM-433 )
747 
748   Detailed description:
749   ComputeStep() methods of the 'Navigation' helper methods changed to always
750   evaluate the mother DistanceToOut(p,v), in order to check whether the answer
751   is
752       * valid, indicating that the point is inside / on surface), or
753       * invalid, indicating the point is outside (when the value is either
754         negative or equal to kInfinity).
755   Addresses / protects Navigation from the case that a point escapes a volume,
756   and never again encounters the volume boundary.
757 
758   Note: DistanceToOut(p,v,...) in some solids is able to return a value that
759         indicates that it has been called from Outside the solid (contrary to
760         its expectation / contract.)
761         But not all solids provide this diagnostic (it would be a very
762         invaluable improvement in the specification / implementation, and
763         likely simple to add and cheap to evaluate.)
764 
765   Enabled ComputeStep() to recognise this response (invalid point - i.e.
766   outside mother). Before it was not recognised, but used instead as a numeric
767   value (kInfinity). In case it was kInfinity, this meant the volume could not
768   be chosen, and the track never exited the volume!
769 
770   This invalid response now triggers an immediate exit from the volume
771   daughters do not need to be considered.
772 
773   'Behaviour' change: this modification changes the logic in ComputeStep(),
774   and always calls the mother solid's DistanceToOut() method.
775   (before it was called only if the currentStep was larger than the mother
776   Solid's safety. )
777 
778   Expected performance impact:
779   The (mandatory) call to DistanceToOut(p,v) in ComputeStep is extra work,
780   as it was optional before.
781   Expect an overhead, proportional to the cost of the 'average' DistanceToOut()
782   method (in the geometry model).
783   The worst cases are expected to be geometries with one or more large
784   complex volumes (e.g. Polycone.) which is either
785   - a leaf node (with above-average density material), or
786   - which has a large number of volumes placed directly inside it.
787 
788   Potential alternative approach:
789   An invalid point must be recognised using some method of a solid.
790   There are three possibilities:
791   - the inside method is called for the mother volume at the start
792     of every step. This would be a new additional call;
793   - the safety method "DistanceToOut(p)" is used to recognise this condition.
794     This could be done if it returns a negative value for positions outside
795     the solid. This call already occurs, but would become more expensive;
796   - the intersection distance "DistanceToOut(p,v,..) is used, and must be
797     called at every step.   This is the choice that has now been made.
798     It is possible to consider the alternative choices, to evaluate their
799     computational cost, and the effort to review/improve the implementations.
800 
801   The most realistic alternative is a) to rely on the Safety method(s) to
802   respond zero if the point is on the 'wrong' side of the volume boundary,
803   and b) to call DistanceToOut(p,v) only if (step < mother Safety).
804 
805 May 02, 2015 - J.Apostolakis (geomnav-V10-01-13)
806 ----------------------------
807 - Withdraw change in "geomnav-V10-01-06":
808 - Correction for roundoff issue in G4PropagatorInField
809 
810 April 30, 2015 - J.Apostolakis (geomnav-V10-01-07,-08,-10) -12 fixed
811 ------------------------------
812 - NavigationLogger:
813   * Added method  for Reporting A Point is Outside the Mother volume.
814   * Added methods CheckAndReportBadNormal, CheckDaughterEntryPoint
815 - G4AuxiliaryNavigationServices:
816   * Optimisation: Reuse dot product, rather than recomputing
817   * Added optional printout (protected by debug flag)
818   * Replaced the fake 'TestOne' non-inline method, with utility method
819     ReportTolerances.
820 - G4VIntersectionLocator
821   * New PrintStatus method with additional ostringstream argument.
822 - G4NormalNavigation:
823   * Moved Set/Get Verbose Level methods to source file (reduces dependency
824     on logger)
825 - G4PathFinder:
826   * Reformatted warning/error message.
827     (Consolidation, include changes commited February 19, 2015, but not
828     tagged).
829 
830 April 30, 2015 - J.Apostolakis (geomnav-V10-01-06)
831 ------------------------------
832 ( Separate tag for the following fix committed on February 19, 2015 )
833 - PropagatorInField:
834   * Fix for roundoff error in return value of ComputeStep, which reduces
835     apparent step, and leads to confusing SteppingManager.
836     ( In case no intersection is found, return the attempted step, not the
837       taken-step. )
838   * Added optional 'trace' verbosity in IntersectChord method which
839       reports arguments and results of each call.
840     Note: this is protected with DEBUG_PROPAGATION flag.
841 
842  [ Note: This tag was made on branch geomnav-V10-01-06-branch, in order to
843          modify this History file without overwriting the History file for
844          geomnave-V10-01-07, which was created earlier. ]
845 
846 January  28, 2015 - J.Apostolakis (geomnav-V10-01-05)
847 ---------------------------------
848 - G4PropagatorInField: Added new methods to report looping and stuck tracks.
849   Cleanup.
850 - G4PathFinder: Fix to two calls to ComputeSafety - second argument is length,
851   not bool.
852 
853 January  27, 2015 - J.Apostolakis (geomnav-V10-01-04)
854 ---------------------------------
855 - G4PropagatorInField: Fix for issue found in microbeam. Reinstate old code
856   that worked.
857   G4PropagatorInField ComputeStep: Widthraw adjustment of 'step taken'
858   in case it was just less than requested step (within tolerance.)
859   This change caused a step to appear to be fully taken, rather than
860   stopping at the boundary just smaller the proposed step (from the physics).
861   As a consequence the trasnportation was not the chosen process, and
862   other processes (multiple scattering) did not update parameters correctly.
863 
864 January  15, 2015 - J.Apostolakis (geomnav-V10-01-03)
865 ---------------------------------
866 - G4PathFinder: Pass to equation of motion relevant properties of current
867     particle: latest charge state (electric, magnetic dipole moment),
868     PDG spin value, momentum and rest mass of current particle
869     Part of corrections needed for Bugzilla issue 1696.
870 
871 - Increased maximum number of Navigators from 8 to 16.
872 
873 December 15, 2014 - J.Apostolakis (geomnav-V10-01-02)
874 ---------------------------------
875 - Improvements to enable identification of first and last step in a volume, when
876     tracking in a field. (Bugzilla issue 1032).
877   Revised G4PropagatorInField, adding new method PrepareNewTrack() and data members.
878   G4PropagatorInField ComputeStep: Adjust 'step taken' in case it was just less
879      than requested/proposed (within tolerance) - in case accumulated numerical
880      error might cause problem. [ Experimental - withdrawn in geomnav-V10-01-04.]
881   Note: Co-works with and is required tags in processes/transportation and track.
882 
883 December 15, 2014 - J.Apostolakis (geomnav-V10-01-01)
884 ---------------------------------
885 - G4ErrorPropagationNavigator: revise implementation of ComputeStep, to
886   avoid calling G4Navigator::ComputeSafety (which has side effects.)
887   Addresses problem report #1679.
888 
889 December 8, 2014 - G.Cosmo (geomnav-V10-01-00)
890 --------------------------
891 - Removed unused leftover header file G4GeomTestVolPoint.hh.
892 
893 November 27, 2014 - G.Cosmo (geomnav-V10-00-19)
894 ---------------------------
895 - Added protection in G4ReplicaNavigation::DistanceToOutRad() for potential
896   rare cases of negative value to sqrt() in equation calculation for rmin/rmax
897   intersection.
898 - Improved warning printout in G4Navigator::GetGlobalExitNormal().
899 
900 November 20, 2014 - J.Apostolakis (geomnav-V10-00-18, 17)
901 ---------------------------------
902 - G4ErrorPropagationNavigator: fix to make normal a unit vector,
903   and fix for Coverity issue, to protect against null 'target'.
904   Addressing problem report #1679.
905 
906 November 19, 2014 - G.Cosmo (geomnav-V10-00-16)
907 ---------------------------
908 - Some code cleanup in G4Navigator source.
909 
910 November 18, 2014 - J.Apostolakis (geomnav-V10-00-15)
911 ---------------------------------
912 - G4ErrorPropagationNavigator: added GetGlobalExitNormal() method to
913   correspond to update of G4Navigator interface in Geant4 9.5.
914   Addresses problem report #1679.
915 - G4Navigator: small fix to calculation of stored step endpoint, for steps
916   that do not hit a boundary.
917 - Fixed GNUmakefile in test.
918 
919 November 14, 2014 - J.Apostolakis (geomnav-V10-00-13,14)
920 ---------------------------------
921 - G4Navigator: Corrections for Exit Normal.
922 
923 October 20, 2014 - G.Cosmo (geomnav-V10-00-12)
924 --------------------------
925 - Leave out changes in G4FieldPropagation.cc laying on the trunk...
926 
927 October 18, 2014 - A.Dotti (geomnav-V10-00-11)
928 ------------------------
929 - Code cleanup: removed unnecessary G4ThreadLocal in G4ReplicaNavigation.
930 
931 August 25, 2014 - G.Cosmo  (geomnav-V10-00-10)
932 -------------------------
933 - Minor code cleanup.
934 
935 August 22, 2014 - M.Asai  (geomnav-V10-00-08 and geomnav-V10-00-09)
936 ------------------------
937 - G4TransportationManager: Add ClearParallelWorlds() method. This method is
938   invoked by G4RunManager when user destroys all the geometry and rebuild
939   from scratch.
940 
941 June  24, 2014 - G.Folger  (geomnav-V10-00-07)
942 -------------------------
943 - G4MultiNavigator: set 'fIdNavLimiting' index to navigator limiting the step,
944   if only one navigator limited the step. Fixes crash in RE05 on Windows.
945   Likely addressing problem report #1634.
946 
947 May   27, 2014 - J.Apostolakis  (geomnav-V10-00-06)
948 ------------------------------
949 - G4Navigator: corrected saving/restoring of 'navigator state':
950   * Added bool sWasLimitedByGeometry to G4SaveNavigatorState struct
951      ( fixes side effect of call to ComputeSafety. )
952   * Corrected RestoreState() to reset the Safety Origin and Value
953   * ComputeSafety: If at endpoint of step, answer safety=0.0 quickly.
954        Do not save/restore state.
955 - G4PropagatorInField:
956   * Added new method GetCurrentEquationOfMotion()
957 
958 May   16, 2014 - J.Apostolakis  (geomnav-V10-00-05)
959 ------------------------------
960 - Fixed G4PathFinder::RecheckDistanceToCurrentBoundary():
961   A compilation error identified error: return value from Navigator
962   was not used to accumulate method return value.
963 
964 May   16, 2014 - J.Apostolakis  (geomnav-V10-00-04)
965 ------------------------------
966 - Improved G4Navigator::RecheckDistanceToCurrentBoundary
967   * Extended it to check a daughter volume, in case the previous step ended at
968     its boundary.  In case the proposed point is inside that daughter, it
969     tries to identify a distance to backtrack (=> returns a negative value. )
970   * Added check that ComputeStep() that was called last, not a Locate method.
971       -currently optional - it fails due to call to Locate in ComputeSafety.
972 
973 May    7, 2014 - J.Apostolakis  (geomnav-V10-00-03) - (internal)
974 ------------------------------
975 - Created  G4Navigator::RecheckDistanceToCurrentBoundary
976   * First version of a new method RecheckDistanceToCurrentBoundary
977    in G4SafetyHelper, G4Navigator and G4PathFinder
978   * The method checks
979        a proposed displacement (new Position) to see if it is in mother;
980        a proposed new direction to find potential backtrack to return to
981           mother volume, or distance to new exit.
982   Requested by EM team (Vladimir Iv.) for use by MultipleScattering.
983 
984 April 10, 2014 - G.Cosmo  (geomnav-V10-00-02)
985 ------------------------
986 - Get rid of deprecated 'register' storage class specifier in source files.
987 
988 March 14, 2014 - J.Apostolakis  (geomnav-V10-00-01)
989 ------------------------------
990 - G4PathFinder: Added method for end of track - needed to signal
991    G4 Transportation Manager to use 'ordinary' Navigator.
992 - Revised G4Navigator::SetupHierarchy, to reduce extra cost due to
993    handling the case of Nested Parameterisation.
994 - PropagatorInField: When setting up a new Intersection Locator
995    pass pointer to current Navigator.
996 
997 December 11th, 2013 - G.Cosmo  (geomnav-V10-00-00)
998 -----------------------------
999 - Fixed implementation of G4TransportationManager::SetNavigatorForTracking()
1000   to initialise active navigator and propagator-in-field with the new
1001   provided instance. Addressing problem report #1537.
1002 - Minor code cleanup in G4GlobalMagFieldMessenger.
1003 
1004 November 22nd, 2013 - I.Hrivnacova  (geomnav-V09-06-19)
1005 ----------------------------------
1006 - Fixed compiler warning intruduced with previous update.
1007 
1008 November 22nd, 2013 - I.Hrivnacova  (geomnav-V09-06-18)
1009 ----------------------------------
1010 - Removed checks for existence of G4TransportationManager
1011   from G4GlobalMagFieldMessenger as they do not work as expected.
1012 
1013 September 9th, 2013 - G.Cosmo  (geomnav-V09-06-17)
1014 -----------------------------
1015 - Relaxed condition for reported move in G4PathFinder::Locate() to exclude
1016   reports for intentional pushes.
1017 
1018 September 3rd, 2013 - I.Hrivnacova  (geomnav-V09-06-16)
1019 ----------------------------------
1020 - Added new messenger class G4GlobalMagFieldMessenger defining UI commands
1021   for creating/deleting the global uniform magnetic field and
1022   activating/inactivating it according to the set field value.
1023 
1024 August 27th, 2013 - G.Cosmo  (geomnav-V09-06-15)
1025 ---------------------------
1026 - Added G4Ellipsoid among solids enabled for parameterisation in
1027   G4PhantomParameterisation.
1028 
1029 August 22nd, 2013 - G.Cosmo  (geomnav-V09-06-14)
1030 ---------------------------
1031 - Added ability to set maximum number of errors to report for overlaps
1032   from a volume in G4GeometryMessenger.
1033   Added new UI command "/geometry/test/maximum_errors [int]" to fix the
1034   threshold. By default, for each volume, reports stop after the first
1035   error reported.
1036 
1037 August 21st, 2013 - G.Cosmo  (geomnav-V09-06-13)
1038 ---------------------------
1039 - Rationalised implementation of VolumeType() and CharacteriseDaughters()
1040   in G4Navigator, to use implementation now provided in G4VPhysicalVolume
1041   and G4LogicalVolume respectively.
1042 
1043 July 15th, 2013 - J.Apostolakis  (geomnav-V09-06-12)
1044 -------------------------------
1045 - G4SafetyHelper: fixed compilation warning; take out unused variable
1046   and cleanup.
1047 
1048 July 12th, 2013 - J.Apostolakis  (geomnav-V09-06-11)
1049 -------------------------------
1050 - G4SafetyHelper: protection against storing 'fake' safety, in case
1051   'maxLength' is used ( not DBL_MAX ).
1052 
1053 June 4th, 2013 - J.Apostolakis  (geomnav-V09-06-10)
1054 ------------------------------
1055 - G4MultiNavigator: fixed use of enum as Boolean in GetGlobalExitNormal().
1056   Issue identified by Coverity.
1057 
1058 Jun 3rd, 2013 - G.Cosmo (geomnav-V09-06-09)
1059 -----------------------
1060 - Corrected deletion of commands in destructor and removed unused pointer.
1061 - Made copy-ctor and assignment operator private in G4Navigator, as not
1062   supposed to be copied or cloned.
1063 
1064 May 23rd, 2013 - G.Cosmo (geomnav-V09-06-08)
1065 ------------------------
1066 - Archived GeomTest* classes for overlaps checking through grid/cylinder
1067   lines. UI commands are replaced with calls to built-in overlaps checking
1068   based on random points located in surface. Defined commands are:
1069     /geometry/test/tolerance [double] [unit]
1070        -- to define tolerance by which overlaps should not be reported.
1071           Default is '0'.
1072     /geometry/test/verbosity [bool]
1073        -- to set verbosity mode. Default is 'true'.
1074     /geometry/test/resolution [int]
1075        -- to establish the number of points on surface to be generated
1076           and checked for each volume. Default is '10000'.
1077     /geometry/test/recursion_start [int]
1078        -- to set the starting depth level in the volumes tree from where
1079           checking overlaps. Default is level '0'.
1080     /geometry/test/recursion_depth [int]
1081        -- to set the total depth in the volume tree for checking overlaps.
1082           Default is '-1', which means checking the whole tree.
1083     /geometry/test/run
1084        -- to start the overlaps checking recursively through the volumes tree.
1085 
1086 May 7th, 2013 - P.Gumplinger (geomnav-V09-06-07, geomnav-V09-06-06)
1087 ----------------------------
1088 - G4PropagatorInField: deleted SetChargeMomentumMass method.
1089 
1090 May 7th, 2013 - J.Apostolakis  (geomnav-V09-06-05)
1091 ------------------------------
1092 - G4Navigator: Added new helper object G4VoxelSafety.
1093     A helper object is owned by a Navigator instance.
1094     To avoid including header it is stored as pointer.
1095     Resolves issue with Multi-threading (thanks to Andrea Dotti
1096          for identifying and reporting the issue.)
1097 
1098 Apr 17th, 2013 - G.Cosmo (geomnav-V09-06-04)
1099 ------------------------
1100 - Minor code cleanup.
1101 
1102 Apr 16th, 2013 - J.Apostolakis  (geomnav-V09-06-03)
1103 ------------------------------
1104 - G4Navigator: made new safety (from G4VoxelSafety) the default.
1105 
1106 Apr 16th, 2013 - J.Apostolakis  (geomnav-V09-06-02)
1107 ------------------------------
1108 - G4VoxelSafety: corrected calculation of edges of voxels.
1109   Identified when point's coordinate is beyond the range of voxels.
1110 
1111 Mar 19th, 2013 - G.Cosmo  (geomnav-V09-06-01)
1112 ------------------------
1113 - Cleanup of MT changes in G4PathFinder, G4RegularNavigationHelper
1114   and G4TransportationManager.
1115 
1116 Dec 10th, 2012 - G.Cosmo  (geomnav-V09-06-00)
1117 ------------------------
1118 - Cleared left-over debug check in G4VoxelNavigation.
1119   Addressing problem report #1406.
1120 
1121 Nov 20th, 2012 - G.Cosmo  (geomnav-V09-05-45)
1122 ------------------------
1123 - Corrected G4Exceptions tags and text.
1124 
1125 Nov 15th, 2012 - G.Cosmo  (geomnav-V09-05-44)
1126 ------------------------
1127 - Code cleanup.
1128 
1129 Nov  6th, 2012 - J.Apostolakis  (geomnav-V09-05-43)
1130 ------------------------------
1131 - G4SafetyHelper: fixed ComputeSafety(), to adapt it to use ComputeSafety()
1132   with extra argument. It was passing a boolean for this argument.
1133   That was correct until the additional argument was added.
1134 
1135 Nov  6th, 2012 - J.Apostolakis  (geomnav-V09-05-42)
1136 ------------------------------
1137 - G4Navigator::ComputeSafety(): made the 'old' safety default (the one
1138   provided by G4VoxelNavigation.
1139 - G4VoxelSafety: in ComputeSafety(), provide the mother safety in the call
1140   to SafetyForVoxelHeader() as initial value; optimisation, to reduce number
1141   of voxels searched.
1142   In SafetyForVoxelHeader(), if point is outside boundaries of voxel 'Min' or
1143   'Max' coordinates, then corresponding 'distance' will be negative.
1144   Must never consider this direction to move: Reset that distance to DBL_MAX.
1145   Cosmetic changes in SafetyForVoxelHeader(): added explanation: why must
1146   'pointNodeNo' be normalised; revised asserts, corrected comments and removed
1147   old ones; added 'depth' to some diagnostic printouts.
1148 
1149 Nov 9th, 2012 - G.Cosmo  (geomnav-V09-05-41)
1150 -----------------------
1151 - G4RegularNavigationHelper: added newline at the end of file to avoid
1152   compilation warnings on clang.
1153 
1154 Nov 9th, 2012 - G.Folger  (geomnav-V09-05-40)
1155 ------------------------
1156 - G4RegularNavigationHelper: transform it to real singleton from static
1157   utility class, created upon first use; make vector of 'Steplengths' a data
1158   member.
1159 - Adapted G4RegularNavigation to use G4RegularNavigationHelper singleton calls.
1160 - Co-works with procscore-V09-05-05, which requires it.
1161 
1162 Nov  6th, 2012 - J.Apostolakis  (geomnav-V09-05-39)
1163 ------------------------------
1164 - Fix for compiler warning from gcc 4.7.
1165 
1166 Nov  6th, 2012 - J.Apostolakis  (geomnav-V09-05-38)
1167 ------------------------------
1168 - G4VoxelSafety::SafetyForVoxelNode(): corrected calculation of 'pointNodeNo'
1169   to ensure it corresponds to a physical node ( range: 0 to Max-1 ).
1170   Reason: it is possible for the Min and Max of a voxel NOT to contain the
1171   current location along an axis (at lower levels only, not top level).
1172   Interface change: added const pointer to Physical volume (for printing).
1173 
1174 Nov  5th, 2012 - J.Apostolakis  (geomnav-V09-05-37)
1175 ------------------------------
1176 - G4VoxelSafety::SafetyForVoxelHeader(): use 'minSafety' and 'maxLength' to
1177   prune search tree for optimisation. Pass along 'minSafety' to lower levels.
1178   Also keep safety at this level and below (NOT above) as 'ourSafety'
1179   Return 'ourSafety', not updated value of 'minSafety'.
1180   Arguments: use *squared* distance-to-upper-depth, and add previous
1181   minimum safety.
1182   Revised calculation of square distance-to-upper-depth, adding square of
1183   current level distance (previously, using maximum of previous and current
1184   level, to avoid square root).
1185   Printing only under the flag 'G4DEBUG_NAVIGATION', not G4VERBOSE.
1186 
1187 Nov  1st, 2012 - J.Apostolakis  (geomnav-V09-05-36)
1188 ------------------------------
1189 - G4VoxelSafety: hidden verbose output under G4DEBUG_NAVIGATION.
1190 
1191 Nov  1st, 2012 - J.Apostolakis  (geomnav-V09-05-35)
1192 ------------------------------
1193 - G4VoxelSafety: do not check whether 'input' safety position is inside volume
1194   except if G4DEBUG_NAVIGATION is set.
1195 
1196 Nov  1st, 2012 - J.Apostolakis  (geomnav-V09-05-34)
1197 ------------------------------
1198 - G4VoxelSafety: revised end condition to use distance of previous depths
1199   sqr(distAxis) + sqr(distUpperDepth) < sqr(minSafety).
1200   Streamlined printing, and move it behind G4DEBUG_NAVIGATION.
1201   Added count of nodes checked.
1202 - G4Navigator: fix for compilation warning. Small change in printing.
1203   Streamlined use of (new) G4VoxelSafety. Check its results only if
1204   G4DEBUG_NAVIGATION is set.
1205   NOTE: continues to use *new* safety (best safety).
1206 
1207 Nov  1st, 2012 - G.Cosmo        (geomnav-V09-05-33)
1208 ------------------------
1209 - G4ReplicaNavigation: fixed compilation warning and some code cleanup...
1210 
1211 Nov  1st, 2012 - J.Apostolakis  (geomnav-V09-05-32)
1212 ------------------------------
1213 - G4Navigator: changed to use *new* safety (best safety), as a trial.
1214   Added information for problem of 'not calculated' normal in
1215   GetGlobalExitNormal().
1216   Revised operator << to print all state (adapted from PrintState()),
1217   not just history. Hidden unused code in GetLocalExitNormalAndCheck().
1218 
1219 Oct 31st, 2012 - J.Apostolakis  (geomnav-V09-05-31)
1220 ------------------------------
1221 - G4VoxelSafety: improved reporting of potential issues, e.g. (nodeNo==0).
1222 - G4VoxelNavigation: added a simple check whether point in ComputeSafety()
1223   call is inside current volume.
1224 
1225 Oct 30th, 2012 - J.Apostolakis  (geomnav-V09-05-30)
1226 ------------------------------
1227 - G4VoxelSafety: use distance to reduce search length.
1228 
1229 Oct 30th, 2012 - J.Apostolakis  (geomnav-V09-05-29)
1230 ------------------------------
1231 - G4VoxelSafety: find distance to voxel boundary at current level.
1232   Decide next node using distance.
1233 
1234 Oct 30th, 2012 - J.Apostolakis  (geomnav-V09-05-28)
1235 ------------------------------
1236 - G4VoxelSafety: fixed logic to find next voxel up and down.
1237 
1238 Oct 29th, 2012 - J.Apostolakis  (geomnav-V09-05-27)
1239 ------------------------------
1240 - G4ReplicaNavigation: get additional information in case of 'Out-of-Volume'
1241   exception. Hide debug printout with (fVerbose>2).
1242 - G4SafetyHelper: introduced check of length for relocation method
1243   LocateGlobalPointWithinVolume() to check move against safety.
1244   Works if Verbose Level > 0.
1245 - G4VoxelSafety: eliminated debug printouts (hidden in 'if fVerbose > 2').
1246   Reset 'fCheckMode' in constructor.
1247 
1248 Oct 29th, 2012 - J.Apostolakis  (geomnav-V09-05-26)
1249 ------------------------------
1250 - G4ReplicaNavigation: fix for compilation issues (shadowing/unused variables).
1251 
1252 Oct 26th, 2012 - J.Apostolakis  (geomnav-V09-05-25)
1253 ------------------------------
1254 - Fix for G4ReplicaNavigation: set 'calculatedExitNormal' flag correctly.
1255 
1256 Oct 26th, 2012 - J.Apostolakis  (geomnav-V09-05-24)
1257 ------------------------------
1258 - Revised G4Navigator to use G4VoxelSafety and to check its results
1259   against those of G4NormalNavigation::ComputeSafety().
1260   NOTE: *SLOW* - Calculates safety 3 times for voxel volumes
1261         for checking only, not for production!
1262 - G4VoxelSafety: improved to use equivalent nodes (still checks all voxels).
1263   Changed arguments and members to make G4SmartVoxelHeader into const.
1264 - G4ReplicaNavigation: small cleanup, mostly cosmetic.
1265 
1266 Oct 23rd, 2012 - J.Apostolakis  (geomnav-V09-05-23)
1267 ------------------------------
1268 - G4ReplicaNavigation: fixed compiler warning on use of 'perMillion'.
1269 
1270 Oct 23rd, 2012 - J.Apostolakis  (geomnav-V09-05-22)
1271 ------------------------------
1272 - Incorporated fixes made for tag "geomnav-V09-05-18" (in Fix-line).
1273 - G4Navigator::GetGlobalExitNormal(): corrected use of cached global normal
1274   value; use it only when ComputeStep() was last called.
1275 - G4Navigator, G4MultiNavigator and G4ErrorPropagationNavigator: changed
1276   default of 3rd argument of ComputeSafety to true.
1277 - G4Navigator: changed GetSavedState() and RestoreSavedState() methods to
1278   protected (from public). Extended the state saved by these methods.
1279 - G4ErrorPropagationNavigator: cosmetic change to improve readability of
1280   initialisation of a double.
1281 
1282 Oct 15th, 2012 - J.Apostolakis  (geomnav-V09-05-21)
1283 ------------------------------
1284 - G4PropagatorInField & G4VIntersectionLocator: changed first two arguments
1285   of IntersectChord() to const 3-vec references.
1286 - G4VIntersectionLocator: fixed return value of validNormal of
1287   GetSurfaceNormal(). Made const the first argument of GetLastSurface() normal.
1288 - G4ErrorPropagationNavigator: revised interface of ComputeSafety(), making
1289   'true' default value of the 3rd argument.
1290   Cosmetic change to improve readability of initialisation of a double.
1291 - G4ReplicaNavigation: small revision to printout, to improve end-of-line.
1292 
1293 Oct 15th, 2012 - J.Apostolakis  (geomnav-V09-05-20)
1294 ------------------------------
1295 - G4Navigator: enabled code that finds the entering normal for the case of
1296   replicas! When entering a volume, the same code can find the entering normal
1297   in the case of replicas, as in the case of other types of volumes (normal,
1298   parameterised). Improved error message, changing it into an Exception. (#5)
1299 - G4ReplicaNavigation: transform exitNormal to Grand-mother reference frame
1300   (was current=mother). Fix starting depth for 'while': had made it top-2,
1301   not top-1=2nd level.
1302 
1303 Oct 15th, 2012 - J.Apostolakis  (geomnav-V09-05-15) - Fix-line
1304 ------------------------------
1305 - G4Navigator: hidden exception with #ifdef for unsupported Exit Normal
1306   in Replicas.
1307 
1308 Oct 13th, 2012 - J.Apostolakis  (geomnav-V09-05-14) - Develop-line
1309 ------------------------------
1310 - G4ReplicaNavigation: extended it to calculate ExitNormal. First version.
1311   Now calculates it at each 'depth', and also for daughter; used to calculate
1312   it only for exiting mother, i.e. current.
1313 - G4Navigator: GetExitNormal(): set 'fCalculatedExitNormal' in case of 'Valid'
1314   (convex) normal. Re-activate printing for missing exit Normal in case of
1315   Replica (define G4DEBUG_NAVIGATION 1).
1316 
1317 Oct 11th, 2012 - J.Apostolakis  (geomnav-V09-05-13) - Fix-line
1318 ------------------------------
1319 - Ignoring previous tag.
1320 
1321 Oct 11th, 2012 - J.Apostolakis  (geomnav-V09-05-12) - Develop-line
1322 ------------------------------
1323 - G4Navigator::GetLocalExitNormal(): hidden exception warning for missing
1324   Exit Normal (it remains 'protected' under  #ifdef G4DEBUG_NAVIGATION).
1325 - G4SafetyHelper::ReLocateWithinVolume(): Added check of relocation.
1326 
1327 Oct 11th, 2012 - J.Apostolakis  (geomnav-V09-05-11)
1328 ------------------------------
1329 - G4Navigator::ComputeStep(): fixed condition for transformation of
1330   local-normal: had flipped conditions, not corrected it.
1331 
1332 Oct  2nd, 2012 - J.Apostolakis  (geomnav-V09-05-10)
1333 ------------------------------
1334 - G4Navigator::GetGlobalExitNormal(): added checks for non-unit surface
1335   normals in cases of exiting (existing global) or entering (new local) normal.
1336 
1337 Sep 21st, 2012 - J.Apostolakis  (geomnav-V09-05-09)
1338 ------------------------------
1339 - Improved GetLocalExitNormal(). In case GrandMother is correct, it will now
1340   supply it.
1341 
1342 Sep 20th, 2012 - J.Apostolakis  (geomnav-V09-05-08)
1343 ------------------------------
1344 - G4Navigator: suppressed extra transformations for updating
1345   'fGrandMotherExitNormal' in ComputeStep(). This is the only existing way
1346   to keep an update 'local' Exit Normal (potential alternative way is not
1347   implemented). It also serves as an alternative way (not needed) for the
1348   'global' Exit Normal.
1349   CHANGE of BEHAVIOR: This changes the results of GetLocalExitNormal(G4bool*)
1350   and GetLocalExitNormalAndCheck(const G4ThreeVector&, G4bool*); it now always
1351   returns 'valid'=false when Exiting. A simple ERROR (not G4Exception) is
1352   generated if this case used.
1353   Detailed description of change: previously it was unclear whether the
1354   (Grand Mother) normal was correct (due to potential extra changes of
1355   coordinates). In the case that the GrandMother was correct (unknown before),
1356   it is no longer available (when exiting).
1357   The suppressed updating of 'fGrandMotherExitNormal' in ComputeStep()
1358   is not needed for the Exit Normal in Global Coordinates, as that is now
1359   calculated using the Grand-Mother to Global transform in the case of exiting
1360   volume.
1361   NOTE: any client that need a normal should convert to using
1362         GetGlobalExitNormal() in place of GetLocalExitNormal().
1363 - Commented out extra debug printing in ComputeStep().
1364 
1365 Sep 19th, 2012 - J.Apostolakis  (geomnav-V09-05-07)
1366 ------------------------------
1367 - G4Navigator: commented out debug printing in ComputeStep() and
1368   GetGlobalExitNormal().
1369 
1370 Sep 19th, 2012 - J.Apostolakis  (geomnav-V09-05-06)
1371 ------------------------------
1372 - G4Navigator: reverted condition in GetGlobalExitNormal().
1373   NOTE: This version contains debug printing (next tag will remove them.)
1374 - Extended testG4Navigator1 unit test to check GetGlobalExitNormal()
1375   (few rotation for now).
1376 
1377 Aug 15th, 2012 - J.Apostolakis
1378 ------------------------------
1379 - G4Navigator: corrected condition in GetGlobalExitNormal -- the value is
1380   precalculated when Locate was just called, not when ComputeStep was last
1381   called.
1382 
1383 July 11th, 2012 - J.Apostolakis (geomnav-V09-05-05)
1384 -------------------------------
1385 - Added data member for improved Exit Normal for optical photons (and
1386   potentially more uses, e.g. field )
1387 
1388 June 12th, 2012 - G.Cosmo (geomnav-V09-05-04)
1389 -------------------------
1390 - Explicitly use inclusion of headers for system of units and physical
1391   constants, in plan to remove implicit inclusion from globals.hh.
1392 
1393 May 14th, 2012 - G.Cosmo (geomnav-V09-05-03)
1394 ------------------------
1395 - Fixed spurious cases of hidden variable visibility, detected with
1396   '-Wshadow' compilation option on gcc compiler.
1397 
1398 March 9th, 2012 - J.Apostolakis (geomnav-V09-05-02)
1399 -------------------------------
1400 - G4MultiNavigator: fix for dealing with cases of clashing normals and
1401   return Invalid normal. Replaced FatalException with Warning, issued
1402   only if fVerbose > 2.
1403 
1404 January 31st, 2012 - J.Apostolakis (geomnav-V09-05-01)
1405 ----------------------------------
1406 - Corrected redundant condition in G4PropagatorInField.
1407   Revised threshold for decreaseFactor=0.5 from 100 to 30 times
1408   the zero-step threshold.
1409 
1410 December 8th, 2011 - G.Cosmo (geomnav-V09-05-00)
1411 ----------------------------
1412 - Fixed left over debug flags for field check in locator classes.
1413   Some code cleanup.
1414 
1415 November 24th, 2011 - J.Apostolakis (geomnav-V09-04-12)
1416 -----------------------------------
1417 - G4VIntersectionLocator: Use only 'last' Normal.
1418   Disable fallback of using helper Navigator, as it appears
1419   to cause problems in the presence of additional geometries.
1420 
1421 November 23rd, 2011 - J.Apostolakis (geomnav-V09-04-11)
1422 -----------------------------------
1423 - G4MultiNavigator: adapt to revisions of intersection logic,
1424   to provide Exit Surface Normal for step ending on boundary.
1425   First implementation of methods GetGlobalExitNormal(), GetLocalExitNormal()
1426   and GetLocalExitNormalAndCheck.
1427   The Local methods are not adapted for this case - they complain:
1428     - warn if one navigator limited the step;
1429     - fail report error if multiple navigators limited the step.
1430   Added data members to record number of Navigators which limited
1431   the step in the last call to ComputeStep ( fNoLimitingStep ),
1432   and the id in case of just one having limited it (fIdNavLimiting).
1433 
1434 November 18th, 2011 - J.Apostolakis (geomnav-V09-04-10)
1435 -----------------------------------
1436 - G4Navigator: fixed valid flag to mean correctly
1437   'convexity' and 'have-calculated' in its two use cases.
1438   - G4Navigator::ComputeStep():
1439     * Undid / corrected change to 'fValidExitNormal' (meaning= exited
1440       solid is convex ) when it is recalculated for the case of exiting.
1441   - Minor fix to G4Navigator::GetLocalExitNormal():
1442     * Always set Valid=calculated for Local Normal.
1443 
1444 November 18th, 2011 - J.Apostolakis (geomnav-V09-04-09)
1445 -----------------------------------
1446 - G4SimpleLocator, G4BrentLocator & G4MultiLevelLocator:
1447     Revised all Locator classes to use GetLastSurfaceNormal()
1448     which first calls the robust GetLastSurfaceNormal()
1449     instead of calling GetLocalSurfaceNormal().
1450     *Corrects* ATLAS stuck track issues for hard test cases.
1451 
1452 November 11th, 2011 - G.Cosmo (geomnav-V09-04-08)
1453 -----------------------------
1454 - Trivial fixes for Coverity defects in G4GeomTestPoint and G4GeomTestVolPoint.
1455 - Some code cleanup...
1456 
1457 October 28th, 2011 - J.Apostolakis (geomnav-V09-04-07)
1458 ----------------------------------
1459 - Fix in G4Navigator::GetLocalExitNormal() to use end-point of last
1460   step (not start point) when calculating normal at end of step.
1461 - New method GetLocalExitNormalAndCheck(3-vec, *valid) for checking,
1462   now used by GetGlobalExitNormal().
1463 - Added new state 'fLastStepEndPointLocal' to the state of G4Navigator.
1464 
1465 October 26th, 2011 - J.Apostolakis (geomnav-V09-04-06)
1466 ----------------------------------
1467 - Fix to G4Navigator::GetLocalExitNormal(): rewrote the case when ComputeStep()
1468   has been called but not Locate.
1469   If 'entering', must first transform 'fLastLocatedPointLocal' to the new
1470   daughter coordinates before using them.
1471   If 'exiting' use the stored values (as after Locate()).
1472 - Created new method GetMotherToDaughterTransform() in G4Navigator:
1473   'fLastLocatedPointLocal' remains in the coordinates of current step's
1474   volume, i.e. what is called mother (always) , until after the re-location
1475   (i.e. call to LocateGlobalPointAndSetup())
1476 
1477 October 25th, 2011 - J.Apostolakis (geomnav-V09-04-05)
1478 ----------------------------------
1479 - G4Navigator: ComputeSafety() no longer sets flag meant for ComputeStep().
1480 
1481 October 24th, 2011 - J.Apostolakis (geomnav-V09-04-04)
1482 ----------------------------------
1483 - Improvement in G4VIntersectionLocator (for use in GetLocalSurfaceNormal()):
1484   make a data member of type G4TouchableHistoryHandle to replace interim use
1485   of 'static' for local variable in GetLocalSurfaceNormal().
1486 - G4MultiLevelNavigator: put in missing change of threshold.
1487 
1488 October 21th, 2011 - J.Apostolakis (geomnav-V09-04-03)
1489 ----------------------------------
1490 - Several fixes and improvements in G4VIntersectionLocator:
1491   o Fix to GetSurfaceNormal(): fixed check in case of 'last computed' normal.
1492   o Fix to GetGlobalSurfaceNormal(): use correct navigator (helper) to transform
1493     normal from local to global
1494   o Optimisation to GetLocalSurfaceNormal(): reuse G4TouchableHistoryHandle
1495     (via static ad interim), do not allocate for every call.
1496     Note: *limitation* of using helper - cannot cope with coincident surfaces in
1497           this version (need to use direction of trial *chord* when locating).
1498   o GetLocalExitNormal(): call Surface Normal only if on Surface or near inside,
1499     else return 'false' for validity.
1500   o All 'Normal' methods: check Normal vector to make sure its magnitude is
1501     within 0.001 of 1.
1502 
1503 October 18th, 2011 - J.Apostolakis
1504 ----------------------------------
1505 - Locators (Simple, Brent, Multi-Level):
1506   Refined the threshold for accepting a candidate intersection
1507   The new criterion is much smaller (to capture more cases) :
1508         sagitta < tolerance    ~=   1e-9 mm
1509   whereas it used to be
1510         sagitta < geom_mean( tolerance, delta_intersection )
1511         ie.  sagitta < 1e-6 mm.
1512 - Corrected compilation warning from gcc 4.6 (unused variables).
1513 - Corrected problem in G4Navigator::GetLocalExitNormal (not set variable).
1514 
1515 October 11th, 2011 - J.Apostolakis (geomnav-V09-04-02)
1516 ----------------------------------
1517 - Created *fix* for ATLAS problem of tracks stuck on boundary of volumes:
1518   Improved the condition for accepting a candidate intersection with
1519   a boundary in the Locator classes.
1520   >> It now *checks* that the track will enter the new volume. <<
1521   All three Locator classes were revised to use the new convergence
1522   condition ( ie G4SimpleLocator, G4BrentLocator and G4MultiLevelLocator).
1523   Note: the check uses the dot product between the exiting normal and
1524         the estimated momentum of the track at the approximate curve
1525         point near the entry/intersection point.
1526 - Revised G4VIntersectionLocator:
1527   * New method GetSurfaceNormal, to get last normal or, if not
1528     available obtain new estimate from GetGlocalSurfaceNormal;
1529   * Corrected AdjustmentOfFoundIntersection() to use GlobalExitNormal
1530     instead of Local(ExitNormal);
1531   * Renamed arguments of IntersectChord (to no longer use fP prefix).
1532 - Revised G4Navigator::GetLocalExitNormal():
1533   * improved GetLocalExitNormal() method, to allow it to be called
1534     before Locate is called at the endpoint of the last ComputeStep;
1535   * adding state to identify whether ComputeStep was called last
1536     (rather than a Locate method);
1537   * adding a method to provide the Exit Normal in Global coordinates.
1538 
1539 August 11th, 2011 - G.Cosmo (geomnav-V09-04-01)
1540 ---------------------------
1541 - Migrated to new G4Exception scheme for warnings and errors.
1542 - Defined scheme for warnings/errors coding:
1543   + 1xxx for warnings, 0xxx for errors.
1544   Code numbering:
1545   + 0001: not supported or implemented features;
1546   + 0002: invalid setup/construct;
1547   + 0003: invalid run condition;
1548   + 1001: incorrect setup; automatically adapted.
1549   + 1002: notification.
1550 
1551 May 12th, 2011 - G.Cosmo (geomnav-V09-04-00)
1552 ------------------------
1553 - Fixed compilation warnings from gcc-4.6.0 for variables set but not used.
1554 
1555 May 4th, 2011 - J.Apostolakis
1556 -----------------------------
1557 - Adjusted constructor in G4PropagatorInField to reorder class' data members,
1558   to separate a) invariants, b) state information and c)Dependent objects.
1559 
1560 December 15th, 2010 - G.Cosmo (geomnav-V09-03-10)
1561 -----------------------------
1562 - Added inline method for creation of a touchable-history given a navigation
1563   history as argument. Required for clients like G4ScoreSplittingProcess, to
1564   avoid external symbols exporting on generation of DLLs.
1565 
1566 November 19th, 2010 - G.Cosmo (geomnav-V09-03-09)
1567 -----------------------------
1568 - Removed unused variable in G4RegularNavigation.
1569 
1570 November 15th, 2010 - G.Cosmo (geomnav-V09-03-08)
1571 -----------------------------
1572 - Restored trials for zero steps to 10 in G4Navigator, as originally.
1573 
1574 November 12th, 2010 - G.Cosmo (geomnav-V09-03-07)
1575 -----------------------------
1576 - Cleared compilation warnings for unused parameters; temporarily commented out.
1577 
1578 November 11th, 2010 - G.Cosmo (geomnav-V09-03-06)
1579 -----------------------------
1580 - Set trials for zero steps to 5 before activating push in G4Navigator;
1581   increased unit value to 100 times kCarTolerance to make push more effective.
1582 
1583 November 10th, 2010 - G.Cosmo (geomnav-V09-03-05)
1584 -----------------------------
1585 - Reduced trials for zero steps from 10 to 3 for activating tolerance push
1586   in G4Navigator.
1587 - Added possibility to switch off push notifications in G4Navigator; also
1588   added related UI command.
1589 
1590 November 9th, 2010 - P.Arce
1591 ---------------------------
1592 - Added new class G4PartialPhantomParameterisation allowing for envelopes
1593   of different types other than box for regular geometries, so that relaxing
1594   the restriction for voxels to completely fill the envelope container.
1595   Adapted G4PhantomParameterisation, G4RegularNavigation and G4Navigator
1596   accordingly.
1597 
1598 November 4th, 2010 - G.Cosmo
1599 ----------------------------
1600 - Added new class G4NavigationLogger for "check-mode" verbosity. Reorganised
1601   verbosity formatting for voxel and normal navigation.
1602 
1603 November 3rd, 2010 - J.Apostolakis
1604 ----------------------------------
1605 - Added prototype class G4VoxelSafety for computation of exact safety.
1606 
1607 September 6th, 2010 - G.Cosmo (geomnav-V09-03-04)
1608 -----------------------------
1609 - Added missing initialization for 'fNewSafety' and 'fTrueMinStep' in
1610   G4MultiNavigator constructor.
1611 
1612 September 3rd, 2010 - G.Cosmo (geomnav-V09-03-03)
1613 -----------------------------
1614 - Fixed typo in signature of ComputeStepSkippingEqualMaterials() in
1615   G4RegularNavigation.
1616 
1617 August 19th, 2010 - T.Nikitina (geomnav-V09-03-02)
1618 ------------------------------
1619 - Fix in G4GeomTestSegment::FindSomePoints(), to address problem report #980.
1620 
1621 July 12th, 2010 - G.Cosmo (geomnav-V09-03-01)
1622 -------------------------
1623 - Fixed array out of bound error in G4MultipleNavigator and G4PathFinder
1624   constructors (J.Apostolakis).
1625 - Fixed cout precision restoring in G4BrentLocator, G4PropagatorInField,
1626   G4SimpleLocator, G4VIntersectionLocator and G4MultiLevelLocator.
1627 - Removed unused private data members in G4MultiLevelLocator.
1628 - Replaced use of DBL_MAX for distances with kInfinity in G4MultiNavigator
1629   and G4Navigator internals.
1630 - Exchanged conditions for initialization of members in G4TransportationManager
1631   constructor.
1632 - Added dummy initialisation of members in constructors in G4MultiNavigator,
1633   G4ParameterisedNavigation, G4PathFinder, G4PhantomParameterisation,
1634   G4RegularNavigation.
1635 
1636 March 8th, 2010 - G.Cosmo (geomnav-V09-03-00)
1637 -------------------------
1638 - Avoid unnecessary creation of string for debug purposes in G4PropagatorInField.
1639   Courtesy of P.Elmer (CMS).
1640 - Some printout formatting...
1641 
1642 December 11th, 2009 - J.Apostolakis (geomnav-V09-02-11)
1643 -----------------------------------
1644 - Implemented field by region in G4PropagatorInField, with extra checking of
1645   logical volume.
1646 
1647 November 30th, 2009 - J.Apostolakis (geomnav-V09-02-10)
1648 -----------------------------------
1649 - Fixes in G4VIntersectionLocator:
1650    * Fixed problem in ReEstimateEndPoint() behaviour for very small steps.
1651    * Corrected constructor to ensure that it initialises all data members.
1652    * Labelled the methods (in header) to make noticable those that must change
1653      at every step (attributes: 'ChordFinder', 'EpsilonStep', 'Navigator').
1654 
1655 Nov 23rd, 2009 - J.Apostolakis
1656 ------------------------------
1657 - Fixes in G4PropagatorInField.cc:
1658    * Revised condition for flagging ZeroStep to avoid fake triggering. Small
1659      proposed steps (from Physics) could trigger the previous simple condition
1660      for Tiny/Zero Problem steps.
1661 
1662 November 12th, 2009 - J.Apostolakis (geomnav-V09-02-09)
1663 -----------------------------------
1664 - Cleanup of minor methods in G4PropagatorInField:
1665    * Added new method RefreshIntersectionLocator() to update the state of locator.
1666      It is used to synchronise with G4IntersectionLocator.
1667    * Deleted long obsolete methods: SetAccuraciesWithDeltaOneStep(),
1668      SetDeltaIntersection() and SetDeltaOneStep().
1669    * Revised implementation to avoid using the older methods GetDeltaIntersection()
1670      and GetDeltaOneStep().
1671 
1672 November 12th, 2009 - J.Apostolakis (geomnav-V09-02-08)
1673 -----------------------------------
1674 - Refined G4PropagatorInField.cc:
1675    * Changed parameters for treating consecutive tiny/zero steps:
1676      - the value of default decrease factor to 0.25 (from 0.1),
1677      - the value is not used when the step size falls below a certain thresholds
1678        This threshold is changed. It is expressed as a multiple of fZeroStepThreshold
1679        instead of kCarTolerance. This, since the thresholds were meant to refer to
1680        the  ZeroStepThreshold (it was kCarTolerance), and the values were now much
1681        larger than 'ZeroStepThreshold'.
1682      - The value given to the decrease factor after the first such thresholds is
1683        changed to 0.35 instead of 0.25, 0.5.
1684    * Improved printing of Diagnostic message.
1685 
1686 November 3rd, 2009 - J.Apostolakis (geomnav-V09-02-07)
1687 ----------------------------------
1688 - Refined G4PropagatorInField.cc:
1689    * Added new member fZeroStepThreshold, to enable tuning of threshold for
1690      Tiny/Zero steps.
1691    * Changed default value from 0.5 * kCarTolerance
1692      to max (100,000 * kCarTolerance, 0.1 * micron )
1693    * This is first revision to address problem seen at boundary of volumes
1694      (Reports of ATLAS).
1695 
1696 June 2nd, 2009 - J.Apostolakis (geomnav-V09-02-06)
1697 ------------------------------
1698 - Fix in G4PropagatorInField::SetNavigator
1699    * Forward new Navigator to IntersectionLocator.
1700 
1701 May 20th, 2009 - P.Arce (geomnav-V09-02-05)
1702 -----------------------
1703 - Added method BuildContainerSolid() taking a solid as argument to
1704   G4PhantomParameterisation. Added protection to GetMaterialIndex()
1705   for zero index.
1706 
1707 May 18th, 2009 - T.Nikitina (geomnav-V09-02-04)
1708 ---------------------------
1709 - Enhanced algorithm for 'FB_intersects' in order to speedup BrentLocator.
1710 - Fix in the usage of the geometrical tolerance in G4VIntersectionLocator
1711   in method AdjustementOfFoundIntersection().
1712 
1713 May 13th, 2009 - J.Apostolakis (geomnav-V09-02-03)
1714 ------------------------------
1715 - Fix in G4PathFinder: A geometry is at a boundary if its step is within
1716    tolerance of the minimum step for any geometry.
1717 
1718 May 5th, 2009 - T.Nikitina (geomnav-V09-02-02)
1719 --------------------------
1720 - Fix in G4Navigator::ComputeStep() for the computation of rotation of the
1721   'LocalExitNormal' in cases when DistanceToOut() returns non-valid normal
1722   for optical photons in rotated solids. Addresses problem report #1059.
1723 
1724 February 26th, 2009 - T.Nikitina (geomnav-V09-02-01)
1725 --------------------------------
1726 - Fixed problem in G4BrentLocator::EstimateIntersectionPoint() responsible
1727   for rare cases of negative steps.
1728 
1729 January 27th, 2009 - G.Cosmo (geomnav-V09-02-00)
1730 ----------------------------
1731 - Added G4RegularNavigationHelper class, used by G4RegularNavigation for
1732   counting the number of step lengths in each voxel of the regular structure
1733   (by P.Arce).
1734 - Some code cleanup...
1735 
1736 December 11th, 2008 - T.Nikitina (geomnav-V09-01-10)
1737 --------------------------------
1738 - Reinstated G4MultiLevelLocator as the default locator to allow for proper
1739   tuning of parameters in propagation in field and avoid CPU penalty currently
1740   induced by default parameters.
1741 - Corrected text in exceptions in locators classes.
1742 
1743 November 14th, 2008 - T.Nikitina, J.Apostolakis (geomnav-V09-01-09)
1744 -----------------------------------------------
1745 - Introduced first implementation of new optional method in locator classes
1746   AdjustementOfFoundIntersection() using surface-normal of the intersecting
1747   solid to boost accuracy. Added the optional call to the new method in each
1748   concrete locator.
1749 - Removed unnecessary accessors for Brent locator in G4PropagatorInField.
1750 - G4VoxelNavigation: implemented additional check when running in "check"
1751   mode; if it is on the surface, ensure that it can move on next step;
1752   either DistanceToIn(p,v) or DistanceToOut(p,v) should return a finite
1753   value greater than the tolerance.
1754 
1755 November 10th, 2008 - G.Cosmo (geomnav-V09-01-08)
1756 -----------------------------
1757 - G4PathFinder: cleared unecessary calls to ComputeSafety() in ReLocate().
1758 
1759 October 28th, 2008 - T.Nikitina (geomnav-V09-01-07)
1760 -------------------------------
1761 - Moved method LocateIntersectionPoint() in G4PropagatorInField to a separate
1762   class G4VIntersectionLocator, now allowing to use different location
1763   algorithms: Brent, MultiLevel, Simple.
1764 - New classes: G4VIntersectionLocator, G4SimpleLocator, G4BrentLocator and
1765   G4MultiLevelLocator.
1766 - Coworks with tag "field-V09-01-03".
1767 
1768 October 10th, 2008 - G.Cosmo (geomnav-V09-01-06)
1769 ----------------------------
1770 - Introduced optional Boolean argument in G4Navigator::ComputeSafety() to
1771   allow for computation of safety without modifying the state restoring of
1772   the navigator.
1773 - Modified accordingly the following classes, for calls to ComputeSafety():
1774   G4SafetyHelper, G4PathFinder (now calling ComputeSafety() with TRUE
1775   argument to preserve navigator's state), G4MultiNavigator and
1776   G4ErrorPropagationNavigator.
1777 
1778 May 5th, 2008 - T.Nikitina (geomnav-V09-01-05)
1779 --------------------------
1780 - Added Brent method for LocateIntersectionPoint() in G4PropagatorInField.
1781   The Brent method is now used as default and can be switched off through
1782   call to the proper accessor function SetBrentMethod().
1783 - Requires related update to G4ChordFinder in geometry/magneticfield module
1784   included in tag "field-V09-01-02".
1785 
1786 April 29th, 2008 - M.Asai (geomnav-V09-01-04)
1787 -------------------------
1788 - G4PathFinder: commented out warning and exception in ComputeStep()
1789   for step smaller than minimum threshold.
1790 
1791 April 28th, 2008 - G.Cosmo (geomnav-V09-01-03)
1792 --------------------------
1793 - Corrected condition for wrong evaluation order introduced in the
1794   previous tag.
1795 
1796 March 13th, 2008 - G.Cosmo (geomnav-V09-01-02)
1797 --------------------------
1798 - Cleared compilation warnings in G4ReplicaNavigation on gcc-4.3.0 for
1799   ambiguous use of parentheses in condition statements.
1800 
1801 January 24th, 2008 - T.Nikitina (geomnav-V09-01-01)
1802 -------------------------------
1803 - G4PropagatorInField: changed condition for 'ReEstimationEndPoint'
1804   in order to better handle very strict parameters of propagation.
1805   Also added more verbosity in case of error for negative step.
1806   Fixes rare problem observed in production by ATLAS.
1807 
1808 January 22nd, 2008 - P.Arce (geomnav-V09-01-00)
1809 ---------------------------
1810 - G4PhantomParameterisation:
1811   o Bug fix in GetReplicaNo() to catch overflows in X and Y.
1812     (on suggestion by S.Stute)
1813   o Made CheckVoxelsFillContainer() visible in public interface.
1814 
1815 November 16th, 2007 - G.Cosmo (geomnav-V09-00-12)
1816 -----------------------------
1817 - Cleared compilation warnings for shadowing of variables in classes
1818   within the module.
1819 
1820 November 14th, 2007 - G.Cosmo (geomnav-V09-00-11)
1821 -----------------------------
1822 - Reintroduced artificial push in G4ReplicaNavigation::ComputeStep().
1823   Further investigation and eventually reimplementation of LevelLocate()
1824   required to take into account point and direction ...
1825 
1826 November 14th, 2007 - G.Cosmo (geomnav-V09-00-10)
1827 -----------------------------
1828 - Trial to remove artificial push in G4ReplicaNavigation::ComputeStep().
1829 - Some minor cleanup.
1830 
1831 November 9th, 2007 - J.Apostolakis (geomnav-V09-00-09)
1832 ----------------------------------
1833 - G4SafetyHelper: Improved ComputeSafety() not to call G4Navigator
1834   if exactly on safety 'center'.
1835 - G4PathFinder: correction to debug code under #ifdef G4DEBUG_NAVIGATION.
1836 
1837 November 9th, 2007 - G.Cosmo (geomnav-V09-00-08)
1838 ----------------------------
1839 - Fix in G4ReplicaNavigation::DistanceToOut() for exact classification of
1840   the linear step for Cartesian case.
1841 - Made IdentifyAndPlaceSolid() method inlined in G4ParameterisedNavigation.
1842 - Minor cosmetics and cleanup.
1843 
1844 November 6th, 2007 - P.Arce (geomnav-V09-00-07)
1845 ---------------------------
1846 - Optimisation in G4RegularNavigation: use voxelBox->DistanceToOut() instead
1847   of ComputeStep() in ComputeStepSkippingEqualMaterials().
1848 - Some cleanup and proper formatting of error/warning messages.
1849 
1850 November 2nd, 2007 - J.Apostolakis (geomnav-V09-00-06)
1851 ----------------------------------
1852 - Merging fixes in "geomnav-V09-00-03b" and "geomnav-V09-00-03c" on top
1853   of tag "geomnav-V09-00-05".
1854 
1855 November 2nd, 2007 - J.Apostolakis (geomnav-V09-00-03c)
1856 ----------------------------------
1857 - G4PathFinder:
1858   o Added setting of 'fNoGeometriesLimiting' in DoNextCurvedStep().
1859   o Check to verify that 'fNoGeometriesLimiting' is set by DoNext*Step methods.
1860   o Revised data type of 'fNoGeometriesLimiting' to be a int, so that < 0
1861     shows 'unset'.
1862 - G4PropagatorInField:
1863   o Fixes for compilation of code under G4DEBUG_FIELD (problem report #982).
1864   o Added extra check of method LocateIntersectionPoint() arguments.
1865 - Tag based on "geomnav-V09-00-03b".
1866 
1867 October 29th, 2007 - J.Apostolakis (geomnav-V09-00-03b)
1868 ----------------------------------
1869 - G4PathFinder: first fix for problem of another process shortening steps
1870   (between calls to ComputeStep by different processes in same step.)
1871   I.e.  First call to ComputeStep (geom 1) has proposed Step = 3.0 cm
1872         Next  call to ComputeStep (geom 2) has proposed Step = 1.0 cm
1873         (e.g. Multiple Scattering)
1874 - Tag based on "geomnav-V09-00-03a".
1875 
1876 October 24th, 2007 - J.Apostolakis (geomnav-V09-00-05)
1877 ----------------------------------
1878 - Merging fixes introduced in "geomnav-V09-00-03a" on top of
1879   "geomnav-V09-00-04".
1880 
1881 October 24th, 2007 - J.Apostolakis (geomnav-V09-00-03a)
1882 ----------------------------------
1883 - G4PathFinder: fix to now set 'fNoGeometriesLimiting' in DoNextLinearStep()
1884   when WhichLimited() is not called, i.e. in case of one navigator
1885   optimisation.
1886 - Tag based on "geomnav-V09-00-03".
1887 
1888 October 18th, 2007 - G.Cosmo (geomnav-V09-00-04)
1889 ----------------------------
1890 - Added new specific navigation for regular structures and phantoms.
1891   New classes: G4RegularNavigation, G4PhantomParameterisation (by P.Arce).
1892   Added cases to G4Navigator. Added dependency on "materials" module.
1893 
1894 October 12th, 2007 - J.Apostolakis (geomnav-V09-00-03)
1895 ----------------------------------
1896 - G4PathFinder: added new methods GetNumberGeometriesLimitingStep()
1897   and GetMinimumStep() needed by G4CoupledTransportation to see whether
1898   to relocate.
1899 
1900 September 25th, 2007 - G.Cosmo (geomnav-V09-00-02)
1901 ------------------------------
1902 - Some code cleanup in G4PathFinder. Switch off additional optimisation
1903   for safety in method DoNextLinearStep().
1904 - Set 'fRecomputeFactor' in G4SafetyHelper to 0.0, to switch off internal
1905   optimisation and allow for reproducibility of steps (A.Howard).
1906 
1907 July 12th, 2007 - J.Apostolakis (geomnav-V09-00-01)
1908 -------------------------------
1909 - Restores fixes/improvements of geomnav-V08-03-07
1910 - G4PathFinder: includes fix for result of ObtainSafety(), used in
1911   CoupledTransportation.
1912 
1913 July 12th, 2007 - J.Apostolakis (geomnav-V09-00-00)
1914 -------------------------------
1915 - G4PathFinder:
1916   o Include correction to signature of method PrepareNewTrack().
1917     (This was done on a branch for this class in order to keep only
1918      development of geomnav-V08-03-06)
1919 - G4PropagatorInField:
1920   o Included revisions and fixes for G4PropagatorInField of June 8th.
1921 - This tag is based on "geomnav-V08-03-06" and does NOT include the
1922   revisions of "geomnav-V08-03-07".
1923 
1924 July 5th, 2007 - G.Cosmo
1925 ------------------------
1926 - G4PathFinder:
1927   o Corrected signature to method PrepareNewTrack().
1928     Resolves linking problems detected on SUN-CC platform.
1929 - Changes included in tag  "geomnav-V08-03-02c", included in relase 9.0.p01.
1930 
1931 June 8th, 2007 - T.Nikitina
1932 ---------------------------
1933 - G4PropagatorInField:
1934   o Put in the constructor creation of array of FieldTracks used in
1935     LocateInterSectionPoint().
1936   o Change in ReEstimateNewPoint() in order to handle cases with zero step
1937     caused by diffCurve=0.
1938   o In case of proposed step less than tolerance, now return 'kInfinity'
1939     as per convention of geometry instead of 'DBL_MAX'.
1940     (by J.Apostolakis, May 18th 2007)
1941 - Changes included in tag "geomnav-V08-03-02b", included in release 9.0.
1942 
1943 June 5th, 2007 - J.Apostolakis (geomnav-V08-03-07)
1944 ------------------------------
1945 - G4PathFinder:
1946   o New method to return the safety sphere last calculated for
1947     a PreStep point (it could be a previous one - due to optimasation).
1948     >> If last step(s) were smaller than safety, then for a linear
1949     track (no field or no charge) Navigator's ComputeSafety is not
1950     called.  The older PreStep (previous step or some steps back
1951     in case of many small steps) is stored for this - and provided.
1952   o ComputeStep() still returns current PreStep point's safety (must).
1953   o Revisions are to make this (used by CoupledTransportation) more
1954     compatible with the old direct use of G4Navigator by G4Transportation.
1955 
1956 May 29th, 2007 - J.Apostolakis (geomnav-V08-03-06)
1957 ------------------------------
1958 - G4Navigator
1959   o Fixed **ComputeSafety**: wrong coordinates used (last tag only).
1960     For certainty reinstated LocateGlobalPointWithinVolume (for now).
1961   o Corrected calculation of fStepEndPoint (in ComputeStep)
1962     for case of step not limited by geometry
1963 - G4PathFinder
1964   o PrepareNewTrack: calls to re-initialise SafetyHelper (reset safety)
1965   o ReLocate: Corrected check of move (avoid one side effect on stored safety)
1966               --> ComputeSafety still results individual navigators' values.
1967 
1968 May 24th, 2007 - J.Apostolakis (geomnav-V08-03-05)
1969 ------------------------------
1970 - G4PathFinder: 1 correction and 2 optimisations:
1971   o PrepareNewTrack() clear safety - to avoid potential problems in overlaps.
1972   o DoNextLinearStep() only calls ComputeStep() for a navigator whose safety
1973     greater than the step.
1974   o DoNextCurvedStep(), if there's one geometry, no longer calls
1975     ComputeSafety() at start.
1976 - G4Navigator ComputeSafety:
1977   o Corrected it to address use at non-endpoint
1978   o Replaced call to LocateGlobalPointWithinVolume() with calls to
1979     sub-navigators.
1980 
1981 May 21st, 2007 - G.Cosmo
1982 ------------------------
1983 - Made 'fVerbose' protected in G4Navigator, reused in G4MultipleNavigator.
1984 - Some cleanup in G4MultipleNavigator implementation.
1985 - Make G4PathFinder singleton definition canonical.
1986 - Added method CheckPointExiting() in G4AuxiliaryNavServices utility
1987   class (by P.Arce).
1988 
1989 May 19th, 2007 - J.Apostolakis (geomnav-V08-03-04)
1990 ------------------------------
1991 - Corrections and additions in G4PathFinder:
1992     1) Added calculation of start-point safety in DoNextCurvedStep
1993     2) Corrected GetCurrentSafety() - uses mininum of 1)
1994     3) Added method to obtain safety of one navigator (after call to all).
1995     4) Deleted obsolete data member 'fMinSafety'.
1996     5) If only one geometry, do not call WhichLimited in DoNextLinearStep (optimisation)
1997     6) ComputeSafety: save the values of isotropic safety for each navigator
1998 
1999 May 18th, 2007 - A.Howard (geomnav-V08-03-03)
2000 ------------------------
2001 - Fixed return value for G4PathFinder::ComputeStep in case of
2002    step smaller than tolerance (now kInfinity): fixes one PathFinder issue (JA).
2003 - Added compiler flags for verbosity in G4PathFinder.cc
2004 - Added compiler flags for verbosity in G4MultiNavigator.cc
2005 
2006 May 18th, 2007 - G.Cosmo (geomnav-V08-03-02)
2007 ------------------------
2008 - Use kAngTolerance and kRadTolerance from G4GeometryTolerance class.
2009 - Coworks with tag "global-V08-03-03".
2010 
2011 May 16th, 2007 - G.Cosmo (geomnav-V08-03-01)
2012 ------------------------
2013 - Introduced new class G4ErrorPropagationNavigator, a specialised navigator
2014   for performing double navigation in the detector geometry and on the
2015   target surface for error propagation (by P.Arce).
2016 - Fixed bug in G4GeomTestSegment in case of TestPoint on the surface,
2017   reducing cases of reported spurious overlaps.
2018 - Coworks with tag "global-V08-03-02".
2019 
2020 May 16th, 2007 - J.Apostolakis (geomnav-V08-03-00a)
2021 ------------------------------
2022 - Moved to G4PathFinder version without extra prints
2023 
2024 April 26th, 2007 - G.Cosmo (geomnav-V08-03-00)
2025 --------------------------
2026 - Use call to G4GeometryTolerance instead of kCarTolerance where needed.
2027 - Revised data members in G4SafetyHelper to conform to convention.
2028 - Requires tag "global-V08-03-00" and related tag set.
2029 
2030 April 26th, 2007 - T.Nikitina (geomnav-V08-02-03)
2031 -----------------------------
2032 - Fixed case of out of range access in G4GeomTestSegment responsible for
2033   crashes observed when recursive-grid test for overlaps was run.
2034   Addressing problem report #784.
2035 
2036 April 20th, 2007 - G.Cosmo (geomnav-V08-02-02)
2037 --------------------------
2038 - Some cleanup and minor cosmetics ...
2039 
2040 April 12st, 2007 - V.Ivanchenko
2041 -------------------------------
2042 - G4SafetyHelper become a unique class, which can be accessed via
2043   G4TransporationManager. Depending on type of navigation (single
2044   world or multiple navigation) it uses mass navigator or G4PathFinder.
2045   All calls from EM processes to geometry are provided by G4SafetyHelper.
2046 - G4TransportationManager: added G4SafetyHelper.
2047 - G4PathFinder: initialisation of G4SafetyHelper.
2048 - Tagged "geomnav-V08-02-02-beta2".
2049 
2050 March 31st, 2007 - J. Apostolakis
2051 ---------------------------------
2052 - G4Navigator:
2053   o New method CheckNextStep() makes a trial step, without
2054     changing the state of the Navigator (to be verified).
2055     It is a variant of ComputeStep, whose signature it shares.
2056 - Tagged "geomnav-V08-02-02-beta1".
2057 
2058 February 13th, 2007 - J.Apostolakis
2059 -----------------------------------
2060 - G4Navigator:
2061   o Improvement for creating touchable history when located outside world.
2062     Retain whether last point was located outside, and if so call default
2063     TouchableHistory constructor (that initialised world to null).
2064     NOTE: testing found problems with SteppingManager::SetInitialStep()
2065           as the Vertex physical volume was not set. Protection is potentially
2066           required, or bigger issue to be resolved.
2067     Currently, changes in G4Navigator.hh,cc are safe, but the fix in .icc is
2068     temporarly suspended and NOT included.
2069 - Attempted fix created Dec 7th, 2006
2070 
2071 February 13th, 2007 - J.Apostolakis (geomnav-V08-02-01)
2072 -----------------------------------
2073 - G4PropagatorInField:
2074   o Implemented ClearPropagatorState() to clear all the track-dependent
2075     state (incl. safety, zero-steps, loop flag ...).
2076     ** Calling this is mandatory for each new track because in the case of
2077        geometry overlaps, the safety can be easily inconsistent (and/or
2078        incorrect) otherwise
2079     ** Must be called from G4Transportation (or alternatives) !!
2080 - Fix created Jan 25th, 2007
2081 
2082 January 31st, 2007 - G.Cosmo (geomnav-V08-02-00)
2083 ----------------------------
2084 - G4Navigator: forcing call to CheckOverlaps() on the current volume
2085   before event abortion for cases of stuck tracks.
2086 - Requires tag "geommng-V08-02-00".
2087 
2088 November 23rd, 2006 - J.Apostolakis (geomnav-V08-01-08)
2089 -----------------------------------
2090 - G4PathFinder:
2091   o Fix when report a problem only if move > safety (additional check).
2092   o Revised condition for extra checking against safety.
2093   o Many small and cosmetic changes in debug printing.
2094 
2095 November 18th, 2006 - J.Apostolakis (geomnav-V08-01-07)
2096 -----------------------------------
2097 - G4PathFinder:
2098   o Fix for problem when step is fully taken.
2099     Note: this occurs due to optimisation in PiF that avoids calling
2100     G4(Multi)Navigator!!
2101   o Function LimitedString( ELimited lim ) enables printing this enum
2102   o Improved printing in IntersectChord. Deleted/simplified few prints in
2103     ComputeStep().
2104 - G4MultiNavigator: cleanup, cosmetics
2105 
2106 November 13th, 2006 - G.Cosmo (geomnav-V08-01-06)
2107 -----------------------------
2108 - Fixed compilation warnings and some cleanup ...
2109 
2110 November 11th, 2006 - J.Apostolakis (geomnav-V08-01-05)
2111 -----------------------------------
2112 - G4PathFinder improvements for parallel Navigation
2113   o ComputeStep method signature extended to add volume
2114   o Use G4MultiNavigator for tracking in field.
2115 - G4MultiNavigator:
2116   o Several fixes, primarily for taking care of condition of
2117     geometry limited step.
2118 
2119 November 11th, 2006 - J.Apostolakis (geomnav-V08-01-04)
2120 -----------------------------------
2121 - G4PropagatorInField:
2122   o Refined fix in LocateIntersectionPoint(), to subdivide
2123     in case it cannot find intersection point quickly (T.Nikitina).
2124     Second version, with several levels of cutting.
2125   o NOTE: Special tags made (later) not including the Developments in
2126     G4TransportationManager, G4PathFinder, G4SafetyHelper for parallel
2127     navigation. i.e. - based on tag "geomnav-V08-01-03".
2128 
2129 November 11th, 2006 - J.Apostolakis
2130 -----------------------------------
2131 - Created G4MultiNavigator class and utilised it from G4PathFinder
2132   to implement curved trajectory parallel navigation.
2133 
2134 November 10th, 2006 - J.Apostolakis (geomnav-V08-01-03)
2135 -----------------------------------
2136 - G4PropagatorInField:
2137   o Fix in LocateIntersectionPoint(), to subdivide in case it cannot find
2138     intersection point quickly (T.Nikitina).
2139     First version, only one level of cutting
2140   o NOTE: Special tags made (later) not including the Developments in
2141     G4TransportationManager, G4PathFinder, G4SafetyHelper for parallel
2142     navigation. i.e. - based on tag "geomnav-V08-01-02".
2143 
2144 November  9th, 2006 - J.Apostolakis
2145 -----------------------------------
2146 - G4SafetyHelper:
2147   o Changed default value of 'fUseParallelGeometries' to 'false'.
2148     This is the default, except when using parallel geometries.
2149     Value 'true' will become the default.
2150 
2151 November 4th, 2006 - M.Asai
2152 ---------------------------
2153 - G4TransportationManager:
2154   o added new method SetWorldForTracking() to enable change of world from
2155     the RunManager.
2156 
2157 October 31st, 2006 - J.Apostolakis
2158 ----------------------------------
2159 - G4SafetyHelper
2160   o Added new class variable 'fUseParallelGeometries', to enable
2161     it to work call G4Navigator of Mass geometry directly, in
2162     the case of single geometry (when G4PathFinder is disabled).
2163   o Default value is currently 'true' --> for parallel navigation development.
2164 - G4PathFinder
2165   o Improved the code that checks within relocation whether position
2166     is proposed to be moved outside safety sphere from endpoint.
2167 
2168 October 26th, 2006 - G.Cosmo (geomnav-V08-01-02)
2169 ----------------------------
2170 - G4Navigator:
2171   o Added inline methods EnteredDaughterVolume() and ExitedMotherVolume() to
2172     allow for verification of a point entering a daughter volume or exiting
2173     the mother volume.
2174   o Made LocateGlobalPointAndSetup() method virtual. Moved to non virtual
2175     and inline LocateGlobalPointAndUpdateTouchableHandle() method.
2176   o Moved 'fHistory' data member to protected to aloow for more complete
2177     subclassing.
2178   o Minor cosmetics to recently introduced printout diagnostics in
2179     ComputeSafety() method.
2180 - G4TransportationManager:
2181   o Added methods to access the list of the registered worlds.
2182 - NOTE: this tag does NOT include the recent developments introduced for
2183   G4PathFinder. It resumes from tag "geomnav-V08-00-01"; anything else
2184   introduced after it, except for changes in G4Navigator, is NOT included !
2185 
2186 October 25th, 2006 - J.Apostolakis
2187 ----------------------------------
2188 - G4PathFinder: fixed initialisation of cached value for the
2189   G4TransportationManager to cope with singletons.
2190 
2191 October 16th, 2006 - J.Apostolakis    (geomnav-V08-01-01)
2192 ----------------------------------
2193 - G4Navigator: moved debug printing behind fVerbose conditions
2194 
2195 October 12th, 2006 - J.Apostolakis (geomnav-V08-01-00)
2196 ----------------------------------
2197 - New class G4SafetyHelper to aid multiple scattering inn
2198   determining the correct Mass geometry step (via PathFinder)
2199   and all-geometry safety.
2200 - Several revisions, fixes to G4PathFinder.
2201 
2202 June 8th, 2006 - J.Apostolakis (geomnav-V08-00-06)
2203 ------------------------------
2204 - G4PathFinder:
2205   o New method 'ComputeSafety' to compute safety at endpoint of last step.
2206 
2207 June 2nd, 2006 - J.Apostolakis (geomnav-V08-00-05)
2208 ------------------------------
2209 - G4PathFinder:
2210   o New method ReLocate() for non-Transportation classes to call when moving
2211     the endpoint of a particle. Uses LocateGlobalPointWithinVolume() method
2212     of the navigators.
2213   o Small fixes and protection of debug printing with Verbose flag.
2214   o Default verbose level is now 0.
2215 
2216 May 28th, 2006 - J.Apostolakis (geomnav-V08-00-04)
2217 ------------------------------
2218 - G4PathFinder:
2219   o Check whether a process shifted the position since the last step.
2220   o Corrected checking for 'Unique', i.e. one process limiting step.
2221   o Revised printing (more information, some protected by verbose flag).
2222 
2223 May 27th, 2006 - J.Apostolakis (geomnav-V08-00-03)
2224 ------------------------------
2225 - G4PathFinder revised significantly:
2226   o Workaround for problem of CreateHistory() when outside world.
2227   o Revised for new counting of Navigator IDs (M.Asai).
2228   o Added MovePoint() method that signals if it moved.
2229   o Added state to cope with cases where a full step is taken,
2230     i.e. to cope with steps that return kInfinity:
2231     New state:
2232       RelocatedPoint - to show if it is moved;
2233       TrueMinStep    - finite whereas reported can be kInfinity.
2234     and to aid in clarifying the state of the (singleton) object:
2235       LastStepNo     - already kept in one method (static), now exposed;
2236       CurrentStepNo  - mostly for debugging and printing out.
2237   o Small improvements in tests.
2238 
2239 May 23rd, 2006 - J.Apostolakis (geomnav-V08-00-02)
2240 ------------------------------
2241 - Added new prototype class G4PathFinder to coupled navigation
2242   in parallel geometries.
2243 
2244 May 22nd, 2006 - G.Cosmo (geomnav-V08-00-01)
2245 ------------------------
2246 - Extended G4TransportationManager to handle multiple navigators.
2247   Preserved interface for navigation in mass/tracking geometry.
2248 - Added activation flag to G4Navigator and related accessor methods.
2249 
2250 Feb 8th, 2006 - J.Apostolakis (geomnav-V08-00-00)
2251 -----------------------------
2252 - Addressing problem with convergence in LocateIntersectionPoint()
2253   of G4PropagatorInField (problem identified by Atlas, observed when
2254   requesting high precision, i.e. small values of eps_min/max, delta_one_step,
2255   due e.g. to need for small delta_intersection):
2256   o First solution by increasing maximum iterations (from 100 to 10,000).
2257   o Until correct information can be returned, an Exception is thrown
2258     in case of too many iterations.
2259   o Warn in case over 1000 iterations, to let user see difficulty.
2260 - This fix is an interim solution, in lieu of improving the algorithm
2261   for location (or returning correct incomplete progress).
2262 
2263 Nov 24th, 2005 - J.Apostolakis (geomnav-V07-01-02)
2264 ------------------------------
2265 - Revised G4ParameterisedNavigation, to use new interface for
2266   ComputeMaterial(). Now no longer needing 'Physical Touchable'.
2267 
2268 Sep 19th, 2005 - G.Cosmo  (geomnav-V07-01-01)
2269 ------------------------
2270 - G4DrawVoxels: removed unnecessary 'panic' message in ComputeVoxelPolyhedra()
2271   and some code cleanup.
2272 
2273 Jul 25th, 2005 - G.Cosmo  (geomnav-V07-01-00)
2274 ------------------------
2275 - Some cleanup and cosmetic changes for Software Reference Manual.
2276 
2277 Jun 14th, 2005 - J.Apostolakis  (geomnav-V07-00-00)
2278 ------------------------------
2279 - Added ability to use Nested Parameterisations to Parameterised Navigation
2280   Coworks with tag "geomvol-V07-00-01".
2281 
2282 Dec 2nd, 2004 - G.Cosmo  (geomnav-V06-02-08)
2283 -----------------------
2284 - Implemented migration to <cmath> for standard mathematical functions.
2285 
2286 Nov 24th, 2004 - G.Cosmo  (geomnav-V06-02-07)
2287 ------------------------
2288 - Fix in G4ReplicaNavigation::DistanceToOutPhi() for the case of phi
2289   sections on convex surfaces. Fixes problem report #651.
2290 
2291 Nov 19th, 2004 - J.Apostolakis  (geomnav-V06-02-06)
2292 ------------------------------
2293 - New access method in G4Navigator for SeverityOfZeroStepping().
2294 
2295 Nov 17th, 2004 - G.Cosmo  (geomnav-V06-02-05)
2296 ------------------------
2297 - Allow consecutive corrections for stuck tracks in G4Navigator::ComputeStep()
2298   up to 10 times before aborting the event.
2299 
2300 Sep 28th, 2004 - G.Cosmo  (geomnav-V06-02-04)
2301 ------------------------
2302 - Invoke G4LogicalVolume::UpdateMaterial() instead of SetMaterial() for
2303   parameterised navigation in G4Navigator and G4ParameterisedNavigation
2304   (M.Asai).
2305 - Coworks with tag "geommng-V06-02-02".
2306 
2307 Sep 13th, 2004 - G.Cosmo  (geomnav-V06-02-03)
2308 ------------------------
2309 - G4Navigator: corrected computation of fGrandMotherExitNormal in ComputeStep()
2310   in the case where a not valid exit-normal exists.
2311 
2312 Sep 11th, 2004 - G.Cosmo  (geomnav-V06-02-02)
2313 ------------------------
2314 - Dump out contents from the solid when a fatal G4Exception is thrown from
2315   the navigators in ComputeStep().
2316   Modified files G4NormalNavigation.cc, G4ParameterisedNavigation.cc,
2317                  G4ReplicaNavigation.cc, G4VoxelNavigation.cc.
2318 
2319 Aug 31st, 2004 - D.C.Williams  (geomnav-V06-02-01)
2320 -----------------------------
2321 - G4GeomTestSegment: fix to correctly determine whether starting trajectory
2322   is entering or exiting the solid when the starting point is on a surface.
2323   Added additional tests on solid consistencies (from roundoff sometimes) to
2324   avoid incorrect overlap warnings. Addresses problem reports #610 and #652.
2325 
2326 Jun 29th, 2004 - G.Cosmo  (geomnav-V06-02-00)
2327 ------------------------
2328 - Fixed zero step-length problem in G4ReplicaNavigation::ComputeStep()
2329   for cases where different replica types are coincident. Resolves
2330   problem report #633.
2331 - G4NormalNavigation: added extra verbosity to print out information
2332   for each solid which returns a 'lowest-yet' step, including the
2333   mother volume. It is activated by setting verbose level to 2 or
2334   more (J.Apostolakis).
2335 
2336 Jun 18th, 2004 - G.Cosmo  (geomnav-V06-01-03)
2337 ------------------------
2338 - Enhanced check for null step in G4Navigator::ComputeStep().
2339   Now attempting a corrective action after 10 consecutive zero steps.
2340   Event gets aborted after 25 zero steps.
2341 
2342 Jun 15th, 2004 - G.Cosmo  (geomnav-V06-01-02)
2343 ------------------------
2344 - Relax exception in G4Navigator::ComputeStep() for stuck tracks.
2345   Event gets aborted after 25 zero steps.
2346 
2347 Jun 11th, 2004 - G.Cosmo  (geomnav-V06-01-01)
2348 ------------------------
2349 - Added check to G4Navigator to count the number of steps with zero length
2350   and issue an exception for tracks that get stuck in a loop (J.Apostolakis).
2351 - Modified GNUmakefile to define G4GEOMETRY_ALLOC_EXPORT flag for DLLs
2352   build on Windows.
2353 
2354 May 17th, 2004 - G.Cosmo  (geomnav-V06-01-00)
2355 ------------------------
2356 - Added more verbosity on solids response for navigators (optimised/not
2357   optimised) if "check_mode" state is combined with verbose level-1.
2358 
2359 Mar 11th, 2004 - G.Cosmo  (geomnav-V06-00-02)
2360 ------------------------
2361 - Added "check_mode" state for navigators. The state can be activated by
2362   a new UI command (geometry/navigator/check_mode [true/false]) and will
2363   force more strict and less tolerant checks in step/safety computation to
2364   verify the correctness of solids' response in the geometry.
2365 - Reorganised verbosity levels. Added more useful information activated
2366   when in G4VERBOSE mode and verbosity level selected.
2367   Fixed output formatting when entering/exiting verbose blocks.
2368 
2369 Feb 27th, 2004 - G.Cosmo  (geomnav-V06-00-01)
2370 ------------------------
2371 - G4Navigator.cc:
2372   o Fixed old outstanding bug in ComputeStep() for the location of the
2373     the local point in the calculation of a valid exit normal. (V.Grichine)
2374 
2375 Feb  9th, 2004 - J.Apostolakis  (geomnav-V06-00-00)
2376 ------------------------------
2377 - G4PropagatorInField.cc:
2378   o ReEstimateEndpoint:  Changed to cope with a failure of AccurateAdvance,
2379                          by calling it iteratively up maximum 20 times.
2380   o SetVerboseLevel, now forwards the verbosity (minus 3) to integration driver
2381 
2382 Dec 11th, 2003 - J.Apostolakis  (geomnav-V05-02-15)
2383 ------------------------------
2384 - G4PropagatorInField.cc:
2385   o LocateIntersectionPoint: Refined re-setting of finalSection.
2386     --> Endpoint recalculation is returned only for final section.
2387     (trial fix in -14 is replaced by above code)
2388   o Fixed ReEstimateEndPoint which ignored return code of AccurateAdvance
2389     and moved to short end-point for long requests
2390     It now leaves the endpoint unchanged, when it cannot improve it.
2391   o Few format changes for PrintStatus
2392 
2393 Dec 10th, 2003 - J.Apostolakis  (geomnav-V05-02-14)
2394 ------------------------------
2395 - G4PropagatorInField.cc on top of latest (not 1.7):
2396   o Fix for the case where two previous corrections are 'operational'
2397      Problem if the current endpoint is not the final one, and it has been
2398      recalculated, and we need to go beyond the current section to the
2399      final one -- the recalcuted endpoint no longer valid!
2400 
2401 Dec 10th, 2003 - J.Apostolakis  (geomnav-V05-02-13)
2402 ------------------------------
2403 - G4PropagatorInField.cc:
2404   o Gone back to version 1.7, without the fix in LocateIntersectionPoint
2405       for the "long-standing error".
2406 
2407 Dec  5th, 2003 - G.Cosmo - (geomnav-V05-02-12)
2408 ------------------------
2409 - G4TransportationManager.cc:
2410   o removed initialisation of allocators for navigation levels, where they
2411     were introduced as workaround for solving static initialisation a long
2412     time ago. Now moved to "volumes" module, where they should belong, in
2413     G4TouchableHistory.cc.
2414 - Restored original unit-tests, using inherited navigator.
2415   --> Requires geomvol-V05-02-08
2416 
2417 Dec  4th, 2003 - J.Apostolakis  (geomnav-V05-02-11)
2418 ------------------------------
2419 - G4PropagatorInField.cc
2420   o Corrected placement of #endif for two #ifdef VERBOSE
2421 
2422 Dec  2nd, 2003 - J.Apostolakis  (geomnav-V05-02-10)
2423 ------------------------------
2424 - G4PropagatorInField[.hh.cc]:
2425    o Fixed LocateIntersectionPoint for long-standing error.
2426      A section of the chord was not considered in use case where
2427      a previous chord at first appeared to have an intersection, but did not.
2428 
2429 Nov 26th, 2003 - J.Apostolakis  (geomnav-V05-02-09)
2430 ------------------------------
2431 - G4PropagatorInField[.hh.cc]:
2432   o Added argument Method LocateIntersectionPoint G4bool& recalculatedEndPt
2433     to return 'true' if the endpoint has been recalculated.
2434     This fixes a problem that can occasionally cause the skipping of a volume
2435     boundary - in the case when a re-integration was done near a boundary,
2436     because the new endpoint was previously not passed back.
2437   o ComputeStep also changed to accept above recalculation.
2438   o New method GetVerboseLevel(),  closer to std naming than Verbose()
2439 
2440 Nov 14th, 2003 - J.Apostolakis  (geomnav-V05-02-08)
2441 ------------------------------
2442 - Retagged the files of tag "geomnav-V05-02-07", due to tagging with same
2443   name incorrectly files in another directory and, as such confusing Bonsai.
2444 
2445 Nov 13th, 2003 - J.Apostolakis  (geomnav-V05-02-07)
2446 ------------------------------
2447 - G4PropagatorInField[.hh.icc.cc]:
2448   o Pass safety sphere information to G4ChordFinder for optimisation
2449   o Including G4ChordFinder.hh only in .cc file
2450 - Requires and coworks with "field-V05-02-08" tag.
2451 
2452 
2453 Nov 10th, 2003 - G.Cosmo  (geomnav-V05-02-06)
2454 ------------------------
2455 - G4Navigator[.hh.icc.cc] - methods review:
2456   o Removed obsolete methods: IsExitNormalValid(), GetLocalExitNormal().
2457   o Renamed method LocateGlobalPointAndSetup(p,v,history) to
2458     ResetHistoryAndLocate(p,v,history).
2459   o Moved to protected the following methods: GetCurrentLocalCoordinate(),
2460     ComputeLocalPoint(), ComputeLocalAxis(), NetTranslation(),
2461     NetRotation(), EnteredDaughterVolume().
2462   o Fixed consistency of inline/not-inline implementations of methods.
2463 - Coworks with tag "tracking-V05-02-03".
2464 
2465 Nov 6th, 2003 - J.Apostolakis  (geomnav-V05-02-05)
2466 -----------------------------
2467 - G4PropagatorInField[.hh.icc.cc]:
2468   o Implements move of EpsilonMin / Max to G4FieldManager.
2469 - Requires and coworks with "field-V05-02-04" or later tag.
2470 
2471 Nov 6th, 2003 - G.Cosmo  (geomnav-V05-02-04)
2472 -----------------------
2473 - G4Navigator[.hh.icc.cc]:
2474   o Made relevant methods virtual to verify performance impact.
2475     If tests will behave reasonably, a further refinement in the
2476     design of the class will be applied, in view of a more consistent
2477     design review next year.
2478 
2479 Nov 3rd, 2003 - G.Cosmo  (geomnav-V05-02-03)
2480 -----------------------
2481 - Code cleanup and headers inclusion review
2482   (replaced by forward declarations where necessary).
2483 - Added build system to tests. Cleared compilation warnings.
2484 
2485 Oct 29th, 2003 - J.Apostolakis  (geomnav-V05-02-02)
2486 ------------------------------
2487 - G4PropagatorInField:
2488   Added option to turn On/Off the optimisation of using the safety
2489   in calling G4Navigator.
2490 - Unit tests: moved test testG4NavigatorX, X=1,2,3,4,5,6 here from
2491   "volumes" module.
2492 
2493 Oct 24th, 2003 - G.Cosmo  (geomnav-V05-02-01)
2494 ------------------------
2495 - Migrated calls to G4Exception to new scheme.
2496 - Fixed compilation warning in G4PropagationInField.
2497 
2498 Sep 29th, 2003 - G.Cosmo  (geomnav-V05-02-00)
2499 ------------------------
2500 - Created.
2501   Imported classes from "volumes", "management" and "verification" modules:
2502     G4AuxiliaryNavServices[.hh.icc]   - from geometry/volumes
2503     G4GeometryMessenger[.hh.cc]     - " "
2504     G4Navigator[.hh.icc.cc]     - " "
2505     G4NormalNavigation[.hh.icc.cc]    - " "
2506     G4ParameterisedNavigation[.hh.icc.cc] - " "
2507     G4PropagatorInField[.hh.icc.cc]   - " "
2508     G4ReplicaNavigation[.hh.icc.cc]   - " "
2509     G4TransportationManager[.hh.icc.cc]   - " "
2510     G4VoxelNavigation[.hh.icc.cc]   - " "
2511     G4DrawVoxels[.hh.cc]      - from geometry/management
2512     G4GeomTest*[.hh.cc]       - from geometry/verification
2513 - Cleared call to PV->Setup() according to changes in G4VPhysicalVolume.
2514   Affected files: G4Navigator[.icc.cc], G4ParameterisedNavigation[.icc.cc],
2515                   G4VoxelNavigation[.icc.cc], G4ReplicaNavigation[.icc.cc],
2516                   G4NormalNavigation[.icc.cc].
2517 - G4DrawVoxels: retrieve top transformation through touchable history in
2518   method DrawVoxels(). Removed old method GetAbsoluteTransformation().
2519 - G4GeomTestErrorList.cc: retrieve top transformation through touchable
2520   history in method FindGlobalCoordinateSystem().
2521 
2522 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2523 Imported History file from old geometry/verification module
2524 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2525 
2526 May 20th, 2003          G.Cosmo  (geomver-V05-01-00)
2527 - G4GeomTestVolume[.hh.cc]:
2528   o Added methods TestRecursiveLine() and TestRecursiveCylinder() for
2529     allowing recursion on line_test and cylinder_test respectively.
2530   o Introduced ability to control depth and starting level of recursion.
2531 
2532 Jul 30th, 2002          G.Cosmo  (geomver-V04-01-00)
2533 - G4GeomTestVolume.cc: fixed recursive call to G4GeomTestVolume passing also
2534   'tolerance' as argument in the recursive test algorithm.
2535 
2536 Apr 19th, 2002          G.Cosmo  (geomver-V04-00-00)
2537 - Moved inline constructors and destructors to no inline.
2538   Affected files: G4GeomTestStreamLogger[.hh.cc].
2539 
2540 Oct 24th, 2001          G.Cosmo  (geomver-V03-02-02)
2541 - Fixed compilation error and warnings on HP-aCC. Modified files:
2542   G4GeomTestVolume.cc, G4GeomTestStreamLogger.cc.
2543 
2544 Oct 24th, 2001          G.Cosmo  (geomver-V03-02-01)
2545 - Moved messenger to geometry/volumes and renamed G4GeometryMessenger.
2546 - Removed dependencies from intercoms and geometry/volumes.
2547 
2548 Oct 22nd, 2001    G.Cosmo  (geomver-V03-02-00)
2549 - Added "/geomtest/tolerance" command to set custom error tolerance.
2550   Added Set/GetTolerance() methods to G4GeomTestVolume class.
2551 - Introduced additional diagnostics in G4GeomTestStreamLogger to report
2552   in case no intersections/overlaps are detected.
2553 
2554 Oct 16th, 2001    G.Cosmo
2555 - Added messenger for geometry overlaps testing.
2556 - General source code formatting.
2557 - G4TestGeom* classes implementation by D.C.Williams (UCSC, BaBar).