tomoScanApp EPICS application

tomoscan includes a complete example EPICS application, including:

  • A database file and corresponding autosave request file that contain the PVs required by the tomoscan.py base class.

  • A database file and corresponding autosave request file that contain the PVs required by the tomoscan_pso.py intermediate base class.

  • Database files and corresponding autosave request files that contain PVs used by the beamline-specific derived classes.

  • OPI screens for medm, edm, caQtDM, CSS/Boy, and CSS/Phoebus

  • An example IOC application that can be used to run the above databases. The databases are loaded in the IOC with the example substitutions file, tomoScan.substitutions.

Base class files

The following tables list all of the records in the tomoScan.template file. These records are used by the tomoscan base class and so are required.

tomoScan.template

This is the database file that contains only the PVs required by the tomoscan.py base class tomoScan.template.

Camera and File Plugin PV Prefixes

Record name

Record type

Description

$(P)$(R)CameraPVPrefix

stringout

Contains the prefix for the camera, e.g. 13BMDPG1:

$(P)$(R)FilePluginPVPrefix

stringout

Contains the prefix for the file plugin, e.g. 13BMDPG1:HDF1: or 13BMDPG1:netCDF1:

Note

In addition to the two records above, tomoscan.py builds several derived control PVs at startup from the CameraPVPrefix (and, when applicable, FilePluginPVPrefix and FPGA). These are exposed as self.control_pvs[...] for derived classes to use directly; they are not template records:

  • ArraySizeX_RBV — bound to <CameraPVPrefix>ArraySizeX_RBV, giving the detector horizontal pixel count. Used, for example, by the motion-blur calculation in the FPGA subclass.

If the substitutions file declares an FPGA prefix (via $(FPGA) — see tomoScan_FPGA.template), tomoscan.py additionally registers the softGlueZynq FPGA control PVs used by the TomoScanFPGAPSO intermediate base class:

  • FPGAAddr, FPGADin, FPGAClk, FPGAWrt, FPGAEnSignal, FPGANSignal — pulse-sequence BRAM control

  • FPGAMUX2 — trigger MUX select (0 = PSO, 1 = trigILF)

  • BUFFER-1_IN_Signal, BUFFER-2_IN_Signal — reset / enable signals

Stations that do not declare an FPGA prefix (13-BM, 6-BM-B, classic 2-BM, 7-BM, etc.) skip this block entirely at IOC startup; the base class behavior is unchanged for them.

Shutter control

Record name

Record type

Description

$(P)$(R)CloseShutterPVName

stringout

Contains the name of the PV to close the shutter

$(P)$(R)CloseShutterValue

stringout

Contains the value to write to close the shutter

$(P)$(R)OpenShutterPVName

stringout

Contains the name of the PV to open the shutter

$(P)$(R)OpenShutterValue

stringout

Contains the value to write to open the shutter

Rotation, sample X and Y translation motors

Record name

Record type

Description

$(P)$(R)RotationPVName

stringout

Contains the name of the rotation motor PV, e.g. 13BMD:m38

$(P)$(R)SampleXPVName

stringout

Contains the name of the sample X translation PV, e.g. 13BMD:m85

$(P)$(R)SampleYPVName

stringout

Contains the name of the sample Y translation PV, e.g. 13BMD:m90

Data collection control

Record name

Record type

Description

$(P)$(R)RotationStart

ao

The starting rotation angle

$(P)$(R)RotationStep

ao

The rotation step size

$(P)$(R)RotationStop

calc

The final projection angle. Computed as RotationStart + RotationStep*NumAngles. Provided as a convenience to check that the scan is correctly defined.

$(P)$(R)NumAngles

ao

The number of angles (projections) to collect

$(P)$(R)ReturnRotation

bo

Flag controlling whether to return rotation to RotationStart at the end of collection. Choices are ‘No’ and ‘Yes’. When ‘Yes’ the ScanStatus will report complete before the rotation axis returns to the start.

Dark field control

Record name

Record type

Description

$(P)$(R)NumDarkFields

longout

Number of dark fields to collect

$(P)$(R)DarkFieldMode

mbbo

When to collect dark fields. Choices are ‘Start’, ‘End’, ‘Both’, ‘None’.

$(P)$(R)DarkFieldValue

ao

A constant dark field value for every pixel, typically used when DarkFieldMode=None.

Flat field control

Record name

Record type

Description

$(P)$(R)NumFlatFields

longout

Number of flat fields to collect

$(P)$(R)FlatFieldMode

mbbo

When to collect flat fields. Choices are ‘Start’, ‘End’, ‘Both’, ‘None’.

$(P)$(R)FlatFieldAxis

mbbo

Axis to move when collecting flat fields. Choices are ‘X’, ‘Y’, and ‘Both’.

$(P)$(R)FlatFieldValue

ao

A constant flat field value for every pixel, typically used when FlatFieldMode=None.

$(P)$(R)SampleInX

ao

Position of the X stage when the sample is in position for collecting projections.

$(P)$(R)SampleOutX

ao

Position of the X stage when the sample is out for collecting flat fields.

$(P)$(R)SampleInY

ao

Position of the Y stage when the sample is in position for collecting projections.

$(P)$(R)SampleOutY

ao

Position of the Y stage when the sample is out for collecting flat fields.

$(P)$(R)SampleOutAngle

ao

Position of the raotary stage when the sample is moved out for collecting flat fields.

$(P)$(R)SampleOutAngleEnable

bo

Flag controlling whether the flat fields are collected at the start/end position or at the value set by $(P)$(R)SampleOutAngle.

Frame type

Record name

Record type

Description

$(P)$(R)FrameType

mbbi

Type of the current frame. Choices are ‘DarkField’, ‘FlatField’, ‘Projection’. This record can be used as a detector attribute to indicate what type of data each frame contains.

Exposure time

Record name

Record type

Description

$(P)$(R)ExposureTime

ao

The exposure time in seconds. Currently the same time is used for dark fields and projections. The time for flat fields can be different, and is controlled by the following 2 records. Writing to this PV will copy the value to the camera AcquireTime PV.

$(P)$(R)FlatExposureTime

ao

The exposure time for flat fields in seconds if the value of the $(P)$(R)DifferentFlatExposure record is “Different”. Otherwise $(P)$(R)ExposureTime is also used for flat fields.

$(P)$(R)DifferentFlatExposure

bo

Controls whether $(P)$(R)ExposureTime or $(P)$(R)FlatExposureTime is used for the flat fields. Choices are “Same” (0) or “Different (1).

File path and name control

Record name

Record type

Description

$(P)$(R)FilePath

waveform

The file path to save data. Writing to this PV will copy the value to the file plugin.

$(P)$(R)FileName

waveform

The file name to save data. Writing to this PV will copy the value to the file plugin.

$(P)$(R)FilePathExists

bi

Flag indicating whether the specified FilePath exists. This is a mirror of the FilePathExists_RBV record in the file plugin.

$(P)$(R)OverwriteWarning

bi

Selects whether to open a dialog box to warn the user if the file to be written would overwrite an existing file. The user can then choose ‘Yes’ or ‘No’.

$(P)$(R)FullFileName

