Spectra generation

List of methods and classes provided

ThinCellSpectra([nSurface, wavelength, …]) Generates spectra for optically thin atom slabs in nano-cells.
getBoltzmannDistribution(velocity, meanVelocity) Generate the Boltzmann distribution for the given mean velocity.

This module generates thin-cell transmission spectra, accounting for cavity effects, transient atom dynamics following depolarisation in atom-wall collisions, and atom-surface van der Waals \(\propto 1/R^3\) interactions.


To generate simple thin cell spectra:

from tas import *
import matplotlib.pyplot as plt
import numpy as np

laserDetuning = np.linspace(-6500,-1500,60)  # (MHz)
temperature = 228  # (degree Celsius)
collisionalBroadening = 840  # (MHz)
C3 = 2  # (kHz mum^3)
cellLength = 80e-9  # (m)
collisionalShift = 0  # (MHz)

calc = ThinCellSpectra(nSurface=1.76)
T = calc.getTransmission(laserDetuning,

plt.plot(laserDetuning, T,
         'b', label='Theoretical prediction')
plt.xlabel('Detuning (GHz)')
plt.ylabel('Transmission' )
plt.legend(loc='lower right')
tas.tas.getBoltzmannDistribution(velocity, meanVelocity)[source]

Generate the Boltzmann distribution for the given mean velocity.

  • velocity – TO-DO
  • meanVelocity – TO-DO
class tas.tas.ThinCellSpectra(nSurface=1.76, wavelength=8.9459295986e-07, gamma0=4.5612, atomMass=132.905451931, energyLevelsF=[-3510.916, -4678.597], cg_coeff=[0.026024508, 0.0364343])[source]

Generates spectra for optically thin atom slabs in nano-cells.

Includes atom-surface interactions, transient effects of atom dynamics following depolarisation at the walls of the cell, and cavity effects due to the cell walls. Neglects change of driving light power due to interaction with the atomic medium.

  • nSurface – (Optional) refractive index of the vapour cell surface
  • wavelength – (Optional) transition wavelength (m)
  • gamma0 – (Optional) transition natural linewidth (MHz)
  • atomMass – (Optional) mass of the atoms (atomic units)
  • energyLevelsF – (Optional) array of offsets of energy levels, relative to center of gravity of HFS line (MHz)
  • cg_coeff – (Optional) array of Clebsch–Gordan coefficients for the energy levels listed in energyLevelsF.


To include different transitions and/or atomic species change atom specific data with optional parameters of ThinCellSpectra during initialisation of the class instance. Optional parameters are all set by default to conditions in the experiment (Cs D1, \(F=4 \rightarrow F=3,4\) ).

getTransmission(laserDetuning, vapourTemperature, broadening, resonanceShift, C3, cellLength, velocityStepLargeRelative=20, velocityStepSmallAbsolute=2, smallVelocity=10, dz1=None)[source]

Calculate thin-cell transmission spectra in presence.

  • laserDetuning – laser detuning (MHz)
  • vapourTemperature – vapour temperature (\(^\circ\mathrm{C}\))
  • broadening – additional Lorentzian broadening that accounts for collisions for example (MHz)
  • resonanceShift – additional offset of transition resonance that accounts for collisions for example (MHz).
  • C3 – atom-surface van der Waals coefficient (\(\mathrm{kHz}.\mu\mathrm{m}^3\))
  • cellLength – cell thickness (m)
  • velocityStepLargeRelative – (Optional) defines velocity steps used for integration far from zero velocity defined relative to the mean 1D speed of atoms. Default value is 20, resulting in steps of 1/20th of mean 1D speed of atoms.
  • velocityStepSmallAbsolute – (Optional) defines velocity steps for small velocities around 0 in absolute unites (m/s).
  • smallVelocity – (Optional) defines what is small velocity for velocityStepLargeRelative and velocityStepSmallAbsolute in units of m/s. Default is 10 m/s.
  • dz1 – (Optional) integration step in space in nm. Default value is None, and function will set this step correctly to integrate data from experiment (c.f. paper where results are published). Outside the range of the experiment considered, this parameter might need to be adjusted.

normalised transmission \(T = |E(\textrm{with atoms})/E(\textrm{witout atoms})|^2\)