- Refactored histogram memory code a little
- motor driver for ECB now fully working - Fixed an anticollider bug - Untested version of a driver for the Risoe TDC histogram memory
This commit is contained in:
33
histogram.w
33
histogram.w
@ -17,6 +17,7 @@ histograms. Let's discuss these different modes first.
|
||||
eSANSTOF
|
||||
} HistMode;
|
||||
@}
|
||||
These modes are specific to the SINQ histogram memory.
|
||||
A histogram memory can be operated in transparent mode. It has not yet been
|
||||
defined what this means but it is sort of storing raw data from the detector
|
||||
without any summing or processing. Normal mode is better defined, this is
|
||||
@ -73,6 +74,11 @@ command. Then on initialisation first the logical histogram memory
|
||||
evaluates the general options and then the driver in its Config
|
||||
function evaluates the driver specific options.
|
||||
|
||||
The histogram memory supports several dimensions, a time binning
|
||||
option and optional buffering of histogram memory data read from the
|
||||
actual HM. All this data management stuff is handled in a separate
|
||||
class, HMdata. See the documentation for HMdata for more details.
|
||||
|
||||
|
||||
\subsubsection{The Histogram memory driver}
|
||||
Adhering to the Sics paradigm of dividing any device into a logical device
|
||||
@ -82,16 +88,7 @@ definition:
|
||||
|
||||
@d HistType @{
|
||||
typedef struct __HistDriver {
|
||||
/* configuration data */
|
||||
HistMode eHistMode;
|
||||
OverFlowMode eFlow;
|
||||
int iRank;
|
||||
int iDims[MAXDIM];
|
||||
int nDim;
|
||||
int iLength;
|
||||
int iBinWidth;
|
||||
float fTime[MAXCHAN];
|
||||
int iTimeChan;
|
||||
pHMdata data;
|
||||
/* counting operations data */
|
||||
CounterMode eCount;
|
||||
float fCountPreset;
|
||||
@ -145,15 +142,6 @@ definition:
|
||||
@}
|
||||
|
||||
Quite a lot, but a histogram memory is quite a complex piece of equipment.
|
||||
The configuration information is in the elements EhistMode, eOverFlowMode,
|
||||
iRank, iDims and iBinWidth fields. iDim and nDim desribe the logical
|
||||
dimensions of the histogram memory. These may be different from the
|
||||
dimensions used for data transfer. For instance the SANS detector is
|
||||
handled internally as 1600+ numbers where it really is a filed o
|
||||
128*128.
|
||||
Additionally there is an array of
|
||||
floating point values which denote the time binning for time-o-flight
|
||||
operation or the stroboscopic binning axis in stroboscopic mode.
|
||||
|
||||
The fields fPreset and CounterMode hold the counting parameter data.
|
||||
|
||||
@ -269,11 +257,6 @@ histogram memory object is fairly simple:
|
||||
pICountable pCountInt;
|
||||
pICallBack pCall;
|
||||
pStringDict pOption;
|
||||
HistInt *iLocalData;
|
||||
int iLocalLength;
|
||||
int iLocalUpdate;
|
||||
time_t tLocal;
|
||||
int iUpdateIntervall;
|
||||
} HistMem;
|
||||
@}
|
||||
According to the general Sics object interface the first field is the object
|
||||
@ -485,7 +468,7 @@ following.
|
||||
----------------------------------------------------------------------------*/
|
||||
#ifndef SICSHISTDRIV
|
||||
#define SICSHISTDRIV
|
||||
#define MAXCHAN 16834
|
||||
#include "hmdata.h"
|
||||
|
||||
@< HistType@>
|
||||
@< HistDrivProt @>
|
||||
|
Reference in New Issue
Block a user