waveform

The last file name used to save data.

Location for data in HDF5 file

Record name

Record type

Description

$(P)$(R)HDF5ProjectionLocation

stringout

String defining the location in the HDF5 file to write projection frames. The default is /exchange/data.

$(P)$(R)HDF5DarkLocation

stringout

String defining the location in the HDF5 file to write dark field frames. The default is /exchange/data_dark.

$(P)$(R)HDF5FlatLocation

stringout

String defining the location in the HDF5 file to write flat field frames. The default is /exchange/data_white.

$(P)$(R)HDF5Location

stringout

String defining the location in the HDF5 file to write the current frame. This is updated by TomoScan depending on which type of frame is currently being collected. This PV should be used to define the HDF5FrameLocation attribute in the detector attributes XML file. The HDF5 layout XML file should use the HDF5FrameLocation attribute to control where the frame is written in the HDF5 file.

Scan control via Channel Access

Record name

Record type

Description

$(P)$(R)MoveSampleIn

ao

Setting this record to 1 moves the sample in.

$(P)$(R)MoveSampleOut

ao

Setting this record to 1 moves the sample out.

$(P)$(R)StartScan

busy

Setting this record to 1 starts a scan.

$(P)$(R)AbortScan

bo

Setting this record to 1 aborts a scan.

Scan status via Channel Access

Record name

Record type

Description

$(P)$(R)ScanStatus

waveform

This record will be updated with the scan status while scanning.

$(P)$(R)ImagesCollected

stringout

This record will be updated with the current projection number while scanning.

$(P)$(R)ImagesSaved

stringout

This record will be updated with the current projection number saved.

$(P)$(R)ElapsedTime

stringout

This record will be updated with the elapsed time while scanning.

$(P)$(R)RemainingTime

stringout

This record will be updated with the estimated time remaining while scanning.

$(P)$(R)ServerRunning

bi

This record will be Running if the Python server is running and Stopped if not. It is controlled by a watchdog timer, and will change from Running to Stopped within 5 seconds if the Python server exits.

Scan Types

Record name

Record type

Description

$(P)$(R)ScanType

mbbo

Contains the scan type, e.g. ‘Single’, ‘Vertical’, ‘Horizontal’, ‘Mosaic’, “File’, ‘Energy’, “Helical’.

$(P)$(R)FlipStitch

bo

Tells if the scan is a Flip&Stitch or not.

tomoScan_settings.req

This is the autosave request file for tomoScan.template tomoScan_settings.req.

This file serves 2 purposes:

  • It is used by autosave to determine which PVs to save in the auto_settings.sav file.

  • It is read in the constructor of the TomoScan class to determine what PVs to read and write.

It contains 4 types of PVs:

  1. Configuration PVs. These are PVs the control how tomography scans are collected, and provide metadata about the scan. An example is $(P)$(R)RotationStart. These have the following properties:

  • They are saved by autosave in the auto_settings.sav file.

  • They are saved by TomoScan in configuration files.

  • They do not contain the string “PVName” or “PVPrefix” in their PV names.

  • They appear as normal lines in the file, not in comment lines.

  1. PVs that contain the name of another PV. These are used to configure TomoScan to control a particular motor for the rotation axis, sample X axis, etc. An example is $(P)$(R)RotationPVName. These have the following properties:

  • They contain the string “PVName” in their PV names.

  • They are saved by autosave in the auto_settings.sav file.

  • They are not saved by TomoScan in configuration files.

  • They appear as normal lines in the file, not in comment lines.

  1. PVs that contain the PV prefix for a set of other PVs. These are used to configure TomoScan to control a particular areaDetector camera, etc. Examples are (P)$(R)CameraPVPrefix and $(P)$(R)FilePluginPVPrefix. These have the following properties:

  • They contain the string “PVPrefix” in their PV names.

  • They are saved by autosave in the auto_settings.sav file.

  • They are not saved by TomoScan in configuration files.

  • They appear as normal lines in the file, not in comment lines.

  1. PVs that are required by TomoScan, but which should not be saved and restored by autosave, either because they are read-only, or because writing to them when the IOC starts might have unwanted consequences. These have the following properties:

  • They appear in comment lines in the file. The comment line must start with the string #controlPV followed by the PV name.

  • They do not contain the string “PVName” or “PVPrefix” in their PV names.

  • They are not saved by autosave in the auto_settings.sav file.

  • They are not saved by TomoScan in configuration files.

When the request file is read it is used to construct all of the EPICS PV names that are used by TomoScan. This allows TomoScan to avoid having any hard-coded PV names, and makes it easy to port to a new beamline.

Intermediate base class files

The following tables list all of the records in the tomoScan_PSO.template file. This class is used when an Aerotech controller runs the rotation stage and the PSO output is used to trigger the camera.

tomoScan_PSO.template

This is the database file that contains only the PVs required by the tomoscan_pso.py base class. These records cannot be modified at run-time, except for the asyn record. Configuration records are set in the tomoScan.subsitutions file for each IOC, and set when the IOC starts. Status records contain read-only status information.

tomoScan.template.

PSO configuration

Record name

Record type

Access type

Description

$(P)$(R)PSOControllerModel

mbbi

Configuration

The Aerotech controller model being used. This is needed because some PSO commands are controller dependent, and there appears to be no way to query the controller model. The choices are “Ensemble” (0), and “A3200” (1).

$(P)$(R)PSOStartTaxi

ai

Status

The starting “taxi” position. The taxi distance is used to allow the rotation stage to accelerate and reach the desired rotation speed before the first projection angle.

$(P)$(R)PSOEndTaxi

ai

Status

The ending “taxi” position. The taxi distance is used to allow the rotation stage to deccelerate to 0 after reaching the final projection angle.

$(P)$(R)PSOEncoderCountsPerStep

longin

Status

The number of encoder counts between projections.

$(P)$(R)PSOCommand

asyn

Write/read

This record is used to send PSO commands to the Aerotech controller. An EPICS drvAsynIPPort is created in the IOC startup script using the IP address of the Aerotech controller, and this record communicates using that asyn port. The record uses “Hybid” mode for both input and output, so that the strings can be longer than 40 characters. This means that it uses the .BOUT field for output and the .BINP field for input. The .BOUT field is a text-input widget in the medm screen so the user can type commands directly to the controller for debugging.

$(P)$(R)PSOAxisName

stringin

Configuration

The name of the rotation axis in the controller. This is the name that is displayed in the Aerotech Motion Composer software.

$(P)$(R)PSOCountsPerRotation

ai

Configuration

The number of encoder pulses per 360 degree rotation of the rotation stage. This is a signed number, and must be negative if the encoder direction and motor direction in the controller are different. On the A3200 this value is read from the controller in the constructor, and includes the correct sign. This overrides the value in the subsitutions file. On the Ensemble this value must be provided in the substitutions file.

$(P)$(R)PSOEncoderInput

longin

Configuration

Selects which encoder signal is used for the PSO control. This is hardware dependent, and is typically 2 or 3.

$(P)$(R)PSOPulsWidth

ao

Write/read

Sets the PSO output pulse width in microseconds. Different cameras may have different requirements for the trigger pulse width, so this value can be modified.

