Belle II Software  release-08-01-10
Angle.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #pragma once
9 
10 #include <cmath>
11 
12 namespace Belle2 {
17  namespace TrackFindingCDC {
18 
19 
24  struct AngleUtil {
25 
27  static double average(const double angle1, double angle2)
28  {
29  return normalised(angle1 + normalised(angle2 - angle1) / 2);
30  }
31 
33  static double normalised(const double angle)
34  {
35  if (angle > M_PI) return angle - 2 * M_PI;
36  if (angle < -M_PI) return angle + 2 * M_PI;
37  return angle;
38  }
39 
41  static void normalise(double& angle)
42  {
43  if (angle > M_PI) angle -= 2 * M_PI;
44  if (angle < -M_PI) angle += 2 * M_PI;
45  }
46 
48  static double fullNormalised(const double angle)
49  {
50  return std::remainder(angle, 2 * M_PI);
51  }
52 
54  static double reversed(const double angle)
55  {
56  return angle > 0 ? angle - M_PI : angle + M_PI;
57  }
58 
59  };
60 
61  }
63 }
Abstract base class for different kinds of events.
Utility functions to be used with angular quantities.
Definition: Angle.h:24
static void normalise(double &angle)
Normalise an angle inplace to lie in the range from [-pi, pi].
Definition: Angle.h:41
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:27
static double reversed(const double angle)
Get the angle that point in the opposite direction.
Definition: Angle.h:54
static double normalised(const double angle)
Normalise an angle to lie in the range from [-pi, pi].
Definition: Angle.h:33
static double fullNormalised(const double angle)
Normalise an angle to lie in the range from [-pi, pi].
Definition: Angle.h:48