University of Surrey

Ion Beam Centre

Ion beam analysis and the DataFurnace

Ion beam analysis is an enabling technology for thin film scientists and engineers. It is a powerful group of analytical techniques (known as "Total-IBA") for determining the elemental composition of thin films. We can get accurate (and traceable) analyses, with good spacial resolution both laterally and in depth.


Ion beam analysis (IBA) involves the use of an energetic ion beam to probe the surface of a material to reveal its elemental and structural details. New methods are being developed which also give information on the chemical (bonding types) and molecular (bonding arrangement) of materials. The ion beams themselves can be focused to sub-micron sizes and raster-scanned over the sample to give maps and 3D images of the structural and elemental/molecular distributions of a target material. This analysis may be performed in vacuum or in air.

The IBA DataFurnace

DataFurnace Downloads

DataFurnace and the WiNDF interface can be downloaded from the zip files below. The first one will install a recent executable and the second contains updates which you can copy over the installed version to take you to the most recent version.

What is DataFurnace?

The Ion Beam Analysis DataFurnace is a computer code to self-consistently extract elemental depth profiles from MeV ion beam analysis spectra, including Rutherford backscattering, elastic (non-Rutherford) scattering and recoiling, nuclear (inelastic) reactions and particle-induced X-ray emission (RBS, EBS, ERD, NRA and PIXE). It is able to solve the inverse problem ("given the spectrum, what is the profile") automatically, without user intervention, using Bayesian inference and Markov chain methods. A limited version was first published in Applied Physics Letters71 (1997) 291, and this paper has generated considerable interest, now (1st December 2015) having 462 citations listed in the ISI Web of Knowledge index.

There is a DataFurnace Review (September 2002, 4MB PDF) for the particle scattering code. A version of this was published in 2003 (Jeynes et al, J.Phys.D : Appl.Phys. 36, R97-R126) and has 123 citations as of 1st December 2015.

An invited review of self-consistent IBA including PIXE ("Total-IBA", December 2011, PDF, 722kB) was presented in April 2011 to the Brazil IBA conference and published in 2012 as Jeynes et al, Nuclear Instruments & Methods B,271, 107–118 : this now has 25 citations as of 1st December 2015.

The IBA DataFurnace is a fitting code, not a simulation code (although it has a simulator, of course). It was written by Nuno Barradas, with Chris Jeynes and Roger Webb. It has a core code to do the physics called NDF and written in Fortran, and a graphical user interface code (GUI) called WiNDF and written in Visual Basic. It is designed to facilitate accurate and automatic analysis of large batches of complex samples. The fits obtained are generally "perfect": the purpose is to extract all the information from the spectra (well, as much information as possible!). Channelling is not supported.

NDF ("Nuno's DataFurnace") is able to make fully automatic fits to experimental data, the user is only required to input the analytical conditions and the elements present. NDF uses the Simulated Annealing algorithm (hence the idea of a "Furnace").

This is the best general brief reference to simulated anealing I know. It includes solution of the Travelling Salesman problem and the problem of routing metallisation patterns on integrated circuits. It is nicely written and very accessible (unlike most of the technical books and papers!).

Simulated annealing is a Monte Carlo calculation which implements a global minimisation algorithm that works for (nearly) arbitrary functions. Simple minimisation algorithms find only local minima, but simulated annealing is able to jump out of local minima! Its all very clever! Read the paper!


WiNDF ("Windows NDF") is a Windows GUI to the NDF code. WiNDF enables you keep track of the many output files that are generated by NDF. WiNDF has an excellent simulator to allow the user to directly access the state-of-the-art physics used by NDF. It also includes comprehensive graphical spectral manipulation tools and many other utilities.

Find out more in our Information for users section

New v9 installation (WiNDFv9.3.68 and NDFv9.6a) released 18th February 2014

For current executables see "Executable code updates"

Last version 8 code versions: WiNDFv7.1.4, NDFv8.0b (both released June 2005 and now obsolete)

Version 9 has a much more powerful computation engine (NDF), described briefly in 2008 (Barradas & Jeynes, Nuclear Instruments & Methods B, 266, 1875-1879). This version also has a completely rewritten GUI (WiNDF).

