Event types

Event classes describe, statically, the records that flow through a processing graph at run time.

Instances of these classes describe the event type; they are not themselves instances of the run-time events. An EventInstance, built via EventType.value(), is a concrete event value. Event values can be sent into a running graph with ExecutionContext.handle(), are the form in which graph output is delivered to a PySink, and can be inserted into a stream at compile time with Prepend and Append.

Constructing and inspecting individual event values from Python is intended for debugging and learning only and is extremely slow; production graphs process events in compiled C++ and exchange bulk data via buckets. The efficient production path across the Python/C++ boundary is bulk transfer through buckets: ConstBucketEvent pushes a NumPy array into a graph as input, BucketEvent delivers a bucket as a NumPy array out to a PySink, and bucket-carrying events (such as HistogramEvent) likewise deliver their carried bucket as a NumPy array at a sink.

Bulk data can also enter and leave a graph through non-event mechanisms that keep the transfer inside compiled code — for example the Acquire processor, which pulls data into buckets from an acquisition reader, and the binary stream processors ReadBinaryStream and WriteBinaryStream.

Some event types (those carrying timestamp and related data) are parameterized by the exact numeric types used. NumericTraits objects are used to specify these types.

Generic and core event types

Base, value, and container event types, and generic events used throughout the library.

libtcspc.EventType

Opaque marker for the type of events carried on a graph edge.

libtcspc.EventInstance

A concrete event value: an EventType plus its field values.

libtcspc.CustomEvent

A user-defined event type.

libtcspc.BucketEvent

Event carrying a contiguous array of elements of another event type.

libtcspc.ConstBucketEvent

Event carrying a read-only contiguous array of elements of another event type.

libtcspc.VariantEvent

Event holding one of several event types, as a variant (tagged union).

libtcspc.ArrayEventType

Event holding a fixed-size array of elements of another event type.

libtcspc.WarningEvent

Event indicating a non-fatal, recoverable issue detected by a processor.

Device event types

Event types representing the raw records produced by specific TCSPC hardware.

Becker & Hickl device event types

Raw event records from Becker & Hickl devices.

libtcspc.BHSPCEvent

Raw 32-bit FIFO record from Becker & Hickl SPC hardware.

libtcspc.BHSPC600_256chEvent

Raw 32-bit FIFO record from Becker & Hickl SPC-600/630 in 256-channel mode.

libtcspc.BHSPC600_4096chEvent

Raw 48-bit FIFO record from Becker & Hickl SPC-600/630 in 4096-channel mode.

PicoQuant device event types

Raw event records from PicoQuant devices.

libtcspc.PQT2PicoHarp300Event

Raw 32-bit FIFO record for PicoQuant PicoHarp 300 T2 format.

libtcspc.PQT2HydraHarpV1Event

Raw 32-bit FIFO record for PicoQuant HydraHarp V1 T2 format.

libtcspc.PQT2GenericEvent

Raw 32-bit FIFO record for PicoQuant T2 (Generic) format.

libtcspc.PQT3PicoHarp300Event

Raw 32-bit FIFO record for PicoQuant PicoHarp 300 T3 format.

libtcspc.PQT3HydraHarpV1Event

Raw 32-bit FIFO record for PicoQuant HydraHarp V1 T3 format.

libtcspc.PQT3GenericEvent

Raw 32-bit FIFO record for PicoQuant T3 (Generic) format.

Swabian device event types

Raw event records from Swabian Instruments devices.

libtcspc.SwabianTagEvent

Raw 16-byte tag record from a Swabian Time Tagger.

Time tag and TCSPC event types

Decoded time tag and TCSPC event types used throughout processing.

libtcspc.TimeReachedEvent

Keep-alive event indicating that the data source has reached a given time.

libtcspc.BulkCountsEvent

Event representing detection counts from a non-time-tagging counter.

libtcspc.DetectionEvent

Event representing a detected count without time correlation.

libtcspc.TimeCorrelatedDetectionEvent

The canonical TCSPC detection event.

libtcspc.MarkerEvent

Event representing a timing marker or external trigger.

libtcspc.DetectionPairEvent

Event representing a pair of detections (a start and a stop).

Lost data event types

Event types signaling lost or dropped data.

libtcspc.DataLostEvent

Event indicating that the data source detected a buffer overflow.

libtcspc.BeginLostIntervalEvent

Event marking the beginning of an interval in which counts were lost.

libtcspc.EndLostIntervalEvent

Event marking the end of an interval in which counts were lost.

libtcspc.LostCountsEvent

Event indicating a number of counts that could not be time-tagged.

Timing modeling event types

Event types describing modeled timing sequences.

libtcspc.PeriodicSequenceModelEvent

Event describing a fitted periodic sequence of timing events.

libtcspc.RealOneShotTimingEvent

Event describing a single (one-shot) delayed timing.

libtcspc.RealLinearTimingEvent

Event describing a linear (repeating) sequence of timings.

Binning event types

Event types used in datapoint and bin-increment processing.

libtcspc.DatapointEvent

Event representing a scalar datapoint mapped from another event.

libtcspc.BinIncrementEvent

Event representing a single increment of a histogram bin.

libtcspc.BinIncrementClusterEvent

Event carrying a cluster of histogram bin increments.

Histogram event types

Event types carrying histograms and histogram arrays.

libtcspc.HistogramEvent

Event carrying a snapshot of a histogram after a bin increment.

libtcspc.ConcludingHistogramEvent

Event carrying the final accumulated histogram of a round.

libtcspc.HistogramArrayEvent

Event carrying a histogram array at the end of a completed scan.

libtcspc.HistogramArrayProgressEvent

Event reporting progress while accumulating a histogram array.

libtcspc.ConcludingHistogramArrayEvent

Event carrying the final accumulated histogram array of a round.