Skip to content

Optical lasers

extra.components.OpticalLaserDelay ¤

OpticalLaserDelay(data, instrument=None, pulses=None, unit='ps', trigger=None, stage=None, bam=None, ref_trigger=0.0, ref_stage=0.0, ref_bam=0.0, ref_delay=0.0)

An interface to pump-probe delay with optical lasers.

In pump-probe experiments, it is generally critical to sort data by the time delay between the X-ray and optical laser pulses. At European XFEL, there are generally three sources of laser delay:

  • Electronic trigger delay for the laser system, typically used for coarse delays of picoseconds.

  • Stage delay from the motor movement of an optical delay line, typically used for delays of few or below picoseconds.

  • Actual time jitter per pulse from the bunch arrival monitor for corrections generally of a few femtoseconds or below.

This component allows to retrieve these sources individually, side-by-side or combine them into a single total delay per pulse or train. In order to make any of these delay values easier to interpret, their measured values can be offsetted. A typical procedure is to use the measured values at temporal overlap as reference offsets.

The total delay \(\Delta t\) is then calculated by:

\[ \Delta t = (\Delta t_{ m stage} - r_{ m stage}) - (\Delta t_{ m trigger} - r_{ m trigger}) + (\Delta t_{bam} - r_{ m bam}) \]

When constructed, it will try to find the appropriate delay sources automatically for the instrument the data was taken at, unless they are explicitly specified or disabled by passing False.

Note that BAM data is only available with pulse pattern information.

Parameters:

Name Type Description Default
data DataCollection

Data to access optical laser delay information from.

required
instrument str

Instrument to pick default source names, auto-detected from data if any source is not specified or disabled.

None
pulses PulsePattern

Pulse component to pull pulse information. If omitted and BAM delay is enabled, it is constructed automatically from data passed.

None
unit str

Time unit symbol to express delays in, may be s (seconds) or any metric prefix up to as (attoseconds) with ps (picoseconds) by default.

'ps'
stage str or bool

Source name for stage motor, may be disabled by passing False or auto-detected if omitted.

None
trigger str or bool

Source name for optical laser trigger, may be disabled by passing False or auto-detected if omitted.

None
bam str or bool

Source name for bunch arrival monitor, may be disabled by passing False or auto-detected if omitted.

None
ref_trigger float

Reference offset for trigger delay in source units, 0.0 by default.

0.0
ref_stage float

Reference offset for stage delay in source units, 0.0 of by default.

0.0
ref_bam float

Reference offset for BAM delay in source units, 0.0 by default.

0.0
ref_delay float

Reference offset for total delay in chosen time unit (ps by default), 0.0 by default.

0.0

time_scale property ¤

time_scale: float

seconds to internal time unit.

total_delays ¤

total_delays(labelled=True, by_pulse=None, pulse_dim='pulseId')

Get total time delay.

Parameters:

Name Type Description Default
labelled bool

Whether a labelled pandas Series (default) or unlabelled numpy array is returned.

True
by_pulse bool

Whether data is returned by pulse or not. By default, it is returned by pulse whenever BAM data is enabled and by train otherwise.

None
pulse_dim {pulseId, pulseIndex, pulseTime}

Label for pulse dimension, pulse ID by default.

'pulseId'

Returns:

Type Description
Series or ndarray

Total time delay, indexed by train ID or pulse index if labelled.

delays_by_source ¤

delays_by_source(by_pulse=None, pulse_dim='pulseId')

Get all time delays by source as a dataframe.

Parameters:

Name Type Description Default
by_pulse bool

Whether data is returned by pulse or not. By default, it is returned by pulse whenever BAM data is enabled and by train otherwise.

None
pulse_dim {pulseId, pulseIndex, pulseTime}

Label for pulse dimension, pulse ID by default.

'pulseId'

Returns:

Type Description
DataFrame

Time delay by source, indexed by train ID or pulse index.