GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> EFC / V4-5-5 > gdgfc / rhel6-32


Interface   Data Structures   File List   Data Fields   Globals  

TFC_acd.c File Reference

Routines to project XY projections to the ACD faces. More...

#include <EFC/EDM.h>
#include <EFC/TFC_geometryDef.h>
#include <EFC/TFC_prjDef.h>
#include <TFC_acd.h>
#include <PBI/FFS.ih>

Classes

struct  _AcdDispatchCtl
 Provides a set of 16 masks, one per tower, indicating which of the 5 ACD planes this tower interfaces to. More...

Typedefs

typedef enum _ACD_V_prj ACD_V_prj
 Typedef for enum _ACD_V_prj.
typedef enum _ACD_M_prj ACD_M_prj
 Typedef for enum _ACD_M_prj.
typedef struct _AcdDispatchCtl AcdDispatchCtl
 Typedef for struct _AcdDispatchCtl.

Enumerations

enum  _ACD_V_prj {
  ACD_V_PRJ_XM = 0,
  ACD_V_PRJ_XP = 1,
  ACD_V_PRJ_YM = 2,
  ACD_V_PRJ_YP = 3,
  ACD_V_PRJ_TOP = 4,
  ACD_V_PRJ_XMS = 5,
  ACD_V_PRJ_XPS = 6,
  ACD_V_PRJ_YMS = 7,
  ACD_V_PRJ_YPS = 8
}
 Bit offset used to construct the ACD dispatch mask. More...
enum  _ACD_M_prj {
  ACD_M_PRJ_XM = (1 << ACD_V_PRJ_XM ),
  ACD_M_PRJ_XP = (1 << ACD_V_PRJ_XP ),
  ACD_M_PRJ_YM = (1 << ACD_V_PRJ_YM ),
  ACD_M_PRJ_YP = (1 << ACD_V_PRJ_YP ),
  ACD_M_PRJ_TOP = (1 << ACD_V_PRJ_TOP),
  ACD_M_PRJ_XMS = (1 << ACD_V_PRJ_XMS),
  ACD_M_PRJ_XPS = (1 << ACD_V_PRJ_XPS),
  ACD_M_PRJ_YMS = (1 << ACD_V_PRJ_YMS),
  ACD_M_PRJ_YPS = (1 << ACD_V_PRJ_YPS)
}
 Bit mask used to construct the ACD dispatch mask. More...

Functions

static unsigned int findAcdSideMask (int z, const int *zSides)
 Translates a Z position into a mask which represents the row of ACD tiles associated with that Z.
static unsigned int findAcdTopMask (int acdTop, unsigned int template, int amount, const short int *edges)
 Translates a X/Y position into a mask which represents the row or column of ACD top tiles associated with that X/Y position.
static __inline unsigned int projectXYtoAcdTop (const TFC_prjPrms *top, int template, int shiftAmount, const unsigned short int *toAcd, const short int *edges)
 Projects an X/Y projects to the top face of the ACD and computes the mask of which possible ACD tiles.
static __inline unsigned int projectXYMtoAcd (const TFC_prjPrms *top, int zposition, int towerEdge, int toAcdPlane, const int *zSides)
 Projects an X or Y track projection to the X-/Y- face.
static __inline unsigned int projectXYPtoAcd (const TFC_prjPrms *top, int zposition, int towerEdge, int toAcdPlane, const int *zSides)
 Projects an X or Y track projection to the X+/Y+ face.
static __inline unsigned int projectXYStoAcd (int zposition, int toAcdPlane, int dxy, int dz, const int *zSides)
 Projects an X or Y track projection to an ACD face.
static unsigned int prjAcd_Top (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, unsigned int dispatch, unsigned int acd_z, unsigned int acdxy[2][16])
 Loops through the list of projections and checks for coincidences with the TOP ACD face.
static unsigned int prjAcd_XM (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, unsigned int dispatch, unsigned int acd_x)
 Loops through the list of X projections and checks for coincidences with the X- ACD face.
static unsigned int prjAcd_XP (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, unsigned int dispatch, unsigned int acd_x)
 Loops through the list of X projections and checks for coincidences with the X+ ACD face.
static unsigned int prjAcd_YM (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, unsigned int dispatch, unsigned int acd_y)
 Loops through the list of Y projections and checks for coincidences with the Y- ACD face.
