1 #ifndef DataFormats_Math_deltaR_h 2 #define DataFormats_Math_deltaR_h 15 template<
typename T1,
typename T2>
17 typedef decltype(t1.eta()) Float;
23 return (e1-e2)*(e1-e2) + dp*dp;
27 template<
typename T1,
typename T2>
34 template <
class T1,
class T2,
class T3,
class T4>
36 T1
deltaR2 (T1 eta1, T2 phi1, T3 eta2, T4 phi2) {
37 T1 deta = eta1 - eta2;
39 return deta*deta + dphi*dphi;
43 template <
class T1,
class T2,
class T3,
class T4>
45 T1
deltaR (T1 eta1, T2 phi1, T3 eta2, T4 phi2) {
56 template<
typename T1,
typename T2 = T1>
Abs< T >::type abs(const T &t)
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
constexpr double operator()(const T1 &t1, const T2 &t2) const
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())