SLIDE 1 Outline
First usolids shapes were included in release 10.0 Finishing implementation of UPolycone Adapting and including UMultiUnion shape in release 10.1 BETA New Test Suite for Shapes working with USolids and VecGeom Ongoing: UGenericTrap, UExtrudedSolid and UParaboloid Plans
USolids Library
SLIDE 2 USolids shapes included in release 4.10.0.
Box Tube Cone Orb Sphere Trd Tet Polycone GenericPolycone Polyhedra
5 0 0 1 0 0 0 5 0 0 1 0 0 0 2 0 0 4 0 0 6 0 0 8 0 0 1 0 0 0
5 0 0 1 0 0 0
5 0 0 1 0 0 0
5 0 0 1 0 0 0
5 0 0 1 0 0 0
5 0 0 1 0 0 0
5 0 0 1 0 0 0
In order to use USolids in geant4 bridges were created for each solid. A compilation flag USE_USOLIDS=ON replaces Geant4 solids by Usolids one.
USolids shapes will be included in release 4.10.1.
Trap GenericTrap MultiUnion ExtrudedSolid
SLIDE 3 Implementation of UPolycone.
Polycone or Ordinary Polycone= composite shape constructed from sections:Tubs and Cons Main methods were done by Marek Gayer. Finishing the implementation :
Visualization, GetPointOnSurface, Capacity, SurfaceArea,...
- Review implementation of methods as
DistanceToOut, SafetyFromInside,SafetyFromOutside
(Implementation of Convexity and Safety were taking in account
- nly the current section )
SLIDE 4
Performance for reviewed UPolycone.
SLIDE 5
SafetyFromInside() for UPolycone. Differences USolids-Geant4.
SLIDE 6
SafetyFromOutside() for UPolycone. Difference USolids-Geant4.
SLIDE 7
Scalability for SafetyFromOutside() for UPolycone.
SLIDE 8
Scalability for SafetyFromInside() for UPolycone.
SLIDE 9
Scalability for DistanceToOut() for UPolycone.
SLIDE 10 UMultiUnion is included in 4.10.1 BETA
New solid represented as a union of many solids using voxelization technique to optimize the speed. Can be used only with USolids shapes.
- Finishing the implementation and integration in Geant4
Visualization, GetPointOnSurface, Capacity, SurfaceArea,...
- Fixes in UMultiUnion, G4UMultiUnion and Uvoxelizer
(wrong use of fTransform mainly)
- UMultiUnion is included in G4GDML Reader/Writer
- Creation of different tests
SLIDE 11
UMultiUnion (Example of solid build using 10 Solids: Boxes, Trd, Tubs)
Intersection of Ray with Surface
SLIDE 12
- UMultiUnion. Voxelisation studies(1).
Test Case :regular structure With G4UMultiUnion or loop or Solids 'Real transportation' example with geantinos
SLIDE 13
- UMultiUnion. Voxelisation studies(2).
Time for 125 solids(sec) Time for 1000 solids(sec) Ratio G4UMultiUnion 10.9 13.25 1.22 Loop of Placements 12.43 17.58 1.41 Ratio 1.14 1.33
SLIDE 14 New Test Suite for USolids and VecGeom.
Geant4 tests
- Unit tests
- SBT(solid batch test)
- SurfaceChecker
- OpticalEscape
- SurfaceVisTest
- testDistanceAccuracy.cc
… Extensive Testing Suite Usolids tests
- SBT
- OpticalEscape
- SBTperformance (Comparison
Usolids, Root, Geant4) Root tests CheckShape:
- ShapesDistances()
- ShapesSafety()
- ShapeNormal()
Possibility to test shape
Shape Tester Geant4+USolids+Root tests New 'X-Ray Scan' Test SBTperformance Unit tests New Test Suite
Existing tests for shapes in different geometry packages:
SLIDE 15 New Test Suite for USolids and VecGeom. Status.
New Test Suite is containing main tests from Geant4/ ROOT/ USolids can be used on Run Time includes new test : 'X-Ray scan' almost complete, only unit tests are missing(ongoing) can be used with USolids and VecGeom batch mode with detailed report of results and errors (if any) visualization mode : batch mode + graphic representation of results
Example of error report : % SN: Wrong direction of Normal calculated by DistanceToOut (SN=name of test) DistanceToOut = -0.74878338060750782024 1 p=( 3.8581653989987083619 0.27877732826716883352 -1.7822375858116894509) v=(-0.43946230357072496586 0.49618175366120031988 0.74878338060750782024) ! only 5 errors of the same kind are reported by default, information about point p, direction v and wrong value
SLIDE 16
New Test Suite for USolid. 'X-Ray Scan'.
Estimated Volume = Σ Crossed_distance* Area_of _sell Error = Analytic Volume- Estimated Volume Scan can be done for different angles in Theta and Phi
Crossed_distance Rays Grid Test proposed by Andrei Ghetta Grid
SLIDE 17 New Test Suite for USolids and VecGeom. 'X-Ray Scan'.
Shape drawn using ROOT option “LEGO1” plot. In a Lego plot the cell contents are drawn as 3-d boxes. The height of each box is proportional to the cell content. Cell content is the crossed length .
SLIDE 18
New Test Suite for USolids and VecGeom. 'X-Ray Scan'.
Scan every 24 degrees in phi(from 0 to 360)
SLIDE 19
New Test Suite for USolids and VecGeom. 'X-Ray Scan'.
Scan every 24 degrees in phi(from 0 to 360)
SLIDE 20
New Test Suite for USolids and VecGeom. 'GetPointOnSurface'.
UBox UTubs Number of Points was reduced for better Visualization
SLIDE 21
New Test Suite for USolids and VecGeom. 'ShapeNormal' or 'Optical Escape'.
Number of Points and Rays was reduced for better Visualization UBox(Rays) UBox(Created points) UTubs(Rays) Improved original “Optical Escape” with random reflection on the Surface: Better distribution of points on the corners point
SLIDE 22
New Test Suite for USolids and VecGeom. Test 'Accuracy DistanceToIn'.
P P_Surface
Accuracy Distance ToIn =| DistanceToIn(P,dir) - |P-P_Surface| |
dir
SLIDE 23
New Test Suite for USolids and VecGeom. 'Accuracy DistanceToIn for UBox'.
Order of value Order of value
SLIDE 24
New Test Suite for USolids and VecGeom. 'Accuracy DistanceToIn for UTubs'.
Order of value
SLIDE 25
(point,dir) (point1,- dir) dmov e d 2 d1
New Test Suite for USolids and VecGeom. Test 'Residual DistanceToIn/DistanceToOut'.
Residual = | dmove – (d1+d2) |
SLIDE 26
New Test Suite for USolids and VecGeom. 'Residual DistanceToIn/DistanceToOut for UBox'.
Order of value
SLIDE 27
New Test Suite for Usolids and VecGeom. 'Residual DistanceToIn/DistanceToOut for UTubs'.
Order of value
SLIDE 28
New Test Suite for Usolids and VecGeom. 'SafetySphere'.
point point Test : 1)SafetyFromInside(p) has to be 'safe' = any point situated within safety distance has to be 'Inside' or 'on Surface'. DistanceToOut(p,v) >= SafetyFromInside(p) 2)SafetyFromOutside(p) has to be 'safe' = any point situated within safety distance has to be 'Outside' or 'on Surface'. DistanceToIn(p,v) >= SafetyFromInside(p) This test is passed by all solids from USolids library dist
SLIDE 29
Ongoing development: GenericTrap.
First version of Generic Trap is implemented. Optimization is done for main methods. Main Improvements due to :
Use of Bounding Box, better use of std::vectors
Ongoing work on remaining methods SurfaceNormal(), SafetyFromInside() and including of precalculation of coefficients of equations. Improvements will be back ported to G4GenericTrap
Ongoing development: GenericTrap.
SLIDE 30
First version of ExtrudedSolid based on Fast TessellatedSolid is implemented. Scalability studies show that this shape can be more optimized. Work in progress.
Plot of scalability for DistanceToOut()
Ongoing development: ExtrudedSolid.
SLIDE 31
New UParaboloid(On going, Sandro?).
First shape that does not exist in Usolids, but Developed already in VecGeom with both vector and scalar implementation by Marilena. Implementation is almost finished, normal and tolerance are in implementation.
SLIDE 32 Plans
Include remaining shapes:
UTrap,UGenericTrap,UExtrudedSolid in December release
Implementation of missing shapes :
CutTubs,Hyperboloid, Ellipsoid,EllipticalTbe, Elliptical Cone,Torus
Boolean operations : Union, Subtraction, Intersection Creation of Comparison Solid for comparison of methods
- f two shapes during run time