scippneutron.tof.chopper_cascade.FrameSequence#

class scippneutron.tof.chopper_cascade.FrameSequence(frames)[source]#

A sequence of frames, created from a single neutron pulse, potentially chopped into subframes by choppers.

It is recommended to use the from_source_pulse() constructor to create a frame sequence from a source pulse. Then, a chopper cascade can be applied using chop().

__init__(frames)#

Methods

__init__(frames)

acceptance_diagram()

Draw a chopper acceptance diagram.

chop(choppers)

Chop the frame sequence by a list of choppers.

draw([linewidth, fill, alpha, transpose, ...])

Draw frames using matplotlib.

from_source_pulse(time_min, time_max, ...)

Initialize a frame sequence from min/max time and wavelength of a pulse.

propagate_to(distance)

Propagate the frame sequence to a distance, adding a new frame.

Attributes

frames

__getitem__(item)[source]#

Get a frame by index or distance.

Return type:

Frame

acceptance_diagram()[source]#

Draw a chopper acceptance diagram.

See, e.g., J.R.D. Copley, An acceptance diagram analysis of the contaminant pulse removal problem with direct geometry neutron chopper spectrometers, https://doi.org/10.1016/S0168-9002(03)01731-5 for more background.

chop(choppers)[source]#

Chop the frame sequence by a list of choppers.

The choppers will be sorted by their distance, and applied in order.

Parameters:

choppers (list[Chopper]) – List of choppers.

Returns:

FrameSequence – New frame sequence.

draw(linewidth=0, fill=True, alpha=None, transpose=False, colors=None, grid=True, title='Frame propagation through chopper cascade', time_unit='ms', wavelength_unit='angstrom')[source]#

Draw frames using matplotlib.

Parameters:
  • linewidth (float, default: 0) – Line width of frame edges.

  • fill (bool, default: True) – Fill frame with color.

  • alpha (Optional[float], default: None) – Transparency of frame.

  • transpose (bool, default: False) – Transpose axes.

  • colors (Optional[list[str]], default: None) – List of colors to use for frames. If None, use default matplotlib colors.

  • grid (bool, default: True) – Show grid.

  • time_unit (str, default: 'ms') – Unit for time axis. Default is ms.

  • wavelength_unit (str, default: 'angstrom') – Unit for wavelength axis. Default is angstrom.

Return type:

Any

static from_source_pulse(time_min, time_max, wavelength_min, wavelength_max)[source]#

Initialize a frame sequence from min/max time and wavelength of a pulse.

The distance is set to 0 m.

propagate_to(distance)[source]#

Propagate the frame sequence to a distance, adding a new frame.

Use this, e.g., to propagate to the sample position after applying choppers.

Parameters:

distance (Variable) – Distance to propagate.

Returns:

FrameSequence – New frame sequence.