Belle II Software  release-05-02-19
ContinuousValue.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #pragma once
11 
12 #include <array>
13 
14 namespace Belle2 {
19  namespace TrackFindingCDC {
20 
22  template<class T, class ATag = T>
23  class ContinuousValue {
24  public:
26  using This = ContinuousValue<T, ATag>;
27 
29  ContinuousValue() = default;
30 
32  explicit ContinuousValue(const T& value) : m_value(value) {};
33 
35  operator const T& () const {return m_value; }
36 
38  using Array = std::array<T, 2>;
39 
41  static
42  std::array<This, 2> getRange(const Array& bounds)
43  { return {{ This(bounds.front()), This(bounds.back()) }}; }
44 
45  private:
47  T m_value;
48  };
49 
50  }
52 }
Belle2::TrackFindingCDC::ContinuousValue::getRange
static std::array< This, 2 > getRange(const Array &bounds)
Extract the range from an array providing the discrete values.
Definition: ContinuousValue.h:50
Belle2::TrackFindingCDC::ContinuousValue::Array
std::array< T, 2 > Array
Mock array type to be a drop in replacement for the discrete values.
Definition: ContinuousValue.h:46
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::ContinuousValue::This
ContinuousValue< T, ATag > This
Shortcut for the class itself.
Definition: ContinuousValue.h:34
Belle2::TrackFindingCDC::ContinuousValue::m_value
T m_value
Memory for the underlying value.
Definition: ContinuousValue.h:55
Belle2::TrackFindingCDC::ContinuousValue::ContinuousValue
ContinuousValue()=default
Allow default construction.