69 std::vector<const TrackingRecHit*> ohttrh;
70 ohttrh.push_back(&(*(oht.
inner())));
71 ohttrh.push_back(&(*(oht.
middle())));
72 ohttrh.push_back(&(*(oht.
outer())));
73 std::vector<const TrackingRecHit*>::const_iterator ioht;
76 float limit_phi_distance1 =
sqrt((middlepos.
x() - outerpos.
x()) * (middlepos.
x() - outerpos.
x()) +
77 (middlepos.
y() - outerpos.
y()) * (middlepos.
y() - outerpos.
y())) /
79 float limit_phi_distance2 =
sqrt((middlepos.
x() - innerpos.
x()) * (middlepos.
x() - innerpos.
x()) +
80 (middlepos.
y() - innerpos.
y()) * (middlepos.
y() - innerpos.
y())) /
84 if (fabs(outerpos.
phi() - middlepos.
phi()) > fabs(atan(limit_phi_distance1)) ||
85 fabs(innerpos.
phi() - middlepos.
phi()) > fabs(atan(limit_phi_distance2))) {
87 return std::make_pair(
false, 0.);
107 FastCircle circle(innerpos, middlepos, outerpos);
108 if (circle.rho() < 200 && circle.rho() != 0)
109 return std::make_pair(
false, circle.rho());
112 std::map<float, OrderedHitTriplet>::const_iterator
lower_bound =
map.lower_bound((1 - 0.01) * circle.rho());
113 std::map<float, OrderedHitTriplet>::const_iterator
upper_bound =
map.upper_bound((1 + 0.01) * circle.rho());
114 std::map<float, OrderedHitTriplet>::const_iterator iter;
117 std::vector<const TrackingRecHit*> curtrh;
118 curtrh.push_back(&*(iter->second.inner()));
119 curtrh.push_back(&*(iter->second.middle()));
120 curtrh.push_back(&*(iter->second.outer()));
121 std::vector<const TrackingRecHit*>::const_iterator curiter;
122 for (curiter = curtrh.begin(); curiter != curtrh.end(); curiter++) {
123 for (ioht = ohttrh.begin(); ioht != ohttrh.end(); ioht++) {
124 if ((*ioht)->geographicalId() == (*curiter)->geographicalId() &&
125 ((*ioht)->localPosition() - (*curiter)->localPosition()).
mag() < 1
e-5)
130 return std::make_pair(
false, circle.rho());
133 return std::make_pair(
true, circle.rho());
Geom::Phi< T > phi() const
MiddleRecHit middle() const
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
OuterRecHit outer() const
InnerRecHit inner() const