CMS 3D CMS Logo

Functions

/data/refman/pasoursint/CMSSW_5_3_1/src/RecoTracker/TkMSParametrization/interface/rangesIntersect.h File Reference

Go to the source code of this file.

Functions

template<class Range >
bool rangesIntersect (const Range &a, const Range &b)
template<class Range , class Less >
bool rangesIntersect (const Range &a, const Range &b, const Less &less)

Function Documentation

template<class 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(), ConversionBarrelEstimator::estimate(), ForwardMeasurementEstimator::estimate(), BarrelMeasurementEstimator::estimate(), PixelRecoRange< float >::hasIntersection(), TECLayer::overlap(), tkDetUtil::overlapInPhi(), and StartingLayerFinder::startingLayers().

                                                             {
  if ( a.first > b.second || b.first > a.second) return false;
  else return true;
}
template<class Range , class Less >
bool rangesIntersect ( const Range a,
const Range b,
const Less &  less 
) [inline]

Definition at line 20 of file rangesIntersect.h.

                                               {
  if ( less(b.second,a.first) || less(a.second,b.first)) return false;
  else return true;
}