![]() |
![]() |
00001 // -*- C++ -*- 00002 // 00003 // Package: RoadSearchEventFilter 00004 // Class: RoadSearchEventFilter 00005 // 00013 // 00014 // Original Author: Carsten Noeding 00015 // Created: Mon Mar 19 13:51:22 CDT 2007 00016 // $Id: RoadSearchEventFilter.cc,v 1.4 2009/12/14 22:24:25 wmtan Exp $ 00017 // 00018 // 00019 00020 00021 // system include files 00022 #include <memory> 00023 00024 #include "TrackingTools/RoadSearchEventFilter/interface/RoadSearchEventFilter.h" 00025 00026 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00027 00028 00029 RoadSearchEventFilter::RoadSearchEventFilter(const edm::ParameterSet& iConfig) 00030 { 00031 numberOfSeeds_ = iConfig.getUntrackedParameter<unsigned int>("NumberOfSeeds"); 00032 seedCollectionLabel_ = iConfig.getUntrackedParameter<std::string>("SeedCollectionLabel"); 00033 00034 } 00035 00036 00037 RoadSearchEventFilter::~RoadSearchEventFilter() 00038 { 00039 00040 } 00041 00042 00043 00044 // ------------ method called on each new Event ------------ 00045 bool 00046 RoadSearchEventFilter::filter(edm::Event& iEvent, const edm::EventSetup& iSetup) 00047 { 00048 bool result = true; 00049 00050 const TrajectorySeedCollection *rsSeedCollection = 0; 00051 edm::Handle<TrajectorySeedCollection> rsSeedHandle; 00052 00053 iEvent.getByLabel(seedCollectionLabel_,rsSeedHandle); 00054 00055 if( rsSeedHandle.isValid() ){ 00056 rsSeedCollection = rsSeedHandle.product(); 00057 } else { 00058 throw cms::Exception("CorruptData") 00059 << "RoadSearchEventFilter requires collection reco::TrajectorySeedCollection with label " << seedCollectionLabel_ << "\n"; 00060 } 00061 00062 if (rsSeedCollection->size() > numberOfSeeds_) { 00063 result=false; 00064 edm::LogError("TooManySeeds") << "Found " << rsSeedCollection->size() << " seeds -> skip event."; 00065 } 00066 00067 return result; 00068 00069 } 00070 00071 00072 void 00073 RoadSearchEventFilter::beginJob() 00074 { 00075 } 00076 00077 // ------------ method called once each job just after ending the event loop ------------ 00078 void 00079 RoadSearchEventFilter::endJob() { 00080 } 00081