This document describes the TPC coordinate systems as currently
implemented.
Units: The unit of length is cm. The unit of rotation is radians
(this violates the STAR GEANT standard, which is degrees).
STAR Global Coordinate system: The STAR global coordinate system
is defined in
CSN 229
. This note specifies that:
- Positive y is up
- The origin is the center of the solenoid
- Positive x points south, away from the center of the RHIC ring
- Positive z points west
STAR TPC Local Coordinate System: The TPC local coordinate system
is defined relative
the center of the TPC, and uses the same definitions as the STAR
global coordinate system. This system is related to the STAR global coordinate
system by a translation and a rotation.
STAR TPC Pad Coordinates: This coordinate system specifies the location
within the TPC in
terms of pad coordinates, i.e. sector, row, pad, and time bucket.
STAR TPC Local Sector Coordinates: We do hit reconstruction on
a sector-by-sector basis, assuming that each sector is Sector 12. In this
system, a position is defined by (x,y,z) in sector
12 coordinates, as well as the real sector #. Note that z
increases
starting at the gating grid in these coordinates, i.e. z=0cm in Tpc
Local Sector coordinates is equal to z=208.707cm in TPC Local Coordinates.
TPC Coordinate Transformation Utilities: TPC coordinate transformations
are done is several places:
- StRoot/StDbUtilities/StTpcCoordinateTransform: This is a general
utility used for transforming among the various TPC coordinate systems.
- StRoot/StTpcDb/StTpcDb: This is a database accesor application
that serves as the single point of contact between the TPC software in
the database.
- StRoot/StTpcDb/StTpcDbMaker: This routine has two purposes.
First it initializes and creates the StTpcDb class. In addition, this routine
wraps the StTpcCoordinateTransform so that some of these functions can
be called from with the pams. Finally, this routine implements some specific
coordinate transformations that are used repeatedly in the cluster and
track finders. For these particular routines, StTpcCoordinateTransform
is too slow.
- StRoot/StDbUtilities/StSectorAligner: This routine takes care
of sector alignments. The TPC coordinate systems assume that the TPC is
perfectly constructed. Here we account for the physical position of each
TPC inner and outer sector.
- StRoot/StDbUtilities/StMagUtilities: This routine takes care
of TPC distortions. The input is TPC hits in, and the output is TPC
hits with the appropriate ExB corrections. Currently we input the TPC
hits in TPC local coordinates.
Order of calls: The dataflow is the following: (formerly,
before SL04a library, St_tpt_Maker
handled the duties of StTpcHitMoverMaker)
- St_tpcdaq_Maker: raw pixel information (sector,row,pad,timebucket)
- St_tcl_Maker->tcl: Convert raw pixel info to TPC hits in
local coordinates (accounting for pad-by-pad t0s)
- StTpcHitMoverMaker: Aligns sectors, "ExB" corrections, local->global:
- StSectorAligner
- StMagUtilities
- StTpcCoordinateTransform (local to global)
- St_tpt_Maker/Sti: tracking (using global hits)
TPC Database parameters: We use parameters from the MySQL database.
We use the Calibrations/tpc, Geometry/tpc, Conditions/trg, and StarDb/tpc/***pars
directories (*** refers to the three letter acronym for tpc pams, i.e.
tcl or tpt). Some important tables are the following:
- Geometry/tpc/tpcGlobalPosition: This table gives the position
of the TPC center relative the magnet. It also gives the rotation of the
TPC relative the magnet. We have two separate rotations. There is a
physical rotation of the TPC, and a rotation of the TPC E-field that is
used to do an ExB correction. The rotations are defined using the right
hand rule. For instance, the parameter PhiXZ controls the rotation of the
E-Field in the XZ plane (i.e. around the y-axis). Howard Wieman has written
a document describing the
survey results.
The actual transformations are described in a separate document
(PS
, PDF
). Here are some specific variables in the database:
LocalXShift,LocalYShift,LocalZShift
|
TPC (x,y,z) position relative global magnet coordinates
|
PhiXY_geom,PhiXZ_geom,PhiYZ_geom
|
Physical rotations of the TPC relative the magnet
steel around the z,y,x axes. PhiXY_geom is not well determined, and therefore
not used
|
PhiXY,PhiXZ,PhiYZ
|
Magnetic field dependent rotation of the TPC E-field
axis relative the magnet axis. These parameterize an effective field model
rotation of a perfect E field axis relative to a perfect B field. PhiXY
is by definition 0.
|
XX,YY,ZZ,XX_geom,YY_geom,ZZ_geom
|
Diagonal elements of the rotation matrices. The
rotations are generally so small that these are all unity.
|
- Geometry/tpc/Sector_XX/tpcSectorPosition: Position of sub-sectors
relative the nominal position. Each subsector is defined be a local x and
y shift, and a rotation angle. The shift is in sector 12 coordinates, so
most shifts are along the padrows (i.e. in the x-direction). The rotation
is taken about the middle of padrow 14 (i.e. (x,y) = (0,123cm) in sector
12 coordinates).
- Geometry/tpc/tpcDimensions, tpcWirePlanes, tpcPadPlanes: Here
we have a bunch of parameters related to the nominal TPC dimensions and
geometry in the anode region.
- Geometry/tpc/tpcFieldCage: Here we describe some inperfection
the in the TPC field cage needed for ExB corrections. There is a shift
of the innerFieldCage relative the outer field cage, as well as two "clocking"
errors. "clocking" refers to the rotation of the end caps realative the
nominal position. To confuse matters, the clocking is not an ExB correction,
but a geometry correction. Nonetheless it is part of the ExB corrections.
- Conditions/daq/trgTimeOffset: This table gives the delay between
the time of an event and when the trigger is issued to the TPC. There are
two parameters, one for normal events (offset) and one for laser
events (laserOffset). The offset parameter should be checked anytime
Hank is near the STAR detector.
- Calibrations/tpc/tpcDriftVelocity: Here we have the drift velocity
for a given run. Currently it is calculated in one of two ways. The
cathodeDriftVelocity refers to the drift velocity calculated by
StTpcT0Maker. Here we reconstruct the vertex independently in each half
of the TPC and adjust the drift velocity such that the two vertices match.
The laserDriftVelocity comes from the online analysis of the
mirror positions. The T0 method is more accurate, but cannot be used in
pp collisions. Note that for a given timestamp, the most recent table is
retrieved. If the cathodeDriftVelocity is zero, the laserDriftVelocity
is used.
- Calibrations/tpc/tpcEffectiveGeom: Because of the varying drift
path/velocity in the anode region, the effective length of the TPC is different
than the physical length. The drift velocity is fairly constant up to the
GatingGrid, so we define the gating grid as z=0cm is sector 12 coordinates.
We then define an effective pad plane position for the inner and outer
sectors, and define these positions relative the gating grid with z_inner_offset
and z_outer_offset. These offsets are taking from Roy Bossingham's
megaboltz calculations (see
SN 408
). The inner/outer effective displacement was confirmed by looking
at TPC residuals.
- Calibrations/tpc/tpcElectronics: The important parameters here
are the samplingFrequency and the shapingTime. The sampling
frequency converts from timebuckets to time. The shaping time is used to
correct the TPC hits for the shaping time of the TPC electronics. We use
a single average shaping time correction, when if fact the shaping time
correction should depend on the cluster shape.
- Calibrations/tpc/tpcOSTimeOffsets, tpcISTimeOffsets: pad-by-pad
correction of the timebuckets taken from pulser data.
GEANT Geometry and simultaion database parameters
The TPC offline code and GEANT use
Different geometry
databases. In particular the position of the TPC in GEANT is perfect and
there are no imperfections in the padplane positions. Thus, the following
tables have special
SIM flavored data in the database:
- Geometry/tpc/tpcGlobalPosition
- Geometry/tpc/tpcSectorPosition
In order to run proper embedding, the data must be re-run in sim mode,
i.e. with the TPC translation, rotations, and sector position corrections
turned off. We also turn off all ExB corrections. Running in this mode
recreates the tag file (where the primary vertex is different), and this
tag file is used for emedded data production.
THIS SHOULD BE FIXED!