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 controlFPGAMUX2— 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 |
$(P)$(R)HDF5DarkLocation |
stringout |
String defining the location in the HDF5 file to write dark field frames.
The default is |
$(P)$(R)HDF5FlatLocation |
stringout |
String defining the location in the HDF5 file to write flat field frames.
The default is |
$(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 |
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.savfile.It is read in the constructor of the TomoScan class to determine what PVs to read and write.
It contains 4 types of PVs:
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.
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.
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.
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.
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. |
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 |
$(P)$(R)InterlacedRotationStart |
ao |
Configuration |
First rotation angle in degrees ( |
$(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 ( |
$(P)$(R)InterlacedRotationStop |
calc |
Status |
Computed end angle: |
$(P)$(R)InterlacedMinStep |
ao |
Status |
Minimum angular step between adjacent projections in degrees ( |
$(P)$(R)PSOSlotStep |
ao |
Configuration |
PSO window step size used to size the FPGA trigger window. For all interlaced
modes this is |
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 ( |
$(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.
tomoScanEPICS_PVs.adl
The following is the MEDM screen tomoScanEPICS_PVs.adl.
If these PVs are changed tomoscan must be restarted.
tomoScan_pso.adl
The following is the MEDM screen tomoScan_pso.adl.
It contains the PVs that control the Aerotech PSO pulse control.
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.
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.
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 ( |
$(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 |
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.
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.
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.
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.
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.
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.
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. |
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.
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.