CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
22 public:
23 
24  virtual ~NavigableLayer() {}
25 
26  virtual std::vector<const DetLayer*>
27  nextLayers( NavigationDirection direction) const = 0;
28 
29  virtual std::vector<const DetLayer*>
30  nextLayers( const FreeTrajectoryState& fts,
31  PropagationDirection timeDirection) const = 0;
32 
33  virtual std::vector<const DetLayer*>
34  compatibleLayers( NavigationDirection direction) const = 0;
35 
36  virtual std::vector<const DetLayer*>
38  PropagationDirection timeDirection) const {int counter =0; return compatibleLayers(fts,timeDirection,counter);};
39 
40  virtual std::vector<const DetLayer*>
42  PropagationDirection timeDirection,
43  int& counter)const {
44  edm::LogWarning("DetLayers") << "compatibleLayers(fts,dir,counter) not implemented. returning empty vector";
45  return std::vector<const DetLayer*>() ;
46  }
47 
48  virtual DetLayer* detLayer() const = 0;
49  virtual void setDetLayer( DetLayer* dl) = 0;
50 
51 };
52 
53 #endif
virtual DetLayer * detLayer() const =0
PropagationDirection
virtual std::vector< const DetLayer * > compatibleLayers(NavigationDirection direction) const =0
virtual std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection) const
virtual void setDetLayer(DetLayer *dl)=0
virtual ~NavigableLayer()
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection direction) const =0
virtual std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const