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:
DDASReadout and ddasSort take advantage of pipeline parallelism to do the sorting in parallel with digitizer readout.
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.
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-levelIf 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
secondsDescribes 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.
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
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.