22 const vector<const ForwardDetRing*>& backRings)
24 theFrontLayer(frontRings),
25 theBackLayer(backRings),
28 theBasicComponents() {
36 for (vector<const ForwardDetRing*>::const_iterator it =
theRings.begin(); it !=
theRings.end(); it++) {
37 vector<const GeomDet*> tmp2 = (*it)->basicComponents();
45 <<
" Z: " << specificSurface().position().z() <<
" R1: " << specificSurface().innerRadius()
46 <<
" R2: " << specificSurface().outerRadius();
55 float rmin =
min(frontDisk.innerRadius(), backDisk.innerRadius());
56 float rmax =
max(frontDisk.outerRadius(), backDisk.outerRadius());
57 float zmin = frontDisk.position().z();
58 float halfThickness = frontDisk.bounds().thickness() / 2.;
60 float zmax = backDisk.position().z();
61 halfThickness = backDisk.bounds().thickness() / 2.;
86 return make_pair(
false, myState);
107 vector<DetWithState>
result;
109 pair<bool, TrajectoryStateOnSurface> compat =
compatible(startingState, prop, est);
112 LogTrace(
metname) <<
" MTDRingForwardDoubleLayer::compatibleDets: not compatible"
113 <<
" (should not have been selected!)";
124 for (vector<DetGroup>::const_iterator itDG = vectorGroups.begin(); itDG != vectorGroups.end(); itDG++) {
125 for (vector<DetGroupElement>::const_iterator itDGE = itDG->begin(); itDGE != itDG->end(); itDGE++) {
136 vector<GeometricSearchDet::DetWithState> detWithStates1, detWithStates2;
138 LogTrace(
metname) <<
"groupedCompatibleDets are currently given always in inside-out order";
146 if (!detWithStates1.empty())
148 if (!detWithStates2.empty())
158 double r =
gp.perp();
160 if (backRings.size() > 1) {
161 const MTDDetRing* innerRing = dynamic_cast<const MTDDetRing*>(backRings[0]);
162 const MTDDetRing* outerRing = dynamic_cast<const MTDDetRing*>(backRings[1]);
163 assert(innerRing && outerRing);
166 LogTrace(
metname) <<
"In a crack:" << crackInner <<
" " <<
r <<
" " << crackOuter;
167 if (
r > crackInner &&
r < crackOuter)
178 std::vector<const GeomDet*>::const_iterator frontItr = frontDets.begin(), lastFront = frontDets.end(),
179 backItr = backDets.begin(), lastBack = backDets.end();
182 for (; frontItr != lastFront; ++frontItr) {
183 float frontz = fabs((**frontItr).surface().position().z());
184 for (; backItr != lastBack; ++backItr) {
185 float backz = fabs((**backItr).surface().position().z());