$(P)$(R)PSOKeepAlive

asyn

Write/read

This record is needed on the Ensemble to keep the socket from timing out. It is not needed on the A3200, but does not hurt. SCAN could be set to Passive on the A3200.

$(P)$(R)ProgramPSO

bo

Write/read

Enable PSO programming ‘Yes’.

tomoScan_FPGA.template

This is the database file that contains only the PVs required by the tomoscan_fpga_pso.py intermediate base class tomoScan_FPGA.template.

This class is used at stations that trigger the camera from a softGlueZynq FPGA I/O module driven by the rotation-stage encoder, in place of a controller-native PSO output. It also carries the parameters for interlaced angle sequences (uniform, TIMBIR, golden-angle, van der Corput) and the live scan-preview readbacks (motion blur, dropped frames, achieved efficiency, projected scan time).

FPGA prefix

Record name

Record type

Access type

Description

$(P)$(R)FPGAPVPrefix

stringout

Configuration

Contains the prefix for the softGlueZynq FPGA I/O module (e.g. 2bmb:softGlueZynq:). When the base class tomoscan.py sees an FPGA entry in pv_prefixes it registers the FPGA control PVs listed in the tomoscan.py section above.

Trigger source

Record name

Record type

Access type

Description

$(P)$(R)TriggerSource

mbbo

Write/read

Selects the source of the camera trigger. Choices are “PSO” (0) — pulses come from the Aerotech controller’s PSO output — and “FPGA” (1) — pulses come from the softGlueZynq downstream of the Aerotech-emitted coarse pulse train. Interlaced scans require “FPGA”.

Interlaced scan configuration

Record name

Record type

Access type

Description

$(P)$(R)InterlacedMode

mbbo

Write/read

Angle-sequence mode. Choices: “Uniform” (0), “Timbir” (1), “Golden” (2), “Van der Corput” (3). Timbir and Van der Corput produce identical sorted angle arrays; Van der Corput handles non-power-of-2 K.

$(P)$(R)InterlacedRotationStart

ao

Configuration

First rotation angle in degrees (PREC=3).

$(P)$(R)InterlacedNumberOfRotation

ao

Configuration

Number of full 360° rotations to cover (integer, 1 to 1024).

$(P)$(R)InterlacedNumAngles

longout

Configuration

Total number of angles in the interlaced sequence (N × K).

$(P)$(R)InterlacedRotationStop

calc

Status

Computed end angle: InterlacedRotationStart + 360 × InterlacedNumberOfRotation.

$(P)$(R)InterlacedMinStep

ao

Status

Minimum angular step between adjacent projections in degrees (PREC=3).

$(P)$(R)PSOSlotStep

ao

Configuration

PSO window step size used to size the FPGA trigger window. For all interlaced modes this is 360 / N degrees. Renamed from InterlacedPSOWindowStep.

Note

PV rename: InterlacedPSOWindowStep was renamed to PSOSlotStep. Any autosave value stored under the old name will be orphaned on the next IOC boot. External scripts, dashboards, or archiver configurations that referenced the old name must be updated.

Live scan preview

Record name

Record type

Access type

Description

$(P)$(R)InterlacedScanTime

ao

Status

Projected scan duration for the currently configured interlaced sequence, in seconds.

$(P)$(R)InterlacedEfficiencyRequested

ao

Configuration

Requested duty-cycle efficiency (0–100), used to size the PSO window and compute the required rotation speed.

$(P)$(R)InterlacedEfficiencyCalculated

ao

Status

Achieved duty-cycle efficiency at the current settings, in percent.

$(P)$(R)MotionBlurr

ao

Status

Estimated motion blur across the exposure at the current rotation speed, in pixels (PREC=2, EGU=pixels).

$(P)$(R)DroppedFrames

ao

Status

Number of frames dropped in the most recent scan (integer).

medm files

tomoScan.adl

The following is the MEDM screen tomoScan.adl during a scan. The status information is updating.

_images/tomoScan.png

tomoScanEPICS_PVs.adl

The following is the MEDM screen tomoScanEPICS_PVs.adl. If these PVs are changed tomoscan must be restarted.

_images/tomoScanEPICS_PVs.png

tomoScan_pso.adl

The following is the MEDM screen tomoScan_pso.adl. It contains the PVs that control the Aerotech PSO pulse control.

_images/tomoScan_pso.png

tomoScanFPGAEPICS_PVs.adl

The MEDM screen tomoScanFPGAEPICS_PVs.adl is the FPGA extension to tomoScanEPICS_PVs.adl. It exposes the softGlueZynq FPGA control PVs registered by tomoscan.py when a station declares an FPGA prefix. If these PVs are changed tomoscan must be restarted.

_images/tomoScanFPGAEPICS_PVs.png

Beamline-specific files

The following files are for the beamline-specific derived classes.

Beamline 13BM

These are the files that are specific to the TomoScan13BM derived class used at APS beamline 13-BM-D.

tomoScan_13BM.template

This is database file for the TomoScan13BM derived class tomoScan_13BM.template.

The following tables list all of the records in the tomoScan_13BM.template file. This file is used for records needed by the tomoscan_13bm derived class, and also for metadata PVs that should be saved in the tomoscan configuration file and files written by the areaDetector file plugins.

SIS MCS Prefix

Record name

Record type

Description

$(P)$(R)MCSPVPrefix

stringout

Contains the prefix for the SIS MCS, e.g. 13BMD:SIS1:

Energy information

Record name

Record type

Description

$(P)$(R)EnergyMode

mbbo

Contains the energy mode of the beamline, e.g. ‘Mono’, ‘Pink’, ‘White’.

Beam status information

Record name

Record type

Description

$(P)$(R)BeamReadyPVName

stringout

Contains the name of the PV that indicates if beam is ready, e.g. 13BMA:mono_pid1Locked

$(P)$(R)BeamReadyValue

stringout

Contains the value of the beam ready PV when beam is ready.

Optics information

Record name

Record type

Description

$(P)$(R)ScintillatorType

stringout

Contains the type of scintillator being used.

$(P)$(R)ScintillatorThickness

ao

Contains the thickness of the scintillator in microns.

$(P)$(R)ImagePixelSize

ao

Contains the pixel size on the sample in microns (i.e. includes objective magnification)

$(P)$(R)DetectorPixelSize

ao

Contains the pixel size of the detector.

$(P)$(R)CameraObjective

stringout

Description of the camera objective

$(P)$(R)CameraTubeLength

stringout

Description of the camera objective

Sample information

Record name

Record type

Description

$(P)$(R)SampleName

stringout

Name of the sample

$(P)$(R)SampleDescription1

stringout

Description of the sample, part 1

$(P)$(R)SampleDescription2

stringout

Description of the sample, part 2

$(P)$(R)SampleDescription3

stringout

Description of the sample, part 3

User information

Record name

Record type

Description

$(P)$(R)UserName

stringout

User name

$(P)$(R)UserInstitution

stringout

User institution

$(P)$(R)UserBadge

stringout

User badge number

$(P)$(R)UserEmail

stringout

User email address

$(P)$(R)ProposalNumber

stringout

