class Slice2 : public DMTBase, TrigClient

Look for duplicated data
Slice2 searches specified channels for repeated fixed-length data sequences. This detects DAQ errors resulting in a DAQ slice not being replaced by new data.

Repeated slices are identified by comparing each data slice to all previous slices up to a specified maximum offset. By default the slice length is 62.5ms and the maximum offset is 250ms. These parameters may be respecified on a channel-by-channel basis within the configuration file. A slice error is flagged if more than a specified minimum number of channels is found to have a repeated slice. The minimum channel count is set with the nskip argument on the command line and defaults to 2.

The following trigger types are generated by Slice2:

Name Sub-type mask Meaning
FrameTimeError TimeIsZero 0x40 Frame time-stamp is zero.
FrameTimeError MisAligned 0x20 Frame time-stamp is not on a 1-second boundary.
FrameTimeError Not_1_second 0x10 Frame is not 1 second long.
ChannelReadOutError <channel> 0x08 Error flagged in FrAdcData.
TimeSkewError <channel> 0x04 Invalid Adc time offset (0<t<1s)
TimeIntervalError <channel> 0x02 Data series duration > frame length.
TimeSliceError MultiChannel 0x01 Candidate misplaced time slice.

The Slice2 Configuration File

The Slice2 configuration file specifies the channels to be monitored and parameters affecting which slices are compared and the generation of triggers for each channel. Each line of the configuration file specifies the parameters for a single channel and contains the following fields:

<channel-name> <slice-time> <max-offset>

The meaning of each field is as follows:

<channel-name> Name of the channel to be monitored.
<slice-time> Time slice length [0.0625].
<max-offset> Maximum offset time [0.25].

Running Slice2

The syntax of the Slice2 command is as follows:

Slice2 [-partition <pname>] [-infile <file>] [cfile <config>] \
       [+trig[:<mask>]] [nskip <skip-min>] [-debug <dbg-level>] 

Where the arguments have the following meaning:

<pname> Shared memory partition name with data to be read
<file> Input frame file (exclusive of <part-name>)
<dbg-level> Debug level
<config> Configuration file name.
+trig[:<mask>] enables trigger generation with mask <mask>.
<skip-min> Minimum channels to define a slice error [2].

The partition name is mutually exclusive with the input frame file name. If both are specified, data are read from the specified shared memory partition. The debug level defaults to 0 (no debug messages). Any other value for <dbg-level> will cause debugging messages to be printed to cout/cerr.

Modifying the online configuration
The Slice2 configuration file can be modified while Slice2 is running. This is accomplished by editing the current Slice2 configuration file, usually ~ops/pars/Slice2.conf. Once the file has been modified, Slice2 can be made to read in the new configuration by signaling the running process with SIGUSR1. When the signal is caught by the process, Slice2 will write out the status files with whatever statistics have already been collected, read the configuration file and restart processing. The SIGUSR1 signal is delivered with the following command:

pkill -USR1 Slice2

Slice2 Reports and Other Output

Status Reports

Slice2 produces a status report every 5 minutes. The report is written in the html output directory if DMTHTMLOUT is defined, otherwise in the current working directory. The report file name is The report file contains a list of global statistics followed by a section containing statistics for each channel. The global statistics contain the following information:

Slice time Time slice used by this program
Maximum time shift Maximum time shift detected by this monitor.
Total frames read Total number of frames read
Total triggers Number of triggers generated since the last (re)start of Slice2.
Total rate Trigger rate since the last (re)start of Slice2
Triggers in last 300s Number of triggers generated in the last 300s
Rate in last 300s Generated trigger rate in the last 300s.
Trigger multiplicity Number of channels that must have a slice error for a trigger to be generated
Sum singles rate Sum of singles rates in all channels
Uncorrelated doubles Expected number of double coincidences (random triggers) assuming that the channel slice errors are uncorrelated.

J. Zweizig
3.1; Modified April 5, 2006

alphabetic index hierarchy of classes

generated by doc++