21 bool checkCrossingSide)
23 theDetLayer(detLayer),
24 theOuterBarrelLayers(outerBL),
25 theInnerBarrelLayers(0),
26 theOuterForwardLayers(outerFL),
27 theInnerForwardLayers(0),
32 for (
ConstBDLI bl = outerBL.begin(); bl != outerBL.end(); bl++)
34 for (
ConstFDLI fl = outerFL.begin(); fl != outerFL.end(); fl++)
44 vector<const DetLayer*>
result;
64 vector<const DetLayer*>
result;
69 auto const momentum = fts.
momentum();
74 bool isInOutTrackFWD = momentum.z() * zpos > 0;
76 bool isInOutTrackBarrel = (transversePosition.dot(momentum) > 0);
80 bool dirOppositeXORisInOutTrackBarrel =
82 bool dirOppositeXORisInOutTrackFWD =
86 if LIKELY (dirOppositeXORisInOutTrackFWD && dirOppositeXORisInOutTrackBarrel) {
88 }
else if (!dirOppositeXORisInOutTrackFWD && !dirOppositeXORisInOutTrackBarrel) {
90 }
else if (!dirOppositeXORisInOutTrackFWD && dirOppositeXORisInOutTrackBarrel) {
102 edm::LogError(
"TkNavigation") <<
"ERROR: compatibleLayers() method used without all reachableLayers are set";
103 throw DetLayerException(
"compatibleLayers() method used without all reachableLayers are set");
104 return vector<const DetLayer*>();
108 cerr <<
"Warning: SimpleForwardNavigableLayer::setDetLayer called." << endl <<
"This should never happen!" << endl;
117 for (
ConstBDLI bl = innerBL.begin(); bl != innerBL.end(); bl++)
119 for (
ConstFDLI fl = innerFL.begin(); fl != innerFL.end(); fl++)
129 const ForwardDetLayer* fadditional = dynamic_cast<const ForwardDetLayer*>(additional);
130 const BarrelDetLayer* badditional = dynamic_cast<const BarrelDetLayer*>(additional);
140 }
else if (fadditional) {
150 edm::LogError(
"TkNavigation") <<
"trying to add neither a ForwardDetLayer nor a BarrelDetLayer";