Proposal number

$(P)$(R)ProposalTitle

stringout

Proposal title

$(P)$(R)ESAFNumber

stringout

Experiment Safety Approval Form number

tomoScan_13BM_settings.req

This is the autosave request file for tomoScan_13BM.template tomoScan_13BM_settings.req.

It has the same usage and type of content as tomoScan_settings.req described above, except that it contains the PVs for the derived class TomoScan13BM.

medm files

tomoScan_13BM.adl

The following is the MEDM screen tomoScan_13BM.adl. This screen contains the PVs for the TomoScan_13BM derived class. If the MCSPrefix or BeamReadyPV are changed then tomoscan must be restarted.

_images/tomoScan_13BM.png

Beamline 19-BM

These are the files that are specific to the TomoScan19BM derived class used at APS beamline 19-BM.

tomoScan_19BM.template

This is the database file for the TomoScan19BM derived class tomoScan_19BM.template.

The following tables list all of the records in the tomoScan_19BM.template file. This file is used for records needed by the tomoscan_19bm derived class, and also for metadata PVs that should be saved in the tomoscan configuration file and files written by the areaDetector file plugins.

The 19-BM template is modelled on tomoScan_7BM.template rather than tomoScan_2BM.template. 19-BM has no mctoptics server, so the optics metadata records are defined locally here instead of being read from an optics server. 19-BM does not collect gain fields, and its only shutter is the front-end shutter (handled by OPEN_SHUTTER / CLOSE_SHUTTER in tomoScan.template), so the 7-BM gain-field and fast-shutter records are omitted.

Energy information

Record name

Record type

Description

$(P)$(R)Energy

ao

Beamline energy in the natural unit (PREC=2).

$(P)$(R)EnergyMode

mbbo

Beamline energy mode: “Mono” (0), “Pink” (1), “White” (2).

Beam status information

Record name

Record type

Description

$(P)$(R)BeamReadyPVName

stringout

Contains the name of the PV that indicates if beam is ready.

$(P)$(R)BeamReadyValue

stringout

Contains the value of the beam ready PV when beam is ready.

$(P)$(R)Testing

bo

Bypass the beam-ready check when set to “Yes”.

Shutter status

Record name

Record type

Description

$(P)$(R)ShutterStatusPVName

stringout

Contains the name of the PV that reads the shutter status.

Optics information

Record name

Record type

Description

$(P)$(R)ScintillatorType

stringout

Type of scintillator being used.

$(P)$(R)ScintillatorThickness

ao

Thickness of the scintillator in microns.

$(P)$(R)ImagePixelSize

ao

Pixel size on the sample in microns (includes objective magnification).

$(P)$(R)DetectorPixelSize

ao

Pixel size of the detector in microns.

$(P)$(R)CameraObjective

stringout

Description of the camera objective.

$(P)$(R)CameraTubeLength

ao

Camera tube length in mm.

$(P)$(R)CameraDistance

ao

Camera-to-sample distance in mm.

Sample information

Record name

Record type

Description

$(P)$(R)SampleName

stringout

Name of the sample.

$(P)$(R)SampleDescription1

stringout

Description of the sample, part 1.

$(P)$(R)SampleDescription2

stringout

Description of the sample, part 2.

$(P)$(R)SampleDescription3

stringout

Description of the sample, part 3.

User information

Record name

Record type

Description

$(P)$(R)UserName

stringout

User name.

$(P)$(R)UserInstitution

waveform (CHAR)

User institution (long string, up to 256 characters).

$(P)$(R)UserBadge

stringout

User badge number.

$(P)$(R)UserEmail

stringout

User email address.

$(P)$(R)ProposalNumber

stringout

Proposal number.

$(P)$(R)ProposalTitle

waveform (CHAR)

Proposal title (long string, up to 256 characters).

$(P)$(R)ESAFNumber

stringout

Experiment Safety Approval Form number.

$(P)$(R)UserInfoUpdate

stringout

Timestamp of the last user-info refresh from the ESAF service.

Data management information

Record name

Record type

Description

$(P)$(R)DetectorTopDir

stringout

Top-level directory on the detector computer where scan files are written.

$(P)$(R)UserLastName

stringout

Operator’s last name (used to build the per-experiment directory).

$(P)$(R)ExperimentYearMonth

stringout

Year-month tag (used to build the per-experiment directory).

$(P)$(R)RemoteAnalysisDir

stringout

Destination directory for automatic data transfer to the analysis computer.

$(P)$(R)CopyToAnalysisDir

bo

Enable (“Yes”) automatic transfer of scan files to the analysis computer.

Camera external trigger

Record name

Record type

Description

$(P)$(R)ExternalTriggerSource

stringout

The GenICam TriggerSource value that the PSO output is wired to on the camera (e.g. Line0 for the Vieworks VP-61MX on the Euresys grabber).

tomoScan_19BM_settings.req

This is the autosave request file for tomoScan_19BM.template tomoScan_19BM_settings.req.

It has the same usage and type of content as tomoScan_settings.req described above, except that it contains the PVs for the derived class TomoScan19BM.

medm files

tomoScan_19BM.adl

The following is the MEDM screen tomoScan_19BM.adl. This screen contains the PVs for the TomoScan_19BM derived class. If the BeamReadyPV is changed then tomoscan must be restarted.

_images/tomoScan_19BM.png

Sub-screens accessed from the main screen: tomoScan_19BM_dm.adl (data management), tomoScan_19BM_energy.adl (beamline energy), tomoScan_19BM_experiment.adl (experiment / user info), tomoScan_19BM_optics.adl (optics), tomoScan_19BM_otherpvs.adl (other PVs), tomoScan_19BM_sample.adl (sample info).

Beamline 2-BM

These are the files that are specific to the TomoScan2BM derived class used at APS beamline 2-BM-A.

tomoScan_2BM.template

This is the database file for the TomoScan2BM derived class tomoScan_2BM.template.

The following tables list all of the records in the tomoScan_2BM.template file. This file is used for records needed by the tomoscan_2bm derived class, and also for metadata PVs that should be saved in the tomoscan configuration file and files written by the areaDetector file plugins.

Beam status information

Record name

Record type

Description

$(P)$(R)BeamReadyPVName

stringout

Contains the name of the PV that indicates if beam is ready, e.g. ACIS:ShutterPermit

$(P)$(R)BeamReadyValue

stringout

Contains the value of the beam ready PV when beam is ready.

$(P)$(R)Testing

bo

Enable testing mode ‘Yes’.

Sample information

Record name

Record type

Description

$(P)$(R)SampleName

stringout

Name of the sample

$(P)$(R)SampleDescription1

stringout

Description of the sample, part 1

$(P)$(R)SampleDescription2

stringout

Description of the sample, part 2

$(P)$(R)SampleDescription3

stringout

Description of the sample, part 3

User information

Record name

Record type

Description

$(P)$(R)UserName

stringout

User name

$(P)$(R)UserInstitution

stringout

User institution

$(P)$(R)UserBadge

stringout

User badge number

$(P)$(R)UserEmail

stringout

User email address

$(P)$(R)ProposalNumber

stringout

Proposal number

$(P)$(R)ProposalTitle

