HESSI Objects Reference Manual

This document: (1) Presents the class diagram of the HESSI data analysis Software; (2) Describes the object classes used in run-time configurations of the data analysis software; (3) Describes the object accessor methods available to retrieve data from the objects; (4) Describes control parameters and keywords allowing to modify the contents of the objects; (5) Describes data structures used by the classes. This document needs not to be read for analyzing HESSI data. Instead, users of the data analysis software might want to look at the HESSI Imaging Overview describing the command-line user interface or by using the hessi graphical user interface (type hessi at the prompt). Furthermore, you may also read the utility quick reference guide for an introduction to HESSI object classes. This manual is intended to developers who need to understand all low-level details. It is assumed that you have installed both IDL version 5.3, as well as the Solar Soft Tree with at least the HESSI, SPEX and XRAY branches of the tree.

Contents

 


Class diagram


Class summary

Classes that are usually accessed by users are written in boldface. Other classes are internal steps used by collaborating classes.

Name
Purpose
Data type

Control parameters

Info parameters

Framework

Generic abstract data analysis class

Defined in concrete class

Defined in concrete class

Defined in concrete class

HSI_Binned_Eventlist

Binned event lists

Array of{hsi_binned_event}

front_segment, rear_segment, det_index_mask, time_bin_def, time_bin_min

n_bin, binned_n_event

HSI_BProj

Back projection

Image of dimension rmap_dim

flatfield, vrate

none

HSI_BProj_Strategy

Abstract class for the back projection methods

N/A

N/A

 

HSI_BProj_Annsec

Back projection annular sector strategy

Image of dimension rmap_dim

flatfield, vrate

none

HSI_Calib_Eventlist

Calibrated event list

Array of {hsi_calib_event}

Tba

tba

HSI_Clean

CLEAN algorithm

2D array

Tba

tba

HSI_Eventlist

Event list

Array of {hsi_event}

none

eventlist_strategy

HSI_Eventlist_Packet

Event lists from telemetry packets

Array of {hsi_event}

same as HSI_Eventlist_Strategy

same as HSI_Eventlist_Strategy

HSI_Eventlist_Simulation

Event lists from simulations

Array of {hsi_event}

same as HSI_Eventlist_Strategy

same as HSI_Eventlist_Strategy

HSI_Eventlist_Strategy

Parent class of

Array of {hsi_event}

a2d_index_mask, energy_band, time_range, time_unit

absolute_time_range n_event ut_ref

HSI_FITS

FITS file handler

tba

Tba

tba

HSI_GSE

Ground Support Equipment file handler

{hsi_gse_data}

Tba

tba

HSI_Image

Images

FltArr( image_dim[0], image_dim[1] )

image_algorithm

tbd

HSI_Image_Alg

Abstract class for imaging algorithms

Through concrete class

Through concrete class

Through concrete class

HSI_Lightcurve

Generation and access of light curves

FltArr( n_time_bins, n_energy_bands, n_a2ds, coincdences )

ltc_energy_band, ltc_time_range, ltc_time_resolution, all control parameters from hsi_spectrogram

none

HSI_MEM_Sato

Maximum entropy algorithm

2D arrray

Tba

tba

HSI_Modul_Pattern

Modulation patterns

3D arrray

Tba

tba

HSI_Monitor_Rate

Monitor rate reader

{hsi_monitor_rate}

mon_time_range, det_index_mask

dtime, mon_ut_ref, ncyles

HSI_Packet

Unpacked telemetry packet

{hsi_packet_source}

File_type, app_id

n_record

HSI_PSF

Point Spread Function

fltarr(image_dim[0], image_dim[1])

xy_pixel

tbd

HSI_Simulation

Simulations

Replicate( {hsi_event}, n_event )

 

sim_out_time_unit, sim_ref_time

HSI_Spectrogram

Spectrogram abstract class

FltArr( n_channel_bins or n_energy_bins, n_time_intervals, n_a2ds, n_coincidences )

poisson, seed, coincidence_flag, sum_flag

binning

HSI_Spectrum

Generates count rate spectra

FltArr( n_energy_bins or n_channel_bins, n_time_intervals, n_a2ds, coincidence_flag+1 )

sp_time_interval, sp_time_range, sp_chan_binning, sp_data_unit, sp_energy_binning

tbd

Selection Manager