static unsigned int prjAcd_YP (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, unsigned int dispatch, unsigned int acd_y)
 Loops through the list of Y projections and checks for coincidences with the Y+ ACD face.
static unsigned int prjAcd_XMS (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, unsigned int dispatch, unsigned int acd_x)
 Loops through the list of X projections and checks for coincidences with the X- ACD face.
static unsigned int prjAcd_XPS (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, unsigned int dispatch, unsigned int acd_x)
 Loops through the list of X projections and checks for coincidences with the X+ ACD face.
static unsigned int prjAcd_YMS (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, unsigned int dispatch, unsigned int acd_y)
 Loops through the list of Y projections and checks for coincidences with the Y- ACD face.
static unsigned int prjAcd_YPS (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, unsigned int dispatch, unsigned int acd_y)
 Loops through the list of Y projections and checks for coincidences with the Y+ ACD face.
unsigned int TFC_acdProjectTemplate (unsigned int acd_x, unsigned int acd_y, unsigned int acd_z)
 Builds a template dispatch mask for this event.
unsigned int TFC_acdProject (TFC_prj *prj, int xCnt, int yCnt, const TFC_geometry *geo, int towerId, unsigned int dispatch, unsigned int acdxy[2][16], unsigned int acd_x, unsigned int acd_y, unsigned int acd_z)
 Projects the track projections to the ACD faces and looks for an match with a stuck ACD tile.

Variables

static const AcdDispatchCtl AcdDispatch
 Static, readonly structure indicating which ACD planes each tower interfaces with.


Detailed Description

Routines to project XY projections to the ACD faces.

Author:
JJRussell - russell@slac.stanford.edu

 CVS $Id: TFC_acd.c,v 1.7 2011/11/14 17:56:38 russell Exp $

Typedef Documentation

Typedef for enum _ACD_M_prj.

For a given set of struck ACD tiles, one can construct a mask of which planes should ever be checked. When a track projection is found, the projection type (X or Y) and tower can be used to further limit the scope of the check.

The obvious things appear here, check X-,X+, Y-,Y+ and the TOP planes. There also exists an additional set of masks used to extend the search when the projection is very shallow. In these cases, it is possible that only 2 layers where hit in the tower that is juxtaposition to the struck ACD tiles. It is very possible that the projection was not successfully extrapolated into the that tower and the additional hits where missed. To cover this case, projections with very shallow slopes are allowed to be projected all the way through a tower to an ACD side plane. These are the ACD_M_PRJ_xxS enumerations.

Typedef for enum _ACD_V_prj.

See ACD_M_prj for further details


Enumeration Type Documentation

enum _ACD_M_prj

Bit mask used to construct the ACD dispatch mask.

Enumerator:
ACD_M_PRJ_XM  Project to XM plane
ACD_M_PRJ_XP  Project to XP plane
ACD_M_PRJ_YM  Project to YM plane
ACD_M_PRJ_YP  Project to YP plane
ACD_M_PRJ_TOP  Project to TOP plane
ACD_M_PRJ_XMS  Project to XM plane (skip)
ACD_M_PRJ_XPS  Project to XP plane (skip)
ACD_M_PRJ_YMS  Project to YM plane (skip)
ACD_M_PRJ_YPS  Project to YP plane (skip)

enum _ACD_V_prj

Bit offset used to construct the ACD dispatch mask.

Enumerator:
ACD_V_PRJ_XM  Project to XM plane
ACD_V_PRJ_XP  Project to XP plane
ACD_V_PRJ_YM  Project to YM plane
ACD_V_PRJ_YP  Project to YP plane
ACD_V_PRJ_TOP  Project to TOP plane
ACD_V_PRJ_XMS  Project ot XM plane after skipping a tower
ACD_V_PRJ_XPS  Project ot XP plane after skipping a tower
ACD_V_PRJ_YMS  Project ot YM plane after skipping a tower
ACD_V_PRJ_YPS  Project ot YP plane after skipping a tower


Function Documentation

static unsigned int findAcdSideMask ( int  z,
const int *  zSides 
) [static]

Translates a Z position into a mask which represents the row of ACD tiles associated with that Z.

Returns:
A mask representing the ACD associated with z.
Parameters:
z The z position in units of TFC_Z_ABS_SCALE_FACTOR
zSides The z positions of the side tiles