stringout

Proposal title

$(P)$(R)ESAFNumber

stringout

Experiment Safety Approval Form number

$(P)$(R)ESAFDOINumber

waveform (CHAR)

DOI attached to the ESAF, populated by the APS scheduling system (long string, up to 256 characters).

$(P)$(R)UserInfoUpdate

stringout

Date and time of the last synchronization of the user information with the APS scheduling system

Data management information

Record name

Record type

Description

$(P)$(R)DetectorTopDir

stringout

Top directory from where the raw data will be saved.

$(P)$(R)UserLastName

stringout

User last name, automatically updated from the APS scheduling system, e.g. decarlo

$(P)$(R)ExperimentYearMonth

stringout

Experiment year and month, automatically updated from the APS scheduling system, e.g. 2020-04

$(P)$(R)RemoteAnalysisDir

stringout

Remote analysis location where to transfer the raw data for analysis, e.g tomo@handyn:/local/data/

$(P)$(R)CopyToAnalysisDir

mbbo

Select raw data copy mode protocol ‘None’, ‘fdt’ or ‘scp’ to copy from detector to data analysis computer. None disable the automatic upload.

Front-end shutter status

Record name

Record type

Description

$(P)$(R)ShutterStatusPVName

stringout

Contains the name of the PV to read the front-end shutter status

Fast shutter control

Record name

Record type

Description

$(P)$(R)CloseFastShutterPVName

stringout

Contains the name of the PV to close the fast shutter

$(P)$(R)CloseFastShutterValue

stringout

Contains the value to write to close the fast shutter

$(P)$(R)OpenFastShutterPVName

stringout

Contains the name of the PV to open the fast shutter

$(P)$(R)OpenFastShutterValue

stringout

Contains the value to write to open the fast shutter

mctOptics

Record name

Record type

Description

$(P)$(R)MctOpticsPVPrefix

stringout

Contains the prefix for the mctOptics IOC.

Additional files that are specific to the TomoScanStream derived class used at APS beamline 2-BM:

Pva, Roi and Cb Plugin PV Prefixes

Record name

Record type

Description

$(P)$(R)PvaPluginPVPrefix

stringout

Contains the prefix for the Pva plugin, e.g. 2bmbSP1:Pva1:

$(P)$(R)RoiPluginPVPrefix

stringout

Contains the prefix for the ROI plugin, e.g. 2bmbSP1:ROI1:

$(P)$(R)CbPluginPVPrefix

stringout

Contains the prefix for the CB plugin, e.g. 2bmbSP1:CB1:

Stream control

Record name

Record type

Description

$(P)$(R)StreamCapture

busy

In streaming mode, set to “Capture” to start the projection saving

$(P)$(R)StreamNumCapture

longout

In streaming mode, set the number of projections to save when capture is set

$(P)$(R)StreamNumCaptured

longout

Number of imaged captured in streaming mode

$(P)$(R)StreamNumTotalCaptured

longout

Total number of imaged captured in streaming mode

$(P)$(R)StreamRetakeFlat

busy,

Stream retake flat. Choices are ‘Done’ and ‘Capture’. When ‘Capture’ a new set of flat field images will be collected and used for reconstructing the following projections

$(P)$(R)StreamRetakeDark

busy

Stream retake dark. Choices are ‘Done’ and ‘Capture’. When ‘Capture’ a new set of dark field images will be collected and used for reconstructing the following projections

$(P)$(R)StreamPreCount

longout

Streaming pre-count are the number of projections pre-capture that are stored in a buffer. At the end of capturing these images are added to the data file

$(P)$(R)StreamPreCounted

longout

Streaming pre-counted are the number of projections pre-capture that have been in a buffer. At the end of capturing these images are added to the data file

$(P)$(R)StreamBinning

mbbo

In streaming mode, set the binnig scale for projections and streamed reconstruction. Captured data are always not binned and saved at full size

$(P)$(R)StreamMessage

waveform

Stream status message

$(P)$(R)StreamCBStatusMessage

waveform

Stream sircular buffer status message

$(P)$(R)StreamFileName

waveform

Stream file name

$(P)$(R)PvaStreamPVPrefix

stringout

Contains the prefix for the PVA server broadcasting dark and flat images in streaming mode, e.g. 2bmb:TomoScan:Stream:

$(P)$(R)StreamSync

bo

when its value is set to Sync a callback synchronizes new angular step and exposure with rotation speed and brodcasts new array of angles for streaming reconstruction

tomoScan_2BM_settings.req

This is the autosave request file for tomoScan_2BM.template tomoScan_2BM_settings.req.

It has the same usage and type of content as tomoScan_settings.req described above, except that it contains the PVs for the derived class TomoScan2BM.

Beamline 2-BM FPGA

These are the files that are specific to the TomoScan2BM (FPGA variant) derived class used at APS beamline 2-BM-B for FPGA-triggered tomography. The Python class TomoScan2BM in tomoscan/tomoscan_fpga_2bm.py inherits from the intermediate base class TomoScanFPGAPSO; its PVs come from the shared tomoScan_FPGA.template documented above, plus the 2-BM metadata records from tomoScan_2BM.template.

The IOC lives in iocBoot/iocTomoScanFPGA_2BMB/. Its substitutions file declares the FPGA prefix, which makes tomoscan.py register the softGlueZynq FPGA control PVs listed in the tomoScan.template section above (FPGAAddr, FPGADin, FPGAClk, FPGAWrt, FPGAEnSignal, FPGANSignal, FPGAMUX2, BUFFER-1_IN_Signal, BUFFER-2_IN_Signal).

Beamline 32-ID

These are the files that are specific to the TomoScan32ID derived class used at APS beamline 32-ID-C Transmission X-ray Microscope (TXM).

tomoScan_32ID.template

This is the database file for the TomoScan32ID derived class tomoScan_32ID.template.

The following tables list all of the records in the tomoScan_32ID.template file. This file is used for records needed by the tomoscan_32id derived class, and also for metadata PVs that should be saved in the tomoscan configuration file and files written by the areaDetector file plugins.

Energy information

Record name

Record type

Description

$(P)$(R)Energy

mbbo

Contains the energy of the beamline.

$(P)$(R)EnergyMode

mbbo

Contains the energy mode of the beamline, e.g. ‘Mono’, ‘Pink’, ‘White’.

$(P)$(R)Filters

stringout

Contains the material and thickness of the filters manually set in the beam path, e.g. Al 1mm; Glass 5mm.

Beam status information

Record name

Record type

Description

$(P)$(R)BeamReadyPVName

stringout

Contains the name of the PV that indicates if beam is ready, e.g. ACIS:ShutterPermit

$(P)$(R)BeamReadyValue

stringout

Contains the value of the beam ready PV when beam is ready.

$(P)$(R)Testing

stringout

Enable testing mode ‘Yes’.

Sample top X and Y translation motors

Record name

Record type

Description

$(P)$(R)SampleTopXPVName

stringout

Contains the name of the sample X translation located on top of the rotary stage PV, e.g. 13BMD:m85

$(P)$(R)SampleTopZPVName

stringout

