Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }  // namespace edm
0016 
0017 class MuonServiceProxy;
0018 class MuonTrackingRegionBuilder;
0019 class RectangularEtaPhiTrackingRegion;
0020 class SimTrack;
0021 
0022 //
0023 // generate seeds corresponding to L2 muons
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