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
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
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