00001 #ifndef _HICTKOUTERSTARTINGLAYERFINDER_H_ 00002 #define _HICTKOUTERSTARTINGLAYERFINDER_H_ 00003 00004 #include "TrackingTools/DetLayers/interface/DetLayer.h" 00005 #include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" 00006 #include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" 00007 #include "TrackingTools/DetLayers/interface/DetLayer.h" 00008 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" 00009 #include "MagneticField/Engine/interface/MagneticField.h" 00010 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h" 00011 00012 00013 #include "RecoHI/HiMuonAlgos/interface/HICConst.h" 00014 #include <vector> 00015 00016 00023 namespace cms{ 00024 class HICTkOuterStartingLayerFinder { 00025 public: 00026 typedef std::vector<DetLayer*> LayerContainer; 00027 00028 HICTkOuterStartingLayerFinder(int&, const MagneticField * mf, const GeometricSearchTracker* th, const HICConst* ); 00029 00030 ~HICTkOuterStartingLayerFinder(){}; 00031 00032 LayerContainer startingLayers(FreeTrajectoryState& fts); 00033 00034 00035 private: 00036 00037 bool findForwardLayers(const FreeTrajectoryState& fts, 00038 std::vector<ForwardDetLayer*>& fls, LayerContainer& lc); 00039 LayerContainer findBarrelLayers(const FreeTrajectoryState& fts, 00040 std::vector<ForwardDetLayer*>& fls, LayerContainer& lc); 00041 00042 std::vector<BarrelDetLayer*> theBarrelLayers; 00043 std::vector<ForwardDetLayer*> forwardPosLayers; 00044 std::vector<ForwardDetLayer*> forwardNegLayers; 00045 std::vector<DetLayer*> theDetLayer; 00046 int NumberOfSigm; 00047 const MagneticField* magfield; 00048 const GeometricSearchTracker* theTracker; 00049 const HICConst* theHICConst; 00050 double length; 00051 }; 00052 } 00053 #endif 00054 00055 00056 00057 00058