File indexing completed on 2024-04-06 12:11:18
0001 #ifndef FastSimulation_Muons_FastTSGFromL2Muon_H
0002 #define FastSimulation_Muons_FastTSGFromL2Muon_H
0003
0004 #include "FWCore/Framework/interface/stream/EDProducer.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0007 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
0008 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0009
0010 #include <vector>
0011 namespace edm {
0012 class ParameterSet;
0013 class Event;
0014 class EventSetup;
0015 }
0016
0017 class MuonServiceProxy;
0018 class MuonTrackingRegionBuilder;
0019 class RectangularEtaPhiTrackingRegion;
0020 class SimTrack;
0021
0022
0023
0024
0025
0026 class FastTSGFromL2Muon : public edm::stream::EDProducer<> {
0027 public:
0028 FastTSGFromL2Muon(const edm::ParameterSet& cfg);
0029 ~FastTSGFromL2Muon() override = default;
0030 void produce(edm::Event& ev, const edm::EventSetup& es) override;
0031
0032 private:
0033 bool clean(reco::TrackRef muRef,
0034 RectangularEtaPhiTrackingRegion* region,
0035 const BasicTrajectorySeed* aSeed,
0036 const SimTrack& theSimTrack);
0037
0038 private:
0039 const double thePtCut;
0040 const edm::InputTag theL2CollectionLabel;
0041 const std::vector<edm::InputTag> theSeedCollectionLabels;
0042 const edm::InputTag theSimTrackCollectionLabel;
0043
0044 const edm::EDGetTokenT<edm::SimTrackContainer> simTrackToken_;
0045 const edm::EDGetTokenT<reco::TrackCollection> l2TrackToken_;
0046 std::vector<edm::EDGetTokenT<edm::View<TrajectorySeed> > > seedToken_;
0047
0048 std::unique_ptr<MuonTrackingRegionBuilder> theRegionBuilder;
0049 };
0050 #endif