Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:11:18

0001 #ifndef FastSimulation_Muons_FastTSGFromIOHit_H
0002 #define FastSimulation_Muons_FastTSGFromIOHit_H
0003 
0004 /** \class FastTSGFromIOHit
0005  *  Tracker Seed Generator by propagating and updating a standAlone muon
0006  *  to the first pixel hits in tracker system 
0007  *
0008  *  Emulate TSGFromIOHit in RecoMuon
0009  *
0010  *  \author Adam Everett - Purdue University 
0011  */
0012 
0013 #include "RecoMuon/TrackerSeedGenerator/interface/TrackerSeedGenerator.h"
0014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0015 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h"
0016 #include "FWCore/Framework/interface/ConsumesCollector.h"
0017 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
0018 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
0019 #include <vector>
0020 
0021 class RectangularEtaPhiTrackingRegion;
0022 class TrackingRegion;
0023 class SimTrack;
0024 
0025 class FastTSGFromIOHit : public TrackerSeedGenerator {
0026 public:
0027   /// constructor
0028   FastTSGFromIOHit(const edm::ParameterSet& pset, edm::ConsumesCollector& iC);
0029 
0030   /// destructor
0031   ~FastTSGFromIOHit() override;
0032 
0033   /// generate seed(s) for a track
0034   void trackerSeeds(const TrackCand&,
0035                     const TrackingRegion&,
0036                     const TrackerTopology* tTopo,
0037                     std::vector<TrajectorySeed>&) override;
0038 
0039 private:
0040   bool clean(reco::TrackRef muRef,
0041              const RectangularEtaPhiTrackingRegion& region,
0042              const BasicTrajectorySeed* aSeed,
0043              const SimTrack& theSimTrack);
0044 
0045 private:
0046   std::string theCategory;
0047 
0048   edm::EDGetTokenT<edm::SimTrackContainer> simTracksTk;
0049   std::vector<edm::EDGetTokenT<TrajectorySeedCollection> > seedsTks;
0050   double thePtCut;
0051 };
0052 
0053 #endif