Referenced by projectXYMtoAcd(), projectXYPtoAcd(), and projectXYStoAcd().

static unsigned int findAcdTopMask ( int  acdTop,
unsigned int  template,
int  amount,
const short int *  edges 
) [static]

Translates a X/Y position into a mask which represents the row or column of ACD top tiles associated with that X/Y position.

Returns:
A mask representing the ACD tiles associated with acdTop.
Parameters:
acdTop The X/Y position a the Z of the ACD top face of tiles.
template A template mask that is valid for row or column 0
amount The amount to shift the template mask if the row or column is not 0. This will be 1 for X (columns) and 5 for Y (rows).
edges The edges of the tiles in this row/col

Referenced by projectXYtoAcdTop().

static unsigned int prjAcd_Top ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
unsigned int  dispatch,
unsigned int  acd_z,
unsigned int  acdxy[2][16] 
) [static]

Loops through the list of projections and checks for coincidences with the TOP ACD face.

Returns:
A mask of possible ACD TOP tile coincidences.
Parameters:
prj The list of projections
xCnt The number of X projections
yCnt The number of Y projections
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
dispatch The current dispatch mask.
acd_z The bit mask of struck ACD top tiles.
acdxy Accumulates the or of all X/Y top tile candidates.

References _TFC_geometry::acd, ACD_V_PRJ_TOP, _TFC_prj::acdTopMask, EDM_CODE, _TFC_prj::hits, _TFC_prjPrms::layer, _TFC_prj::layers, projectXYtoAcdTop(), _TFC_prj::top, _TFC_hit::tower, _TFC_prjPrms::tower, _TFC_geometryAcd::xProjections, _TFC_geometryAcd::xTopEdges, _TFC_geometryAcd::yProjections, and _TFC_geometryAcd::yTopEdges.

Referenced by TFC_acdProject().

static unsigned int prjAcd_XM ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
unsigned int  dispatch,
unsigned int  acd_x 
) [static]

Loops through the list of X projections and checks for coincidences with the X- ACD face.

Returns:
A mask of possible ACD X- tile coincidences.
Parameters:
prj The list of projections
xCnt The number of X projections
yCnt The number of Y projections
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
dispatch The current dispatch mask
acd_x The list of ACD XM tiles (right justified)

References _TFC_geometry::acd, ACD_V_PRJ_XM, _TFC_prj::acdXMask, EDM_CODE, _AcdDispatchCtl::masks, _TFC_geometryTkrXY::offsets, projectXYMtoAcd(), _TFC_geometry::tkr, _TFC_prj::top, _TFC_prjPrms::tower, _TFC_geometryTkr::xy, _TFC_geometryAcd::xySides, _TFC_geometryTkrXY::z, and _TFC_geometryAcd::zSides.

Referenced by TFC_acdProject().

static unsigned int prjAcd_XMS ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
unsigned int  dispatch,
unsigned int  acd_x 
) [static]

Loops through the list of X projections and checks for coincidences with the X- ACD face.

Returns:
A mask of possible ACD X- tile coincidences.
Parameters:
prj The list of projections
xCnt The number of X projections
yCnt The number of Y projections
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
dispatch The current dispatch mask
acd_x The bit list of struck ACD XM tiles (right-justified)
Only projections with very shallow angles are considered. This routine attempts to skip over a tower that may not have sufficient hits to cause a 3-in-a-row, as will occassionally happen when the angle is very small.

References _TFC_geometry::acd, ACD_V_PRJ_XM, ACD_V_PRJ_XMS, _TFC_prj::acdXMask, EDM_CODE, EDM_DEBUGPRINTF, _AcdDispatchCtl::masks, projectXYStoAcd(), _TFC_geometry::tkr, _TFC_prj::top, _TFC_prjPrms::tower, _TFC_geometryTkr::xy, _TFC_geometryAcd::xySides, _TFC_geometryTkrXY::z, and _TFC_geometryAcd::zSides.

Referenced by TFC_acdProject().

static unsigned int prjAcd_XP ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
unsigned int  dispatch,
unsigned int  acd_x 
) [static]

Loops through the list of X projections and checks for coincidences with the X+ ACD face.

Returns:
A mask of possible ACD X+ tile coincidences.
Parameters:
prj The list of projections
xCnt The number of X projections
yCnt The number of Y projections
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
dispatch The dispatch mask
acd_x The list ACD XP tiles (right justified)

