This page was created by the IDL library routine
mk_html_help. For more information on
this routine, refer to the IDL Online Help Navigator
or type:
? mk_html_help
at the IDL command line prompt.
Last modified: Thu Apr 18 11:52:38 2013.
NAME:
MCA::ADD_ROI
PURPOSE:
This procedure adds a new region-of-interest to the MCA. If the
maximum number of ROIs has been exceeded then this routine returns -1
else it returns 0.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
status = mca->ADD_ROI(roi)
INPUTS:
Roi: A structure of type MCA_ROI.
KEYWORD PARAMETERS:
ENERGY: Set this flag to indicate that the .left and .right fields
of Roi are in units of energy rather than channel number.
FUNCTION RETURNS:
0 if the ROI was added successfully, -1 if there are too many ROIs.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
roi = {MCA_ROI}
roi.left = 500
roi.right = 600
roi.label = 'Fe Ka'
mca->ADD_ROI, roi
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
23-Mar-1998 Mark Rivers, changed the input to be an MCA_ROI
structure from left, right, label, bgd_width
11-Sep-1998 Mark Rivers. Added ENERGY keyword
(See mca__define.pro)
NAME:
MCA::BACKGROUND_INITIALIZE
PURPOSE:
This procedure initializes a structure of type {MCA_BACKGROUND}. It is
typically called before calling FIT_BACKGROUND
CATEGORY:
MCA object library.
CALLING SEQUENCE:
Result = mca->BACKGROUND_INITIALIZE()
OUTPUT:
This function returns a structure of type {MCA_BACKGROUND} with a number
of fields initialized to appropriate values.
PROCEDURE:
This function initializes the fields in the {MCA_BACKGROUND} structure as
follows:
.exponent = 2
.top_width = 0.
.bottom_width = 4.
.tangent = 0
.compress = 4
These are reasonable default values for fitting x-ray spectra collected
with Si(Li) or Ge detectors.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
fit = mca->BACKGROUND_INITIALIZE()
MODIFICATION HISTORY:
Written by: Mark Rivers, November 1, 1998
(See mca__define.pro)
NAME:
MCA::CHAN_TO_D
PURPOSE:
This function converts channels to "d-spacing" using the current
calibration values for the MCA. This routine can convert a single
channel number or an array of channel numbers. Users are strongly
encouraged to use this function rather than implement the conversion
calculation themselves, since it will be updated if additional
calibration parameters are added. This routine is useful for energy
dispersive diffraction experiments. It uses both the energy calibration
parameters and the "two-theta" calibration parameter.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->CHAN_TO_D(Channels)
INPUTS:
Channels: The channel numbers to be converted to "d-spacing".
This can be a single number or an array of channel numbers.
OUTPUTS:
This function returns the equivalent "d-spacing" for the input channels.
The output units are in Angstroms.
RESTRICTIONS:
This function assumes that the units of the energy calibration are keV
and that the units of "two-theta" are degrees.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
channels = findgen(mca->GET_NCHANS()) ; All channel numbers
d = mca->CHAN_TO_D(channels) ; Get the "d-spacing" of these
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::CHAN_TO_ENERGY
PURPOSE:
This function converts channels to energy using the current
calibration values for the MCA. This routine can convert a single
channel number or an array of channel numbers. Users are strongly
encouraged to use this function rather than implement the conversion
calculation themselves, since it will be updated if additional
calibration parameters (cubic, etc.) are added.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->CHAN_TO_ENERGY(Channels)
INPUTS:
Channels: The channel numbers to be converted to energy. This can be
a single number or an array of channel numbers.
OUTPUTS:
This function returns the equivalent energy for the input channels.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
channels = findgen(mca->GET_NCHANS()) ; All channel numbers
energy = mca->CHAN_TO_ENERGY(channels) ; Get the energy of these
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::COPY
PURPOSE:
This functions returns a copy of the MCA object.
CATEGORY:
MCA object library
CALLING SEQUENCE:
Result = mca->COPY()
PROCEDURE:
This function simply makes a copy of the MCA object and returns it.
It would be nice if IDL had a universal way to make a copy of an
object, preserving all of the data in that object, but there is
currently no such functionality in IDL.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
new = mca->COPY()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 23, 1998
(See mca__define.pro)
NAME:
MCA::DEL_ROI
PURPOSE:
This procedure deletes the specified region-of-interest from the MCA.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->DEL_ROI, index
INPUTS:
Index: The index of the ROI to be deleted, range 0 to nrois-1
OUTPUTS:
None
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
mca->DEL_ROI, 2
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
23-Mar-1998: Mark Rivers, changed routine to use ROI index, rather
than left and right channel numbers.
Function MCA::FIND_ROI is typically used to find the
index number before calling this routine.
(See mca__define.pro)
NAME:
MCA::D_TO_CHAN
PURPOSE:
This function converts "d-spacing" to channels using the current
calibration values for the MCA. This routine can convert a single
"d-spacing" or an array of "d-spacings". Users are strongly
encouraged to use this function rather than implement the conversion
calculation themselves, since it will be updated if additional
calibration parameters are added. This routine is useful for energy
dispersive diffraction experiments. It uses both the energy calibration
parameters and the "two-theta" calibration parameter.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->D_TO_CHAN(D_spacing)
INPUTS:
D_spacing: The "d-spacing" values to be converted to channels.
This can be a single number or an array of values.
OUTPUTS:
This function returns the closest equivalent channel for the input
"d-spacing". Note that it does not generate an error if the channel
number is outside the range 0 to (nchans-1), which will happen if the
"d-spacing" is outside the range for the calibration values of the MCA.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
channel = mca->D_TO_CHAN(1.598)
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::ENERGY_TO_CHAN
PURPOSE:
This function converts energy to channels using the current
calibration values for the MCA. This routine can convert a single
energy or an array of energy values. Users are strongly
encouraged to use this function rather than implement the conversion
calculation themselves, since it will be updated if additional
calibration parameters are added.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->ENERGY_TO_CHAN(Energy)
INPUTS:
Energy: The energy values to be converted to channels. This can be a
single number or an array of energy values.
OUTPUTS:
This function returns the closest equivalent channel for the input
energy. Note that it does not generate an error if the channel number
is outside the range 0 to (nchans-1), which will happen if the energy
is outside the range for the calibration values of the MCA.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
channel = mca->ENERGY_TO_CHAN(5.985)
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
Mark Rivers, November 4, 1997
Fixed bug when converting an array of energies with non-linear
calibration coefficients
Mark Rivers, February 20, 2000
Fixed bug in choosing the correct root returned by fz_roots
(See mca__define.pro)
NAME:
MCA::FINAL_CALIBRATION
PURPOSE:
This procedure performs a final fine energy calibration of the
MCA, setting both the offset and slope parameters.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->FINAL_CALIBRATION, Peaks
INPUTS:
Peaks: The array of MCA_PEAKS structures to be used by MCA::FIT_PEAKS.
OUTPUTS:
None:
PROCEDURE:
This routine does the following:
1) Fits the background
2) Fits the peaks, determining the best-fit energy offset and
slope.
3) Sets the offset and slope of the energy calibration to the
values from the fit
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
peaks = read_peaks('calib.pks')
mca->FINAL_CALIBRATION, peaks
MODIFICATION HISTORY:
Written by: Mark Rivers, Sept. 15, 1998
(See mca__define.pro)
NAME:
MCA::FIND_ROI
PURPOSE:
This procedure finds the index number of the ROI with a specified
left and right channel number.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
index = mca->FIND_ROI(Left, Right)
INPUTS:
Left: Left channel number of this ROI
Right: Right channel number of this ROI
KEYWORD PARAMETERS:
ENERGY: Set this flag to indicate that Left and Right are in units
of energy rather than channel number.
FUNCTION RETURNS:
Index of the specified ROI, -1 if the ROI was not found.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
index = mca->FIND_ROI(left, right)
MODIFICATION HISTORY:
Written by: Mark Rivers, March 23, 1998
(See mca__define.pro)
NAME:
MCA::FIT_BACKGROUND
PURPOSE:
This function fits the background to the MCA spectrum.
CATEGORY:
MCA object library.
CALLING SEQUENCE:
Result = mca->FIT_BACKGROUND()
KEYWORD PARAMETERS:
All keywords accepted by the FIT_BACKGROUND function.
OUTPUTS:
This function returns an MCA object which is identical to the calling
object, except that the data have been replaced by the background fit.
PROCEDURE:
This routine provides a convenient interface to the
FIT_BACKGROUND function.
The function extracts the data and calibration slope from the input
MCA object, and passes them to FIT_BACKGROUND(). It creates a new
MCA object using MCA::COPY() and stores the output of FIT_BACKGROUND()
in this new object with MCA::SET_DATA. It then returns this new MCA
object as the function return value.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
bgd = mca->FIT_BACKGROUND(bottom=6, exponent=4)
mca->plot
bgd->oplot
MODIFICATION HISTORY:
Written by: Mark Rivers, October 23, 1998
(See mca__define.pro)
NAME:
MCA::FIT_INITIALIZE
PURPOSE:
This procedure initializes a structure of type {MCA_FIT}. It is
typically called before calling FIT_PEAKS
CATEGORY:
MCA object library.
CALLING SEQUENCE:
Result = mca->FIT_INTIIALIZE()
OUTPUT:
This function returns a structure of type {MCA_FIT} with a number
of fields initialized to appropriate values.
PROCEDURE:
This function initializes the fields in the {MCA_FIT} structure as
follows:
.first_chan = 0
.last_chan = self.nchans-1
.nchans = self.nchans
.initial_energy_offset = self.calibration.offset
.initial_energy_slope = self.calibration.slope
.energy_flag = 1
.fwhm_flag = 1
.initial_fwhm_offset = .15 ; 150 eV constant
.initial_fwhm_slope = 0.
.chi_exp = 0.
.max_iter = 20
.tolerance = 1.e-4
.debug = 0
These are reasonable default values for fitting x-ray spectra collected
with Si(Li) or Ge detectors.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
fit = mca->FIT_INITIALIZE()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 23, 1998
(See mca__define.pro)
NAME:
MCA::FIT_PEAKS
PURPOSE:
This function fits the peaks in the MCA spectrum. It provides a
convenient interface to the FIT_PEAKS function.
CATEGORY:
MCA object library.
CALLING SEQUENCE:
Result = mca->FIT_PEAKS(Peaks)
INPUTS:
Peaks: An array of structures of type {MCA_PEAKS}. See FIT_PEAKS and READ_PEAKS
for more information.
KEYWORD PARAMETERS:
FIT:
A structure of type {MCA_FIT} which can be used to control the
peak fitting. If this keyword is omitted then the Fit structure
is created with mca->FIT_INITIALIZE()
BACKGROUND:
An MCA object containing the fitted background. If this keyword
is omitted then this function will call mca->FIT_BACKGROUND before
calling FIT_PEAKS.
OUTPUT:
The name of an output file to receive the ASCII printout of the
fit results. This keyword is simply passed to MCA::FIT_PEAKS_REPORT.
SPREADSHEET:
The name of an output file to receive the ASCII output of the
fit results in spreadsheet format. This keyword is simply passed to MCA::FIT_PEAKS_REPORT.
APPEND:
Flag indicating whether the output and spreadsheet files should be
appended to or overwritten. This keyword is simply passed to MCA::FIT_PEAKS_REPORT.
In addition to these keywords, all keywords accepted by the FIT_BACKGROUND
function are accepted if the Background keyword is not present, i.e.
if this function will be calling FIT_BACKGROUND().
OUTPUTS:
This function returns an MCA object which is identical to the calling
object, except that the data have been replaced by the peak fit.
PROCEDURE:
The function does the following:
- Creates the Fit structure with mca->FIT_INITIALIZE() if Fit
was not passed as a keyword parameter.
- Fits the background using MCA::FIT_BACKGROUND if Background
was not passed as a keyword parameter.
- Extracts the data from the input spectrum and the background
spectrum.
- Calls the FIT_PEAKS
function with the background subtracted data.
- Calls MCA::FIT_PEAKS_REPORT
- Creates a new MCA object using MCA::COPY() and stores the output
of FIT_PEAKS() in this new object with MCA::SET_DATA. It then
returns this new MCA object as the function return value.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
peaks = read_peaks('mypeaks.pks')
fit = mca->FIT_PEAKS(peaks, bottom=6, exponent=4)
mca->plot
fit->oplot
MODIFICATION HISTORY:
Written by: Mark Rivers, October 23, 1998
Nov. 1, 1998. Mark Rivers. Added APPEND keyword
Jan. 4, 2001. Mark Rivers. Added SPREADHSHEET keyword.
(See mca__define.pro)
NAME:
MCA::FIT_PEAKS_REPORT
PURPOSE:
This procedure prints out the results from FIT_PEAKS
CATEGORY:
MCA object library.
CALLING SEQUENCE:
mca->FIT_PEAKS_REPORT, Fit, Peaks, Background
INPUTS:
Fit: A structure of type {MCA_FIT}.
Peaks: An array of structures of type {MCA_PEAK}.
(See FIT_PEAKS for more information on Fit and Peaks)
Background: An MCA object containing the fitted background spectrum.
KEYWORD PARAMETERS:
OUTPUT:
The name of an output file to receive the ASCII printout of the
fit results. If this keyword is omitted then the output will be
written to stdout, i.e. the IDL output window. If the Output file
already exists then the new information will (by default) be appended
to the file.
SPREADSHEET:
The name of an output file to receive the ASCII output of the
fit results in a format easily imported into a spreadsheet. If this
keyword is omitted then no spreadsheet output will be generated.
written to stdout, i.e. the IDL output window.
If the spreadhseet file already exists then the new information will
(by default) be appended to the file.
APPEND:
Set this keyword to 0 to overwrite the output and spreadsheet files
rather than to append to them, which is the default behavior.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
peaks = read_peaks('mypeaks.pks')
fit = mca->fit_peaks(peaks, fit=fit, background=background, $
bottom=6, exponent=4)
mca->FIT_PEAKS_REPORT, fit, peaks, background, output='mca.001_out'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 23, 1998
Nov. 1, 1998. Mark Rivers. Added APPEND keyword
Nov. 17, 1998 Mark Rivers. Added error string, initial energy.
Jan. 4, 2001 Mark Rivers. Added spreadsheet file output.
Jan. 9, 2001 Mark Rivers. Modified spreadsheet output slightly
Jan. 18, 2001 Mark Rivers. Added energy and FWHM to spreadsheet output
(See mca__define.pro)
NAME:
MCA::GET_ACQUIRE_STATUS
PURPOSE:
This function returns the acquisition status of the MCA.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->GET_ACQUIRE_STATUS()
INPUTS:
None:
OUTPUTS:
This function returns the acquisition status of the MCA.
The function returns 0 if the device is not acquiring and 1 if it
is acquiring.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
acq = mca->GET_ACQUIRE_STATUS()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::GET_CALIBRATION
PURPOSE:
This function returns the calibration parameters for the MCA.
The calibration information is contained in a structure of type
MCA_CALIBRATION.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->GET_CALIBRATION()
INPUTS:
None:
OUTPUTS:
This function returns the calibration information for the MCA.
The calibration information is contained in a structure of type
MCA_CALIBRATION. This structure is currently defined as follows:
{mca_calibration, $
offset: 0., $
slope: 0., $
quad: 0., $
units: '', $
two_theta: 0. $
}
The calibration equation is:
energy = .offset + .slope*channel + .quad*channel^2
where channel 0 is the first channel and offset is thus the energy
of the first channel.
The function MCA::CHANNEL_TO_ENERGY or MCA::ENERGY_TO_CHANNEL
should always be used rather than implementing the above equation
directly in case additional calibration parameters are implemented in
the future.
.units is a string, typically something like "keV".
.two_theta is the angle of the detector from the incident beam. This
is typically used in energy-dispersive diffraction.
NOTE: The exact definition of the MCA_CALIBRATION structure is subject
to change. What will not change is the name and function of the fields
described here. However, additional fields may be added and the order
of the fields could change. Users should not write code which assumes
anything about the exact definition of this structure.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
calibration = mca->GET_CALIBRATION()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::GET_DATA
PURPOSE:
This function returns the data for the MCA.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->GET_DATA()
INPUTS:
None:
OUTPUTS:
This function returns the data for the MCA. This is an array whose
length is the same as that returned by the function MCA::GET_NCHANS().
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
data = mca->GET_DATA()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::GET_ELAPSED
PURPOSE:
This function returns the elapsed parameters for the MCA.
The elapsed information is contained in a structure of type
MCA_ELAPSED.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->GET_ELAPSED()
INPUTS:
None:
OUTPUTS:
This function returns the elapsed information for the MCA.
The elapsed information is contained in a structure of type
MCA_ELAPSED. This structure is currently defined as follows:
{mca_elapsed, $
start_time: '', $
live_time: 0., $
real_time: 0., $
read_time: 0.D0, $
total_counts: 0. $
}
.start_time is a string, containing the date and time when acquisition
started
.live_time is the elapsed live time in seconds.
.real_time is the elapsed real time in seconds.
.total_counts is the total counts between the preset start and end
channels
NOTE: The exact definition of the MCA_ELAPSED structure is subject
to change. What will not change is the name and function of the fields
described here. However, additional fields may be added and the order
of the fields could change. Users should not write code which assumes
anything about the exact definition of this structure.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
elapsed = mca->GET_ELAPSED()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::GET_ENERGY
PURPOSE:
This function returns an array containing the energy of each channel in
the MCA spectrum.
CATEGORY:
MCA object library.
CALLING SEQUENCE:
Result = mca->GET_ENERGY()
PROCEDURE:
This routine simply returns mca->chan_to_energy(indgen(self.nchans))
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
energy = mca->GET_ENERGY()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 23, 1998
(See mca__define.pro)
NAME:
MCA::GET_ENVIRONMENT
PURPOSE:
This function gets the environment parameters for the MCA.
The environment information is contained in an array of structures
of type MCA_ENVIRONMENT.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->GET_ENVIRONMENT()
KEYWORD PARAMETERS:
NAME :
This keyword can be used to define a search string. Only
environment array elements whose .NAME fields contain this
string will be returned. The match is done using STRPOS and
the match does not have to be complete, i.e. NAME can be a
substring of the .NAME field.
DESCRIPTION:
This keyword can be used to define a search string. Only
environment array elements whose .DESCRIPTION fields contain this
string will be returned. The match is done using STRPOS and
the match does not have to be complete, i.e. DESCRIPTION can be a
substring of the .DESCRIPTION field.
One can specify either the NAME or DESCRIPTION keywords, but not both.
If neither is specified then the function returns all of the
environment array elements.
OUTPUTS:
This function returns the environment information for the MCA.
The environment information is contained in an array of structures of
type MCA_ENVIRONMENT. This structure is currently defined as follows:
{mca_environment, $
name: '', $
value: '', $
description: '' $
}
NOTE: The exact definition of the MCA_ENVIRONMENT structure is subject
to change. What will not change is the name and function of the fields
described here. However, additional fields may be added and the order
of the fields could change. Users should not write code which assumes
anything about the exact definition of this structure.
OPTIONAL OUTPUTS:
Count: The size of the {MCA_ENVIRONMENT} array being returned. This
will be <=0 if there are no environment variables in the MCA
or if no entries matched the NAME or DESCRIPTION criteria.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
env = mca->GET_ENVIRONMENT(count)
; Get all environment variables
help, /structure, env[0]
; Get all of the sample information
env = mca->GET_ENVIRONMENT(DESCRIPTION='Sample', count)
for i=0, count-1 do print, env[i].name, '=', env[i].value
MODIFICATION HISTORY:
Written by: Mark Rivers, October 31, 1998
(See mca__define.pro)
NAME:
MCA::GET_NAME
PURPOSE:
This function returns the name of this MCA object.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->GET_NAME()
INPUTS:
None:
OUTPUTS:
This function returns the name of the MCA object. This is typically either
the hardware name of the detector or the name of the disk file that contained
the MCA data.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
name = mca->GET_NAME()
MODIFICATION HISTORY:
Written by: Mark Rivers, September 21, 2001
(See mca__define.pro)
NAME:
MCA::GET_NCHANS
PURPOSE:
This function returns the number of channels in the MCA
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->GET_NCHANS()
INPUTS:
None:
OUTPUTS:
This function returns the number of channels in the MCA.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
nchans = mca->GET_NCHANS()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::GET_PRESETS
PURPOSE:
This function returns the preset parameters for the MCA.
The preset information is contained in a structure of type
MCA_PRESETS.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->GET_PRESETS()
INPUTS:
None:
OUTPUTS:
This function returns the preset information for the MCA.
The preset information is contained in a structure of type
MCA_PRESETS. This structure is currently defined as follows:
{mca_presets, $
live_time: 0., $
real_time: 0., $
total_counts: 0., $
start_channel: 0L, $
end_channel: 0L, $
dwell: 0., $
channel_advance: 0L, $
prescale: 0L $
}
.live_time is the preset live time in seconds.
.real_time is the preset real time in seconds.
.total_counts is the total counts between the preset start and end
channels
.start_channel is the first channel for the preset count region
.end_channel is the last channel for the preset count region
.dwell is the dwell time in seconds for MCS mode
.channel_advance is 0 for internal channel advance, 1 for external in
MCS mode
.prescale is the external prescale factor in MCS mode
NOTE: The exact definition of the MCA_PRESETS structure is subject
to change. What will not change is the name and function of the fields
described here. However, additional fields may be added and the order
of the fields could change. Users should not write code which assumes
anything about the exact definition of this structure.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
presets = mca->GET_PRESETS()
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::GET_ROIS
PURPOSE:
This function returns the region-of-interest parameters for the MCA.
This information is contained in an array of structures of type
MCA_ROI.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->GET_ROIS(ROI_Info, /ENERGY)
INPUTS:
None:
KEYWORD PARAMETERS:
ENERGY: Set this keyword to return the ROI .left and .right fields
in energy rather than in channels.
OUTPUTS:
This function returns the region-of-interest parameters for the MCA.
This information is contained in an array of structures of type
MCA_ROI. This structure is currently defined as follows:
{mca_roi, $
left: 0., $
right: 0., $
centroid: 0., $
bgd_width: 0L, $
use: 0L, $
preset: 0., $
label: '', $
d_spacing: 0., $
energy: 0. $
}
.left is the left channel (or energy) of the region of interest
.right is the right channel (or energy) of the region of interest
.centroid is the channel centroid of the region of interest.
Note that this value is NOT presently computed by the MCA class.
.bgd_width is the number of channels of background outwide the ROI
to be used in computing net counts in the ROI
.use is a flag indicating whether this ROI should be used in
energy-calibration.
.preset is the preset counts in the ROI
.label is a string label to identify the ROI
.d_spacing is the lattice spacing for this ROI when it is a diffraction
peak
.energy is the energy of the centroid of the ROI
NOTE: The exact definition of the MCA_ROI structure is subject
to change. What will not change is the name and function of the fields
described here. However, additional fields may be added and the order
of the fields could change. Users should not write code which assumes
anything about the exact definition of this structure.
OPTIONAL OUTPUTS:
Roi_Info: This is a structure which returns some additional
information about the regions-of-interest. This structure
is presently defined as follows:
{max_rois: 0L, $
nrois: 0L}
.max_rois is the maximum number of ROIs which can be
defined.
.nrois is the number of ROIs presently defined. This is the
number of elements in the function return value.
If there are no ROIs presently defined then this number
is zero, and the function return value will be a single
structure of type MCA_ROI which should be ignorred.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
rois = mca->GET_ROIS(roi_info)
if (roi_info.nrois gt 0) then begin
print, rois[0].left
...
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
Mark Rivers, Sept. 25, 1998 Added ENERGY keyword
(See mca__define.pro)
NAME:
MCA::GET_ROI_COUNTS
PURPOSE:
This procedures returns the net and total counts of each
region-of-interest in the MCA.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->GET_ROI_COUNTS, Total, Net
INPUTS:
None
KEYWORD PARAMETERS:
BACKGROUND_WIDTH :
Set this keyword to set the width of the background region on either
side of the peaks when computing net counts. The default is 1.
OUTPUTS:
Total: The total counts in each ROI.
Net: The net counts in each ROI.
The dimension of each array is NROIS, where NROIS
is the number of currently defined ROIs for this MCA. It returns
zero for both if NROIS is zero. Users should call
MCA::GET_ROIS() to check the number of ROIS.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
mca->GET_ROI_COUNTS, total, net, background_width=3
print, 'Net counts = ', net
MODIFICATION HISTORY:
Written by: Mark Rivers, June 29, 2001
(See mca__define.pro)
NAME:
MCA::INIT
PURPOSE:
This is the initialization code which is invoked when a new object of
type MCA is created. It cannot be called directly, but only
indirectly by the IDL OBJ_NEW() function.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = OBJ_NEW('MCA')
INPUTS:
None
OUTPUTS:
This function always returns success, since it is device independent
and always able to create a new object.
RESTRICTIONS:
This routine cannot be called directly. It is called indirectly when
creating a new object of class MCA by the IDL OBJ_NEW() function.
EXAMPLE:
mca = obj_new('MCA')
mca->READ_FILE, 'mca.001'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::INITIAL_CALIBRATION
PURPOSE:
This procedure performs an initial coarse energy calibration of the
MCA, setting only the slope, and setting the offset parameter to 0.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = mca->INITIAL_CALIBRATION, Energy
INPUTS:
Energy: The energy of the biggest peak in the MCA spectrum
PROCEDURE:
This routine does the following:
1) Sets the offset coefficient to 0.0
2) Sets the quadratic coefficient to 0.0
3) Determines which channel contains the most counts, PEAK_CHAN
4) Sets the slope equal to the input energy divided by PEAK_CHAN
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
mca->INITIAL_CALIBRATION, 20.1
MODIFICATION HISTORY:
Written by: Mark Rivers, Sept. 13, 1998
(See mca__define.pro)
NAME:
MCA::OPLOT
PURPOSE:
This procedure provides a quick and convenient way to overplot an
MCA spectrum.
CATEGORY:
MCA object library.
CALLING SEQUENCE:
mca->OPLOT, Data
OPTIONAL INPUTS:
Data: The data to be oplotted. The default is the entire spectrum in
the MCA object, i.e. data = mca->GET_DATA().
KEYWORD PARAMETERS:
All keywords accepted by the IDL "OPLOT" procedure. Such keywords
are passed to OPLOT via the _EXTRA mechanism.
PROCEDURE:
This routine simply does the following:
1) Sets Data = self->GET_DATA if Data is not defined
2) Sets Energy = self->chan_to_energy(findgen(n_elements(Data)))
3) Executes OPLOT, Energy, Data, _EXTRA=extra.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
mca->PLOT
mca->read_file, 'mca.002'
mca->OPLOT
MODIFICATION HISTORY:
Written by: Mark Rivers, October 23, 1998
(See mca__define.pro)
NAME:
MCA::PLOT
PURPOSE:
This procedure provides a quick and convenient way to plot an
MCA spectrum.
CATEGORY:
MCA object library.
CALLING SEQUENCE:
mca->PLOT, Data
OPTIONAL INPUTS:
Data: The data to be plotted. The default is the entire spectrum in
the MCA object, i.e. data = mca->GET_DATA().
KEYWORD PARAMETERS:
All keywords accepted by the IDL "PLOT" procedure. Such keywords
are passed to PLOT via the _EXTRA mechanism.
PROCEDURE:
This routine simply does the following:
1) Sets Data = self->GET_DATA if Data is not defined
2) Sets Energy = self->chan_to_energy(findgen(n_elements(Data)))
3) Executes PLOT, Energy, Data, _EXTRA=extra.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
mca->PLOT
MODIFICATION HISTORY:
Written by: Mark Rivers, October 23, 1998
(See mca__define.pro)
NAME:
MCA::READ_FILE
PURPOSE:
This procedure reads a disk file into an MCA object.
It simply calls MCA::READ_STANDARD_FILE.
The reason for having this routine is that it can easily be overridden
by compiling a replacement version after compiling this file. A
replacement version might, for example, first try to read a file in
a site-specific format and if that fails try to read the file using
MCA::READ_STANDARD_FILE.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->READ_FILE, File
INPUTS:
File: The name of the disk file to read.
OUTPUTS:
None
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1997.
10-FEB-2000 Split into READ_FILE and READ_STANDARD_FILE
(See mca__define.pro)
NAME:
MCA::READ_STANDARD_FILE
PURPOSE:
This procedure reads a disk file into an MCA object. The file format
is a tagged ASCII format. The file contains the information from the
MCA object which it makes sense to store permanently, but does not
contain all of the internal state information for the MCA. This
procedure reads files written with MCA::WRITE_FILE.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->READ_STANDARD_FILE, File
INPUTS:
File: The name of the disk file to read.
OUTPUTS:
None
EXAMPLE:
mca = obj_new('MCA')
mca->read_standard_file, 'mca.001'
MODIFICATION HISTORY:
Written by: Mark Rivers, Feb. 10, 2000. Split READ_FILE into
READ_FILE and READ_STANDARD_FILE.
(See mca__define.pro)
NAME:
MCA::SET_CALIBRATION
PURPOSE:
This procedure sets the calibration parameters for the MCA.
The calibration information is contained in a structure of type
MCA_CALIBRATION.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->SET_CALIBRATION, Calibration
INPUTS:
Calibration: A structure of type MCA_CALIBRATION. The current
definition of this structure is described in
MCA::GET_CALIBRATION().
NOTE: The exact definition of the MCA_CALIBRATION structure is subject
to change. What will not change is the name and function of the fields
described here. However, additional fields may be added and the order
of the fields could change. Users should not write code which assumes
anything about the exact definition of this structure.
OUTPUTS:
None
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
calibration = mca->GET_CALIBRATION()
calibration.offset = .014
mca->SET_CALIBRATION, calibration
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::SET_DATA
PURPOSE:
This procedure writes the data for the MCA.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->SET_DATA, Data
INPUTS:
Data: An array of data which is stored in the MCA object.
OUTPUTS:
None.
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
data = findgen(mca->GET_NCHANS())
mca->SET_DATA(), data
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::SET_ELAPSED
PURPOSE:
This procedure sets the elapsed parameters for the MCA.
The elapsed information is contained in a structure of type
MCA_ELAPSED.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->SET_ELAPSED, Elapsed
INPUTS:
Elapsed: A structure of type MCA_ELAPSED.
MODIFICATION HISTORY:
Written by: Mark Rivers, Sept. 25, 1998
(See mca__define.pro)
NAME:
MCA::SET_ENVIRONMENT
PURPOSE:
This procedure sets the environment parameters for the MCA.
The calibration information is contained in an array of structures of
type MCA_ENVIRONMENT.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->SET_ENVIRONMENT, Environment
INPUTS:
Environment: An array of structures of type MCA_ENVIRONMENT. The current
definition of this structure is described in
MCA::GET_ENVIRONMENT().
NOTE: The exact definition of the MCA_ENVIRONMENT structure is subject
to change. What will not change is the name and function of the fields
described here. However, additional fields may be added and the order
of the fields could change. Users should not write code which assumes
anything about the exact definition of this structure.
OUTPUTS:
None
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
env = mca->get_environment()
env[0].description = 'Test'
mca->SET_ENVIRONMENT, env
MODIFICATION HISTORY:
Written by: Mark Rivers, October 30, 1998
(See mca__define.pro)
NAME:
MCA::SET_NAME
PURPOSE:
This procedure sets the name of the MCA.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->SET_NAME, Name
INPUTS:
Name: A string giving the descriptive name of the MCA
OUTPUTS:
None
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
mca->SET_NAME, 'My MCA'
MODIFICATION HISTORY:
Written by: Mark Rivers, September 21, 2001
(See mca__define.pro)
NAME:
MCA::SET_PRESETS
PURPOSE:
This procedure sets the preset parameters for the MCA.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->SET_PRESETS, Presets
INPUTS:
Presets: A structure of type MCA_PRESETS. The current definition of
this structure is described in MCA::GET_PRESETS().
NOTE: The exact definition of the MCA_PRESETS structure is subject
to change. What will not change is the name and function of the fields
described here. However, additional fields may be added and the order
of the fields could change. Users should not write code which assumes
anything about the exact definition of this structure.
OUTPUTS:
None
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
presets = mca->GET_PRESETS()
presets.live_time = 0.5
mca->SET_PRESETS, presets
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
(See mca__define.pro)
NAME:
MCA::SET_ROIS
PURPOSE:
This procedure sets the region-of-interest parameters for the MCA.
The rois information is contained in a structure of type
MCA_ROIS.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->SET_ROIS, Rois
INPUTS:
Rois: A structure of type MCA_ROIS. The current definition of this
structure is described in MCA::GET_ROIS().
NOTE: The exact definition of the MCA_ROIS structure is subject
to change. What will not change is the name and function of the fields
described here. However, additional fields may be added and the order
of the fields could change. Users should not write code which assumes
anything about the exact definition of this structure.
KEYWORD PARAMETERS:
ENERGY: Set this flag to indicate that the .left and .right fields
of Rois are in units of energy rather than channel number.
OUTPUTS:
None
EXAMPLE:
mca = obj_new('MCA')
mca->read_file, 'mca.001'
rois = mca->GET_ROIS()
rois[0].left = 1012
rois[0].right = 1050
mca->SET_ROIS, rois
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
21-Mar-1998 Mark Rivers. Changed logic to modify nrois
(See mca__define.pro)
NAME:
MCA::WRITE_ASCII_FILE
PURPOSE:
This procedure writes MCA or MED objects to a disk file. The file format
is a tagged ASCII format. The file contains the information from the
MCA object which it makes sense to store permanently, but does not
contain all of the internal state information for the MCA. Files
written with this routine can be read with MCA::READ_FILE.
Note that users who want to read such files with IDL are strongly
encouraged to use MCA::READ_FILE. For reading files in other languages
users should use the tags to interpret the data and NOT rely on the
position of lines in the data. Additional tags may be added in the
future, but existing tags will not be changed.
This procedure is typically not called directly, but is called
by MCA::WRITE_FILE if the /NETCDF keyword is not used.
The following shows part of a file written with this procedure for a
13 element MED:
...
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->WRITE_ASCII_FILE, File
INPUTS:
File: The name of the disk file to write.
EXAMPLE:
mca = obj_new('MCA')
; Note - we don't call mca->write_ascii_file directly, but rather
; call mca->write_file without the /netcdf flag
mca->write_file, 'mca.001'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
28-SEP-1998 MLR Merged code for MCA and MED classes into a single
WRITE_FILE routine. The major changes are that
the file version number was changed from 3.0 to 3.1
and ROI labels now have an '&' character after them,
needed as a separator when storing MED data. The
files can now contain data for multiple MCAs.
30-OCT-1998 MLR Fixed a bug. The ELEMENTS: tag must be the first
tag after VERSION:, since controls the dimension
of arrays in READ_FILE. Previous version wrote
DATE: tag before ELEMENTS:
20-FEB-2000 MLR Changed format of calibration coefficients from F
to E to preserve precision.
31-MAY-2000 MLR Added ",x" to formats to compensate for a bug in IDL
(up to 5.3?) which caused no space in floating
numbers printed in "e" format if negative.
29-SEP-2001 MLR Renamed this procedure from MCA::WRITE_FILE to
MCA::WRITE_ASCII_FILE.
(See mca__define.pro)
NAME:
MCA::WRITE_FILE
PURPOSE:
This procedure writes MCA or MED objects to a disk file.
It calls MCA::WRITE_NETCDF_FILE if the /NETCDF keyword is specified,
otherwise it calls MCA::WRITE_ASCII_FILE.
Note that users who want to read such files with IDL are strongly
encouraged to use MCA::READ_FILE.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->WRITE_FILE, File
INPUTS:
File: The name of the disk file to write.
KEYWORD PARAMETERS:
NETCDF: Set this flag to write the file in netCDF format, otherwise
the file is written in ASCII format. See the documentation
for MCA::WRITE_ASCII_FILE and MCA::WRITE_NETCDF_FILE for
information on the formats.
EXAMPLE:
mca = obj_new('MCA')
mca->write_file, 'mca.001', /netcdf
MODIFICATION HISTORY:
Written by: Mark Rivers, September 29, 2001. The previous
version of MCA::WRITE_FILE was renamed to MCA::
WRITE_ASCII_FILE, and the MCA::WRITE_NETCDF_FILE was
added.
(See mca__define.pro)
NAME:
MCA::WRITE_FILE
PURPOSE:
This procedure writes MCA or MED objects to a disk file in netCDF
format. netCDF is a portable, self-describing binary format, and there
is software to read such files in many data analysis and data
visualization programs. It is much more efficient, in speed and disk
space, than the ASCII format. The file contains the information from the
MCA object which it makes sense to store permanently, but does not
contain all of the internal state information for the MCA. Files
written with this routine can be read with MCA::READ_FILE.
This procedure is typically not called directly, but is called
by MCA::WRITE_FILE if the /NETCDF keyword is used.
Note that users who want to read such files with IDL are strongly
encouraged to use MCA::READ_FILE. Files can be read in other languages
by using the netCDF library which is availble from XXXXX
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->WRITE_NETCDF_FILE, File
INPUTS:
File: The name of the disk file to write.
EXAMPLE:
mca = obj_new('MCA')
; Note - we don't call mca->write_netcdf_file directly, but rather
; use the /netcdf flag to mca->write_file
mca->write_file, 'mca.001', /netcdf
MODIFICATION HISTORY:
Written by: Mark Rivers, September 29, 2001.
(See mca__define.pro)
NAME:
MCA_READ_NETCDF_FILE
PURPOSE:
This procedure reads a disk file into an MCA object. The file format
is netCDF. The file contains the information from the
MCA object which it makes sense to store permanently, but does not
contain all of the internal state information for the MCA. This
procedure reads files written with MCA::WRITE_FILE, /NETCDF.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->READ_FILE, File, Elapsed, Calibration, Rois, Data
INPUTS:
File: The name of the disk file to read.
OUTPUTS:
None
EXAMPLE:
mca_read_netdf_file, 'mca.001', Elapsed, Calibration, Rois, Roi_info, Data
MODIFICATION HISTORY:
Written by: Mark Rivers, Sept. 29, 2001
(See mca__define.pro)
NAME:
MCA_READ_FILE
PURPOSE:
This procedure reads a disk file into an MCA object. This procedure
reads either ASCII or netCDF files. It does not read into the
object itself, because the dimensions in the disk file may be
inconsistent with those of the object. The object procedures call
this procedure.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
MCA_READ_FILE, File, Elapsed, Calibration, Rois, Roi_info, $
Environment, Data
INPUTS:
File: The name of the disk file to read.
OUTPUTS:
The elapsed, calibration, roi, environment and data information
in the disk file
EXAMPLE:
mca_read_file, 'mca.001', Elapsed, Calibration, Rois, Roi_info,
Environment, Data
MODIFICATION HISTORY:
Written by: Mark Rivers, September 29, 2001. Previous version
renamed to MCA_READ_ASCII_FILE
on_ioerror, ignore_error
ncdf_control, 0, /noverbose
file_id = ncdf_open(file, /nowrite)
gnore_error:
if (n_elements(file_id) eq 0) then begin
on_ioerror, null
; This is not a netCDF file, it is an ASCII file
mca_read_ascii_file, file, elapsed, calibration, rois, roi_info, $
environment, data
endif else begin
; This is a netCDF file
; Close the netCDF file that was opened in the test above
ncdf_close, file_id
mca_read_netcdf_file, file, elapsed, calibration, rois, roi_info, $
environment, data
endelse
nd
*****************************************************************************
ro mca_read_ascii_file, file, elapsed, calibration, rois, roi_info, $
environment, data
+
NAME:
MCA_READ_ASCII_FILE
PURPOSE:
This procedure reads a disk file into an MCA object. The file format
is a tagged ASCII format. The file contains the information from the
MCA object which it makes sense to store permanently, but does not
contain all of the internal state information for the MCA. This
procedure reads files written with MCA::WRITE_FILE.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
mca->READ_FILE, File, Elapsed, Calibration, Rois, Data
INPUTS:
File: The name of the disk file to read.
OUTPUTS:
None
EXAMPLE:
mca_read_ascii_file, 'mca.001', Elapsed, Calibration, Rois, Roi_info, Data
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
28-SEP-1998 MLR Made common READ_FILE routine for MCA and MED data
Old files can still be read fine. The new version
can read files containing multiple MCAs, e.g. MED
objects.
30-OCT-1998 MLR Added code to correctly read files written with
DATE: tag before ELEMENTS: tag. This was a bug in
WRITE_FILE which is also fixed.
31-MAY-2000 MLR Modified slightly to handle lines without a trailing
blank, as happens when some text editors modify them.
29-SEP-2001 MLR Renamed to MCA_READ_ASCII_FILE, added
MCA_READ_NETCDF_FILE
(See mca__define.pro)
NAME:
MCA__DEFINE
PURPOSE:
This is the definition code which is invoked when a new object of
type MCA is created. It cannot be called directly, but only
indirectly by the IDL OBJ_NEW() function. It defines the data
structures used for the MCA class.
CATEGORY:
IDL device class library.
CALLING SEQUENCE:
Result = OBJ_NEW('MCA')
INPUTS:
None
OUTPUTS:
None
RESTRICTIONS:
This routine cannot be called directly. It is called indirectly when
creating a new object of class MCA by the IDL OBJ_NEW()
function.
EXAMPLE:
mca = obj_new('MCA')
mca->READ_FILE, 'mca.001'
MODIFICATION HISTORY:
Written by: Mark Rivers, October 1, 1997
23-Mar-1998: Mark Rivers. Added .d_spacing to MCA_ROI structure.
16-May-1999: Mark Rivers. Added .read_time to MCA_ELAPSED structure.
(See mca__define.pro)
NAME:
Release notes
Version 3:
Everything prior to 5/16/99 when I started making release notes!
Prior to this date there are release notes for each routine but no
global release notes for the MCA class, and there are no
version numbers
Version 4.1
May 16, 1999 Mark Rivers
Added .read_time field to MCA_ELAPSED
Version 4.2
Dec. 2, 1999 Mark Rivers
Added .dwell, .channel_advance, .prescale to MCA_PRESETS
Dec. 3, 1999 Mark Rivers
Fixed WRITE_FILE so environment information is retrieved for
EPICS_MED.
Feb. 10, 2000 Mark Rivers
Added WRITE_STANDARD_FILE and READ_STANDARD_FILE, made
WRITE_FILE and READ_FILE call these routines. This makes it easy
to replace WRITE_FILE and READ_FILE with site-specific routines
but also retain the standard routines.
Feb. 20, 2000 Mark Rivers
Fixed bug in ENERGY_TO_CHAN which caused it to use the wrong root
of the quadratic equation if the quadratic term of the energy
calibration was positive.
Modified WRITE_FILE to use exponential notation for energy
calibration coefficients to preserve precision.
Jan. 4, 2001 Mark Rivers
Added spreadsheet compatible output to fit_peaks_report.
Jan. 4, 2001 Mark Rivers
Modified spreadsheet output slightly.
Jan. 18, 2001 Mark Rivers
Added energy and FWHM to spreadsheet output
Feb. 01, 2001 Mark Rivers
Changed fit_peaks.pro (not an mca method, but called by mca::fit_peaks)
to make it so that if a peak amplitude is constrained then the area
rather than the amplitude is actually what is constrained to the specified
value.
Mar. 20, 2001 Mark Rivers
Increased MAX_CHANS from 4096 to 8192 to handle X17 multiplexor (4x2048) data.
June 29, 2001 Mark Rivers
Added method mca::get_roi_counts to retrieve total and net counts
in each ROI. Added utility routine extract_spectra_scans.pro.
July 14, 2001 Mark Rivers
Minor documentation fix for mca::get_environment().
July 21, 2001 Mark Rivers
Increased MAX_ROIS from 10 to 32 to take advantage of new EPICS
record limit.
Sept. 21, 2001 Mark Rivers
Added GET_NAME and SET_NAME methods.
Sept. 29, 2001 Mark Rivers
Added support for netCDF file format.
Renamed MCA::WRITE_FILE to MCA::WRITE_ASCII_FILE, created
MCA::WRITE_NETCDF_FILE, new version of MCA::WRITE_FILE that calls
one or the other of these.
Renamed MCA_READ_FILE to MCA_READ_ASCII_FILE, created
MCA_READ_NETCDF_FILE, new version of MCA_READ_FILE that calls
one or the other of these.
Took the EPICS specific code to get environment out of the
WRITE_FILE routines, added call to GET_ENVIRONMENT()
August 28, 2002 Mark Rivers
Fixed bug in background calculation in FIT_PEAKS_REPORT, hi was
one channel to large.
(See mca__define.pro)