3.3.1.13. NXdetectorΒΆ
Status:
base class, extends NXobject, version 1.1
Description:
A detector, detector bank, or multidetector.
Symbols:
These symbols will be used below to coordinate datasets with the same shape.
np: number of scan points (only present in scanning measurements)
i: number of detector pixels in the first (X, slowest) direction
j: number of detector pixels in the second (Y, faster) direction
k: number of detector pixels in the third (Z, if necessary, fastest) direction
tof: number of bins in the time-of-flight histogram
- Groups cited:
- NXcharacterization, NXcollection, NXdata, NXdetector_module, NXgeometry, NXnote
Structure:
time_of_flight[tof+1]: NX_FLOAT {units=NX_TIME_OF_FLIGHT}
raw_time_of_flight[tof+1]: NX_INT {units=NX_PULSES}
detector_number[i, j]: NX_INT
Identifier for detectordata[np, i, j, tof]: NX_NUMBER {units=NX_ANY}
data_error[np, i, j, tof]: NX_NUMBER {units=NX_ANY}
The best estimate of the uncertainty in the data value. Where possible, this should be the standard deviation, which has the same units as the data.x_pixel_offset[i, j]: NX_FLOAT {units=NX_LENGTH}
y_pixel_offset[i, j]: NX_FLOAT {units=NX_LENGTH}
distance[np, i, j]: NX_FLOAT {units=NX_LENGTH}
This is the distance to the previous component in the instrument; most often the sample. The usage depends on the nature of the detector: Most often it is the distance of the detector assembly. But there are irregular detectors. In this case the distance must be specified for each detector pixel.polar_angle[np, i, j]: NX_FLOAT {units=NX_ANGLE}
This is the polar angle of the detector towards the previous component in the instrument; most often the sample. The usage depends on the nature of the detector. Most often it is the polar_angle of the detector assembly. But there are irregular detectors. In this case, the polar_angle must be specified for each detector pixel.azimuthal_angle[np, i, j]: NX_FLOAT {units=NX_ANGLE}
This is the azimuthal angle angle of the detector towards the previous component in the instrument; most often the sample. The usage depends on the nature of the detector. Most often it is the azimuthal_angle of the detector assembly. But there are irregular detectors. In this case, the azimuthal_angle must be specified for each detector pixel.description: NX_CHAR
name/manufacturer/model/etc. informationlocal_name: NX_CHAR
Local name for the detectorsolid_angle[i, j]: NX_FLOAT {units=NX_SOLID_ANGLE}
Solid angle subtended by the detector at the samplex_pixel_size[i, j]: NX_FLOAT {units=NX_LENGTH}
Size of each detector pixel. If it is scalar all pixels are the same size.y_pixel_size[i, j]: NX_FLOAT {units=NX_LENGTH}
Size of each detector pixel. If it is scalar all pixels are the same sizedead_time[np, i, j]: NX_FLOAT {units=NX_TIME}
Detector dead timegas_pressure[i, j]: NX_FLOAT {units=NX_PRESSURE}
Detector gas pressuredetection_gas_path: NX_FLOAT {units=NX_LENGTH}
maximum drift space dimensioncrate[i, j]: NX_INT
slot[i, j]: NX_INT
input[i, j]: NX_INT
type: NX_CHAR
Description of type such as He3 gas cylinder, He3 PSD, scintillator, fission chamber, proportion counter, ion chamber, ccd, pixel, image plate, CMOS, ...calibration_date: NX_DATE_TIME
date of last calibration (geometry and/or efficiency) measurementslayout: NX_CHAR
How the detector is represented
Any of these values:
point
|linear
|area
count_time[np]: NX_NUMBER {units=NX_TIME}
Elapsed actual counting timesequence_number[nBrightFrames]: NX_CHAR
In order to properly sort the order of the images taken in (for example) a tomography experiment, a sequence number is stored with each image.beam_center_x: NX_FLOAT {units=NX_LENGTH}
This is the x position where the direct beam would hit the detector. This is a length, not a pixel position, and can be outside of the actual detector.beam_center_y: NX_FLOAT {units=NX_LENGTH}
This is the y position where the direct beam would hit the detector. This is a length, not a pixel position, and can be outside of the actual detector.frame_start_number: NX_INT
This is the start number of the first frame of a scan. In PX one often scans a couple of frames on a give sample, then does something else, then returns to the same sample and scans some more frames. Each time with a new data file. This number helps concatenating such measurements.diameter: NX_FLOAT {units=NX_LENGTH}
The diameter of a cylindrical detectoracquisition_mode: NX_CHAR
The acquisition mode of the detector.
Any of these values:
gated
triggered
summed
event
histogrammed
decimated
angular_calibration_applied: NX_BOOLEAN
True when the angular calibration has been applied in the electronics, false otherwise.angular_calibration[i, j]: NX_FLOAT
Angular calibration data.flatfield_applied: NX_BOOLEAN
True when the flat field correction has been applied in the electronics, false otherwise.flatfield[i, j]: NX_FLOAT
Flat field correction data.flatfield_error[i, j]: NX_FLOAT
Errors of the flat field correction data.pixel_mask_applied: NX_BOOLEAN
True when the pixel mask correction has been applied in the electronics, false otherwise.pixel_mask[i, j]: NX_INT
The 32-bit pixel mask for the detector. Contains a bit field for each pixel to signal dead, blind or high or otherwise unwanted or undesirable pixels. They have the following meaning:
- bit 0: gap (pixel with no sensor)
- bit 1: dead
- bit 2: under responding
- bit 3: over responding
- bit 4: noisy
- bit 5: -undefined-
- bit 6: pixel is part of a cluster of problematic pixels (bit set in addition to others)
- bit 7: -undefined-
- bit 8: user defined mask (e.g. around beamstop)
- bits 9-30: -undefined-
- bit 31: virtual pixel (corner pixel with interpolated value)
The normal data analysis software would not take pixels into account when a bit in (mask & 0x00FF) is set. Tag bit in the upper two bytes would indicate special pixel properties that normally would not be a sole reason to reject the intensity value (unless lower bits are also set).
countrate_correction__applied: NX_BOOLEAN
True when a count-rate correction has already been applied in the electronics, false otherwise.bit_depth_readout: NX_INT
How many bits the electronics reads per pixel. With CCD’s and single photon counting detectors, this must not align with traditional integer sizes. This can be 4, 8, 12, 14, 16, ...detector_readout_time: NX_FLOAT {units=NX_TIME}
Time it takes to read the detector (typically milliseconds). This is important to know for time resolved experiments.trigger_delay_time: NX_FLOAT {units=NX_TIME}
Time it takes to start exposure after a trigger signal has been received. This is the reaction time of the detector firmware after receiving the trigger signal to when the detector starts to acquire the exposure, including any user set delay.. This is important to know for time resolved experiments.trigger_delay_time_set: NX_FLOAT {units=NX_TIME}
User-specified trigger delay.trigger_internal_delay_time: NX_FLOAT {units=NX_TIME}
Time it takes to start exposure after a trigger signal has been received. This is the reaction time of the detector hardware after receiving the trigger signal to when the detector starts to acquire the exposure. It forms the lower boundary of the trigger_delay_time when the user does not request an additional delay.trigger_dead_time: NX_FLOAT {units=NX_TIME}
Time during which no new trigger signal can be accepted. Typically this is the trigger_delay_time + exposure_time + readout_time. This is important to know for time resolved experiments.frame_time[NP]: NX_FLOAT {units=NX_TIME}
This is time for each frame. This is exposure_time + readout time.gain_setting: NX_CHAR
The gain setting of the detector. This influences background etc.
Any of these values:
high
|standard
|fast
|auto
saturation_value: NX_INT
The value at which the detector goes into saturation. Especially common to CCD detectors, the data is known to be invalid above this value.number_of_cycles: NX_INT
CCD images are sometimes constructed by summing together multiple short exposures in the electronics. This reduces background etc. This is the number of short exposures used to sum images for an image.sensor_material: NX_CHAR
At times, radiation is not directly sensed by the detector. Rather, the detector might sense the output from some converter like a scintillator. This is the name of this converter material.sensor_thickness: NX_FLOAT {units=NX_LENGTH}
At times, radiation is not directly sensed by the detector. Rather, the detector might sense the output from some converter like a scintillator. This is the thickness of this converter material.threshold_energy: NX_FLOAT {units=NX_ENERGY}
Single photon counter detectors can be adjusted for a certain energy range in which they work optimally. This is the energy setting for this.(geometry): NXgeometry
Position and orientation of detectorefficiency: NXdata
Spectral efficiency of detector with respect to e.g. wavelength
@signal: NX_CHAR
Obligatory value:efficiency
@axes: NX_CHAR
Any of these values:.
|. .
|. . .
|. . . .
|wavelength
@wavelength_indices: NX_CHAR
Obligatory value:0
efficiency[i, j, k]: NX_FLOAT {units=NX_DIMENSIONLESS}
efficiency of the detectorwavelength[i, j, k]: NX_FLOAT {units=NX_WAVELENGTH}
This field can be two things:
- For a pixel detector it provides the nominal wavelength for which the detector has been calibrated.
- For other detectors this field has to be seen together with the efficiency field above. For some detectors, the efficiency is wavelength dependent. Thus this field provides the wavelength axis for the efficiency field. In this use case, the efficiency and wavelength arrays must have the same dimensionality.
start_time[np]: NX_FLOAT {units=NX_TIME}
start time for each frame, with the
start
attribute as absolute reference@start: NX_DATE_TIME
stop_time[np]: NX_FLOAT {units=NX_TIME}
stop time for each frame, with the
start
attribute as absolute reference@start: NX_DATE_TIME
real_time[i, j, k]: NX_NUMBER {units=NX_TIME}
real-time of the exposure (use this if exposure time varies for each array element, otherwise usecount_time
field)calibration_method: NXnote
summary of conversion of array data to pixels (e.g. polynomial approximations) and location of details of the calibrationsdata_file: NXnote
(characterization): NXcharacterization
DEPRECATED: use NXcollection instead
see: https://github.com/nexusformat/definitions/issues/177 (collection): NXcollection
Use this group to provide other data related to this NXdetector group.(detector_module): NXdetector_module
For use in special cases where the data in NXdetector is represented in several parts, each with a separate geometry.
Use one or more instances of the NXdetector_module group to declare regions of interest or some other subdivision of a detector.