18 const vector<const MTDDetSector*>& backSectors)
20 theFrontLayer(frontSectors),
21 theBackLayer(backSectors),
22 theSectors(frontSectors),
24 theBasicComponents() {
31 vector<const GeomDet*> tmp2 = isect->basicComponents();
37 LogTrace(
"MTDDetLayers") <<
"Constructing MTDSectorForwardDoubleLayer: " <<
std::fixed << std::setw(14)
39 <<
" Z: " << std::setw(14) <<
specificSurface().position().z() <<
" R1: " << std::setw(14)
50 float rmin =
min(frontDisk.innerRadius(), backDisk.innerRadius());
51 float rmax =
max(frontDisk.outerRadius(), backDisk.outerRadius());
52 float zmin = frontDisk.position().z();
53 float halfThickness = frontDisk.bounds().thickness() / 2.;
55 float zmax = backDisk.position().z();
56 halfThickness = backDisk.bounds().thickness() / 2.;
76 LogTrace(
"MTDDetLayers") <<
"MTDSectorForwardDoubleLayer::compatible is assuming inside-out direction: " <<
insideOut;
80 return make_pair(
false, myState);
86 constexpr
float nSigma = 3.;
101 vector<DetWithState>
result;
102 pair<bool, TrajectoryStateOnSurface> compat =
compatible(startingState, prop, est);
105 LogTrace(
"MTDDetLayers") <<
" MTDSectorForwardDoubleLayer::compatibleDets: not compatible"
106 <<
" (should not have been selected!)";
117 for (
const auto& thisDG : vectorGroups) {
118 for (
const auto& thisDGE : thisDG) {
129 vector<GeometricSearchDet::DetWithState> detWithStates1, detWithStates2;
131 LogTrace(
"MTDDetLayers") <<
"groupedCompatibleDets are currently given always in inside-out order";
139 if (!detWithStates1.empty())
141 if (!detWithStates2.empty())
143 LogTrace(
"MTDDetLayers") <<
"DoubleLayer Compatible dets: " <<
result.size();
150 <<
"MTDSectorForwardDoubleLayer::isCrack kept only for backward compatibility, no real implementation";
161 for (
const auto& thisFront : frontDets) {
162 float tmpz(
std::abs(thisFront->surface().position().z()));
167 for (
const auto& thisBack : backDets) {
168 float tmpz(
std::abs(thisBack->surface().position().z()));