A1 - Large IDF file with experimental and NDF fitted RBS-NRA-PIXE-SIMS data#
Introduction#
The multi-technique analysis was made using the NDF code. The models (and their parameters) used are also saved in the IDF file, along with the obtained fits.
Since we will be dealing with NDF, we will also introduce the methods to read the input parameters directly from the NDF input files. This will be done for two main reasons:
convenience, since it is a complex experiment with a significant number of parameters;
to demonstrate how we can transform old analysis files into a single IDF file.
However, we recall that all the data imported from the NDF files can be introduced manually, as we did in the Basic Examples.
Creating a IDF file with multiple spectra#
As done in previous examples, we start by importing pyIBA, specificing the path to the input files and the name of the final IDF file:
[72]:
# if pyIBA has been installed with pip3,
# the above 4 lines can be removed
import sys
from os.path import abspath
path_pyIBA = abspath('../../../../..')
sys.path.insert(0, path_pyIBA)
# import pyIBA, NDF and auxiliar metods
from pyIBA import IDF, auxiliar
from pyIBA.codes import NDF
[73]:
folder_path = 'files_used_in_idf/' #'folder_to_NDF_files/'
file2save = 'IDF_multi_techinques.xml'
Initialize a new (empty) IDF object#
We are starting from scratch, so we create a blan IDF object (see Example 1):
[74]:
# this creates a new object IDF from pyIBA library
idf_file = IDF()
Sample and overall description of the IDF file#
Here we include the author of the IDF file, the description of the file and the sample details.
General information#
[75]:
# set user name
idf_file.set_user('Miguel Sequeira')
# set description
description = ['File created to exemplify the IDF capabilities.',
'The measurements are obtained from a Be sample with:',
'1H ; Mo ; 2H ; 12C ; O ; Cr 1376 Fe 6136 Cu 2488 ; W ; Ni ; Be',
'It contains: ',
'- a RBS measurement corresponding to 3 different reactions;',
'- a NRA measurement corresponding to 6 different reactions;',
'- a PIXE measurement;',
'- a SIMS measurement.',
'The experimental parameters are included as well. For each measurement, the parameters used in NDF and corresponding fits are also saved.',
]
# set the notes to the IDF file
for line in description:
idf_file.set_note(line, append = True)
Load Elements from the str file of NDF#
The str files are NDF input files where the sample details (e.g. elements, stoichiometry, etc…) are defined. Such details can also be inputed directly by defining the molecules dictionary by hand (see documentation for further details).
[76]:
# point to the NDF str file
str_file = folder_path + 'Jari1.str'
idf_file.set_data_from_str_file(str_file, type = 'initial')
Alternatively, we could also load the elements from the str file using
elements = pyIBA.codes.NDF.read_str_file(str_file)
edit them if needed and add them to the idf_object:
idf_file.set_elements(elements)
Experimental data#
The geo files are NDF input files that contain all the information on the experiment geometry and reactions. We use the pyIBA to load this information directly from the geo files into the IDF file. If no geo files are presented, one can introduce the same information using the direct methods of pyIBA (e.g. see Example 5 or Example 1).
Note: geo files also contain information about the methods used to obtain the fits with the NDF (i.e. double scattering, pile-up and straggling, energy loss). By loading the geo file into the IDF, such details are also included in the final file.
RBS data#
The RBS experiment was made with 2300 keV protons and detects 3 reactions: - the RBS one 1H -> 1H; - and two 2 NRA: - Be(1H, 8Be)2H 0.56; - Be(1H, 6Li)4He 2.12.
We add this reactions to the same spectrum entry since they are detected simultanusely. This is done using the set_reactions() method, as we did for the case of NRA in Example 5:
[77]:
# point to the files concerning the RBS measurements and geometries containing the 3 different reactions measured
data_file_RBS = folder_path + 'RBS1_Jari_VTT_P_1.dat'
geo_files_RBS = [
folder_path + 'G_RBS_2300_pp0.GEO',
folder_path + 'G_RBS_2300_BeD.GEO',
folder_path + 'G_RBS_2300_BeHe.GEO'
]
# # add 1 spectrum entry to the IDF file:
# idf_file.append_spectrum_entry(1)
# define the spectra_id of this RBS spectrum
spectra_id = 0
# add the geometry parameters from the NDF geo file corresponding to the RBS reaction;
# notice that we are not loading the analysis models when setting `add_models = False`
idf_file.set_data_from_geo_file(geo_files_RBS[0], add_models = False, spectra_id = spectra_id)
# set charge equal to 1
idf_file.set_charge(1, spectra_id = spectra_id)
#loop true the remaining geo files (note the [1:]) to add the NRA reactions
for geo in geo_files_RBS[1:]:
# read the geometry parameters from the files
geo_params = NDF.read_geo_file(geo)
# set the reaction in this loop
idf_file.set_reactions(geo_params['reactions'], spectra_id = spectra_id)
# idf_file.set_energy_calibration(geo_params['calibration'][0], geo_params['calibration'][1],
# append = True, spectra_id = spectra_id)
# finally load spectra from the dat file
idf_file.set_spectrum_data_from_file(data_file_RBS, mode = '8 columns', spectra_id = spectra_id);
[78]:
idf_file.get_reactions(spectra_id=0)
[78]:
[{'initialtargetparticle': None,
'incidentparticle': '1H',
'exitparticle': '1H',
'finaltargetparticle': None,
'reactionQ': '',
'code': '(1H, 1H)'},
{'initialtargetparticle': 'Be',
'incidentparticle': '1H',
'exitparticle': '8Be',
'finaltargetparticle': '2H',
'reactionQ': '559.20',
'code': 'Be(1H, 8Be)2H 559.20'},
{'initialtargetparticle': 'Be',
'incidentparticle': '1H',
'exitparticle': '6Li',
'finaltargetparticle': '4He',
'reactionQ': '2125.00',
'code': 'Be(1H, 6Li)4He 2125.00'}]
NRA data#
We now add the NRA data to the IDF object. To avoid overwriting the RBS data introduced above, we set
spectra_id = 1
Similar to what we did above for the RBS data, we load the experimental details directly from the NDF’s geo files.
Alike RBS, we have to add 6 reactions:
D(3He, 1H)4He 18.35;
Be(3He, 1H)11B 10.32;
Be(3He, 1H)11B 8.19;
Be(3He, 1H)11B 5.88;
Be(3He, 1H)11B 5.30;
12C(3He, 1H)14N 4.78.
We add them to the IDF file in the same manner we did for the RBS.
[79]:
# point to the files concerning the NRA measurements and geometries containing the 6 different reactions
data_file_NRA = folder_path + 'RBS2_Jari_VTT_He_1.dat'
geo_files_NRA = [
folder_path + 'G_NRA_2300_Dp0.GEO',
folder_path + 'G_NRA_2300_Bep0.GEO',
folder_path + 'G_NRA_2300_Bep1.GEO',
folder_path + 'G_NRA_2300_Bep2.GEO',
folder_path + 'G_NRA_2300_Bep3.GEO',
folder_path + 'G_NRA_2300_Cp0.GEO',
]
# increate the number of spectra in the IDF to 2
idf_file.append_spectrum_entry(2)
# define the id of the NRA entry
spectra_id = 1
# add the geometry parameters from the geo file
idf_file.set_data_from_geo_file(geo_files_NRA[0], add_models=False, spectra_id = spectra_id)
# set charge equal to 1
idf_file.set_charge(1, spectra_id = spectra_id)
# add remaining reactions from the other geo files
for geo in geo_files_NRA[1:]:
geo_params = NDF.read_geo_file(geo)
idf_file.set_reactions(geo_params['reactions'], spectra_id = spectra_id)
idf_file.set_energy_calibration(geo_params['calibration'][0], geo_params['calibration'][1],
append = True, spectra_id = spectra_id)
# load spectra from dat file
idf_file.set_spectrum_data_from_file(data_file_NRA, mode = '8 columns', spectra_id = spectra_id);
PIXE data#
Similar to what we did above for the RBS and NRA, we load the experimental details directly from the NDF’s geo file. Here, we set:
spectra_id = 2
Note: The PIXE include here is in fact the output of the GUPIX since this is what is handled by NDF.
[80]:
# point to the file concerning the PIXE output from the cpixe code
data_file_PIXE = folder_path + 'CDTE_Jari_VTT_P_1.out'
geo_files_PIXE = folder_path + 'G_PIXE_2300.GEO'
# add the number of PIXE spectra entries to the IDF file:
idf_file.append_spectrum_entry(3)
# define the id of the PIXE entry
spectra_id = 2
# add the geometry parameters from the geo file
idf_file.set_data_from_geo_file(geo_files_PIXE, spectra_id = spectra_id)
# add the entire PIXE output to IDF file
idf_file.load_pixe_data_from_file(data_file_PIXE, spectra_id = spectra_id)
# set charge equal to 1
idf_file.set_charge(1, spectra_id = spectra_id)
SIMS data#
SIMS data can also be included in the IDF files, as we see next.
Since there is no NDF geometry file associated with SIMS, we input the experimental parameters using the pyIBA direct methods.
Note that the reaction dictionary used in set_reaction(reaction_dic) contains actually the particles detected in the SIMS measurement. Nontheless, note that most of the methods used to include the parameters are the same as the ones used for the IBA techniques.
[81]:
# point to the file concerning the SIMS data
data_file_sims = folder_path + 'SIMS IDF.DAT'
# define the calibration parameters
sims_calibration_dic = {
'particle': 'all',
'mode': 'depth',
'a': 1.0,
'b': 0
}
# define the particles detected
reactions_dic = {
'detectedparticles': '1H 2H Be 12C Ni Mo W',
}
# define the experimental parameters
params = {
'incidentparticle': 'O2',
'energy': 5,
'window':[10,2500],
'FWHM':500,
'solid_angle':1,
}
# set the number of spectra entries in the IDF file to 4:
idf_file.append_spectrum_entry(4)
# define the id of the SIMS entry
spectra_id = 3
# since there is no geo file for this SIMS, we define the geometry parameters manually
idf_file.set_beam_particles(params['incidentparticle'], spectra_id=spectra_id)
idf_file.set_beam_energy(params['energy'], spectra_id=spectra_id)
idf_file.set_beam_energy_spread(params['FWHM'], spectra_id=spectra_id)
idf_file.set_SIMS_calibration(sims_calibration_dic, spectra_id = spectra_id)
idf_file.set_technique('SIMS', spectra_id = spectra_id)
idf_file.set_reactions(reactions_dic, mode = 'masslist', spectra_id = spectra_id)
idf_file.set_window_min(params['window'][0], spectra_id=spectra_id)
idf_file.set_window_max(params['window'][1], spectra_id=spectra_id)
idf_file.set_detector_solid_angle(params['solid_angle'], spectra_id=spectra_id)
# add the SIMS measured data
idf_file.set_SIMS_from_file(data_file_sims, spectra_id = spectra_id)
idf_file.set_spectrum_file_name(data_file_sims.split('/')[-1], spectra_id= spectra_id)
Analysis data#
We now add the fits and related results obtained with NDF. The results below have been obtained from fitting the entire set of experimental data. Thus, we have to include:
3 fits for the RBS;
6 fits for the NRA;
1 fit for PIXE;
1 fit for SIMS;
the resultant stoichiometry (the str file);
the resultant depth profile (the prf file).
Each technique and reaction will also use different analysis models (e.g. Double Scattering, Pile-up) and thus the reason for a geo file for each simulation. So, we first set the number of simulations in each spectra entry using append_simulation_entry(), a similar method to append_spectrum_entry. Afterwards we add the parameters from the geo files for each technique/reaction. Finally we add the corresponding fits.
RBS data#
To load the models for the 3 reactions by running:
[82]:
# set the spectra_id of the RBS entry
spectra_id = 0
# change the total number of simulations on this entry to 3
idf_file.append_simulation_entry(len(geo_files_RBS), spectra_id = spectra_id)
# loop through each geo file while and reaction
for sim_id, geo in enumerate(geo_files_RBS):
# add analysis models from geo file
idf_file.set_models_from_geo_file(geo, spectra_id=spectra_id, simulation_id=sim_id)
Now add the fits:
[83]:
# point to the fit dat file
data_file_RBS_fit = [
folder_path + 'Jarf0101.dat',
folder_path + 'Jarf0102.dat',
folder_path + 'Jarf0103.dat',
]
for sim_id, fit in enumerate(data_file_RBS_fit):
# load the experimental and fit data from the file
channels, yields, fit = auxiliar.load_spectrum_from_file(fit, mode = 'NDF simulation')
# add the channels and fits to the RBS sections of the IDF file
idf_file.set_spectrum_data_fit_result(channels, fit, spectra_id=spectra_id, simulation_id=sim_id)
NRA data#
[84]:
spectra_id = 1
idf_file.append_simulation_entry(len(geo_files_NRA), spectra_id=spectra_id)
for sim_id, geo in enumerate(geo_files_NRA):
idf_file.set_models_from_geo_file(geo, spectra_id=spectra_id, simulation_id=sim_id)
[85]:
data_file_NRA_fit = [
folder_path + 'Jarf0104.dat',
folder_path + 'Jarf0105.dat',
folder_path + 'Jarf0106.dat',
folder_path + 'Jarf0107.dat',
folder_path + 'Jarf0108.dat',
folder_path + 'Jarf0109.dat'
]
for sim_id, fit in enumerate(data_file_NRA_fit):
# load the data from the file
channels, yields, fit = auxiliar.load_spectrum_from_file(fit, mode = 'NDF simulation')
# add the channels and fits to the RBS sections of the IDF file
idf_file.set_spectrum_data_fit_result(channels, fit, spectra_id=spectra_id, simulation_id=sim_id)
PIXE data#
[86]:
data_file_PIXE_fit = folder_path + 'Jarf0117.dat'
spectra_id = 2
lines, area = auxiliar.read_pixe_file(data_file_PIXE_fit, mode = 'NDF simulation')
idf_file.set_PIXE_data_fit_result(lines, area, spectra_id = spectra_id)
SIMS data#
[87]:
data_file_sims = folder_path + 'SIMS IDF - fits.DAT'
spectra_id = 3
sims_data = auxiliar.load_SIMS_file(data_file_sims)
idf_file.set_SIMS_data_fit(sims_data, spectra_id=spectra_id)
Set elements results from str file#
Each technique can have its own set of results. However, since the analysis was done simultaneously, all the techniques share the same elements results.
[88]:
# point to the output file with the fit results for the elements
str_file = folder_path + 'Jars01.str'
# get the number of spectra in the file
nspectra = idf_file.get_number_of_spectra()
# loop through every technique
for i in range(nspectra):
nsims = idf_file.get_number_of_simulations(spectra_id = i)
for j in range(nsims):
idf_file.set_data_from_str_file(str_file, spectra_id = i, simulation_id = j)
Set profile results from prf file#
[89]:
prf_file = folder_path + 'Jar01.prf'
nspectra = idf_file.get_number_of_spectra()
for i in range(nspectra):
nsims = idf_file.get_number_of_simulations(spectra_id = i)
for j in range(nsims):
idf_file.set_data_from_prf_file(prf_file, spectra_id = i, simulation_id = j)
Set NDF run options#
We also add the NDF run options used to obtain the above fits. Since all of the fits were obtained simultaneously, the same options are shared between the different techniques.
[90]:
for id in range(idf_file.get_number_of_spectra()):
for sim_id in range(idf_file.get_number_of_simulations(spectra_id = id)):
idf_file.set_NDF_run_option('fitmethod', '6 - Custom (TCN)', spectra_id=id, simulation_id = sim_id)
idf_file.set_NDF_run_option('channelcompreesion', '0 - No compression', spectra_id=id, simulation_id = sim_id)
idf_file.set_NDF_run_option('convolute', '1 - Convolute FWHM', spectra_id=id, simulation_id = sim_id)
idf_file.set_NDF_run_option('distribution', '1 - Use isotropic distribution', spectra_id=id, simulation_id = sim_id)
idf_file.set_NDF_run_option('smooth', '0 - Don\'t smooth data', spectra_id=id, simulation_id = sim_id)
idf_file.set_NDF_run_option('normalisation', '1 - Normalise profile', spectra_id=id, simulation_id = sim_id)
Save IDF file#
Finally we save the IDF file:
[91]:
idf_file.save_idf(file2save);
Retrive data and plot everything#
[92]:
import matplotlib.pyplot as plt
plt.rcParams.update({'font.size': 12})
[93]:
for id in range(0,4):
nsim = idf_file.get_number_of_simulations(spectra_id = id)
technique = idf_file.get_technique(spectra_id = id)
plt.figure(figsize = (8,6))
xx_exp, yy_exp = idf_file.get_dataxy(spectra_id=id)
if technique in ['RBS', 'NRA']:
plt.plot(xx_exp, yy_exp, 'x', label = 'Exp.')
for sim_id in range(0, nsim):
xx, yy = idf_file.get_dataxy_fit(spectra_id=id, simulation_id=sim_id)
name = idf_file.get_reactions(spectra_id=id)[sim_id]['code']
plt.plot(xx, yy, label = name)
plt.xlabel('Energy (Channels)')
plt.legend(frameon=False)
elif 'PIXE' == technique:
plt.stem(xx_exp, yy_exp, basefmt = ' ', label = 'Exp.')
xx, yy = idf_file.get_dataxy_fit(spectra_id=id)
plt.scatter(xx, yy, marker = '_', s = 250, color = 'r', label = 'Fit')
plt.xlabel('Element/Line')
plt.ylabel('Line Area')
plt.legend(frameon=False)
plt.yscale('log')
elif 'SIMS' == technique:
for particle, profile in yy_exp.items():
plt.plot(xx_exp, profile, label = r'%s'%auxiliar.latex_atom(particle))
xx, yy = idf_file.get_dataxy_fit(spectra_id=id)
for particle, profile in yy.items():
plt.plot(xx, profile, '--', color = (0.2,0.2,0.2))
plt.plot([],[], '--', color = (0.2,0.2,0.2), label = 'Fit')
plt.yscale('log')
plt.xlabel(r'Depth ($\mu$m)')
plt.legend(frameon = False, ncol= 2, loc='center left', bbox_to_anchor=(1, 0.5))
Checking the file#
As done in previous examples, the contents of the IDF file can be checked using:
[94]:
idf_file.print_idf_file()
=============== IDF_multi_techinques ===============
IDF_multi_techinques.xml
Miguel Sequeira
------------------ Notes ------------------
File created to exemplify the IDF capabilities.
The measurements are obtained from a Be sample with:
1H ; Mo ; 2H ; 12C ; O ; Cr 1376 Fe 6136 Cu 2488 ; W ; Ni ; Be
It contains:
- a RBS measurement corresponding to 3 different reactions;
- a NRA measurement corresponding to 6 different reactions;
- a PIXE measurement;
- a SIMS measurement.
The experimental parameters are included as well. For each measurement, the parameters used in NDF and corresponding fits are also saved.
------------------ Elements -----------------
nelements 9
- - - Element 0 - - -
name 1 H
density
concentration ['0', '0.02']
depth ['0', '200000']
- - - Element 1 - - -
name Mo
density
concentration ['0', '0.1']
depth ['0', '200000']
- - - Element 2 - - -
name 2 H
density
concentration ['0', '0.1']
depth ['0', '180000']
- - - Element 3 - - -
name 12 C
density
concentration ['0', '0.1']
depth ['0', '100000']
- - - Element 4 - - -
name O
density
concentration ['0', '0.12']
depth ['0', '55000']
- - - Element 5 - - -
name Cr 1376 Fe 6136 Cu 2488
density
concentration ['0', '0.05']
depth ['0', '800000']
- - - Element 6 - - -
name W
density
concentration ['0', '0.05']
depth ['0', '300000']
- - - Element 7 - - -
name Ni
density
concentration ['0', '0']
depth ['0', '300000']
- - - Element 8 - - -
name Be
density 11.067
concentration ['s', '']
depth ['0', '0']
------------------ Profile -----------------
Profile not found
-------- Spectrum 0 (RBS1_Jari_VTT_P_1.dat) --------
Technique RBS
(1H, 1H)
Be(1H, 8Be)2H 559.20
Be(1H, 6Li)4He 2125.00
Projectile 1H
Beam energy 2300.0
Beam fwhm 25.0
Geometry ibm
Angles ['10', '150']
Dect solid 4.3
Energy calib [4.09, 103.87]
Charge 1
-------- Spectrum 1 (RBS2_Jari_VTT_He_1.dat) --------
Technique NRA
D(3He, 1H)4He 18352.00
Be(3He, 1H)11B 10321.90
Be(3He, 1H)11B 8191.00
Be(3He, 1H)11B 5876.96
Be(3He, 1H)11B 5300.96
12C(3He, 1H)14N 4779.00
Projectile 3He
Beam energy 2300.0
Beam fwhm 20.0
Geometry cornell
Angles ['0', '135']
Dect solid 34.00
Energy calib [15.4, 280.78]
Charge 1
-------- Spectrum 2 (CDTE_Jari_VTT_P_1.out) --------
Technique PIXE
(1H, X)
Projectile 1H
Beam energy 2300.0
Beam fwhm 15.0
Geometry cornell
Angles ['0', '150']
Dect solid 10.00
Energy calib ['Mar2016.eff', 'Calibra��o do detector Gresham em Dezembro de 2005 � energia de 1220 keV CGrDez05\n 1220.000\n EkeV Eff. Teo.\n :::::::::::::::::::::::::::::::\n EFFIFILEVERSION 3\n \n DETECTORCURVE\n 1.000\t9.479E-05\n 1.011\t1.171E-04\n 1.012\t1.063E-04\n 1.041\t1.795E-04\n 1.100\t4.481E-04\n 1.142\t7.755E-04\n 1.143\t7.850E-04\n 1.200\t1.478E-03\n 1.250\t2.366E-03\n 1.253\t2.428E-03\n 1.300\t3.548E-03\n 1.379\t6.055E-03\n 1.400\t6.853E-03\n 1.487\t1.071E-02\n 1.500\t1.136E-02\n 1.600\t1.711E-02\n 1.700\t2.363E-02\n 1.740\t2.638E-02\n 1.750\t2.707E-02\n 1.806\t3.100E-02\n 1.838\t3.327E-02\n 1.839\t3.334E-02\n 1.900\t3.767E-02\n 2.000\t4.468E-02\n 2.014\t4.568E-02\n 2.042\t4.766E-02\n 2.100\t5.168E-02\n 2.166\t5.612E-02\n 2.200\t5.833E-02\n 2.205\t5.865E-02\n 2.206\t5.622E-02\n 2.240\t5.839E-02\n 2.290\t6.149E-02\n 2.291\t5.827E-02\n 2.300\t5.882E-02\n 2.307\t5.924E-02\n 2.400\t6.471E-02\n 2.465\t6.832E-02\n 2.500\t7.019E-02\n 2.578\t7.416E-02\n 2.579\t7.421E-02\n 2.600\t7.523E-02\n 2.622\t7.629E-02\n 2.644\t7.733E-02\n 2.645\t7.737E-02\n 2.686\t7.925E-02\n 2.687\t7.930E-02\n 2.700\t7.988E-02\n 2.742\t8.171E-02\n 2.743\t7.998E-02\n 2.800\t8.239E-02\n 2.816\t8.305E-02\n 2.900\t8.636E-02\n 3.000\t8.999E-02\n 3.100\t9.338E-02\n 3.148\t9.490E-02\n 3.149\t9.407E-02\n 3.176\t9.491E-02\n 3.177\t9.494E-02\n 3.200\t9.563E-02\n 3.201\t9.566E-02\n 3.202\t9.469E-02\n 3.300\t9.754E-02\n 3.313\t9.790E-02\n 3.400\t1.002E-01\n 3.424\t1.008E-01\n 3.425\t1.003E-01\n 3.450\t1.009E-01\n 3.500\t1.021E-01\n 3.589\t1.042E-01\n 3.600\t1.044E-01\n 3.690\t1.063E-01\n 3.695\t1.064E-01\n 3.696\t1.064E-01\n 3.700\t1.065E-01\n 3.769\t1.078E-01\n 3.800\t1.084E-01\n 3.900\t1.101E-01\n 3.998\t1.117E-01\n 3.999\t1.117E-01\n 4.000\t1.117E-01\n 4.013\t1.119E-01\n 4.100\t1.134E-01\n 4.200\t1.149E-01\n 4.300\t1.163E-01\n 4.400\t1.175E-01\n 4.465\t1.182E-01\n 4.500\t1.186E-01\n 4.510\t1.187E-01\n 4.600\t1.195E-01\n 4.700\t1.205E-01\n 4.780\t1.211E-01\n 4.781\t1.211E-01\n 4.800\t1.213E-01\n 4.900\t1.221E-01\n 4.932\t1.223E-01\n 4.951\t1.224E-01\n 5.000\t1.228E-01\n 5.099\t1.234E-01\n 5.100\t1.234E-01\n 5.200\t1.241E-01\n 5.300\t1.246E-01\n 5.400\t1.252E-01\n 5.451\t1.254E-01\n 5.452\t1.254E-01\n 5.500\t1.257E-01\n 5.600\t1.262E-01\n 5.700\t1.266E-01\n 5.800\t1.270E-01\n 5.899\t1.274E-01\n 5.900\t1.274E-01\n 6.000\t1.275E-01\n 6.056\t1.277E-01\n 6.100\t1.278E-01\n 6.200\t1.282E-01\n 6.300\t1.285E-01\n 6.400\t1.288E-01\n 6.404\t1.288E-01\n 6.490\t1.290E-01\n 6.500\t1.291E-01\n 6.600\t1.293E-01\n 6.700\t1.296E-01\n 6.800\t1.298E-01\n 6.900\t1.300E-01\n 7.000\t1.302E-01\n 7.058\t1.303E-01\n 7.100\t1.304E-01\n 7.173\t1.306E-01\n 7.200\t1.306E-01\n 7.300\t1.308E-01\n 7.400\t1.310E-01\n 7.477\t1.311E-01\n 7.500\t1.311E-01\n 7.600\t1.313E-01\n 7.700\t1.314E-01\n 7.800\t1.315E-01\n 7.900\t1.317E-01\n 8.000\t1.318E-01\n 8.046\t1.319E-01\n 8.200\t1.320E-01\n 8.332\t1.322E-01\n 8.333\t1.295E-01\n 8.396\t1.296E-01\n 8.400\t1.296E-01\n 8.600\t1.299E-01\n 8.637\t1.300E-01\n 8.800\t1.302E-01\n 8.903\t1.304E-01\n 9.000\t1.305E-01\n 9.200\t1.308E-01\n 9.400\t1.310E-01\n 9.572\t1.312E-01\n 9.600\t1.313E-01\n 9.712\t1.314E-01\n 9.800\t1.315E-01\n 10.000\t1.317E-01\n 10.200\t1.319E-01\n 10.400\t1.320E-01\n 10.544\t1.322E-01\n 10.600\t1.322E-01\n 10.800\t1.324E-01\n 11.000\t1.325E-01\n 11.200\t1.326E-01\n 11.222\t1.326E-01\n 11.400\t1.327E-01\n 11.600\t1.329E-01\n 11.800\t1.330E-01\n 11.920\t1.330E-01\n 11.921\t1.325E-01\n 11.924\t1.325E-01\n 12.000\t1.325E-01\n 12.200\t1.327E-01\n 12.400\t1.328E-01\n 12.496\t1.328E-01\n 12.500\t1.328E-01\n 12.600\t1.329E-01\n 12.652\t1.329E-01\n 12.800\t1.330E-01\n 13.000\t1.331E-01\n 13.200\t1.331E-01\n 13.420\t1.332E-01\n 13.421\t1.332E-01\n 13.730\t1.333E-01\n 13.731\t1.331E-01\n 13.400\t1.330E-01\n 13.600\t1.330E-01\n 13.800\t1.331E-01\n 14.000\t1.332E-01\n 14.165\t1.332E-01\n 14.200\t1.333E-01\n 14.350\t1.333E-01\n 14.351\t1.332E-01\n 14.400\t1.332E-01\n 14.600\t1.332E-01\n 14.800\t1.333E-01\n 14.958\t1.333E-01\n 15.000\t1.333E-01\n 15.200\t1.334E-01\n 15.400\t1.334E-01\n 15.600\t1.334E-01\n 15.710\t1.334E-01\n 15.711\t1.334E-01\n 15.772\t1.334E-01\n 15.800\t1.334E-01\n 15.836\t1.334E-01\n 16.000\t1.334E-01\n 16.085\t1.333E-01\n 16.200\t1.333E-01\n 16.380\t1.333E-01\n 16.381\t1.333E-01\n 16.400\t1.333E-01\n 16.600\t1.332E-01\n 16.615\t1.332E-01\n 16.800\t1.331E-01\n 17.000\t1.330E-01\n 17.200\t1.328E-01\n 17.400\t1.327E-01\n 17.479\t1.326E-01\n 17.500\t1.326E-01\n 17.600\t1.325E-01\n 17.668\t1.324E-01\n 17.800\t1.323E-01\n 17.970\t1.321E-01\n 18.000\t1.320E-01\n 18.200\t1.317E-01\n 18.400\t1.314E-01\n 18.600\t1.311E-01\n 18.622\t1.311E-01\n 18.800\t1.307E-01\n 18.953\t1.304E-01\n 19.000\t1.303E-01\n 19.200\t1.299E-01\n 19.400\t1.295E-01\n 19.600\t1.290E-01\n 19.800\t1.284E-01\n 20.000\t1.280E-01\n 20.200\t1.274E-01\n 20.400\t1.268E-01\n 20.600\t1.262E-01\n 20.800\t1.256E-01\n 21.000\t1.249E-01\n 21.200\t1.242E-01\n 21.400\t1.235E-01\n 21.600\t1.228E-01\n 21.800\t1.220E-01\n 22.000\t1.212E-01\n 22.159\t1.205E-01\n 22.200\t1.204E-01\n 22.400\t1.195E-01\n 22.600\t1.187E-01\n 22.800\t1.178E-01\n 23.000\t1.169E-01\n 23.200\t1.160E-01\n 23.400\t1.151E-01\n 23.600\t1.142E-01\n 23.800\t1.132E-01\n 24.000\t1.123E-01\n 24.200\t1.113E-01\n 24.400\t1.103E-01\n 24.600\t1.093E-01\n 24.800\t1.083E-01\n 25.000\t1.073E-01\n 25.200\t1.063E-01\n 25.271\t1.059E-01\n 25.400\t1.053E-01\n 25.600\t1.043E-01\n 25.800\t1.032E-01\n 26.000\t1.022E-01\n 26.200\t1.012E-01\n 26.400\t1.001E-01\n 26.600\t9.911E-02\n 26.800\t9.807E-02\n 27.000\t9.704E-02\n 27.200\t9.601E-02\n 27.382\t9.508E-02\n 27.400\t9.498E-02\n 27.472\t9.461E-02\n 27.600\t9.396E-02\n 27.800\t9.294E-02\n 28.000\t9.192E-02\n 28.200\t9.090E-02\n 28.400\t8.989E-02\n 28.600\t8.889E-02\n 28.800\t8.789E-02\n 29.000\t8.689E-02\n 29.200\t8.590E-02\n 29.400\t8.492E-02\n 29.600\t8.394E-02\n 29.800\t8.298E-02\n 30.000\t8.202E-02\n 40.000\t7.500E-02\n \n LINEEFFICIENCIES\n \n \n']
Charge 1
-------- Spectrum 3 (SIMS IDF.DAT) --------
Technique SIMS
Projectile O2
Beam energy 5.0
Beam fwhm 500.0
Geometry
Angles ['', '']
Dect solid 1
Energy calib ['1.0', '0']
Plotting not supported for SIMS