Software Overview

At the heart of the Time Tagger software is a multi-threaded processing engine that receives the time tag stream and feeds it to all running measurements. The measurements and the virtual channels are parallel processing units that analyze the time tag stream each in their own way. For example, a count rate measurement analyzes all time tags from one or more specific channels and calculates the average number of tags received per second. A cross-correlation measurement compute the cross-correlation between two channels, typically by sorting the time tags in histograms, and so on. Such a powerful architecture enables you to perform any thinkable digital time domain measurement in real time. You have several choices on how to use this architecture.

Graphical User Interfaces

The easiest way of using the Time Tagger is one of the graphical user interfaces, either Time Tagger Lab (only on Windows OS) or the Web Application. They allow you to interact with the hardware on your computer or a tablet. You can create measurements, get live plots, and save and load the acquired data.

Precompiled libraries and high-level language bindings

We have implemented a set of commonly useful measurements including count rates, auto-correlation, cross-correlation, fluorescence lifetime imaging (FLIM), etc. For most users, these measurements will cover all needs. These measurements are included in the C++ API and provided as precompiled library files. To make using the Time Tagger even easier, we have equipped these libraries with bindings to higher-level languages (Python, Matlab, LabVIEW, .NET) so that you can directly use the Time Tagger from these languages. With this API you can easily start a complex measurement from a higher-level language with only two lines of code. To use one of these APIs, you have to write the code in the high-level language of your choice. Refer to the chapters Getting Started and Application Programming Interface if you plan to use the Time Tagger in this way.


The underlying software architecture is provided by a C++ API that implements two classes: one class that represents the Time Tagger and one class that represents a base measurement. On top of that, the C++ API also provides all predefined measurements that are made available by the web application and high-level language bindings. To use this API, you have to write and compile a C++ program.