Belle II Software  release-05-02-19
EForwardBackward.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 <cstdlib> // for abs
13 #include <climits>
14 
15 namespace Belle2 {
21  namespace TrackFindingCDC {
22 
24  namespace NForwardBackward {
25 
27  enum EForwardBackward : signed short {
28 
30  c_Forward = 1,
31 
33  c_Unknown = 0,
34 
36  c_Backward = -1,
37 
39  c_Invalid = SHRT_MIN,
40  };
41 
43  inline EForwardBackward reversed(EForwardBackward eForwardBackward)
44  { return EForwardBackward(-eForwardBackward); }
45 
47  inline bool isValid(EForwardBackward eForwardBackward)
48  { return std::abs(eForwardBackward) <= 1; }
49  }
50 
52  using EForwardBackward = NForwardBackward::EForwardBackward;
53 
54  }
56 }
Belle2::TrackFindingCDC::NForwardBackward::c_Forward
@ c_Forward
Constant for a situation where something is more forward.
Definition: EForwardBackward.h:38
Belle2::TrackFindingCDC::NForwardBackward::isValid
bool isValid(EForwardBackward eForwardBackward)
Check whether the given enum instance is one of the valid values.
Definition: EForwardBackward.h:55
Belle2::TrackFindingCDC::NForwardBackward::c_Invalid
@ c_Invalid
Constant for an invalid information.
Definition: EForwardBackward.h:47
Belle2::TrackFindingCDC::NForwardBackward::EForwardBackward
EForwardBackward
Enumeration to represent the distinct possibilities of the right left passage information.
Definition: EForwardBackward.h:35
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::NForwardBackward::c_Backward
@ c_Backward
Constant for a situation where something is more backward.
Definition: EForwardBackward.h:44
Belle2::TrackFindingCDC::NForwardBackward::c_Unknown
@ c_Unknown
Constant for an not yet determined forward or backward arrangement.
Definition: EForwardBackward.h:41
Belle2::TrackFindingCDC::NForwardBackward::reversed
EForwardBackward reversed(EForwardBackward eForwardBackward)
Return the reversed forward backward indicator. Leaves EForwardBackward::c_Invalid the same.
Definition: EForwardBackward.h:51