CMS 3D CMS Logo

MuonForwardNavigableLayer.h
Go to the documentation of this file.
1 #ifndef Navigation_MuonForwardNavigableLayer_H
2 #define Navigation_MuonForwardNavigableLayer_H
3 
17 /* Collaborating Class Declarations */
20 
21 class DetLayer;
22 class ForwardDetLayer;
23 
24 /* Base Class Headers */
26 
27 /* C++ Headers */
28 
29 /* ====================================================================== */
30 
31 /* Class MuonForwardNavigableLayer Interface */
32 
34 public:
36  const MapB& innerBarrel,
37  const MapE& outerEndcap,
38  const MapE& innerEndcap,
39  const MapB& allInnerBarrel,
40  const MapE& allOuterEndcap,
41  const MapE& allInnerEndcap)
42  : theDetLayer(fdl),
43  theInnerBarrelLayers(innerBarrel),
44  theOuterEndcapLayers(outerEndcap),
45  theInnerEndcapLayers(innerEndcap),
46  theAllInnerBarrelLayers(allInnerBarrel),
47  theAllOuterEndcapLayers(allOuterEndcap),
48  theAllInnerEndcapLayers(allInnerEndcap) {}
49 
51  MuonForwardNavigableLayer(const ForwardDetLayer* fdl, const MapE& outerEndcap)
52  : theDetLayer(fdl), theOuterEndcapLayers(outerEndcap) {}
54  MuonForwardNavigableLayer(const ForwardDetLayer* fdl, const MapE& outerEndcap, const MapE& allOuterEndcap)
55  : theDetLayer(fdl), theOuterEndcapLayers(outerEndcap), theAllOuterEndcapLayers(allOuterEndcap) {}
56 
58  std::vector<const DetLayer*> nextLayers(NavigationDirection dir) const override;
59 
61  std::vector<const DetLayer*> nextLayers(const FreeTrajectoryState& fts, PropagationDirection dir) const override;
62 
63  std::vector<const DetLayer*> compatibleLayers(NavigationDirection dir) const override;
64 
66  std::vector<const DetLayer*> compatibleLayers(const FreeTrajectoryState& fts,
67  PropagationDirection dir) const override;
69  const DetLayer* detLayer() const override;
70 
72  void setDetLayer(const DetLayer*) override;
73 
78 
82 
84  void setInwardLinks(const MapB&, const MapE&);
85  void setInwardCompatibleLinks(const MapB&, const MapE&);
86 
87 private:
88  void pushResult(std::vector<const DetLayer*>& result, const MapB& map) const;
89 
90  void pushResult(std::vector<const DetLayer*>& result, const MapE& map) const;
91 
92  void pushResult(std::vector<const DetLayer*>& result, const MapB& map, const FreeTrajectoryState& fts) const;
93 
94  void pushResult(std::vector<const DetLayer*>& result, const MapE& map, const FreeTrajectoryState& fts) const;
95 
96  void pushCompatibleResult(std::vector<const DetLayer*>& result,
97  const MapB& map,
98  const FreeTrajectoryState& fts) const;
99 
100  void pushCompatibleResult(std::vector<const DetLayer*>& result,
101  const MapE& map,
102  const FreeTrajectoryState& fts) const;
103 
104 private:
112 };
113 #endif
const ForwardDetLayer * theDetLayer
MuonForwardNavigableLayer(const ForwardDetLayer *fdl, const MapE &outerEndcap)
Constructor with outer layers only.
std::vector< const DetLayer * > compatibleLayers(NavigationDirection dir) const override
std::map< const BarrelDetLayer *, MuonEtaRange, MuonDetLayerComp > MapB
PropagationDirection
void pushResult(std::vector< const DetLayer *> &result, const MapB &map) const
void setInwardLinks(const MapB &, const MapE &)
set inward links
MapE getOuterEndcapLayers() const
Operations.
void pushCompatibleResult(std::vector< const DetLayer *> &result, const MapB &map, const FreeTrajectoryState &fts) const
const DetLayer * detLayer() const override
return DetLayer
MuonForwardNavigableLayer(const ForwardDetLayer *fdl, const MapE &outerEndcap, const MapE &allOuterEndcap)
Constructor with all outer layers only.
std::map< const ForwardDetLayer *, MuonEtaRange, MuonDetLayerComp > MapE
void setDetLayer(const DetLayer *) override
set DetLayer
void setInwardCompatibleLinks(const MapB &, const MapE &)
MuonForwardNavigableLayer(const ForwardDetLayer *fdl, const MapB &innerBarrel, const MapE &outerEndcap, const MapE &innerEndcap, const MapB &allInnerBarrel, const MapE &allOuterEndcap, const MapE &allInnerEndcap)
std::vector< const DetLayer * > nextLayers(NavigationDirection dir) const override
NavigableLayer interface.