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.
The bin size for time of flight measurement on the Calgary setup is determined by:
Where
This
where
Here
The time of flight of a drifting ion can be determined by:
where
A simulation in SIMION (see LAS-Ion-Optics\Sandbox-1300eV
) was run to generate a dataset of
for c ~= 1.14e7.
Combining (3-5) produces:
A value of
Combining (6) and (2) and solving for
Alternatively, one can solve for
Constant | Value | Description |
---|---|---|
Switching time for deflecting electrode. | ||
Jitter on laser pulse. | ||
Total unresolvable time window. | ||
Kinetic energy of ions. | ||
Regression coefficient from simulated target-einzel lens TOF. | ||
Distance from the end of the einel lens to the start of the drift tube. |
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.
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 (
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
.