XSPEC is a
command-driven, interactive, X-ray spectral-fitting program, designed to be
completely detector-independent so that it can be used for any spectrometer.
XSPEC has been used to analyze data from HEAO-1 A2, Einstein Observatory, EXOSAT,
Ginga, ROSAT, BBXRT, ASCA, CGRO, IUE, RXTE, Chandra, XMM-Newton, Integral/SPI,
Swift and Suzaku. There now over 1000 papers listed on ADS which cite the
Arnaud 1996 XSPEC reference.

This manual describes
XSPEC v12, which is available on Linux (gcc 3.2.2 and later), MacOSX/Darwin
(gcc 3.3 and later) , Solaris (2.6-9; WS6.0 and later). New users are advised
to read Chapter
2, which introduces spectral fitting and the XSPEC approach, Chapter
3, which gives an overview of the program commands, and Chapter
4, which contains walkthroughs of XSPEC sessions. They should then
experiment with XSPEC and, if necessary, look up individual commands in Chapter
5, or descriptions of the spectral models in use, in Chapter
6.

The User Interface for
XSPEC, which employs a tcl scripting
shell and the XSPEC parser are described in Appendix
A. Users possessing X-ray spectra with small numbers of counts per bin
are referred to Appendix
B, which describes the C-statistic option. Users interested in adding
their own models can read how to do so in Appendix
C. Appendix
D describes the PLT
plotting package which XSPEC currently uses for graphical output. Some of the
tools (FTOOLS, fortran programs, scripts) that can operate on XSPEC files are
listed in Appendix
E. The XSPEC model library can be linked into other programs following
the instructions in Appendix
F. Appendix
G describes how to use your own proposal distribution for Markov Chain
Monte Carlo. Finally, Appendix
H includes some notes on the changes between XSPEC v11 and v12.

·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 behavior except for a slight speed-up.

New models:

·agauss – Gaussian model with units in Angstrom and a Gaussian shape
in wavelength space.

·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
<Python/Python.h> 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 is available either as
binaries or source. We recommend downloading the source and compiling locally
to avoid potential system library conflicts and allow installation of any
patches we release. If you have any problems compiling or running XSPEC please
e-mail us at

The first version of XSPEC was written in 1983 at the Institute of Astronomy, Cambridge, under VAX/VMS by Rick Shafer. It was written to perform
spectral analysis of data from the ESA EXOSAT X-ray observatory, which was
launched that year. XSPEC is a descendant of a series of spectral-fitting
programs written at NASA/Goddard Space Flight Center for the OSO-8, HEAO-1 and
EO missions. The initial design was the fruit of many discussions between Rick
Shafer and Andy Szymkowiak. Rick Shafer subsequently joined the EXOSAT group,
where he enhanced the VAX/VMS version in collaboration with Frank Haberl.
Meanwhile, Keith Arnaud ported XSPEC to a Sun/UNIX operating system. The two
implementations of XSPEC diverged for several years until a determined and
coordinated effort was made to recover a single version. The results of that
effort was XSPECv6, described in the first edition of this manual. Subsequent
editions have covered later versions of the program. In recent years XSPEC has
become the de facto standard for X-ray spectroscopic analysis for the
ROSAT mission and the de jure standard for the BBXRT, ASCA, and RXTE
missions. It is now in extensive use for all current X-ray and gamma-ray
missions. An extensive re-engineering effort was started in the fall of 1998 to
improve long-term maintainability, allow significant new features to be added,
and support the analysis of spectra from coded-mask instruments.

This project would not have been possible without ignoring
the advice of far more people than can be mentioned here. We would like to
thank all our colleagues for their suggestions, bug reports, and (especially)
source code. The GSFC X-ray astronomy group are particularly thanked for their
patience exhibited while functioning as the beta test site for new releases.
The initial development of XSPEC was funded by a Royal Society grant to Prof.
Andy Fabian and subsequent development was partially funded by the European
Space Agency's EXOSAT project and is now funded by the HEASARC at NASA/GSFC.