Contains the name of the sample Z translation located on top of the rotary stage PV, e.g. 13BMD:m85

Sample information

Record name

Record type

Description

$(P)$(R)SampleName

stringout

Name of the sample

$(P)$(R)SampleDescription1

stringout

Description of the sample, part 1

$(P)$(R)SampleDescription2

stringout

Description of the sample, part 2

$(P)$(R)SampleDescription3

stringout

Description of the sample, part 3

User information

Record name

Record type

Description

$(P)$(R)UserName

stringout

User name

$(P)$(R)UserInstitution

stringout

User institution

$(P)$(R)UserBadge

stringout

User badge number

$(P)$(R)UserEmail

stringout

User email address

$(P)$(R)ProposalNumber

stringout

Proposal number

$(P)$(R)ProposalTitle

stringout

Proposal title

$(P)$(R)ESAFNumber

stringout

Experiment Safety Approval Form number

$(P)$(R)UserInfoUpdate

stringout

Date and time of the last synchronization of the user information with the APS scheduling system

Data management information

Record name

Record type

Description

$(P)$(R)DetectorTopDir

stringout

Top directory from where the raw data will be saved.

$(P)$(R)UserLastName

stringout

User last name, automatically updated from the APS scheduling system, e.g. decarlo

$(P)$(R)ExperimentYearMonth

stringout

Experiment year and month, automatically updated from the APS scheduling system, e.g. 2020-04

$(P)$(R)RemoteAnalysisDir

stringout

Remote analysis location where to transfer the raw data for analysis, e.g tomo@handyn:/local/data/

$(P)$(R)CopyToAnalysisDir

bo

Enable raw data copy mode ‘Yes’. Data are copied from detector to data analysis computer.

Front-end shutter status

Record name

Record type

Description

$(P)$(R)ShutterStatusPVName

stringout

Contains the name of the PV to read the front-end shutter status

Fast shutter control

Record name

Record type

Description

$(P)$(R)CloseFastShutterPVName

stringout

Contains the name of the PV to close the fast shutter

$(P)$(R)CloseFastShutterValue

stringout

Contains the value to write to close the fast shutter

$(P)$(R)OpenFastShutterPVName

stringout

Contains the name of the PV to open the fast shutter

$(P)$(R)OpenFastShutterValue

stringout

Contains the value to write to open the fast shutter

Interlaced scan

Record name

Record type

Description

$(P)$(R)InterlacedScan

bo

Flag controlling whether the scan is regualr or interlaced. Choices are ‘No’ and ‘Yes’. When “No” the angles are equally spaced using the Start angle, # of angles and Angle step parameters. When ‘Yes’ the list of angles is read from a file.

$(P)$(R)InterlacedFileName

waveform

The file name containing the list of interalced angles in npy format.

$(P)$(R)InterlacedFileName

waveform

Interlaced file name containing the numpy list of angles to collect in interlaced mode.

$(P)$(R)StabilizationTime

ao

Settling time after the rotary stage motion is completed (used only in step scans).

Pause

Record name

Record type

Description

$(P)$(R)Pause

bo

Flag allowing the scan to be paused. Choices are “GO” and “PAUSE”. When set to “PAUSE”, the scan will pause at begin_scan(), set the camera to continuous mode, open the shutter, and start the camera. This is used when running a long series of scans (XANES, for example), allowing for tuning and maximization of the flat-field intensity.

tomoScan_32ID_settings.req

This is the autosave request file for tomoScan_2BM.template tomoScan_32ID_settings.req.

It has the same usage and type of content as tomoScan_settings.req described above, except that it contains the PVs for the derived class TomoScan32ID.

medm files

tomoScan_2BM.adl

The following is the MEDM screen tomoScan_2BM.adl. This screen contains the PVs for the TomoScan_2BM derived class. If the BeamReadyPV is changed then tomoscan must be restarted.

_images/tomoScan_2BM.png
tomoScan_2BM_main.adl

The MEDM screen tomoScan_2BM_main.adl is the 2-BM custom integrated main panel. It mirrors tomoScan.adl but drops the shutter open/close buttons (2-BM uses its own shutter workflow) and adds two hard-wired 2-BM-B beam-monitor readbacks (2bmbMZ1:SG:UpCntr-1_COUNTS and 2bmbMZ1:SG:UpCntr-2_COUNTS). The 2-BM start_medm launches this screen in place of the generic tomoScan.adl.

_images/tomoScan_2BM_main.png
tomoScanFPGA_2BM_main.adl

The MEDM screen tomoScanFPGA_2BM_main.adl is the equivalent custom main panel for the 2-BM FPGA station (iocTomoScanFPGA_2BMB). It surfaces interlaced-scan controls, live scan status, sample motion, and file paths. The iocTomoScanFPGA_2BMB/start_medm launcher opens this screen instead of the per-station tomoScanFPGA_2BM.adl.

_images/tomoScanFPGA_2BM_main.png
tomoScan_2BM_stream.adl

The following is the MEDM screen tomoScan_2BM_stream.adl. This screen contains the additonal PVs used by the TomoScan_stream_2BM derived class.

_images/tomoScan_2BM_stream.png
tomoScan_32ID.adl

The following is the MEDM screen tomoScan_32ID.adl. This screen contains the PVs for the TomoScan_32ID derived class. If the BeamReadyPV is changed then tomoscan must be restarted.

_images/tomoScan_32ID.png

Beamline 32-ID-C

These are the files that are specific to the TomoScan32IDC derived class used at APS beamline 32-ID-C Micro-CT station (distinct from the 32-ID-C Transmission X-ray Microscope covered above).

The template is a copy of tomoScan_2BM.template with the fast-shutter records removed: the Micro-CT station at 32-ID-C has no fast shutter. Beam is admitted to the station by the 32-ID-B shutter (32idb:rshtrB:), which is handled by the OPEN_SHUTTER / CLOSE_SHUTTER macros in tomoScan.template.

tomoScan_32IDC.template

This is the database file for the TomoScan32IDC derived class tomoScan_32IDC.template.

Beam status information

Record name

Record type

Description

$(P)$(R)BeamReadyPVName

stringout

Contains the name of the PV that indicates if beam is ready.

$(P)$(R)BeamReadyValue

stringout

Contains the value of the beam ready PV when beam is ready.

$(P)$(R)Testing

bo

Bypass the beam-ready check when set to “Yes”.

Sample information

Record name

Record type

Description

$(P)$(R)SampleName

stringout

Name of the sample.

$(P)$(R)SampleDescription1

stringout

Description of the sample, part 1.

$(P)$(R)SampleDescription2

stringout

Description of the sample, part 2.

$(P)$(R)SampleDescription3

stringout

Description of the sample, part 3.

User information

Record name

Record type

Description

$(P)$(R)UserName

stringout

User name.

$(P)$(R)UserInstitution

waveform (CHAR)

User institution (long string, up to 256 characters).

$(P)$(R)UserBadge

stringout

User badge number.

$(P)$(R)UserEmail

stringout

User email address.

$(P)$(R)ProposalNumber

stringout

Proposal number.

$(P)$(R)ProposalTitle

waveform (CHAR)

Proposal title (long string, up to 256 characters).

