![]() |
![]() |
00001 #ifndef FastSimulation_Tracking_TrackCandidateProducer_h 00002 #define FastSimulation_Tracking_TrackCandidateProducer_h 00003 00004 #include "FWCore/Framework/interface/EDProducer.h" 00005 #include "FWCore/Utilities/interface/InputTag.h" 00006 00007 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h" 00008 00009 class TrackerGeometry; 00010 class TrajectoryStateOnSurface; 00011 class PropagatorWithMaterial; 00012 00013 namespace edm { 00014 class ParameterSet; 00015 class Event; 00016 class EventSetup; 00017 } 00018 00019 namespace reco { 00020 class Track; 00021 } 00022 00023 class TrackerRecHit; 00024 class TrackingRecHit; 00025 00026 #include <vector> 00027 00028 class TrackCandidateProducer : public edm::EDProducer 00029 { 00030 public: 00031 00032 explicit TrackCandidateProducer(const edm::ParameterSet& conf); 00033 00034 virtual ~TrackCandidateProducer(); 00035 00036 virtual void beginRun(edm::Run const& run, const edm::EventSetup & es) override; 00037 00038 virtual void produce(edm::Event& e, const edm::EventSetup& es) override; 00039 00040 private: 00041 00042 int findId(const reco::Track& aTrack) const; 00043 00044 void addSplitHits(const TrackerRecHit&, std::vector<TrackerRecHit>&); 00045 bool isDuplicateCandidate(const TrackCandidateCollection& candidates, const TrackCandidate& newCand) const; 00046 bool sameLocalParameters(const TrackingRecHit* aH, const TrackingRecHit* bH) const; 00047 00048 private: 00049 00050 const TrackerGeometry* theGeometry; 00051 const MagneticField* theMagField; 00052 PropagatorWithMaterial* thePropagator; 00053 00054 00055 edm::InputTag seedProducer; 00056 edm::InputTag hitProducer; 00057 // edm::InputTag trackProducer; 00058 std::vector<edm::InputTag> trackProducers; 00059 00060 unsigned int minNumberOfCrossedLayers; 00061 unsigned int maxNumberOfCrossedLayers; 00062 00063 bool rejectOverlaps; 00064 bool splitHits; 00065 bool seedCleaning; 00066 bool keepFittedTracks; 00067 00068 edm::InputTag simTracks_; 00069 double estimatorCut_; 00070 }; 00071 00072 #endif