GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> GRBP / dev > grbpepu / linux-gcc


Interface   Data Structures   File List   Data Fields   Globals  

GRBP_server.c File Reference

The server (EPU) side of the GRB algorithm. More...

#include <GRBP/GRBP_server.h>
#include <GRBP_msgdef.h>
#include <GRBP_prjsDef.h>
#include <GRBP_math.h>
#include <GRB/GRB_epu.h>
#include <EFC/TFC_prjDef.h>
#include <EFC/TFC_geometry.h>
#include <EDS/EBF_mc.h>
#include <EDS/EDS_fw.h>
#include <EDS/EBF_dir.h>
#include <EDS/EBF_cid.h>
#include <EDS/EDR_cal.h>
#include <EDS/EDR_tkr.h>
#include <EDS/EDR_tkrUnpack.h>
#include <EDS/EBF_gem.h>
#include <EDS/EBF_gemLocate.h>
#include <EFC/TFC_tolerances.h>
#include <EFC/TFC_prjFind.h>
#include <EFC/EFC_edsFw.h>
#include <EFC/EDM.h>
#include <GEO_DB/GEO_DB_schema.h>
#include <GEO_DB/TFC_DB_geometry.h>
#include <CDM/CDM_pubdefs.h>
#include <PBI/FFS.ih>
#include <stdlib.h>

Classes

struct  _GRBP_server
 The server context. More...

Typedefs

typedef struct _GRBP_server GRBP_server

Functions

static int grb_process (GRBP_server *server, EDS_fwIxb *ixb, GRB_msgHdr *msg, int len32)
 This is the client side GRBP processing routine. It's job is to decide whether this event should be nominated as a GRB candidate and, if so, to package its parameters for the client side to analyze.
static void __inline prjList_init (TFC_prjList lists[2][16])
 Initialize the by-layer linked list. Note that the 16 is NOT the number of towers, but is the number of layers that can be considered either the beginning or ending of a track. Since tracks must have at least two layers, this is 18 - 2.
static unsigned int projections_classify (GRBP_server *server, TFC_prjs *projections, EBF_dir *dir, EDR_tkr *tkr)
static __inline int dcos_prepare (const TFC_prj *prjs[2], int cnt, unsigned int scale)
static __inline int get_event_energy (const EDS_fwIxb *ixb)
static __inline unsigned long
long int 
get_event_time (const EBF_gem *gem)
 Gets the absolute (WCT) time of the event.
int GRBP_serverSizeof (const GRBP_DB_serverSchema *cfg)
 Returns the size, in bytes, needed for the specified server configuration.
const GRB_epuServices * GRBP_serverServicesGet (GRBP_server *server, const GRBP_DB_serverSchema *cfg)
 Standard GRB algorithm construct service.


Detailed Description

The server (EPU) side of the GRB algorithm.

Author:
JJRussell - russell@slac.stanford.edu

   CVS $Id: GRBP_server.c,v 1.3 2011/03/30 22:11:51 russell Exp $

Function Documentation

static unsigned long long int get_event_time ( const EBF_gem *  gem  )  [static]

Gets the absolute (WCT) time of the event.

Returns:
The absolute time of the event
Parameters:
gem The GEM contribution for this event

Referenced by grb_process().

static int grb_process ( GRBP_server server,
EDS_fwIxb *  ixb,
GRB_msgHdr *  msg_hdr,
int  len32 
) [static]

This is the client side GRBP processing routine. It's job is to decide whether this event should be nominated as a GRB candidate and, if so, to package its parameters for the client side to analyze.

Return values:
< 0, the message will not fit. The caller is expected to recall this routine with enough memory (the absolute value of this return value is number of 32-bit words needed.
> 0, the number of 32-bit words committed to the message
==0,event is not a candidate.
Parameters:
server The server handle
ixb The information exchange block for the event
msg_hdr Pointer to the header of the message to be filled out. It is assumed that the memory for the processing specific part of the message (here GRBP_msgBdy) immediately follows this header
len32 The number of 32-bit words available for the message
This is exported only via the GRBP_serverServicesGet routine. It is called back once per event.

References _GRBP_prjs::cnt, _GRBP_server::dxy_scale, _GRBP_server::dz_scale, get_event_time(), GRBP__msgCompose(), GRBP_prjsSelect(), and _GRBP_server::message_level.

Referenced by GRBP_serverServicesGet().

const GRB_epuServices* GRBP_serverServicesGet ( GRBP_server server,
const GRBP_DB_serverSchema *  cfg 
)

Standard GRB algorithm construct service.

Returns:
The EPU service vector

References _GRBP_server::dxy_scale, _GRBP_server::dz_scale, grb_process(), _GRBP_server::message_level, and _GRBP_server::strip_pitch.

int GRBP_serverSizeof ( const GRBP_DB_serverSchema *  cfg  ) 

Returns the size, in bytes, needed for the specified server configuration.

Returns:
The size, in bytes, needed for the specified server configuration
Parameters:
cfg The server configuration

static void __inline prjList_init ( TFC_prjList  lists[2][16]  )  [static]

Initialize the by-layer linked list. Note that the 16 is NOT the number of towers, but is the number of layers that can be considered either the beginning or ending of a track. Since tracks must have at least two layers, this is 18 - 2.

Parameters:
lists The X/Y lists


Generated on Wed Sep 28 10:04:07 2011 by  doxygen 1.5.8