sim_time_unit is the time unit, in binary microseconds of the .time tag in the eventlist structure. The default value is 1. It is a good idea to set both sim_time_unit and time_unit to the same value for all simulations. Note that for simulations longer than 2048.0 seconds, a larger value of sim_time_unit is needed. If the time range passed in is lnger that 2048.0 seconds, then the time_unit will be increased to 16.
sim_ut_ref is the reference time for the simulation, this is usually the start time. Can be in any ANYTIM format. The default is '21-jun-2001 00:00'.
sim_time_range is the time range, in seconds, relative to the reference time sim_ut_ref for the simulation. Note that sim_time_range is not required if a time array or time profile is passed in.
if sim_use_spectrum is set, then use an input spectrum or spectral model to create the simulations. (As opposed to the old method of specifying sim_photons_per_coll, and a count distribution). If this is set, then the spec_model, spec_pars keywords, or the photon_flux and photon_energy keywords must be used.
sim_photons_per_coll, a floating point number, is used to control the overall flux level of the simulated data. The units are in photons per second per collimator incident on the spacecraft, with a default value of 10000. This is dealt with differently in the new software; in previous versions, sim_photons_per_coll referred to photon counts, after the energy response matrix of the given detector was accounted for, now this number refers to the total photon flux incident before taking the detector response into account. This means that there are fewer counts registered in the new version for the same value of sim_photons_per_coll. This is a scalar. This parameter is ignored if sim_use_spectrum is set. Note that this is the total value of photons per detector, if there are multple sources in the image (see sim_model ) then the counts are divided up between the sources, photons_per_source=sim_photons_per_coll*model.amplitude/total(model.amplitude)
If no control parameters are set, then then simulation will run using sim_photons_per_coll = 1.0e4, as always.
sim_time_profile_ptr is a pointer to a structure with two tags, time and profile. The time profile of the generated events follows profile. The observed time of the event is governed by interpolating the time integration of the profile using the time tag, referenced to the start of the time_range. (See Numerical Recipies, Chapter 7) Profile has values from 0 to 1. Note also that the time profile will have steps; if you want variation on small time scales, then you need to pass in a time profile with a small time resolution, or set the /sim_interp_tprofile keyword described below.
sim_photon_flux_ptr is a pointer to an array of photon flux in photons/cm^2/sec/keV. If this is set the sim_spec_pars and sim_spec_model keywords are ignored, but the photon_energy_ptr keyword must also be used. Note that photon flux arrays can be different for different sources, just pass in the array as (n_energies, n_times, n_sources). Note that the values in sim_photon_flux_ptr can be used to give the shape of the spectrum if the sim_photons_per_coll parameter is set, but not the magnitude. Note that this is the total flux for all sources, unless a photon flux is specified for each source; if there are multple sources in the image (see sim_model ) then the flux is divided up between the sources, flux_per_source=sim_photon_flux*model.amplitude/total(model.amplitude) If a flux is specified for each source, then model.amplitude is not used.
There are two ways to deal with time variation. If the shape of the spectrum varies with time then a time array must be passed in using the sim_photon_times_ptr keyword. If the spectral shape is constant, and only the magnitude of the spectrum changes, then pass in a time profile and time array in the sim_time_profile_ptr keyword described above.
sim_photon_energy_ptr is a Pointer to an array of photon energies for the input photon flux. This is required if sim_photon_flux_ptr is used.
sim_photon_times_ptr is a pointer to a time array for the input photon flux. This is needed if sim_photon_flux_ptr is a 2d (n_energies, ntimes) or 3d (n_energies, ntimes, n_sources) array. This is defined relative to the reference time that was passed in.
sim_spec_model is the spectral model, the default is 'f_bpow', a double power law spectrum. These models are defined for the spectroscopy routines used by the XRAY package. The XRAY package must be part of the local SSW tree.
sim_spec_pars are spectral parameters for the given model, usually a fltarr[6] or fltarr[8]. As for the case of sim_photon_flux_ptr, the spectrum is used if /sim_use_spectrum is set, if it is not set, then only the shape of the spectrum is used. can be an array of (n_pars), (n_pars, ntimes) in which case sim_photon_times_ptr must be set, or an array of (n_pars, ntimes, n_sources). The default spectrum is a power law with spectral index of 3, spec_pars=[1, 3, 100, 3, 10, 1.5], with a low enegry break at 10 keV. This is used also for the cases where sim_photons_per_coll is used, and the spectrum is not passed in.
As mentioned above, the time profile for the simulation doesn't vary smoothly, there are steps. Sometimes it's convenient to only pass in a time profile with one or two intervals. For these cases, use sim_interp_tprofile to be sure that the count rate varies smoothly relative to the modulation.
sim_interp_dt is the time interval for the sim_interp_tprofile option. The default value is 1/128 seconds.
If sim_just_background is set, only background counts are produced.
sim_background is a factor used to multiply the background spectrum given by HESSI_BACKGROUND. The default is 0, If set to 0 no background is used.
All of the spectral and time profile keywords are applicable to the background case with sim_bkgd_ instead of just sim_ . These are applied to the background spectrum in the same manner as to the model spectrum except that background spectra are always interpreted as counts spectra and not flux spectra. The parameters are: sim_bkgd_time_unit, sim_bkgd_ut_ref, sim_bkgd_time_range, sim_use_bkgd_spectrum, sim_bkgd_time_profile_ptr, sim_bkgd_photons_per_coll, sim_bkgd_photon_flux_ptr, sim_bkgd_photon_energy_ptr, sim_bkgd_photon_times_ptr, sim_bkgd_spec_model, sim_bkgd_spec_pars, sim_bkgd_interp_tprofile, and sim_bkgd_interp_dt.
sim_energy_band is the energy band for the simulation, the default is [6.0, 100.0] keV. If sim_energy_band has n+1 elements, then the simulation routines are run n times, once for each energy band. This is the way to simulate large energy ranges;e.g., if you need to do the range from 3 to 1000 keV, you can pass in sim_energy_band=[3, 20, 50, 100, 200, 400, 600, 800, 1000] (or somethig similar) so that the variation of the grid responses with energy can be accounted for properly.
This is the gain_generation parameter passed into the routine Hsi_get_e_edges. (generation 0 is "old" gain, generation 1 is new gain, generation 2 will probably be on-orbit results) The default is 1.
This is the gain_time_wanted parameter passed into the routine Hsi_get_e_edges. Causes a time-dependent database (FITS format) to be read for interpolation if set. The default is 0.0.
sim_aspect_solution is an object passed into (and returned) by the simulation. If you have a known aspect solution and you want to simulate data using this solution, then pass in the object with the aspect solution as sim_aspect_solution.
If sim_saszero is set, the aspect solution is constant, with
pointing of [0, 0], and roll_period of 4 seconds.
sim_model can be used to pass in a structure (labelled
gaussian_source_str) which specifies a 2d Gaussian source. The
Gaussian is specified by its amplitude, x and y standard deviation (in
arcseconds), its position relative to the center of the image (in
arcseconds), and its tilt angle. The amplitude refers to the total
photon flux from the source, not the peak value. The maximum value of
amplitude is 1, if you want two sources of equal strength, set
both amplitudes to 1.0. See the demo program
sim_2gaussians.pro in the
hsi_sim_flare document.
The model also may be of the type
{curved_gaussian_source_str}, which has a curvature value in addition
to the above parameters. The model can also be given as an array with
zeroes everywhere except at the location of point sources. The non
zero values should be specified in normalized units, with a maximum of
1.0. The default model is a two-component gaussian source with equal
amplitudes, and xy standard deviations of 0.001 arcesc, to simulate
point sources.
sim_a2d_index_mask is a 27 element byte array that controls which
detector data is used in the simulation. A value of 1 indicates the
detector will be used, and a value of 0 indicates that it will not.
The first 9 elements refer to the front segments of detectors 1-9, the
next 9 elements of the array refer to the low energy portion of the
rear segments of detectors 1-9, and the last 9 elements refer to the
high energy portion of the rear segments for detectors 1-9.
sim_pixel_size is used to set the size of the pixels when using
a model image of some size (e.g. 64 X 64). The default sim_pixel_size
is 2.0 arcseconds, which is different from the default imaging
pixel_size.
sim_xyoffset, a 2 element floating point vector, is used to
specify the center of the simulation box.
sim_srt_filename denotes the grid response database file to use for
simulations. The default is the latest version,
$SSW/hessi/dbase/grid_resp/SRT_2*.dat.
sim_seed is the seed value for random number routines, set this
to reproduce results.
sim_nbuff is the maximum number of photons that are processed at
one time, the default value is 5.0e5, which results in a maximum
memory usage of aboput 100 Mbytes. A larger value can be used if
you have more memory.
sim_cryocooler_power is set to 1 if the cryocoller is on, 0 if it
is off.
sim_atten_state is the attenuator state, 0 = no attanuators, 1 =
Thin in, thick out (default), 2 = thick in, thin out, 3 = both in.
Comments to: jimm@ssl.berkeley.edu
19-nov-2001, jmm
sim_model
sim_a2d_index_mask
sim_pixel_size
sim_xyoffset
sim_srt_filename
sim_seed
sim_nbuff
sim_idpu_version
These next 12 parameters describe the data that ends up in the science
data header in each packet.
This parameter contains the version number of the IDPU software, which
controls the decimation interface control table. The default is zero,
and this parameter does nothing as of 12-Nov-2001.
sim_cryocooler_power
sim_cold_plate_temperature
sim_cold_plate_temperature gives the cold_plate temperature -60.
sim_idpu_temp
sim_idpu_temperature gives the idpu temperature -60.
sim_heater_power
sim_heater_power is set to 1 if the heater is on, 0 if the heater is
off.
sim_hv_power
sim_hv_power is set to 1 if the high voltage is on, 0 if the high
voltage is off.
sim_actuator_power
sim_actuator_power is set to 1 if the actuator is on, 0 if the actuator is
off.
sim_fast_rates
sim_fast_rates is set to 1 if fast rates are enabled, 0 if not. In the
future fast rate packets will be generated when sim_fast_rates is set.
sim_sc_transmit
sim_sc_transmit is set to 1 if the spacecraft is transmitting, 0 if
not.
sim_insun
sim_insun is 1 if the spacecraft is in sunlight, 0 if not. The use of
this keyword has not been synched to oribt data (as of 12-nov-2001).
sim_ssr_state
sim_ssr_state measures how full the memory is, 0 = empty 8 = full.
The default value is 0.
sim_atten_state