CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/RecoMuon/Navigation/interface/MuonNavigableLayer.h

Go to the documentation of this file.
00001 #ifndef Navigation_MuonNavigableLayer_H
00002 #define Navigation_MuonNavigableLayer_H
00003 
00019 #include "RecoMuon/Navigation/interface/MuonDetLayerMap.h"
00020 #include "RecoMuon/Navigation/interface/MuonEtaRange.h"
00021 
00022 class DetLayer;
00023 class BarrelDetLayer;
00024 
00025 #include "TrackingTools/DetLayers/interface/NavigableLayer.h"
00026 
00027 
00028 class MuonNavigableLayer : public NavigableLayer {
00029 
00030   public:
00031 
00033     virtual std::vector<const DetLayer*> nextLayers(NavigationDirection dir) const=0;
00034 
00036     virtual std::vector<const DetLayer*> nextLayers(const FreeTrajectoryState& fts, 
00037                                                PropagationDirection dir) const=0;
00038 
00039     virtual std::vector<const DetLayer*> compatibleLayers(NavigationDirection dir) const=0;
00040 
00042     virtual std::vector<const DetLayer*> compatibleLayers(const FreeTrajectoryState& fts,
00043                                                PropagationDirection dir) const=0;
00044 
00046     virtual DetLayer* detLayer() const=0;
00047 
00049     virtual void setDetLayer(DetLayer*)=0;
00050 
00051     MuonEtaRange trackingRange(const FreeTrajectoryState& fts) const;
00052 
00053     bool isInsideOut(const FreeTrajectoryState& fts) const;
00054 
00055 };
00056 #endif