00001 #ifndef RecoTracker_TkSeedGenerator_SeedFromProtoTrack_H 00002 #define RecoTracker_TkSeedGenerator_SeedFromProtoTrack_H 00003 00004 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" 00005 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" 00006 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00007 #include "RecoTracker/TkSeedingLayers/interface/SeedingHit.h" 00008 #include <boost/shared_ptr.hpp> 00009 00010 namespace reco { class Track; } 00011 namespace edm { class EventSetup; } 00012 00013 class SeedFromProtoTrack { 00014 public: 00015 00016 00017 SeedFromProtoTrack(const reco::Track & proto, const edm::EventSetup& ); 00018 SeedFromProtoTrack(const reco::Track & proto,const std::vector<ctfseeding::SeedingHit> & hits, 00019 const edm::EventSetup& es); 00020 00021 ~SeedFromProtoTrack() {} 00022 00023 TrajectorySeed trajectorySeed() const; 00024 00025 bool isValid() const { return theValid; } 00026 00027 private: 00028 00029 void init(const reco::Track & proto, const edm::EventSetup& es); 00030 00031 PropagationDirection direction() const { return alongMomentum; } 00032 00033 PTrajectoryStateOnDet trajectoryState() const { return *thePTraj; } 00034 00035 00036 typedef edm::OwnVector<TrackingRecHit> RecHitContainer; 00037 const RecHitContainer & hits() const { return theHits; } 00038 00039 private: 00040 00041 bool theValid; 00042 RecHitContainer theHits; 00043 boost::shared_ptr<PTrajectoryStateOnDet> thePTraj; 00044 00045 }; 00046 #endif