0% found this document useful (0 votes)
88 views

Geant4 D4-Optimisation

Each logical volume in Geant4 can be assigned visualization attributes like color, visibility, and drawing style. Geant4 provides tools for visualizing and debugging detector geometries, including a graphical geometry editor (GGE), commands to display the geometry tree, and methods for checking for overlaps and protrusions during construction. The toolkit also supports optimizing geometry navigation using techniques like smart voxels which virtually subdivide volumes to speed up tracking.

Uploaded by

xzenislevx
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
88 views

Geant4 D4-Optimisation

Each logical volume in Geant4 can be assigned visualization attributes like color, visibility, and drawing style. Geant4 provides tools for visualizing and debugging detector geometries, including a graphical geometry editor (GGE), commands to display the geometry tree, and methods for checking for overlaps and protrusions during construction. The toolkit also supports optimizing geometry navigation using techniques like smart voxels which virtually subdivide volumes to speed up tracking.

Uploaded by

xzenislevx
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Detector Description:

Visualization Attributes Optimisation & Debugging techniques

http://cern.ch/geant4

PART IV

Visualization attributes GGE & geometry tree

Each logical volume can have associated a G4VisAttributes object


Visibility, visibility of daughter volumes Color, line style, line width Force flag to wire-frame or solid-style mode

For parameterised volumes, attributes can be dynamically assigned to the logical volume Lifetime of visualization attributes must be at least as long as the objects theyre assigned to

Detector Description: Visualization, optimisation & debugging - Geant4 Course

Each G4VHit concrete class must have an implementation of Draw() method.


Colored marker Colored solid Change the color of detector element

G4Trajectory class has a Draw() method. Blue : positive Green : neutral Red : negative You can implement alternatives by yourself
4

Detector Description: Visualization, optimisation & debugging - Geant4 Course

Implemented in JAVA, GGE is a graphical geometry editor compliant to Geant4. It allows to:

Describe a detector geometry including:


materials, solids, logical volumes, placements

Graphically visualize the detector geometry using a Geant4 supported visualization system, e.g. DAWN Store persistently the detector description Generate the C++ code according to the Geant4 specifications As part of the MOMO Java environment suite
geant4/environments/MOMO/MOMO.jar
5

GGE is provided as a separate tool in Geant4

Detector Description: Visualization, optimisation & debugging - Geant4 Course

Built-in commands defined to display the hierarchical geometry tree


As simple ASCII text structure Graphical through GUI (combined with GAG) As XML exportable format As an additional graphics driver

Implemented in the visualization module

G3 DTREE capabilities provided and more

Detector Description: Visualization, optimisation & debugging - Geant4 Course

Detector Description: Visualization, optimisation & debugging Geant4 Course

PART IV

Smart voxels

For each mother volume


a one-dimensional virtual division is performed
the virtual division is along a chosen axis the axis is chosen by using an heuristic

Subdivisions (slices) containing same volumes are gathered into one Subdivisions containing many volumes are refined
applying a virtual division again using a second Cartesian axis the third axis can be used for a further refinement, in case

Smart voxels are computed at initialisation time


When the detector geometry is closed Do not require large memory or computing resources At tracking time, searching is done in a hierarchy of virtual divisions
Detector Description: Visualization, optimisation & debugging - Geant4 Course 9

Some geometry topologies may require special tuning for ideal and efficient optimisation
for example: a dense nucleus of volumes included in very large mother volume

Granularity of voxelisation can be explicitly set


Methods
Set/GetSmartless()

from

G4LogicalVolume

Critical regions for optimisation can be detected


Helper class G4SmartVoxelStat for monitoring time spent in detector geometry optimisation
Automatically activated if
Percent ------91.70 8.30 Memory -----1k 0k Heads ----1 1 Nodes ----50 3

/run/verbose
Pointers -------50 4

greater than

Total CPU --------0.00 0.00

Volume ----------Calorimeter Layer

Detector Description: Visualization, optimisation & debugging - Geant4 Course

10

The computed voxel structure can be visualized with the final detector geometry Helper class G4DrawVoxels Visualize voxels given a logical volume
G4DrawVoxels::DrawVoxels(const G4LogicalVolume*)

Allows setting of visualization attributes for voxels


G4DrawVoxels::SetVoxelsVisAttributes()

