![]() |
![]() |
00001 00002 #ifndef CkfDebugTrackCandidateMaker_h 00003 #define CkfDebugTrackCandidateMaker_h 00004 00005 #include "RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h" 00006 #include "RecoTracker/DebugTools/interface/CkfDebugTrajectoryBuilder.h" 00007 #include "FWCore/Framework/interface/EDProducer.h" 00008 #include "DataFormats/Common/interface/EDProduct.h" 00009 00010 namespace cms { 00011 class CkfDebugTrackCandidateMaker : public CkfTrackCandidateMakerBase, public edm::EDProducer { 00012 public: 00013 CkfDebugTrackCandidateMaker(const edm::ParameterSet& conf) : CkfTrackCandidateMakerBase(conf) { 00014 produces<TrackCandidateCollection>(); 00015 } 00016 00017 virtual void beginRun (edm::Run & run, edm::EventSetup const & es){ 00018 beginRunBase(run,es); 00019 initDebugger(es); 00020 } 00021 00022 virtual void produce(edm::Event& e, const edm::EventSetup& es){produceBase(e,es);} 00023 virtual void endJob() {delete dbg; } 00024 00025 private: 00026 virtual TrajectorySeedCollection::const_iterator 00027 lastSeed(TrajectorySeedCollection& theSeedColl){return theSeedColl.begin()+1;} 00028 00029 void initDebugger(edm::EventSetup const & es){ 00030 dbg = new CkfDebugger(es); 00031 myTrajectoryBuilder = dynamic_cast<const CkfDebugTrajectoryBuilder*>(theTrajectoryBuilder); 00032 if (myTrajectoryBuilder) myTrajectoryBuilder->setDebugger( dbg); 00033 else throw cms::Exception("CkfDebugger") << "please use CkfDebugTrajectoryBuilder"; 00034 //theTrajectoryBuilder->setDebugger( dbg); 00035 }; 00036 00037 void printHitsDebugger(edm::Event& e){dbg->printSimHits(e);}; 00038 void countSeedsDebugger(){dbg->countSeed();}; 00039 void deleteAssocDebugger(){dbg->deleteHitAssociator();}; 00040 void deleteDebugger(){delete dbg;}; 00041 CkfDebugger * dbg; 00042 const CkfDebugTrajectoryBuilder* myTrajectoryBuilder; 00043 }; 00044 } 00045 00046 #endif