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.
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 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. There was a
convention for numbering the other faces, but I don't remember it.
Most likely it was the one now embodied in flight.xml (see below).
- 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
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 = 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.
- [3]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.
Since there is no official Ritz scheme currently for the ACD I can't
sensibly describe a transformation in detail, but we can probably assume
that the fields from the old Ritz document will be preserved. Any
conventions on values for those fields will be honored in the geo id
if possible, so that most likely all that will be needed to transform
to a Ritz id will be extraction of certain fields.
Ultimately if tapes are to have ids as well we will need an
additional field with 2 possible values corresponding
to "tile" and "tape". Probably the new field will have to
go between fields 1 and 2 or, if side faces are built up a little
differently than is currently the case, between fields 2 and 3.
J. Bogart
Created: 14 Dec 2002
Last modified: