titles_geds
Titles: GEDS
=============
Contact: N. West, Oxford.
Revision History:-
================
2.02 N. West First version.
2.04 N. West Replace Volume code by Physical Media code.
2.05 N. West Document tidy-up.
2.06 S. Brice Add new primitives + new rotation and
translation proceedure.
2.08 N. West Minor comment changes.
2.09 N. West Major redesign, now much simplified! Add _DBG.
3.01 N. West Improve comments about volumes.
Titles Files
------------
geometry.dat, pmt_geometry.dat
Verification
------------
Description
-----------
This bank describes the design, i.e. shape, size and relationship to other
regions, of a detector element region. It does not specify its position - see
title bank GEDP for this information.
Bank Number: Region type of detector element (see id_regions).
Data Words
----------
I = integer, F = floating point
Fixed length Database Header. See titles_dbhdr
KGEDS... Mnemonic relative to start of user data e.g.
icons(ldgeds + KGEDS_ENB) is the enable flag.
1 I _ENB Enabled flag, either: KGE_ENABLED or KGE_DISABLED
2 I _CPX Complexity flag. See note 3.
3 I _IDM Physical Media, See media.html.
4 F _RVL Volume. See notes 4 and 6.
5 I _PRI Priority. See note 1.
6 I _DBG Debug set of 1 bit flags. Meaning if set:-
B0 Region poisoned; kill any track as it enters.
Kill any EGS (gammas,electrons) track that traverses.
7 I Spare.
8 I Spare.
9 I Spare.
10 I Spare.
11 I _NM_PRM Number of primitives. See note 5.
_PRM_BASE Base point for table of primitives.
There now (normally) follows a list of primitives each of length
KGEDS_NW_PRM = 34.
KGEDS_PRM... Mnemonic relative to start of primitive e.g.
icons(lprm + KGEDS_PRM_TYP) is the primitive type.
lprm = LDGEDS + KGEDS_PRM_BASE + (n-1)*KGEDS_NW_PRM for nth.
i+.. i = 0, 34, 68, 102, ...
+12 I _TYP Type, e.g. KGE_SPHERE.
+13 I _OPR Operation, either KGE_ENABLE (OR) or KGE_DISABLE (NOT).
See note 2.
The remainder of the primitive data is normally accessed via the offset
KGEDS_PRM_DATA which points to the first word beyond the standard 12 word
rotation and translation. All words floating point.
j i.e. address: lprm + KGEDS_PRM_DATA + j
+14..F -12.. 3 word translation vextor (Ddefine the orientation of the
_TRN
+17..F -9.. 3 x 3 rotation matrix primitive relative to other
primitives in the element.)
+26 F 0 1st. word of primitive specific data.
Volume of primitive. See note 6. This is used when picking a
point in an element consisting of more than one primitive.
+27 F 1 2nd. word of primitive specific data. See below.
+.. F .. 3rd. ...
Notes
=====
1) Priority determines boundary ownership (the higher priority region owns
the boundary) and volume ownership where two regions overlap (the higher
priority one owns the volume).
2) The shape of a region is formed by ORing together one or more primitives
and then NOTing none or more primitives. In the list of primitives all ORs
must come first.
3) The complexity flag provides the user with control of code that supports a
detector element model at more than one level of complexity.
4) Volumes are used when randomly picking points in multiple detector
elements. When picking between elements selection is random but weighted
by volume. If the elements form an array then the volume should be for the
entire array. This is discussed further in the Geometry section of the User
Manual.
5) Most GEDS follow a standard format for the shape description which consists
of a list of fixed length entry primitives. Occasionally this format is not
suitable and in these cases KGEDS_NM_PRM (Number of primitives) is set to 0
to signal a non-standard format.
6) The GED volume _RVL and the primitive volumes should be TOTAL volumes,
making no allowance for embedding detector elements or intersecting
primitives. This would appear to lead to give the wrong weights when
picking, but GEB (boundary manager) handles this:-
1) For an embedded GED, GEB will veto picked points that are within the
embedded GED.
This is explained in the User Manual
2) For intersecting primitives, having PICKed on one, the GED code then
requests NEAR for the point using any other primitive that could
possibly overlap. GEB will discard a certain fraction of overlapping
points to ensure there is no double counting.
This is explained in the Programmer Manual.
Primitive Specific Data
=======================
The first word is the volume. Remaining words depend on the primitive type as
shown below.
Sphere
------
2 F Radius of sphere.
Cylinder
--------
2 F Radius of cylinder.
3 F Half height of cylinder.
Block
-----
2 F Half length of side in X direction.
3 F Half length of side in Y direction.
4 F Half length of side in Z direction.
Elliptical Cylinder
-------------------
2 F Length of semi-axis in X direction.
3 F Length of semi-axis in Y direction.
4 F Half height of cylinder.
Half Elliptical Torus
---------------------
2 F Length of semi-axis in radial direction.
3 F Length of semi-axis in Z direction.
4 F Length of major radius in XY plane.
Half Square Torus
-----------------
2 F Half length of square side in radial direction.
3 F Half length of square side in Z direction.
4 F Length of major radius in XY plane.
Half Torus
----------
2 F Length of semi-axis.
3 F Length of major radius in XY plane.
Octahedron
----------
2 F Height of apex above and perpendicular to square plane.
3 F Gradient of sloping planes.
Spherical Tile
--------------
2 F Radius of centre of tile.
3 F Half radial thickness of tile.
4 F Tangent of the polar angle defining top of tile.
5 F Tangent of the polar angle defining bottom of tile.
6 F Tangent of half the azimuthal angle defining width of tile.
Go Back to the
Snoman Companion Top Page