31 std::vector<const DetLayer*>
34 std::vector<const DetLayer*>
result;
37 pushResult(result, theOuterBarrelLayers);
38 pushResult(result, theOuterBackwardLayers);
39 pushResult(result, theOuterForwardLayers);
42 pushResult(result, theInnerBarrelLayers);
43 reverse(result.begin(),result.end());
44 pushResult(result, theInnerBackwardLayers);
45 pushResult(result, theInnerForwardLayers);
48 result.reserve(result.size());
54 std::vector<const DetLayer*>
58 std::vector<const DetLayer*>
result;
61 pushResult(result, theOuterBarrelLayers, fts);
62 pushResult(result, theOuterBackwardLayers, fts);
63 pushResult(result, theOuterForwardLayers, fts);
66 pushResult(result, theInnerBarrelLayers, fts);
67 reverse(result.begin(),result.end());
68 pushResult(result, theInnerBackwardLayers, fts);
69 pushResult(result, theInnerForwardLayers, fts);
71 result.reserve(result.size());
75 std::vector<const DetLayer*>
78 std::vector<const DetLayer*>
result;
81 pushResult(result, theAllOuterBarrelLayers);
82 pushResult(result, theAllOuterBackwardLayers);
83 pushResult(result, theAllOuterForwardLayers);
86 pushResult(result, theAllInnerBarrelLayers);
87 reverse(result.begin(),result.end());
88 pushResult(result, theAllInnerBackwardLayers);
89 pushResult(result, theAllInnerForwardLayers);
92 result.reserve(result.size());
96 std::vector<const DetLayer*>
99 std::vector<const DetLayer*>
result;
102 pushCompatibleResult(result, theAllOuterBarrelLayers, fts);
103 pushCompatibleResult(result, theAllOuterBackwardLayers, fts);
104 pushCompatibleResult(result, theAllOuterForwardLayers, fts);
107 pushCompatibleResult(result, theAllInnerBarrelLayers, fts);
108 reverse(result.begin(),result.end());
109 pushCompatibleResult(result, theAllInnerBackwardLayers, fts);
110 pushCompatibleResult(result, theAllInnerForwardLayers, fts);
112 result.reserve(result.size());
121 for (
MapBI i = map.begin();
i != map.end();
i++ ) result.push_back((*i).first);
128 for (
MapEI i = map.begin();
i != map.end();
i++ ) result.push_back((*i).first);
135 for (
MapBI i = map.begin();
i != map.end();
i++ )
136 if ((*i).second.isInside(fts.
position().
eta())) result.push_back((*i).first);
143 for (
MapEI i = map.begin();
i != map.end();
i++)
144 if ((*i).second.isInside(fts.
position().
eta())) result.push_back((*i).first);
152 for (
MapBI i = map.begin();
i != map.end();
i++ )
153 if ((*i).second.isCompatible(range)) result.push_back((*i).first);
160 for (
MapEI i = map.begin();
i != map.end();
i++)
161 if ((*i).second.isCompatible(range)) result.push_back((*i).first);
171 edm::LogError(
"MuonBarrelNavigableLayer") <<
"MuonBarrelNavigableLayer::setDetLayer called!! " << endl;
176 theInnerBarrelLayers = innerBL;
180 theAllInnerBarrelLayers = innerCBL;
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
std::map< ForwardDetLayer *, MuonEtaRange, MuonDetLayerComp > MapE
MapB::const_iterator MapBI
virtual void setDetLayer(DetLayer *)
set DetLayer
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection dir) const
NavigableLayer interface.
std::map< BarrelDetLayer *, MuonEtaRange, MuonDetLayerComp > MapB
void setInwardCompatibleLinks(const MapB &)
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection dir) const
MapE::const_iterator MapEI
virtual DetLayer * detLayer() const
return DetLayer
GlobalPoint position() const
void setInwardLinks(const MapB &)
set inward links
void pushCompatibleResult(std::vector< const DetLayer * > &result, const MapB &map, const FreeTrajectoryState &fts) const