useful for debugging purposes Can also be done through a visualization command at run-time:
/vis/scene/add/logicalVolume <logical-volume-name> [<depth>] Detector Description: Visualization, optimisation & debugging - Geant4 Course 11

Detector regions may be excluded from optimisation (ex. for debug purposes)
Optional argument in constructor of through provided set methods
SetOptimisation/IsToOptimise()

G4LogicalVolume

or

Optimisation is turned on by default

Optimisation for parameterised volumes can be chosen


Along one single Cartesian axis
Specifying the axis in the constructor for
G4PVParameterised

Using 3D voxelisation along the 3 Cartesian axes


Specifying in kUndefined in the constructor for
G4PVParameterised 12

Detector Description: Visualization, optimisation & debugging - Geant4 Course

PART IV

Debugging tools

Optional checks at Construction DAVID Run-time commands OLAP

protruding

overlapping

An overlapping volume is a contained volume which actually protrudes from its mother volume
Volumes are also often positioned in a same volume with the intent of not provoking intersections between themselves. When volumes in a common mother actually intersect themselves are defined as overlapping

Geant4 does not allow for malformed geometries The problem of detecting overlaps between volumes is bounded by the complexity of the solid models description Utilities are provided for detecting wrong positioning
Graphical tools Kernel run-time commands
Detector Description: Visualization, optimisation & debugging - Geant4 Course 14

Constructors of G4PVPlacement and G4PVParameterised have an optional argument pSurfChk:


G4PVPlacement(G4RotationMatrix* pRot, , G4bool pSurfChk=false);

If this flag is true, overlap check is done at construction

A number of points (1000 by default) are randomly sampled on the surface of the volume being created Each of these points are examined if outside of the mother volume, or if inside of already existing other volumes in the same mother volume NOTE: this check may requires lots of CPU time

Depending on the complexity of geometry

Can also be forced on a specific physical volume though the method:


G4bool CheckOverlaps(G4int points=1000, G4double tol=0, G4bool verbose=true);

Worth to try when first implementing a geometry of some complexity !


Detector Description: Visualization, optimisation & debugging - Geant4 Course 15

DAVID is a graphical debugging tool for detecting potential intersections of volumes Accuracy of the graphical representation can be tuned to the exact geometrical description.
physical-volume surfaces are automatically decomposed into 3D polygons intersections of the generated polygons are parsed. If a polygon intersects with another one, the physical volumes associated to these polygons are highlighted in color (red is the default).

DAVID can be downloaded from the Web as external tool for Geant4
http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAVID.html

Detector Description: Visualization, optimisation & debugging - Geant4 Course

16

Built-in run-time commands to activate verification tests for the user geometry. Tests can be applied recursively to all depth levels (may require CPU time!): [recursion_flag] geometry/test/run [recursion_flag] or
geometry/test/grid_test [recursion_flag] to start verification of geometry for overlapping regions based on a standard grid setup geometry/test/cylinder_test [recursion_flag] shoots lines according to a cylindrical pattern geometry/test/line_test [recursion_flag] to shoot a line along a specified direction and position geometry/test/position and geometry/test/direction to specify position & direction for the line_test

Resolution/dimensions of grid/cylinders can be tuned


Detector Description: Visualization, optimisation & debugging - Geant4 Course 17

Example layout:
GeomTest: no daughter volume extending outside mother detected. GeomTest Error: Overlapping daughter volumes The volumes Tracker[0] and Overlap[0], both daughters of volume World[0], appear to overlap at the following points in global coordinates: length (cm) ----- start position (cm) ----- ----- end position 240 -240 -145.5 -145.5 0 -145.5 Which in the mother coordinate system are: length (cm) ----- start position (cm) ----- ----- end position . . . Which in the coordinate system of Tracker[0] are: length (cm) ----- start position (cm) ----- ----- end position . . . Which in the coordinate system of Overlap[0] are: length (cm) ----- start position (cm) ----- ----- end position . . .

(list truncated) (cm) -----145.5 (cm) -----

(cm) -----

(cm) -----

Detector Description: Visualization, optimisation & debugging - Geant4 Course

18

Adopt tracking of neutral particles to verify

boundary crossing in opposite directions Stand-alone batch application

Provided as extended example Can be combined with a graphical environment and GUI ex. Qt library Integrated in the CMS Iguana Framework

Detector Description: Visualization, optimisation & debugging - Geant4 Course

19

Detector Description: Visualization, optimisation & debugging - Geant4 Course

20

You might also like