GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > EFC / V4-1-1
Constituent: dgfc     Tag: rad750
#include "EFC/EDM.h"
#include "TFC_acd.h"
#include "TFC_geometryDef.h"
#include "EFC/TFC_prjDef.h"
#include "EDS/FFS.h"
Include dependency graph for TFC_acd.c:
Data Structures | |
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 _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 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. |
CVS $Id: TFC_acd.c,v 1.5 2007/06/17 22:36:20 russell Exp $
|
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 |
|
|
Bit offset used to construct the ACD dispatch mask.
|
|
Translates a Z position into a mask which represents the row of ACD tiles associated with that Z.
|
|
Translates a X/Y position into a mask which represents the row or column of ACD top tiles associated with that X/Y position.
|
|
Loops through the list of projections and checks for coincidences with the TOP ACD face.
|
|
Loops through the list of X projections and checks for coincidences with the X- ACD face.
|
|
Loops through the list of X projections and checks for coincidences with the X- ACD face.
|
|
Loops through the list of X projections and checks for coincidences with the X+ ACD face.
|
|
Loops through the list of X projections and checks for coincidences with the X+ ACD face.
|
|
Loops through the list of Y projections and checks for coincidences with the Y- ACD face.
|
|
Loops through the list of Y projections and checks for coincidences with the Y- ACD face.
|
|
Loops through the list of Y projections and checks for coincidences with the Y+ ACD face.
|
|
Loops through the list of Y projections and checks for coincidences with the Y+ ACD face.
|
|
Projects an X or Y track projection to the X-/Y- face.
|
|
Projects an X or Y track projection to the X+/Y+ face.
|
|
Projects an X or Y track projection to an ACD face.
|
|
Projects an X/Y projects to the top face of the ACD and computes the mask of which possible ACD tiles.
|
|
Projects the track projections to the ACD faces and looks for an match with a stuck ACD tile.
|
|
Builds a template dispatch mask for this event.
|
|
Initial value: { { ACD_M_PRJ_TOP | ACD_M_PRJ_YM | ACD_M_PRJ_XM, ACD_M_PRJ_TOP | ACD_M_PRJ_YM | ACD_M_PRJ_XMS, ACD_M_PRJ_TOP | ACD_M_PRJ_YM | ACD_M_PRJ_XPS, ACD_M_PRJ_TOP | ACD_M_PRJ_YM | ACD_M_PRJ_XP, ACD_M_PRJ_TOP | ACD_M_PRJ_XM | ACD_M_PRJ_YMS, ACD_M_PRJ_TOP | ACD_M_PRJ_XMS | ACD_M_PRJ_YMS, ACD_M_PRJ_TOP | ACD_M_PRJ_XPS | ACD_M_PRJ_YMS, ACD_M_PRJ_TOP | ACD_M_PRJ_XP | ACD_M_PRJ_YMS, ACD_M_PRJ_TOP | ACD_M_PRJ_XM | ACD_M_PRJ_YPS, ACD_M_PRJ_TOP | ACD_M_PRJ_XMS | ACD_M_PRJ_YPS, ACD_M_PRJ_TOP | ACD_M_PRJ_XPS | ACD_M_PRJ_YPS, ACD_M_PRJ_TOP | ACD_M_PRJ_XP | ACD_M_PRJ_YPS, ACD_M_PRJ_TOP | ACD_M_PRJ_YP | ACD_M_PRJ_XM, ACD_M_PRJ_TOP | ACD_M_PRJ_YP | ACD_M_PRJ_XMS, ACD_M_PRJ_TOP | ACD_M_PRJ_YP | ACD_M_PRJ_XPS, ACD_M_PRJ_TOP | ACD_M_PRJ_YP | ACD_M_PRJ_XP, } }
|