USolids Project : Status and Plans 17/11/2014 SFT group meeting, Tatiana Nikitina 1
Outline v Current status of developments v First USolids shapes were included in Geant4 release 10.0 v Revised shapes: UPolycone, UMultiUnion v Extended testing suite v Plans for inclusion in Geant4 release 10.1 v New shapes & USolids as independent library v USolids and VecGeom vectorised primitives v Including first VecGeom shape v Ongoing developments and plans 17/11/2014 SFT group meeting, Tatiana Nikitina 2
USolids shapes in Geant4 release 10.0(December 2013) Box, Tube, Cone, Orb, v 1 0 0 0 Sphere, Trd, Tet, Polycone, 1 0 0 0 8 0 0 5 0 0 6 0 0 0 4 0 0 GenericPolycone, Polyhedra - 5 0 0 - 1 0 0 0 2 0 0 1 0 0 0 5 0 0 1 0 0 0 5 0 0 0 0 - 5 0 0 1 0 0 0 - 5 0 0 - 1 0 0 0 - 1 0 0 0 1 0 0 0 5 0 0 5 0 0 In order to use USolids in 0 0 v Geant4, wrappers are created for each solid, based on ‘bridge’ pattern Cmake configuration: v 1 0 0 0 5 0 0 G4GEOM_USE_USOLIDS 0 - 5 0 0 replaces Geant4 original - 1 0 0 0 1 0 0 0 5 0 0 1 0 0 0 5 0 0 0 0 - 5 0 0 - 5 0 0 solids by USolids ones - 1 0 0 0 - 1 0 0 0 17/11/2014 SFT group meeting, Tatiana Nikitina 3
UPolycone Revised implementation v UPolycone (or ordinary Polycone): composite shape constructed from sections of Tubs and Cons v Added missing methods: v GetPointOnSurface, Capacity, SurfaceArea v Visualization in Geant4 wrappers v Reviewed implementation of main methods: v Corrected treatment of Convexity and Safety 17/11/2014 SFT group meeting, Tatiana Nikitina 4
Revised UPolycone: Differences in SafetyFromInside() USolids - Geant4 17/11/2014 SFT group meeting, Tatiana Nikitina 5
Revised UPolycone: Scalability for DistanceToOut(p,v) 17/11/2014 SFT group meeting, Tatiana Nikitina 6 Polycone in Geant4 has not spacial optimisations(internal voxelisation)
UMultiUnion Revised implementation ( will be included in release 10.1, December 2014) v UMultiUnion structure: represents a union of many [displaced] solids, adopting voxelisation technique for optimisation on location of components v Added missing methods: v GetPointOnSurface, Capacity, SurfaceArea v Visualization in Geant4 wrappers v Corrected treatment of transformations v Integration in GDML v Ability to import/export as GDML (3.1.1) in Geant4 17/11/2014 SFT group meeting, Tatiana Nikitina 7
UMultiUnion structure: Visualization in Geant4 Intersection of ray with surfaces 17/11/2014 SFT group meeting, Tatiana Nikitina 8
UMultiUnion structure: Voxelisation studies Test case: a regular v structure of boxes as UMultiUnion or as loop of simple placements Transportation of v ‘geantinos’ Time for 125 Time for 1000 Ratio solids(sec) solids(sec) G4UMultiUnion 10.9 13.25 1.22 Loop of Placements 12.43 17.58 1.41 Ratio 1.14 1.33 17/11/2014 SFT group meeting, Tatiana Nikitina 9
Extended testing suite Geant4 tests Root tests USolids tests - Unit tests CheckShape: -SBT - SBT(solid batch test) -ShapesDistances() -OpticalEscape - SurfaceChecker -ShapesSafety() -SBTperformance ( Comparison - OpticalEscape -ShapeNormal() Usolids, Root, Geant4 ) - SurfaceVisTest Possibility to test shape on - testDistanceAccuracy.cc Run Time … Extensive Testing Suite Shape Tester Geant4+USolids+Root tests SBTperformance Unit tests New 'X-Ray Scan' Test New Testing Suite for USolids and VecGeom 17/11/2014 SFT group meeting, Tatiana Nikitina 10
Extended testing suite Status Shape Tester Geant4+USolids+Root tests SBTperformance Unit tests New 'X-Ray Scan' Test v Unit tests for USolids and VecGeom Solids v Done for Box, Tubs, Cons, Trd, Trap, Tet, Polycone, Polyhedra, Orb,Sphere,Paraboloid v Missing tests for GenericTrap, ExtrudedSolid, TessellatedSolid (ongoing) v ShapeTester is ready v Option for visualisation of results v Debugging possibility : errors are stored with information needed for debugging v Missing test for convexity 17/11/2014 SFT group meeting, Tatiana Nikitina 11
Extended testing suite X-Ray Scan Grid Rays Crossed_distance Grid v Estimated Volume = ∑(distance × cell-area) v Error = Analytic Volume − Estimated Volume Scan can be done for different angles in Theta and Phi 17/11/2014 SFT group meeting, Tatiana Nikitina 12
Extended testing suite X-Ray Scan, examples for Box and Tubs v Lego plot option from ROOT 17/11/2014 SFT group meeting, Tatiana Nikitina 13
Extended testing suite X-Ray Scan, Estimated Volume for Tubs 17/11/2014 SFT group meeting, Tatiana Nikitina 14
Extended testing suite Optical Escape or Shape Normals point UBox(Created points) UBox(Rays) v Improved original “Optical Escape” test to use random reflection on surface v Better distribution of points UTubs(Rays) 17/11/2014 SFT group meeting, Tatiana Nikitina 15
Extended testing suite DistanceToIn() accuracy a dir b v Point ‘b’ located on surface ∣ ∣ ∣∣ v Accuracy = DistanceToIn(a,dir) − a – b v Derived from Geant4 test : SurfaceChecker 17/11/2014 SFT group meeting, Tatiana Nikitina 16
Extended testing suite DistanceToIn() accuracy test: UTubs Order of magnitude 17/11/2014 SFT group meeting, Tatiana Nikitina 17
Extended testing suite DistanceToIn accuracy test: UBox and VecGeom Box Order of magnitude Order of magnitude UBox VecGeom Box(Scalar version) 17/11/2014 SFT group meeting, Tatiana Nikitina 18
Extended testing suite DistanceToIn()/DistanceToOut() accuracy (point1,- dir) dmove d2 d1 (point,dir) v Difference = max (|dmove – d1 – d2|) v Derived from ROOT test : ShapeDistances() 17/11/2014 SFT group meeting, Tatiana Nikitina 19
Extended testing suite DistanceToIn/ToOut accuracy test: UBox and VecGeom Box Order of magnitude Order of magnitude VecGeom Box(Scalar version) UBox 17/11/2014 SFT group meeting, Tatiana Nikitina 20
Extended testing suite C onsistency tests, example test SurfacePoints v Test consistency between Inside() and GetPointOnSurface() Inside(GetPointOnSurface())== kSurface v Check consistency between of DistanceToIn() and GetPointOnSurface() UBox DistanceToOut() (can not be both zero) v Check accuracy of DistanceToIn() and DistanceToOut() epsilon GetPointOnSurface() UTubs 17/11/2014 SFT group meeting, Tatiana Nikitina 21
Extended USolids set for Geant4.10.1 v More USolids shapes: 4 x 1 0 6 4 2 Trap, 0 - 2 - 4 5 - 6 GenericTrap, - 1 0 0 4 x 1 0 - 5 0 4 - 5 x 1 0 5 MultiUnion, ExtrudedSolid v USolids module as standalone external library 17/11/2014 SFT group meeting, Tatiana Nikitina 22
First shape from VecGeom in USolids v First shape from VecGeom included in USolids library v Paraboloid: shape developed in VecGeom with both vector and scalar implementations 17/11/2014 SFT group meeting, Tatiana Nikitina 23
UParaboloid 17/11/2014 SFT group meeting, Tatiana Nikitina 24
Ongoing developments and plans v Implementation of missing shapes: v CutTubs, Hyperboloid, Ellipsoid, EllipticalTube, EllipticalCone, Torus v Many developers working on shapes with vectorized and scalar implementation v Vectorised implementation of existing shapes v Orb, Sphere, Trap, Polyhedra, Tubs, Cons v New Boolean shapes (union, subtraction, intersection) with templated signature v Integration of VecGeom shapes in USolids library v Creation of Comparison Solid for comparison of methods of two shapes during run-time 17/11/2014 SFT group meeting, Tatiana Nikitina 25
Evolution of USolids library project May-June 2014 December 2014 ~2010 2012 December 2013 Started as Fast First UShapes MultiUnion First vectorised project Tessellated included in Shape from of common Solid for Geant4.10.0 Common VecGeom library for Geant4.9.6 (easy testing) TestingSuite Solids primitives (voxelisation) With VecGeom External lib in Geant4 17/11/2014 SFT group meeting, Tatiana Nikitina 26
Conclusions v First set of USolids shapes introduced in release 10.0 v Activation optional at configuration time v Extended set will be introduced in release 10.1 v USolids as external library v VecGeom shapes will progressively replace the current primitives v Many developers are working on shapes v Already first shape with vector and scalar implementation included v A lot developments and testing ahead !!! And fun! 17/11/2014 SFT group meeting, Tatiana Nikitina 27
Thanks! A special thanks to G.Cosmo, J.Apostalakis, A.Gheata, S.Wenzel and J.de Fine Licht for help and advises!
UMultiUnion. Performance.
Recommend
More recommend