File indexing completed on 2023-03-17 11:22:57
0001 #ifndef TkNavigation_SimpleBarrelNavigableLayer_H
0002 #define TkNavigation_SimpleBarrelNavigableLayer_H
0003 #include "FWCore/Utilities/interface/Visibility.h"
0004
0005 #include "SimpleNavigableLayer.h"
0006
0007 #include <vector>
0008
0009
0010
0011
0012 class dso_hidden SimpleBarrelNavigableLayer final : public SimpleNavigableLayer {
0013 public:
0014 SimpleBarrelNavigableLayer(BarrelDetLayer const* detLayer,
0015 const BDLC& outerBLC,
0016 const FDLC& outerLeftFL,
0017 const FDLC& outerRightFL,
0018 const MagneticField* field,
0019 float epsilon,
0020 bool checkCrossingSide = true);
0021
0022
0023 std::vector<const DetLayer*> nextLayers(NavigationDirection direction) const override;
0024
0025 std::vector<const DetLayer*> nextLayers(const FreeTrajectoryState& fts,
0026 PropagationDirection timeDirection) const override;
0027
0028 using SimpleNavigableLayer::compatibleLayers;
0029
0030 std::vector<const DetLayer*> compatibleLayers(NavigationDirection direction) const override;
0031
0032 std::vector<const DetLayer*> compatibleLayers(const FreeTrajectoryState& fts,
0033 PropagationDirection dir) const override {
0034 int counter = 0;
0035 return SimpleNavigableLayer::compatibleLayers(fts, dir, counter);
0036 }
0037
0038 void setAdditionalLink(const DetLayer*, NavigationDirection direction = insideOut) override;
0039
0040 const DetLayer* detLayer() const override { return theDetLayer; }
0041 void setDetLayer(const DetLayer* dl) override;
0042
0043 void setInwardLinks(const BDLC& theBarrelv,
0044 const FDLC& theForwardv,
0045 TkLayerLess sorter = TkLayerLess(outsideIn)) override;
0046
0047 private:
0048 const BarrelDetLayer* theDetLayer;
0049 BDLC theOuterBarrelLayers;
0050 BDLC theInnerBarrelLayers;
0051
0052 FDLC theOuterLeftForwardLayers;
0053 FDLC theOuterRightForwardLayers;
0054
0055 FDLC theInnerLeftForwardLayers;
0056 FDLC theInnerRightForwardLayers;
0057
0058 DLC theNegOuterLayers;
0059 DLC thePosOuterLayers;
0060 DLC theNegInnerLayers;
0061 DLC thePosInnerLayers;
0062 };
0063
0064 #endif