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 =
87 LIKELY(dirOppositeXORisInOutTrackFWD && dirOppositeXORisInOutTrackBarrel) {
90 else if (!dirOppositeXORisInOutTrackFWD && !dirOppositeXORisInOutTrackBarrel) {
92 }
else if (!dirOppositeXORisInOutTrackFWD && dirOppositeXORisInOutTrackBarrel) {
104 edm::LogError(
"TkNavigation") <<
"ERROR: compatibleLayers() method used without all reachableLayers are set";
105 throw DetLayerException(
"compatibleLayers() method used without all reachableLayers are set");
106 return vector<const DetLayer*>();
110 cerr <<
"Warning: SimpleForwardNavigableLayer::setDetLayer called." << endl <<
"This should never happen!" << endl;
119 for (
ConstBDLI bl = innerBL.begin(); bl != innerBL.end(); bl++)
121 for (
ConstFDLI fl = innerFL.begin(); fl != innerFL.end(); fl++)
131 const ForwardDetLayer* fadditional = dynamic_cast<const ForwardDetLayer*>(additional);
132 const BarrelDetLayer* badditional = dynamic_cast<const BarrelDetLayer*>(additional);
142 }
else if (fadditional) {
152 edm::LogError(
"TkNavigation") <<
"trying to add neither a ForwardDetLayer nor a BarrelDetLayer";