00001 #ifndef FastSimulation_Tracking_FastTrackMerger_h 00002 #define FastSimulation_Tracking_FastTrackMerger_h 00003 00004 #include "FWCore/Framework/interface/EDProducer.h" 00005 #include "FWCore/Utilities/interface/InputTag.h" 00006 00007 #include <vector> 00008 #include <string> 00009 00010 namespace edm { 00011 class ParameterSet; 00012 class Event; 00013 class EventSetup; 00014 } 00015 00016 namespace reco { 00017 class Track; 00018 } 00019 00020 class FastTrackMerger : public edm::EDProducer 00021 { 00022 public: 00023 00024 explicit FastTrackMerger(const edm::ParameterSet& conf); 00025 00026 virtual ~FastTrackMerger() {} 00027 00028 virtual void produce(edm::Event& e, const edm::EventSetup& es); 00029 00030 private: 00031 00032 int findId(const reco::Track& aTrack) const; 00033 00034 private: 00035 00036 std::vector<edm::InputTag> trackProducers; 00037 std::vector<edm::InputTag> removeTrackProducers; 00038 bool tracksOnly; 00039 bool promoteQuality; 00040 double pTMin2; 00041 unsigned minHits; 00042 unsigned trackAlgo; 00043 std::string qualityStr; 00044 unsigned theMinimumNumberOfHits; 00045 unsigned theMaxLostHits; 00046 unsigned theMaxConsecutiveLostHits; 00047 00048 }; 00049 00050 #endif