References _TFC_geometry::acd, ACD_V_PRJ_XP, _TFC_prj::acdXMask, EDM_CODE, _AcdDispatchCtl::masks, _TFC_geometryTkrXY::offsets, projectXYPtoAcd(), _TFC_geometry::tkr, _TFC_prj::top, _TFC_prjPrms::tower, _TFC_geometryTkrXY::width, _TFC_geometryTkr::xy, _TFC_geometryAcd::xySides, _TFC_geometryTkrXY::z, and _TFC_geometryAcd::zSides.

Referenced by TFC_acdProject().

static unsigned int prjAcd_XPS ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
unsigned int  dispatch,
unsigned int  acd_x 
) [static]

Loops through the list of X projections and checks for coincidences with the X+ ACD face.

Returns:
A mask of possible ACD X+ tile coincidences.
Parameters:
prj The list of projections
xCnt The number of X projections
yCnt The number of Y projections
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
dispatch The current dispatch mask
acd_x The bit list of struck ACD XP tiles (right-justified)

References _TFC_geometry::acd, ACD_V_PRJ_XP, ACD_V_PRJ_XPS, _TFC_prj::acdXMask, EDM_CODE, EDM_DEBUGPRINTF, _AcdDispatchCtl::masks, projectXYStoAcd(), _TFC_geometry::tkr, _TFC_prj::top, _TFC_prjPrms::tower, _TFC_geometryTkr::xy, _TFC_geometryAcd::xySides, _TFC_geometryTkrXY::z, and _TFC_geometryAcd::zSides.

Referenced by TFC_acdProject().

static unsigned int prjAcd_YM ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
unsigned int  dispatch,
unsigned int  acd_y 
) [static]

Loops through the list of Y projections and checks for coincidences with the Y- ACD face.

Returns:
A mask of possible ACD Y- tile coincidences.
Parameters:
prj The list of projections
xCnt The number of X projections
yCnt The number of Y projections
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
dispatch The current dispatch mask
acd_y The bit list of struck ACD YM tiles (right-justified)

References _TFC_geometry::acd, ACD_V_PRJ_YM, _TFC_prj::acdYMask, EDM_CODE, _AcdDispatchCtl::masks, _TFC_geometryTkrXY::offsets, projectXYMtoAcd(), _TFC_geometry::tkr, _TFC_prj::top, _TFC_prjPrms::tower, _TFC_geometryTkr::xy, _TFC_geometryAcd::xySides, _TFC_geometryTkrXY::z, and _TFC_geometryAcd::zSides.

Referenced by TFC_acdProject().

static unsigned int prjAcd_YMS ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
unsigned int  dispatch,
unsigned int  acd_y 
) [static]

Loops through the list of Y projections and checks for coincidences with the Y- ACD face.

Returns:
A mask of possible ACD Y- tile coincidences.
Parameters:
prj The list of projections
xCnt The number of X projections
yCnt The number of Y projections
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
dispatch The current dispatch mask
acd_y The list of ACD YM tiles (right justified)

References _TFC_geometry::acd, ACD_V_PRJ_YM, ACD_V_PRJ_YMS, _TFC_prj::acdYMask, EDM_CODE, EDM_DEBUGPRINTF, _AcdDispatchCtl::masks, projectXYStoAcd(), _TFC_geometry::tkr, _TFC_prj::top, _TFC_prjPrms::tower, _TFC_geometryTkr::xy, _TFC_geometryAcd::xySides, _TFC_geometryTkrXY::z, and _TFC_geometryAcd::zSides.

Referenced by TFC_acdProject().

static unsigned int prjAcd_YP ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
unsigned int  dispatch,
unsigned int  acd_y 
) [static]

Loops through the list of Y projections and checks for coincidences with the Y+ ACD face.

Returns:
A mask of possible ACD Y+ tile coincidences.
Parameters:
prj The list of projections
xCnt The number of X projections
yCnt The number of Y projections
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
dispatch The current dispatch mask
acd_y The bit list of struck ACD YP tiles (right-justified)

References _TFC_geometry::acd, ACD_V_PRJ_YP, _TFC_prj::acdYMask, EDM_CODE, _AcdDispatchCtl::masks, _TFC_geometryTkrXY::offsets, projectXYPtoAcd(), _TFC_geometry::tkr, _TFC_prj::top, _TFC_prjPrms::tower, _TFC_geometryTkrXY::width, _TFC_geometryTkr::xy, _TFC_geometryAcd::xySides, _TFC_geometryTkrXY::z, and _TFC_geometryAcd::zSides.

