00001 #ifndef CkfTrackCandidateMakerBase_h 00002 #define CkfTrackCandidateMakerBase_h 00003 00004 #include "FWCore/Framework/interface/Event.h" 00005 #include "FWCore/Framework/interface/ESHandle.h" 00006 #include "FWCore/Framework/interface/EventSetup.h" 00007 00008 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00009 00010 #include "TrackingTools/PatternTools/interface/TrajectoryBuilder.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 "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" 00022 00023 class TransientInitialStateEstimator; 00024 00025 namespace cms 00026 { 00027 class CkfTrackCandidateMakerBase { 00028 public: 00029 00030 explicit CkfTrackCandidateMakerBase(const edm::ParameterSet& conf); 00031 00032 virtual ~CkfTrackCandidateMakerBase(); 00033 00034 virtual void beginRunBase (edm::Run & , edm::EventSetup const & es); 00035 00036 virtual void produceBase(edm::Event& e, const edm::EventSetup& es); 00037 00038 protected: 00039 00040 edm::ParameterSet conf_; 00041 00042 bool theTrackCandidateOutput; 00043 bool theTrajectoryOutput; 00044 bool useSplitting; 00045 bool doSeedingRegionRebuilding; 00046 bool cleanTrajectoryAfterInOut; 00047 00048 unsigned int theMaxNSeeds; 00049 00050 std::string theTrajectoryBuilderName; 00051 const TrajectoryBuilder* theTrajectoryBuilder; 00052 00053 std::string theTrajectoryCleanerName; 00054 const TrajectoryCleaner* theTrajectoryCleaner; 00055 00056 TransientInitialStateEstimator* theInitialState; 00057 00058 edm::ESHandle<MagneticField> theMagField; 00059 edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker; 00060 00061 std::string theNavigationSchoolName; 00062 const NavigationSchool* theNavigationSchool; 00063 00064 RedundantSeedCleaner* theSeedCleaner; 00065 00066 edm::InputTag theSeedLabel; 00067 00068 unsigned int maxSeedsBeforeCleaning_; 00069 // methods for debugging 00070 virtual TrajectorySeedCollection::const_iterator lastSeed(TrajectorySeedCollection const& theSeedColl){return theSeedColl.end();} 00071 virtual void printHitsDebugger(edm::Event& e){;} 00072 virtual void countSeedsDebugger(){;} 00073 virtual void deleteAssocDebugger(){;} 00074 private: 00076 void setEventSetup( const edm::EventSetup& es ) ; 00077 }; 00078 } 00079 00080 #endif