CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MuonCandidate.h
Go to the documentation of this file.
1 #ifndef RecoMuon_TrackingTools_MuonCandidate_H
2 #define RecoMuon_TrackingTools_MuonCandidate_H
3 
12 #include <vector>
13 #include <memory>
14 
16 public:
17  typedef std::vector<std::unique_ptr<Trajectory>> TrajectoryContainer;
18  typedef std::vector<std::unique_ptr<MuonCandidate>> CandidateContainer;
19 
20 public:
22  MuonCandidate(std::unique_ptr<Trajectory> traj,
23  const reco::TrackRef& muon,
24  const reco::TrackRef& tracker,
25  std::unique_ptr<Trajectory> trackerTraj)
26  : theTrajectory(std::move(traj)),
27  theMuonTrack(muon),
28  theTrackerTrack(tracker),
29  theTrackerTrajectory(std::move(trackerTraj)) {}
30 
31  MuonCandidate(std::unique_ptr<Trajectory> traj, const reco::TrackRef& muon, const reco::TrackRef& tracker)
32  : theTrajectory(std::move(traj)), theMuonTrack(muon), theTrackerTrack(tracker), theTrackerTrajectory(nullptr) {}
33 
35  virtual ~MuonCandidate() {}
36 
38  Trajectory const* trajectory() const { return theTrajectory.get(); }
39 
40  std::unique_ptr<Trajectory> releaseTrajectory() { return std::move(theTrajectory); }
41 
43  const reco::TrackRef muonTrack() const { return theMuonTrack; }
44 
46  const reco::TrackRef trackerTrack() const { return theTrackerTrack; }
47 
49  Trajectory const* trackerTrajectory() const { return theTrackerTrajectory.get(); }
50  std::unique_ptr<Trajectory> releaseTrackerTrajectory() { return std::move(theTrackerTrajectory); }
51 
52 private:
53  std::unique_ptr<Trajectory> theTrajectory;
56  std::unique_ptr<Trajectory> theTrackerTrajectory;
57 };
58 #endif
const reco::TrackRef muonTrack() const
return muon track
Definition: MuonCandidate.h:43
std::unique_ptr< Trajectory > theTrackerTrajectory
Definition: MuonCandidate.h:56
std::unique_ptr< Trajectory > theTrajectory
Definition: MuonCandidate.h:53
std::unique_ptr< Trajectory > releaseTrackerTrajectory()
Definition: MuonCandidate.h:50
reco::TrackRef theTrackerTrack
Definition: MuonCandidate.h:55
const reco::TrackRef trackerTrack() const
return tracker track
Definition: MuonCandidate.h:46
MuonCandidate(std::unique_ptr< Trajectory > traj, const reco::TrackRef &muon, const reco::TrackRef &tracker)
Definition: MuonCandidate.h:31
reco::TrackRef theMuonTrack
Definition: MuonCandidate.h:54
def move
Definition: eostools.py:511
std::unique_ptr< Trajectory > releaseTrajectory()
Definition: MuonCandidate.h:40
std::vector< std::unique_ptr< MuonCandidate > > CandidateContainer
Definition: MuonCandidate.h:18
Trajectory const * trajectory() const
return trajectory
Definition: MuonCandidate.h:38
std::vector< std::unique_ptr< Trajectory > > TrajectoryContainer
Definition: MuonCandidate.h:17
Trajectory const * trackerTrajectory() const
return tracker trajectory
Definition: MuonCandidate.h:49
virtual ~MuonCandidate()
destructor
Definition: MuonCandidate.h:35
MuonCandidate(std::unique_ptr< Trajectory > traj, const reco::TrackRef &muon, const reco::TrackRef &tracker, std::unique_ptr< Trajectory > trackerTraj)
constructor
Definition: MuonCandidate.h:22