Allows keeping track of selected elements in a list

N/A

N/A

N/A

Strategy_Holder

Grouping of related classes

[abstract]

N/A

N/A

Strategy_Holder_Passive

As above, but checks source for strategy

[abstract]

N/A

N/A

Structure Manager

Manages setting and getting values from data structures

N/A

N/A

N/A

Parameter summary

Each control parameter name is associated with a keyword that allows to set its value using the procedure Set. Similarly, each name of an infor parameter is associated with a keyword that allows to get its value using the function Get(). Control parameters can be set with any method. Once a control parameter is set, its value is kept in the object’s internal memory, i.e. calls to Set are needed only when the value of a parameter changes.

There are two types of parameters: control parameters and information parameters.Control parameters inluence the way individual classes process data. Information parameters provide (output) values associated with the processing of the data. The default value of a keyword is the value used in the object when the keyword is not used.

Name

Purpose

Control or Info

Default

Range

Defined in the class

a2d_index_mask

Mask for the selection of a2ds.

Control

BytArr( 27 ) + 1B

0 or 1

HSI_Eventlist_Strategy

binning

Binning scheme for spectrograms

Info

N/A

Structure

HSI_Spectrogram

det_index_mask

Flags for selecting detectors

Control

[0,0,0,1,1,1,1,1,0]

0 or 1

HSI_Binned_Eventlist, HSI_Monitor_Rate

dtime

?

Info

?

?

HSI_Monitor_Rate

energy_band

Minimum and maximum energy value of the analysis interval

Control

[12,25] keV

3..15000

HSI_Eventlist_Strategy

eventlist_strategy

strategy used by getdata to get event lists

Info

HSI_EVENTLIST_PACKET

HSI_EVENTLIST_PACKET

HSI_EVENTLIST_SIMULATION

HSI_Eventlist

filename

The name(s) of the level-0/telemetry data file(s)

Control

Valid filename

HSI_Packet

file_type

The type of the level-0 data files

Control

‘fits’

fits, gse, smex, raw

HSI_Packet

flatfield

?

Control

1

0 or 1

HSI_BProj

front_segment

Use detector front segments

Control

1

0 or 1

HSI_Binned_Eventlist

mr_time_range

Time interval for which monitor rates are requested

Control

[0D,0D] sec.

0...100

HSI_Monitor_Rate

ltc_energy_band

Energy band(s) for the lightcurves

Control

[3.,15000.] keV

3...15000.

HSI_Lightcurve

ltc_time_range

Time range for the light curve

Control

[0D,0D] sec.

0...1e9,

HSI_Lightcurve

ltc_time_resolution

Size of the time bins for lightcurves

Control

0.1sec

0.001...1sec

HSI_Lightcurve

n_bin

Number of bins for each detector and harmonics

Info

Tbd

Tbd

HSI_Binned_Eventlist

ncycles

Number of cycles available in the monitor rate packets selected

Info

Tbd

Tbd

HSI_Monitor_Rate

new_gain

Controls which gain is used for channel-energy correspondance

Control

1

0 or 1

HSI_Eventlist

rear_segement

Use detector rear segments

Control

1

0 or 1

HSI_Binned_Eventlist

saszero

If 1 assumes a perefect aspect solution

Control

0

0 or 1

HSI_Aspect_Solution

sp_chan_binning

Defines the channel binning

Control

0

0 .. 8192

HSI_Spectrum

sp_energy_binning

Defines the energy binning

Control

