-
Notifications
You must be signed in to change notification settings - Fork 2
DAE PVs
The DAE IOC serves spectra information (data collected in the Data Acquisition Electronics hardware) via the following PV format
$(P)DAE:SPEC:$(PERIOD):$(SPEC):X
$(P)DAE:SPEC:$(PERIOD):$(SPEC):Y
$(P)DAE:SPEC:$(PERIOD):$(SPEC):YC
$(P)DAE:SPEC:$(PERIOD):$(SPEC):C
Where SPEC is the spectrum number, PERIOD the period, X is the time-of-flight axis values, Y is the counts / microsecond (i.e. divided by histogram time bin width), YC is just counts in each bin (i.e. not divided by time), and C is total counts for that spectrum (summed over all time-of-flight bins). So X, Y and YC are arrays and C is a single number. X represents time bin centres, if there are N
histogram time bins there will be N
values in Y
, YC
and X
. The size of the waveform array can be determined from the .NORD
PV field e.g. X.NORD
(note: the NeXus raw data file stores bin boundaries rather than centres, so the time_of_flight axis (equivalent to X) will be size N+1
rather than N
in the data file. Mantid will handle this transparently for you when it loads the file).
A spectrum number exists for every detector (pixel) and monitor. In addition the scientist can associate a "monitor number" (starting at 1 and increasing sequentially) with each spectrum number that is associated with a monitor. The monitor data can then be accessed via additional PVs that have the same general format as above but used the prefix $(P)DAE:MON:$(PERIOD):$(MON_NUM)
. So for example if monitor number 1 is spectrum number 1234 then the counts per unit time can be accessed as either $(P)DAE:SPEC:$(PERIOD):1234:Y
or $(P)DAE:MON:$(PERIOD):1:Y
. There are no corresponding :DET:
names for detectors, they are always accessed as :SPEC:
. The :MON:
mechanism is a convenient alias for monitors, but provides no additional information to using :SPEC:
. The underlying spectrum number for a monitor can be obtained via $(P)DAE:MON:$(PERIOD):1:S
. Some instruments can change their detector setup between experiments and depending on how they have assigned spectrum numbers this may result in a different :SPEC:
being needed for each monitor than previously. So using :MON:
syntax to access monitors is usually safer.
For most instruments $(PERIOD)
will always be 1
, however some instruments scan their devices and detector/monitor data at each scan point can be accessed via using different values of $(PERIOD)
. SANS, reflectometry and muon instruments regularly use multiple periods, most other instruments only occasionally if at all. If the instrument is currently running in period mode then the PV $(P)DAE:NUMPERIODS
will have a value greater than 1
and $(PERIOD)
can then have values from 1
to NUMPERIODS
representing the NUMPERIODS
scan points.
Monitors and detectors are stored separately in the NeXus raw data (.nxs) file and when this is read into Mantid a separate workspace is created for each. If periods have been used, then a "workspace group" is created. Workspace indexes always start at 0, the actual spectrum/monitor number will be stored in one of the workspace axes. As monitor numbers always start at 1 and increase numerically, index 0 of the monitor workspace will always be monitor number 1 etc. The same does not apply to the detector workspace i.e. index 0 there is not guaranteed to be spectrum 1 as if spectrum 1 is a monitor it will not be present in that workspace.