$(P)$(R)ESAFNumber

stringout

Experiment Safety Approval Form number.

$(P)$(R)ESAFDOINumber

waveform (CHAR)

DOI attached to the ESAF (long string, up to 256 characters).

$(P)$(R)UserInfoUpdate

stringout

Timestamp of the last user-info refresh from the ESAF service.

Data management information

Record name

Record type

Description

$(P)$(R)DetectorTopDir

stringout

Top-level directory on the detector computer where scan files are written.

$(P)$(R)UserLastName

stringout

Operator’s last name (used to build the per-experiment directory).

$(P)$(R)ExperimentYearMonth

stringout

Year-month tag (used to build the per-experiment directory).

$(P)$(R)RemoteAnalysisDir

stringout

Destination directory for automatic data transfer to the analysis computer.

$(P)$(R)CopyToAnalysisDir

mbbo

Transfer method: “None” (0), “fdt” (1), or “scp” (2).

Shutter status

Record name

Record type

Description

$(P)$(R)ShutterStatusPVName

stringout

Contains the name of the PV that reads the shutter status.

mctOptics

Record name

Record type

Description

$(P)$(R)MctOpticsPVPrefix

stringout

Contains the prefix of the mctOptics IOC that supplies optics-metadata PVs (ScintillatorType, ImagePixelSize, CameraObjective, etc.).

Scan Types

Record name

Record type

Description

$(P)$(R)ScanType

mbbo

Scan type: “Single” (0), “Vertical” (1), “Horizontal” (2), “Mosaic” (3), “File” (4), “Energy” (5).

$(P)$(R)FlipStitch

bo

When “Yes”, the horizontal-stitch scan flips alternate rows.

Plugin PV prefixes

Record name

Record type

Description

$(P)$(R)PvaPluginPVPrefix

stringout

PV prefix for the areaDetector PVA plugin.

$(P)$(R)RoiPluginPVPrefix

stringout

PV prefix for the areaDetector ROI plugin.

$(P)$(R)CbPluginPVPrefix

stringout

PV prefix for the areaDetector circular-buffer plugin.

tomoScan_32IDC_settings.req

This is the autosave request file for tomoScan_32IDC.template tomoScan_32IDC_settings.req.

It has the same usage and type of content as tomoScan_settings.req described above, except that it contains the PVs for the derived class TomoScan32IDC.

medm files

The 32-ID-C MEDM screens live under tomoScanApp/op/adl/: tomoScan_32IDC.adl (main), tomoScan_32IDC_dm.adl (data management), tomoScan_32IDC_experiment.adl (experiment / user info), tomoScan_32IDC_otherpvs.adl (other PVs), tomoScan_32IDC_sample.adl (sample info).

Beamline 32-ID FPGA

These are the files that are specific to the TomoScanFPGA32ID derived class used at APS beamline 32-ID for FPGA-triggered tomography. The Python class TomoScanFPGA32ID in tomoscan/tomoscan_fpga_32id.py inherits from the intermediate base class TomoScanFPGAPSO; its PVs come from the shared tomoScan_FPGA.template documented above.

The IOC lives in iocBoot/iocTomoScanFPGA_32ID/. Its substitutions file declares the FPGA prefix, which makes tomoscan.py register the softGlueZynq FPGA control PVs listed in the tomoScan.template section above.

medm files

The 32-ID FPGA MEDM screens live under tomoScanApp/op/adl/: tomoScanFPGA_32ID.adl (32-ID FPGA display), tomoScanFPGA_32ID_main.adl (custom integrated main panel launched by iocTomoScanFPGA_32ID/start_medm).

Beamline CODED aperture (32-ID)

These are the files that are specific to the TomoScanCODED32ID derived class used at APS beamline 32-ID for coded-aperture tomography with the NV200 piezo apertures. The Python class TomoScanCODED32ID in tomoscan/tomoscan_coded_32id.py inherits from TomoScanPSO (not TomoScanFPGAPSO), but the station still exposes the softGlueZynq FPGA hardware prefix so the Python class can discover it.

tomoScan_CODED.template

This is the database file for the TomoScanCODED32ID derived class tomoScan_CODED.template.

Record name

Record type

Description

$(P)$(R)FPGAPVPrefix

stringout

Contains the prefix for the softGlueZynq FPGA I/O module that drives the coded-aperture control (e.g. 32ida:softGlueZynq:).

tomoScan_CODED_settings.req

This is the autosave request file for tomoScan_CODED.template tomoScan_CODED_settings.req.

It has the same usage and type of content as tomoScan_settings.req described above, except that it contains the PVs for the derived class TomoScanCODED32ID.

Beamline 6-BM

These are the files that are specific to the TomoScan6BM derived class used at APS beamline 6-BM.

tomoScan_6BM.template

This is the database file for the TomoScan6BM derived class tomoScan_6BM.template.

The following tables list all of the records in the tomoScan_6BM.template file. This file is used for records needed by the tomoscan_6BM derived class, and also for metadata PVs that should be saved in the tomoscan configuration file and files written by the areaDetector file plugins.

Energy information

Record name

Record type

Description

$(P)$(R)Energy

mbbo

Contains the energy of the beamline.

$(P)$(R)EnergyMode

mbbo

Contains the energy mode of the beamline, e.g. ‘Mono’, ‘Pink’, ‘White’.

$(P)$(R)Filters

stringout

Contains the material and thickness of the filters manually set in the beam path, e.g. Al 1mm; Glass 5mm.

Beam status information

Record name

Record type

Description

$(P)$(R)BeamReadyPVName

stringout

Contains the name of the PV that indicates if beam is ready, e.g. ACIS:ShutterPermit

$(P)$(R)BeamReadyValue

stringout

Contains the value of the beam ready PV when beam is ready.

$(P)$(R)Testing

stringout

Enable testing mode ‘Yes’.

Sample top X, Y, Z, Rx, Rz motors

Record name

Record type

Description

$(P)$(R)SampleTopXPVName

stringout

Contains the name of the sample X translation located on top of the rotary stage PV, e.g. 6bma1:m11

$(P)$(R)SampleTopYPVName

stringout

Contains the name of the sample Y translation located on top of the rotary stage PV, e.g. 6bma1:m18

$(P)$(R)SampleTopZPVName

stringout

Contains the name of the sample Z translation located on top of the rotary stage PV, e.g. 6bma1:m12

$(P)$(R)SampleTopRXPVName

stringout

Contains the name of the sample RX rotation around X located on top of the rotary stage PV, e.g. 6bma1:m10

$(P)$(R)SampleTopRZPVName

stringout

Contains the name of the sample RZ rotation around Z located on top of the rotary stage PV, e.g. 6bma1:m9

Optics information

Record name

Record type

Description

$(P)$(R)ScintillatorType

stringout

Contains the type of scintillator being used.

$(P)$(R)ScintillatorThickness

ao

Contains the thickness of the scintillator in microns.

$(P)$(R)ImagePixelSize

ao

Contains the pixel size on the sample in microns (i.e. includes objective magnification)

$(P)$(R)DetectorPixelSize

ao

Contains the pixel size of the detector.

$(P)$(R)CameraObjective

