.. auto-generated by script ../../../../utils/nxdl2rst.py from the NXDL source ../../../../base_classes/NXdetector.nxdl.xml .. index:: ! NXdetector (base class) ! detector (base class) see: detector (base class); NXdetector .. _NXdetector: ========== NXdetector ========== **Status**: base class, extends :ref:`NXobject`, version 1.1 **Description**: Template of 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**: :ref:`NXcharacterization`, :ref:`NXcollection`, :ref:`NXdata`, :ref:`NXdetector_module`, :ref:`NXgeometry`, :ref:`NXnote` .. index:: NXgeometry (base class); used in base class, NXdata (base class); used in base class, NXnote (base class); used in base class, NXcharacterization (base class); used in base class, NXcollection (base class); used in base class, NXdetector_module (base class); used in base class **Structure**: .. index:: time_of_flight (data field) **time_of_flight[tof+1]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_TIME_OF_FLIGHT `} Total time of flight .. index:: axis (attribute) **@axis**: :ref:`NX_POSINT ` Obligatory value: ``3`` .. index:: primary (attribute) **@primary**: :ref:`NX_POSINT ` Obligatory value: ``1`` .. index:: long_name (attribute) **@long_name**: :ref:`NX_CHAR ` Axis label .. index:: link (attribute) **@link**: :ref:`NX_CHAR ` absolute path to location in NXdetector .. index:: raw_time_of_flight (data field) **raw_time_of_flight[tof+1]**: :ref:`NX_INT ` {units=\ :ref:`NX_PULSES `} In DAQ clock pulses .. index:: frequency (attribute) **@frequency**: :ref:`NX_NUMBER ` Clock frequency in Hz .. index:: detector_number (data field) **detector_number[i, j]**: :ref:`NX_INT ` Identifier for detector .. index:: data (data field) **data[np, i, j, tof]**: :ref:`NX_NUMBER ` {units=\ :ref:`NX_ANY `} Data values from the detector. .. index:: signal (attribute) **@signal**: :ref:`NX_POSINT ` Obligatory value: ``1`` .. index:: axes (attribute) **@axes**: :ref:`NX_CHAR ` ``[number of scan points,x_offset?,y_offset?,time_of_flight?]`` .. index:: long_name (attribute) **@long_name**: :ref:`NX_CHAR ` Title of measurement .. index:: check_sum (attribute) **@check_sum**: :ref:`NX_INT ` Integral of data as check of data integrity .. index:: link (attribute) **@link**: :ref:`NX_CHAR ` absolute path to location in NXdetector .. index:: data_error (data field) **data_error[np, i, j, tof]**: :ref:`NX_NUMBER ` {units=\ :ref:`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. .. index:: units (attribute) **@units**: :ref:`NX_CHAR ` .. index:: link (attribute) **@link**: :ref:`NX_CHAR ` absolute path to location in NXdetector .. index:: x_pixel_offset (data field) **x_pixel_offset[i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_LENGTH `} Offset from the detector center in x-direction. Can be multidimensional when needed. .. index:: axis (attribute) **@axis**: :ref:`NX_POSINT ` Obligatory value: ``1`` .. index:: primary (attribute) **@primary**: :ref:`NX_POSINT ` Obligatory value: ``1`` .. index:: long_name (attribute) **@long_name**: :ref:`NX_CHAR ` Axis label .. index:: link (attribute) **@link**: :ref:`NX_CHAR ` absolute path to location in NXdetector .. index:: y_pixel_offset (data field) **y_pixel_offset[i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_LENGTH `} Offset from the detector center in the y-direction. Can be multidimensional when different values are required for each pixel. .. index:: axis (attribute) **@axis**: :ref:`NX_POSINT ` Obligatory value: ``2`` .. index:: primary (attribute) **@primary**: :ref:`NX_POSINT ` Obligatory value: ``1`` .. index:: long_name (attribute) **@long_name**: :ref:`NX_CHAR ` Axis label .. index:: distance (data field) **distance[np, i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_LENGTH `} TODO: need documentation .. index:: polar_angle (data field) **polar_angle[np, i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_ANGLE `} TODO: need documentation .. index:: azimuthal_angle (data field) **azimuthal_angle[np, i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_ANGLE `} TODO: need documentation .. index:: description (data field) **description**: :ref:`NX_CHAR ` name/manufacturer/model/etc. information .. index:: local_name (data field) **local_name**: :ref:`NX_CHAR ` Local name for the detector .. index:: solid_angle (data field) **solid_angle[i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_SOLID_ANGLE `} Solid angle subtended by the detector at the sample .. index:: x_pixel_size (data field) **x_pixel_size[i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_LENGTH `} Size of each detector pixel. If it is scalar all pixels are the same size. .. index:: y_pixel_size (data field) **y_pixel_size[i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_LENGTH `} Size of each detector pixel. If it is scalar all pixels are the same size .. index:: dead_time (data field) **dead_time[np, i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_TIME `} Detector dead time .. index:: gas_pressure (data field) **gas_pressure[i, j]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_PRESSURE `} Detector gas pressure .. index:: detection_gas_path (data field) **detection_gas_path**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_LENGTH `} maximum drift space dimension .. index:: crate (data field) **crate[i, j]**: :ref:`NX_INT ` Crate number of detector .. index:: local_name (attribute) **@local_name**: :ref:`NX_CHAR ` Equivalent local term .. index:: slot (data field) **slot[i, j]**: :ref:`NX_INT ` Slot number of detector .. index:: local_name (attribute) **@local_name**: :ref:`NX_CHAR ` Equivalent local term .. index:: input (data field) **input[i, j]**: :ref:`NX_INT ` Input number of detector .. index:: local_name (attribute) **@local_name**: :ref:`NX_CHAR ` Equivalent local term .. index:: type (data field) **type**: :ref:`NX_CHAR ` Description of type such as He3 gas cylinder, He3 PSD, scintillator, fission chamber, proportion counter, ion chamber, ccd, pixel, image plate, CMOS, ... .. index:: calibration_date (data field) **calibration_date**: :ref:`NX_DATE_TIME ` date of last calibration (geometry and/or efficiency) measurements .. index:: layout (data field) **layout**: :ref:`NX_CHAR ` How the detector is represented Any of these values: ``point`` | ``linear`` | ``area`` .. index:: count_time (data field) **count_time[np]**: :ref:`NX_NUMBER ` {units=\ :ref:`NX_TIME `} Elapsed actual counting time .. index:: sequence_number (data field) **sequence_number[nBrightFrames]**: :ref:`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. .. index:: beam_center_x (data field) **beam_center_x**: :ref:`NX_FLOAT ` {units=\ :ref:`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. .. index:: beam_center_y (data field) **beam_center_y**: :ref:`NX_FLOAT ` {units=\ :ref:`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. .. index:: frame_start_number (data field) **frame_start_number**: :ref:`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. .. index:: diameter (data field) **diameter**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_LENGTH `} The diameter of a cylindrical detector .. index:: acquisition_mode (data field) **acquisition_mode**: :ref:`NX_CHAR ` The acquisition mode of the detector. Any of these values: * ``gated`` * ``triggered`` * ``summed`` * ``event`` * ``histogrammed`` .. index:: angular_calibration_applied (data field) **angular_calibration_applied**: :ref:`NX_BOOLEAN ` True when the angular calibration has been applied in the electronics, false otherwise. .. index:: angular_calibration (data field) **angular_calibration[i, j]**: :ref:`NX_FLOAT ` Angular calibration data. .. index:: flatfield_applied (data field) **flatfield_applied**: :ref:`NX_BOOLEAN ` True when the flat field correction has been applied in the electronics, false otherwise. .. index:: flatfield (data field) **flatfield[i, j]**: :ref:`NX_FLOAT ` Flat field correction data. .. index:: flatfield_error (data field) **flatfield_error[i, j]**: :ref:`NX_FLOAT ` Errors of the flat field correction data. .. index:: pixel_mask_applied (data field) **pixel_mask_applied**: :ref:`NX_BOOLEAN ` True when the pixel mask correction has been applied in the electronics, false otherwise. .. index:: pixel_mask (data field) **pixel_mask[i, j]**: :ref:`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: .. can't make a table here, a bullet list will have to do for now * 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 set as well of course). .. index:: countrate_correction__applied (data field) **countrate_correction__applied**: :ref:`NX_BOOLEAN ` True when a count-rate correction has already been applied in the electronics, false otherwise. .. index:: bit_depth_readout (data field) **bit_depth_readout**: :ref:`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, ... .. index:: detector_readout_time (data field) **detector_readout_time**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_TIME `} Time it takes to read the detector (typically milliseconds). This is important to know for time resolved experiments. .. index:: trigger_delay_time (data field) **trigger_delay_time**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_TIME `} Time it takes to start exposure after a trigger signal has been received. This is important to know for time resolved experiments. .. index:: trigger_dead_time (data field) **trigger_dead_time**: :ref:`NX_FLOAT ` {units=\ :ref:`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. .. index:: frame_time (data field) **frame_time[NP]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_TIME `} This is time for each frame. This is exposure_time + readout time. .. index:: gain_setting (data field) **gain_setting**: :ref:`NX_CHAR ` The gain setting of the detector. This influences background etc. Any of these values: ``high`` | ``standard`` | ``fast`` | ``auto`` .. index:: saturation_value (data field) **saturation_value**: :ref:`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. .. index:: number_of_cycles (data field) **number_of_cycles**: :ref:`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. .. index:: sensor_material (data field) **sensor_material**: :ref:`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. .. index:: sensor_thickness (data field) **sensor_thickness**: :ref:`NX_FLOAT ` {units=\ :ref:`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. .. index:: threshold_energy (data field) **threshold_energy**: :ref:`NX_FLOAT ` {units=\ :ref:`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)**: :ref:`NXgeometry` Position and orientation of detector **efficiency**: :ref:`NXdata` Spectral efficiency of detector with respect to e.g. wavelength .. index:: efficiency (data field) **efficiency[i, j, k]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_DIMENSIONLESS `} efficiency of the detector .. index:: wavelength (data field) **wavelength[i, j, k]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_WAVELENGTH `} TODO: need documentation .. index:: start_time (data field) **start_time[np]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_TIME `} start time for each frame, with the ``start`` attribute as absolute reference .. index:: start (attribute) **@start**: :ref:`NX_DATE_TIME ` .. index:: stop_time (data field) **stop_time[np]**: :ref:`NX_FLOAT ` {units=\ :ref:`NX_TIME `} stop time for each frame, with the ``start`` attribute as absolute reference .. index:: start (attribute) **@start**: :ref:`NX_DATE_TIME ` .. index:: real_time (data field) **real_time[i, j, k]**: :ref:`NX_NUMBER ` {units=\ :ref:`NX_TIME `} real-time of the exposure (use this if exposure time varies for each array element, otherwise use ``count_time`` field) **calibration_method**: :ref:`NXnote` summary of conversion of array data to pixels (e.g. polynomial approximations) and location of details of the calibrations **data_file**: :ref:`NXnote` **(characterization)**: :ref:`NXcharacterization` deprecated, use NXcollection instead for more details, see https://github.com/nexusformat/definitions/issues/177 **(collection)**: :ref:`NXcollection` Use this group to provide other data related to this NXdetector group. **(detector_module)**: :ref:`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. **Source**: Automatically generated from https://github.com/nexusformat/definitions/blob/master/base_classes/NXdetector.nxdl.xml