GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > GRBP_DB / V0-4-2

Constituent: grbp_db_siu_passthru     Tag: mv2304


Interface   Data Structures   File List   Data Fields   Globals  

GRBP_DB_clientMacros.h File Reference

Macros to allow one to configure the client side of the GRB detection algorithm. These macros are meant to shield the user from the details of C syntax and the structure layout. More...

#include "GRBP_DB/GRBP_DB_clientSchema.h"
#include "GRBP_DB/GRBP_DB_windowList.h"
#include "GRBP_DB/GRBP_DB_window.h"
#include "GRBP_DB/GRBP_DB_messageSchedule.h"
#include "GRBP_DB/GRBP_DB_locationSchedule.h"

Include dependency graph for GRBP_DB_clientMacros.h:

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


Defines

#define M_PI   3.14159265358979323846
#define GRBP_DB_WINDOWS   GrbpDbWindows_ ## INSTANCE
#define GRBP_DB_CLIENT_DATA   GrbpDbClient_ ## INSTANCE
 The data for this GRBP client.
#define LAT   _GRBP_DB_WINDOW_TYPE_K_LAT
#define GBM   _GRBP_DB_WINDOW_TYPE_K_GBM
 A LAT type window. A GBM type window.
#define WINDOW_0_TIER1_NMOVE   0
#define WINDOW_0_TIER1_NWINDOW   0
#define WINDOW_0_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_0_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_1_TIER1_NMOVE   0
#define WINDOW_1_TIER1_NWINDOW   0
#define WINDOW_1_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_1_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_2_TIER1_NMOVE   0
#define WINDOW_2_TIER1_NWINDOW   0
#define WINDOW_2_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_2_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_3_TIER1_NMOVE   0
#define WINDOW_3_TIER1_NWINDOW   0
#define WINDOW_3_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_3_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_4_TIER1_NMOVE   0
#define WINDOW_4_TIER1_NWINDOW   0
#define WINDOW_4_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_4_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_5_TIER1_NMOVE   0
#define WINDOW_5_TIER1_NWINDOW   0
#define WINDOW_5_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_5_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_6_TIER1_NMOVE   0
#define WINDOW_6_TIER1_NWINDOW   0
#define WINDOW_6_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_6_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_7_TIER1_NMOVE   0
#define WINDOW_7_TIER1_NWINDOW   0
#define WINDOW_7_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_7_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_8_TIER1_NMOVE   0
#define WINDOW_8_TIER1_NWINDOW   0
#define WINDOW_8_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_8_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_9_TIER1_NMOVE   0
#define WINDOW_9_TIER1_NWINDOW   0
#define WINDOW_9_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_9_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_10_TIER1_NMOVE   0
#define WINDOW_10_TIER1_NWINDOW   0
#define WINDOW_10_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_10_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_11_TIER1_NMOVE   0
#define WINDOW_11_TIER1_NWINDOW   0
#define WINDOW_11_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_11_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_12_TIER1_NMOVE   0
#define WINDOW_12_TIER1_NWINDOW   0
#define WINDOW_12_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_12_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_13_TIER1_NMOVE   0
#define WINDOW_13_TIER1_NWINDOW   0
#define WINDOW_13_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_13_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_14_TIER1_NMOVE   0
#define WINDOW_14_TIER1_NWINDOW   0
#define WINDOW_14_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_14_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_15_TIER1_NMOVE   0
#define WINDOW_15_TIER1_NWINDOW   0
#define WINDOW_15_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_15_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_16_TIER1_NMOVE   0
#define WINDOW_16_TIER1_NWINDOW   0
#define WINDOW_16_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_16_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_17_TIER1_NMOVE   0
#define WINDOW_17_TIER1_NWINDOW   0
#define WINDOW_17_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_17_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_18_TIER1_NMOVE   0
#define WINDOW_18_TIER1_NWINDOW   0
#define WINDOW_18_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_18_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_19_TIER1_NMOVE   0
#define WINDOW_19_TIER1_NWINDOW   0
#define WINDOW_19_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_19_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_20_TIER1_NMOVE   0
#define WINDOW_20_TIER1_NWINDOW   0
#define WINDOW_20_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_20_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_21_TIER1_NMOVE   0
#define WINDOW_21_TIER1_NWINDOW   0
#define WINDOW_21_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_21_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_22_TIER1_NMOVE   0
#define WINDOW_22_TIER1_NWINDOW   0
#define WINDOW_22_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_22_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_23_TIER1_NMOVE   0
#define WINDOW_23_TIER1_NWINDOW   0
#define WINDOW_23_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_23_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_24_TIER1_NMOVE   0
#define WINDOW_24_TIER1_NWINDOW   0
#define WINDOW_24_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_24_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_25_TIER1_NMOVE   0
#define WINDOW_25_TIER1_NWINDOW   0
#define WINDOW_25_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_25_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_26_TIER1_NMOVE   0
#define WINDOW_26_TIER1_NWINDOW   0
#define WINDOW_26_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_26_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_27_TIER1_NMOVE   0
#define WINDOW_27_TIER1_NWINDOW   0
#define WINDOW_27_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_27_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_28_TIER1_NMOVE   0
#define WINDOW_28_TIER1_NWINDOW   0
#define WINDOW_28_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_28_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_29_TIER1_NMOVE   0
#define WINDOW_29_TIER1_NWINDOW   0
#define WINDOW_29_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_29_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_30_TIER1_NMOVE   0
#define WINDOW_30_TIER1_NWINDOW   0
#define WINDOW_30_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_30_TIER1_CLUSTER_THRESHOLD   0
#define WINDOW_31_TIER1_NMOVE   0
#define WINDOW_31_TIER1_NWINDOW   0
#define WINDOW_31_TIER1_TEMPORAL_CONTRAST   0
#define WINDOW_31_TIER1_CLUSTER_THRESHOLD   0
#define MESSAGE_SCHEDULE_CONFIRM(_count, _duration)   { _count, _duration }
 Construct the data statement used to initialize the scheduling parameters for GRB confirmed message.
