00001 #ifndef MuonSeedGenerator_RPCSeedGenerator_H 00002 #define MuonSeedGenerator_RPCSeedGenerator_H 00003 00004 /* 00005 * \class RPCSeedGenerator 00006 * Muodule for RPC seed production. 00007 * 00008 * $Date: 2007/06/08 12:00:28 $ 00009 * $Revision: 1.1 $ 00010 * \author D. Pagano - University of Pavia & INFN Pavia 00011 */ 00012 00013 #include "FWCore/Framework/interface/EDProducer.h" 00014 #include "FWCore/ParameterSet/interface/InputTag.h" 00015 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" 00016 #include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h" 00017 #include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h" 00018 00019 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" 00020 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" 00021 00022 #include "MagneticField/Engine/interface/MagneticField.h" 00023 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" 00024 #include "TFile.h" 00025 #include <vector> 00026 00027 namespace edm {class ParameterSet; class Event; class EventSetup;} 00028 00029 00030 class RPCSeedFinder; 00031 00032 class RPCSeedGenerator: public edm::EDProducer { 00033 public: 00034 00035 // Constructor 00036 RPCSeedGenerator(const edm::ParameterSet&); 00037 00038 // Destructor 00039 virtual ~RPCSeedGenerator(); 00040 00041 virtual void produce(edm::Event&, const edm::EventSetup&); 00042 00043 protected: 00044 00045 private: 00046 void complete(RPCSeedFinder& seed, MuonTransientTrackingRecHit::MuonRecHitContainer &recHits, bool* used=0) const; 00047 void checkAndFill(RPCSeedFinder& Theseed, const edm::EventSetup& eSetup); 00048 00049 std::vector<TrajectorySeed> theSeeds; 00050 00051 edm::InputTag theRPCRecHits; 00052 00053 }; 00054 #endif 00055