Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-01-08 03:36:31

0001 #ifndef RecoMuon_GlobalTrackingTools_GlobalMuonRefitter_H
0002 #define RecoMuon_GlobalTrackingTools_GlobalMuonRefitter_H
0003 
0004 #include "DataFormats/Common/interface/Handle.h"
0005 
0006 #include "FWCore/Framework/interface/ESHandle.h"
0007 #include "FWCore/Utilities/interface/InputTag.h"
0008 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0009 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0010 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0011 
0012 #include "DataFormats/DTRecHit/interface/DTRecSegment2D.h"
0013 #include "DataFormats/DTRecHit/interface/DTRecSegment4D.h"
0014 #include "DataFormats/CSCRecHit/interface/CSCSegment.h"
0015 #include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h"
0016 
0017 #include "DataFormats/MuonReco/interface/Muon.h"
0018 #include "FWCore/Framework/interface/ConsumesCollector.h"
0019 
0020 namespace edm {
0021   class Event;
0022   class EventSetup;
0023 }  // namespace edm
0024 namespace reco {
0025   class TransientTrack;
0026 }
0027 
0028 class MuonServiceProxy;
0029 
0030 class MuonSegmentMatcher {
0031 public:
0032   /// constructor with Parameter Set and MuonServiceProxy
0033   MuonSegmentMatcher(const edm::ParameterSet&, edm::ConsumesCollector& iC);
0034 
0035   /// destructor
0036   virtual ~MuonSegmentMatcher();
0037 
0038   /// perform the matching
0039   std::vector<const DTRecSegment4D*> matchDT(const reco::Track& muon, const edm::Event& event);
0040 
0041   std::vector<const CSCSegment*> matchCSC(const reco::Track& muon, const edm::Event& event);
0042 
0043   std::vector<const RPCRecHit*> matchRPC(const reco::Track& muon, const edm::Event& event);
0044 
0045   static void fillPSetDescription(edm::ParameterSetDescription& desc);
0046 
0047 protected:
0048 private:
0049   const MuonServiceProxy* theService;
0050   const edm::Event* theEvent;
0051 
0052   edm::InputTag TKtrackTags_;
0053   edm::InputTag trackTags_;  //used to select what tracks to read from configuration file
0054   edm::InputTag DTSegmentTags_;
0055   edm::InputTag CSCSegmentTags_;
0056   edm::InputTag RPCHitTags_;
0057 
0058   edm::EDGetTokenT<DTRecSegment4DCollection> dtRecHitsToken;
0059   edm::EDGetTokenT<CSCSegmentCollection> allSegmentsCSCToken;
0060   edm::EDGetTokenT<RPCRecHitCollection> rpcRecHitsToken;
0061 
0062   double dtRadius_;
0063 
0064   bool dtTightMatch;
0065   bool cscTightMatch;
0066 };
0067 #endif