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