Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:52

0001 #ifndef TkNavigation_SimpleForwardNavigableLayer_H
0002 #define TkNavigation_SimpleForwardNavigableLayer_H
0003 #include "FWCore/Utilities/interface/Visibility.h"
0004 
0005 #include "SimpleNavigableLayer.h"
0006 
0007 /** A concrete NavigableLayer for the forward
0008  */
0009 
0010 class dso_hidden SimpleForwardNavigableLayer final : public SimpleNavigableLayer {
0011 public:
0012   SimpleForwardNavigableLayer(const ForwardDetLayer* detLayer,
0013                               const BDLC& outerBL,
0014                               const FDLC& outerFL,
0015                               const MagneticField* field,
0016                               float epsilon,
0017                               bool checkCrossingSide = true);
0018 
0019   // NavigableLayer interface
0020   std::vector<const DetLayer*> nextLayers(NavigationDirection direction) const override;
0021 
0022   std::vector<const DetLayer*> nextLayers(const FreeTrajectoryState& fts,
0023                                           PropagationDirection timeDirection) const override;
0024 
0025   using SimpleNavigableLayer::compatibleLayers;
0026 
0027   std::vector<const DetLayer*> compatibleLayers(NavigationDirection direction) const override;
0028 
0029   std::vector<const DetLayer*> compatibleLayers(const FreeTrajectoryState& fts,
0030                                                 PropagationDirection dir) const override {
0031     int counter = 0;
0032     return SimpleNavigableLayer::compatibleLayers(fts, dir, counter);
0033   }
0034 
0035   void setAdditionalLink(const DetLayer*, NavigationDirection direction = insideOut) override;
0036 
0037   const DetLayer* detLayer() const override { return theDetLayer; }
0038   void setDetLayer(const DetLayer* dl) override;
0039 
0040   void setInwardLinks(const BDLC&, const FDLC&, TkLayerLess sorter = TkLayerLess(outsideIn)) override;
0041 
0042 private:
0043   const ForwardDetLayer* theDetLayer;
0044   BDLC theOuterBarrelLayers;
0045   BDLC theInnerBarrelLayers;
0046 
0047   FDLC theOuterForwardLayers;
0048   FDLC theInnerForwardLayers;
0049 
0050   DLC theOuterLayers;
0051   DLC theInnerLayers;
0052 };
0053 
0054 #endif  // SimpleForwardNavigableLayer_H