CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RoadSearchSeedFinderAlgorithm.h
Go to the documentation of this file.
1 #ifndef RoadSearchSeedFinderAlgorithm_h
2 #define RoadSearchSeedFinderAlgorithm_h
3 
4 //
5 // Package: RecoTracker/RoadSearchSeedFinder
6 // Class: RoadSearchSeedFinderAlgorithm
7 //
8 // Description: Loops over Roads, checks for every
9 // RoadSeed if hits are in the inner and
10 // outer SeedRing, applies cuts for all
11 // combinations of inner and outer SeedHits,
12 // stores valid combination in TrackingSeed
13 //
14 // Original Author: Oliver Gutsche, gutsche@fnal.gov
15 // Created: Sat Jan 14 22:00:00 UTC 2006
16 //
17 // $Author: vlimant $
18 // $Date: 2009/01/26 10:15:10 $
19 // $Revision: 1.22 $
20 //
21 
22 #include <string>
23 #include <sstream>
24 
28 
32 
34 
36 
38 
40 
42 
44 
46 {
47  public:
48 
51 
52  // Runs the algorithm
53  void run(const SiStripRecHit2DCollection* rphiRecHits,
54  const SiStripRecHit2DCollection* stereoRecHits,
55  const SiStripMatchedRecHit2DCollection* matchedRecHits,
56  const SiPixelRecHitCollection* pixelRecHits,
57  const edm::EventSetup& es,
59 
60  bool mergeCircleSeeds(std::vector<RoadSearchCircleSeed> &circleSeeds);
61 
62  bool calculateCircleSeedsFromHits(std::vector<RoadSearchCircleSeed> &circleSeeds,
63  const Roads::RoadSeed *seed,
64  const Roads::RoadSet *set,
65  GlobalPoint ring1GlobalPoint,
66  TrackingRecHit *ring1RecHit,
67  std::vector<TrackingRecHit*> ring2RecHits,
68  std::vector<TrackingRecHit*> ring3RecHits);
69 
70  bool calculateCircleSeedsFromHits(std::vector<RoadSearchCircleSeed> &circleSeeds,
71  const Roads::RoadSeed *seed,
72  const Roads::RoadSet *set,
73  GlobalPoint ring1GlobalPoint,
74  TrackingRecHit *ring1RecHit,
75  std::vector<TrackingRecHit*> ring2RecHits);
76 
77  bool calculateCircleSeedsFromRingsOneInnerTwoOuter(std::vector<RoadSearchCircleSeed> &circleSeeds,
78  const Roads::RoadSeed *seed,
79  const Roads::RoadSet *set,
80  const Ring* ring1,
81  const Ring* ring2,
82  const Ring* ring3);
83 
84  bool calculateCircleSeedsFromRingsTwoInnerOneOuter(std::vector<RoadSearchCircleSeed> &circleSeeds,
85  const Roads::RoadSeed *seed,
86  const Roads::RoadSet *set,
87  const Ring* ring1,
88  const Ring* ring2,
89  const Ring* ring3);
90  bool calculateCircleSeedsFromRingsOneInnerOneOuter(std::vector<RoadSearchCircleSeed> &circleSeeds,
91  const Roads::RoadSeed *seed,
92  const Roads::RoadSet *set,
93  const Ring* ring1,
94  const Ring* ring2);
95 
96  bool ringsOnSameLayer(const Ring *ring1,
97  const Ring* ring2);
98  bool detIdsOnSameLayer(DetId id1,
99  DetId id2);
100 
101  unsigned int ClusterCounter(const edmNew::DetSetVector<SiStripCluster>* clusters);
102 
103  private:
104 
105  double minPt_;
109 
119 
121 
124 
128 
132 
134  const Roads *roads_;
136 
137  std::ostringstream output_;
138 
140  double minRadius_;
141 
142  std::vector<unsigned int> usedSeedRingCombinations_;
143 
144  std::string mode_;
145 
146  std::string roadsLabel_;
147 
148  //***top-bottom
151  //***
152 
153 };
154 
155 #endif
unsigned int ClusterCounter(const edmNew::DetSetVector< SiStripCluster > *clusters)
bool calculateCircleSeedsFromRingsTwoInnerOneOuter(std::vector< RoadSearchCircleSeed > &circleSeeds, const Roads::RoadSeed *seed, const Roads::RoadSet *set, const Ring *ring1, const Ring *ring2, const Ring *ring3)
std::vector< RoadSearchSeed > RoadSearchSeedCollection
bool ringsOnSameLayer(const Ring *ring1, const Ring *ring2)
Definition: Roads.h:34
std::vector< std::vector< const Ring * > > RoadSet
Definition: Roads.h:39
bool mergeCircleSeeds(std::vector< RoadSearchCircleSeed > &circleSeeds)
bool calculateCircleSeedsFromHits(std::vector< RoadSearchCircleSeed > &circleSeeds, const Roads::RoadSeed *seed, const Roads::RoadSet *set, GlobalPoint ring1GlobalPoint, TrackingRecHit *ring1RecHit, std::vector< TrackingRecHit * > ring2RecHits, std::vector< TrackingRecHit * > ring3RecHits)
DetHitAccess::accessMode innerSeedHitAccessMode_
Definition: Ring.h:31
bool detIdsOnSameLayer(DetId id1, DetId id2)
void run(const SiStripRecHit2DCollection *rphiRecHits, const SiStripRecHit2DCollection *stereoRecHits, const SiStripMatchedRecHit2DCollection *matchedRecHits, const SiPixelRecHitCollection *pixelRecHits, const edm::EventSetup &es, RoadSearchSeedCollection &output)
tuple conf
Definition: dbtoconf.py:185
std::pair< std::vector< const Ring * >, std::vector< const Ring * > > RoadSeed
Definition: Roads.h:38
Definition: DetId.h:20
RoadSearchSeedFinderAlgorithm(const edm::ParameterSet &conf)
bool calculateCircleSeedsFromRingsOneInnerOneOuter(std::vector< RoadSearchCircleSeed > &circleSeeds, const Roads::RoadSeed *seed, const Roads::RoadSet *set, const Ring *ring1, const Ring *ring2)
DetHitAccess::accessMode outerSeedHitAccessMode_
std::vector< unsigned int > usedSeedRingCombinations_
bool calculateCircleSeedsFromRingsOneInnerTwoOuter(std::vector< RoadSearchCircleSeed > &circleSeeds, const Roads::RoadSeed *seed, const Roads::RoadSet *set, const Ring *ring1, const Ring *ring2, const Ring *ring3)
void set(const std::string &name, int value)
set the flag, with a run-time name