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.