GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > QSE / V1-5-3

Constituent: qse     Tag: linux-gcc


Interface   Data Structures   File List   Data Fields   Globals  

QSE_tkr.h File Reference

Defines the structure containing the unpacked the tracker record for all towers. More...

#include "PBI/Endianness.h"

Include dependency graph for QSE_tkr.h:

This graph shows which files directly or indirectly include this file:


Data Structures

struct  _QSE_tkrLyr
 Information about the hit strips in one layer. More...
struct  _QSE_tkrTwr
 Structure containing the unpacked TKR data for this tower. More...
struct  _QSE_tkr
 Structure containing the unpacked TKR data for all towers. More...

Defines

#define QSE_TKR_K_LAYERS_PER_TOWER   36
 The number of layers (both x and y) in a tower.
#define QSE_TKR_K_STRIPS_PER_LAYER_MAX   (2 * 64)
 The maximum number of strips a given layer (both ends) can have.
#define QSE_TKR_K_STRIPS_MAX
 The maximum number of strips a given event can have.
#define QSE_TKR_TWRMAP_INIT   0x1
 Value of the tower map for tower 0.
#define QSE_TKR_TWRMAP(_twrNum)   (QSE_TKR_TWRMAP_INIT << (_twrNum))
 Constructs the appropriate bit mask for the twrMap field in the QSE_tkr structure.

Typedefs

typedef unsigned short int QSE_tkrTwrMap
 Abstract typedef for a TKR tower map.
typedef unsigned short int QSE_tkrStrip
 The internal representation of a strip address.
typedef _QSE_tkrLyr QSE_tkrLyr
 Typedef for struct _QSE_tkrLyr.
typedef enum _QSE_TKRLYR_TOTS_K QSE_TKRLYR_TOTS_K
 Typedef for QSE_TKRLYR_TOTS_K.
typedef enum _QSE_TKRLYR_HILO_M QSE_TKRLYR_HILO_M
 Typedef for QSE_TKRLYR_HILO_M.
typedef _QSE_tkrTwr QSE_tkrTwr
 Typedef for struct _QSE_tkrTwr.
typedef _QSE_tkr QSE_tkr
 Typedef for struct _QSE_tkr.

Enumerations

enum  _QSE_TKRLYR_TOTS_K {
  QSE_TKRLYR_TOTS_K_LO = 0x0,
  QSE_TKRLYR_TOTS_K_HI = 0x1
}
 Enumeration of the value used to index the tots field of QSE_tkrLyr structure.
enum  _QSE_TKRLYR_HILO_M {
  QSE_TKRLYR_HILO_M_LO = 0x1,
  QSE_TKRLYR_HILO_M_HI = 0x2,
  QSE_TKRLYR_HILO_M_BOTH = 0x3
}
 Enumeration of the masks used to test the hiLo field member of the QSE_tkrLyr structure for the present of the lo, hi or both layer ends.

Detailed Description

Defines the structure containing the unpacked the tracker record for all towers.

Author:
JJRussell - russell@slac.stanford.edu
    CVS $Id: QSE_tkr.h,v 1.2 2006/09/13 22:05:00 russell Exp $

Define Documentation

#define QSE_TKR_K_STRIPS_MAX
 

Value:

The maximum number of strips a given event can have.

#define QSE_TKR_TWRMAP _twrNum   )     (QSE_TKR_TWRMAP_INIT << (_twrNum))
 

Constructs the appropriate bit mask for the twrMap field in the QSE_tkr structure.

Returns:
The bit mask the specified _twrNum
Parameters:
_twrNum The tower number
This macro is used when constructing the twrMap field in the QSE_tkr structure. Use of the parameter will avoid mistakes caused by incorrectly assuming how the tower map is constructed.

#define QSE_TKR_TWRMAP_INIT   0x1
 

Value of the tower map for tower 0.

Warning:
This parameter is not for general consumption, but must be placed in the public interface since it is used by other public objects. See QSE_TKR_TWRMAP.


Typedef Documentation

QSE_tkr
 

Typedef for struct _QSE_tkr.

Contains summary information about the tracker plus a bit map of the struck towers and an array of QSE_tkrTwr structures which describe the action in that tower. Typical usage would be
       int twrMap = tkr->map;

       while (map)
       {
          twrNum = QSE_mapScanf  (twrMap);
          twrMap = QSE_mapRemove (twrMap, twrNum);

          do_something (tkr->twrs + twrNum,....);
       }

Warning:
Since this record includes enough storage to accommodate a maximally sized record, this record is rather hefty, at 150Kbytes. The bulk of this comes from holding the maximal number of strips that can be produced. That would be 64 strips/layer end * 72 layer ends/tower * 16 towers = 73,728 strips * 2 bytes per strip = 147,456,912 bytes. Because no more than 128 hits can be read from a cable controller, this is way overkill. However, there was no single pass unpacking algorithm that could make use of this feature.

QSE_tkrLyr
 

Typedef for struct _QSE_tkrLyr.

This structure captures information about the hit strips in a layer. In a concession to efficiency, the map (actually a bit list) represents the list of unused hits. Technically, one should not mix up the information about the hits in a layer, which really should be read-only after it is initially filled, with the dynamics of pattern recognition.

Note also that this structure is laid out to occupy 4 32 words. This allows one to randomly access the layers in a tower using a shift instead of a multiple.

QSE_tkrTwr
 

Typedef for struct _QSE_tkrTwr.

This record contains information needed to access the tracker information for this tower. Some of this information refers back. The most common usage would be to use lyrMaps, which give a bit list of the struck layers to iterate through the QSE_tkrLyrs.
       int xMap = twr->lyrMaps[0]
       while (xMap)
       {
          int              xNum;
          cosnt QSE_tkrLyr *lyr;

          xNum = QSE_mapScanF (xMap);
          xMap = QSE_mapRemove(xMap, xNum);

          lyr  = twr->lyrs + xNum;
          do_something (lyr,...)
        }


Generated on Thu Dec 7 03:56:12 2006 by  doxygen 1.4.4