Xspec version v12.14 February 2024 New features - Added new models with a velocity broadening parameter to the cph, equil, gadem, gnei, nei, npshock, pshock, sedov, snapec, and wdem families. For instance bcph is the cph model but with a velocity broadening parameter and bvcph is the vcph model with a velocity broadening parameter. - Added new models vvgadem and bvvgadem with all parameters for all abundances. - Added new models with rationalized names although the old names are still available. So (b)(v)cempow can be used instead of cemekl and cevmkl; (b)(v)cheb6 instead of c6mekl and c6vmekl; (b)(v)expcheb6 instead of c6pmekl and c6pvmkl; (b)(v)coolflow instead of mkcflow and vmcflow. - All the collisional ionization equilibrium models which use atomdb data can now also use data from spex v3.07.03. The spex data can be used in two ways: 1) use xset APECUSESPEX yes in which case everything applies as usual except that the SPEX tables are use; 2) for those models with a switch parameter spex can be chosen by setting the value to 3. In this second case the equivalents of the apec control variables are available, eg SPEXROOT, SPEXNOLINES, etc. - Added new (b)(v)(v)cie models to allow easy switching between atomic physics sources for a single temperature plasma. These are equivalent to the apec models with a switch parameter added. - Added code to calculate electron-electron bremsstrahlung using formulae from Nozawa et al. 2009. This is available either as a separate eebremss model or included in the apec-based models using xset APECEEBREMSS yes. - Set the default redshift for all cooling flow models to 0.1 since 0.0 does not work. - Set the switch parameter to 2 (ie atomdb/apec) for all models where this parameter determines which atomic physics to use. - Improved output from the identify command. - Added to Numeric.h the mass of the e- in keV, the Thomson x-section, and the fine structure constant. - Added ability to specify user-defined values for the contour levels of 1-D contour plots. Bug fixes The following patches for 12.13.1 have been included: - 12.13.1a. Table models with both redshift and escale set are not handled correctly. - 12.13.1b. When an MCMC chain file contains response parameters, Xspec is falsely reporting mismatches between the chain parameters and the current variable fit parameters. Therefore it doesn't allow the chain to be used for uncertainty estimates in place of fit covariance values. - 12.13.1c. In PyXspec's AllModels.addPyMod method, usage of a deprecated Python function is preventing execution with the latest Python v3.11. - 12.13.1d. There is an error in the calculation of the pgstat statistic. - 12.13.1e. The vvapec, bvvapec, vvtapec, and bvvtapec models all deal with the H abundance parameter incorrectly. If it is not zero, it is reset to one. So, e.g. setting the H abundance to 0.5 in vvapec actually produces a spectrum with the H abundances as 1.0. If the H abundance is set to 1.0 (the default and usual setting) the results are correct. In addition the following bugs have been fixed: - Fixed error in ISOTROPIC bayes prior - it should be sin, not cos. - Fix to the case of 2-pane plots which contain a plot group with zero channels. =============================================================================== Xspec version 12.13.1: July 2023 Parallelization - Added parallel processing to leven when usechainrule is no. Added xset usechainrule option to switch between fast and slow second derivatives so this can be done without changing Xspec.init and restarting xspec. - In the various models which use the apec code added option of multithreading over the temperatures for the calculation of lines in the spectrum. Multithreading here is turned on and off using xset APECMULTITHREAD. The default is off. For the basic apec model multithreading does not provide a speed advantage. However, if line broadening is selected (eg using bapec) then multithreading will speed up the calculation. Also, for models which combine multiple temperatures such as cooling flow or NEI models multithreading can provide a significant speed increase. Spectropolarimetry Plotting - Changed the polangle plot so that the angles all lie between the mean angle ±90 degrees. This avoids plots where values jump between the top and bottom of the plot as the angle wraps around. - The polangle and polfrac plots now take account of any plot grouping set. If any spectrum in a data group is in the same plot group as a spectrum in another data group then all the spectra in the second data group are added to the plot group for the purposes of these plots only. - If any of the polfrac values or errors are calculated as NaNs then these are replaced by the PLT NO value and will not be plotted. Mdefine - Fixed mdefine to handle the case when the user is mdefining a convolution model which consists only of an xspec convolution model. - Added support for table models using atable, mtable, or etable in mdefine expressions. - Added 2nd to 5th order Legendre polynomials to mdefine built-in functions. Updated Models - bwcyc: Tightened the boundaries of parameters; now treats NaN as positive infinity - cevmkl, cemekl: Increased lower limits of Tmax parameter - gabs: Fixed units for Strength parameter - tbnew: Reduced stderr logging of non-error announcements Miscellaneous - The syst command to set model systematic errors can now apply systematics to individual models (default or named) instead of to all models. - The precision of parameter values from tclout(r) has been increased to 10 figures. - The error command diagnostic output is now controlled by the chatter level. Bug fixes The following patches for 12.13.0 have been included: 12.13.0a. When the X axis is in energies or wavelengths, plot delchi and plot fitstat (or plot chisq) are not being scaled properly. When the X axis is in wavelengths and perhz is on, plot counts is unable to construct its Y axis label. 12.13.0b. If a model defined using mdefine calls another xspec model which requires a separate model calculation for each spectrum, that information is lost. 12.13.0c. plot delchi and plot fitstat/chisq are not being properly scaled when spectra have multiple models assigned to them. This also restores the insertion of systematic model error into plot delchi and plot fitstat/chisq, and adds it to other plots that were previously ignoring it. 12.13.0d. Fix to mdefine so that it can now include built-in Xspec convolution models as part of its expressions for additive and multiplicative mdefine components. 12.13.0e. Added chain proposal uniform deltas [factor] and chain proposal uniform limits options. For backwards compatibility, chain proposal uniform defaults to chain proposal uniform limits. 12.13.0f. The zkerrbb model undercalculates the flux (and luminosity) by a factor of (1+z)^2. 12.13.0g. The Voigt line model can have a small sub-bin offset and incorrect shape. In addition the following bugs have been fixed: - When the 'energies' command is in use for table models, a crash may occur if all data sets are cleared. - The 'tabint' function (for external programs using Xspec's table interpolation code) is not properly handling the case when default LOELIMIT and HIELIMIT are in use. PyXspec Release Notes for version 2.1.2 (Xspec 12.13.1) New Features: - New method 'Plot.nAddComps()' for returning the number of add component plots for a given plot group. This can be helpful for determining the valid range of the 'addCompNum' input argument to 'Plot.addComps()'. - Two new methods to take advantage of standard Xspec's new ability to set systematic model errors for specific models: 'AllModels.systematicSingleModel' and 'AllModels.setSystematicSingleModel'. =============================================================================== XSPEC 12.13.0 release notes November 2022 New Features ++++++++++++ - New Models: * cglumin : convolution model to calculate luminosity with the source distance in kpc - Updated models: * Improved parallelism between mdefine'd and built-in model components. Any mdefine'd models now appear in the "model ?" list indicated by a hash (#) sign. * Updated wrappers for change of ismabs, ismdust, and olivineabs to double precision Fortran in previous release. * Note that internal changes to model handling mean that initpackage should be rerun for any local models. - Plotting: * Added plot fitstat option. This supersedes plot chisq and works correctly for all fit statistics. * Added (l)edata and (l)eedata plot options. * Fixed X-axis ranges when stacking plots vertically. Use common X-axis if plots are not disjoint by more than an order of magnitude. * Added setplot areascale/noareascale options which modify the data, background, and residual plots by dividing by the AREASCAL keyword or vector. This is mainly useful for the XMM RGS. If setplot area is in use then this has no effect because the AREASCAL values are included when dividing by the area. * Added setplot errortype option to specify how the error bars should be calculated for the plot (note - this has no effect on fitting). This can already been done as part of the setplot rebin option. - MCMC: * Added new chain proposal uniform option which gives a uniform distribution between the parameter lower and upper limits. Useful for setting initial walkers in gw method. - Miscellaneous: * Added comp and group options to show all parameters in a given component or group to show parm free, fixed, and linked. * Fixed simftest.tcl so that it returns the model to the state on input. Added reducedchisq.tcl and writesimpars.tcl scripts. * Now stores DETNAM, FILTER, STOKESPR, STOKESWT keyword values for spectra and will give warnings about inconsistencies with background/correction, arfs, and rmfs. * Improved diagnostic output when ARF files fail to load. * Fixed case where all spectra are removed while using extended energies, and table models are in use. * tclout datagrp now returns 0 rather than 1 when no spectra are loaded. Fixes +++++ All bug fixes to v12.12 released as patches are included in v12.13. In addition, the following bugs have been fixed. * Fixed case where all spectra are removed while using extended energies, and table models are in use. * tclout datagrp now returns 0 rather than 1 when no spectra are loaded. XSPEC 12.12.1 release notes March 2022 New Features ++++++++++++ - New Models: * polconst : Polarization constant with energy. * polpow : Polarization power law with energy. * pollin : Polarization linear with energy. - Updated Models: * rotpol has been renamed as polrot for consistency with the other spectropolarimetric models. * Replaced fixed size internal array in compbb with one which is allo- catable. This fixes a potential problem with large numbers of energy bins. * Simplified code for ismabs model and fixed offset by one bin problem when using the tabulated data. Converted ismabs, ismdust, and olivineabs to double precision fortran models. Rationalized variable names and removed copies of subroutines. * Added new math operators atan2, sinh, sinhd, cosh, coshd, tanh, tanhd, sign, heaviside, boxcar, atan, asinh, acosh, atanh, erf, erfc, and gamma for use in mdefine and newpar. * mdefine expressions can now include other mdefined models. - Plotting: * Added option to appropriate plots to specify the plot group numbers to use in the plot. eg plot 1 data resid makes the data and residuals plots for plot group 1 only. * Added plot polangle and plot polfrac options. These plot polarization angle and fraction. One set of data points and errors are produced for each data group. Each data group must have complete sets of I,Q,U Stokes parameter spectra. - Output: * tclout stat now allows contributions to the fit statistic from individual spectra to be retrieved. - Internal Functions: * Made a version of tableInterpolate which passes a map of XFLT values instead of a spectrum number. This allows other users of the library to run their code without a spectrum loaded. * Changed variables and comments in LinearInterp to improve clar- ity. Added C and Fortran wrappers in XSFunctions/Utilities for the LinearInterp routines. Fixed error in linInterpInteg in first bin(s) if target binning is much finer than current. Added double precision versions of LinearInterp wrappers. Fixes +++++ All bug fixes to v12.12 released as patches are included in v12.12.1. In addition, the following bugs have been fixed. * Batch mode scripts which did not exit were leaving command echoing in a disabled state. * When entering a Tcl control structure from the Xspec prompt, the new prompt string wrongly contained the \u201cputs -nonewline\u201d command. * When calling setplot with an abbreviated option name, quotes and escape characters were not handled properly. * Restored the ability for users to include header files from XSFunctions and XSFunction/Utilities in their local models, without having to also specify the path. * Fix to mdefine expression parsing when using MIN or MAX in combina- tion with xspec model functions. * Fix to handling of errors associated with models. There was an inconsis- tency in whether errors were variance or sqrt(variance). Any such errors should be calculated as variance. XSPEC 12.12.0 release notes July 2021 New Features ++++++++++++ - New Models: * wdem : Power-law differential emission measure. * grbjet : GRB prompt emission (Farinelli et al., 2021). * rotpol : Rotate polarization. * zxipab : Power-law distribution of ionized absorbers. - Updated Models: * Table models have been enhanced to allow multiple spectra to be associated with each parameter grid point. The spectra to be used can then be selected using the XFLTnnnn keyword values. The keyword NFLTEXP gives the number of spectra at each grid point and the keywords XFXPnnnn hold the filter expression to determine which is used. At the moment the only filter expressions allowed are of the form "key:value" which match to XFLTnnnn keyword values in the spectra. The test application for this is spectropolarimetry. * A new keyword ESCALE can be added to table model files. If true this automatically adds an Escale parameter to the model which is used to scale the energy when reading the model spectrum from the table. * Table models with no interpolation parameters can be read. * Table model parameter names containing spaces are modified to use underbars instead of spaces to avoid problems. * recorn has been changed from a multiplicative to a mixing model (this is for internal xspec reasons and should make no practical difference). * Mixing models can now be calculated if there is only one datagroup. * The creation of new mixing models has been simplified with the mixsetup program using the mixmodel.dat file to automatically create interface routines. In addition the MixUtility class now includes a number of useful methods which reduce the required knowledge of xspec internals. - Markov Chain Monte Carlo: * For the G-W algorithm the initial walkers are now set using the proposal distribution. * Added new proposal distributions gauss deltas and cauchy deltas where is a factor by which to multiply the parameter deltas. * Fixed an error in the calculation of the Geweke Convergence diagnostic which was too large by a factor of sqrt(2). - Added lognormal, gamma, cauchy, beta, student's t, half-normal, power-law, isotropic, and shifted lognormal options for Bayesian priors. - Removed the word normalization from the y-axis of plots. This will have little effect because the normalization is almost always one. For the other cases setplot area performs a similar function. - The show command has new options frozen, linked, tied (the last two are identical) which print out the appropriate subsets of the parameters. - An x preceding any xspec command name is interpreted as that command name (eg xfit can be used for fit). This can be useful if you want to alias a command name to do something else (eg if you want to write your own Tcl script for fit which does other things as well as running xfit). - For the flux command when consecutive spectra in the same datagroup have the same energies, all of the spectrum numbers are now displayed rather than just the first. - The ConvolutionInLnSpace template routine has been changed to pass the index into the parameter array for the energy instead of the energy itself. Also if the input energies are already log spaced then they are not rebinned onto an internal array. - Added Lodders et al 2009 to the table of solar abundances in 'abund'. - Changed installed header file structure. Fixes +++++ All bug fixes to v12.11 and v12.11.1 released as patches are included in v12.12. In addition the following bugs have been fixed. - External Fortran programs calling Xspec's xsatbl/xsmtbl functions would crash when Xspec wrote table model diagnostic output. - Running nested scripts would cause a misleading error message to appear if the nested scripts were in different directories. - The vmcflow model could cause a plotting crash when its redshift parameter was set to zero. - plot eff was not working for newly created faked spectra, unless the spectra were removed and reloaded. - When using setplot area for datasets whose responses had EBOUNDS energies listed in descending order (usual for gratings), the plotted results were the negative of the correct values. XSPEC 12.11.1 release notes Aug 2020 ___________________________ All fixes and enhancements contained in 12.11.0 patches (a-m) are included. The following are also included: - Added new "show bayes" option to display all non-constant Bayesian prior assignments to individual parameters. - All Bayesian prior assignments are now properly stored in files generated by 'save' command. - Added new tclout(r) modnames option to write out model names. Added new tclout(r) pfree option to give T/F on whether a parameter is free. Added new tclout(r) option "tclout modgroups " which returns the data groups associated with a particular model. - Modified tclout(r) so it only writes out each model once, not one time for each data group to which the model applies. - Removed the requirement of a valid fit to perform a "flux error" calculation, provided that a proper chain file for the model is loaded. - Improved the generation of parameters using simpars when parameters have widely varying sizes. It is still better in this case to define a new model using mdefine which scales the parameter values appropriately. - Trapped problem in table models if there is no overlap between the response energies and the tabulated energies. - Fixed problem that if two different response matrices with the same name but in different directories are used then xspec assumes that they are the same. - Fixed problem that generated an error if the response F_CHAN had the maximum channel value and the first channel was non-zero. - Fixed bug for corner-case of attempting to fit when response parameters are assigned to inactive models. XSPEC 12.11.0 release notes Mar 2020 ___________________________ New Models ---------- ismdust - Extinction due to silicate and graphite grains. olivineabs - Extinction due to olivine grains. agnslim - AGN super-Eddington accretion model. zkerrbb - Redshifted version of kerrbb. thcomp - Thermally comptonized continuum convolution model. logconst - Convert normalization to log units. log10con - Convert normalization to log10 units. bwcycl - Self-consistent cyclotron line model clmass - Mixing model assuming constant gravitational mass in each shell. monomass - Mixing model parametrized by differences of mass densities in adjacent shells. nfwmass - Mixing model with NFW gravitation potential. Updated Models -------------- Using the new 201 tabulated temperatures v3.0.9 AtomDB files for apec models. These CEI files reduce potential interpolation problems (see http://atomdb.org/interpolation/index.php). The interpolation scheme can be switched between log and linear interpolation using xset APECLOGINTERP. Another option to reduce interpolation errors is provided by xset APECUSENEI which switches all calculation of CEI spectra through the NEI code. This is slower but can be used to check calculations. To recover the older v3.0.9 files use xset APECROOT 3.0.9_51. If you do this and also want to use NEI models then you also need to use xset NEIAPECROOT 3.0.9. The diskline, rdblur, kdblur, kdblur2, laor, laor2, kerrconv, kerrdisk have all been sped up using a new FFT-based convolution routine. The xscat model has been updated to extend the range of the Rext parameter for MRN and ZDABAS options from 0-199 arcsec to 0-236 arcsec. New Features ------------ Major overhaul to code calculating statistics. Main visible change is that each spectrum can have a different fit statistic but there is only a single test statistic. Added support for responses which have been split into parts with different resolution. This is very effective for responses which have high resolution but long tails down to low energies. In the case of the XRISM Resolve instrument this will provide speed increases of up to an order of magnitude. Note that if a file contains multiple response extensions then XSPEC will read and use them all unless a response extension is specified using e.g. resp.rsp{n}. XSPEC 12.10.1 release notes Oct 2018 ___________________________ New Features ____________ New Models ---------- zbknpower - redshifted broken power law zlogpar - redshifted modified power law agnsed - model for the SED of an AGN qsosed - simplified version of agnsed cph - cooling+heating model for cool core clusters vcph - cph with variable abundances relline - Relativistically broadened emission line rellinelp - relline with lamp-post geometry rellinelpext - relline with extended lamp-post geometry relconv - Convolve with relline profile relconvlp - Convolve with rellinelp profile relconvlpext - Convolve with rellinelpext profile Updated Models -------------- - Added an xset LINECRITLEVEL option for the critical level for gaussian/lorentzian/voigt lines. If set this overrides the coded values. - Modified diskline, rdblur, kdblur, kdblur2, laor, laor2, kerrconv, kerrdisk for high resolution spectroscopy. - Added C/Fortran tabint wrapper for C++ tableInterpolate function. The statistic cstatbN where N is an integer calculates the C-statistic in the presence of background with both source and background spectra binned so that there are at least N counts in each background bin. Bug Fixes _________ All bug fixes to v12.10.0 released as patches are included in v12.10.1. XSPEC 12.10.0 release notes Mar 2018 ___________________________ Models ------ The mdefine command now allows functions to be defined including xspec model functions. Among the capabilities this enables is to redefine model parameters. For instance, suppose we want to use the pexrav model but have one parameter be the inclination instead of the cosine of the inclination as defined in the model. Then we define a new model: mdefine mypex pexrav(g,f,refl,z,A,FeA,cos(Incl)) New models added are: brnei, bvrnei, bvvrnei - rnei models with line broadening grbcomp - GRB prompt emission model jet - Leptonic relativistic jet model ssa - Strangeon star atmosphere model The default AtomDB version number is now 3.0.9. The xset APECMINFLUX option for apec models now includes the 1e14 normalization factor and the time dilation correction. A new xset option APECBROADPSEUDO switches on line broadening of the pseudo-continuum (this contains low emissivity lines which are not individually tabulated in the AtomDB lines file. Most of the model data files have been converted to FITS with in a number of cases multiple files merged into a single file with multiple extensions. This should make no difference to any results. Uniform wrappers are now available for all model functions based on the model name. C++ wrappers are CXX_modelname, C wrappers are C_modelname, and Fortran wrappers are f_modelname. The newpar command can now handle multiple ranges specified on the command line. Markov Chain Monte Carlo ------------------------ MCMC chains now work with response parameters. Geweke's convergence diagnostic and the Deviance Information Criterion have been added to the available output. When plotting multiple chains each is now placed in its own plot group (and hence plotted in a different color) instead of being concatenated. Added plots for running means and autocorrelations. Added margin fraction option to tclout to return the fraction column from the last margin command Fixes ----- All bug fixes to v12.9.1 released as patches are included in v12.10.0 In addition the following problems have been corrected: The Pexrav model crashes with a negative or zero incomplete gamma value. Steppar was mishandling parameters belonging to named models starting with an 'l' or an 'n'. It was mixing this up with the 'log' and 'nolog' options. The error command now handles the 'unnamed' specifier on the command line. Mdefine commands are now properly handled in save.xcm files. XSPEC now properly handles extended file syntax such as "filename[n]" and "filename+n" for cases where multiple HDUs share the same EXTNAME and aren't differentiated by EXTVER. Fix to editmod parsing error for certain cases of table model filenames which include a hyphen. The goodness command when run in parallel processing mode was breaking if it had to prompt for continuation of a fit. Memory leak fix and diagnostic message improvement made to "tclout idline". The "chain best" and "chain info" output should not rely on the currently variable parameters but only the loaded chain files (which aren't always the same). Other ----- Added CUSUM test statistic. Fixed tclout filename for type II pha files Added option to set background spectrum exposure time to multifake.tcl Added options to plot goodness for the number of bins and the binning type. XSPEC 12.9.1 release notes Jan 2017 ___________________________ New features: - New Models: carbatm - NS non-magnetic C atmosphere clumin - calculates luminosity hatm - NS non-magnetic H atmosphere ismabs - High-resolution ISM absorption rfxconv - reflection from ionized disk slimbh - slim accretion disk snapec - galaxy cluster spectrum using SN yields (b)(v)(v)tapec - apec model with different temperatures for continuum and emission lines tbfeo - tbabs model with O and Fe only variable tbgas - tbabs model with no grains tbpcf - tbabs model with partial covering tbrel - tbabs model that allows negative columns vashift - velocity shift an additive component vmshift - velocity shift a multiplicative component voigt - emission line with a Voigt profile xilconv - reflection from ionized disk xscat - dust scattering out of the beam - Updated Models: - apec models updated to AtomDB 3.0.7 - nei models updated to AtomDB 3.0.4 eigen files - The apec code now has the ability to add new line shapes for broadening although at present only a single Gaussian line shape is operational. - A new xset option APECMINFLUX can be used to specify a minimum line flux below which lines are not broadened. Also the maximum flux in any line in the apec model is saved as apecmaxlineflux and this can be recovered using tcloutr modkeyval apecmaxlineflux. At the moment both this and APECMINFLUX do not include the 1e14 normalization factor and any time dilation correction. - the code for the various CEI models was rationalized and there is a new C++ routine calcMultiTempPlasma which can be used by other models. The old Fortran sumdem routine remains as a wrapper for old models. - tbabs model code has been updated. The old version is available by using xset TBABSVERSION 1. - updated nsmaxg model with new tabulated model files. - increased the speed for accessing values from table models. - modified table model code to support new keywords LOELIMIT and HIELIMIT to specify model values to be taken below and above the tabulated energies. - Plotting: - added low and high energy limits to setplot id so lines are only shown for the specified energy range. - added setplot (no)contimage to turn on (off) the background image in contour plots. - the keV to Angstrom conversion value stored in Numerics.h has been updated to that from CODATA 2014. - Fitting: - Added parallelization to chain walker calculations and to the goodness simulations. - The 'error' command can now process parameters from more than 1 model in a single call. - In the various cstat statistics any correction file spectrum is now taken account. This does implicitly assume that the correction file has Poisson statistics. - the Tcl script lrt.tcl now uses the fakeit nowrite option so intermediate faked files are not written out. Also, now works for multiple data groups. - Input/Output: - increased the precision of the reported output from the 'tclout' command options. - increased the allowed flux (counts) to beyond the 4-byte limit when running 'fakeit' with counting statistics selected. - new tclout option fileinfo writes the value of the keyword given as the fileinfo argument. e.g. tclout fileinfo detnam returns the value of the detnam keyword in the spectrum extension. - Xspec.init file: - added PARALLEL to set default parallelization options - added NEI_VERSION to set default version for NEI models - added CONTOUR_IMAGE to set default for adding image to contour plots - changed default cross-sections from bcmc to vern - The manual has now been rewritten in LaTeX. The appendix on statistics has been expanded. Cross-referencing has been improved. All bug fixes to v12.9.0 released as patches are included in v12.9.1. In addition the following problems have been corrected: - A previous revision to the 'goodness' command removed the requirement that the fit must be in a valid state at the start, however it was incorrectly marking the fit as being in a valid state at the end. - When re-reading a previously loaded table model file, was not correctly recognizing whether or not parameter error values existed. - A spectrum's displayed net count rate variance needs to be updated when the fit weighting method gets changed. XSPEC 12.9.0 release notes Jul 2015 ___________________________ New features: - Mix model components are no longer heavily restricted in their usage. Previously mix components could only be placed at the start of a model expression, to operate on the results of the rest of the expression. Now they can be inserted throughout the expression in the same manner as convolution components. Models with mix components can also be assigned to source numbers other than 1. A corollary of this is that a mix model is no longer required to operate on all currently loaded spectra. To allow more than one mix model at a time the syntax for XFLT#### keywords has been generalized. These keywords are now strings of form "key: value" with xspec maintaining an internal database of key, value pairs which mixing model code can access. Backward compatibility with the old version of XFLT#### containing only a value is maintained. - Expanded the types of expressions allowed in parameter linking. It can now handle the same mathematical functionality supported in mdefine equations. Related to this, parameters can also be specified as 'p#' and 'modelName:p#' in link expressions, as well as the old '#' and 'modelName:#'. The link expressions are now displayed using the 'p#' format. - The output of the 'plot margin' command is now independent of the grid size. There is a new 'plot integprob' command which also must be run after the 'margin' command and which plots the integrated probability within the contours shown. - The data and back commands now handle files with multiple SPECTRUM extensions. There are a number of ways of specifying a particular extension: filename{N} will use the Nth SPECTRUM extension; filename{SPECTRUM2} will look for an extension called SPECTRUM2; filename{back} will use the first SPECTRUM extension with the HDUCLAS2 keyword set to 'BKG'; filename{name=value} will look for a SPECTRUM extension with keyword name set to value (in this case there must be no spaces within the {}). If the BACKFILE keyword in a source filename is set to the filename itself then XSPEC will get the background from the extension with HDUCLAS2 set to 'BKG' (this, finally, makes Chandra level 3 files work seemlessly in XSPEC). - The 'error' command now has a 'nonew' option. This determines whether to repeat the calculation when a new minimum is found. Previously it was relying on the 'query' setting to make this decision. - Added grey-scale image as background to to contour plots. 'dem' plots now display a histogram. The new 'eqw' plot option shows the distribution of equivalent width values after running the eqwidth command with the err option. - New model 'nlapec'. There is also an APECNOLINES xset option which will turn off lines for all apec models. - The models using AtomDB files now require the line files to be sorted in increasing order of energy within each element and ion. This allows a speed-up in the model calculation. - Replaced the rescalecov script with the 'chain rescale' command. - The 'plot delc' command now works for cstat, plotting (obs-mod)/error, however it is important to remember that this is not plotting contributions to the statistic. Enhancements previously released as patches to 12.8.2: - A new -udmget64 option has been added to initpackage. This is intended for Mac platform users with local Fortran models which still make use of the udmget memory allocation function. - 'tclout steppar' can now retrieve values of the variable parameters as well has the fixed parameters which are being stepped through. All bug fixes to v12.8.2 released as patches are included in v12.9.0. In addition the following problems have been corrected: - For the case where counting statistics are not applied, 'fakeit' now outputs the spectrum in a RATE column rather than COUNTS. This is to remove bias caused by truncation errors. It also now outputs a STAT_ERR column and sets the POISSERR flag to false. - Special characters have been removed from all model parameter names and (generally) replaced with underscores. This is to make their name strings more easilty accessible in PyXspec. - When calculating 'tclout peakrsid' with Cstat, it should not make use of correction files. - Redundant model fold calculations have been removed during certain update contexts. - Fix to vequil model array assignment error. - The default filenames for fakeit output should always be in the current run directory, even when the response file is in a different directory. - A file-write race condition has been eliminated for the case of running 'lmod' in parallel XSPEC sessions. - the vvnei model had the tau and meankT parameters flipped. - the AtomDB input files were being reopened unnecessarily often. XSPEC 12.8.2 release notes Jul 2014 ___________________________ New features: - The code underlying the NEI models has been rewritten to accommodate the new AtomDB 3.0 files, the beta version of which are included as the default when using any of the NEI models. Older versions can be recovered using xset NEIVERS. The CEI models (apec etc) use some of the same code but there should be no change in their behaviour except for a slight speed-up. - New models: agauss - Gaussian model with units in Angstrom and a gaussian shape in wavelength space. nsx - Neutron star non-magnetic atmosphere model from Wynn Ho and collaborators. nsmaxg - Neutron star magnetic atmosphere model. rnei - NEI recombination model assuming an initial temperature vrnei - rnei with variable abundances for the common elements vvrnei - rnei with variable abundances for all elements (Z<=30). zagauss - The agauss model with a redshift parameter. - The goodness command has added options fit|nofit. The fit option runs a fit on each simulation before calculating the test statistic. - The cstat fit statistic can be modified by appending an integer eg statistic cstat5. In this case the statistic will be evaluated as if the group min N had been used in grppha. This is not as efficient because the rebinning has to be done every statistic evaluation however it is usual for testing using simulations. - The 'model' command now checks that parameters are all within a reasonable order of magnitude (~1e10) of each other, and issues a warning if they are not. - Improved the handling of new-best-fit cases when running the 'error' command on parallel processes. The global new-best-fit is now automatically retained. Previously the user was prompted to re-run 'error' in a single process. - Models can now store (keyword,value) pairs using loadDbValue (C++) or PDBVAL (Fortran). These values can be recovered using the tclout(r) modkeyval option. This provides a way to get internal information from the last invocation of a model. - There is a manual XSFunctions_guide.pdf in Xspec/src/help describing some of the C++ classes used in the XSFunctions library. This is intended to make it easier to use these classes in other models. Enhancements previously released as patches to 12.8.1: - PyXspec: added Fit.testStatistic attribute for retrieving the test statistic value from the most recent fit. - PyXspec: added compiler macros for switching to include paths when building on Mac platforms. All bug fixes to v12.8.1 released as patches are included in v12.8.2. In addition the following problems have been corrected: - Fix for a particular case of non-associative expression evaluation. Models of the form C((M1*A)M2) or C(M1*A)M2, where C is a convolution component, were being wrongly evaluated as (C(M1*A))*M2. - For users with external programs linking to the XSPEC model library, the FNINIT function now properly initializes the AtomDB version to v2.0.2. - Fix for an 'ignore' command syntax evaluation that was causing a crash on OS X Mavericks. XSPEC 12.8.1 release notes Aug 2013 ___________________________ New features: - New models: cpflux - a variant of cflux for photon flux. heilin - Voigt absorption profiles for the HeI series lyman - Voigt absorption profiles for the HI or HeII series zbabs - EUV ISM attenuation - A new statistic, pgstat, has been added for the case of Poisson-distributed data with a Gaussian-distributed background. The whittle statistic can now be used when fitting averaged power density functions by appending an integer (so eg whittle5 is the statistic to use when fitting a pdf constructed by averaging those from 5 observations). - The old CERN Minuit library, which is used for the migrad, minim, monte, and simplex fitting methods and the improve command, has been replaced by the new version. The minim and monte methods are no longer supported and the new version does not include an improve command. The output from the migrad and simplex fitting methods now looks the same as that from the leven method. Note however that the rules for when to write intermediate fit results are not directly comparable so do not provide a measure of the relative speed of the methods. - Fakeit now has a 'nowrite' option to generate fake spectra without producing output files. This is also now available in the multifake.tcl script command. - Parallel processing capability has been added to the steppar command and can be invoked using the parallel command. - Markov Chain Monte Carlo (the chain command) now uses the Goodman-Weare algorithm by default. Previously the default was Metropolis-Hastings. - After a chain run, the best-fit parameters and statistic are now displayed with "chain info", and are available through the "tclout chain" option. - The default atom_db version used in apec models may now be modified with the ATOMDB_VERSION keyword in the user's Xspec.init file. - Steppar now has a 'delta' option for performing grids centered on the best-fit parameters. - The 'setplot delete' option has been enhanced to allow removal of all or a range of commands. - For external programs calling XSPEC, new wrapper functions have been added for retrieving XFLT keywords from data files. - Norm parameters are now set with a default 'soft' upper limit below their 'hard' upper limit. - In PyXspec, the Fit.statMethod and statTest attributes can now be set for individual spectra. Enhancements previously released as patches to 12.8.0: - AtomDB has been upgraded to version 2.0.2. - The tclout 'stat' and 'statmethod' options can now retrieve the test statistic as well as the fit statistic. - The simftest Tcl script command now takes an optional filename argument for output. - Attributes added to PyXspec classes: Xset.parallel, Fit.statTest. All bug fixes to v12.8.0 released as patches are included in v12.8.1. In addition the following problems have been corrected: - The command history file xspec.hty (in the user's ~/.xspec directory) is now updated when exiting XSPEC with the 'quit' command. Previously it was only updated when exiting with 'exit'. - The 'chain' command can now read/write files in ASCII format when running in the default Goodman-Weare mode. Previously this feature was only available for Metropolis-Hastings chains. - Fix to an array access error in the nthcomp model. - PyXspec fix removes error messages generated when accessing response parameters in Python versions 2.6.x. XSPEC 12.8.0 release notes Dec 2012 ___________________________ New features: - Parallel-processing capability for specific tasks has been added by way of the new "parallel" command. This allows the user to set a maximum number of processes to spawn when running certain XSPEC commands. Currently the options for parallel-processing are limited to use with the "fit" and "error" and commands, though we plan to implement more in the near future. This first implementation is considered to be a BETA release, and we look forward to hearing your comments and suggestions. - XSPEC now distinguishes between the 'fit' statistic and the 'test' statistic. The fit statistic is used to find the best-fit parameter values and errors while the test statistic is used to provide a goodness-of-fit. Consequently, the goodness command now uses the test statistic. Separating these two classes of statistic has allowed us to add a number of new test statistics. These include Kolmogorov-Smirnov and the related Anderson-Darling and Cramer-von Mises. Also new are the runs statistic, based on the number of runs of consecutive positive (or negative) residuals, and the Pearson Chi-Square (pchi) statistic, Pearson's original test statistic. - The basic Levenberg-Marquardt fit algorithm has undergone a number of changes. The most visible is an additional column in the output during the fit. |beta|/N is the norm of the vector of derivatives of the statistic with respect to the parameters divided by the number of parameters. At the best fit this should be zero so provides another measure of how well the fit is converging. |beta|/N can also be used as the criterion to stop the fit instead of the statistic delta although this is still considered experimental. Other internal changes to the fit algorithm are to treat the first iteration as a special case where only normalizations are allowed to change and to add the option of using delayed gratification, which can speed up convergence. - New models: compmag, comptb, rgsxsrc. The latter is reinstated from it use in XSPEC v11. - New plotting command "plot goodness", for plotting a histogram of the most recent "goodness" simulation. - New tclout option "goodness sims" . - Added the option of using the Goodman-Weare algorithm instead of Metropolis-Hastings when using the chains command to run MCMC. - Added the Whittle statistic for fitting models to power density spectra. - If a data file is read which has RESPFILE="[]" then the response extensions (MATRIX, EBOUNDS) are read from the same file. - Added support for a new type of model component: a mixing component which operates on the model pre-multiplied by the effective area. This is similar to the pile-up model type but allows for a models which require mixing between multiple spectra. - Table model files can now have interpolated and additional parameters intermixed provided that additional parameters are indicated by METHOD=-1 in the PARAMETERS extension. Enhancements previously released as patches to 12.7.1: - The "plot chain" has a new "thin" option for thinning the display of chain points. - Added a "tclout ignore" option for easy retrieval of currently ignored channels. Similar capability added to PyXspec's Spectrum class. All bug fixes to v12.7.1 released as patches are included in v12.8.0. In addition the following problems have been corrected: - The eqpair model used wrongly-sized arrays when multiple spectra were used with RMFs having varying numbers of photon energy bins. Eqpair (plus eqtherm and compth) also needed a new default value for its optical depth parameter, which fixes the problem if parameter 4 is zero. - A fit parameter which started close to the minimum/maximum could under some circumstances be incorrectly pegged at the maximum/minimum. - When the "error" command was run on a model with soft limits (ie. soft limits for some parameters set to a narrower range than hard limits), and the best fit value fell within the soft limit region, the displayed differences (in parentheses) were not consistent with the reported ± limits. - Problem occurred in apec model when zero width lines were in the final energy bin. - Fix to a potential normalization problem occurring in lorentz model with low-energy large-width lines. - When running initpackage/lmod from PyXspec on certain Linux builds, local models calling functions in XSPEC's xslib library producing unresolved symbol link errors. XSPEC 12.7.1 release notes Mar 2012 ___________________________ New features: - New models: gadem, vgadem, eplogpar, logpar, optxagn, optxagnf, and pexmon. - The convolution models rdblur, rdblur2, kdblur and kerrconv have been sped up. They are now O(N) instead of O(N^2) where N is the number of energy bins in the response. - Continued rationalization of Compton reflection routines. eqpair, eqtherm, compth, compps, ntee now all use the same routines as reflect and ireflct. For models with ionized reflector there may be changes in results because the new code uses the actual input spectrum to calculate the ionization fractions while the old code assumed a power-law. - The parameter simulation arrays used for the calculation of eqwidth and flux error are now accessible through tclout. - Initpackage now works on Cygwin. The static_initpackage work-around is no longer needed and has been removed. - New Fortran interface wrapper function RFLABD, for reading new abundance tables into external programs using the XSPEC models library. - Added an xsetbl function for use in external programs. This provides access to XSPEC's internal exponential table model routines, similar to what xsatbl and xsmtbl do for additive and multiplicative table models. - Bayes command is now supported for response parameters (ie. gain). - New 'show version' option. - Improved 'error' command output messaging. The error results now have lower chatter level (5) than most of the warning messages (10), thus making it easier to filter out the warnings. - PyXspec beta version upgraded to v1.0. See the PyXspec release notes for details. Enhancements previously released as patches to 12.7.0: - New tclout options: nullhyp, rerror. All bug fixes to v12.7.0 released as patches a-u are included in v12.7.1. In addition the following problems have been corrected: - Program aborted when attempting to fit with gain parameters attched to dummy responses. - Program aborted when removing a spectrum with a response containing gain parameters, AND while that response was temporarily replaced with a dummy response. - The 'save' command did not add the default .xcm extension for file names that included a path. - A crash could occur if the EBOUNDS array wasn't the right size. - It was not possible to plot 2 or more models in a multi-panel 'plot model' display. XSPEC 12.7.0 release notes May 2011 ___________________________ New features in v12.7.0 The primary new feature of 12.7.0 is the addition of the Python module, PyXspec v0.9 beta. PyXspec is built and installed by default on most platforms along with the regular XSPEC build, and simply requires an "import xspec" statement to load into Python. XSPEC can now be run from object-oriented Python scripts, or interactively from a Python shell prompt. Detailed instructions can be found in PyXspec.pdf. While most features of standard XSPEC are already supported in this beta release, some still remain to be implemented. Please let us know if any missing feature is of particular importance to you, or if you have suggestions and ideas for improvement. Other new features: - New models: cplinear: Piecewise linear non-physical background model for low-count spectra developed for Chandra by Patrick Broos. eqpair, eqtherm, compth: Paolo Coppi's hybrid hot plasma emission models. vvapec, bvvapec: APEC models allowing all 30 elemental abundances to vary (for use with AtomDB 2.0). zigm: Multiplicative model, computes the mean attenuation of the optical/UV spectrum by the intergalactic medium. zashift, zmshift: Convolution models for applying redshifts to additive and multiplicative models respectively. Also note that the default APEC model data files have been updated to AtomDB 2.0. This version of AtomDB includes contributions from more elements than earlier versions. When using the apec and vapec models these extra elements have Solar abundance by default. To change this use "xset APEC_TRACE_ABUND". - The 'statistic' command may now be applied to individual spectra. This makes it possible to simultaneously fit spectra which require different fit statistics. - Added the 'pgstat' option to the statistic command. This is similar to using 'cstat' with a background file except that the background is assumed to have Gaussian statistics (not Poisson) read from a STAT_ERR (and optionally SYS_ERR) column. - Modified the pileup model for consistency with Sherpa and ISIS. A new parameter 'fracexpo' is added which should be set to the FRACEXPO keyword value in the ARF. - It is now possible to choose proportional or fixed fit deltas from the startup Xspec.init file. The initial default setting is now proportional deltas rather than fixed deltas. - Improvements made to the output generated during a fit. The parameter names are listed at the top of columns, not just their numbers. Column alignment has been improved, and is no longer limited to a maximum width of 5 columns. - Added reporting of the Bayesian contribution (if any) to the fit statistic output. Enhancements previously released as patches to 12.6.0: - Initpackage now recognizes and builds files with .f03 extensions for Fortran 2003, and .f90 extensions for Fortran 90. - Added a new 'fakeit' option for setting the fake background exposure time. - Added a new 'tclout version' option for returning the XSPEC version string. - Improved XSPEC's internal update mechanism to reduce the number of model calculations. All bug fixes to v12.6.0 released as patches a - ab are included in v12.7.0. In addition the following problems have been corrected: - A crash occurred if 'tclout notice energies' was performed on a spectrum containing only a dummy response with no channels. - The 5 redundant 'xset' options (those which merely duplicate other existing XSPEC commands) weren't passing their arguments to the command handlers correctly. - Fit error messages were misleading for the case where the data was missing a suitable response, or when the only existing models were inactive. - A fatal error could occur in 'fakeit' when attempting to generate a background file while only a dummy was used for the response. - The 'bayes' command handler was not properly handling the case where the prior type option string was abbreviated. - A crash occurred when 'flux' was run in error mode and the specified energy was entirely outside the range of one or more spectra. XSPEC 12.6.0 release notes March 2010 ___________________ New features in v12.6.0 The main improvements in version 12.6.0 are to XSPEC's plotting capabilities: - Multi-panel plotting is now supported for all combinations except contour plots. For example, "plot data model resid ratio" will produce a 4-panel plot on a single page. Up to 6 panels can be plotted in this manner. - There are many choices for axis units. These can be selected using the "setplot energy" and "setplot wave" commands. For example, "setplot energy GeV" uses GeV on the x- and y-axes. "setplot wave" also has a new "perhz" option for displaying the Y-axis in 1/Hz units. - The "setplot" command has a new "redshift " option for shifting displayed energies to the source frame. Other new features: - New models : ireflect is a convolution model based on the pexriv code. sirf is a multiblackbody self-irradiated funnel - The normalizations on all power-law models (ie. powerlaw, bknpow, bkn2pow, cutoffpl)can be changed to a flux over an energy range by setting POW_EMIN and POW_EMAX keywords in "xset". The powerlaw model then becomes equivalent to the pegpwlw model. - The Compton reflection models (b/p)exr(a/i)v and (i)reflect have been restructured to use adaptive Gauss-Kronrod quadrature for the Greens' function integrals. The precision to which the integrals are calculated can be set allowing a trade-off between speed and precision. - The wrapper functions additiveTable and multiplicativeTable give external C++ models access to XSPEC's table model interpolation routines (equivalent to the xsatbl and xsmtbl functions for Fortran models). - The display of link expressions has been simplified to show only the parameter numbers and not the extraneous component information. Also "show model" will now only display the model components and not the individual parameters. The parameters can be seen with "show par". Additional enhancements previously released as patches to 12.5.1: - Added the solar abundance data set of Asplund, Grevesse, and Sauval (2006) to the list of available tables accessed with the "abund" command. - New "tclout nchan" option for returning the number of channels in a spectrum. - The "save" command now stores relative rather than absolute paths to allow easier porting to other machines. - The recorn model component has been converted from a mixing to a multiplicative type. This allows a model to define multiple recorn components. - A warning message is now issued if a user attempts to load a response for a source n when there are still slots to fill for source n-1. This is intended to catch cases where a user mistakenly reverses the source and spectrum number input to the "response" command. All bug fixes to v12.5.1 released as patches a - o are included in v12.6.0. In addition the following problems have been corrected: - It was possible for the addition of a systematic model error to actually decrease the overall variance, when it was applied to a zero-variance bin that was artificially increased by XSPEC for chi- square fitting. - Bug in "plot ratio" when using "setplot wave" with Hz units. Y-axis model values < 10^-20 were not displayed in plot. - The comptt model no longer stops and prompts the user when it fails during its incomplete gamma calculation. - The powerlaw model has been modified to avoid a numerical instability that could occur if the index were within 10^-12 to 10^-15 of 1.0. XSPEC 12.5.1 release notes Aug. 2009 ___________________ New features in v12.5.1 - Gain parameters can now be used in the error, freeze, newpar, thaw, and untie commands by prefixing the command name with the letter 'r' (for "response parameter", the more general category to which gain parameters belong). Steppar can now also handle gain parameters. Gain parameters can be displayed either with "show parameter" or the new "show rparameter" option. - The gain command syntax has changed when using multiple sources. To better conform with the rest of XSPEC, it now requires : rather than the reverse. - Gain parameter limit values can be stored in response files, using the keywords GSLOP_MIN, GSLOP_MAX, GOFFS_MIN, and GOFFS_MAX. - All input and output data filenames can now include CFITSIO/FTOOLS extended-syntax for specifying particular HDUs. As a result, XSPEC can now handle files which contain spectra, ARFs and RMFs in multiple extensions. - Partial derivative calculations during fitting can now be performed numerically rather than with an approximated analytical expression. This option is chosen in the Xspec.init initialization file. - If a new minimum is found during a steppar run, steppar now prompts the user for acceptance of the new values. Also the delta statistic column of a steppar run is now obtainable with the tclout steppar delstat option. - The output warning message has been improved in the case where Levenberg-Marquardt fitting runs into a zero diagonal element in the second derivative matrix. Similarly, the more frequent pegged-parameter messages (due to running into hard limits) is now output at higher chatter levels only. - All calls to the xanlib dynamic memory allocation function udmget have been removed from the Fortran models in XSPEC's models library. The relevant code has been converted to C++. If a user's local models library still requires the udmget code, they'll need to run initpackage with the new -udmget option. - Additional enhancements previously released as patches to 12.5.0: -- Setplot wave x-axis units can be toggled from Hz to angstroms through WAVE_PLOT_UNITS entry in Xspec.init file. -- New tclout gain and sigma options. -- New xs_getVersion function available for those linking their own programs to the XSPEC models library. -- The show parameters option can now take a range of parameters for displaying subsets. - All bug fixes to v12.5.0 released as patches a - an are included in v12.5.1. In addition the following problems have been corrected. -- After running the ARF command, any gain previously applied to the associated RMF will be removed. Previously it was erroneously applying the gain to the new ARF. -- Additional header file inclusions needed in code files to compile with g++-4.4.0 -- Extra line-feed characters removed from Ascii text files in the modelData directory. These were causing problems on Solaris 10 w/f90. -- The nthcomp model's internal arrays were hardcoded to a maximum size of 5000 energy bins. The size is now dynamically allocated. (This also affects the diskir model.) -- A Levenberg-Marquardt fit now immediately stops if the fit statistic becomes NaN due to an erroneous model calculation. -- C++-style comments have been removed from xsFortran.h for the benefit of users compiling their own C programs with the models library. -- Plotting fix for case where "setplot area" is selected and no models are currently loaded. -- Model parsing fix for case of nested parentheses with no '+' operator, ie. A(B(C*D)). XSPEC 12.5.0 release notes Nov. 2008 ------------------- *** IMPORTANT IMPORTANT IMPORTANT *** Please note that this is the last distribution of HEAsoft in which we intend to include xspec v11. It is becoming increasingly hard to keep v11 up-to-date for new compilers and we do not have the resources to support two different versions. If there are v11 features that you are using and that we have omitted in the current version please let us know as soon as possible. *** IMPORTANT IMPORTANT IMPORTANT *** New features in v12.5.0. - Two of the remaining unimplemented v11 commands have now been added. * mdefine allows dynamic definition of models that can be expressed algebraicly. * recornrm has been replaced by the recorn model. This allows the correction norm to be treated as a fit parameter, a better solution than the v11 recornrm command. - The complete HTML help files are included in a tar file. These can be made available on a local machine if remote access is not available and selected in the Xspec.init file. - Convolution components can now operate on multiplicative components. For example, in the model = (CM)A, the convolution component acts on only the multiplicative component. Previously this would have been treated the same as C(MA). The partcov partial convolution model takes advantage of this new capability. - There is a new simple way of estimating fluxes (and their errors) from parts of the model. Apply the cflux convolution model to the component(s) for which the flux is required. - The following models have been added as standard * diskir : irradiated disk * kerrdisk : broad iron line from a disk around a Kerr BH * nsmax : NS magnetic atmosphere * nthcomp : thermally Comptonized continuum * spexpcut : super-exponential cut-off * swind1 : partially ionized absorbing material with velocity shear * zxipcf : partial covering of partially ionized absorbing material * cflux : calculate the flux from model component(s) * kerrconv : broadening due to rotation around a Kerr BH * partcov : partial covering modifier for absorption models * simpl : Comptonization of a seed spectrum * recorn : Vary the correction file normalization - The lrt.tcl and simftest.tcl scripts perform the likelihood ratio and F-tests, respectively. - The writeFITS.tcl script writes filenames and current fit parameters and errors to a single row of a FITS file. This script can be used as a template for saving other information. - A response of "/*" to a "y/n" prompt will jump out of the current operation and return to the XSPEC command prompt. This is particularly useful for escaping nested fits during an error command run. - The units have been changed for setplot wave plots. model and ufspec have a y-axis in photons/cm^2/s/Hz, emodel and eufspec in Jy (10^-23 erg/cm^2/s/Hz), eemodel and eeufspec in erg/cm^2/s. - Fakeit can now work with multiple-extension response files. It also works correctly when multiple models are in use (this was released in patch v12.4.0r). - The active|inactive|options can be applied to the default (unnamed) model (released in patch v12.4.0v). - Support for GLAST GBM extensions to the standard file formats including multiple response matrix extensions in the same file (released in patch 12.4.0am). - There are additional diagnostics available at high chatter levels from MCMC chain runs. User's custom proposal classes have access to information about acceptances and rejections. - Initial support for multicore processors using the OpenMP parallel processing compiler option. Multiplication of the model and response is performed in parallel across the multiple spectra in a datagroup. All bug fixes to v12.4.0 released as patches a - ar are included in v12.5.0. In addition the following problems have been corrected. - When a runtime error is encountered during the calculation of a parameter's error bounds (using the error command), the value is now filled in with 0.0 rather than retaining its previous value. - Steppar will now correctly step in reverse direction if the range values were entered in high-to-low order. - Model expression parsing has been improved for nested expressions. - Log file output has been fixed so '#' comments are placed correctly. - The chi-square calculation includes the corfile contribution even if there is no background file associated with the spectrum. - There are minor plotting fixes to the confidence line in 1-D steppar/margin plots, the rescaling of the Y=0 green line in lower-panel plots, and the Y-axis label in plot delchi. - Tclout peakrsid no longer fails for a spectrum whose model was not assigned to source 1. Other Changes: - The XSFunctions library now also depends on XSModel, requiring the addition of a -lXSModel flag to the Makefile of external programs linking with the XSPEC model functions library. (See manual Appendix F) - The modelIonData model data files directory has been renamed to modelData. - Portions of some model functions have been translated from Fortran to C++ to reduce use of the udmget memory allocation function. New for XSPEC version 12.4.0 12/07 Version 12.4.0 incorporates all of the fixes and enhancements that were originally distributed as patches (a-ap) for v12.3.1 (see the XSPEC final issues/patches page for 12.3.1 for details). It also contains the following improvements: Monte Carlo Markov Chain The MCMC code run by the chain command has been greatly expanded with many new options. - The default output format is FITS (with an option to use the old ASCII text file). - Proposal distributions can now be defined in a variety of ways and new proposal classes can be loaded dynamically. - A temperature option enables annealed chains. - The error, flux error, lum error, and eqwidth error commands all use information from chains if they are loaded. This should make these commands more reliable. - New tclout options chain and margin provide access to chain information. - plot mcmc has been renamed plot chain. - The tclout covar option previously output the values in order of the upper half of the covariance matrix. This has been changed to the lower half matrix order so that it may be directly input into the new "chain proposal matrix" command. - The chain stat option now assumes to be an XSPEC parameter index, of the usual form [:]. Previously it was treating this as a number indicating the column position in the chain file. Fitting - The xset delta command sets parameter fit delta values proportional to the parameter values. This should eliminate the problem that the fit delta can end up too large relative to the parameter value leading to convergence problems. - The method command has new options minim, simplex, and monte from the Minuit lbrary. A new command improve can be used with the Minuit methods to test for local minima. Models - The projct mix model can now run on a subset of the loaded spectra. Previously it expected all loaded spectra to have XFLT keywords even if they were not intended to take part in the mixing. - Very large table models are no longer loaded in their entirety into RAM, but instead accessed by deferred read from disk. - There is a new (experimental) cyclical designation for those parameters which are periodic (for instance inclination angles) - The XSPEC v11 rgsxsrc model (which was missing in XSPEC 12), is now implemented with the new ftool rgsrmfsmooth. This applies the correction to the XMM RGS response for an extended source, removing the need to have the model inside XSPEC. Other - XSPEC recognises the home directory path '~/' notation when running scripts (using the '@' method), - Initpackage can take relative paths for its 3rd argument. Also, initpackage will append the prefix "lpack_" to the C++ library init file it produces. This should eliminate name conflicts with local model files. - Fakeit output has channel columns with type J rather than I. - Doing "xset " with no value argument now removes from the string database rather than leaving it in with an empty value. Fixes: - Plot sensitivity/insensitivity was crashing when used on spectra with ignored channels. - Fix made to table model's out-of-range and exactness testing for cases of negative value parameters. - Editmod was not recognizing blank spaces as separators between multiple values entered for a parameter in a script. It was only allowing commas to be separators. - Some cases of editmod on multiple-nested models were being prevented due to incorrectly identifying the operation as attempting to change more than one component. - In the data command, entering the invalid 0:0 for : was causing a segmentation fault. - Specific only to Mac Leopard with fink-installed gcc-4.2.1: the data group number was improperly read in from the data command's : syntax. New for version 12.3.1 02/07 Version 12.3.1 incorporates all of the bug fixes that were originally distributed as patches (a-am) for v12.3.0 (see the Xspec final issues/patches page for 12.3.0 for details). It also incorporates the following enhancements, also originally released as 12.3.0 patches: - "extend" option added to the energies command to reproduce the behavior of the old extend command in v11. - New "plot background" command to plot isolated background files (with folded models if they exist). New "setplot background" option for plotting the background in addition to the source spectra during a "plot data" command. - New tclout options: statmethod, weight, noticed, and noticed energy. - New Fortran-callable wrapper functions equivalent to v11's xsatbl and xsmtbl routines. This allows users writing local models in Fortran to access xspec12's table model interpolation functionality, and is required in order to use the swind1 model which was recently added to the "Additional Models" page. - Calculation efficiency improvement when fitting table models. New enhancements and fixes NOT previously released as patches: - Now compiles with gfortran. - All plots now receive the PLT "SCR WHITE" command, which makes the default plot background white instead of black. - Fixed data and fakeit command handling of cases where the user includes an absolute path with the file name. - Fixed possible memory access error for Fortran model functions calling the FGMSTR wrapper function. - Bug fix to projct mix component for case where par1 and/or par2 (major and minor axes of inner-most ellipse) change from zero to non-zero. - Modified behavior of tclout options: modcomp and modpar no longer throw an error when they can't find model, but just return 0. param no longer returns sigma as a seventh value. New for version 12.3.0 07/06 Version 12.3.0 incorporates the fixes and enhancements from all of the patch files (a-ap) for v12.2.1, in addition to the following key changes: Enhancements and Modifications: -- Full support for models with multiple responses (previously only available for Integral/SPI data formats). This replaces and enhances the v11 technique of specifying '/b' for background models. -- New command "energies." This is a more general and flexible replacement to the "extend" command of v11. -- 6 new models added to the standard XSPEC models library. Additive: diskpbb, laor2, nsatmos Convolution: kdblur, kdblur2, rdblur -- First-time support of XSPEC12 on Windows platform via Cygwin (except for initpackage and lmod commands for loading model libraries, see manual). -- First-time support on Intel Mac platform. -- New "show" command option, "show plot", displays all current "setplot" settings. -- New handling of zero variance during chi-square fits. Previously a minimum variance was ALWAYS applied to zero-variance channels for any type of fitting. Now it is only applied for chi-square fitting. -- Gaussian randomization is now applied in "fakeit" for non-Poisson type spectra. Previously Poisson randomization was applied in all cases. -- Enhancements to output of "tclout" flux and lumin options. Fixes: -- The "weight" command's model weighting option is now working. -- The STAMP option for the "log" command is now implemented for the first time in v12. -- During C-statistic fitting, the Poisson data warning is now issued only when the data are not Poisson. -- Fix to "undo" command for partial data removals. -- Fix to variance calculation for case where Poisson errors are selected and data (source and/or background) is given in RATES. -- For (e)emodel and (e)eufspec in setplot wave mode, the "e" multiplier is now in energy units, not wavelengths. -- A new implementation of model command parser should fix various parsing problems that arose with certain complicated model expressions. -- No longer using a start-up xspec script file to launch executable. This had been causing problems on Linux with the ctrl-z suspend mechanism. New for version 12.2.1 11/05 Version 12.2.1 incorporates the fixes and enhancements from all of the patch files (a-ck) for v12.2.0, in addition to the following key changes: Fixes: -- The Mac OS X Tiger build difficulties that had been causing runtime crashes have now been solved. XSPEC libraries that were built as shared on other platforms are now also shared on OS X Tiger. -- OS X Tiger users should now also be able to dynamically load their Fortran local model libraries, even if they share the XSFunctions COMMON block. Enhancements and Modifications: -- Runtime HELP can now be accessed ONLINE in html format, rather than just with the distributed PDF documents. The selection for this is made in the new Xspec.init file. -- Users can manually re-seed XSPEC's pseudo random number generator at any point in the program using the new "xset seed" command option. The default initial seed is taken from the time at program start-up. -- Uses new global_customize.tcl file (in Xspec/src/scripts) for storing customized start-up commands that are to be run for all system-wide users. Previously these commands had to be appended to the bottom of the xspec.tcl file, and hence had to be re-applied if xspec.tcl was ever patched. -- Model and model-related plots (ufspec and its variants) now always default to logarithmic scaling for both axes. -- New model components added, additive: nsagrav, multiplicative: zdust and zsmdust. New for version 12.2.0 4/11/05 Version 12.2.0 is the first official release of Xspec12, the redesigned and rewritten (from Fortran to C++) version of Xspec. This entry only documents the differences between v12.2.0 and the most recent (and final) beta version, v12.1.2. For documentation on the differences between v11 and v12, please see the HEASOFT release notes and the Xspec12 manual. All of the patches (a-h) for v12.1.2 have been incorporated into the new release. Documentation: -- Manual updated to include several new models, and descriptions of commands that were implemented since the beta release (see Enhnancements). Other minor changes/fixes/typo corrections also made. Enhancements: -- Covariance matrix now displayed at the end of successful fit. Covariance values are now also accessible through tclout. -- Added an 'undo' command. -- New plotting option: 'setplot area' -- Added 'tclout simpars' The following existed in Xspec v11.3x but were never implemented in the Xspec 12 alpha and beta test versions: -- Implemented 'chain' and 'margin' commands for generating Monte Carlo Markov chains. Also added related plot commands, 'plot mcmc' and 'plot margin'. -- 'bayes' command implemented to set up Bayesian inference. Relating to this, also implemented 'lstat' stat method option. Fixes: -- Numerous fixes to 'fakeit' command: It previously was not able to simulate data for 2 separate model sources. It now prompts in same order as v11 for all cases to provide backwards compatibility. As with v11, if original data had Poisson errors then so will faked data. -- Removed array out-of-bounds accesses that occurred in some quality and grouping settings. -- Removed artificial limit that was preventing files from loading which had more than 1023 consecutive channels with the same grouping or quality value. -- Removed bug that prevented accessing local models with names specified in upper-case letters. -- Bug fixes made to 'initpackage': Was wrongly interpreting all fortran model function names beginning with cap letters to mean double-precision. Only those beginning with 'F_' are now treated as double-precision. Fixed model.dat parsing problem when part of parameter name strings happen to match a component type name. Initpackage now copies xspec.inc file to user's local mod directory if it doesn't already find it there. -- Bug fixes made to execscript.cxx dealing with some cases of failing during input of multi-line xspec commands from script files. -- Fixed 'error' command when using 'migrad' fit method. -- 'xsect' command was causing xautosav scripts to stop processing. -- 'tclout peakrsid' was not dividing by proper effective area for calculating strengths of the max/min residuals. -- Removed 'goodness' seg-fault when run before valid fit is run. -- Removed 'flux' command requirement that 1 spectrum must be loaded. -- Plot ufspec now matches results in v11. -- Removed restriction that prevented linking of parameter to another param within the same model during the initialization stage of the model. -- Obscure comma counting problems in 'data' command fixed. -- During program exit, responses were deleted prior to being accessed during spectral data cleanup. This was causing seg-fault on Mac. -- 'backgrnd' command now adds ".pha" rather than ".bck" to filenames without a suffix. -- 'editmod' now prompts for param values when new component is added. Screen output is also cleaned up. -- 'help' command now properly handles case where partial name of command is given, previously was requiring entire name to be entered. -- 'eqwidth' was giving wrong values for the error bounds, fit parameters needed to be reset for each randomization. -- To make things easier for those not entering 'acroread' as their PDF viewer in the Xspec.init file, code no longer automatically appends window title to the user's entry. Instead, it only does this if it detects presence of "tempFileTitle" flag in user's entry. -- When 'error' command finds a new minimum, it now resets fit and prompts user for restart. Previously it would just exit. -- Fixed 'setplot device /xw' which was creating a file rather than opening a window. -- When running a script, commands are now echoed to screen. Previously they were only echoed to log file. -- Error messages are now sent to log file and not just the screen. -- More specific information is now given for RMFs that fail to load. -- Fixed bug in Xspec's custom pgplot postscript driver that was causing seg-faults when 'cpd' file command was repeatedly issued in a session.