![]() |
![]() |
00001 #ifndef TSCPBuilderNoMaterial_H 00002 #define TSCPBuilderNoMaterial_H 00003 00004 #include "TrackingTools/PatternTools/interface/TrajectoryStateClosestToPointBuilder.h" 00005 #include "DataFormats/GeometryVector/interface/GlobalTag.h" 00006 #include "DataFormats/GeometryVector/interface/Point3DBase.h" 00007 #include "DataFormats/GeometryVector/interface/Vector3DBase.h" 00008 00016 class TSCPBuilderNoMaterial : 00017 public TrajectoryStateClosestToPointBuilder 00018 { 00019 public: 00020 00021 virtual ~TSCPBuilderNoMaterial(){} 00022 00023 virtual TrajectoryStateClosestToPoint operator() 00024 (const FTS& originalFTS, const GlobalPoint& referencePoint) const; 00025 00026 virtual TrajectoryStateClosestToPoint operator() 00027 (const TSOS& originalTSOS, const GlobalPoint& referencePoint) const; 00028 00029 private: 00030 00031 typedef Point3DBase< double, GlobalTag> GlobalPointDouble; 00032 typedef Vector3DBase< double, GlobalTag> GlobalVectorDouble; 00033 typedef std::pair<bool, FreeTrajectoryState> PairBoolFTS; 00034 00035 PairBoolFTS createFTSatTransverseImpactPoint(const FTS& originalFTS, 00036 const GlobalPoint& referencePoint) const; 00037 00038 PairBoolFTS createFTSatTransverseImpactPointCharged(const FTS& originalFTS, 00039 const GlobalPoint& referencePoint) const; 00040 00041 PairBoolFTS createFTSatTransverseImpactPointNeutral(const FTS& originalFTS, 00042 const GlobalPoint& referencePoint) const; 00043 }; 00044 #endif