CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h

Go to the documentation of this file.
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