9 #ifndef LARDATAALG_DETECTORINFO_DETECTORTIMINGTYPES_H 10 #define LARDATAALG_DETECTORINFO_DETECTORTIMINGTYPES_H 88 template <
typename Cat>
99 template <
typename Cat,
typename =
void>
102 template <
typename Cat>
104 {
using type =
typename Cat::category_t; };
106 template <
typename Cat>
110 template <
typename Cat,
typename TimeUnit = util::quantities::microsecond>
125 = decltype(1.0 / std::declval<typename time_interval_t::quantity_t>());
147 template <
typename OC>
148 static constexpr
bool same_category_as
149 = std::is_same_v<category_of<OC>, category_t>;
152 template <
typename OC>
153 static constexpr
bool category_compatible_with
154 = same_category_as<category_of<OC>>;
289 <SimulationTimeCategory, util::quantities::nanosecond>
458 template <
typename T>
462 template <
typename T>
482 template <
typename T,
typename =
void>
486 template <
typename Q>
488 std::is_same_v<typename Q::baseunit_t, util::quantities::units::Tick>
497 template <
typename,
typename =
void>
501 template <
typename WC>
503 <WC, std::enable_if_t
504 <util::quantities::concepts::is_interval_or_point_v<WC>>
518 template <
typename Cat>
523 template <
typename T>
535 #endif // LARDATAALG_DETECTORINFO_DETECTORTIMINGTYPES_H
timescale_traits< TriggerTimeCategory >::tick_d_t trigger_tick_d
A point on the trigger time scale expressed in its ticks (real).
Dimensioned variables representing frequency quantities.
timescale_traits< ElectronicsTimeCategory >::tick_t electronics_tick
A point on the electronics time scale expressed in its ticks.
microseconds_as<> microseconds
Type of time interval stored in microseconds, in double precision.
decltype(1.0/std::declval< typename time_interval_t::quantity_t >()) frequency_t
Type of frequency for this time scale.
timescale_traits< TriggerTimeCategory >::tick_t trigger_tick
A point on the trigger time scale expressed in its ticks.
Category for electronics time scale.
util::quantities::intervals::microseconds time_interval
A collection of traits for a time scale.
timescale_traits< TriggerTimeCategory >::tick_interval_d_t trigger_time_ticks_d
An interval on the trigger time scale expressed in its ticks (real).
Category for electronics time scale.
timescale_traits< OpticalTimeCategory >::tick_interval_d_t optical_time_ticks_d
timescale_traits< OpticalTimeCategory >::tick_interval_t optical_time_ticks
timescale_traits< TPCelectronicsTimeCategory >::tick_d_t TPCelectronics_tick_d
A point on the TPC electronics time scale expressed in its ticks (real).
tick_as< double > tick_d
Tick number, represented by double.
timescale_traits< TriggerTimeCategory >::time_point_t trigger_time
A point in time on the trigger time scale.
timescale_traits< TriggerTimeCategory >::tick_interval_t trigger_time_ticks
An interval on the trigger time scale expressed in its ticks.
timescale_traits< ElectronicsTimeCategory >::tick_interval_t electronics_time_ticks
An interval on the electronics time scale expressed in its ticks.
timescale_traits< ElectronicsTimeCategory >::tick_interval_d_t electronics_time_ticks_d
An interval on the electronics time scale expressed in its ticks (real).
timescale_traits< SimulationTimeCategory >::time_point_t simulation_time
A point in time on the simulation time scale.
timescale_traits< TPCelectronicsTimeCategory >::tick_interval_t TPCelectronics_time_ticks
An interval on the TPC electronics time scale expressed in its ticks.
static std::string name()
constexpr bool is_tick_v
Whether the specified time T is tick-based.
Evaluates to whether the specified time T is tick-based.
tick_as<> tick
Tick number, represented by std::ptrdiff_t.
timescale_traits< OpticalTimeCategory >::time_point_t optical_time
A point in time on the optical detector electronics time scale.
timescale_traits< ElectronicsTimeCategory >::tick_d_t electronics_tick_d
A point on the electronics time scale expressed in its ticks (real).
An interval (duration, length, distance) between two quantity points.
Category for trigger time scale.
A template traits for time scale of category Cat.
timescale_traits< TPCelectronicsTimeCategory >::tick_interval_d_t TPCelectronics_time_ticks_d
Category for electronics time scale.
Category for TPC electronics time scale.
Dimensioned variables related to electronics.
static std::string name()
static std::string name()
timescale_traits< OpticalTimeCategory >::tick_t optical_tick
static std::string name()
static std::string name()
An non-mandatory base class for interval and point categories.
Dimensioned variables representing space or time quantities.
typename category_of_t< Cat >::type category_of
timescale_traits< OpticalTimeCategory >::tick_d_t optical_tick_d
timescale_traits< TPCelectronicsTimeCategory >::time_point_t TPCelectronics_time
A point in time on the TPC electronics time scale.
Namespace including different time scales as defined in LArSoft.
timescale_traits< TPCelectronicsTimeCategory >::tick_t TPCelectronics_tick
A point on the TPC electronics time scale expressed in its ticks.
timescale_traits< ElectronicsTimeCategory >::time_point_t electronics_time
A point in time on the electronics time scale.
static std::string name()
Name of this time scale.