GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> QSEP / V3-4-1 > qsep_print / rhel6-32


Interface   Data Structures   File List   Data Fields   Globals  

QSEP_ctx.h File Reference

Public, application specific context for the physics data. More...


Classes

struct  _QSEP_ctxKeysFilter
 The file keys associated with one filter. More...
struct  _QSEP_ctxKeys
 The list of the global indirect file keys. More...
struct  _QSEP_ctxEds
 The Event Delivery System configuration. More...
struct  _QSEP_rsdDsc
 Describes one event handler's result summary data. More...
struct  _QSEP_ctxRsd
 The control structure/context for the event filter's result summary data. More...
struct  _QSEP_ctx
 Defines the physics application specific context. More...

Typedefs

typedef struct _QSEP_ctxKeysFilter QSEP_ctxKeysFilter
 Typedef for struct )QSEP_ctxKeysFilter.
typedef struct _QSEP_ctxKeys QSEP_ctxKeys
 Typedef for struct _QSEP_ctxKeys.
typedef struct _QSEP_ctxEds QSEP_ctxEds
 Typedef for struct _QSEP_ctxEds.
typedef enum _QSEP_RSDSTATE_V QSEP_RSDSTATE_V
 Typedef for enum _QSEP_RSDSTATE_V.
typedef enum _QSEP_RSDSTATE_M QSEP_RSDSTATE_M
 Typedef for enum _QSEP_RSDSTATE_M.
typedef enum _QSEP_RSDSTATE_K QSEP_RSDSTATE_K
 Typedef for QSEP_RSDSTATE_K.
typedef struct _QSEP_rsdDsc QSEP_rsdDsc
 Typedef for struct _QSEP_rsdDsc.
typedef struct _QSEP_ctxRsd QSEP_ctxRsd
 Typedef for struct _QSEP_ctxRsd.
typedef struct _QSEP_ctx QSEP_ctx
 Typedef for struct _QSEP_ctx.

Enumerations

enum  _QSEP_RSDSTATE_V {
  QSEP_RSDSTATE_V_OVERRIDE = 0,
  QSEP_RSDSTATE_V_VETO = 1,
  QSEP_RSDSTATE_V_IGNORE = 2
}
 Bit mappings of the RSD state variable, right shift offset. More...
enum  _QSEP_RSDSTATE_M {
  QSEP_RSDSTATE_M_OVERRIDE = 1 << QSEP_RSDSTATE_V_OVERRIDE,
  QSEP_RSDSTATE_M_VETO = 1 << QSEP_RSDSTATE_V_VETO,
  QSEP_RSDSTATE_M_IGNORE = 1 << QSEP_RSDSTATE_V_IGNORE
}
 Bit mappings of the RSD state variable, in place mask. More...
enum  _QSEP_RSDSTATE_K {
  QSEP_RSDSTATE_K_INVALID = -1,
  QSEP_RSDSTATE_K_PASSED = 0,
  QSEP_RSDSTATE_K_SUPPRESSED = 1,
  QSEP_RSDSTATE_K_VETOED = 2,
  QSEP_RSDSTATE_K_LEAKED = 3,
  QSEP_RSDSTATE_K_IGNORED = 4,
  QSEP_RSDSTATE_K_MIN = -1,
  QSEP_RSDSTATE_K_MAX = 4,
  QSEP_RSDSTATE_K_CNT
}
 The handler's result state. More...

Functions

const char * QSEP_ctxFilenameSbs (const QSEP_ctx *ctx)
const char * QSEP_ctxFilenameLatc (const QSEP_ctx *ctx)
const char * QSEP_ctxFilenameLpa (const QSEP_ctx *ctx)
const char * QSEP_ctxFilenameMaster (const QSEP_ctx *ctx, int hid)
const char * QSEP_ctxFilenameCfg (const QSEP_ctx *ctx, int hid)
int QSEP_ctxVersionMaster (const QSEP_ctx *ctx, int hid)
int QSEP_ctxVersionCfg (const QSEP_ctx *ctx, int hid)


Detailed Description

Public, application specific context for the physics data.

Author:
JJRussell - russell@slac.stanford.edu

   CVS $Id: QSEP_ctx.h,v 1.7 2009/05/01 02:17:17 russell Exp $

This is the public, application specific context for the physics data It contains four major blocks of information
  1. Global file keys
  2. The configuration of each filter
  3. The event filter's result summary data

I have tried to be very careful in my use of the terms handler monitor and filter.

The concept of a handler is only interesting by virtue of the fact that there is a global naming (numbering) space (0-31) from which both filter's and monitor's are named (numbered). Therefore all arrays are numbered according to the maximum number of handlers. In any given system, from QSEP's perspective, some elements of this array will never be populated because they correspond to monitors.

Typedef Documentation

Typedef for struct _QSEP_ctxEds.