Referenced by TFC_acdProject().

static unsigned int prjAcd_YPS ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
unsigned int  dispatch,
unsigned int  acd_y 
) [static]

Loops through the list of Y projections and checks for coincidences with the Y+ ACD face.

Returns:
A mask of possible ACD Y+ tile coincidences.
Parameters:
prj The list of projections
xCnt The number of X projections
yCnt The number of Y projections
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
dispatch The current dispatch mask
acd_y The bit list of struck ACD YP tiles (right-justified)

References _TFC_geometry::acd, ACD_V_PRJ_YP, ACD_V_PRJ_YPS, _TFC_prj::acdYMask, EDM_CODE, EDM_DEBUGPRINTF, _AcdDispatchCtl::masks, _TFC_prj::max, projectXYStoAcd(), _TFC_geometry::tkr, _TFC_prj::top, _TFC_prjPrms::tower, _TFC_geometryTkr::xy, _TFC_geometryAcd::xySides, _TFC_geometryTkrXY::z, and _TFC_geometryAcd::zSides.

Referenced by TFC_acdProject().

static __inline unsigned int projectXYMtoAcd ( const TFC_prjPrms top,
int  zposition,
int  towerEdge,
int  toAcdPlane,
const int *  zSides 
) [static]

Projects an X or Y track projection to the X-/Y- face.

Returns:
The mask of which ACD side tiles could match this projection
Parameters:
top The projection parameters at the top of the projection
zposition Starting z position
towerEdge The left/low edge of the tower in units of strips
toAcdPlane Distance from the strip 0 of the tracker to the ACD plane in units of the strip pitch.
zSides The z positions of the side tiles
There is a parallel routine routine projectXMPtoAcd for projecting off the right/high side of a tower. The calling convention is not the same because the left/lower edge of the tower is, by definition, 0, so the check for leaving a tower on the left/lower side is a simple check against 0. For the right/high side, the check is against the width of the tower (in strips).

References _TFC_prjPrms::dxy, _TFC_prjPrms::dz, EDM_DEBUGPRINTF, findAcdSideMask(), _TFC_prjPrms::layer, _TFC_prjPrms::tower, and _TFC_prjPrms::xy0.

Referenced by prjAcd_XM(), and prjAcd_YM().

static __inline unsigned int projectXYPtoAcd ( const TFC_prjPrms top,
int  zposition,
int  towerEdge,
int  toAcdPlane,
const int *  zSides 
) [static]

Projects an X or Y track projection to the X+/Y+ face.

Returns:
The mask of which ACD side tiles could match this projection
Parameters:
top The projection parameters at the top of the projection
zposition Starting z position
towerEdge The right/high edge of the tower in units of strips
toAcdPlane Distance from the strip 0 of the tracker to the ACD plane in units of the strip pitch.
zSides The z positions of the side tiles
There is a parallel routine routine projectXYMtoAcd for projecting off the left/lower side of a tower. The calling convention is not the same because the left/lower edge of the tower is, by definition, 0, so the check for leaving a tower on the left/lower side is a simple check against 0. For the right/high side, the check is against the width of the tower (in strips).

References _TFC_prjPrms::dxy, _TFC_prjPrms::dz, EDM_DEBUGPRINTF, findAcdSideMask(), _TFC_prjPrms::layer, _TFC_prjPrms::tower, and _TFC_prjPrms::xy0.

Referenced by prjAcd_XP(), and prjAcd_YP().

static __inline unsigned int projectXYStoAcd ( int  zposition,
int  toAcdPlane,
int  dxy,
int  dz,
const int *  zSides 
) [static]

Projects an X or Y track projection to an ACD face.

Returns:
A mask of possible side tiles coincidences.
Parameters:
zposition Starting z position
toAcdPlane Distance from the top strip hit of the track to the ACD plane in units of the strip pitch.
dxy Distance between the top and bottom hits.
dz Distance between the top and bottom hit planes. This should always be twice the nominal Z layer separation.
zSides The z positions of the side tiles

References EDM_DEBUGPRINTF, and findAcdSideMask().

Referenced by prjAcd_XMS(), prjAcd_XPS(), prjAcd_YMS(), and prjAcd_YPS().