#define MESSAGE_SCHEDULE_UPDATE(_time)   { _time }
 Construct the data statement used to initialize the scheduling parameters for a single GRB update message.
#define MESSAGE_SCHEDULE_UPDATE_LIST(_data)   { sizeof (_data) / sizeof(*_data), _data }
 Constructs the data statement used to initialize the update scheduling list.
#define MESSAGE_SCHEDULE_CLOSEOUT(_time)   { _time }
 Construct the data statement used to initialize the scheduling parameters for GRB closeout message.
#define MESSAGE_SCHEDULE_DATA(_id)
 Constructs the static data structure for an instance of the schduling parameters.
#define MESSAGE_SCHEDULE(_id)   &GRBP_DB_messageSchedule_ ## _id
 Returns an expression that can be used as reference to the specified scheduling structure.
#define LOCATION_SCHEDULE_UPDATE(_count, _repeat)   { _count, _repeat }
 Construct the data statement used to initialize the scheduling parameters for a location update.
#define LOCATION_SCHEDULE_DATA(_id)
 Constructs the static data structure for an instance of the schduling parameters.
#define LOCATION_SCHEDULE(_id)   &GRBP_DB_locationSchedule_ ## _id
 Returns an expression that can be used as reference to the specified scheduling structure.
#define STANDARD_HEADER   { GRBP_DB_CLIENT_SIZEOF, GRBP_DB_CLIENT_SERVICESGET }
 Defines the standard header for all client (SIU) side schemas.
#define RADIANS(_degrees)   ((_degrees) * (M_PI/180))
 Simply macro to convert degrees to radians.
#define GBM_CFG
 Defines the data block for configuring the GBM message handling.
#define PROBABILITY_CFG
 Defines the data block for configuring the probability constants.
#define CACHE_CFG
 Defines the data block for configuring the input photon cache.
#define WINDOWLIST_CFG   {0, 0}
#define GRB_GAMMA_LIST_SIZE   0
#define GRB_SKEW_RA_ARCMINS   0
#define GRB_SKEW_DEC_ARCMINS   0
#define GBM_LATENCY_SECONDS   0
#define GRB_CFG
 The GRB configuration parameters.

Typedefs

typedef enum _GRBP_DB_WINDOW_STATE GRBP_DB_WINDOW_STATE
 Typedef for enum _GRBP_DB_WINDOW_STATE.

Enumerations

enum  _GRBP_DB_WINDOW_STATE {
  DISABLED = 0,
  ENABLED = 1
}
 Enumerates the window states.

Variables

static const GRBP_DB_clientSchemaAll GRBP_DB_CLIENT_DATA

Detailed Description

Macros to allow one to configure the client side of the GRB detection algorithm. These macros are meant to shield the user from the details of C syntax and the structure layout.

