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
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 }
0031
0032 class SegmentToTrackAssociator {
0033 public:
0034 typedef std::vector<std::vector<int> > intDVector;
0035
0036
0037 SegmentToTrackAssociator(const edm::ParameterSet&,
0038 const GlobalTrackingGeometry* GlobalTrackingGeometry,
0039 edm::ConsumesCollector&);
0040
0041
0042 virtual ~SegmentToTrackAssociator() = default;
0043
0044
0045 MuonTransientTrackingRecHit::MuonRecHitContainer associate(const edm::Event&,
0046 const edm::EventSetup&,
0047 const reco::Track&,
0048 std::string);
0049
0050
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