Geometry Ids and Ritz Ids
Purpose:
For each detector type, define mapping from volume ids as they come
out of the XML geometry description to "Ritz ids".
NOTE: Ritz ids don't have a definition in code, just in the LAT Coordinate
System document. Naming and numbering conventions for necessary
parts of an identifier are described, not the precise format into
which the parts should be assembled.
|
Cal, Cal ids
Tkr, Tkr ids
Acd, Acd ids
|
Tower Numbers
The Ritz document describes two conventions for tower numbering:
a single number running from 0 (neg X, neg Y) to 15 (pos X, pos Y)
or two numbers, one for X- and one for Y-position. The latter,
known as the matrix number, is what comes directly
out of the geometry ids. They all have two fields known as
fTowerY and fTowerX. To get to the single numbering scheme, just
do
N = 4 * Y + X
or, more generally,
N = xNum * Y + X
xNum is a primary constant whose value may be
fetched via detModel or GlastDetSvc services.
CAL
Crystal
Ritz id explicitly requires
- Tower number or Tower matrix number
- Layer number. Front-most layer is layer 0; numbers increase
with decreasing Z.
- Log number. Number increases with increasing
X or Y, depending on orientation of the containing layer.
Implicit is the detector type (CAL crystal).
Geo id looks like this:
- [0] field = fLATObjects, value = eLATTowers (= 0)
- [1] field = fTowerY, value in range [0,3], same convention as for Ritz
tower matrix number
- [2] field = fTowerX, value in range [0,3], same convention as for Ritz
tower matrix number
- [3] field = fTowerObjects, value = eTowerCAL (= 0)
- [4] field = fLayer, value in range [0,7] with same convention as for Ritz
- [5] field = fMeasure, value from the set {eMeasureX, eMeasureY} = {0, 1}
- [6] field = fCALLog, value in range [0,11], same convention as for Ritz
- [7] field = fCellCmp, value = eXtal (= 0)
- [8] field = fCALSeg, value in range [0, nsegments - 1], identifies
the segment in the log, but only if segments have been defined in the
geometry. Otherwise this field is absent.
To get to Ritz id, using tower matrix numbering, just extract fields
2, 3, 5, 7.
Diodes
Ritz id explicitly requires
- Tower number or Tower matrix number
- Layer number. Front-most layer is layer 0; numbers increase
with decreasing Z.
- Log number. Number increases with increasing
X or Y, depending on orientation of the containing layer.
- Log end (plus or minus)
- Diode type (large or small)
Implicit is the detector type (CAL diode).
Geo id looks like this:
- [0] field = fLATObjects, value = eLATTowers (= 0)
- [1] field = fTowerY, value in range [0,3], same convention as for Ritz
tower matrix number
- [2] field = fTowerX, value in range [0,3], same convention as for Ritz
tower matrix number
- [3] field = fTowerObjects, value = eTowerCAL (= 0)
- [4] field = fLayer, value in range [0,7] with same convention as for Ritz
- [5] field = fMeasure, value from the set {eMeasureX, eMeasureY} = {0, 1}
- [6] field = fCALLog, value in range [0,11], same convention as for Ritz
- [7] field = fCellCmp, value from the set {eDiodeMSmall, eDiodePSmall,
eDiodeMLarge, eDiodePLarge} which happen to be 1, 2, 3, 4, respectively.
To get to Ritz id, using tower matrix numbering, extract fields
2, 3, 5, 7 and 8. Field 8 requires some interpretation since it
encodes two pieces of the Ritz id.
Tracker
Tracker is somewhat murkier than CAL because of the different
ways of viewing the tracker: as a sequence of trays with alternating
orientation, or as a
sequence of XY layers, where a layer consists of the X- and Y-planes
closest to each other. Geometry identifiers go by trays but Ritz ids
more naturally go by layers. Then a Ritz silicon strip id
has fields
- Tower number or Tower matrix number
- Layer number. Layer numbers start with 0 and increase with
increasing Z (so do tray numbers).
- Orientation (measures X or measures Y)
- Layer strip number or the pair (ladder number, ladder strip number)
Geo ids don't go down to the level of strip.
What's available is
the following:
- [0] field = fLATObjects, value = eLATTowers (= 0)
- [1] field = fTowerY, value in range [0,3], same convention as for Ritz
tower matrix number
- [2] field = fTowerX, value in range [0,3], same convention as for Ritz
tower matrix number
- [3] field = fTowerObjects, value = eTowerTKR (= 1)
- [4] field = fTKRTray, value in range [0,18] with same convention as for Ritz
- [5] field = fMeasure, value from the set {eMeasureX, eMeasureY} = {0, 1}
- [6] field = fTKRTrayCmp, values from the set {eTKRSiBottom, eTKRSiTop} =
{0, 1}
- Depending on choice mode, may also have a ladder number available [7].
- Depending on choice mode, may also have wafer number available [8].
Use fields 2 and 3 to get a tower number. Orientation is available
from field 6. To get layer number, take
(value of field 5) + (value of field 7) - 1
Strip number is not obtainable from the geometric id without
some additional geometric information, such as hit coordinates.
Parameters necessary to compute strip number, such as number of
strips in a wafer, are defined as constants in the XML file and
can be accessed via detModel constants services.
ACD
Tile
The Cyberdocs version (LAT-TD-00035-01) of "LAT Coordinate System"
has no information on ACD elements. An older, non-Cyberdocs version
of this document did discuss certain conventions applicable to the
ACD. Fields mentioned were
- Face, numbered from 0 to 4. The top face is 0. -X is face 1,
then proceed counter-clockwise as viewed from above: -Y is face 2,
+X is face 3, +Y is face 4.
- Tile row. For side faces, the top row is row 0; row numbers
increase with descreasing Z. There was a convention
for the top face also. I don't rememeber what it was now, but
did attempt to conform to it when writing flight.xml.
- Tile column. Start with 0 for column with smallest X or Y,
as appropriate. Column number increases with increasing
X or Y.
Detector (ACD) and detector type (tile) are implicit.
The geo id preserves (or at least means to preserve) all of
the above Ritz numbering conventions. The full geo id for an ACD tile
(as of July, 2006) is
- [0] field = fLATObjects, value = eLATACD(=1)
- [1] field = fACDFace, value in the range [0,4]. The negative X face is
1, then continue counterclockwise in numbering the remaining side faces.
- [2] field = fACDCmp, value = eACDTile (= 40)
- [3] field = fRow. Range depends on which face: [0, 4] for top face;
[0,3] for side faces. For side faces, rows have constant Z. The
top row is row 0. For
the top face, rows have constant X. The row with minimum (most
negative) X is row 0.
- [4] field = fCol. Range depends on face and row number as follows:
- 5 tiles in each top row
- 5 tiles in the top three rows of each side tile
- Single tile in the bottom side tile "row"
These values are easy to change.
- [5] field= fSeg. This is 0 except for the extra top pieces used
as part of those top edge tiles which are curved around in the real
thing. For the extra pieces the value is 1.
There is no official Ritz scheme for the ACD in the coordinates
document, but in practice
ACD tile digis are identified by face, row, column and layer (always = 0).
The format for a ribbon segment (page 2 of
these drawings shows why segments are necessary) is:
- [0] field = fLATObjects, value = eLATACD(=1)
- [1] field = fACDFace, value in the range [0,4]. The negative X face is
1, then continue counterclockwise in numbering the remaining side faces.
- [2] field = fACDCmp, value = eACDRibbon (= 41)
- [3] field = fMeasure, value = eMeasureX (resp. eMeasureY)
for ribbons whose short dimension (as of November, 2002, this dimension is
11mm and thickness is 4.5 mm. Length depends on the segment.),
is parallel to x-axis (resp. y-axis).
- [4] field = fRibbon, values in the range [0, 3].
- [5] field = fSegment. Value is always 0 for side faces. For
x-measuring top ribbons (whose continuation runs along +Y and -Y faces)
range is in [1, 5] for normal segments under top tiles.
Value = 6 for extra little pieces of
ribbon behind vertical part of top bent tiles. y-measuring top ribbons
are modeled with a single volume, fSegment = 1.
J. Bogart
Created: 14 Dec 2001
Last modified: