CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RoadSearchHitSorting.h
Go to the documentation of this file.
1 #ifndef TrackingTools_RoadSearchHitSorting_H
2 #define TrackingTools_RoadSearchHitSorting_H
3 
4 //
5 // Package: TrackingTools/RoadSearchHitSorting
6 // Class: SortHitsByGlobalPosition
7 // SortHitPointersByGLobalPosition
8 //
9 // Description: various sortings for TrackingRecHits
10 //
11 // Original Author: Oliver Gutsche, gutsche@fnal.gov
12 // Created: Fri Jul 6 13:37:38 UTC 2007
13 //
14 // $Author: gutsche $
15 // $Date: 2007/07/08 20:34:15 $
16 // $Revision: 1.1 $
17 //
18 
20 
22 
26 
29 
31 public:
32 
35  geometry(geometry_), theDir(dir){}
36 
37 
38  bool operator()( const TrackingRecHit& a, const TrackingRecHit& b) const {
39  if (theDir == alongMomentum) return insideOutLess( a, b);
40  else return insideOutLess( b, a);
41  }
42 
43  private:
44 
45  bool insideOutLess( const TrackingRecHit& a, const TrackingRecHit& b) const;
46 
47  bool barrelForwardLess( const TrackingRecHit& a, const TrackingRecHit& b) const;
48 
51 };
52 
54 public:
55 
58  geometry(geometry_), theDir(dir){}
59 
60 
61  bool operator()( const TrackingRecHit* a, const TrackingRecHit* b) const {
62  if (theDir == alongMomentum) return insideOutLess( a, b);
63  else return insideOutLess( b, a);
64  }
65 
66  private:
67 
68  bool insideOutLess( const TrackingRecHit* a, const TrackingRecHit* b) const;
69 
70  bool barrelForwardLess( const TrackingRecHit* a, const TrackingRecHit* b) const;
71 
74 };
75 
77  public:
78 
80 
81  bool operator()(const std::pair<TransientTrackingRecHit::ConstRecHitPointer, TrajectoryMeasurement*> &HitTM1 ,
82  const std::pair<TransientTrackingRecHit::ConstRecHitPointer, TrajectoryMeasurement*> &HitTM2 ) const
83  {
84  return
85  InsideOutCompare(HitTM1,HitTM2);
86  }
87 
88 
89  private:
90 
91  bool InsideOutCompare( const std::pair<TransientTrackingRecHit::ConstRecHitPointer, TrajectoryMeasurement*> &HitTM1 ,
92  const std::pair<TransientTrackingRecHit::ConstRecHitPointer, TrajectoryMeasurement*> &HitTM2 ) const;
93 
94 };
95 
96 class SortHitsByY {
97  public:
99  bool operator()( const TrackingRecHit& rh1,
100  const TrackingRecHit& rh2) const
101  {
102  bool result =
103  static_cast<unsigned int>(std::abs(_tracker.idToDet(rh1.geographicalId())->surface().toGlobal(rh1.localPosition()).y()) * 1E7) <
104  static_cast<unsigned int>(std::abs(_tracker.idToDet(rh2.geographicalId())->surface().toGlobal(rh2.localPosition()).y()) * 1E7) ;
105  return result;
106  };
107 
108  private:
109  const TrackerGeometry& _tracker;
110 };
111 
113  public:
115  bool operator()( const TrackingRecHit* rh1,
116  const TrackingRecHit* rh2) const
117  {
118  bool result =
119  static_cast<unsigned int>(std::abs(_tracker.idToDet(rh1->geographicalId())->surface().toGlobal(rh1->localPosition()).y()) * 1E7) <
120  static_cast<unsigned int>(std::abs(_tracker.idToDet(rh2->geographicalId())->surface().toGlobal(rh2->localPosition()).y()) * 1E7) ;
121  return result;
122  };
123 
124  private:
125  const TrackerGeometry& _tracker;
126 };
127 
128 
129 #endif
bool operator()(const TrackingRecHit *a, const TrackingRecHit *b) const
const TrackingGeometry * geometry
bool barrelForwardLess(const TrackingRecHit *a, const TrackingRecHit *b) const
SortHitsByY(const TrackerGeometry &tracker)
bool insideOutLess(const TrackingRecHit *a, const TrackingRecHit *b) const
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:47
const TrackerGeometry & _tracker
#define abs(x)
Definition: mlp_lapack.h:159
PropagationDirection
bool InsideOutCompare(const std::pair< TransientTrackingRecHit::ConstRecHitPointer, TrajectoryMeasurement * > &HitTM1, const std::pair< TransientTrackingRecHit::ConstRecHitPointer, TrajectoryMeasurement * > &HitTM2) const
bool operator()(const TrackingRecHit &a, const TrackingRecHit &b) const
bool operator()(const std::pair< TransientTrackingRecHit::ConstRecHitPointer, TrajectoryMeasurement * > &HitTM1, const std::pair< TransientTrackingRecHit::ConstRecHitPointer, TrajectoryMeasurement * > &HitTM2) const
tuple result
Definition: query.py:137
SortHitPointersByGlobalPosition(const TrackingGeometry *geometry_, PropagationDirection dir=alongMomentum)
const TrackerGeometry & _tracker
const TrackingGeometry * geometry
bool operator()(const TrackingRecHit &rh1, const TrackingRecHit &rh2) const
virtual const GeomDet * idToDet(DetId) const
bool insideOutLess(const TrackingRecHit &a, const TrackingRecHit &b) const
double b
Definition: hdecay.h:120
PropagationDirection theDir
double a
Definition: hdecay.h:121
bool operator()(const TrackingRecHit *rh1, const TrackingRecHit *rh2) const
SortHitsByGlobalPosition(const TrackingGeometry *geometry_, PropagationDirection dir=alongMomentum)
DetId geographicalId() const
dbl *** dir
Definition: mlp_gen.cc:35
SortHitPointersByY(const TrackerGeometry &tracker)
virtual LocalPoint localPosition() const =0
bool barrelForwardLess(const TrackingRecHit &a, const TrackingRecHit &b) const