Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:15

0001 #ifndef RecoMuon_TrackerSeedGenerator_H
0002 #define RecoMuon_TrackerSeedGenerator_H
0003 
0004 /** \class TrackerSeedGenerator
0005  *  Generate seed from muon trajectory.
0006  */
0007 
0008 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
0009 #include "DataFormats/TrackReco/interface/Track.h"
0010 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0011 
0012 class Trajectory;
0013 class TrackingRegion;
0014 class MuonServiceProxy;
0015 class TrackerTopology;
0016 
0017 namespace edm {
0018   class ParameterSet;
0019   class Event;
0020   class EventSetup;
0021   class ConsumesCollector;
0022 }  // namespace edm
0023 
0024 class TrackerSeedGenerator {
0025 public:
0026   typedef std::vector<TrajectorySeed> BTSeedCollection;
0027 
0028   TrackerSeedGenerator() : theEvent(nullptr), theProxyService(nullptr) {}
0029 
0030   typedef std::pair<const Trajectory *, reco::TrackRef> TrackCand;
0031 
0032   virtual void init(const MuonServiceProxy *service);
0033 
0034   /// destructor
0035   virtual ~TrackerSeedGenerator() {}
0036 
0037   virtual void trackerSeeds(const TrackCand &, const TrackingRegion &, const TrackerTopology *, BTSeedCollection &);
0038 
0039   virtual void setEvent(const edm::Event &);
0040 
0041   const edm::Event *getEvent() const { return theEvent; }
0042 
0043 private:
0044   virtual void run(TrajectorySeedCollection &seeds,
0045                    const edm::Event &ev,
0046                    const edm::EventSetup &es,
0047                    const TrackingRegion &region) {}
0048 
0049 protected:
0050   const edm::Event *theEvent;
0051   const MuonServiceProxy *theProxyService;
0052 };
0053 
0054 #endif