ddasReadout

Name

ddasReadout -- Run DDASReadout and an associated sorter.

Synopsis

$DAQBIN/ddasReadout option...

DESCRIPTION

As of NSCLDAQ 11.4-000, DDASReadout has been broken into a pair of programs, DDASReadout which just reads blocks of data from the XIA digitizer modules and ddasSort which accepts those data and sorts them by timestamp. This was done to maximize performance:

  1. DDASReadout and ddasSort take advantage of pipeline parallelism to do the sorting in parallel with digitizer readout.

  2. If necessary the ddasSort can be run on a different node than DDASReadout making more processing power available.

A driver, that looks to the ReadoutGUI like an SSHPipe data source Allows you to treat this pair of programs as if it were a single unified program.

The program is called ddasReadout (note the lower case ddas). This manpage describes this program.

Options

Note that some program options are mandatory. Those will be pointed out as they are documented. Note as well that options are prefixed with a single - rather than a double -

-port integer

This becomes the --port option on the DDASReadout command. If Tcl server functionality is needed, this is the port on which that server will be listening for connections. If not specified, this option is not provided to the DDASReadout program and that program has its Tcl server functionality disabled.

-readoutring ringname (required)

This option is required. It specifies the name of the ring buffer into which DDASReadout reads data in the host in which that program runs (see -readouthost). This is passed to the DDASReadout program as its --ring option

-cratedir path (required)

Each DDASReadout program must run with the current working directory set to a directory that contains its configuration files. This required option provides that directory. When DDASReadout is run, this will be its working directory.

-sourceid value

If present this value is relayed to DDASReadout as the value of its --sourceid option. This determines the sourceid used to tag ring items from the readout program. The ddasSort program will tag ring items with the same source id as that observed by the ring items it processes.

-init-script path

If provided this is passed to the DDASReadout program as its --init-script the value should be a path to a Tcl script that will be run as the readout program starts.

-log path

If provided, the value of this option will be passed to DDASREADOUT as its --log option. This specifies the path into which the readout program logs intersting information. If the file does not exist it is created. The path prefix must be a directory that's writable by the user.

-debug log-level

If provided, passes the debug level to the DDASReadout program. This is an integer in the range 0-2 inclusive and determines the sort of information written to the log file. The higher the number, the more verbose the logging.

-readouthost dns-name (required)

Determines which system the DDASReadout program will be run in. This must be a system that is connected to a DDAS crate and has its PLX drivers loaded.

-sortring ringname (required)

Provides the name of the ring into which ddasSort puts the sorted hit ring items. If the ringbuffer does no yet exist, it will be created. This is a ring name not a URI.

-sorthost name (required)

Provides the DNS name of the host in which the ddasSort will be run.

-window seconds

Describes ow old events must be before they are emitted (in seconds). The ddasSort program emits data from a sliding window. This parameter defaults to 10 seconds. If you change this value be sure to ensure the event builder sees no data late or out of order fragments from this data source.

Using the ddasReadout driver

ddasReadout is intended to be used as a data source in the ReadoutShell GUI. It does not actually matter much where the ddasReadout program is run as it will be running the actual readout and sort programs where you tell it to using its command line options.

Use the Data SourceAdd.. menu to specify the data source. ddasReadout is intended to be used as an SSHPipe data source. It will relay commands sent to it to the actual readout program. it will relay output and error messages to the its own stdout which is captured by the SSHPipe driver and relayed to a tab for the data source on the ReadoutShell's GUI.

When setting up the event builder be sure to point the data source at the ddasSort output ring. That's where the individual time-stamped hits will be placed. The DDDASReadout ring will get ring items that consist of blocks of unsorted hits.