CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Functions
rangesIntersect.h File Reference

Go to the source code of this file.

Functions

template<typename Range >
bool rangesIntersect (const Range &a, const Range &b)
 
template<typename Range , typename Less >
bool rangesIntersect (const Range &a, const Range &b, Less const &less)
 
template<typename Range , typename T >
bool rangesIntersect (const Range &a, const Range &b, bool(*less)(T, T))
 

Function Documentation

template<typename Range >
bool rangesIntersect ( const Range a,
const Range b 
)
inline

Utility for checking efficiently if two one-dimantional intervals intersect. Precondition: the intervals are not empty, i.e. for i in a,b i.first <= i.second. The Range template argument is expected to have the std::pair interface, i.e. for Range instance r r.first is the beginning of the interval and r.second is the end of the interval.

Definition at line 14 of file rangesIntersect.h.

Referenced by LayerCollector::allLayers(), OuterDetCompatibility::checkPhi(), OuterDetCompatibility::checkR(), OuterDetCompatibility::checkZ(), PixelRecoRange< float >::hasIntersection(), StartingLayerFinder::operator()(), barrelUtil::overlap(), and tkDetUtil::overlapInPhi().

14  {
15  return !((a.first > b.second) | (b.first > a.second));
16 }
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119
template<typename Range , typename Less >
bool rangesIntersect ( const Range a,
const Range b,
Less const &  less 
)
inline

Definition at line 19 of file rangesIntersect.h.

19  {
20  return !(less(b.second, a.first) | less(a.second, b.first));
21 }
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119
template<typename Range , typename T >
bool rangesIntersect ( const Range a,
const Range b,
bool(*)(T, T less 
)
inline

Definition at line 23 of file rangesIntersect.h.

23  {
24  return !(less(b.second, a.first) | less(a.second, b.first));
25 }
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119