CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/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 #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