Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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 /** A concrete NavigableLayer for the barrel 
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   // NavigableLayer interface
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  // SimpleBarrelNavigableLayer_H