Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:54

0001 #ifndef RecoMuon_GlobalTrackFinder_GlobalMuonTrajectoryBuilder_H
0002 #define RecoMuon_GlobalTrackFinder_GlobalMuonTrajectoryBuilder_H
0003 
0004 /** \class GlobalMuonTrajectoryBuilder
0005  *  class to build muon trajectory
0006  *
0007  *
0008  *  \author N. Neumeister    Purdue University
0009  *  \author C. Liu       Purdue University
0010  *  \author A. Everett       Purdue University
0011  */
0012 
0013 #include "RecoMuon/GlobalTrackingTools/interface/GlobalTrajectoryBuilderBase.h"
0014 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h"
0015 #include "FWCore/Utilities/interface/InputTag.h"
0016 #include "FWCore/Framework/interface/ConsumesCollector.h"
0017 #include "DataFormats/VertexReco/interface/Vertex.h"
0018 
0019 namespace edm {
0020   class ParameterSet;
0021   class Event;
0022   class EventSetup;
0023 }  // namespace edm
0024 
0025 class MuonServiceProxy;
0026 class Trajectory;
0027 
0028 class GlobalMuonTrajectoryBuilder : public GlobalTrajectoryBuilderBase {
0029 public:
0030   /// constructor with Parameter Set and MuonServiceProxy
0031   GlobalMuonTrajectoryBuilder(const edm::ParameterSet&, const MuonServiceProxy*, edm::ConsumesCollector&);
0032 
0033   /// destructor
0034   ~GlobalMuonTrajectoryBuilder() override;
0035 
0036   using GlobalTrajectoryBuilderBase::trajectories;
0037 
0038   /// reconstruct trajectories from standalone and tracker only Tracks
0039   MuonTrajectoryBuilder::CandidateContainer trajectories(const TrackCand&) override;
0040 
0041   /// pass the Event to the algo at each event
0042   void setEvent(const edm::Event&) override;
0043 
0044 private:
0045   /// make a TrackCand collection using tracker Track, Trajectory information
0046   std::vector<TrackCand> makeTkCandCollection(const TrackCand&) override;
0047 
0048 private:
0049   edm::InputTag theTkTrackLabel;
0050   edm::EDGetTokenT<reco::TrackCollection> allTrackerTracksToken;
0051   edm::Handle<reco::TrackCollection> allTrackerTracks;
0052   edm::InputTag thePrimaryVtxLabel;
0053   edm::EDGetTokenT<reco::VertexCollection> primaryVertexToken;
0054   edm::Handle<reco::VertexCollection> vertexCollection;
0055   bool selectHighPurity_;
0056 };
0057 #endif