Raw Time-Tag-Stream access
There are several ways to access the raw time tags with the Time Tagger API. They can be split into two categories: dumping together with post-processing and on-the-fly processing. Both ways will be explained in the following. They are not exclusive so that you can combine them, also, with other measurements from our API in parallel.
Dumping and post-processing
All incoming time tags or selected channels of the Time Tagger can be stored on the hard drive via the FileWriter
.
Please visit the documentation and the provided programming examples of FileWriter
for further details.
There are two ways for post-processing the dumped data:
File Reader
By reading in the stored time tags with the FileReader
, the tags stored can be processed natively in your preferred programming language.
You find examples of how to use the FileReader
in your examples folder.
Virtual Time Tagger
The second option to process stored time tags is the Time Tagger Virtual. The Time Tagger Virtual allows you to use the full Time Tagger API to post-process your data. You find examples of how to use the Time Tagger Virtual in your examples folder.
On-the-fly processing
There are two options to process raw incoming data, the TimeTagStream
and the CustomMeasurement
, which will be explained in the following:
CustomMeasurement - low-level, higher performance
The CustomMeasurement
functionality allows you to access the raw time tag stream with very little overhead.
By inheriting from CustomMeasurement
, you can implement your fully customized measurement class. The CustomMeasurement.process()
method of this class
will be invoked as soon as new data is available.
Note that this functionality is only available for C++, C#, and Python.
You find examples of how to use the CustomMeasurement
in your examples folder.
CustomVirtualChannel - modify the time tag stream - C++ only
It is now possible for you to modify the time tag stream, like our API does by inserting time tags, e.g., via Coincidence
or
DelayedChannel
. If you want to use this functionality, please contact Swabian Instruments support.
IteratorBase - C++ only
All measurements and virtual channels are derived from the IteratorBase
class.
You can see how to access the time tag stream on the deepest level with the provided C++ examples.