CMS 3D CMS Logo

MuonBarrelNavigableLayer.h
Go to the documentation of this file.
1 #ifndef Navigation_MuonBarrelNavigableLayer_H
2 #define Navigation_MuonBarrelNavigableLayer_H
3 
19 /* Collaborating Class Declarations */
22 
23 class DetLayer;
24 class BarrelDetLayer;
25 
26 /* Base Class Headers */
28 /* C++ Headers */
29 
30 /* ====================================================================== */
31 
32 /* Class MuonBarrelNavigableLayer Interface */
33 
35 public:
38  const MapB& outerBarrel,
39  const MapB& innerBarrel,
40  const MapE& outerBackward,
41  const MapE& outerForward,
42  const MapE& innerBackward,
43  const MapE& innerForward)
44  : theDetLayer(bdl),
45  theOuterBarrelLayers(outerBarrel),
46  theInnerBarrelLayers(innerBarrel),
47  theOuterBackwardLayers(outerBackward),
48  theInnerBackwardLayers(innerBackward),
49  theOuterForwardLayers(outerForward),
50  theInnerForwardLayers(innerForward) {}
51 
53  const MapB& outerBarrel,
54  const MapB& innerBarrel,
55  const MapE& outerBackward,
56  const MapE& outerForward,
57  const MapE& innerBackward,
58  const MapE& innerForward,
59  const MapB& allOuterBarrel,
60  const MapB& allInnerBarrel,
61  const MapE& allOuterBackward,
62  const MapE& allOuterForward,
63  const MapE& allInnerBackward,
64  const MapE& allInnerForward)
65  : theDetLayer(bdl),
66  theOuterBarrelLayers(outerBarrel),
67  theInnerBarrelLayers(innerBarrel),
68  theOuterBackwardLayers(outerBackward),
69  theInnerBackwardLayers(innerBackward),
70  theOuterForwardLayers(outerForward),
71  theInnerForwardLayers(innerForward),
72  theAllOuterBarrelLayers(allOuterBarrel),
73  theAllInnerBarrelLayers(allInnerBarrel),
74  theAllOuterBackwardLayers(allOuterBackward),
75  theAllInnerBackwardLayers(allInnerBackward),
76  theAllOuterForwardLayers(allOuterForward),
77  theAllInnerForwardLayers(allInnerForward) {}
78 
81  const MapB& outerBarrel,
82  const MapE& outerBackward,
83  const MapE& outerForward)
84  : theDetLayer(bdl),
85  theOuterBarrelLayers(outerBarrel),
86  theOuterBackwardLayers(outerBackward),
87  theOuterForwardLayers(outerForward) {}
88 
90  const MapB& outerBarrel,
91  const MapE& outerBackward,
92  const MapE& outerForward,
93  const MapB& allOuterBarrel,
94  const MapE& allOuterBackward,
95  const MapE& allOuterForward)
96  : theDetLayer(bdl),
97  theOuterBarrelLayers(outerBarrel),
98  theOuterBackwardLayers(outerBackward),
99  theOuterForwardLayers(outerForward),
100  theAllOuterBarrelLayers(allOuterBarrel),
101  theAllOuterBackwardLayers(allOuterBackward),
102  theAllOuterForwardLayers(allOuterForward) {}
103 
105  std::vector<const DetLayer*> nextLayers(NavigationDirection dir) const override;
106 
108  std::vector<const DetLayer*> nextLayers(const FreeTrajectoryState& fts, PropagationDirection dir) const override;
109 
110  std::vector<const DetLayer*> compatibleLayers(NavigationDirection dir) const override;
111 
113  std::vector<const DetLayer*> compatibleLayers(const FreeTrajectoryState& fts,
114  PropagationDirection dir) const override;
115 
117  const DetLayer* detLayer() const override;
118 
120  void setDetLayer(const DetLayer*) override;
121 
128 
135 
137  void setInwardLinks(const MapB&);
138  void setInwardCompatibleLinks(const MapB&);
139 
140 private:
141  void pushResult(std::vector<const DetLayer*>& result, const MapB& map) const;
142 
143  void pushResult(std::vector<const DetLayer*>& result, const MapE& map) const;
144 
145  void pushResult(std::vector<const DetLayer*>& result, const MapB& map, const FreeTrajectoryState& fts) const;
146 
147  void pushResult(std::vector<const DetLayer*>& result, const MapE& map, const FreeTrajectoryState& fts) const;
148  void pushCompatibleResult(std::vector<const DetLayer*>& result,
149  const MapB& map,
150  const FreeTrajectoryState& fts) const;
151 
152  void pushCompatibleResult(std::vector<const DetLayer*>& result,
153  const MapE& map,
154  const FreeTrajectoryState& fts) const;
155 
156 private:
170 };
171 #endif
std::vector< const DetLayer * > compatibleLayers(NavigationDirection dir) const override
MuonBarrelNavigableLayer(BarrelDetLayer *bdl, const MapB &outerBarrel, const MapE &outerBackward, const MapE &outerForward)
Constructor with outer layers only.
MuonBarrelNavigableLayer(const BarrelDetLayer *bdl, const MapB &outerBarrel, const MapE &outerBackward, const MapE &outerForward, const MapB &allOuterBarrel, const MapE &allOuterBackward, const MapE &allOuterForward)
const BarrelDetLayer * theDetLayer
std::vector< const DetLayer * > nextLayers(NavigationDirection dir) const override
NavigableLayer interface.
MuonBarrelNavigableLayer(BarrelDetLayer *bdl, const MapB &outerBarrel, const MapB &innerBarrel, const MapE &outerBackward, const MapE &outerForward, const MapE &innerBackward, const MapE &innerForward, const MapB &allOuterBarrel, const MapB &allInnerBarrel, const MapE &allOuterBackward, const MapE &allOuterForward, const MapE &allInnerBackward, const MapE &allInnerForward)
std::map< const BarrelDetLayer *, MuonEtaRange, MuonDetLayerComp > MapB
PropagationDirection
void setDetLayer(const DetLayer *) override
set DetLayer
MuonBarrelNavigableLayer(BarrelDetLayer *bdl, const MapB &outerBarrel, const MapB &innerBarrel, const MapE &outerBackward, const MapE &outerForward, const MapE &innerBackward, const MapE &innerForward)
Constructor.
void setInwardCompatibleLinks(const MapB &)
void pushResult(std::vector< const DetLayer *> &result, const MapB &map) const
void pushCompatibleResult(std::vector< const DetLayer *> &result, const MapB &map, const FreeTrajectoryState &fts) const
const DetLayer * detLayer() const override
return DetLayer
std::map< const ForwardDetLayer *, MuonEtaRange, MuonDetLayerComp > MapE
void setInwardLinks(const MapB &)
set inward links