00001 #ifndef RecoMuon_TrackingTools_MuonCandidate_H 00002 #define RecoMuon_TrackingTools_MuonCandidate_H 00003 00012 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00013 #include "TrackingTools/PatternTools/interface/Trajectory.h" 00014 #include <vector> 00015 00016 00017 class MuonCandidate { 00018 00019 public: 00020 00021 typedef std::vector<Trajectory*> TrajectoryContainer; 00022 typedef std::vector<MuonCandidate*> CandidateContainer; 00023 00024 public: 00025 00027 MuonCandidate(Trajectory* traj, 00028 const reco::TrackRef& muon, 00029 const reco::TrackRef& tracker, 00030 Trajectory* trackerTraj) : 00031 theTrajectory(traj), theMuonTrack(muon), theTrackerTrack(tracker), theTrackerTrajectory(trackerTraj) {} 00032 00033 MuonCandidate(Trajectory* traj, 00034 const reco::TrackRef& muon, 00035 const reco::TrackRef& tracker) : 00036 theTrajectory(traj), theMuonTrack(muon), theTrackerTrack(tracker), theTrackerTrajectory(0) {} 00037 00039 virtual ~MuonCandidate() { } 00040 00042 Trajectory* trajectory() const { return theTrajectory; } 00043 00045 const reco::TrackRef muonTrack() const { return theMuonTrack; } 00046 00048 const reco::TrackRef trackerTrack() const { return theTrackerTrack; } 00049 00051 Trajectory* trackerTrajectory() const { return theTrackerTrajectory; } 00052 00053 private: 00054 00055 Trajectory* theTrajectory; 00056 reco::TrackRef theMuonTrack; 00057 reco::TrackRef theTrackerTrack; 00058 Trajectory* theTrackerTrajectory; 00059 00060 }; 00061 #endif