static __inline unsigned int projectXYtoAcdTop ( const TFC_prjPrms top,
int  template,
int  shiftAmount,
const unsigned short int *  toAcd,
const short int *  edges 
) [static]

Projects an X/Y projects to the top face of the ACD and computes the mask of which possible ACD tiles.

Returns:
The mask of which ACD top tiles could match this projection
Parameters:
top The projection parameters associated with the top of the projection.
template The template for the ACD mask. This template is valid if the row/col is 0.
shiftAmount The shift amount to apply to the template mask according to the actual row or col.
toAcd Array of projection distances from a layer to the top planes of the ACD
edges Array giving the edges of the tiles. These must be ordered from the most negative to most positive edge.

References _TFC_prjPrms::dxy, EDM_DEBUGPRINTF, findAcdTopMask(), _TFC_prjPrms::layer, TFC_Z_ACD_TOP_TO_TKR_SCALE_FACTOR, _TFC_prjPrms::tower, and _TFC_prjPrms::xy0.

Referenced by prjAcd_Top().

unsigned int TFC_acdProject ( TFC_prj prj,
int  xCnt,
int  yCnt,
const TFC_geometry geo,
int  towerId,
unsigned int  dispatch,
unsigned int  acdxy[2][16],
unsigned int  acd_x,
unsigned int  acd_y,
unsigned int  acd_z 
)

Projects the track projections to the ACD faces and looks for an match with a stuck ACD tile.

Returns:
The first coincidence with one of faces. The upper 4 bits indicate which face (0=Top, 1=X-, 2=X+, 3=Y-, 4=Y+), the lower N bits indicate the match (16 bits valid for side matches, 25 for top matches
Parameters:
prj The list of projections
xCnt The number of x projections. The first xCnt projections are X projections.
yCnt The number of y projections. The next yCnt projections are Y projections.
geo The geometry of the LAT. This is used to do the projections, defining where various boundaries are from the perspective of the TKR.
towerId The tower id of these projections
dispatch A bit mask of the possible projections to try based on the struck ACD tile. This must be consistent with acd_z, acd_x and acd_y.
acdxy Accumulates the or of all X/Y top tiles.
acd_x A bit mask of the struck ACD X face tiles.
acd_y A bit mask of the struck ACD Y face tiles.
acd_z A bit mask of the struck ACD Z (TOP) face tiles.

References ACD_M_PRJ_TOP, ACD_M_PRJ_XM, ACD_M_PRJ_XMS, ACD_M_PRJ_XP, ACD_M_PRJ_XPS, ACD_M_PRJ_YM, ACD_M_PRJ_YMS, ACD_M_PRJ_YP, ACD_M_PRJ_YPS, ACD_V_PRJ_TOP, ACD_V_PRJ_XM, ACD_V_PRJ_XP, ACD_V_PRJ_YM, ACD_V_PRJ_YP, prjAcd_Top(), prjAcd_XM(), prjAcd_XMS(), prjAcd_XP(), prjAcd_XPS(), prjAcd_YM(), prjAcd_YMS(), prjAcd_YP(), and prjAcd_YPS().

Referenced by tkrFilter().

unsigned int TFC_acdProjectTemplate ( unsigned int  acd_x,
unsigned int  acd_y,
unsigned int  acd_z 
)

Builds a template dispatch mask for this event.

Returns:
The template dispatch mask for this event.
Parameters:
acd_x The bit mask of struck X+/- ACD tiles.
acd_y The bit mask of struck Y+/- ACD tiles.
acd_z The bit mask of struck Z (top) ACD tiles.
The dispatch mask is a bit mask of the possible ACD projections to consider. For example, if no top tiles are struck, there is no reason to even attempt to project the tracks to the top tile face. This calculation is broken out since this is a global property of the event. It is computed once, then used for each tower that has found projections.

References ACD_M_PRJ_TOP, ACD_M_PRJ_XM, ACD_M_PRJ_XMS, ACD_M_PRJ_XP, ACD_M_PRJ_XPS, ACD_M_PRJ_YM, ACD_M_PRJ_YMS, ACD_M_PRJ_YP, and ACD_M_PRJ_YPS.

Referenced by tkrFilter().


Variable Documentation


Generated on Wed Jan 16 13:54:49 2013 by  doxygen 1.5.8