Skip to content

Latest commit

 

History

History
 
 

IonTOFResolvability

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Ion TOF Resolvability

This project aims to provide insight into the resolvability of any species of interest for the LAS ion optical geometry to be built for testing in Calgary. The LAS ion optical time of flight equations and their python implementation are outlined below.

Calgary test stand TOF derivations

The bin size for time of flight measurement on the Calgary setup is determined by:

t w i n d o w = t s w i t c h + t j i t t e r  (1)

Where t s w i t c h is the switching time for the deflecting electrode and t j i t t e r is the jitter of the laser. Values of t s w i t c h = 1 μ s and t j i t t e r = 0.8 μ s were used for all calculations.

This t w i n d o w determines the resolving power of the Calgary setup. Any pair masses with time of flight seperation less than half this window length will be binned into the same measurement and will therefore be unresolvable. The relationship between the time of flight of a reference mass m 0 and the time of flight corresponding to mass m 1 on the boundary of the unresolvable region around m 0 is given by:

T O F ( m 0 , L d t ) ± t w i n d o w 2 = T O F ( m 1 , L d t )  (2)

where

T O F ( m , L d t ) = t 0 + t d t + t e x t r a  (3)

Here t 0 is the initial time of flight of the ion from the ablation target to the end of the einzel lens, t d t is the time taken to traverse the drift tube, and t e x t r a accounts for the intermediate drift time taken for the ion to travel from the end of the einzel lens to the begining of the drift tube.

The time of flight of a drifting ion can be determined by:

t d r i f t = L d r i f t m 2 K  (4)

where L d r i f t is the distance drifted, m is the mass of the ion, and K is the kinetic energy of the ion.

A simulation in SIMION (see LAS-Ion-Optics\Sandbox-1300eV) was run to generate a dataset of t 0 for integer masses ranging from 1 to 300. A regression was then performed on the dataset and t 0 was determined to follow:

t 0 = c m  (5)

for c ~= 1.14e7.

Combining (3-5) produces:

T O F ( m , L d t ) = c m + L d t m 2 K + L e x t r a m 2 K  (6)

A value of L e x t r a = 0.05 m was used for all calculations.

Combining (6) and (2) and solving for m 1 gives the bounds of the unresolvable mass window for reference mass, m 0 :

m 1 = ( c m 0 + L d t m 0 2 K + L e x t r a m 0 2 K ± t w i n d o w 2 c + L d t 1 2 K + L e x t r a 1 2 K ) 2  (7)

Alternatively, one can solve for L d t , given the window-bounding mass m 1 :

L d t = c ( m 0 m 1 ) + L e x t r a ( m 0 2 K m 1 2 K ) + t w i n d o w 2 m 1 2 K m 0 2 K m 1 > m 0
L d t = c ( m 0 m 1 ) + L e x t r a ( m 0 2 K m 1 2 K ) t w i n d o w 2 m 1 2 K m 0 2 K m 1 < m 0

 (8)

Table of constants

Constant Value Description
t s w i t c h 1 μ s Switching time for deflecting electrode.
t j i t t e r 0.8 μ s Jitter on laser pulse.
t w i n d o w 1.8 μ s Total unresolvable time window.
K 1300 e V Kinetic energy of ions.
c 11433748.958080072 Regression coefficient from simulated target-einzel lens TOF.
L e x t r a 0.05 m Distance from the end of the einel lens to the start of the drift tube.

TOFResolutionlib.py

This module has been inspired by the various functions from DT_length.py used to determine TOF values, mass windows and drift lengths. It's functions can be imported and used by other python codes via import TOFResolutionlib so long as TOFResolutionlib.py is visible for the given path.

DT_length.py

The script DT_length.py specifies an array of drift tube lengths and calculates times of flight for various expected species (declared in a dictionary - see periodic_dict in the code). It calculates the upper and lower bounds of the unresolvable mass window around each species, prints the minimum drift tube length required to resolve adjacent masses in the dictionary of species, makes a table with the minimum drift tube length for every combination of species pairs and generates 3 plots.

It should be noted that negative drift tube lengths output indicate that the two masses in question will be resolvable no matter the length of the drift tube.

All functions take mass in units of amu (WITH THE EXCEPTION OF get_t0()) and energy in eV, convert to kg/J for use in equations, and convert back to amu/eV for return output. Time is always specified in seconds and the unresolvable window time ( t w i n d o w ) is always passed to functions as the entire 1.8e-6s and left for the function itself to halve for the upper and lower boundary calculations (as in the equations above).

Eq (7) is implemented via get_mass_window() and Eq (8) is implemented via get_Ldt(). Both functions return both of the corresponding output bounds in order [upper, lower].

Note as of 2024-02-02 - DT_length.py will soon be seperated into a module soley containing functions and several visualization scripts that utilize the functions to plot or produce tables.

Note as of 2024-02-07 - DT_length.py has been seperated into TOFResolutionlib.py, DT_length_table.py, and DT_length_plots.py.