18 #include <boost/function.hpp>
34 : theFrontDets(innerDets.
begin(), innerDets.
end()), theBackDets(outerDets.
begin(), outerDets.
end()) {
47 LogDebug(
"TkDetLayers") <<
"DEBUG INFO for CompositeTECWedge"
49 <<
"TECWedge z, perp,innerRadius,outerR: " << this->
position().
z() <<
" , "
54 LogDebug(
"TkDetLayers") <<
"frontDet phi,z,r: " << (*it)->surface().position().phi() <<
" , "
55 << (*it)->surface().position().z() <<
" , " << (*it)->surface().position().perp();
59 LogDebug(
"TkDetLayers") <<
"backDet phi,z,r: " << (*it)->surface().phi() <<
" , " << (*it)->surface().position().z()
60 <<
" , " << (*it)->surface().position().perp();
68 throw DetLayerException(
"CompositeTECWedge doesn't have GeometricSearchDet components");
74 edm::LogError(
"TkDetLayers") <<
"temporary dummy implementation of CompositeTECWedge::compatible()!!";
75 return pair<bool, TrajectoryStateOnSurface>();
81 std::vector<DetGroup>&
result)
const {
86 std::vector<DetGroup> closestResult;
89 LogDebug(
"TkDetLayers") <<
"in CompositeTECWedge::groupedCompatibleDets,closestResult.size(): "
90 << closestResult.size();
92 if (closestResult.empty())
100 std::vector<DetGroup> nextResult;
120 if (!frontPath.first)
130 LogDebug(
"TkDetLayers") <<
"in TECWedge,front crossing r,z,phi: (" << gFrontPoint.perp() <<
"," << gFrontPoint.z()
131 <<
"," << gFrontPoint.phi() <<
")";
133 LogDebug(
"TkDetLayers") <<
"in TECWedge,back crossing r,z,phi: (" << gBackPoint.perp() <<
"," << gBackPoint.z() <<
","
134 << gBackPoint.phi() <<
")" << endl;
155 if (frontDist < backDist) {
166 vector<DetGroup>&
result)
const {
169 LogDebug(
"TkDetLayers") <<
"in CompositeTECWedge,adding GeomDet at r,z,phi: ("
183 bool checkClosest)
const {
189 int negStartIndex = closestIndex - 1;
190 int posStartIndex = closestIndex + 1;
194 posStartIndex = closestIndex;
196 negStartIndex = closestIndex;
201 for (
int idet = negStartIndex; idet >= 0; idet--) {
208 for (
int idet = posStartIndex; idet < static_cast<int>(sWedge.size()); idet++) {
221 auto closeDist =
std::abs((myDets.front()->toLocal(startPos)).
x());
222 for (
unsigned int i = 1;
i < myDets.size();
i++) {
224 if (dist < closeDist) {