CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RangeSelector.h
Go to the documentation of this file.
1 #ifndef RecoAlgos_RangeSelector_h
2 #define RecoAlgos_RangeSelector_h
3 /* \class RangeSelector
4  *
5  * \author Luca Lista, INFN
6  *
7  * $Id: RangeSelector.h,v 1.1 2009/02/24 14:40:26 llista Exp $
8  */
9 #include <string>
10 
11 template <typename T, double (T::*fun)() const>
12 struct RangeSelector {
13  RangeSelector(double min, double max) : min_(min), max_(max) {}
14  bool operator()(const T& t) const {
15  double x = (t.*fun)();
16  return min_ <= x && x <= max_;
17  }
18 
19 private:
20  double min_, max_;
21 };
22 
23 #endif
T min(T a, T b)
Definition: MathUtil.h:58
bool operator()(const T &t) const
Definition: RangeSelector.h:14
RangeSelector(double min, double max)
Definition: RangeSelector.h:13
long double T