Summary of the Geometry Parallel Session and Field Working Session/Stint
- J. Apostolakis
Summary of the Geometry Parallel Session and Field Working - - PowerPoint PPT Presentation
Summary of the Geometry Parallel Session and Field Working Session/Stint J. Apostolakis VecGeom = Evolved USolids Recent Developments in USolids/VecGeom + Many-Particle API Status + Plans + Geometry Model / Navigation Sandro Wenzel /
Recent Developments in USolids/VecGeom Status + Plans
Sandro Wenzel / CERN-PH-SFT
Vec Geom SIMD/GPU support complete geometry modeler
=
VecGeom Evolved USolids = Many-Particle API Geometry Model / Navigation + +
This talk: focus on aspects relevant for Geant4 (single track functionality) vector API vector API
void DistanceToOut(„multitrack-interface“) void ComputeStep(...“multi-track“ interface...)
Main components of VecGeom
Box, Tube,... LogicalVolume PlacedVolume NavigationState
„Shapes“ Geometry Modeller Navigation
Transformations Navigator
scalar API
scalar API
double DistanceToOut(Vector3D const &p, Vector3D const &d) double ComputeStep(Vector3D, Vector3D)
AIDA1 USolids
„outside“ „inside“
~ n1 ~ n2 ~ a2 ~ a1 ~ P ϕ
exclusively done using atan2 now very fast test using only 2 dot products of 2D vectors enormously speeding up „Contains“, Safety, ... for many shapes
375 750 1125 1500 DistanceToIn SafetyToIn Contains
ROOT Geant4 USolids VecGeom ScalarAPI VecGeom ManyParticle API ROOT G4 USolids VecGeom scalar VMP
time units
improved scalar performance
algorithms (avoid atan2)
Effect of „wedge“ on TubeSegment shape (SafetyToIn and Contains)
dir G4 ROOT VecGeom y 21.5s 12.7s 5.9s z 10.7s 6.58s 4.09s
time to obtain the X-Ray image for the CMS calorimeter (VecGeom timing not yet using latest navigators)
A global performance evaluation
MBWheel_1N (~700 volumes); most complex element in CMS detector
recent R&D activity to improve navigation with a focus on algorithms that can benefit from SIMD vector units
Integration of VecGeom into Geant4
Guilherme Lima (Fermilab) for the VecGeom Group
It means that we can run “any Geant4 job” using solids and algorithms from the VecGeom library
– ...uses VecGeom shapes when available, if not uses
the USolids versions then the Geant4 ones
– no changes are needed in user/application code
– VecGeom shapes: only scalar algorithms are used –
no parallelized SIMD processing of tracks!
– VecGeom was designed to be USolids-compatible – Existing USolids interface was used, e.g.
G4Box → G4UBox → UBox → (VecGeom) SimpleBox
– e.g. points on surface from polycone's Inside()
– negative Rmin in polycone bounding tube,
negative safeties, missing tolerances, …
polycones
– 9rst batch of shapes available – choice of shapes based on a full CMS model – ready: box, trapezoid, tube, cone, polycone, polyhedra, with native
phi-wedges and Rmin where appropriate
polycone's bounding tube tolerance added to Rmax and subtracted from Rmin – if non-zero
Extensions to testing suite and effects on using coarse/precise safety calculation
Tatiana Nikitina, CERN PH/SFT
On behalf of the Geant4 Geometry WG & VecGeom team
UTubs
(Rays in SurfaceNormal Test)
VecGeomPolycone
(GetPointOnSurface Test)
UTrd
(X-ray profile)
Testing suite Unit tests Extended testing suite ShapeTester USolids and VecGeom Jenkins On Run Time or for developing shapes Offline mode Jenkins-ready
Extensive testing suite : ShapeTester
Geant4 tests
… Extensive Testing Suite Root tests CheckShape:
Possibility to test shape on Run Time
Testing Suite for USolids and VecGeom :ShapeTester Geant4+USolids+Root tests New 'X-Ray Scan' Test + Visualisation and options for debugging + All shapes are included
Tatiana Nikitina, CERN PH/SFT
On behalf of the Geant4 Geometry WG & VecGeom team
ShapeTester DistanceToIn() accuracy
a b dir
Point ‘b’ located on surface Accuracy = DistanceToIn(a,dir) − a – b ∣ ∣ ∣∣
What next ?
to call Precise and Coarse safety on each step
X-Ray Scan
Crossed_distance Rays Grid
VecGeom Cone
UCons vs VecGeom Cone GetPointOnSurface()
candidate intersection point.
presence of coincident surfaces
(Students in Google Summer of Code 2015)
Geant4 uses Runge-Kutta methods to simulate trajectory of particles
6 computed points in a circular trajectory Calling 100 times between each pair of points, to give “Dense” output Interpolated result