ophyd_async.epics.adpilatus#

Support for the ADPilatus areaDetector driver.

https://github.com/areaDetector/ADPilatus

Module Contents#

Classes#

PilatusDetector

Create an ADPilatus AreaDetector instance.

PilatusDriverIO

Driver for the Pilatus pixel array detectors.

PilatusGain

Shaping time and gain settings for the ADPilatus detector.

PilatusTriggerLogic

Trigger logic for ADPilatus detectors.

PilatusTriggerMode

Trigger modes for ADPilatus detector.

PilatusReadoutTime

Pilatus readout time per model in ms.

API#

class ophyd_async.epics.adpilatus.PilatusDetector(prefix: str, *writer_factories: ADWriterFactory, readout_time: PilatusReadoutTime = PilatusReadoutTime.PILATUS3, edge_trigger_mode: PilatusTriggerMode = PilatusTriggerMode.EXT_TRIGGER, driver_suffix='cam1:', plugins: dict[str, NDPluginBaseIO] | None = None, config_sigs: Sequence[SignalR] = (), name: str = '')[source]#

Bases: ophyd_async.epics.adcore.AreaDetector[ophyd_async.epics.adpilatus.PilatusDriverIO]

Create an ADPilatus AreaDetector instance.

Parameters:
  • prefix – EPICS PV prefix for the detector

  • writer_factories – Factories for file writer plugins and their data logics

  • readout_time – Readout time for the specific Pilatus model

  • edge_trigger_mode – Trigger mode the driver is set to for external edge-triggered acquisitions. Defaults to PilatusTriggerMode.EXT_TRIGGER (one trigger starts a burst of num images); set to PilatusTriggerMode.MULT_TRIGGER for one image per trigger pulse.

  • driver_suffix – Suffix for the driver PV, defaults to “cam1:”

  • plugins – Additional areaDetector plugins to include

  • config_sigs – Additional signals to include in configuration

  • name – Name for the detector device

class ophyd_async.epics.adpilatus.PilatusDriverIO(prefix: str = '', with_pvi: bool = False, name: str = '', connector: DeviceConnector | None = None)[source]#

Bases: ophyd_async.epics.adcore.ADBaseIO

Driver for the Pilatus pixel array detectors.

trigger_mode: Annotated[SignalRW[PilatusTriggerMode], ophyd_async.epics.core.PvSuffix.rbv('TriggerMode')]#

None

armed: Annotated[SignalR[bool], PvSuffix('Armed')]#

None

header_string: Annotated[SignalRW[str], PvSuffix('HeaderString')]#

None

energy: Annotated[SignalRW[float], ophyd_async.epics.core.PvSuffix.rbv('Energy')]#

None

threshold_energy: Annotated[SignalRW[float], ophyd_async.epics.core.PvSuffix.rbv('ThresholdEnergy')]#

None

gain_menu: Annotated[SignalRW[PilatusGain], PvSuffix('GainMenu')]#

None

threshold_auto_apply: Annotated[SignalRW[bool], ophyd_async.epics.core.PvSuffix.rbv('ThresholdAutoApply')]#

None

threshold_apply: Annotated[TriggerableCommand, PvSuffix('ThresholdApply')]#

None

class ophyd_async.epics.adpilatus.PilatusGain[source]#

Bases: ophyd_async.core.SupersetEnum

Shaping time and gain settings for the ADPilatus detector.

FAST_LOW#

‘7-30KeV/Fast/LowG’

MEDIUM_MEDIUM#

‘5-18KeV/Med/MedG’

SLOW_HIGH#

‘3-6KeV/Slow/HighG’

SLOW_ULTRAHIGH#

‘2-5KeV/Slow/UltraG’

class ophyd_async.epics.adpilatus.PilatusTriggerLogic[source]#

Bases: ophyd_async.core.DetectorTriggerLogic

Trigger logic for ADPilatus detectors.

driver: PilatusDriverIO#

None

readout_time: PilatusReadoutTime#

None

edge_trigger_mode: PilatusTriggerMode#

‘field(…)’

get_deadtime(config_values: SignalDict) → float[source]#

Return the deadtime in seconds for the detector.

Parameters:

config_values – the value of each signal in config_sigs

async prepare_internal(num: int, livetime: float, deadtime: float)[source]#

Prepare the detector to take internally triggered exposures.

Parameters:
  • num – the number of exposures to take

  • livetime – how long the exposure should be, 0 means what is currently set

  • deadtime – how long between exposures, 0 means the shortest possible

async prepare_edge(num: int, livetime: float)[source]#

Prepare the detector to take external edge triggered exposures.

Parameters:
  • num – the number of exposures to take

  • livetime – how long the exposure should be, 0 means what is currently set

async prepare_level(num: int)[source]#

Prepare the detector to take external level triggered exposures.

Parameters:

num – the number of exposures to take

async default_trigger_info()[source]#

Fallback for the default TriggerInfo in plans without prepare.

class ophyd_async.epics.adpilatus.PilatusTriggerMode[source]#

Bases: ophyd_async.core.StrictEnum

Trigger modes for ADPilatus detector.

INTERNAL#

‘Internal’

EXT_ENABLE#

‘Ext. Enable’

EXT_TRIGGER#

‘Ext. Trigger’

MULT_TRIGGER#

‘Mult. Trigger’

ALIGNMENT#

‘Alignment’

class ophyd_async.epics.adpilatus.PilatusReadoutTime[source]#

Bases: float, enum.Enum

Pilatus readout time per model in ms.

PILATUS2#

0.00228

PILATUS3#

0.00095