GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> LSE / V2-0-1 > lsew / linux-gcc
#include "LSE/CDF_tkr.h"
#include "LSE/CDF_tkrdef.h"
#include "LSE/LFR_key.h"
#include "LSE/LSE_cdm.h"
#include "CDF_tkr_def.h"
#include "EDS/EDR_tkr.h"
#include "EDS/FFS.h"
#include "TCC_DB/TCC_DB_schema.h"
#include "CDM/CDM_pubdefs.h"
#include "dprintf.h"
#include <string.h>
Defines | |
#define | print_splits(_twr, _lyr, _lo, _hi) |
#define | print_invalid_strip(twr, lyr, ixy) |
#define | print_twr_lyr_hdr() |
#define | print_twr_lyr(twr, lyr, ixy, err) |
#define | print_lo_check(strip, err) |
#define | print_hi_check(strip, cnt, err) |
#define | print_newline() |
Functions | |
static __inline void | splits_default_construct (CDF_tkr_splits *splits) |
Initializes the track split points to their default values. | |
static __inline int | splits_construct (CDF_tkr_splits *splits, const TCC_DB_schema *schema) |
Constructs the Tracker Split Point database. | |
static __inline int | lyrs_check (const CDF_tkr_splits_layer *splits, int itwr, int ixy, const EDR_tkrLayer *lyrs, unsigned int lyrMap) |
Checks that the split points for the active X or Y layer are consistent with the configuration. | |
static int | fill_splits (CDF_tkr_splits *splits, int twr, int lyr, int lo, int hi) |
The TCC_DB_fill_splits call back routine. This fills the split points in terms of the strip addresses. | |
int | CDF_tkrCfg_sizeof (int level) |
Returns the size, in bytes of the TKR compression configuration needed to support the specified level. | |
int | CDF_tkrCfg_construct (CDF_tkrCfg *cfg, int level, void **mem) |
Constructs the CDF_tkr compression configuration. | |
int | CDF_tkr_sizeof (int level, const CDF_tkrCfg *cfg) |
Returns the size, in bytes of the CAL compression structure needed to support the specified level. | |
int | CDF_tkr_construct (CDF_tkr *cdf, int level, const CDF_tkrCfg *cfg, const LSEW_dgmFw *dgmFw, void **mem) |
Constructs the CDF_cal compression context. | |
void | CDF_tkr_begin (CDF_tkr *cdf, CDF_tkrBdy *bdy) |
Fills int the TKR portion of the datagram contribution used in when decoding an TKR event. | |
int | CDF_tkr_check (CDF_tkr *cdf, const EDR_tkr *tkr) |
Checks that the splits points of all struck layers are consistent with the configuration. |
CVS $Id: CDF_tkr.c,v 1.3 2009/04/30 18:44:52 russell Exp $
void CDF_tkr_begin | ( | CDF_tkr * | cdf, | |
CDF_tkrBdy * | bdy | |||
) |
Fills int the TKR portion of the datagram contribution used in when decoding an TKR event.
cdf | The CDF_tkr compress context structure | |
bdy | The CDF_acdBdy structure to fill |
int CDF_tkr_check | ( | CDF_tkr * | cdf, | |
const EDR_tkr * | tkr | |||
) |
Checks that the splits points of all struck layers are consistent with the configuration.
==0 | if successful | |
< | 0 serious structural problems | |
> | 0 a bit mask (low 16 bits) of the towers that can not be compressed. |
cdf | The CDF_cal compress context structure | |
tkr | The unpacked tracker record |
int CDF_tkr_construct | ( | CDF_tkr * | cdf, | |
int | level, | |||
const CDF_tkrCfg * | cfg, | |||
const LSEW_dgmFw * | dgmFw, | |||
void ** | mem | |||
) |
Constructs the CDF_cal compression context.
Status |
cdf | The CDF_cal compress context structure to fill | |
level | The maximum compression level that needs to be supported | |
cfg | Target specific configuration parameter | |
dgmFw | The datagram framework handle | |
mem | Pointer to free memory pointer, return as the the updated pointer. If cdf is equal to the current contents of mem, then mem will be advanced by the size of CDF_tkr, else this routine will believe that the only the variable allocation of cdf needs to be allocated. |
int CDF_tkr_sizeof | ( | int | level, | |
const CDF_tkrCfg * | cfg | |||
) |
Returns the size, in bytes of the CAL compression structure needed to support the specified level.
level | The maximum compression level to support | |
cfg | Target specific configuration |
int CDF_tkrCfg_construct | ( | CDF_tkrCfg * | cfg, | |
int | level, | |||
void ** | mem | |||
) |
Constructs the CDF_tkr compression configuration.
Status |
cfg | Target specific configuration | |
level | The maximum compression level that needs to be supported | |
mem | Pointer to free memory pointer, return as the the updated pointer. If cfg is equal to the current contents of mem, then mem will be advanced by the size of CDF_tkrCfg, else this routine will believe that the only the variable allocation of cdf needs to be allocated. |
int CDF_tkrCfg_sizeof | ( | int | level | ) |
Returns the size, in bytes of the TKR compression configuration needed to support the specified level.
level | The maximum compression level to support |
static int fill_splits | ( | CDF_tkr_splits * | splits, | |
int | twr, | |||
int | lyr, | |||
int | lo, | |||
int | hi | |||
) | [static] |
The TCC_DB_fill_splits call back routine. This fills the split points in terms of the strip addresses.
splits | The split point limit structure to be filled in | |
twr | The target tower number, 0-15 | |
lyr | The targer layer number, 0-35
| |
lo | The number of GTFEs servicing the low side readout | |
hi | The number of GTFEs servicing the high side readout |
static __inline int lyrs_check | ( | const CDF_tkr_splits_layer * | splits, | |
int | itwr, | |||
int | ixy, | |||
const EDR_tkrLayer * | lyrs, | |||
unsigned int | lyrMap | |||
) | [static] |
Checks that the split points for the active X or Y layer are consistent with the configuration.
== | -1, Serious structural error | |
> | 0, Tower has structural problems that prevent it from being compressed. The value returned is the tower bit mask in the low 16 bits. The calling routine can thus accumulate a list of such towers. | |
== | 0, Tower is okay |
splits | The split points (in terms of strip numbers) for each layer in the tower | |
itwr | The tower number | |
ixy | Layer base, if ixy=0, then x layers, else y layers | |
lyrs | The unpacked data for this tower | |
lyrMap | The map of layers with data. |
static int splits_construct | ( | CDF_tkr_splits * | splits, | |
const TCC_DB_schema * | schema | |||
) | [static] |
Constructs the Tracker Split Point database.
splits | The Tracker Split Point database to fill | |
schema | The Tracker Configuration database |
static __inline void splits_default_construct | ( | CDF_tkr_splits * | splits | ) | [static] |
Initializes the track split points to their default values.
splits | The TKR split point limits structure to initialize |