CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/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 #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