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