CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_8_patch3/src/RecoTracker/TkNavigation/interface/SimpleBarrelNavigableLayer.h

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   // NavigableLayer interface
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