9 #ifndef LARDATAALG_DETECTORINFO_DETECTORTIMINGTYPES_H 
   10 #define LARDATAALG_DETECTORINFO_DETECTORTIMINGTYPES_H 
   19 namespace detinfo::timescales {
 
   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>
 
  152       template <
typename OC>
 
  154         = same_category_as<category_of<OC>>;
 
  165     static std::string 
name() { 
return { 
"electronics time" }; }
 
  188     static std::string 
name() { 
return { 
"TPC electronics time" }; }
 
  214     static std::string 
name() { 
return { 
"optical electronics time" }; }
 
  244     static std::string 
name() { 
return { 
"hardware trigger time" }; }
 
  270     static std::string 
name() { 
return { 
"simulation time" }; }
 
  289       <SimulationTimeCategory, util::quantities::nanosecond>
 
  458   template <
typename T>
 
  462   template <
typename T>
 
  476 namespace detinfo::timescales {
 
  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>
 
  504         <util::quantities::concepts::is_interval_or_point_v<WC>>
 
  518   template <
typename Cat>
 
  523   template <
typename T>
 
  524   struct is_tick_type: details::is_tick_type_impl<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). 
 
double std(const std::vector< short > &wf, const double ped_mean, size_t start, size_t nsample)
 
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. 
 
static constexpr bool category_compatible_with
Returns whether the category OC is compatible with this one. 
 
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. 
 
typename std::enable_if< B, T >::type enable_if_t
 
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 make_void< Ts...>::type void_t
 
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. 
 
Cat category_t
The category this time scale belongs to. 
 
static constexpr bool same_category_as
Returns whether the category OC is the same as this one. 
 
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.