00001 #ifndef _LowPtClusterShapeSeedComparitor_h_ 00002 #define _LowPtClusterShapeSeedComparitor_h_ 00003 00004 00005 #include "RecoTracker/TkSeedingLayers/interface/SeedComparitor.h" 00006 00007 #include "DataFormats/GeometryVector/interface/GlobalTag.h" 00008 #include "DataFormats/GeometryVector/interface/Vector2DBase.h" 00009 typedef Vector2DBase<float,GlobalTag> Global2DVector; 00010 00011 //#include "DataFormats/GeometryVector/interface/LocalVector.h" 00012 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00013 #include "DataFormats/GeometryVector/interface/GlobalVector.h" 00014 00015 #include <vector> 00016 00017 namespace edm { class ParameterSet; class EventSetup; } 00018 00019 class TrackerGeometry; 00020 class TrackingRecHit; 00021 class ClusterShapeHitFilter; 00022 00023 class LowPtClusterShapeSeedComparitor : public SeedComparitor 00024 { 00025 public: 00026 LowPtClusterShapeSeedComparitor(const edm::ParameterSet& ps); 00027 virtual ~LowPtClusterShapeSeedComparitor(); 00028 virtual bool compatible(const SeedingHitSet &hits, const edm::EventSetup &es); 00029 00030 private: 00031 float areaParallelogram(const Global2DVector & a, 00032 const Global2DVector & b); 00033 std::vector<GlobalVector> 00034 getGlobalDirs(const std::vector<GlobalPoint> & globalPoss); 00035 std::vector<GlobalPoint> 00036 getGlobalPoss(const TransientTrackingRecHit::ConstRecHitContainer & recHits); 00037 00038 const ClusterShapeHitFilter * theFilter; 00039 }; 00040 00041 #endif 00042