CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/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 
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