The PIDF ancillary data block contains the descriptions of measurements defined under the VIDF ancillary data class. Unlike other UDF measurements, ancillary measurements can be defined both within the PIDF ancillary definition block and the PIDF sensor definition block. Where the measurement is defined is where it will appear within a GUI display of measurements. It is perfectly acceptable to define an ancillary measurement under both of the PIDF definition blocks.
The PIDF Ancillary definitions are used by most GUI applications to present a list of measurements to a user. The ancillary definition structure provides the location of the measurement within the VIDF ancillary data block as well as the associated VIDF sensor measurement, the defined units and descriptive labels.
Historically the ancillary data measurements were referred to as calibration data. This arose from the fact that the first instances of this class of data were used to calibrate the VIDF sensor data. In this document ancillary is substituted for calibration (except in field and structure names) as being more descriptive of the current UDF measurement class.
A PIDF ancillary definition block consists of a single field which gives the number of ancillary definition structures followed by the individual structures themselves, each of which contains one measurement definition. A PIDF ancillary definition block has the generalized form:
int num_cals = ENTRY; struct CalSetN { string name = "Entry"; string short_name = "Entry"; int pidf_cal_num = N int vidf_cal_num = Entry; int num_units = Entry; int unit_number = Entry; char cal_modify_flag = 'Entry'; int number_cal_sensors = Entry; int cal_based_on_sensor = Entry; };where N is a structure counter which begins at 0 and runs through the number of defined CalSet structures less 1. The fields within the structure can be entered in any order.
Not all of the above structure fields need be present in a structure definition. Only those which are applicable to the measurement being defined need be included. Default values are supplied for any unspecified field.
The number of defined CalSet structures in the PIDF. If there are no defined CalSet structures listed in the PIDF then this field should be set to 0. The num_cals field can be placed anywhere within the overall PIDF file above the first CalSet structure definition and external to any internal PIDF structures. It is an int field.
A descriptive label for the measurement. The provided label should be reasonably short and should not contain any reference to units. This is a string field which if not included in the CalSet structure is defaulted to a NULL.
A short descriptive label for the measurement. This label is generally a decimated version of what is given in the name field.
This is a string field which if not included in the Unit structure is defaulted to a NULL.
The number of the CalSet structure. This is an int field which must be present in the structure.
The VIDF number of the ancillary data set of the measurement. This is an int field which must be present in the structure.
The number of unit definitions included in the structure. There should always be at least one unit definition even if does no conversion and returns the UDF data in its raw or stored format.
This is an int field which must be present in the structure.
The structure number of one of the PIDF unit definitions. This provides the information to take the raw measurement into one of the unit definitions provided for it. There are num_units instances of this field within the CalSet structure.
This is an int field of which at least one instance must be present in the structure.
This field has been deprecated. It included it should set to 'Y'. It is a char field.
The number of UDF sensor class measurements which the ancillary measurements effects. If the measurement is associated with all of the defined UDF sensors then this field should be set to 1 and the cal_based_on_sensor field set to -1.
This is an int field.
The VIDF sensor number of one of the VIDF sensors which is dependent on this ancillary data measurement. There are number_cal_sensors instances of this field within the ancillary data set definition structure. NOTE: A cal_based_on_sensor value of -1 is used to indicate that this ancillary measurement is valid for all UDF sensor measurements.
This is an int field.
The following are examples of fully functional PIDF ancillary data set blocks. The entries are shown within the overall PIDF definition braces which would occur only once within the PIDF file.
pidf v2_IMES0IMG {
$**********************************************************************
int num_cals = 2; $$ no. cal. sets
struct CalSet0 {
$---------------------CAL SET 0----------------------------------------
string name = "Dark Count"; $$ cal set name
string short_name = "DkCnt"; $$ cal set name
int pidf_cal_num = 0; $$ pidf cal number
int vidf_cal_num = 0; $$ cal set no.
int num_units = 1; $$ no. of units
int unit_number = 0; $$ unit numbers
char cal_modify_flag = 'Y'; $$ cal based on sens
int number_cal_sensors = 1; $$ how many sensors
int cal_based_on_sensor = -1; $$ sensors
};
struct CalSet1 {
$---------------------CAL SET 1----------------------------------------
string name = "Error Count"; $$ cal set name
string short_name = "DkCnt"; $$ cal set name
int pidf_cal_num = 1; $$ pidf cal number
int vidf_cal_num = 1; $$ cal set no.
int num_units = 1; $$ no. of units
int unit_number = 0; $$ unit numbers
char cal_modify_flag = 'Y'; $$ cal based on sens
int number_cal_sensors = 1; $$ how many sensors
int cal_based_on_sensor = -1; $$ sensors
};
$**********************************************************************
};
pidf v2_IMLROI1 {
$**********************************************************************
int num_cals = 6; $$ no. of cal. sets
struct CalSet0 {
$---------------------CAL SET 0----------------------------------------
string name = "Start TOF Bin"; $$ cal set name
string short_name = "BegTOF"; $$ cal set name
int pidf_cal_num = 0; $$ pidf cal number
int vidf_cal_num = 0; $$ cal set no.
int num_units = 1; $$ no. of units
int unit_number = 1; $$ unit numbers
char cal_modify_flag = 'Y'; $$ cal based on sens
int number_cal_sensors = 1; $$ how many sensors
int cal_based_on_sensor = -1; $$ sensors
};
struct CalSet1 {
$---------------------CAL SET 1----------------------------------------
string name = "Stop TOF Bin"; $$ cal set name
string short_name = "EndTOF"; $$ cal set name
int pidf_cal_num = 1; $$ pidf cal number
int vidf_cal_num = 0; $$ cal set no.
int num_units = 1; $$ no. of units
int unit_number = 2; $$ unit numbers
char cal_modify_flag = 'Y'; $$ cal based on sens
int number_cal_sensors = 1; $$ how many sensors
int cal_based_on_sensor = -1; $$ sensors
};
struct CalSet2 {
$---------------------CAL SET 2----------------------------------------
string name = "Start Polar Zone"; $$ cal set name
string short_name = "BegTOF"; $$ cal set name
int pidf_cal_num = 2; $$ pidf cal number
int vidf_cal_num = 1; $$ cal set no.
int num_units = 1; $$ no. of units
int unit_number = 3; $$ unit numbers
char cal_modify_flag = 'Y'; $$ cal based on sens
int number_cal_sensors = 1; $$ how many sensors
int cal_based_on_sensor = -1; $$ sensors
};
struct CalSet3 {
$---------------------CAL SET 3----------------------------------------
string name = "Stop Polar Zone"; $$ cal set name
string short_name = "EndTOF"; $$ cal set name
int pidf_cal_num = 3; $$ pidf cal number
int vidf_cal_num = 1; $$ cal set no.
int num_units = 1; $$ no. of units
int unit_number = 4; $$ unit numbers
char cal_modify_flag = 'Y'; $$ cal based on sens
int number_cal_sensors = 1; $$ how many sensors
int cal_based_on_sensor = -1; $$ sensors
};
struct CalSet4 {
$---------------------CAL SET 4----------------------------------------
string name = "Start Energy Step"; $$ cal set name
string short_name = "BegTOF"; $$ cal set name
int pidf_cal_num = 4; $$ pidf cal number
int vidf_cal_num = 1; $$ cal set no.
int num_units = 1; $$ no. of units
int unit_number = 5; $$ unit numbers
char cal_modify_flag = 'Y'; $$ cal based on sens
int number_cal_sensors = 1; $$ how many sensors
int cal_based_on_sensor = -1; $$ sensors
};
struct CalSet5 {
$---------------------CAL SET 5----------------------------------------
string name = "Stop Energy Step"; $$ cal set name
string short_name = "BegTOF"; $$ cal set name
int pidf_cal_num = 5; $$ pidf cal number
int vidf_cal_num = 1; $$ cal set no.
int num_units = 1; $$ no. of units
int unit_number = 6; $$ unit numbers
char cal_modify_flag = 'Y'; $$ cal based on sens
int number_cal_sensors = 1; $$ how many sensors
int cal_based_on_sensor = -1; $$ sensors
};
$**********************************************************************
};
| &larr Previous | TOC | HOME | Next &rarr |
| Array Index Block | Mode Data Block |