Go to the documentation of this file.00001 #ifndef TkNavigation_SimpleBarrelNavigableLayer_H
00002 #define TkNavigation_SimpleBarrelNavigableLayer_H
00003
00004 #include "RecoTracker/TkNavigation/interface/SimpleNavigableLayer.h"
00005
00006 #include <vector>
00007
00008
00012 class SimpleBarrelNavigableLayer : public SimpleNavigableLayer {
00013
00014 public:
00015
00016 SimpleBarrelNavigableLayer( BarrelDetLayer* detLayer,
00017 const BDLC& outerBLC,
00018 const FDLC& outerLeftFL,
00019 const FDLC& outerRightFL,
00020 const MagneticField* field,
00021 float epsilon,
00022 bool checkCrossingSide=true);
00023
00024 SimpleBarrelNavigableLayer( BarrelDetLayer* detLayer,
00025 const BDLC& outerBLC,
00026 const BDLC& innerBLC,
00027 const BDLC& allOuterBLC,
00028 const BDLC& allInnerBLC,
00029 const FDLC& outerLeftFL,
00030 const FDLC& outerRightFL,
00031 const FDLC& allOuterLeftFL,
00032 const FDLC& allOuterRightFL,
00033 const FDLC& innerLeftFL,
00034 const FDLC& innerRightFL,
00035 const FDLC& allInnerLeftFL,
00036 const FDLC& allInnerRightFL,
00037 const MagneticField* field,
00038 float epsilon,
00039 bool checkCrossingSide=true);
00040
00041
00042 virtual std::vector<const DetLayer*>
00043 nextLayers( NavigationDirection direction) const;
00044
00045 virtual std::vector<const DetLayer*>
00046 nextLayers( const FreeTrajectoryState& fts,
00047 PropagationDirection timeDirection) const;
00048
00049 virtual std::vector<const DetLayer*>
00050 compatibleLayers( NavigationDirection direction) const;
00051
00052 virtual std::vector<const DetLayer*>
00053 compatibleLayers( const FreeTrajectoryState& fts,
00054 PropagationDirection timeDirection) const;
00055
00056 virtual void setAdditionalLink(DetLayer*, NavigationDirection direction=insideOut);
00057
00058 virtual DetLayer* detLayer() const;
00059 virtual void setDetLayer( DetLayer* dl);
00060
00061 virtual void setInwardLinks(const BDLC& theBarrelv, const FDLC& theForwardv,TkLayerLess sorter = TkLayerLess(outsideIn));
00062
00063 private:
00064 bool areAllReachableLayersSet;
00065
00066 BarrelDetLayer* theDetLayer;
00067 BDLC theOuterBarrelLayers;
00068 BDLC theInnerBarrelLayers;
00069 BDLC theAllOuterBarrelLayers;
00070 BDLC theAllInnerBarrelLayers;
00071
00072 FDLC theOuterLeftForwardLayers;
00073 FDLC theOuterRightForwardLayers;
00074 FDLC theAllOuterLeftForwardLayers;
00075 FDLC theAllOuterRightForwardLayers;
00076
00077 FDLC theInnerLeftForwardLayers;
00078 FDLC theInnerRightForwardLayers;
00079 FDLC theAllInnerLeftForwardLayers;
00080 FDLC theAllInnerRightForwardLayers;
00081
00082 DLC theNegOuterLayers;
00083 DLC thePosOuterLayers;
00084 DLC theNegInnerLayers;
00085 DLC thePosInnerLayers;
00086
00087 };
00088
00089 #endif // SimpleBarrelNavigableLayer_H