Version 9 includes PIXE! Note that PIXE is now included (Pascual-Izarra, Reis & Barradas, Nuclear Instruments & Methods B, 249, 2006, 780), and NDF is critically compared with other X-ray fluorescence codes (both PIXE and SEM-EDS) by Bailey, Jeynes, Grime et al, X-ray Spectrometry, 38, 2009, 343.

Version 9 is validated! Note also that the particle scattering modules in NDF and other IBA codes have been compared in detail in 2007 in an IAEA-sponsored intercomparison (Barradas et al, Nuclear Instruments & Methods B, 262, 281-303) and summarised in 2008 (Barradas, Jeynes et al, Nuclear Instruments & Methods B, 266, 1338-1342).

Version 9 is capable of the highest possible accuracy! We have demonstrated 1% traceable accuracy of RBS for the first time (see Jeynes, Barradas & Szilágyi, Analytical Chemistry, 2012, 84, 6061−6069) and Colaux et al (Analyst , 2015, 140, 3251-3261), the latter not only demonstrating that this accuracy is robustly repeatable in the context of the Ion Beam Centre implanter fluence quality assurance programme but also that RBS is a primary direct reference method. This accuracy is traceable through the stopping power factor of 1.5 He in Si, which was determined directly at 0.8% (Colaux & Jeynes, Analytical Methods , 2014, 6, 120-129). Note that no other non-destructive thin-film analytical technique is capable of such accuracy in a standard-less analysis.

Version 9 includes a facility for automatic EBS! At last! NDFv9.3f and above can now be set up to silently use the right EBS cross-sections for the specified detector angle in your geometry file without any intervention at all by you (you have to download files from SigmaCalc and create an appropriate matrix - tool available).

DataFurnace extracts depth profiles of non-crystalline samples automatically from RBS/EBS/ERD/NRA spectra using single or multiple spectra for the same sample collected either with multiple detectors or multiple techniques, or both. It is specifically designed to handle large quantities of data.

DataFurnace encourages the user to input chemical assumptions (that is, fitting in terms of molecules), and allows the user to specify the algebraic form of the profile for a particular element (NDFv7.8e and above). Depth profiles are output in nm if the constituent densities are specified. Thin film densities are notoriously uncertain, and being able to express the density of changing compositions as a mixture of molecular densities is as realistic as possible.

DataFurnace can correct the spectra for pulse pile up and can fit moderate sample roughness. It can use any of the accepted stopping power tables or can use user-supplied ones. It has He-H and He-D non-Rutherford cross-sections built in. Straggle is implemented. It can also handle high resolution data with depth dependent resolution calculated with Edit Szilágyi's DEPTH code or otherwise. All types of ERD are supported, including heavy ion range foil ERD and ToF-ERD even where the recoil signals from different elements overlap (data which is usually ignored!).

Double scattering (Barradas, Nucl.Instrum.Methods B 225 (3): 318-330, 2004) is implemented (NDFv7.8g and above) (this is slow!).

The profile uncertainty can be evaluated reliably using Bayesian inference. Also, reverse calculations of the stopping power, or the non-Rutherford cross-section, can be made using Bayesian inference. Bayesian inference calculations are slow.

Full details of the calculation are available to the user together with publication quality graphics. All files are accessible for users to input into their favourite graphics packages if they wish. The data formats of licensed users are supported.

The IBA DataFurnace specifications

For v8 and below.

DataFurnace is designed as a very powerful tool for experienced IBA analysts to routinely extract accurate depth profiles from large numbers of IBA spectra. These specs are also valid for NDFv9, in which many other huge improvements have been made.

