![]() |
![]() |
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 #include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h" 00012 00013 #include "TrackingTools/TrajectoryCleaning/interface/TrajectoryCleaner.h" 00014 00015 #include "MagneticField/Engine/interface/MagneticField.h" 00016 #include "TrackingTools/DetLayers/interface/NavigationSetter.h" 00017 #include "TrackingTools/DetLayers/interface/NavigationSchool.h" 00018 #include "RecoTracker/TkNavigation/interface/SimpleNavigationSchool.h" 00019 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h" 00020 00021 #include "RecoTracker/CkfPattern/interface/RedundantSeedCleaner.h" 00022 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" 00023 00024 class TransientInitialStateEstimator; 00025 00026 namespace cms 00027 { 00028 class CkfTrackCandidateMakerBase { 00029 public: 00030 00031 explicit CkfTrackCandidateMakerBase(const edm::ParameterSet& conf); 00032 00033 virtual ~CkfTrackCandidateMakerBase(); 00034 00035 virtual void beginRunBase (edm::Run const & , edm::EventSetup const & es); 00036 00037 virtual void produceBase(edm::Event& e, const edm::EventSetup& es); 00038 00039 protected: 00040 00041 edm::ParameterSet conf_; 00042 00043 bool theTrackCandidateOutput; 00044 bool theTrajectoryOutput; 00045 bool useSplitting; 00046 bool doSeedingRegionRebuilding; 00047 bool cleanTrajectoryAfterInOut; 00048 bool reverseTrajectories; 00049 00050 unsigned int theMaxNSeeds; 00051 00052 std::string theTrajectoryBuilderName; 00053 const BaseCkfTrajectoryBuilder* theTrajectoryBuilder; 00054 00055 std::string theTrajectoryCleanerName; 00056 const TrajectoryCleaner* theTrajectoryCleaner; 00057 00058 TransientInitialStateEstimator* theInitialState; 00059 00060 edm::ESHandle<MagneticField> theMagField; 00061 edm::ESHandle<GeometricSearchTracker> theGeomSearchTracker; 00062 00063 std::string theNavigationSchoolName; 00064 const NavigationSchool* theNavigationSchool; 00065 00066 RedundantSeedCleaner* theSeedCleaner; 00067 00068 edm::InputTag theSeedLabel; 00069 00070 unsigned int maxSeedsBeforeCleaning_; 00071 // methods for debugging 00072 virtual TrajectorySeedCollection::const_iterator lastSeed(TrajectorySeedCollection const& theSeedColl){return theSeedColl.end();} 00073 virtual void printHitsDebugger(edm::Event& e){;} 00074 virtual void countSeedsDebugger(){;} 00075 virtual void deleteAssocDebugger(){;} 00076 private: 00078 void setEventSetup( const edm::EventSetup& es ) ; 00079 }; 00080 } 00081 00082 #endif