GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > LSE / V1-3-6
Constituent: lsew     Tag: rad750
#include "LSE/CDF_tkr_std.h"
#include "CDF_tkr_def.h"
#include "LDT/BFP.h"
#include "LDT/BWP.h"
#include "LDT/BW.h"
#include "EDS/EDR_tkr.h"
#include "EDS/FFS.h"
#include "LDT/BTE.h"
#include "LDT/HUFF.h"
#include "LSE/cdf_buf_print.h"
#include <string.h>
Include dependency graph for CDF_tkr_std.c:
Data Structures | |
struct | _TowerMaps |
Captures the map of the tower classification and the XY layers for all 16 towers. More... | |
struct | _TotsRep |
The tots represented as a count of the significant bits + the significant bits. More... | |
struct | _TotsRet |
Return value from the tots_acquire, captures the next write location plus a bit mask of those TOTs having each particular value of the number of significant digits. More... | |
struct | _LayerCntsStatus |
Captures the result of the layer counts assessment. More... | |
struct | _CDF_tkr_twr_sum_blk_f |
union | _CDF_tkr_twr_sum_blk |
Defines | |
#define | _mon cdf_tkr_std_mon |
Typedefs | |
typedef _TowerMaps | TowerMaps |
Typedef for struct _TowerMaps. | |
typedef _TotsRep | TotsRep |
Typedef for struct _TotsRep. | |
typedef _TotsRet | TotsRet |
Typedef for struct _TotsRet. | |
typedef _LayerCntsStatus | LayerCntsStatus |
Typedef for struct _LayerCntsStatus. | |
typedef _CDF_tkr_twr_sum_blk_f | CDF_tkr_twr_sum_blk_f |
typedef _CDF_tkr_twr_sum_blk | CDF_tkr_twr_sum_blk |
Functions | |
static BW_vector | tree18_encode (unsigned int w) |
Does a binary-like tree encode of an 18-bit number. | |
static __inline int | layer_map_pack (CDF_tkr *tkr, unsigned int *buf, unsigned int pos, unsigned int map) |
Packs the specified layer map. | |
static TotsRet | tots_acquire (CDF_tkr *tkr, TotsRep *tots, unsigned int present, unsigned int hist[8], const EDR_tkrLayer *lyrs, unsigned int layerMap) |
Packs the TOTs for the specified layers. | |
static __inline int | tots_huff_build (HUFF_code *codes, const unsigned int *hist, int *size, int *validMask) |
static __inline unsigned int | tots_huff_pack (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, unsigned int mask, const HUFF_code *codes, int ncodes) |
Encodes the Huffman table used to encode the TOT exponents. | |
static __inline unsigned int | tots_expman_pack (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, TotsRep *tots, int ntots, const HUFF_code *codes) |
Compresses what is essentially the exponent map of the TOTs. | |
static __inline unsigned int | tots_copy (unsigned int *buf, unsigned int pos, const TotsRep *tots, int ntots) |
Packs the TOT values using a straight copy. | |
static __inline unsigned int | tots_pack (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, const EDR_tkrTower *twrs, unsigned int twrMap) |
Driver routine to pack the strips from each non-empty layer. | |
static __inline unsigned int | layer_maps_pack (CDF_tkr *cdf, unsigned int *buf, int position, const EDR_tkrTower *twrs, unsigned int twrMap) |
Driver routine to pack the layer masks. | |
static __inline int | layer_cnts_assess (LayerCntsStatus *lcs, const EDR_tkrTower *twrs, unsigned int twrMap, unsigned int classMap) |
Gathers and asseses the information about how to encode the number of hit strips in each layer. | |
static __inline unsigned int | layer_cnts_pack_cmaps (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, const LayerCntsStatus *lcs) |
Packs the count maps for the active layers. | |
static __inline unsigned int | layer_cnts_pack_cnts (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, const LayerCntsStatus *lcs, int style) |
Packs the strip counts for each active layer. | |
static __inline unsigned int | find_next_strip (unsigned int map, int xy, const unsigned int *maps, unsigned int twrMap, const EDR_tkrTower *twrs, const EDR_tkrLayer *lyrs) |
Effectively does a look-ahead to find the next hit strip. If there is none, -1 is returned. | |
static __inline unsigned int | layer_cnts_pack (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, const EDR_tkrTower *twrs, unsigned int twrMap, unsigned int classMap) |
Driver routine to pack the layer masks. | |
static __inline unsigned int | strips_pack_lyrs (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, int class, const EDR_tkrLayer *lyrs, unsigned int map, unsigned char *cmax) |
Packs the beginning strip number for each cluster. | |
static __inline int | strips_pack_twrs (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, const EDR_tkrTower *twrs, unsigned int twrMap, unsigned int classMap, unsigned char cmax[17]) |
Driver routine to pack the strips from each non-empty layer. | |
static __inline unsigned int | clusters_pack_lyrs (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, const EDR_tkrLayer *lyrs, unsigned int map, int class, int nbits) |
Packs the cluster width for each cluster. | |
static __inline int | clusters_pack_twrs (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, const EDR_tkrTower *twrs, unsigned int twrMap, unsigned int classMap, const unsigned char cmax[17]) |
Driver routine to pack the cluster widths from each non-empty layer. | |
static __inline unsigned int | layer_map_size (CDF_tkr *cdf, const EDR_tkrTower *twr) |
Computes the number of bits to encode the layer maps from the specified tower,. | |
static __inline unsigned long long int | tower_analyze (CDF_tkr *cdf, const EDR_tkrTower *twr, CDF_tkr_std_mon_twr *mtwr) |
Analyzes all struck layers indicated by the layer map. | |
static __inline unsigned char | tower_classify (CDF_tkr *cdf, CDF_tkr_std_mon_twr *mtwr, unsigned long long int tsb_ull) |
static BW_vector | towers_classify (CDF_tkr *cdf, const EDR_tkrTower *twrs, unsigned int twrMap) |
Picks the optimal encoding method for all towers. | |
unsigned int | CDF_tkr_std_compress (CDF_tkr *cdf, unsigned int *buf, unsigned int pos, const EDR_tkr *tkr) |
Adds the TKR record. | |
void | CDF_tkr_std_mon_print (const CDF_tkr_std_mon *mon) |
CVS $Id: CDF_tkr_std.c,v 1.3 2007/02/14 04:25:10 russell Exp $
|
Typedef for struct _LayerCntsStatus. The cmaps array is dense in the active layers, while the cnts array is dense in layers that have counts associated with them |
|
Typedef for struct _TotsRet. The pointer to the next TOTs location to write is absolutely necessary. The present mask is an optimization to avoid scanning NS values that are not populated. Perhaps even better would be a histogram of the values, That way the scan loop could abort when the number reached 0. We will try this simple approach until it is found that something more sophisiticated is warranted. |
|
Typedef for struct _TowerMaps. Each map contains 2 bits of information per tower. For the layer maps the 2 bits represent whether the X and/or Y layers have any hits. The order is X0 = Bit 0 (MSb) Y0 = bit 1, X1 = bit2, etc For the class maps, the two bits give the tower encoding scheme to use. The order is Tower 0 class = Bits 0,1 (MSb = bit 0), Tower 1 class = Bits 2,3 etc. |
|
Adds the TKR record.
|
|
Packs the cluster width for each cluster.
|
|
Driver routine to pack the cluster widths from each non-empty layer.
|
|
Effectively does a look-ahead to find the next hit strip. If there is none, -1 is returned.
|
|
Gathers and asseses the information about how to encode the number of hit strips in each layer.
|
|
Driver routine to pack the layer masks.
|
|
Packs the count maps for the active layers.
|
|
Packs the strip counts for each active layer.
|
|
Packs the specified layer map.
|
|
Computes the number of bits to encode the layer maps from the specified tower,.
|
|
Driver routine to pack the layer masks.
|
|
Packs the beginning strip number for each cluster.
|
|
Driver routine to pack the strips from each non-empty layer.
|
|
Packs the TOTs for the specified layers.
|
|
Packs the TOT values using a straight copy.
|
|
Compresses what is essentially the exponent map of the TOTs.
|
|
Encodes the Huffman table used to encode the TOT exponents.
|
|
Driver routine to pack the strips from each non-empty layer. if (ntots < 4) goto COPY; |
|
Analyzes all struck layers indicated by the layer map.
|
|
Picks the optimal encoding method for all towers.
|
|
Does a binary-like tree encode of an 18-bit number.
|