LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit > Struct Template Reference

A template traits for time scale of category Cat. More...

#include "DetectorTimingTypes.h"

Public Types

using category_t = Cat
 The category this time scale belongs to. More...
 
using time_interval_t = time_interval
 Type of a time interval in this scale. More...
 
using time_point_t = util::quantities::concepts::Point< TimeUnit, category_t, time_interval_t >
 Type of a point on this time scale. More...
 
using frequency_t = decltype(1.0/std::declval< typename time_interval_t::quantity_t >())
 Type of frequency for this time scale. More...
 
using tick_interval_t = util::quantities::concepts::Interval< util::quantities::tick, category_t >
 An interval on this time scale expressed in its ticks (integral). More...
 
using tick_interval_d_t = util::quantities::concepts::Interval< util::quantities::tick_d, category_t >
 An interval on this time scale expressed in its ticks (real). More...
 
using tick_t = util::quantities::concepts::Point< util::quantities::tick, category_t, tick_interval_t >
 A point on this time scale expressed in its ticks. More...
 
using tick_d_t = util::quantities::concepts::Point< util::quantities::tick_d, category_t, tick_interval_d_t >
 A point on this time scale expressed in its ticks (real). More...
 

Static Public Member Functions

static std::string name ()
 Name of this time scale. More...
 

Static Public Attributes

template<typename OC >
static constexpr bool same_category_as = std::is_same_v<category_of<OC>, category_t>
 Returns whether the category OC is the same as this one. More...
 
template<typename OC >
static constexpr bool category_compatible_with = same_category_as<category_of<OC>>
 Returns whether the category OC is compatible with this one. More...
 

Detailed Description

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
struct detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >

A template traits for time scale of category Cat.

Definition at line 110 of file DetectorTimingTypes.h.

Member Typedef Documentation

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
using detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::category_t = Cat

The category this time scale belongs to.

Definition at line 113 of file DetectorTimingTypes.h.

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
using detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::frequency_t = decltype(1.0 / std::declval<typename time_interval_t::quantity_t>())

Type of frequency for this time scale.

Definition at line 122 of file DetectorTimingTypes.h.

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
using detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::tick_d_t = util::quantities::concepts::Point<util::quantities::tick_d, category_t, tick_interval_d_t>

A point on this time scale expressed in its ticks (real).

Definition at line 138 of file DetectorTimingTypes.h.

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
using detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::tick_interval_d_t = util::quantities::concepts::Interval<util::quantities::tick_d, category_t>

An interval on this time scale expressed in its ticks (real).

Definition at line 130 of file DetectorTimingTypes.h.

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
using detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::tick_interval_t = util::quantities::concepts::Interval<util::quantities::tick, category_t>

An interval on this time scale expressed in its ticks (integral).

Definition at line 126 of file DetectorTimingTypes.h.

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
using detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::tick_t = util::quantities::concepts::Point<util::quantities::tick, category_t, tick_interval_t>

A point on this time scale expressed in its ticks.

Definition at line 134 of file DetectorTimingTypes.h.

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
using detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::time_interval_t = time_interval

Type of a time interval in this scale.

Definition at line 116 of file DetectorTimingTypes.h.

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
using detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::time_point_t = util::quantities::concepts::Point<TimeUnit, category_t, time_interval_t>

Type of a point on this time scale.

Definition at line 119 of file DetectorTimingTypes.h.

Member Function Documentation

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
static std::string detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::name ( )
inlinestatic

Name of this time scale.

Definition at line 141 of file DetectorTimingTypes.h.

141 { return category_t::name(); }

Member Data Documentation

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
template<typename OC >
constexpr bool detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::category_compatible_with = same_category_as<category_of<OC>>
static

Returns whether the category OC is compatible with this one.

Definition at line 149 of file DetectorTimingTypes.h.

template<typename Cat, typename TimeUnit = util::quantities::microsecond>
template<typename OC >
constexpr bool detinfo::timescales::details::timescale_traits_base< Cat, TimeUnit >::same_category_as = std::is_same_v<category_of<OC>, category_t>
static

Returns whether the category OC is the same as this one.

Definition at line 145 of file DetectorTimingTypes.h.


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