CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
angle.h
Go to the documentation of this file.
1 #ifndef Math_angle_h
2 #define Math_angle_h
3 /* function to compute 3D angle
4  *
5  * Ported from original code in RecoJets
6  * by Fedor Ratnikov, FNAL
7  */
8 #include <cmath>
9 
10 template <class T>
11 T angle (T x1, T y1, T z1, T x2, T y2, T z2) {
12  return acos((x1*x2 + y1*y2 + z1*z2)/sqrt((x1*x1 + y1*y1 + z1*z1)*(x2*x2 + y2*y2 + z2*z2)));
13 }
14 
15 template<typename T1, typename T2>
16 double angle( const T1 & t1, const T2 & t2 ) {
17  return angle( t1.x(), t1.y(), t1.z(), t2.x(), t2.y(), t2.z() );
18 }
19 
20 #endif
T sqrt(T t)
Definition: SSEVec.h:48
long double T
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11