Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:13

0001 #ifndef Navigation_MuonNavigableLayer_H
0002 #define Navigation_MuonNavigableLayer_H
0003 
0004 /** \class MuonNavigableLayer
0005  *
0006  *  base class for MuonBarrelNavigableLayer and MuonForwardNavigable.
0007  *  trackingRange defines an MuonEtaRange for an FTS, 
0008  *  which is used for search compatible DetLayers.
0009  *
0010  *
0011  * \author : Chang Liu - Purdue University <Chang.Liu@cern.ch>
0012  *
0013  * Modification:
0014  *
0015  */
0016 
0017 #include "RecoMuon/Navigation/interface/MuonDetLayerMap.h"
0018 #include "RecoMuon/Navigation/interface/MuonEtaRange.h"
0019 
0020 class DetLayer;
0021 class BarrelDetLayer;
0022 
0023 #include "TrackingTools/DetLayers/interface/NavigableLayer.h"
0024 
0025 class MuonNavigableLayer : public NavigableLayer {
0026 public:
0027   /// NavigableLayer interface
0028   std::vector<const DetLayer*> nextLayers(NavigationDirection dir) const override = 0;
0029 
0030   /// NavigableLayer interface
0031   std::vector<const DetLayer*> nextLayers(const FreeTrajectoryState& fts, PropagationDirection dir) const override = 0;
0032 
0033   std::vector<const DetLayer*> compatibleLayers(NavigationDirection dir) const override = 0;
0034 
0035   /// NavigableLayer interface
0036   std::vector<const DetLayer*> compatibleLayers(const FreeTrajectoryState& fts,
0037                                                 PropagationDirection dir) const override = 0;
0038 
0039   /// return DetLayer
0040   const DetLayer* detLayer() const override = 0;
0041 
0042   /// set DetLayer
0043   void setDetLayer(const DetLayer*) override = 0;
0044 
0045   MuonEtaRange trackingRange(const FreeTrajectoryState& fts) const;
0046 
0047   bool isInsideOut(const FreeTrajectoryState& fts) const;
0048 };
0049 #endif