00001 #ifndef RecoMuon_TrackingTools_MuonTrajectoryBuilder_H 00002 #define RecoMuon_TrackingTools_MuonTrajectoryBuilder_H 00003 00012 #include "TrackingTools/PatternTools/interface/Trajectory.h" 00013 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00014 #include "RecoMuon/TrackingTools/interface/MuonCandidate.h" 00015 #include <vector> 00016 00017 namespace edm {class Event;} 00018 00019 class TrajectorySeed; 00020 00021 class MuonTrajectoryBuilder { 00022 00023 public: 00024 00025 typedef MuonCandidate::TrajectoryContainer TrajectoryContainer; 00026 typedef MuonCandidate::CandidateContainer CandidateContainer; 00027 typedef std::pair<const Trajectory*, reco::TrackRef> TrackCand; 00028 00030 MuonTrajectoryBuilder() {} 00031 00033 virtual ~MuonTrajectoryBuilder() {} 00034 00036 virtual TrajectoryContainer trajectories(const TrajectorySeed&) = 0; 00037 00039 virtual CandidateContainer trajectories(const TrackCand&) = 0; 00040 00042 virtual void setEvent(const edm::Event& event) = 0; 00043 00044 private: 00045 }; 00046 #endif