27 vector<const DetLayer*>
30 vector<const DetLayer*>
result;
31 vector<const DetLayer*>
barrel;
34 pushResult(result, theOuterEndcapLayers);
37 pushResult(result, theInnerEndcapLayers);
38 reverse(result.begin(),result.end());
39 pushResult(barrel, theInnerBarrelLayers);
40 reverse(barrel.begin(),barrel.end());
41 result.insert(result.end(),barrel.begin(),barrel.end());
44 result.reserve(result.size());
50 vector<const DetLayer*>
54 vector<const DetLayer*>
result;
55 vector<const DetLayer*>
barrel;
58 pushResult(result, theOuterEndcapLayers, fts);
61 pushResult(result, theInnerEndcapLayers, fts);
62 reverse(result.begin(),result.end());
63 pushResult(barrel, theInnerBarrelLayers, fts);
64 reverse(barrel.begin(),barrel.end());
65 result.insert(result.end(),barrel.begin(),barrel.end());
68 result.reserve(result.size());
73 vector<const DetLayer*>
76 vector<const DetLayer*>
result;
77 vector<const DetLayer*>
barrel;
80 pushResult(result, theAllOuterEndcapLayers);
83 pushResult(result, theAllInnerEndcapLayers);
84 reverse(result.begin(),result.end());
85 pushResult(barrel, theAllInnerBarrelLayers);
86 reverse(barrel.begin(),barrel.end());
87 result.insert(result.end(),barrel.begin(),barrel.end());
90 result.reserve(result.size());
94 vector<const DetLayer*>
97 vector<const DetLayer*>
result;
98 vector<const DetLayer*>
barrel;
101 pushCompatibleResult(result, theAllOuterEndcapLayers, fts);
104 pushCompatibleResult(result, theAllInnerEndcapLayers, fts);
105 reverse(result.begin(),result.end());
106 pushCompatibleResult(barrel, theAllInnerBarrelLayers, fts);
107 reverse(barrel.begin(),barrel.end());
108 result.insert(result.end(),barrel.begin(),barrel.end());
110 result.reserve(result.size());
118 for (
MapBI i = map.begin();
i != map.end();
i++) result.push_back((*i).first);
126 for (
MapEI i = map.begin();
i != map.end();
i++) result.push_back((*i).first);
135 for (
MapEI i = map.begin();
i != map.end();
i++)
136 if ((*i).second.isInside(fts.
position().
eta())) result.push_back((*i).first);
145 for (
MapBI i = map.begin();
i != map.end();
i++)
146 if ((*i).second.isInside(fts.
position().
eta())) result.push_back((*i).first);
155 for (
MapBI i = map.begin();
i != map.end();
i++ )
156 if ((*i).second.isCompatible(range)) result.push_back((*i).first);
163 for (
MapEI i = map.begin();
i != map.end();
i++)
164 if ((*i).second.isCompatible(range)) result.push_back((*i).first);
178 edm::LogError (
"MuonForwardNavigablaLayer") <<
"MuonForwardNavigableLayer::setDetLayer called!! " << endl;
184 const MapE& innerEL) {
186 theInnerBarrelLayers = innerBL;
187 theInnerEndcapLayers = innerEL;
191 const MapE& innerCEL) {
193 theAllInnerBarrelLayers = innerCBL;
194 theAllInnerEndcapLayers = innerCEL;
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection dir) const
NavigableLayer interface.
std::map< ForwardDetLayer *, MuonEtaRange, MuonDetLayerComp > MapE
MapB::const_iterator MapBI
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
std::map< BarrelDetLayer *, MuonEtaRange, MuonDetLayerComp > MapB
MapE::const_iterator MapEI
virtual DetLayer * detLayer() const
return DetLayer
GlobalPoint position() const
void setInwardCompatibleLinks(const MapB &, const MapE &)
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection dir) const
virtual void setDetLayer(DetLayer *)
set DetLayer