Logo ROOT  
Reference Guide
VectorUtil.cxx
Go to the documentation of this file.
1// @(#)root/mathcore:$Id$
2// Authors: W. Brown, M. Fischler, L. Moneta 2006
3
4 /**********************************************************************
5 * *
6 * Copyright (c) 2006 , LCG ROOT MathLib Team *
7 * *
8 * *
9 **********************************************************************/
10
11// Implementation of VectorUtil functions
12//
13// Created by: Lorenzo Moneta 22 Aug 2006
14//
16
17namespace ROOT {
18
19namespace Math {
20
21
22double VectorUtil::Phi_0_2pi(double angle) {
23 // returns phi angle in the interval (0,2*PI]
24 if ( angle <= 2.*M_PI && angle > 0 ) return angle;
25
26 if ( angle > 0 ) {
27 int n = static_cast<int>( angle/(2.*M_PI) );
28 angle -= 2.*M_PI*n;
29 } else {
30 int n = static_cast<int>( -(angle)/(2.*M_PI) );
31 angle += 2.*M_PI*(n+1);
32 }
33 return angle;
34}
35
36double VectorUtil::Phi_mpi_pi(double angle) {
37 // returns phi angle in the interval (-PI,PI]
38
39 if ( angle <= M_PI && angle > -M_PI ) return angle;
40
41 if ( angle > 0 ) {
42 int n = static_cast<int>( (angle+M_PI)/(2.*M_PI) );
43 angle -= 2*M_PI*n;
44 } else {
45 int n = static_cast<int>( -(angle-M_PI)/(2.*M_PI) );
46 angle += 2*M_PI*n;
47 }
48 return angle;
49}
50
51
52
53} //namespace Math
54} //namespace ROOT
#define M_PI
Definition: Rotated.cxx:105
const Int_t n
Definition: legend1.C:16
Namespace for new Math classes and functions.
double Phi_0_2pi(double phi)
Return a phi angle in the interval (0,2*PI].
Definition: VectorUtil.cxx:22
double Phi_mpi_pi(double phi)
Returns phi angle in the interval (-PI,PI].
Definition: VectorUtil.cxx:36
VSD Structures.
Definition: StringConv.hxx:21