00001 #ifndef CkfTrajectoryMaker_h 00002 #define CkfTrajectoryMaker_h 00003 00004 #include "FWCore/Framework/interface/EDProducer.h" 00005 #include "FWCore/Framework/interface/Event.h" 00006 #include "FWCore/Framework/interface/ESHandle.h" 00007 #include "FWCore/Framework/interface/EventSetup.h" 00008 00009 #include "DataFormats/Common/interface/EDProduct.h" 00010 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00011 00012 #include "TrackingTools/TrajectoryCleaning/interface/TrajectoryCleaner.h" 00013 00014 #include "MagneticField/Engine/interface/MagneticField.h" 00015 #include "TrackingTools/DetLayers/interface/NavigationSetter.h" 00016 #include "TrackingTools/DetLayers/interface/NavigationSchool.h" 00017 #include "RecoTracker/TkNavigation/interface/SimpleNavigationSchool.h" 00018 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h" 00019 00020 #include "RecoTracker/CkfPattern/interface/RedundantSeedCleaner.h" 00021 #include "RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h" 00022 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h" 00023 00024 class TransientInitialStateEstimator; 00025 00026 namespace cms 00027 { 00028 class CkfTrajectoryMaker : public CkfTrackCandidateMakerBase, public edm::EDProducer 00029 { 00030 public: 00031 typedef std::vector<Trajectory> TrajectoryCollection; 00032 00033 explicit CkfTrajectoryMaker(const edm::ParameterSet& conf): 00034 CkfTrackCandidateMakerBase(conf) 00035 { 00036 theTrackCandidateOutput=conf.getParameter<bool>("trackCandidateAlso"); 00037 theTrajectoryOutput=true; 00038 if (theTrackCandidateOutput) 00039 produces<TrackCandidateCollection>(); 00040 produces<TrajectoryCollection>(); 00041 } 00042 00043 virtual ~CkfTrajectoryMaker(){;} 00044 00045 virtual void beginJob (edm::EventSetup const & es){beginJobBase(es);} 00046 00047 virtual void produce(edm::Event& e, const edm::EventSetup& es){produceBase(e,es);} 00048 }; 00049 } 00050 00051 #endif