Author:
JJRussell - russell@slac.stanford.edu
   CVS $Id: GRBP_DB_clientMacros.h,v 1.6 2007/12/14 18:40:06 russell Exp $

Define Documentation

#define CACHE_CFG
 

Value:

{                                                                         \
    { CACHE_SIZE  },                                                      \
    { CACHE_CLUSTER_MAX_SIZE > CACHE_SIZE ? 1/0                           \
    : CACHE_CLUSTER_MAX_SIZE},                                            \
    { RADIANS (CACHE_CLUSTER_RADIUS_DEGREES) }                            \
}
Defines the data block for configuring the input photon cache.

GBM   _GRBP_DB_WINDOW_TYPE_K_GBM
 

A LAT type window. A GBM type window.

This exists solely to make the files more readable

#define GBM_CFG
 

Value:

{                                                                         \
    GBM_LATENCY_SECONDS,                                                  \
    GBM_DURATION_SECONDS,                                                 \
  { GBM_SKEW_RA_ARCMINS,                                                  \
    GBM_SKEW_DEC_ARCMINS }                                                \
}
Defines the data block for configuring the GBM message handling.

#define GRB_CFG
 

Value:

{                                                                         \
      { GRB_GAMMA_LIST_SIZE },                                            \
      { GRB_SKEW_RA_ARCMINS,                                              \
        GRB_SKEW_DEC_ARCMINS }                                            \
}
The GRB configuration parameters.

#define LOCATION_SCHEDULE _id   )     &GRBP_DB_locationSchedule_ ## _id
 

Returns an expression that can be used as reference to the specified scheduling structure.

Parameters:
_id The identifier of the desired scheduling structure.
This macro provides a standard method of accessing the data structure defined by the LOCATION_DATA macro. Use of this macro ensures that the references to the data generated by the LOCATION_DATA is consistent with the artificial name it generates.

#define LOCATION_SCHEDULE_DATA _id   ) 
 

Value:

static const GRBP_DB_locationScheduleUpdate               \
             GRBP_DB_locationScheduleUpdate_ ## _id[] =   \
{                                                         \
   LOCATION_SCHEDULE_ ## _id ## _UPDATES                  \
};                                                        \
                                                          \