The accuracy of the results have been exhaustively checked by Boudreault, Jeynes, Wätjen et al ( Surface and Interface Analysis, Volume 33, Issue 6, 2002. Pages: 478-486 consistent with the ISO Guide to the expression of Uncertainty in Measurement (GUM). Here is a useful summary of GUM from Ghislain Boudreault's thesis (October 2002), which includes the work for Boudreault et al.

The Table below summarises the main features of DataFurnace which has been used for a wide variety of applications from 2MeV He RBS to 200MeV Au ERD with a gas detector. A comprehensive Review is also available (published in J.Phys.D 17 April 2003).

System requirements Runs on Windows 95, 98, Windows2000, NT, XP. Vista is not supported, and Windows7 is not yet supported.
Supports European Windows Region number representation (WiNDF 7.0.48 and above)

This is a computationally hungry code and requires at least 200MB RAM. A fast processor is very desirable.

The DataFurnace is designed to extract elemental depth profiles from any ion beam analysis depth profiling technique, namely Rutherford backscattering, non-Rutherford elastic backscattering (EBS), forward recoil spectrometry (elastic recoil detection: ERD/ERDA/FRS), or non-resonant nuclear reaction analysis (NRA). In the latter case the energy spectra are analysed: no tools are provided for depth profiling using beam energy scans. Cross-sections are supplied by the user in most cases. Range foil ERD and ToF-ERD are both supported.

Support is provided for the correct calculation of sharp resonances in EBS (although the straggling calculation is not completely correct in this case).

Neutron depth profiling is also supported.

PIXE is supported in v9.

Code validation The RBS code has been thoroughly validated against the CRM (certified reference material) IRMM302/BAM-L001 by Boudreault et al (Surf.Interface Anal. 33, 2002, 478).

EBS code has been validated by Jeynes et al (Nucl.Instrum.Methods B161-163, 2000, 287).

ERD code has been validated in a round robin (Boudreault et al, Nucl.Instrum.Methods B222, 2004, 547-566)

Documentation Manual for NDFv9 (76 pages)
Manual for WiNDFv7 (70 pages)
Full scientific review in J.Phys.D (30 pages)
Simulation Of course, DataFurnace can simulate spectra, like any other current IBA analysis program.

The simulator is very straightforward and includes a convenient graphical user interface which will be improved

Optimisation of a known structure
"Local Minimisation"
Given an approximate structure (depth profile) the program can optimise it.
Like all IBA optimisation programs, DataFurnace minimisation usually requires the initial approximation to be quite good.
Fitting spectra DataFurnace will fit spectra given the analytical conditions and knowledge of the elements in the sample. No other information is required from the user. Complex spectra with overlapping partial spectra are solved as easily as simple ones completely automatically, leaving the task for the analyst to think about what information really is in the data, and how well known the analytical conditions really are.

The analyst is - at last - relieved of the tedious business of finding a structure that gives a plausible fit to the data. Moreover, DataFurnace fits are typically extremely good, allowing much more information to be extracted from the data than by manual methods.

The code fits the spectra by selecting an appropriate layer structure. Occam's Razor is used to minimise the number of layers: continuous profiles are represented by discontinuous layered profiles. This is valid since IBA spectra with limited depth resolution are ambiguous. However, we have also permitted one element to have an analytical depth profile, where any valid Fortran analytical function is specified by the user and up to 10 parameters are fitted (NDF7.8e and above).

Data Formats
A wide variety of formats are supported. Our policy is to provide support for the formats of our licenced users so that DataFurnace can be used routinely for large datasets.
Estimation of Uncertaintydue to spectral ambiguity Fitted depth profiles can be supplied with statistically sound estimates of measurement uncertainty using Bayesian inference methods which are natural to the fitting algorithms used. Computation times for these are typically hours (in contrast to fitting times of minutes).
Multiple spectra
Multiple detectors
Multiple techniques
IBA spectra are very ambiguous. Analysts reduce this ambiguity by taking multiple spectra at different beam energy, incidence angles etc. They can also use multiple detectors (different backscattering angles) or even multiple techniques (such as simultaneous RBS/ERD for a complete analysis including H).

DataFurnace is designed to encourage analysts to do any or all of these things. Various cases are handled, including spectra collected simultaneously, and the special case of ERD spectra with overlapping partial recoil spectra. This latter case is the cause for some ToF-ERD data to be ignored, and is the usual case for heavy ion range foil ERD (including analysis of H isotopes with a He beam).

Molecules: chemical assumptions about sample DataFurnace does not require the analyst to have any knowledge about the sample, except which elements are present. However, in many cases the spectra are deeply ambiguous and the user cannot get DataFurnace to give a valid answer (in terms of what is known about the sample) without insisting that certain depth profiles are excluded. Various tools are provided for this, the most important of which are:
  • allowing molecules to be specified. Thus a glass can be specified as a single logical element, for example. The molecule can be specified in an indeterminate form such as CuOx for example, instead of CuO or CuO2 etc: then DataFurnace will find the best value of x (NDFv7.8e and above).
  • allowing pure layers to be specified
  • allowing the substrate to be specified
  • allowing minimum and maximum depths of logical elements to be specified. So we can exclude layers we know are at the surface from deep in the sample, or exclude the substrate from the near-surface region.
  • for one element the form of the depth profile can be specified by a formula with up to 10 parameters which NDF will fit (NDF7.8e and above)
Pulse Pileup
Energy Straggle
Stopping powers
  • Simple binary pulse pileup is calculated using Jeynes et al (Nucl.Instrum.Methods, B136-138, 1998, 1229) provided the data format gives the run-time (allowing an average count rate to be calculated).
  • Amsel, Wielopolsky & Gardner, and Molodtsov & Gurbich pileup are supported in NDFv9
  • Bohr or Chu straggling calculation is incorporated. Szilágyi's DEPTH program is supported (and can be executed directly by NDF during the fit : NDF7.8g and above)).
  • TRIM88 values are distributed. A variety of other stopping power compilations are supported including TRIM95, SRIM2000 and Hemut Paul's heavy ion stopping powers (NDF7.7a and above).
  • Konac et al (" KKKNS", NIM, 1998, B136-138, pp.156-65) stopping powers for He in Si are available as a patch. Molecular stopping powers are supported, and the stopping powers for He in SiO2 of Pascual-Izarra et al (NIM, 2002, B196, pp.209-214) are also available as a patch (NDF7.8c and above).
  • SRIM2003 and above stopping powers are supported in NDFv9
Double scattering
Voids & Inclusions
Moderate roughness can be fitted (NDFv7.8c and above). Three different models are available, but they all assume that the beam enters and leaves the sample only once.

A double scattering calculation is implemented (NDFv7.8f and above). This is comparable to the double scattering in Matej Meyer's SIMNRA.

Support for voids & inclusions is provided in NDFv9

Graphical output: publishable qualityGraphical output with a variety of spectral manipulation and display options is provided for evaluation of results and preparation of reports including journal publications (OK, it's not a general purpose plotting program so only limited options are available!):
  • Raw data, includes mass calculator for surface signals
  • Fitted spectra, including fitted partial spectra
  • Fitted depth profiles
  • Re-plotting partial spectra on concentration vs depth scale
Numerical output
Comprehensive output is all in well defined readable text files. The user can read all output into his/her own programs at will.
Polynomial curve fitting

"multiple scattering"

Linear depth scales

  • Polynomial fits up to fifth order on up to 6 regions of interest of a spectrum
  • A procedure is facilitated involving division of a spectrum by a fit, fitting the result with a cubic curve and putting the coefficients into the program. Then spectral misfits due to multiple scattering and other effects can be corrected, allowing the analyst to force DataFurnace to fit the data closely. This is necessary to interpret the spectra closely, and we have shown that this can be done validly (Barradas, Jeynes & Jackson, NIM, 1998).
  • Depth scales are calculated in atoms/cm2 (proper thin film units)
  • Depth scales can be expressed in nm where the user is facilitated to specify the density of each logical element. Linear combinations are calculated. If the chemistry of the sample is specified correctly and the bulk densities are valid for thin films then the depth scale in nm calculated this way is correct. Otherwise not. In any case there is no other way to give a correct linear depth scale.
  • Depth scales can also be expressed in nm assuming a constant sample atom density
  • Depth scales can be displayed in ug/cm2 in NDFv9
Batch analysis Up to 99 samples can be analysed in a single batch, with up to 16 spectra per sample. The batch runs without user input. Typically the machine is fitting the next sample while the analyst is preparing the report of the fit from the last one. Final results might be run at a slower speed overnight.