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 
11 
12 
13 class DetLayer;
15 
25 public:
26 
27  virtual ~NavigableLayer() {}
28 
29  virtual std::vector<const DetLayer*>
30  nextLayers( NavigationDirection direction) const = 0;
31 
32  virtual std::vector<const DetLayer*>
33  nextLayers( const FreeTrajectoryState& fts,
34  PropagationDirection timeDirection) const = 0;
35 
36  virtual std::vector<const DetLayer*>
37  compatibleLayers( NavigationDirection direction) const = 0;
38 
39  virtual std::vector<const DetLayer*>
41  PropagationDirection timeDirection) const {int counter =0; return compatibleLayers(fts,timeDirection,counter);};
42 
43  virtual std::vector<const DetLayer*>
45  PropagationDirection timeDirection,
46  int& counter)const {
47  edm::LogWarning("DetLayers") << "compatibleLayers(fts,dir,counter) not implemented. returning empty vector";
48  return std::vector<const DetLayer*>() ;
49  }
50 
51  virtual DetLayer* detLayer() const = 0;
52  virtual void setDetLayer( DetLayer* dl) = 0;
53 
54 };
55 
56 #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
static std::atomic< unsigned int > counter
virtual std::vector< const DetLayer * > compatibleLayers(const FreeTrajectoryState &fts, PropagationDirection timeDirection, int &counter) const