CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DetLessZ.h
Go to the documentation of this file.
1 #ifndef DetLayers_DetLessZ_H
2 #define DetLayers_DetLessZ_H
3 
5 
10 
11 class DetLessZ : public std::binary_function<const Det*, const Det*, bool> {
12 public:
13  bool operator()( const Det* a, const Det* b) const {
14 
15  // multiply by 1+epsilon to make it numericaly stable
16  // the epsilon should depend on the scalar precision,
17  // this is just a quick fix!
18  if (a->position().z() > 0) {
19  return a->position().z()*1.000001 < b->position().z();
20  }
21  else if (b->position().z() < 0) {
22  return a->position().z() < b->position().z()*1.000001;
23  }
24  else return true;
25  }
26 
27 };
28 
29 #endif
bool operator()(const Det *a, const Det *b) const
Definition: DetLessZ.h:13
GeometricSearchDet Det
Definition: DetBelowR.h:8
T z() const
Definition: PV3DBase.h:63
virtual const Surface::PositionType & position() const
Returns position of the surface.
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121