SoftwareTrigger

Name

SoftwareTrigger -- Classify event for EventFilter.

Synopsis

SoftwareTrigger [options...]

DESCRIPTION

SoftwareTrigger classifies events using a library containing classification code that you write. See the chapter Software Triggering for information about how to write classification code.

SoftwareTrigger adds a uint32_t classification to each physics event body header. EventFilter can use this information to accept or reject events for future processing.

OPTIONS

--source=URI

Provides the URI that identifies the data source. This URI can be either a file or a tcp protocol URI. tcp data sources can get data from remotely defined rings.

--sink=URI

Provides the URI that identifies the data sink. tcp or file URIs can be used howevber tcp URIs must resolve to the local system as NSCLDAQ requires providers for ring buffers to be local.

--workers=n

Specifies the number of classification threads that will be run in parallel. Each classification thread will have its own instance of a classifier.

--sort-window=ticks

This option is obsolete and will not affect processing.

--clump-size=n

Sets the work item clump size. Each work item sent to classification threads consists of a clump of ring items. The value of this option determines how many ring items will be stuffed into a work item clump.

--parallel-strategy=strategy

In the future this will determine how the application is parallelized. At present only threaded parallelism is supported, which means that all threads run on the same processor using ZMQ internal proccess message passing.

We hope that in the future e.g. MPI will be supported to allow the application to parallelize across a network distributed cluster.

--classifier=path

Provides the path to the shared library that contains the classification code as well as the factory function that produces instances of the classification object.

See the Software Triggering chapter or the 3parallel man page for CRingMarkingWorker for more about how to write the classification code.