static const GRBP_DB_locationSchedule                     \
             GRBP_DB_locationSchedule_ ## _id =           \
{                                                         \
    LOCATION_SCHEDULE_ ## _id ## _INITIAL_COUNT,          \
    { sizeof (GRBP_DB_locationScheduleUpdate_ ## _id) /   \
      sizeof (GRBP_DB_locationScheduleUpdate_ ## _id[0]), \
      GRBP_DB_locationScheduleUpdate_ ## _id           }  \
};
Constructs the static data structure for an instance of the schduling parameters.

Parameters:
_id The identifier with the ASCII values of the numbers 0-31.
This defines one instance (out of a fixed upper limit of 32) of the message scheduling database. This macro drops two data structures

  • GRBP_DB_locationScheduleUpdate_<_id>
  • GRBP_DB_locationSchedule_<_id>

The first is of little interest to the user. It's only purpose is to provide a well defined name that the second structure can use to initialize a pointer to the update list.

Various macros must be in place for this macro to function correctly.

  • LOCATION_<_id>_UPDATES, must be defined as an array of update structures.

#define LOCATION_SCHEDULE_UPDATE _count,
_repeat   )     { _count, _repeat }
 

Construct the data statement used to initialize the scheduling parameters for a location update.

Parameters:
_count The additional number of gammas that need to be added to the list before a new location is derived.
_repeat The number of times to repeat this count.

#define MESSAGE_SCHEDULE _id   )     &GRBP_DB_messageSchedule_ ## _id
 

Returns an expression that can be used as reference to the specified scheduling structure.

Parameters:
_id The identifier of the desired scheduling structure.
This macro provides a standard method of accessing the data structure defined by the MESSAGE_SCHEDULE_DATA macro. Use of this macro ensures that the references to the data generated by the MESSAGE_SCHEDULE_DATA are consistent with the artificial name it generates.

#define MESSAGE_SCHEDULE_CLOSEOUT _time   )     { _time }
 

Construct the data statement used to initialize the scheduling parameters for GRB closeout message.

Parameters:
_time If the elapsed time from when the GRB started to the current time exceeds this value, a GRB closeout message will be issued.

#define MESSAGE_SCHEDULE_CONFIRM _count,
_duration   )     { _count, _duration }
 

Construct the data statement used to initialize the scheduling parameters for GRB confirmed message.

Parameters:
_count The number of photons needed in the localization list before a GRB confirmed message is issued.
_duration The duration of the ARR specified as a 32-bit floating point number in seconds.

#define MESSAGE_SCHEDULE_DATA _id   ) 
 

Value:

static const GRBP_DB_messageScheduleUpdate               \
             GRBP_DB_messageScheduleUpdate_ ## _id[] =   \
{                                                        \
   MESSAGE_SCHEDULE_ ## _id ## _UPDATES                  \
};                                                       \
                                                         \
static const GRBP_DB_messageSchedule                     \
             GRBP_DB_messageSchedule_ ## _id =           \
{                                                        \
    {0},                                                 \
    MESSAGE_SCHEDULE_ ## _id ## _CONFIRM,                \
    { sizeof (GRBP_DB_messageScheduleUpdate_ ## _id) /   \
      sizeof (GRBP_DB_messageScheduleUpdate_ ## _id[0]), \
      GRBP_DB_messageScheduleUpdate_ ## _id           }, \
     MESSAGE_SCHEDULE_ ## _id ## _CLOSEOUT               \
};
Constructs the static data structure for an instance of the schduling parameters.

Parameters:
_id The identifier with the ASCII values of the numbers 0-31.
This defines one instance (out of a fixed upper limit of 32) of the message scheduling database. This macro drops two data structures

  • GRBP_DB_messageScheduleUpdate_<_id>
  • GRBP_DB_messageSchedule_<_id>

The first is of little interest to the user. It's only purpose is to provide a well defined name that the second structure can use to initialize a pointer to the update list.

Various macros must be in place for this macro to function correctly.

  • MESSAGE_SCHEDULE_<_id>_UPDATES, must be defined as an array of update structures.
  • MESSAGE_SCHEDULE_<_id>_SUSPECT, must be defined as the threshold count of photons, probability thresuold and timeout on when to issue a GRB suspect message. See the macro MESSAGE_SCHEDULE_SUSPECT
  • MESSAGE_SCHEDULE_<_id>_CONFIRM_COUNT, must be defined as the threshold count of photons to issue a GRB confirm message.
  • MESSAGE_SCHEDULE_<_id>_CLOSEOUT_TIME, must be defined as the elapsed time from the start of the GRB to the current time before issuing a GRB closeout message.

#define MESSAGE_SCHEDULE_UPDATE _time   )     { _time }
 

Construct the data statement used to initialize the scheduling parameters for a single GRB update message.

Parameters:
_time If the elapsed time from when the GRB started to the current time exceeds this value, a GRB update message will be issued.

#define MESSAGE_SCHEDULE_UPDATE_LIST _data   )     { sizeof (_data) / sizeof(*_data), _data }
 

Constructs the data statement used to initialize the update scheduling list.

Parameters:
_data The name of the array of GRB update scheduling structures

#define PROBABILITY_CFG
 

Value:

{                                                                         \
      RADIANS (PROBABILITY_THETAMAX_DEGREES),                             \
      PROBABILITY_BACKGROUND_RATE_HZ                                      \
}
Defines the data block for configuring the probability constants.

#define RADIANS _degrees   )     ((_degrees) * (M_PI/180))
 

Simply macro to convert degrees to radians.

Returns:
The equivalent number of radians
Parameters:
_degrees The degrees to convert

#define STANDARD_HEADER   { GRBP_DB_CLIENT_SIZEOF, GRBP_DB_CLIENT_SERVICESGET }
 

Defines the standard header for all client (SIU) side schemas.

All that is needed here are the names of the routines that

  • Return the sizeof the control structure
  • Construct the control structure


Typedef Documentation

GRBP_DB_WINDOW_STATE
 

Typedef for enum _GRBP_DB_WINDOW_STATE.

This exists solely to make the files more readable


Variable Documentation

const GRBP_DB_clientSchemaAll GRBP_DB_CLIENT_DATA [static]
 

Initial value:

                \
{                                                                         \
   STANDARD_HEADER,                                                       \
   {                                                                      \
      PROBABILITY_CFG,                                                    \
      CACHE_CFG,                                                          \
      WINDOWLIST_CFG,                                                     \
      GRB_CFG,                                                            \
      GBM_CFG,                                                            \
   }                                                                      \
}


Generated on Sat Aug 30 02:02:03 2008 by  doxygen 1.4.4