Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:17

0001 #ifndef RecoMuon_TrackingTools_MuonTrajectoryBuilder_H
0002 #define RecoMuon_TrackingTools_MuonTrajectoryBuilder_H
0003 
0004 /** \class MuonTrajectoryBuilder
0005  *  Base class for the Muon reco Trajectory Builder 
0006  *
0007  *  \author R. Bellan - INFN Torino
0008  */
0009 
0010 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0011 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0012 #include "RecoMuon/TrackingTools/interface/MuonCandidate.h"
0013 #include <vector>
0014 
0015 namespace edm {
0016   class Event;
0017 }
0018 
0019 class TrajectorySeed;
0020 
0021 class MuonTrajectoryBuilder {
0022 public:
0023   typedef MuonCandidate::TrajectoryContainer TrajectoryContainer;
0024   typedef MuonCandidate::CandidateContainer CandidateContainer;
0025   typedef std::pair<const Trajectory*, reco::TrackRef> TrackCand;
0026 
0027   /// constructor
0028   MuonTrajectoryBuilder() {}
0029 
0030   /// destructor
0031   virtual ~MuonTrajectoryBuilder() {}
0032 
0033   /// return a container of the reconstructed trajectories compatible with a given seed
0034   virtual TrajectoryContainer trajectories(const TrajectorySeed&) = 0;
0035 
0036   /// return a container reconstructed muons starting from a given track
0037   virtual CandidateContainer trajectories(const TrackCand&) = 0;
0038 
0039   /// pass the Event to the algo at each event
0040   virtual void setEvent(const edm::Event& event) = 0;
0041 
0042 private:
0043 };
0044 #endif