libtcspc C++ API
Streaming TCSPC and time tag data processing
Loading...
Searching...
No Matches
tcspc::basic_pqt2_event< OverflowPeriod, IsOverflowAlwaysSingle > Struct Template Reference

Description

template<i32 OverflowPeriod, bool IsOverflowAlwaysSingle>
struct tcspc::basic_pqt2_event< OverflowPeriod, IsOverflowAlwaysSingle >

Implementation for binary record interpretation for HydraHarp, MultiHarp, TimeHarp 260, and PicoHarp 330 T2 format.

This class is documented to show the available member functions. User code should use tcspc::pqt2_hydraharpv1_event or tcspc::pqt2_generic_event.

Template Parameters
OverflowPeriodthe time tag overflow period
IsOverflowAlwaysSingleif true, time tag overflow records always indicate a single overflow

Public Member Functions

constexpr auto channel () const noexcept -> u8np
 Read the channel if this event is a non-special event.
constexpr auto external_marker_bits () const noexcept -> u8np
 Read the marker bits (mask) if this event represents external markers.
constexpr auto external_marker_timetag () const noexcept -> u32np
 Read the time tag if this event is an external marker event.
constexpr auto is_external_marker () const noexcept -> bool
 Determine if this event represents external markers.
constexpr auto is_special () const noexcept -> bool
 Determine if this event is a special event.
constexpr auto is_sync_event () const noexcept -> bool
 Determine if this event represents a sync event.
constexpr auto is_timetag_overflow () const noexcept -> bool
 Determine if this event represents a time tag overflow.
constexpr auto timetag () const noexcept -> u32np
 Read the time tag if this event is a non-special event.
constexpr auto timetag_overflow_count () const noexcept -> u32np
 Read the time tag overflow count if this event represents a time tag overflow.

Static Public Member Functions

static constexpr auto make_external_marker (u32np timetag, u8np marker_bits) -> basic_pqt2_event
 Make an event representing an external marker.
static constexpr auto make_nonspecial (u32np timetag, u8np channel) -> basic_pqt2_event
 Make an event representing a non-special (photon) event.
static constexpr auto make_sync (u32np timetag) noexcept -> basic_pqt2_event
 Make an event representing a sync event.
static constexpr auto make_timetag_overflow () noexcept -> basic_pqt2_event
 Make an event representing a single time tag overflow.
static constexpr auto make_timetag_overflow (u32np count) -> basic_pqt2_event
 Make an event representing a time tag overflow.

Public Attributes

std::array< std::byte, 4 > bytes
 Bytes of the 32-bit raw device event.

Static Public Attributes

static constexpr i32 overflow_period = OverflowPeriod
 The time tag overflow period of this event type.

Friends

auto operator<< (std::ostream &stream, basic_pqt2_event const &event) -> std::ostream &
 Stream insertion operator.
auto operator== (basic_pqt2_event const &lhs, basic_pqt2_event const &rhs) noexcept -> bool=default
 Equality comparison operator.

Member Function Documentation

◆ make_external_marker()

template<i32 OverflowPeriod, bool IsOverflowAlwaysSingle>
constexpr auto tcspc::basic_pqt2_event< OverflowPeriod, IsOverflowAlwaysSingle >::make_external_marker ( u32np timetag,
u8np marker_bits ) -> basic_pqt2_event
inlinestaticconstexpr

Make an event representing an external marker.

Parameters
timetagthe time tag; 0 to 33,554,431
marker_bitsthe marker bitmask; 1 to 15 (0 is forbidden)
Returns
event

◆ make_nonspecial()

template<i32 OverflowPeriod, bool IsOverflowAlwaysSingle>
constexpr auto tcspc::basic_pqt2_event< OverflowPeriod, IsOverflowAlwaysSingle >::make_nonspecial ( u32np timetag,
u8np channel ) -> basic_pqt2_event
inlinestaticconstexpr

Make an event representing a non-special (photon) event.

Parameters
timetagthe time tag; 0 to 33,554,431
channelthe channel; 0 to 63
Returns
event

◆ make_sync()

template<i32 OverflowPeriod, bool IsOverflowAlwaysSingle>
constexpr auto tcspc::basic_pqt2_event< OverflowPeriod, IsOverflowAlwaysSingle >::make_sync ( u32np timetag) -> basic_pqt2_event
inlinestaticconstexprnoexcept

Make an event representing a sync event.

Parameters
timetagthe time tag; 0 to 33,554,431
Returns
event

◆ make_timetag_overflow() [1/2]

template<i32 OverflowPeriod, bool IsOverflowAlwaysSingle>
constexpr auto tcspc::basic_pqt2_event< OverflowPeriod, IsOverflowAlwaysSingle >::make_timetag_overflow ( ) -> basic_pqt2_event
inlinestaticconstexprnoexcept

Make an event representing a single time tag overflow.

Returns
event

◆ make_timetag_overflow() [2/2]

template<i32 OverflowPeriod, bool IsOverflowAlwaysSingle>
constexpr auto tcspc::basic_pqt2_event< OverflowPeriod, IsOverflowAlwaysSingle >::make_timetag_overflow ( u32np count) -> basic_pqt2_event
inlinestaticconstexpr

Make an event representing a time tag overflow.

This overload is only available in tcspc::pqt2_generic_event.

Parameters
countnumber of overflows; 1 to 33,554,431 (0 is allowed but may not be handled correctly by other readers)
Returns
event

Member Data Documentation

◆ overflow_period

template<i32 OverflowPeriod, bool IsOverflowAlwaysSingle>
i32 tcspc::basic_pqt2_event< OverflowPeriod, IsOverflowAlwaysSingle >::overflow_period = OverflowPeriod
staticconstexpr

The time tag overflow period of this event type.

Note that this may not equal one plus the maximum representable value of the time tag field.


The documentation for this struct was generated from the following file: