Belle II Software  release-05-02-19
Angle.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 <cmath>
13 
14 namespace Belle2 {
19  namespace TrackFindingCDC {
20 
21 
26  struct AngleUtil {
27 
29  static double average(const double angle1, double angle2)
30  {
31  return normalised(angle1 + normalised(angle2 - angle1) / 2);
32  }
33 
35  static double normalised(const double angle)
36  {
37  if (angle > M_PI) return angle - 2 * M_PI;
38  if (angle < -M_PI) return angle + 2 * M_PI;
39  return angle;
40  }
41 
43  static void normalise(double& angle)
44  {
45  if (angle > M_PI) angle -= 2 * M_PI;
46  if (angle < -M_PI) angle += 2 * M_PI;
47  }
48 
50  static double fullNormalised(const double angle)
51  {
52  return std::remainder(angle, 2 * M_PI);
53  }
54 
56  static double reversed(const double angle)
57  {
58  return angle > 0 ? angle - M_PI : angle + M_PI;
59  }
60 
61  };
62 
63  }
65 }
Belle2::TrackFindingCDC::AngleUtil::normalise
static void normalise(double &angle)
Normalise an angle inplace to lie in the range from [-pi, pi].
Definition: Angle.h:51
Belle2::TrackFindingCDC::AngleUtil::fullNormalised
static double fullNormalised(const double angle)
Normalise an angle to lie in the range from [-pi, pi].
Definition: Angle.h:58
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::AngleUtil::reversed
static double reversed(const double angle)
Get the angle that point in the opposite direction.
Definition: Angle.h:64
Belle2::TrackFindingCDC::AngleUtil::average
static double average(const double angle1, double angle2)
Combines two angluar values to the one that lies half way between them on the short arc.
Definition: Angle.h:37
Belle2::TrackFindingCDC::AngleUtil::normalised
static double normalised(const double angle)
Normalise an angle to lie in the range from [-pi, pi].
Definition: Angle.h:43