CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/TrackingTools/RoadSearchEventFilter/src/RoadSearchEventFilter.cc

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