CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoMuon/TrackingTools/interface/MuonCandidate.h

Go to the documentation of this file.
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