25 vector<const DetLayer*>
28 vector<const DetLayer*>
result;
29 vector<const DetLayer*>
barrel;
32 pushResult(result, theOuterEndcapLayers);
35 pushResult(result, theInnerEndcapLayers);
36 reverse(result.begin(),result.end());
37 pushResult(barrel, theInnerBarrelLayers);
38 reverse(barrel.begin(),barrel.end());
39 result.insert(result.end(),barrel.begin(),barrel.end());
42 result.reserve(result.size());
48 vector<const DetLayer*>
52 vector<const DetLayer*>
result;
53 vector<const DetLayer*>
barrel;
56 pushResult(result, theOuterEndcapLayers, fts);
59 pushResult(result, theInnerEndcapLayers, fts);
60 reverse(result.begin(),result.end());
61 pushResult(barrel, theInnerBarrelLayers, fts);
62 reverse(barrel.begin(),barrel.end());
63 result.insert(result.end(),barrel.begin(),barrel.end());
66 result.reserve(result.size());
71 vector<const DetLayer*>
74 vector<const DetLayer*>
result;
75 vector<const DetLayer*>
barrel;
78 pushResult(result, theAllOuterEndcapLayers);
81 pushResult(result, theAllInnerEndcapLayers);
82 reverse(result.begin(),result.end());
83 pushResult(barrel, theAllInnerBarrelLayers);
84 reverse(barrel.begin(),barrel.end());
85 result.insert(result.end(),barrel.begin(),barrel.end());
88 result.reserve(result.size());
92 vector<const DetLayer*>
95 vector<const DetLayer*>
result;
96 vector<const DetLayer*>
barrel;
99 pushCompatibleResult(result, theAllOuterEndcapLayers, fts);
102 pushCompatibleResult(result, theAllInnerEndcapLayers, fts);
103 reverse(result.begin(),result.end());
104 pushCompatibleResult(barrel, theAllInnerBarrelLayers, fts);
105 reverse(barrel.begin(),barrel.end());
106 result.insert(result.end(),barrel.begin(),barrel.end());
108 result.reserve(result.size());
116 for (
MapBI i = map.begin();
i != map.end();
i++) result.push_back((*i).first);
124 for (
MapEI i = map.begin();
i != map.end();
i++) result.push_back((*i).first);
133 for (
MapEI i = map.begin();
i != map.end();
i++)
134 if ((*i).second.isInside(fts.
position().
eta())) result.push_back((*i).first);
143 for (
MapBI i = map.begin();
i != map.end();
i++)
144 if ((*i).second.isInside(fts.
position().
eta())) result.push_back((*i).first);
153 for (
MapBI i = map.begin();
i != map.end();
i++ )
154 if ((*i).second.isCompatible(range)) result.push_back((*i).first);
161 for (
MapEI i = map.begin();
i != map.end();
i++)
162 if ((*i).second.isCompatible(range)) result.push_back((*i).first);
176 edm::LogError (
"MuonForwardNavigablaLayer") <<
"MuonForwardNavigableLayer::setDetLayer called!! " << endl;
182 const MapE& innerEL) {
184 theInnerBarrelLayers = innerBL;
185 theInnerEndcapLayers = innerEL;
189 const MapE& innerCEL) {
191 theAllInnerBarrelLayers = innerCBL;
192 theAllInnerEndcapLayers = innerCEL;
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection dir) const override
MapB::const_iterator MapBI
std::map< const BarrelDetLayer *, MuonEtaRange, MuonDetLayerComp > MapB
void pushResult(std::vector< const DetLayer * > &result, const MapB &map) const
void setInwardLinks(const MapB &, const MapE &)
set inward links
void pushCompatibleResult(std::vector< const DetLayer * > &result, const MapB &map, const FreeTrajectoryState &fts) const
MapE::const_iterator MapEI
virtual const DetLayer * detLayer() const override
return DetLayer
std::map< const ForwardDetLayer *, MuonEtaRange, MuonDetLayerComp > MapE
GlobalPoint position() const
virtual void setDetLayer(const DetLayer *) override
set DetLayer
void setInwardCompatibleLinks(const MapB &, const MapE &)
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection dir) const override
NavigableLayer interface.