stringout

Description of the camera objective

$(P)$(R)CameraTubeLength

stringout

Description of the camera objective

Sample information

Record name

Record type

Description

$(P)$(R)SampleName

stringout

Name of the sample

$(P)$(R)SampleDescription1

stringout

Description of the sample, part 1

$(P)$(R)SampleDescription2

stringout

Description of the sample, part 2

$(P)$(R)SampleDescription3

stringout

Description of the sample, part 3

User information

Record name

Record type

Description

$(P)$(R)UserName

stringout

User name

$(P)$(R)UserInstitution

stringout

User institution

$(P)$(R)UserBadge

stringout

User badge number

$(P)$(R)UserEmail

stringout

User email address

$(P)$(R)ProposalNumber

stringout

Proposal number

$(P)$(R)ProposalTitle

stringout

Proposal title

$(P)$(R)ESAFNumber

stringout

Experiment Safety Approval Form number

$(P)$(R)UserInfoUpdate

stringout

Date and time of the last synchronization of the user information with the APS scheduling system

Data management information

Record name

Record type

Description

$(P)$(R)DetectorTopDir

stringout

Top directory from where the raw data will be saved.

$(P)$(R)UserLastName

stringout

User last name, automatically updated from the APS scheduling system, e.g. decarlo

$(P)$(R)ExperimentYearMonth

stringout

Experiment year and month, automatically updated from the APS scheduling system, e.g. 2020-04

$(P)$(R)RemoteAnalysisDir

stringout

Remote analysis location where to transfer the raw data for analysis, e.g tomo@handyn:/local/data/

$(P)$(R)CopyToAnalysisDir

bo

Enable raw data copy mode ‘Yes’. Data are copied from detector to data analysis computer.

Front-end shutter status

Record name

Record type

Description

$(P)$(R)ShutterStatusPVName

stringout

Contains the name of the PV to read the front-end shutter status

tomoScan_6BM_settings.req

This is the autosave request file for tomoScan_2BM.template tomoScan_6BM_settings.req.

It has the same usage and type of content as tomoScan_settings.req described above, except that it contains the PVs for the derived class TomoScan6BM.

medm files

tomoScan_6BM.adl

The following is the MEDM screen tomoScan_6BM.adl. This screen contains the PVs for the TomoScan_6BM derived class. If the BeamReadyPV is changed then tomoscan must be restarted.

_images/tomoScan_6BM.png

Beamline 7-BM

These are the files that are specific to the TomoScan7BM derived class used at APS beamline 7-BM.

tomoScan_7BM.template

This is database file for the TomoScan7BM derived class tomoScan_2BM.template.

The following tables list all of the records in the tomoScan_7BM.template file. This file is used for records needed by the tomoscan_7bm derived class, and also for metadata PVs that should be saved in the tomoscan configuration file and files written by the areaDetector file plugins.

PSO Parameters

Record name

Record type

Description

$(P)$(R)startTaxi

ao

Start position with taxi

$(P)$(R)endTaxi

ao

End position with taxi

$(P)$(R)EncoderPulsesPerStep

longout

Encoder pulses per projection

$(P)$(R)PSOAsynPVName

stringout

PSO asyn PV name

$(P)$(R)PSOAxisName

stringout

PSO axis name

$(P)$(R)PSOEncoderInput

longout

Encoder input

(P)$(R)PSOPulsesPerRotation

ao

Number of encoder counts per revolution

Energy information

Record name

Record type

Description

$(P)$(R)Energy

mbbo

Contains the energy of the beamline.

$(P)$(R)EnergyMode

mbbo

Contains the energy mode of the beamline, e.g. ‘Mono’, ‘Pink’, ‘White’.

$(P)$(R)Filters

stringout

Contains the material and thickness of the filters manually set in the beam path, e.g. Al 1mm; Glass 5mm.

Beam status information

Record name

Record type

Description

$(P)$(R)BeamReadyPVName

stringout

Contains the name of the PV that indicates if beam is ready, e.g. ACIS:ShutterPermit

$(P)$(R)BeamReadyValue

stringout

Contains the value of the beam ready PV when beam is ready.

$(P)$(R)Testing

stringout

Enable testing mode ‘Yes’.

Optics information

Record name

Record type

Description

$(P)$(R)ScintillatorType

stringout

Contains the type of scintillator being used.

$(P)$(R)ScintillatorThickness

ao

Contains the thickness of the scintillator in microns.

$(P)$(R)ImagePixelSize

ao

Contains the pixel size on the sample in microns (i.e. includes objective magnification)

$(P)$(R)DetectorPixelSize

ao

Contains the pixel size of the detector.

$(P)$(R)CameraObjective

stringout

Description of the camera objective

$(P)$(R)CameraTubeLength

stringout

Description of the camera objective

Sample information

Record name

Record type

Description

$(P)$(R)SampleName

stringout

Name of the sample

$(P)$(R)SampleDescription1

stringout

Description of the sample, part 1

$(P)$(R)SampleDescription2

stringout

Description of the sample, part 2

$(P)$(R)SampleDescription3

stringout

Description of the sample, part 3

User information

Record name

Record type

Description

$(P)$(R)UserName

stringout

User name

$(P)$(R)UserInstitution

stringout

User institution

$(P)$(R)UserBadge

stringout

User badge number

$(P)$(R)UserEmail

stringout

User email address

$(P)$(R)ProposalNumber

stringout

Proposal number

$(P)$(R)ProposalTitle

stringout

Proposal title

$(P)$(R)ESAFNumber

stringout

Experiment Safety Approval Form number

$(P)$(R)UserInfoUpdate

stringout

Date and time of the last synchronization of the user information with the APS scheduling system

Data management information

Record name

Record type

Description

$(P)$(R)DetectorTopDir

stringout

Top directory from where the raw data will be saved.

$(P)$(R)UserLastName

stringout

User last name, automatically updated from the APS scheduling system, e.g. decarlo

$(P)$(R)ExperimentYearMonth

stringout

Experiment year and month, automatically updated from the APS scheduling system, e.g. 2020-04

$(P)$(R)RemoteAnalysisDir

stringout

Remote analysis location where to transfer the raw data for analysis, e.g tomo@handyn:/local/data/

Fast shutter control

Record name

Record type

Description

$(P)$(R)CloseFastShutterPVName

stringout

Contains the name of the PV to close the fast shutter

$(P)$(R)CloseFastShutterValue

stringout

Contains the value to write to close the fast shutter

$(P)$(R)OpenFastShutterPVName

stringout

Contains the name of the PV to open the fast shutter

$(P)$(R)OpenFastShutterValue

stringout

Contains the value to write to open the fast shutter

tomoScan_7BM_settings.req

This is the autosave request file for tomoScan_7BM.template tomoScan_7BM_settings.req.

It has the same usage and type of content as tomoScan_settings.req described above, except that it contains the PVs for the derived class TomoScan7BM.

medm files

tomoScan_7BM.adl

The following is the MEDM screen tomoScan_7BM.adl. This screen contains the PVs for the TomoScan_7BM derived class. If the BeamReadyPV is changed then tomoscan must be restarted.

_images/tomoScan_7BM.png