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:
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 |
'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 ( |
0.0
|
total_delays ¤
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 ¤
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. |