Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:56:43

0001 #ifndef MuonAlignmentAlgorithms_SegmentToTrackAssociator_H
0002 #define MuonAlignmentAlgorithms_SegmentToTrackAssociator_H
0003 
0004 #include <vector>
0005 
0006 //standard include
0007 #include "FWCore/Framework/interface/ConsumesCollector.h"
0008 #include "FWCore/Framework/interface/Frameworkfwd.h"
0009 #include "FWCore/Framework/interface/Event.h"
0010 #include "FWCore/Framework/interface/MakerMacros.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0013 #include "FWCore/Utilities/interface/InputTag.h"
0014 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0015 #include "TrackingTools/TransientTrackingRecHit/interface/TransientTrackingRecHit.h"
0016 #include "TrackingTools/PatternTools/interface/TrajectoryMeasurement.h"
0017 #include "TrackingTools/DetLayers/interface/DetLayer.h"
0018 #include "TrackingTools/PatternTools/interface/TrajMeasLessEstim.h"
0019 #include "RecoMuon/TrackingTools/interface/MuonPatternRecoDumper.h"
0020 #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h"
0021 #include "DataFormats/DTRecHit/interface/DTRecSegment4DCollection.h"
0022 #include "DataFormats/CSCRecHit/interface/CSCSegmentCollection.h"
0023 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0024 #include "DataFormats/TrackReco/interface/Track.h"
0025 #include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h"
0026 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
0027 
0028 namespace edm {
0029   class EventSetup;
0030 }  // namespace edm
0031 
0032 class SegmentToTrackAssociator {
0033 public:
0034   typedef std::vector<std::vector<int> > intDVector;
0035 
0036   //constructor
0037   SegmentToTrackAssociator(const edm::ParameterSet&,
0038                            const GlobalTrackingGeometry* GlobalTrackingGeometry,
0039                            edm::ConsumesCollector&);
0040 
0041   //destructor
0042   virtual ~SegmentToTrackAssociator() = default;
0043 
0044   //Associate
0045   MuonTransientTrackingRecHit::MuonRecHitContainer associate(const edm::Event&,
0046                                                              const edm::EventSetup&,
0047                                                              const reco::Track&,
0048                                                              std::string);
0049 
0050   //Clear the vector
0051   void clear();
0052 
0053 private:
0054   intDVector indexCollectionDT;
0055   intDVector indexCollectionCSC;
0056 
0057   const GlobalTrackingGeometry* globalTrackingGeometry_;
0058 
0059   const edm::InputTag theDTSegmentLabel;
0060   const edm::InputTag theCSCSegmentLabel;
0061   const edm::EDGetTokenT<DTRecSegment4DCollection> tokenDTSegment_;
0062   const edm::EDGetTokenT<CSCSegmentCollection> tokenCSCSegment_;
0063 };
0064 
0065 #endif