CMS 3D CMS Logo

NavigableLayer.h
Go to the documentation of this file.
1 #ifndef DetLayers_NavigableLayer_h
2 #define DetLayers_NavigableLayer_h
3 
7 
8 #include <vector>
9 
10 class DetLayer;
12 class NavigationSchool;
13 
23 public:
24  virtual ~NavigableLayer() {}
25 
26  virtual std::vector<const DetLayer*> nextLayers(NavigationDirection direction) const = 0;
27 
28  virtual std::vector<const DetLayer*> nextLayers(const FreeTrajectoryState& fts,
29  PropagationDirection timeDirection) const = 0;
30 
31  virtual std::vector<const DetLayer*> compatibleLayers(NavigationDirection direction) const = 0;
32 
33  virtual std::vector<const DetLayer*> compatibleLayers(const FreeTrajectoryState& fts,
34  PropagationDirection timeDirection) const {
35  int counter = 0;
36  return compatibleLayers(fts, timeDirection, counter);
37  };
38 
39  virtual std::vector<const DetLayer*> compatibleLayers(const FreeTrajectoryState& fts,
40  PropagationDirection timeDirection,
41  int& counter) const {
42  edm::LogWarning("DetLayers") << "compatibleLayers(fts,dir,counter) not implemented. returning empty vector";
43  return std::vector<const DetLayer*>();
44  }
45 
46  virtual DetLayer const* detLayer() const = 0;
47  virtual void setDetLayer(DetLayer const* dl) = 0;
48 
49  void setSchool(NavigationSchool const* sh) { school = sh; }
50 
51 protected:
52  NavigationSchool const* school = nullptr;
53 };
54 
55 #endif
NavigableLayer::detLayer
virtual DetLayer const * detLayer() const =0
counter
Definition: counter.py:1
MessageLogger.h
DetLayer
Definition: DetLayer.h:21
NavigableLayer::setDetLayer
virtual void setDetLayer(DetLayer const *dl)=0
NavigationSchool
Definition: NavigationSchool.h:18
NavigableLayer::compatibleLayers
virtual std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
Definition: NavigableLayer.h:33
NavigableLayer::~NavigableLayer
virtual ~NavigableLayer()
Definition: NavigableLayer.h:24
edm::LogWarning
Definition: MessageLogger.h:141
NavigableLayer
Definition: NavigableLayer.h:22
NavigableLayer::compatibleLayers
virtual std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const
Definition: NavigableLayer.h:39
PropagationDirection.h
NavigableLayer::school
NavigationSchool const * school
Definition: NavigableLayer.h:52
NavigationDirection
NavigationDirection
Definition: NavigationDirection.h:4
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
NavigableLayer::setSchool
void setSchool(NavigationSchool const *sh)
Definition: NavigableLayer.h:49
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
NavigableLayer::nextLayers
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection direction) const =0
NavigationDirection.h
NavigableLayer::compatibleLayers
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection direction) const =0