File indexing completed on 2024-04-06 12:26:58
0001 #ifndef RecoMuon_L3TrackFinder_L3MuonTrajectoryBuilder_H
0002 #define RecoMuon_L3TrackFinder_L3MuonTrajectoryBuilder_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h"
0013 #include "RecoMuon/GlobalTrackingTools/interface/GlobalTrajectoryBuilderBase.h"
0014 #include "TrackingTools/PatternTools/interface/TrajectoryBuilder.h"
0015 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h"
0016 #include "TrackingTools/DetLayers/interface/NavigationSchool.h"
0017 #include "FWCore/Framework/interface/ConsumesCollector.h"
0018 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0019 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0020
0021 #include "DataFormats/TrackReco/interface/Track.h"
0022 #include "DataFormats/VertexReco/interface/Vertex.h"
0023 #include "DataFormats/VertexReco/interface/VertexFwd.h"
0024
0025 #include <memory>
0026
0027 namespace edm {
0028 class ParameterSet;
0029 class Event;
0030 class EventSetup;
0031 }
0032
0033 class MuonServiceProxy;
0034 class Trajectory;
0035 class TrajectoryCleaner;
0036
0037 class L3MuonTrajectoryBuilder : public GlobalTrajectoryBuilderBase {
0038 public:
0039
0040 L3MuonTrajectoryBuilder(const edm::ParameterSet&, const MuonServiceProxy*, edm::ConsumesCollector&);
0041
0042
0043 ~L3MuonTrajectoryBuilder() override;
0044
0045
0046 using GlobalTrajectoryBuilderBase::trajectories;
0047 MuonTrajectoryBuilder::CandidateContainer trajectories(const TrackCand&) override;
0048
0049
0050 void setEvent(const edm::Event&) override;
0051
0052
0053 static void fillDescriptions(edm::ParameterSetDescription& descriptions);
0054
0055 private:
0056
0057 std::vector<TrackCand> makeTkCandCollection(const TrackCand&) override;
0058
0059 std::unique_ptr<TrajectoryCleaner> theTrajectoryCleaner;
0060 edm::InputTag theTkCollName;
0061 edm::Handle<reco::TrackCollection> allTrackerTracks;
0062 reco::BeamSpot beamSpot;
0063 edm::Handle<reco::BeamSpot> beamSpotHandle;
0064 edm::InputTag theBeamSpotInputTag;
0065 reco::Vertex vtx;
0066 edm::Handle<reco::VertexCollection> pvHandle;
0067 edm::InputTag theVertexCollInputTag;
0068 bool theUseVertex;
0069 double theMaxChi2;
0070 double theDXYBeamSpot;
0071 edm::EDGetTokenT<reco::TrackCollection> theTrackToken;
0072 };
0073 #endif