atomiq.components.lock module

class atomiq.components.lock.Lock(reference_frequency, lock_offset=0.0, harmonic=1, *args, **kwargs)[source]

Bases: Component

This is a very generic class to describe a laser lock. It is characterized by some means of a reference frequency and an offset to that frequency at which the lock tries to stabilize.

Most likely you want to use a more specific class inherited from this one.

Parameters:
  • reference_frequency (TFloat) -- The frequency in Hz that the lock references to

  • lock_offset (TFloat) -- The frequency offset in Hz at which the lock stabilizes

  • harmonic (TInt32) -- Use this option if the laser is frequency converted but locked to the fundamental. Use 1 for no conversion, 2 for SHG, 4 for FHG ,... (default 1)

kernel_invariants = {'harmonic'}
get_frequency()[source]
Return type:

artiq.compiler.types.TMono('float', OrderedDict())

class atomiq.components.lock.DetunableLock(settle_time=0, blind=False, *args, **kwargs)[source]

Bases: Lock, Parametrizable

This is a very generic class to describe a laser lock where the lock offset can be changed. It is characterized by some means of a reference frequency and a detunable offset to that frequency at which the lock tries to stabilize.

Most likely you want to use a more specific class inherited from this one.

Parameters:
  • settle_time (TFloat) -- Time in s the lock needs to settle after a detuning of the lock point

  • blind (TBool) -- Wether the lock is set to its default values during each prerun phase. If True, the lock is unchanged in the prerun phase. Defaults to False.

A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)

kernel_invariants = {'settle_time'}
set_frequency(frequency)[source]

Set the absolute frequency of the locked line

Parameters:

frequency (artiq.compiler.types.TMono('float', OrderedDict())) -- The absoulte frequency at which the system should lock

set_detuning(offset_frequency)[source]

Set the frequency relative to the reference frequency, i.e. set the lock offset.

Parameters:

offset_frequency (artiq.compiler.types.TMono('float', OrderedDict())) -- new lock offset in Hz

get_frequency()
Return type:

artiq.compiler.types.TMono('float', OrderedDict())

set_parameter(value, channel=None)
Parameters:
  • value (artiq.compiler.types.TMono('float', OrderedDict()))

  • channel (artiq.compiler.types.TMono('str', OrderedDict()))

class atomiq.components.lock.SpectroscopyLock(reference_frequency, lock_offset=0.0, harmonic=1, *args, **kwargs)[source]

Bases: Lock

Parameters:
  • reference_frequency (TFloat)

  • lock_offset (TFloat)

  • harmonic (TInt32)

get_frequency()
Return type:

artiq.compiler.types.TMono('float', OrderedDict())

kernel_invariants = {'harmonic'}
class atomiq.components.lock.SidebandLock(rf_source, sideband_order=1, *args, **kwargs)[source]

Bases: DetunableLock

Lock on a sideband modulated onto the laser

This kind of lock is frequently used when locking on tunable sideband to the transmission signal of a stable cavity. The offset frequency for the sideband is generated by an RF source and can be changed at runtime. Thus the lock point can be detuned.

Parameters:
  • rf_source (RFSource) -- RF source that determines the sideband frequency.

  • sideband_order (TInt32) -- Order of the sideband the laser is locked to [.., -2, -1, 1, 2, ...] (default 1)

A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)

kernel_invariants = {'rf_source', 'sideband_order'}
get_frequency()
Return type:

artiq.compiler.types.TMono('float', OrderedDict())

set_detuning(offset_frequency)

Set the frequency relative to the reference frequency, i.e. set the lock offset.

Parameters:

offset_frequency (artiq.compiler.types.TMono('float', OrderedDict())) -- new lock offset in Hz

set_frequency(frequency)

Set the absolute frequency of the locked line

Parameters:

frequency (artiq.compiler.types.TMono('float', OrderedDict())) -- The absoulte frequency at which the system should lock

set_parameter(value, channel=None)
Parameters:
  • value (artiq.compiler.types.TMono('float', OrderedDict()))

  • channel (artiq.compiler.types.TMono('str', OrderedDict()))

class atomiq.components.lock.OFCLock(rf_source, lock_direction=1, tooth_number=-1, rep_rate=nan, ceo=nan, *args, **kwargs)[source]

Bases: DetunableLock

Lock on an optical frequency comb

This is used to lock the laser on a beat note with an optical frequency comb. It is characterized by the frequency of the closest comb tooth and the offset frequency. The offset frequency is generated by an RF source and can be changed at runtime. Thus the lock point can be detuned.

Parameters:
  • rfsource -- RF source that generates the reference beat frequency (i.e. the offset frequency) to which the laser beat note is stabilized.

  • reference_frequency -- The frequency in Hz of the comb tooth. Instead ceo, rep_rate and tooth_number) can be passed to automatically calculate the reference frequency. reference_frequency is ignored in this case.

  • lock_offset -- The default frequency offset to the comb tooth in Hz at which the lock stabilizes

  • settle_time -- Time in s the lock needs to settle after a detuning of the lock point

  • lock_direction (TInt32) -- Whether the laser is locked to the positive (+1) or negative (-1) beat note (default 1)

  • tooth_number (TInt32) -- Number of the comb tooth, the laser is beaten with (default -1)

  • rep_rate (TFloat) -- Repetition frequency of the comb in Hz (default nan)

  • ceo (TFloat) -- Ceo frequency of the comb in Hz (default nan)

  • rf_source (RFSource)

A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)

kernel_invariants = {'lock_direction', 'rf_source'}
get_frequency()
Return type:

artiq.compiler.types.TMono('float', OrderedDict())

set_detuning(offset_frequency)

Set the frequency relative to the reference frequency, i.e. set the lock offset.

Parameters:

offset_frequency (artiq.compiler.types.TMono('float', OrderedDict())) -- new lock offset in Hz

set_frequency(frequency)

Set the absolute frequency of the locked line

Parameters:

frequency (artiq.compiler.types.TMono('float', OrderedDict())) -- The absoulte frequency at which the system should lock

set_parameter(value, channel=None)
Parameters:
  • value (artiq.compiler.types.TMono('float', OrderedDict()))

  • channel (artiq.compiler.types.TMono('str', OrderedDict()))

class atomiq.components.lock.OffsetLock(reference_laser, *args, **kwargs)[source]

Bases: SidebandLock

Lock on a reference laser via beating signal

Parameters:

reference_laser -- laser that is used to generate the beat note. It's frequency serves as the reference frequency for this lock

A Parametrizable is an entity that can be controlled by one or more continuous parameter(s)

kernel_invariants = {'reference_laser'}
get_frequency()[source]
Return type:

artiq.compiler.types.TMono('float', OrderedDict())

set_detuning(offset_frequency)

Set the frequency relative to the reference frequency, i.e. set the lock offset.

Parameters:

offset_frequency (artiq.compiler.types.TMono('float', OrderedDict())) -- new lock offset in Hz

set_frequency(frequency)[source]

Set the absolute frequency of the locked line

Parameters:

frequency (artiq.compiler.types.TMono('float', OrderedDict())) -- The absoulte frequency at which the system should lock

set_parameter(value, channel=None)
Parameters:
  • value (artiq.compiler.types.TMono('float', OrderedDict()))

  • channel (artiq.compiler.types.TMono('str', OrderedDict()))