21 bool operator()(
const GeomDet*
a,
const GeomDet*
b)
const {
return (
a->position().z() <
b->position().z()); }
25 TOBRod::TOBRod(vector<const GeomDet*>& innerDets, vector<const GeomDet*>& outerDets)
26 :
DetRod(
true), theInnerDets(innerDets), theOuterDets(outerDets) {
41 LogDebug(
"TkDetLayers") <<
"==== DEBUG TOBRod =====";
43 LogDebug(
"TkDetLayers") <<
"inner TOBRod's Det pos z,perp,eta,phi: " << (**i).position().z() <<
" , "
44 << (**i).position().perp() <<
" , " << (**i).position().eta() <<
" , "
45 << (**i).position().phi();
49 LogDebug(
"TkDetLayers") <<
"outer TOBRod's Det pos z,perp,eta,phi: " << (**i).position().z() <<
" , "
50 << (**i).position().perp() <<
" , " << (**i).position().eta() <<
" , "
51 << (**i).position().phi();
53 LogDebug(
"TkDetLayers") <<
"==== end DEBUG TOBRod =====";
65 edm::LogError(
"TkDetLayers") <<
"temporary dummy implementation of TOBRod::compatible()!!";
66 return pair<bool, TrajectoryStateOnSurface>();
72 std::vector<DetGroup>&
result)
const {
78 std::vector<DetGroup> closestResult;
80 if (closestResult.empty()) {
81 std::vector<DetGroup> nextResult;
83 if (nextResult.empty())
96 std::vector<DetGroup> nextResult;
113 std::pair<bool, double> outerPath = crossing.pathLength(*
theOuterPlane);
114 if (!outerPath.first)
116 GlobalPoint gOuterPoint(crossing.position(outerPath.second));
118 std::pair<bool, double> innerPath = crossing.pathLength(*
theInnerPlane);
119 if (!innerPath.first)
121 GlobalPoint gInnerPoint(crossing.position(innerPath.second));
131 if (innerDist < outerDist) {
142 vector<DetGroup>&
result)
const {
159 constexpr
float relativeMargin = 1.01;
167 float localY = localCrossPoint.y();
184 bool checkClosest)
const {
190 int negStartIndex = closestIndex - 1;
191 int posStartIndex = closestIndex + 1;
194 if (gCrossingPos.
z() < sRod[closestIndex]->surface().position().z()) {
195 posStartIndex = closestIndex;
197 negStartIndex = closestIndex;
202 for (
int idet = negStartIndex; idet >= 0; idet--) {
208 for (
int idet = posStartIndex; idet < static_cast<int>(sRod.size()); idet++) {