12 return std::acos((x1*x2 + y1*y2 + z1*z2)/
std::sqrt((x1*x1 + y1*y1 + z1*z1)*(x2*x2 + y2*y2 + z2*z2)));
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() );
auto const T2 &decltype(t1.eta()) t2
T angle(T x1, T y1, T z1, T x2, T y2, T z2)