This enumerates the current configuration of the physics event handlers. Each valid configuration is expressed as a value between 0-31. Invalid configurations are denoted by a bit mask (packed big-endian style, i.e. bit 0 is the most significant bit, listing the valid entries.
The path to the actual configurations is
         <lpa_db-file>.<handler-priority>.<configuration-index>
   

where

  1. lpa_db-file is the resulted LPA_DB key from QSEP_ctxKeys
  2. handler-priority is the the priority of the handler from the list of handlers in lpa_db-file
  3. configuration-index is the array index of the configuration for the specified handler

Note that this information is only a path name to the actual configuration. Resolution of this path name is outside the scope of the QSEP facility. Also note the handler-priority, while representing a convenient value to index the array, is almost meaningless to the average consumer. To that end, the QSEP translation services will translate this physical index into a logical name, where the logical name is, for example, something like this is the Standard Gamma Filter or this is the CNO Filter, etc.

Typedef for struct _QSEP_ctxKeys.

The first three keys, the software, hardware and lpa_db keys are always valid. The filter keys are valid if and only if that filter is active. While all invalid keys have a well-defined value (0), to aid in traversing the set of valid keys, a 32-bit validity mask, with the MSB corresponding to filter 0, is provided. Note that while the master key for all valid filter's will be valid, it is possible that the filter is not configurable and, therefore, its configuration key may be invalid.

Typedef for struct _QSEP_ctxRsd.

The result summary data for each filter consists of two pieces of information

  1. A mandatory state byte. This is describes the filter's disposition of the event, for example, PASSED the event, REJECTED the event, etc. The complete list of valid states is given by the enumeration QSEP_RSDSTATE_K.

  1. A configurable, hopefully small, block of data summarizing the filter's internal actions. The meaning of this data is filter specific.

This information is captured in this structure with an array of 32 descriptors, one for each the maximal 32 possible filters. The descripotrs are index by the filter's identifier. The validity of each piece of the two pieces of information is captured by two 32-bit lists

  1. The state_list has a bit set for each filter that was active, and therefore capable of contributing events to the current datagram, will always have a valid state value. Since the set of filters is constant for all events in a datagram, this value can only change between datagrams and if and only if either a new run is started or a mode change occurs.

  1. The rsd_list has a bit set for each filter that was contributed result summary data. In contrast to the state_list, this list is not fixed within a datagram. It is possible, that on an event-by-event basis, a filter can decide to contribute or not contribute result summary data. In one case, when the filter's resultant state is IGNORED, meaning that the filter has an input prescaler which blocked the event from being analyzed by the filter, the filter is incapable of producing any result summary data.

Typedef for struct _QSEP_rsdDsc.

A result summary data descriptor contains two usual pieces of information,
  • the length, in bytes, of the result summary data and
  • a pointer to that information.
The ID field
Since the information content of a result summary data depends entirely on the handler that produced it, it is crucial that this piece of information is associated with the result summary data. One needs to be able to translate the physical handler id to something that logically identifies the handler that produced it. This is the functionality provided by the QSEP translate services, whereby one can provide a physical id and have it translated to a logical handler (or, also, the other way around).


Enumeration Type Documentation

The handler's result state.

Enumerator:
QSEP_RSDSTATE_K_INVALID  Invalid state
QSEP_RSDSTATE_K_PASSED  Event was passed by the filter
QSEP_RSDSTATE_K_SUPPRESSED  Event was passed by the filter but suppressed by the output prescaler
QSEP_RSDSTATE_K_VETOED  Event was vetoed by the filter
QSEP_RSDSTATE_K_LEAKED  Event was vetoed by the filter by leaked by the output prescaler
QSEP_RSDSTATE_K_IGNORED  Event was ignored due input prescaler
QSEP_RSDSTATE_K_MIN  Minimum numerical value of any RSD state
QSEP_RSDSTATE_K_MAX  Maximum numerical value of any RSD state
QSEP_RSDSTATE_K_CNT  Count of the number of QSEP RSD states

Bit mappings of the RSD state variable, in place mask.

Enumerator:
QSEP_RSDSTATE_M_OVERRIDE  Output prescaler overrode the filters veto/pass decision
QSEP_RSDSTATE_M_VETO  Filter vetoed (rejected) the event
QSEP_RSDSTATE_M_IGNORE  Filter ignored the event due to input prescaling

Bit mappings of the RSD state variable, right shift offset.

Enumerator:
QSEP_RSDSTATE_V_OVERRIDE  Output prescaler overrode the filters veto/pass decision
QSEP_RSDSTATE_V_VETO  Filter vetoed (rejected) the event
QSEP_RSDSTATE_V_IGNORE  Filter ignored the event due to input prescaling


Generated on Tue Nov 29 17:19:53 2011 by  doxygen 1.5.8