Using the Same Channel in Multiple Measurements
Learn how our API lets multiple measurements share the same channel simultaneously, and how to use SynchronizedMeasurements to compare them on identical data.
Our API allows multiple measurement objects to access the same time-tag stream simultaneously. Each measurement runs in its own thread, independently subscribing to the same event information. This is a unique feature of our API: unlike conventional timing electronics, which analyze timestamps directly on hardware and cannot reuse channels, our software-based design lets any number of measurements share the same channel with high flexibility. The number of measurements you can create is limited only by your CPU’s performance (clock speed, cores) and available memory; naturally, the required processing power also depends on the event rate on the physical channels.
Comparing Simultaneous Measurements with SynchronizedMeasurements
Because each measurement independently starts consuming the tag stream from the moment it is created, two measurements on the same channel are not automatically guaranteed to process the exact same subset of time tags. If you want to directly compare different measurement classes on identical data, use TimeTagger.SynchronizedMeasurements: create your measurements using the proxy tagger object returned by synchronized.getTagger() instead of your regular Time Tagger instance, then start them all together with synchronized.startFor(…), so every child measurement processes the same set of time tags.
The example script C_synchronized_measurements_histogramming.py, included with your Time Tagger software
installation under examples/python/1-Quickstart/1-basic_software_control/, demonstrates exactly this: it runs
Correlation, Histogram, StartStop, and HistogramLogBins simultaneously on the same two channels,
synchronized so their results are directly comparable.