CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/FastSimulation/Tracking/plugins/TrackCandidateProducer.h

Go to the documentation of this file.
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 class TrackerGeometry;
00008 class TrajectoryStateOnSurface;
00009 class PropagatorWithMaterial;
00010 
00011 namespace edm { 
00012   class ParameterSet;
00013   class Event;
00014   class EventSetup;
00015 }
00016 
00017 namespace reco { 
00018   class Track;
00019 }
00020 
00021 class TrackerRecHit;
00022 
00023 #include <vector>
00024 
00025 class TrackCandidateProducer : public edm::EDProducer
00026 {
00027  public:
00028   
00029   explicit TrackCandidateProducer(const edm::ParameterSet& conf);
00030   
00031   virtual ~TrackCandidateProducer();
00032   
00033   virtual void beginRun(edm::Run & run, const edm::EventSetup & es);
00034   
00035   virtual void produce(edm::Event& e, const edm::EventSetup& es);
00036   
00037  private:
00038 
00039   int findId(const reco::Track& aTrack) const;
00040 
00041   void addSplitHits(const TrackerRecHit&, std::vector<TrackerRecHit>&); 
00042 
00043  private:
00044 
00045   const TrackerGeometry*  theGeometry;
00046   const MagneticField*  theMagField;
00047   PropagatorWithMaterial* thePropagator;
00048 
00049 
00050   edm::InputTag seedProducer;
00051   edm::InputTag hitProducer;
00052   // edm::InputTag trackProducer;
00053   std::vector<edm::InputTag> trackProducers;
00054   
00055   unsigned int minNumberOfCrossedLayers;
00056   unsigned int maxNumberOfCrossedLayers;
00057 
00058   bool rejectOverlaps;
00059   bool splitHits;
00060   bool seedCleaning;
00061   bool keepFittedTracks;
00062 
00063   edm::InputTag simTracks_;
00064   double estimatorCut_;
00065 };
00066 
00067 #endif