7 (# of table)

0 ... ?

HSI_Spectrum

sp_semi_calib

Semi-calibrate the count rates

Control

0

0 or 1

HSI_Spectrum

sp_time_interval

Defines the time interval for spectra

Control

60sec

>0 ... ?

HSI_Spectrum

time_bin_def

Factors multipling time_bin_min for the definition of the detector-dependent time bin size

Control

[1,1,2,4,8,8,16,32,64]

2^0 ... 2^6

HSI_Binned_Eventlist

time_bin_min

The minimum time binning

Control

1024 binary microsec. (= 2^-20 sec)

2^0 ... 2^7

HSI_Binned_Eventlist

time_range

Time range of the analysis interval

Control

[0,4] sec.

0...100

HSI_Eventlist

time_unit

Time unit used in the event list time tags

Control

16 binary microseconds

1...32

HSI_Eventlist

Method summary

A procedure method is called by obj->proc_name where proc_name is the name of the method. A function method is called by result = obj->func_name whereby result is any IDL variable name and func_name is the name of the method. Methods and functions accept any keyword parameters of type “Set” as defined in the section Keywords below.

Name

Purpose

Keywords

Used in

CreateStrategy

Creates an instance of a strategy

 

Instances of Strategy_Hoder

Get()

Retrieves control or info parameters

ADMIN_ONLY, CLASS_NAME, /CONTROL_ONLY, FOUND, /SOURCE_ONLY, /THIS_CLASS_ONLY, /THIS_OBJECT_ONLY, /INFO_ONLY, /NO_DEREFERENCE, /NOSINGLE, /POINTER, /OBJECT_REFERENCE, /ALL_STRATEGIES

Any

GetData()

Retrieves primary data

/ALL, CLASS_NAME, DONE, THIS_A2D_INDEX, THIS_INDEX, NEXT_BUNCH

Any

GetStrategy

Retrieves the strategy object

STRATEGY_INDEX, STRATEGY_NAME

Instances of Strategy_Hoder

Set

Sets control parameter values

SOURCE_OBJECT, CONTROL_STRUCT, INFO_STRUCT

Any

SetData

Inputs primary data into the object

TBA

Any

SetStrategy

Sets the current strategy

 

Instances of Strategy_Hoder

Plot

Plots the primary data

Same as GetData

Any

Print

Prints parameter values

Same as Get, /XSTRUCT

Any

Process

Implements the algorithm tha generates the object’s data

Tba

Any

Write

Writes a FITS binary table with the data of the class

TBA

Any

 

Keyword summary

Keywords can be used either to request a specific subset of the data associated with a specific object, or to do a specific, non-standard processing. Keywords to select data subsets start in general with the prefix THIS_ and are used only with the method GetData().

Name

Purpose

Default

To use with method

To use with class

ADMIN_ONLY

Retrieve admin parameters only

N/A

Get()

Any

ADMIN_STRUCT

Passes the admin structure

Null

Set

 

ALL_STRATEGIES

Retrieves parameters from all existing strategies

Only the current strategy

Get()

Instances of Strategy_Holder

CLASS_NAME

Specifies for which class the method should be used

Current class

Any

Any

CONTROL_ONLY

Retrieve control parameters only

N/A

Get()

Any

CONTROL_STRUCT

Passes the control structure

Null

Set

Any

FOUND

To get the parameters found

N/A

Get()

Any

INFO_ONLY

Retrieve info parameters only

N/A

Get()

Any

NO_DEREFERENCE

Turns auto dereferencing off

Dereference

Get()

Any

NOSINGLE

Retrieves anon struct even for single parameter requests

Returns single as variable

Get()

Any

NOT_FOUND

Returns the name of the params not found

N/A

Set

Any

OBJECT_REFERENCE

Retrieves the object reference

Retrieves the data

Get()

Any

POINTER

Retrieves the pointer to the original data instead of a copy

Retrieves a copy of the data

GetData()

Any

 

 

 

 

 

SOURCE_ONLY

Retrievs the source object reference

N/A

Get()

Any

SRC_INDEX

Gets the object with source index specified

0

Get()

Any

STRATEGY_INDEX

Gets the index of the current strategy

Returns the strategy itself

GetStrategy

Instances of Strategy_Holder

STRATEGY_NAME

Gets the associated strategy object

Returns the current strategy

GetStrategy

Instances of Strategy_Holder

THIS_A2D_INDEX

Specifies for which a2ds the data should be retrieved

Equivalent to a2d_index_mask

GetData, Plot

HSI_Eventlist

THIS_CLASS_ONLY

Retrieves parameter for the current class

Retrieves parameter for all classes

Get()

Any

THIS_DET_INDEX

Specifies for which detector index the data should be retrieved

Equivalent to det_index_mask

GetData, Plot

HSI_Eventlist, HSI_Binned_Eventlist

THIS_HARMONIC_INDEX

Specifies for which harmonic index the getdata should be retrieved

Equivalent to det_index_mask

GetData, Plot

HSI_Eventlist, HSI_Binned_Eventlist

/OBJECT_REFERENCE

Retrieves the object reference associated with CLASS_NAME

N/A

Get, Set

Any

XAXIS

Retrieves the X axis

N/A

GetData

Any

YAXIS

Retrieves the Y axis

N/A

GetData

Any

Data structure summary

Name

Purpose

Tags

hsi_bproj_info

Informatin parameters of hsi_bproj

bproj_alg_available

hsi_packet_header

Telemetry science packet header

app_id, sequence_count, length, collect_time

 

Object classes: detail

Framework

Generic basis class used to support scientific data analysis tasks. The framework contains four main elements:

1.      The primary data which needs to be managed;

2.      The control parameters;

3.      The informational parameters;

4.      The administration parameters.

The framework is inherited by application-specific concrete classes. It is based on the template method design pattern. The abstract class cannot be used without a concrete class. Look for the document “HESSI Object-Oriented Design Concept” for more information on frameworks.

Construction

Only by inheritance in concrete classes.

Methods defined in this class

-       Get() : Retrieves ancillary parameters, from control, information, administration and/or source objects. If only one parameter is requested, Get returns the value of this parameter unless /NOSINGLE is set. If more than one parameter are requested, Get returns an anonymous structure that have one tag for each parameter requested. For pointer-type variables, Get does an automatic dereferencing, i.e. it returns the variables to which the pointers are pointing instead of the pointers (but see also /NO_DEREFERENCE).

-       GetData() : Retrieves primary data. When this function is called, the object checks whether the control parameters have changed, using the function Need_Update (see below). If parameters have changed, it assumes that data need to be recomputed and Process is called. Otherwise the object retrieves the contents of its memory, and makes the appropriate selection depending on the keyword parameters. Note that most of the time this procedure is only the generic part of a redefined procedure GetData in the concrete class.

-       Need_Update() : Returns “1” if the object must call the procedure Process to update its state; otherwise “0.”

-       Plot : Plots data associated with an object. This generally first calls GetData, and generates a “view” of the data. Often, tough, the data may be strongly summarized. The generic plotting routine is empty.

-       Process : This procedure is called whenever an object needs to be updated. It reads in the control parameters associated with the class, reads in the data form a source object (or from any other sources), process the source data and stpres the results into the object’s memory.

-       Print : Prints control, information, and administration parameters.

-       Set : Sets values to control parameters. Set does not just store the parameter values into a data structure. It first checks if the parameters are the same as those already stored. If they are, it just returns. If they are not, it will set the need_update flag in the administration structure to 1.

-       SetData : Input primary data into the framework. This is usually called by the procedure Process

-       Write : Write FITS files, usually binary extensions, with the data associated with the object.

Parameters defined in this class

-       VERBOSE (Get, Set) Flag for controlling whether messages commenting the process are printed or not. Defined in: {hsi_admin_control}, class Structure_Manager.  Format: byte scalar, Range: 0B or 1B.  Default: 0B.  Example:

o->Set, /VERBOSE, /THIS_CLASS_ONLY

sets the verbose flag for the clas o only, i.e. the source classes of o will not be influenced by this setting.

Keywords defined in this class

-       /ADMIN_ONLY: [Get()] Set this to retrieve only the administration  parameters (verbose,

-       ADMIN_STRUCT:(Set) Initializes the admininstration structure type {admin_struct}

-       CLASS_NAME: (Get, GetData) If set to a valid class name (string), retrieves parameters for the class specified and all its sources recursively. Default: current class

-       /CONTROL_ONLY: [Get()]  Set this to retrieve only control parameters

-       CONTROL_STRUCT (Set): Sets the controil structure

-       FOUND [Get()] : Set this to a named variable to get the names of  the parameters found in a string array

-       /INFO_ONLY: [Get()]  Set this to retrieve only information parameters

-       POINTER (GetData): If set, retrievs a reference to the (orginal) data insteade of a copy.

-       SOURCE_ONLY: [Get()]  Set this to retrieve the source object reference. See also SRC_INDEX.

-       SRC_INDEX: [Get()]  Set this to the index or array of indices   of the source object(s) you want  to get with SOURCE_ONLY. Default: 0

-       THIS_CLASS_ONLY: [Get()]  Set this to retrieve data only for the   current class or for the class specified   by CLASS_NAME

-       OBJECT_REFERENCE: [Get()]  Set this to retrieves the object  reference of the class specified by    CLASS_NAME

-       NO_DEREFERENCE: [Get()]  Set this to prefent automatic dereferencing of pointer-type tags.

-       NOSINGLE: [Get()]  Set this to retrieve an anonymous structure even for a single parameter request

-       NOT_FOUND (Set): Returns an array of strings containingthe name of the keywords that have not been found

-       XAXIS [GetData()] Returns the x axis of the data in the class. It is equivalent to a call to the function GetAxisThis may be the pixel location (in arcseconds) if the class is HSI_Image, or time if the class is HSI_Binned_Eventlist Use with the method: GetData, classes HSI_Binned_Eventlist HSI_Image HSI_Lightcurve HSI_Spectrogram. Example:  image_x_axis = o->GetData( /XAXIS )

-       YAXIS [GetData()] Returns the y axis of the data in the class. This may be the pixel location (in arcseconds) if the class is HSI_Image, or the energy edges for the class HSI_Lightcurve.  Example:  image_x_axis = o->GetData( /XAXIS )


HSI_Aspect_Solution

Parameters defined in this class

SASZERO (Get, Set)

Specifies that the Aspect solution sould be considered as perfect.

Defined in:HSI_Calib_Eventlist

Format: Byte scalar with either 1 or 0

Range: Either 1 or 0

Default: 0

Example: 

o->Set, /SASZERO

 


HSI_Bproj

Provides access to back projection maps. The back projection class extends the class strategy_holder_passive. The back projection can be calculated using either of the annsec or the visibility modulation pattern. The startegy holder is passive because it just selects its strategy by listening to the modulation pattern object, which really decides which strategy (commanded by imaging_method) to use.

 

HSI_Bproj is just a container. The real work is done by the startegies, either hsi_bproj_annsec or hsi_ bproj_vismod, which are two classes extending the basic class hsi_bproj_strategy.

 

Construction

o = HSI_BProj()

Control parameters defined in this class

None in that class. But look at hsi_bproj_strategy

Information parameters defined in this class

Defined in {hsi_bproj_info}:

     

-       bproj_alg_available: lists the back projection algorithms (i.e, objects) available.Currently, the values are: HSI_VISMOD_BPROJ for visibility back-projection, or HSI_ANNSEC_BPROJ for annular sector back projection.

 

Source class

HSI_Modul_Pattern

Known destination (client) classes

HSI_Modpat_Products, HSI_Image

 


HSI_Bproj_Strategy

Computes the backprojection for a given count rate. The count rate is given either using the parameter vrate, or if vrate is empty (null pointer), the count rate used is the observed count rate.

Construction

O = hsi_bproj()

Primary data type

An image in the form of a 2D array. The dimensions and units of the image are given by image_dim pixel_size

Processing method

The algorithm is defined in the procedure hsi_annsec_bproj

Control parameters

Control parameters for the back projection are defined in the structure hsi_bproj_control.

flatfield (Get, Set)
vrate (Get, Set)

Allows passing an arbitrary count rate to the backprojection object. It must have the dimensions defined by time_bin_min and time_bin_def in hsi_binned_eventlist. The best way to know these dimensions is to look at the observed count rates (see example below)

Defined in: {hsi_bproj_control}, class HSI_BProj

Format:Array of pointers to array of floats. See the examples on how to know th dimension of the array of floats

Range:n/a

Default:array of nil pointers. In this case, the backprojection is computed using the observed count rates.

Example: To set correctly vrate:

be = o->getdata( class=’hsi_binned_eventlist’ )
vrate = be
modify_vrate_here_as_you_want
bp = o->getdata( vrate = vrate )

will get the observed count rate, assign the values to a new variable whare you can modify them to whatever you want.

Information parameters

There are no information parameters for this class


HSI_Calib_EventList

Provides data structures and methods to build and access the calibrated event list.

Construction

obj = hsi_calib_eventlist()

Methods defined in this class

-       result = obj->Get()

-       result = obj->GetData()

-       obj->Plot

-       obj->Print

-       obj->Set

Control parameters defined in this class

time_bin_def (Get, Set)

Specifies the time bin definition factor for each detector. It is multiplied by TIME_BIN_MIN.

-       Defined in: HSI_Binned_Eventlist

-       Format: 9-Element float array FltArr(9)

-       Range: 1 to ... . You should be very careful when using other values than powers of two

-       Default: [...]

-       Example:

o->Set, TIME_BIN_DEF=[1,1,2,4,8,8,16,32,64]

time_bin_min (Get, Set)

Specifies the minimum time bin in binary microseconds. It is multiplied by TIME_BIN_DEF.

·        Defined in: {hsi_binned_evenlist_control}, class HSI_Binned_Eventlist

·        Format: 2-Element integer array IntArr(2)

·        Range: [16,16] to [1024,1024]. Large images may take exessively long to process.

·        Default [64,64]

·        Example:

o->Set, IMAGE_DIM=[128,128]

xyoffset(Get, Set)

Specifies the offset of the map center from the sun center in arcsecs.

·        Defined in: {hsi_calib_eventlist_control}, class HSI_Calib_Eventlist

·        Format: 2-Element float array FltArr(2)

·        Range: [0,0] to [1000,1000].

·        Default: [600,200] for the standard default simulation. No defaults for flare data. The values to set here may be taken from the flare list.

 

Data structures

{hsi_calib_event}
{hsi_calib_eventlist_control}
{hsi_calib_eventlist_info}


HSI_Clean

Provides a wrapper for the clean image algorithm.

Construction

obj = Obj_New( ‘hsi_clean’ )

Primary data type

An image in the form of a 2D array.

Processing method

The algorithm is defined in the procedure hsi_map_clean

Control parameters

Control parameters for the clean algorithm are defined in the structure hsi_clean_parameters.

Informational parameters

chi_sq
residual

Acessor methods

No accessor methods are implemented in this class.

Display methods

No display methods are implemented in this class. Need_Update


HSI_EventList

Provides data structures and methods to build and access an event list.

Construction

obj = hsi_eventlist()

Methods defined or rewritten in this class

result = obj->Get()

result = obj->GetData( /SCORE THIS_A2D_INDEX=BytArr(27) THIS_ENERGY_BAND=DblArr(2) THIS_TIME_RANGE=DblArr(2)

obj->Plot, THIS_A2D_INDEX=BytArr(27) THIS_ENERGY_BAND=DblArr(2) THIS_TIME_RANGE=DblArr(2)

obj->Write, THIS_A2D_INDEX=BytArr(27) THIS_ENERGY_BAND=DblArr(2) THIS_TIME_RANGE=DblArr(2)

Inherited from Framework: CLEANUP, Get, Set, SetData

Control parameters

Parameters are defined in a single control structure called hsi_eventlist_control.

a2d_index_mask: Allows selecting which a2ds to use. Note that this setting is very low level. Usually you may want to select the detectors instead, with det_index_mask Format: Bytarr( 27 ). Each position of the array correspond to a selected a2d

Range: Each element of the array may take the value 0 or 1.

Default values: BytArr(27) + 1B

Example:

o->Set, A2D_INDEX_MASK = [0,0,0,1,1,1,1,0,0, BytArr(18)]

This selects the a2ds 3 to 6.

 

-        

-       energy_band

-       time_range

-       time_unit

-       ut_ref

Informational parameters

Data structures

-       {hsi_event}

-       {hsi_eventlist_control}

-       {hsi_eventlist_info}


HSI_Image

Provides data structures and methods for HESSI imaging tasks.

Construction:

O = hsi_image()

Methods defined or overriden in this class

Get( )

result = obj->GetData( XAXIS=xaxis, YAXIS=yaxis )

obj->Plot

Control parameters defined in this class:

image_algorithm

Specifies which algorithm is used to reconstruct the image. 

Format:String scalar

Default:’bproj’

Example:

o->Set, IMAGE_ALG = ‘clean’

Data structures defined in this class:

{hsi_image_control}
{hsi_image_info}


HSI_Image_Alg

HESSI IMAGING ALGORITHM ABSTRACT CLASS DEFINITION. This abstract class defines operations common to all imaging algorithms used for HESSI image processing. It leaves up to the subclasses the behavior that can vary. It is inherited by a concrete class that usually has the same name as the algorithm it implements. This class is a realization of the Template Method design pattern.

Construction:

Only through the concrete classes

Methods defined or overriden in this class

Process

The procedure Process loads the control parameters and passes the control to the child class with image_alg_hook. Once it returns from image_alg_hook, it stores the information parameters that may come out of the concrete class into the object. Image_alg_hook must be defined in the concrete class.

Control parameters defined in this class:

Through concrete classes

Data structures defined in this class:

Through concrete classes

Source class

HSI_Modul_Pattern

Known child classes

HSI_Clean, HSI_Forwardfit, HSI_Pixon.


HSI_Lightcurve

TBA


HSI_Modul_Pattern

Control parameters defined in this class

image_dim (Get, Set)

Specifies the dimension of the image in pixels.

Format: 2-Element integer array IntArr(2)

Range:[16,16] to [1024,1024]. Large images may take exessively long to process.

Default:[64,64]

Example:

o->Set, IMAGE_DIM=[128,128]

pixel_size (Get, Set)

Specifies the size of the image pixel in arcseconds. See also: IMAGE_DIM

Format: 2-Element float array FltArr(2)

Range: 1 to 100.

Default: [4,4]

Example:

o->Set, PIXEL_SIZE=[1.,1.]


HSI_Modul_Profile

Control parameters defined in this class

 


HSI_Monitor_Rate

This class implements methods to access monitor rates data.

Construction:

obj = HSI_Monitor_Rate()

Methods redefined in this class

INIT:

GetData:

Process:

Control parameters:

mr_time_range: Dblarr(2) the time range for which the monitor rates are requested, in Anytim format.

mr_det_index_mask: Bytarr(18) flags the segments for which the monitor rates are requested

Info parameters:

dtime: Float

mon_ut_ref: Double the reference time of the time in the monitor rate structure

ncycles: Long the number of cyles found in the time interval read

Data structure:

Source class

HSI_Packet


HSI_Packet

This class provides data structures and methods to work with HESSI telemetry packets. Packets come in several formats, and one of the main task of this class is to provide a common interface to all formats. The formats (1) construction of a packet object associates a data file with the object. This file can be either a HESSI FITS file, an ITOS-formatted telemetry file or a file containing GSE data.
A selection list determines which packets are to be returned. The selection list is built by requesting specific time range and packet types.

Construction

obj = Obj_New( ‘hsi_packet’ )
obj = hsi_packet()

Method defined in this class

The function Get returns control data. The type of the returned parameter depends on the keyword set. The SELECTION keyword used alone returns an index list packets given a time range and an application id. The SELECTION keyword used with other keywords will return the corresponding data for only the selected packets.


The function GetPacket returns packet data, of type
{hsi_packet_source}

Keywords defined in this class:

TBA

Control parameters defined in this class

FILENAME (Get, Set)

Specifies the filename containing the level-0 data. The filename may be of type FITS, ITOS, GSE, SMEX or RAW. See the HESSI file formats document for more information on the different formats. Note that usually you may use obs_time_interval to select data, whereby the filename will be automatically selected.

Defined in: HSI_Packet_File

Format:String or array of string.

Range:It is assumed that the files in the list are chronologically ordered.

Default:Empty string

Example:

o->Set, FILENAME = [’gaga1.fits’, ‘gaga2.fits’]

N_PACKET (Get)

Returns the number of packets in the file. If used with SELECTION keyword, then returns the number of packets selected.

Defined in: HSI_Packet_File

Format: Long Integer Scalar

Example:

print, o->Get( /N_PACKET )

SELECTION (Get)

Returns the indices of the selected packets

Defined in: HSI_Packet

Format: Long Integer Array

Example:

Help, o->Get( /SELECTION )

 


HSI_PSF

Provides data structure and methods to process and access HESSI point spread functions. This class has a memory: already processed point spread function will not be recalculated.

Construction

obj = Obj_New( ‘hsi_psf’ )
obj = hsi_psf()

Method defined in this class

psf = obj->GetData( NO_SUM=no_sum, THIS_DET_INDEX=this_det_index )
THIS_HARMONIC_INDEX=this_harmonic_index )

The function GetData allows retrieving point spread functions

Control parameters associated with this class:

xy_pixel

determines the pixel in the map defined by image_dim and xyoffset for which the psf must be processed.


HSI_Spectrogram

Abstract class generating spectrograms for a given channel binning / energy binning and time binning.

Construction

Used with a concrete class, see hsi_lighctcurve and hsi_spectrum

Control parameters

Poisson (Byte)

Seed (Float)

coincidence_flag (Byte)

other_a2d_index_mask  Bytarr(27)

sum_flag(Byte)

Info parameters

binning

Keywords

Class relationships


HSI_Modpat_Products

TBA


HSI_Spectrum

Generates and provides access to count rate spectra.

Construction

obj = Obj_New( ‘hsi_spectrum’ )
obj = hsi_spectrum()

Methods

result = obj->Get( )
result = obj->
GetData()

Keywords


Strategy_Holder

This class provides a generic mechanism for putting together several related classes. The strategy holder allows selecting from several objects which one should be used by the GetData mehod.

The strategy holder class usually holds multiple implementations of a specifc base class of framework object, called startegies. For instance the hsi_image class is a strategy holder that contains objects implementing the hsi_image_alg class, where each specific implementation of the hsi_image_alg class is a specific image algorithm.

The strategy holder can be considered as the Context in the strategy design pattern, but it holds multiple instances of the strategies, so I guess it’s not only a Context.

Construction

This class is abstract. It needs to be implemented (extended) before an instance can be created.

Inheritance

Framework

Known direct subclasses

HSI_Eventlist, HSI_Modul_Pattern, HSI_Modul_Profile, HSI_Bproj, HSI_Image

Fields

-       strategy_available: (Ptr to string arr) lists all strategies (objects) registered at initialization time for the specific instance

-       strategy_current: (Int) specifies the currently selected strategy. index to strategy_available

-       strategy_altenate_source: (Ptr to string) specifies the alternate source for one or more strategies. Usually this is empty and the source is the same as the source of the strategy holder itself.

-       get_all_strategies: if set to 1 at implementation, then a call to Get() will check for parameters in each instantiated classes. If set to 0 (default) then the call to Get checks for parameters only in the current class.

Methods

-       INIT( strategy_available [, strategy_alternate_source ] ) the startegy_available parameter is required to initialize the object

-       CLEANUP: cleans up the strategy fields before cleaning up the Framework

-       CreateStrategy(idx): creates (instanciates) the strategy with index idx in the list strategy_available passed to the strategy holder at initialization

-       GetStrategy([idx]): without the index, returns the object reference of the current strategy. With the index idc, returns the object reference of the strategy with inde xidx in the list strategy_available passed to the holder at initialization. Side effect: if the requested strategy is NOT instanciated, it will be first created

-       Get(): As with Framework, this is used to get control and info parameter values. However, here we deal with several classes, this som additional functionality must be available

-       Need_Update(): returns the value of the need_upate function of the current strategy. Note: the need_update flag of the strategy hoder is unused.

-       GetData(): returns the data of the current strategy. By using the CLASS_NAME keyword, the data from other strategies can also be accessed (pretty much in the same way as for the frameworks)

-       SetStrategy, stategy: Sets the current strategy to strategy. If strategy is a string then it is considered as a class name. Itherwise it is considered as an index.

Keywords

-       ALL_STRATEGIES (Get): If set, the Get() function will check for parameters in all instatiated classes of the strategy holder, even if the get_all_startegies flag is not used.

-       CLASS_NAME (GetData): Allows to get data from another class than the current class.

-       STRATEGY_INDEX: (GetStrategy) If set, GetStrategy returns the index of the current strategy instead of the strategy itself

-       STRATEGY_NAME: (GetStrategy) If set, GetStrategy returns the strategy with nanme strategy_name,

 

Strategy_Holder_Passive

Extends the strategy holder class to allow selecting strategies based on another, source, strategy holder. The concrete classes check the source object to decide what strategy the must use. 

 

In the HESSI software, for instance, there are two strategies for image reconstruction: visibility-based and annular-sector based. Furthermore, for both imaging strategies, there are three classes that generate data products for each strategy: back projection, point spread function and modulation profiles. The choice of the strategy to use, however, is given by the source class of these three data products: hsi_modul_pattern, which is used by each class. This passive class allows them to check for the correct strategy in the source object.

Construction

This class is abstract. It needs to be implemented (extended) before an instance can be created.

Methods defined in this class:

-       INIT( strategy_available ): the initialization of the object  takes a required parameter, the name of the strategy objects it will hold (strarr).

-       SetStrategy: sets the used strategy according to the strategy used by the source object

-       GetStrategy: gets the startegy taht correspond to the strategy used in the source object

Parent object

Strategy_Holder

Known subclasses

HSI_Bproj, HSI_Modul_Profile, HSI_PSF

Known source class

HSI_Modul_Pattern