CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/RecoMuon/GlobalTrackingTools/interface/DirectTrackerNavigation.h

Go to the documentation of this file.
00001 #ifndef RecoMuon_GlobalTrackingTools_DirectTrackerNavigation_H
00002 #define RecoMuon_GlobalTrackingTools_DirectTrackerNavigation_H
00003 
00016 #include "FWCore/Framework/interface/ESHandle.h"
00017 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
00018 
00019 class DetLayer;
00020 class BarrelDetLayer;
00021 class ForwardDetLayer;
00022 class FreeTrajectoryState;
00023 
00024 //              ---------------------
00025 //              -- Class Interface --
00026 //              ---------------------
00027 
00028 class DirectTrackerNavigation {
00029 
00030   public:
00031 
00033     DirectTrackerNavigation(const edm::ESHandle<GeometricSearchTracker>&, 
00034                             bool outOnly = true);
00035 
00037     virtual ~DirectTrackerNavigation() {}
00038 
00040     DirectTrackerNavigation* clone() const {
00041       return new DirectTrackerNavigation(*this);
00042     }
00043 
00045     std::vector<const DetLayer*> 
00046       compatibleLayers(const FreeTrajectoryState& fts, 
00047                        PropagationDirection timeDirection) const;
00048 
00049   private:
00050 
00051     void inOutTOB(const FreeTrajectoryState&, std::vector<const DetLayer*>&) const;
00052 
00053     void inOutTIB(const FreeTrajectoryState&, std::vector<const DetLayer*>&) const;
00054 
00055     void inOutPx(const FreeTrajectoryState&, std::vector<const DetLayer*>&) const;
00056 
00057     void inOutFTEC(const FreeTrajectoryState&, std::vector<const DetLayer*>&) const;
00058 
00059     void inOutFTID(const FreeTrajectoryState&, std::vector<const DetLayer*>&) const;
00060 
00061     void inOutFPx(const FreeTrajectoryState&, std::vector<const DetLayer*>&) const;
00062 
00063     void inOutBTEC(const FreeTrajectoryState&, std::vector<const DetLayer*>&) const;
00064 
00065     void inOutBTID(const FreeTrajectoryState&, std::vector<const DetLayer*>&) const;
00066 
00067     void inOutBPx(const FreeTrajectoryState&, std::vector<const DetLayer*>&) const;
00068 
00069     bool checkCompatible(const FreeTrajectoryState&, const BarrelDetLayer*) const;
00070 
00071     bool checkCompatible(const FreeTrajectoryState&, const ForwardDetLayer*) const;
00072 
00073     bool outward(const FreeTrajectoryState&) const;
00074 
00075     float calculateEta(float r, float z) const;
00076 
00077   private:
00078 
00079     edm::ESHandle<GeometricSearchTracker> theGeometricSearchTracker;
00080 
00081     bool theOutLayerOnlyFlag;
00082 
00083     float theEpsilon;
00084 
00085 };
00086 #endif