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 bool reverseTrajectories; 00048 00049 unsigned int theMaxNSeeds; 00050 00051 std::string theTrajectoryBuilderName; 00052 const TrajectoryBuilder* theTrajectoryBuilder; 00053 00054 std::string theTrajectoryCleanerName; 00055 const TrajectoryCleaner* theTrajectoryCleaner; 00056 00057 TransientInitialStateEstimator* theInitialState; 00058 00059 edm::ESHandle<MagneticField> theMagField; 00060 edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker; 00061 00062 std::string theNavigationSchoolName; 00063 const NavigationSchool* theNavigationSchool; 00064 00065 RedundantSeedCleaner* theSeedCleaner; 00066 00067 edm::InputTag theSeedLabel; 00068 00069 unsigned int maxSeedsBeforeCleaning_; 00070 // methods for debugging 00071 virtual TrajectorySeedCollection::const_iterator lastSeed(TrajectorySeedCollection const& theSeedColl){return theSeedColl.end();} 00072 virtual void printHitsDebugger(edm::Event& e){;} 00073 virtual void countSeedsDebugger(){;} 00074 virtual void deleteAssocDebugger(){;} 00075 private: 00077 void setEventSetup( const edm::EventSetup& es ) ; 00078 }; 00079 } 00080 00081 #endif